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 fra
.me
.REG
[7] = NEW_IRegister_icode___icode_base___IRegister___init(fra
.me
.REG
[6]);
2588 fra
.me
.REG
[5] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2589 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]);
2590 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7], fra
.me
.REG
[6]);
2591 /* syntax/icode_generation.nit:422 */
2592 CALL_SUPER_syntax___icode_generation___AExternInitPropdef___fill_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
2593 stack_frame_head
= fra
.me
.prev
;
2596 void syntax___icode_generation___ADeferredMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2597 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2600 static val_t once_value_1
; /* Once value */
2601 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2602 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2604 fra
.me
.meth
= LOCATE_syntax___icode_generation___ADeferredMethPropdef___fill_iroutine
;
2605 fra
.me
.has_broke
= 0;
2606 fra
.me
.REG_size
= 3;
2607 fra
.me
.nitni_local_ref_head
= NULL
;
2608 fra
.me
.REG
[0] = NIT_NULL
;
2609 fra
.me
.REG
[1] = NIT_NULL
;
2610 fra
.me
.REG
[2] = NIT_NULL
;
2614 /* syntax/icode_generation.nit:429 */
2616 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2617 if (!once_value_1
) {
2618 fra
.me
.REG
[0] = BOX_NativeString("Deferred method called");
2619 REGB0
= TAG_Int(22);
2620 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
2621 once_value_1
= fra
.me
.REG
[0];
2622 register_static_object(&once_value_1
);
2623 } else fra
.me
.REG
[0] = once_value_1
;
2624 fra
.me
.REG
[0] = fra
.me
.REG
[0];
2625 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2626 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2627 stack_frame_head
= fra
.me
.prev
;
2630 void syntax___icode_generation___AExternMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2631 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
2635 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2636 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2638 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExternMethPropdef___fill_iroutine
;
2639 fra
.me
.has_broke
= 0;
2640 fra
.me
.REG_size
= 8;
2641 fra
.me
.nitni_local_ref_head
= NULL
;
2642 fra
.me
.REG
[0] = NIT_NULL
;
2643 fra
.me
.REG
[1] = NIT_NULL
;
2644 fra
.me
.REG
[2] = NIT_NULL
;
2645 fra
.me
.REG
[3] = NIT_NULL
;
2646 fra
.me
.REG
[4] = NIT_NULL
;
2647 fra
.me
.REG
[5] = NIT_NULL
;
2648 fra
.me
.REG
[6] = NIT_NULL
;
2649 fra
.me
.REG
[7] = NIT_NULL
;
2653 /* syntax/icode_generation.nit:434 */
2654 fra
.me
.REG
[3] = fra
.me
.REG
[1];
2655 fra
.me
.REG
[4] = fra
.me
.REG
[2];
2656 /* syntax/icode_generation.nit:436 */
2657 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2658 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2659 /* syntax/icode_generation.nit:437 */
2660 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2661 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2662 if (UNTAG_Bool(REGB0
)) {
2663 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 437);
2665 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2666 /* syntax/icode_generation.nit:438 */
2667 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2668 if (UNTAG_Bool(REGB0
)) {
2670 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2671 if (UNTAG_Bool(REGB1
)) {
2672 REGB1
= TAG_Bool(false);
2675 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
2679 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2680 if (UNTAG_Bool(REGB0
)) {
2681 /* syntax/icode_generation.nit:439 */
2682 fra
.me
.REG
[7] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2683 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]);
2684 CALL_icode___icode_builder___ICodeBuilder___add_return_value(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
2686 /* syntax/icode_generation.nit:441 */
2687 fra
.me
.REG
[5] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2688 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
2690 /* syntax/icode_generation.nit:444 */
2691 CALL_SUPER_syntax___icode_generation___AExternMethPropdef___fill_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
2692 stack_frame_head
= fra
.me
.prev
;
2695 void syntax___icode_generation___AInternMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2696 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2700 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2701 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2703 fra
.me
.meth
= LOCATE_syntax___icode_generation___AInternMethPropdef___fill_iroutine
;
2704 fra
.me
.has_broke
= 0;
2705 fra
.me
.REG_size
= 5;
2706 fra
.me
.nitni_local_ref_head
= NULL
;
2707 fra
.me
.REG
[0] = NIT_NULL
;
2708 fra
.me
.REG
[1] = NIT_NULL
;
2709 fra
.me
.REG
[2] = NIT_NULL
;
2710 fra
.me
.REG
[3] = NIT_NULL
;
2711 fra
.me
.REG
[4] = NIT_NULL
;
2715 /* syntax/icode_generation.nit:451 */
2716 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2717 fra
.me
.REG
[0] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2718 /* syntax/icode_generation.nit:452 */
2719 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2720 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2721 if (UNTAG_Bool(REGB0
)) {
2722 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 452);
2724 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2725 /* syntax/icode_generation.nit:453 */
2726 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2727 if (UNTAG_Bool(REGB0
)) {
2729 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2730 if (UNTAG_Bool(REGB1
)) {
2731 REGB1
= TAG_Bool(false);
2734 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2738 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2739 if (UNTAG_Bool(REGB0
)) {
2740 /* syntax/icode_generation.nit:454 */
2741 fra
.me
.REG
[4] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2742 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]);
2743 CALL_icode___icode_builder___ICodeBuilder___add_return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2745 /* syntax/icode_generation.nit:456 */
2746 fra
.me
.REG
[0] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2747 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2749 stack_frame_head
= fra
.me
.prev
;
2752 void syntax___icode_generation___AExpr___accept_icode_generation(val_t p0
, val_t p1
){
2753 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2755 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2756 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2758 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExpr___accept_icode_generation
;
2759 fra
.me
.has_broke
= 0;
2760 fra
.me
.REG_size
= 2;
2761 fra
.me
.nitni_local_ref_head
= NULL
;
2762 fra
.me
.REG
[0] = NIT_NULL
;
2763 fra
.me
.REG
[1] = NIT_NULL
;
2766 stack_frame_head
= fra
.me
.prev
;
2769 val_t
syntax___icode_generation___AExpr___generate_icode(val_t p0
, val_t p1
){
2770 struct {struct stack_frame_t me
;} fra
;
2772 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2773 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2775 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExpr___generate_icode
;
2776 fra
.me
.has_broke
= 0;
2777 fra
.me
.REG_size
= 0;
2778 fra
.me
.nitni_local_ref_head
= NULL
;
2779 /* syntax/icode_generation.nit:466 */
2780 nit_abort("Deferred method called", NULL
, LOCATE_syntax___icode_generation
, 466);
2781 stack_frame_head
= fra
.me
.prev
;
2784 val_t
syntax___icode_generation___AVardeclExpr___generate_icode(val_t p0
, val_t p1
){
2785 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2789 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2790 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2792 fra
.me
.meth
= LOCATE_syntax___icode_generation___AVardeclExpr___generate_icode
;
2793 fra
.me
.has_broke
= 0;
2794 fra
.me
.REG_size
= 3;
2795 fra
.me
.nitni_local_ref_head
= NULL
;
2796 fra
.me
.REG
[0] = NIT_NULL
;
2797 fra
.me
.REG
[1] = NIT_NULL
;
2798 fra
.me
.REG
[2] = NIT_NULL
;
2801 /* syntax/icode_generation.nit:474 */
2802 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVardeclExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2803 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2804 /* syntax/icode_generation.nit:475 */
2805 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AVardeclExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2806 /* syntax/icode_generation.nit:476 */
2807 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2808 if (UNTAG_Bool(REGB0
)) {
2810 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2811 if (UNTAG_Bool(REGB1
)) {
2812 REGB1
= TAG_Bool(false);
2815 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2819 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2820 if (UNTAG_Bool(REGB0
)) {
2821 /* syntax/icode_generation.nit:477 */
2822 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2823 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
2825 /* syntax/icode_generation.nit:479 */
2826 fra
.me
.REG
[0] = NIT_NULL
;
2829 stack_frame_head
= fra
.me
.prev
;
2830 return fra
.me
.REG
[0];
2832 val_t
syntax___icode_generation___ABlockExpr___generate_icode(val_t p0
, val_t p1
){
2833 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2835 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2836 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2838 fra
.me
.meth
= LOCATE_syntax___icode_generation___ABlockExpr___generate_icode
;
2839 fra
.me
.has_broke
= 0;
2840 fra
.me
.REG_size
= 2;
2841 fra
.me
.nitni_local_ref_head
= NULL
;
2842 fra
.me
.REG
[0] = NIT_NULL
;
2843 fra
.me
.REG
[1] = NIT_NULL
;
2846 /* syntax/icode_generation.nit:486 */
2847 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABlockExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2848 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
));
2849 /* syntax/icode_generation.nit:487 */
2850 fra
.me
.REG
[1] = NIT_NULL
;
2853 stack_frame_head
= fra
.me
.prev
;
2854 return fra
.me
.REG
[1];
2856 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
){
2857 struct {struct stack_frame_t me
;} fra
;
2860 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2861 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2863 fra
.me
.meth
= LOCATE_syntax___icode_generation___ABlockExpr___generate_icode
;
2864 fra
.me
.has_broke
= 0;
2865 fra
.me
.REG_size
= 1;
2866 fra
.me
.nitni_local_ref_head
= NULL
;
2867 fra
.me
.REG
[0] = NIT_NULL
;
2868 fra
.me
.closure_ctx
= closctx_param
;
2869 fra
.me
.closure_funs
= CREG
;
2871 CREG
[0] = clos_fun0
;
2872 CALL_syntax___icode_generation___A2IContext___generate_stmt(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
2873 stack_frame_head
= fra
.me
.prev
;
2876 val_t
syntax___icode_generation___ADoExpr___generate_icode(val_t p0
, val_t p1
){
2877 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2880 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2881 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2883 fra
.me
.meth
= LOCATE_syntax___icode_generation___ADoExpr___generate_icode
;
2884 fra
.me
.has_broke
= 0;
2885 fra
.me
.REG_size
= 5;
2886 fra
.me
.nitni_local_ref_head
= NULL
;
2887 fra
.me
.REG
[0] = NIT_NULL
;
2888 fra
.me
.REG
[1] = NIT_NULL
;
2889 fra
.me
.REG
[2] = NIT_NULL
;
2890 fra
.me
.REG
[3] = NIT_NULL
;
2891 fra
.me
.REG
[4] = NIT_NULL
;
2894 /* syntax/icode_generation.nit:494 */
2895 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2896 /* syntax/icode_generation.nit:495 */
2897 fra
.me
.REG
[3] = NEW_ISeq_icode___icode_base___ISeq___init();
2898 /* syntax/icode_generation.nit:496 */
2899 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2900 /* syntax/icode_generation.nit:497 */
2901 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2902 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2903 if (UNTAG_Bool(REGB0
)) {
2904 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 497);
2906 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
2907 /* syntax/icode_generation.nit:498 */
2908 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2909 /* syntax/icode_generation.nit:500 */
2910 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ADoExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2911 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2912 /* syntax/icode_generation.nit:502 */
2913 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2914 /* syntax/icode_generation.nit:503 */
2915 fra
.me
.REG
[2] = NIT_NULL
;
2918 stack_frame_head
= fra
.me
.prev
;
2919 return fra
.me
.REG
[2];
2921 val_t
syntax___icode_generation___AReturnExpr___generate_icode(val_t p0
, val_t p1
){
2922 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2926 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2927 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2929 fra
.me
.meth
= LOCATE_syntax___icode_generation___AReturnExpr___generate_icode
;
2930 fra
.me
.has_broke
= 0;
2931 fra
.me
.REG_size
= 4;
2932 fra
.me
.nitni_local_ref_head
= NULL
;
2933 fra
.me
.REG
[0] = NIT_NULL
;
2934 fra
.me
.REG
[1] = NIT_NULL
;
2935 fra
.me
.REG
[2] = NIT_NULL
;
2936 fra
.me
.REG
[3] = NIT_NULL
;
2939 /* syntax/icode_generation.nit:508 */
2940 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2941 /* syntax/icode_generation.nit:510 */
2942 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AReturnExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2943 /* syntax/icode_generation.nit:511 */
2944 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2945 if (UNTAG_Bool(REGB0
)) {
2947 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2948 if (UNTAG_Bool(REGB1
)) {
2949 REGB1
= TAG_Bool(false);
2952 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2956 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2957 if (UNTAG_Bool(REGB0
)) {
2958 /* syntax/icode_generation.nit:512 */
2959 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2960 REGB0
= TAG_Bool(fra
.me
.REG
[3]!=NIT_NULL
);
2961 if (UNTAG_Bool(REGB0
)) {
2963 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 512);
2965 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2966 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
2968 /* syntax/icode_generation.nit:514 */
2969 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___return_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2970 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
2971 if (UNTAG_Bool(REGB0
)) {
2973 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 514);
2975 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2976 /* syntax/icode_generation.nit:515 */
2977 fra
.me
.REG
[2] = NIT_NULL
;
2980 stack_frame_head
= fra
.me
.prev
;
2981 return fra
.me
.REG
[2];
2983 val_t
syntax___icode_generation___ABreakExpr___generate_icode(val_t p0
, val_t p1
){
2984 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2988 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2989 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2991 fra
.me
.meth
= LOCATE_syntax___icode_generation___ABreakExpr___generate_icode
;
2992 fra
.me
.has_broke
= 0;
2993 fra
.me
.REG_size
= 5;
2994 fra
.me
.nitni_local_ref_head
= NULL
;
2995 fra
.me
.REG
[0] = NIT_NULL
;
2996 fra
.me
.REG
[1] = NIT_NULL
;
2997 fra
.me
.REG
[2] = NIT_NULL
;
2998 fra
.me
.REG
[3] = NIT_NULL
;
2999 fra
.me
.REG
[4] = NIT_NULL
;
3002 /* syntax/icode_generation.nit:520 */
3003 fra
.me
.REG
[2] = fra
.me
.REG
[0];
3004 /* syntax/icode_generation.nit:522 */
3005 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3006 /* syntax/icode_generation.nit:523 */
3007 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3008 if (UNTAG_Bool(REGB0
)) {
3010 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3011 if (UNTAG_Bool(REGB1
)) {
3012 REGB1
= TAG_Bool(false);
3015 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3019 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3020 if (UNTAG_Bool(REGB0
)) {
3021 /* syntax/icode_generation.nit:524 */
3022 fra
.me
.REG
[4] = CALL_syntax___scope___AEscapeExpr___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3023 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3024 if (UNTAG_Bool(REGB0
)) {
3025 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 524);
3027 fra
.me
.REG
[4] = CALL_syntax___icode_generation___EscapableBlock___break_value(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3028 REGB0
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
3029 if (UNTAG_Bool(REGB0
)) {
3031 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 524);
3033 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3034 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[3]);
3036 /* syntax/icode_generation.nit:526 */
3037 fra
.me
.REG
[2] = CALL_syntax___scope___AEscapeExpr___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3038 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3039 if (UNTAG_Bool(REGB0
)) {
3040 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 526);
3042 fra
.me
.REG
[2] = CALL_syntax___icode_generation___EscapableBlock___break_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3043 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
3044 if (UNTAG_Bool(REGB0
)) {
3046 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 526);
3048 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3049 /* syntax/icode_generation.nit:527 */
3050 fra
.me
.REG
[2] = NIT_NULL
;
3053 stack_frame_head
= fra
.me
.prev
;
3054 return fra
.me
.REG
[2];
3056 val_t
syntax___icode_generation___AContinueExpr___generate_icode(val_t p0
, val_t p1
){
3057 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3061 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3062 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3064 fra
.me
.meth
= LOCATE_syntax___icode_generation___AContinueExpr___generate_icode
;
3065 fra
.me
.has_broke
= 0;
3066 fra
.me
.REG_size
= 5;
3067 fra
.me
.nitni_local_ref_head
= NULL
;
3068 fra
.me
.REG
[0] = NIT_NULL
;
3069 fra
.me
.REG
[1] = NIT_NULL
;
3070 fra
.me
.REG
[2] = NIT_NULL
;
3071 fra
.me
.REG
[3] = NIT_NULL
;
3072 fra
.me
.REG
[4] = NIT_NULL
;
3075 /* syntax/icode_generation.nit:532 */
3076 fra
.me
.REG
[2] = fra
.me
.REG
[0];
3077 /* syntax/icode_generation.nit:534 */
3078 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3079 /* syntax/icode_generation.nit:535 */
3080 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3081 if (UNTAG_Bool(REGB0
)) {
3083 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3084 if (UNTAG_Bool(REGB1
)) {
3085 REGB1
= TAG_Bool(false);
3088 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3092 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3093 if (UNTAG_Bool(REGB0
)) {
3094 /* syntax/icode_generation.nit:536 */
3095 fra
.me
.REG
[4] = CALL_syntax___scope___AEscapeExpr___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3096 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3097 if (UNTAG_Bool(REGB0
)) {
3098 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 536);
3100 fra
.me
.REG
[4] = CALL_syntax___icode_generation___EscapableBlock___continue_value(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3101 REGB0
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
3102 if (UNTAG_Bool(REGB0
)) {
3104 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 536);
3106 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3107 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[3]);
3109 /* syntax/icode_generation.nit:538 */
3110 fra
.me
.REG
[2] = CALL_syntax___scope___AEscapeExpr___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3111 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3112 if (UNTAG_Bool(REGB0
)) {
3113 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 538);
3115 fra
.me
.REG
[2] = CALL_syntax___icode_generation___EscapableBlock___continue_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3116 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
3117 if (UNTAG_Bool(REGB0
)) {
3119 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 538);
3121 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3122 /* syntax/icode_generation.nit:539 */
3123 fra
.me
.REG
[2] = NIT_NULL
;
3126 stack_frame_head
= fra
.me
.prev
;
3127 return fra
.me
.REG
[2];
3129 val_t
syntax___icode_generation___AAbortExpr___generate_icode(val_t p0
, val_t p1
){
3130 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3133 static val_t once_value_1
; /* Once value */
3134 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3135 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3137 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAbortExpr___generate_icode
;
3138 fra
.me
.has_broke
= 0;
3139 fra
.me
.REG_size
= 3;
3140 fra
.me
.nitni_local_ref_head
= NULL
;
3141 fra
.me
.REG
[0] = NIT_NULL
;
3142 fra
.me
.REG
[1] = NIT_NULL
;
3143 fra
.me
.REG
[2] = NIT_NULL
;
3146 /* syntax/icode_generation.nit:546 */
3148 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3149 if (!once_value_1
) {
3150 fra
.me
.REG
[2] = BOX_NativeString("Aborted");
3152 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
3153 once_value_1
= fra
.me
.REG
[2];
3154 register_static_object(&once_value_1
);
3155 } else fra
.me
.REG
[2] = once_value_1
;
3156 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3157 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
3158 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3159 /* syntax/icode_generation.nit:547 */
3160 fra
.me
.REG
[0] = NIT_NULL
;
3163 stack_frame_head
= fra
.me
.prev
;
3164 return fra
.me
.REG
[0];
3166 val_t
syntax___icode_generation___AIfExpr___generate_icode(val_t p0
, val_t p1
){
3167 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3171 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3172 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3174 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIfExpr___generate_icode
;
3175 fra
.me
.has_broke
= 0;
3176 fra
.me
.REG_size
= 5;
3177 fra
.me
.nitni_local_ref_head
= NULL
;
3178 fra
.me
.REG
[0] = NIT_NULL
;
3179 fra
.me
.REG
[1] = NIT_NULL
;
3180 fra
.me
.REG
[2] = NIT_NULL
;
3181 fra
.me
.REG
[3] = NIT_NULL
;
3182 fra
.me
.REG
[4] = NIT_NULL
;
3185 /* syntax/icode_generation.nit:554 */
3186 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3187 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3188 fra
.me
.REG
[2] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[2]);
3189 /* syntax/icode_generation.nit:555 */
3190 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3191 /* syntax/icode_generation.nit:556 */
3192 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3193 /* syntax/icode_generation.nit:558 */
3194 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3195 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3196 if (UNTAG_Bool(REGB0
)) {
3198 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3199 if (UNTAG_Bool(REGB1
)) {
3200 REGB1
= TAG_Bool(false);
3203 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3207 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3208 if (UNTAG_Bool(REGB0
)) {
3209 /* syntax/icode_generation.nit:559 */
3210 fra
.me
.REG
[4] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3211 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3212 /* syntax/icode_generation.nit:560 */
3213 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3214 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3216 /* syntax/icode_generation.nit:563 */
3217 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3218 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3219 if (UNTAG_Bool(REGB0
)) {
3221 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3222 if (UNTAG_Bool(REGB1
)) {
3223 REGB1
= TAG_Bool(false);
3226 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3230 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3231 if (UNTAG_Bool(REGB0
)) {
3232 /* syntax/icode_generation.nit:564 */
3233 fra
.me
.REG
[2] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3234 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3235 /* syntax/icode_generation.nit:565 */
3236 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3237 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3239 /* syntax/icode_generation.nit:568 */
3240 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3241 /* syntax/icode_generation.nit:569 */
3242 fra
.me
.REG
[3] = NIT_NULL
;
3245 stack_frame_head
= fra
.me
.prev
;
3246 return fra
.me
.REG
[3];
3248 val_t
syntax___icode_generation___AWhileExpr___generate_icode(val_t p0
, val_t p1
){
3249 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3253 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3254 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3256 fra
.me
.meth
= LOCATE_syntax___icode_generation___AWhileExpr___generate_icode
;
3257 fra
.me
.has_broke
= 0;
3258 fra
.me
.REG_size
= 7;
3259 fra
.me
.nitni_local_ref_head
= NULL
;
3260 fra
.me
.REG
[0] = NIT_NULL
;
3261 fra
.me
.REG
[1] = NIT_NULL
;
3262 fra
.me
.REG
[2] = NIT_NULL
;
3263 fra
.me
.REG
[3] = NIT_NULL
;
3264 fra
.me
.REG
[4] = NIT_NULL
;
3265 fra
.me
.REG
[5] = NIT_NULL
;
3266 fra
.me
.REG
[6] = NIT_NULL
;
3269 /* syntax/icode_generation.nit:576 */
3270 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3271 /* syntax/icode_generation.nit:577 */
3272 fra
.me
.REG
[3] = NEW_ILoop_icode___icode_base___ILoop___init();
3273 /* syntax/icode_generation.nit:578 */
3274 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3275 /* syntax/icode_generation.nit:579 */
3276 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3277 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3278 if (UNTAG_Bool(REGB0
)) {
3279 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 579);
3281 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3282 /* syntax/icode_generation.nit:580 */
3283 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3284 /* syntax/icode_generation.nit:583 */
3285 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3286 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3287 fra
.me
.REG
[4] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[4]);
3288 /* syntax/icode_generation.nit:584 */
3289 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3290 /* syntax/icode_generation.nit:587 */
3291 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3292 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
3293 if (UNTAG_Bool(REGB0
)) {
3295 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
3296 if (UNTAG_Bool(REGB1
)) {
3297 REGB1
= TAG_Bool(false);
3300 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
3304 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3305 if (UNTAG_Bool(REGB0
)) {
3306 /* syntax/icode_generation.nit:588 */
3307 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3308 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3309 /* syntax/icode_generation.nit:589 */
3310 fra
.me
.REG
[5] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3311 fra
.me
.REG
[6] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3312 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
3313 if (UNTAG_Bool(REGB0
)) {
3314 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 589);
3316 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3317 /* syntax/icode_generation.nit:590 */
3318 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3319 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3321 /* syntax/icode_generation.nit:594 */
3322 fra
.me
.REG
[4] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3323 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3324 /* syntax/icode_generation.nit:595 */
3325 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3326 /* syntax/icode_generation.nit:597 */
3327 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3328 /* syntax/icode_generation.nit:598 */
3329 fra
.me
.REG
[2] = NIT_NULL
;
3332 stack_frame_head
= fra
.me
.prev
;
3333 return fra
.me
.REG
[2];
3335 val_t
syntax___icode_generation___ALoopExpr___generate_icode(val_t p0
, val_t p1
){
3336 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3340 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3341 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3343 fra
.me
.meth
= LOCATE_syntax___icode_generation___ALoopExpr___generate_icode
;
3344 fra
.me
.has_broke
= 0;
3345 fra
.me
.REG_size
= 5;
3346 fra
.me
.nitni_local_ref_head
= NULL
;
3347 fra
.me
.REG
[0] = NIT_NULL
;
3348 fra
.me
.REG
[1] = NIT_NULL
;
3349 fra
.me
.REG
[2] = NIT_NULL
;
3350 fra
.me
.REG
[3] = NIT_NULL
;
3351 fra
.me
.REG
[4] = NIT_NULL
;
3354 /* syntax/icode_generation.nit:605 */
3355 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3356 /* syntax/icode_generation.nit:606 */
3357 fra
.me
.REG
[3] = NEW_ILoop_icode___icode_base___ILoop___init();
3358 /* syntax/icode_generation.nit:607 */
3359 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3360 /* syntax/icode_generation.nit:608 */
3361 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3362 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3363 if (UNTAG_Bool(REGB0
)) {
3364 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 608);
3366 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3367 /* syntax/icode_generation.nit:609 */
3368 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3369 /* syntax/icode_generation.nit:612 */
3370 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3371 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3372 if (UNTAG_Bool(REGB0
)) {
3374 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3375 if (UNTAG_Bool(REGB1
)) {
3376 REGB1
= TAG_Bool(false);
3379 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3383 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3384 if (UNTAG_Bool(REGB0
)) {
3385 /* syntax/icode_generation.nit:613 */
3386 fra
.me
.REG
[3] = NEW_ISeq_icode___icode_base___ISeq___init();
3387 /* syntax/icode_generation.nit:614 */
3388 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3389 /* syntax/icode_generation.nit:615 */
3390 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3391 /* syntax/icode_generation.nit:616 */
3392 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3393 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3394 if (UNTAG_Bool(REGB0
)) {
3395 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 616);
3397 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3398 /* syntax/icode_generation.nit:617 */
3399 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3400 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3402 /* syntax/icode_generation.nit:620 */
3403 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3404 /* syntax/icode_generation.nit:621 */
3405 fra
.me
.REG
[2] = NIT_NULL
;
3408 stack_frame_head
= fra
.me
.prev
;
3409 return fra
.me
.REG
[2];
3411 val_t
syntax___icode_generation___AForExpr___generate_icode(val_t p0
, val_t p1
){
3412 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
3420 static val_t once_value_1
; /* Once value */
3421 static val_t once_value_2
; /* Once value */
3422 static val_t once_value_3
; /* Once value */
3423 static val_t once_value_4
; /* Once value */
3424 static val_t once_value_5
; /* Once value */
3425 static val_t once_value_6
; /* Once value */
3426 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3427 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3429 fra
.me
.meth
= LOCATE_syntax___icode_generation___AForExpr___generate_icode
;
3430 fra
.me
.has_broke
= 0;
3431 fra
.me
.REG_size
= 9;
3432 fra
.me
.nitni_local_ref_head
= NULL
;
3433 fra
.me
.REG
[0] = NIT_NULL
;
3434 fra
.me
.REG
[1] = NIT_NULL
;
3435 fra
.me
.REG
[2] = NIT_NULL
;
3436 fra
.me
.REG
[3] = NIT_NULL
;
3437 fra
.me
.REG
[4] = NIT_NULL
;
3438 fra
.me
.REG
[5] = NIT_NULL
;
3439 fra
.me
.REG
[6] = NIT_NULL
;
3440 fra
.me
.REG
[7] = NIT_NULL
;
3441 fra
.me
.REG
[8] = NIT_NULL
;
3444 /* syntax/icode_generation.nit:628 */
3445 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3446 /* syntax/icode_generation.nit:629 */
3447 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3448 /* syntax/icode_generation.nit:630 */
3449 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3450 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3451 /* syntax/icode_generation.nit:634 */
3452 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_parser___parser_nodes___ARangeExpr
, ID_parser___parser_nodes___ARangeExpr
)) /*cast ARangeExpr*/;
3453 if (UNTAG_Bool(REGB0
)) {
3454 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3455 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_range(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
3456 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[5]));
3457 if (UNTAG_Bool(REGB0
)) {
3459 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
3463 REGB1
= TAG_Bool(false);
3466 if (UNTAG_Bool(REGB0
)) {
3467 /* syntax/icode_generation.nit:639 */
3469 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3470 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3471 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3472 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3473 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3474 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3475 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3476 /* syntax/icode_generation.nit:640 */
3477 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_parser___parser_nodes___ACrangeExpr
, ID_parser___parser_nodes___ACrangeExpr
)) /*cast ACrangeExpr*/;
3478 if (UNTAG_Bool(REGB0
)) {
3479 /* syntax/icode_generation.nit:641 */
3480 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3481 if (!once_value_1
) {
3482 if (!once_value_2
) {
3483 fra
.me
.REG
[7] = BOX_NativeString("enumerate_to");
3484 REGB0
= TAG_Int(12);
3485 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
3486 once_value_2
= fra
.me
.REG
[7];
3487 register_static_object(&once_value_2
);
3488 } else fra
.me
.REG
[7] = once_value_2
;
3489 fra
.me
.REG
[7] = fra
.me
.REG
[7];
3490 fra
.me
.REG
[7] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3491 once_value_1
= fra
.me
.REG
[7];
3492 register_static_object(&once_value_1
);
3493 } else fra
.me
.REG
[7] = once_value_1
;
3494 fra
.me
.REG
[7] = fra
.me
.REG
[7];
3495 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]);
3497 /* syntax/icode_generation.nit:643 */
3498 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_parser___parser_nodes___AOrangeExpr
, ID_parser___parser_nodes___AOrangeExpr
)) /*cast AOrangeExpr*/;
3499 if (UNTAG_Bool(REGB0
)) {
3501 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 643);
3503 /* syntax/icode_generation.nit:644 */
3504 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3505 if (!once_value_3
) {
3506 if (!once_value_4
) {
3507 fra
.me
.REG
[6] = BOX_NativeString("enumerate_before");
3508 REGB0
= TAG_Int(16);
3509 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3510 once_value_4
= fra
.me
.REG
[6];
3511 register_static_object(&once_value_4
);
3512 } else fra
.me
.REG
[6] = once_value_4
;
3513 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3514 fra
.me
.REG
[6] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3515 once_value_3
= fra
.me
.REG
[6];
3516 register_static_object(&once_value_3
);
3517 } else fra
.me
.REG
[6] = once_value_3
;
3518 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3519 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]);
3520 fra
.me
.REG
[7] = fra
.me
.REG
[6];
3523 /* syntax/icode_generation.nit:650 */
3524 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3525 if (!once_value_5
) {
3526 if (!once_value_6
) {
3527 fra
.me
.REG
[4] = BOX_NativeString("iterate");
3529 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3530 once_value_6
= fra
.me
.REG
[4];
3531 register_static_object(&once_value_6
);
3532 } else fra
.me
.REG
[4] = once_value_6
;
3533 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3534 fra
.me
.REG
[4] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3535 once_value_5
= fra
.me
.REG
[4];
3536 register_static_object(&once_value_5
);
3537 } else fra
.me
.REG
[4] = once_value_5
;
3538 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3539 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]);
3540 fra
.me
.REG
[7] = fra
.me
.REG
[4];
3541 /* syntax/icode_generation.nit:651 */
3543 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3544 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3545 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3546 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3547 fra
.me
.REG
[5] = fra
.me
.REG
[4];
3549 /* syntax/icode_generation.nit:655 */
3550 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
3551 if (UNTAG_Bool(REGB0
)) {
3552 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 655);
3554 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3555 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3556 if (UNTAG_Bool(REGB0
)) {
3557 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 655);
3559 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3560 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3561 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3562 if (UNTAG_Bool(REGB0
)) {
3563 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 655);
3565 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3566 fra
.me
.REG
[4] = CALL_icode___icode_builder___MMSignature___generate_empty_iclosuredef(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
3567 /* syntax/icode_generation.nit:656 */
3568 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3569 /* syntax/icode_generation.nit:658 */
3570 fra
.me
.REG
[6] = NEW_ISeq_icode___icode_base___ISeq___init();
3571 /* syntax/icode_generation.nit:659 */
3572 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3573 /* syntax/icode_generation.nit:660 */
3574 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3575 /* syntax/icode_generation.nit:661 */
3576 fra
.me
.REG
[2] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3577 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3578 if (UNTAG_Bool(REGB0
)) {
3579 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 661);
3581 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
3582 /* syntax/icode_generation.nit:662 */
3583 fra
.me
.REG
[2] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3584 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3585 if (UNTAG_Bool(REGB0
)) {
3586 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 662);
3588 CALL_syntax___icode_generation___EscapableBlock___break_value__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3589 /* syntax/icode_generation.nit:664 */
3590 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3591 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3592 /* syntax/icode_generation.nit:665 */
3593 fra
.me
.REG
[2] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3594 fra
.me
.REG
[8] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3595 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3596 if (UNTAG_Bool(REGB0
)) {
3597 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 665);
3599 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[8]);
3600 /* syntax/icode_generation.nit:666 */
3601 fra
.me
.REG
[8] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3602 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
3603 if (UNTAG_Bool(REGB0
)) {
3604 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 666);
3606 CALL_syntax___icode_generation___EscapableBlock___continue_value__eq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
3607 /* syntax/icode_generation.nit:667 */
3609 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AForExpr___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3610 /* ../lib/standard/collection/array.nit:24 */
3611 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8])!=NIT_NULL
);
3612 if (UNTAG_Bool(REGB1
)) {
3614 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
3616 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8]);
3617 /* ../lib/standard/kernel.nit:352 */
3619 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
3620 if (UNTAG_Bool(REGB2
)) {
3622 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
3624 /* ../lib/standard/kernel.nit:232 */
3625 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
3626 /* ../lib/standard/kernel.nit:352 */
3627 if (UNTAG_Bool(REGB2
)) {
3628 /* syntax/icode_generation.nit:667 */
3630 /* syntax/icode_generation.nit:668 */
3631 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AForExpr___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3632 /* ../lib/standard/collection/array.nit:278 */
3634 /* ../lib/standard/collection/array.nit:280 */
3636 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
3637 if (UNTAG_Bool(REGB5
)) {
3639 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
3641 /* ../lib/standard/kernel.nit:233 */
3642 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
3643 /* ../lib/standard/collection/array.nit:280 */
3644 if (UNTAG_Bool(REGB4
)) {
3645 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8])!=NIT_NULL
);
3646 if (UNTAG_Bool(REGB4
)) {
3648 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
3650 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8]);
3651 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
3652 if (UNTAG_Bool(REGB5
)) {
3654 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
3656 /* ../lib/standard/kernel.nit:232 */
3657 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
3659 /* ../lib/standard/collection/array.nit:280 */
3660 REGB5
= TAG_Bool(false);
3663 if (UNTAG_Bool(REGB4
)) {
3665 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
3667 /* ../lib/standard/collection/array.nit:281 */
3668 fra
.me
.REG
[8] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[8]);
3669 REGB4
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
3670 if (UNTAG_Bool(REGB4
)) {
3671 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
3673 /* ../lib/standard/collection/array.nit:718 */
3674 fra
.me
.REG
[8] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB3
)];
3675 /* ../lib/standard/collection/array.nit:281 */
3678 /* syntax/icode_generation.nit:668 */
3679 fra
.me
.REG
[8] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[8]);
3680 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3681 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB2
);
3682 fra
.me
.REG
[2] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[8], fra
.me
.REG
[2]);
3683 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3684 /* ../lib/standard/kernel.nit:354 */
3686 /* ../lib/standard/kernel.nit:235 */
3687 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
3688 /* ../lib/standard/kernel.nit:354 */
3691 /* ../lib/standard/kernel.nit:352 */
3696 /* syntax/icode_generation.nit:670 */
3697 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AForExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3698 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3699 /* syntax/icode_generation.nit:673 */
3700 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3701 /* syntax/icode_generation.nit:674 */
3703 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3704 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
3705 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]);
3706 /* syntax/icode_generation.nit:676 */
3707 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3708 /* syntax/icode_generation.nit:677 */
3709 fra
.me
.REG
[3] = NIT_NULL
;
3712 stack_frame_head
= fra
.me
.prev
;
3713 return fra
.me
.REG
[3];
3715 val_t
syntax___icode_generation___AAssertExpr___generate_icode(val_t p0
, val_t p1
){
3716 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3720 static val_t once_value_1
; /* Once value */
3721 static val_t once_value_2
; /* Once value */
3722 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3723 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3725 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAssertExpr___generate_icode
;
3726 fra
.me
.has_broke
= 0;
3727 fra
.me
.REG_size
= 5;
3728 fra
.me
.nitni_local_ref_head
= NULL
;
3729 fra
.me
.REG
[0] = NIT_NULL
;
3730 fra
.me
.REG
[1] = NIT_NULL
;
3731 fra
.me
.REG
[2] = NIT_NULL
;
3732 fra
.me
.REG
[3] = NIT_NULL
;
3733 fra
.me
.REG
[4] = NIT_NULL
;
3736 /* syntax/icode_generation.nit:684 */
3737 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3738 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3739 /* syntax/icode_generation.nit:685 */
3740 fra
.me
.REG
[2] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[2]);
3741 /* syntax/icode_generation.nit:686 */
3742 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3743 /* syntax/icode_generation.nit:687 */
3744 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3745 /* syntax/icode_generation.nit:688 */
3746 fra
.me
.REG
[2] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3747 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3748 /* syntax/icode_generation.nit:689 */
3749 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3750 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3751 /* syntax/icode_generation.nit:690 */
3752 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssertExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3753 /* syntax/icode_generation.nit:691 */
3754 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3755 if (UNTAG_Bool(REGB0
)) {
3757 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3758 if (UNTAG_Bool(REGB1
)) {
3759 REGB1
= TAG_Bool(false);
3762 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
3766 if (UNTAG_Bool(REGB0
)) {
3767 /* syntax/icode_generation.nit:692 */
3769 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3770 if (!once_value_1
) {
3771 fra
.me
.REG
[4] = BOX_NativeString("Assert failed");
3772 REGB0
= TAG_Int(13);
3773 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3774 once_value_1
= fra
.me
.REG
[4];
3775 register_static_object(&once_value_1
);
3776 } else fra
.me
.REG
[4] = once_value_1
;
3777 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3778 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3779 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3781 /* syntax/icode_generation.nit:694 */
3783 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3784 if (!once_value_2
) {
3785 fra
.me
.REG
[4] = BOX_NativeString("Assert '%s' failed");
3786 REGB0
= TAG_Int(18);
3787 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3788 once_value_2
= fra
.me
.REG
[4];
3789 register_static_object(&once_value_2
);
3790 } else fra
.me
.REG
[4] = once_value_2
;
3791 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3792 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3793 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3794 if (UNTAG_Bool(REGB0
)) {
3795 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 694);
3797 fra
.me
.REG
[0] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3798 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3799 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
3800 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3802 /* syntax/icode_generation.nit:696 */
3803 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3804 /* syntax/icode_generation.nit:697 */
3805 fra
.me
.REG
[3] = NIT_NULL
;
3808 stack_frame_head
= fra
.me
.prev
;
3809 return fra
.me
.REG
[3];
3811 val_t
syntax___icode_generation___AVarExpr___generate_icode(val_t p0
, val_t p1
){
3812 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3814 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3815 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3817 fra
.me
.meth
= LOCATE_syntax___icode_generation___AVarExpr___generate_icode
;
3818 fra
.me
.has_broke
= 0;
3819 fra
.me
.REG_size
= 2;
3820 fra
.me
.nitni_local_ref_head
= NULL
;
3821 fra
.me
.REG
[0] = NIT_NULL
;
3822 fra
.me
.REG
[1] = NIT_NULL
;
3825 /* syntax/icode_generation.nit:704 */
3826 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3827 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3830 stack_frame_head
= fra
.me
.prev
;
3831 return fra
.me
.REG
[0];
3833 val_t
syntax___icode_generation___AVarAssignExpr___generate_icode(val_t p0
, val_t p1
){
3834 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3836 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3837 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3839 fra
.me
.meth
= LOCATE_syntax___icode_generation___AVarAssignExpr___generate_icode
;
3840 fra
.me
.has_broke
= 0;
3841 fra
.me
.REG_size
= 3;
3842 fra
.me
.nitni_local_ref_head
= NULL
;
3843 fra
.me
.REG
[0] = NIT_NULL
;
3844 fra
.me
.REG
[1] = NIT_NULL
;
3845 fra
.me
.REG
[2] = NIT_NULL
;
3848 /* syntax/icode_generation.nit:711 */
3849 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3850 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3851 /* syntax/icode_generation.nit:712 */
3852 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3853 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3854 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
3855 /* syntax/icode_generation.nit:713 */
3856 fra
.me
.REG
[2] = NIT_NULL
;
3859 stack_frame_head
= fra
.me
.prev
;
3860 return fra
.me
.REG
[2];
3862 val_t
syntax___icode_generation___AVarReassignExpr___generate_icode(val_t p0
, val_t p1
){
3863 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3866 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3867 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3869 fra
.me
.meth
= LOCATE_syntax___icode_generation___AVarReassignExpr___generate_icode
;
3870 fra
.me
.has_broke
= 0;
3871 fra
.me
.REG_size
= 7;
3872 fra
.me
.nitni_local_ref_head
= NULL
;
3873 fra
.me
.REG
[0] = NIT_NULL
;
3874 fra
.me
.REG
[1] = NIT_NULL
;
3875 fra
.me
.REG
[2] = NIT_NULL
;
3876 fra
.me
.REG
[3] = NIT_NULL
;
3877 fra
.me
.REG
[4] = NIT_NULL
;
3878 fra
.me
.REG
[5] = NIT_NULL
;
3879 fra
.me
.REG
[6] = NIT_NULL
;
3882 /* syntax/icode_generation.nit:718 */
3883 fra
.me
.REG
[2] = fra
.me
.REG
[0];
3884 /* syntax/icode_generation.nit:720 */
3885 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3886 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3887 /* syntax/icode_generation.nit:721 */
3888 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3889 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3890 /* syntax/icode_generation.nit:722 */
3891 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3893 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3894 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
3895 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
3896 fra
.me
.REG
[6] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3897 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3898 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3899 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3900 if (UNTAG_Bool(REGB0
)) {
3901 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 722);
3903 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3904 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*/;
3905 if (UNTAG_Bool(REGB0
)) {
3907 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 722);
3909 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]);
3910 /* syntax/icode_generation.nit:723 */
3911 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
3912 /* syntax/icode_generation.nit:724 */
3913 fra
.me
.REG
[2] = NIT_NULL
;
3916 stack_frame_head
= fra
.me
.prev
;
3917 return fra
.me
.REG
[2];
3919 val_t
syntax___icode_generation___ASelfExpr___generate_icode(val_t p0
, val_t p1
){
3920 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3922 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3923 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3925 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASelfExpr___generate_icode
;
3926 fra
.me
.has_broke
= 0;
3927 fra
.me
.REG_size
= 2;
3928 fra
.me
.nitni_local_ref_head
= NULL
;
3929 fra
.me
.REG
[0] = NIT_NULL
;
3930 fra
.me
.REG
[1] = NIT_NULL
;
3933 /* syntax/icode_generation.nit:731 */
3934 fra
.me
.REG
[0] = CALL_syntax___syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3935 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3938 stack_frame_head
= fra
.me
.prev
;
3939 return fra
.me
.REG
[0];
3941 val_t
syntax___icode_generation___AIfexprExpr___generate_icode(val_t p0
, val_t p1
){
3942 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
3944 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3945 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3947 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIfexprExpr___generate_icode
;
3948 fra
.me
.has_broke
= 0;
3949 fra
.me
.REG_size
= 6;
3950 fra
.me
.nitni_local_ref_head
= NULL
;
3951 fra
.me
.REG
[0] = NIT_NULL
;
3952 fra
.me
.REG
[1] = NIT_NULL
;
3953 fra
.me
.REG
[2] = NIT_NULL
;
3954 fra
.me
.REG
[3] = NIT_NULL
;
3955 fra
.me
.REG
[4] = NIT_NULL
;
3956 fra
.me
.REG
[5] = NIT_NULL
;
3959 /* syntax/icode_generation.nit:739 */
3960 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3961 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3962 fra
.me
.REG
[2] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[2]);
3963 /* syntax/icode_generation.nit:740 */
3964 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3965 /* syntax/icode_generation.nit:741 */
3966 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3967 /* syntax/icode_generation.nit:744 */
3968 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3969 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3970 /* syntax/icode_generation.nit:747 */
3971 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3972 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3973 /* syntax/icode_generation.nit:748 */
3974 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3975 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3976 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
3977 /* syntax/icode_generation.nit:751 */
3978 fra
.me
.REG
[2] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3979 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3980 /* syntax/icode_generation.nit:752 */
3981 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3982 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3983 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[0]);
3984 /* syntax/icode_generation.nit:754 */
3985 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3986 /* syntax/icode_generation.nit:755 */
3989 stack_frame_head
= fra
.me
.prev
;
3990 return fra
.me
.REG
[4];
3992 val_t
syntax___icode_generation___AEeExpr___generate_icode(val_t p0
, val_t p1
){
3993 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3995 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3996 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3998 fra
.me
.meth
= LOCATE_syntax___icode_generation___AEeExpr___generate_icode
;
3999 fra
.me
.has_broke
= 0;
4000 fra
.me
.REG_size
= 4;
4001 fra
.me
.nitni_local_ref_head
= NULL
;
4002 fra
.me
.REG
[0] = NIT_NULL
;
4003 fra
.me
.REG
[1] = NIT_NULL
;
4004 fra
.me
.REG
[2] = NIT_NULL
;
4005 fra
.me
.REG
[3] = NIT_NULL
;
4008 /* syntax/icode_generation.nit:762 */
4009 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AEeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4010 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4011 /* syntax/icode_generation.nit:763 */
4012 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AEeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4013 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4014 /* syntax/icode_generation.nit:764 */
4015 fra
.me
.REG
[3] = NEW_IIs_icode___icode_base___IIs___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4016 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4017 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]);
4020 stack_frame_head
= fra
.me
.prev
;
4021 return fra
.me
.REG
[0];
4023 val_t
syntax___icode_generation___AOrExpr___generate_icode(val_t p0
, val_t p1
){
4024 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
4026 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4027 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4029 fra
.me
.meth
= LOCATE_syntax___icode_generation___AOrExpr___generate_icode
;
4030 fra
.me
.has_broke
= 0;
4031 fra
.me
.REG_size
= 6;
4032 fra
.me
.nitni_local_ref_head
= NULL
;
4033 fra
.me
.REG
[0] = NIT_NULL
;
4034 fra
.me
.REG
[1] = NIT_NULL
;
4035 fra
.me
.REG
[2] = NIT_NULL
;
4036 fra
.me
.REG
[3] = NIT_NULL
;
4037 fra
.me
.REG
[4] = NIT_NULL
;
4038 fra
.me
.REG
[5] = NIT_NULL
;
4041 /* syntax/icode_generation.nit:772 */
4042 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4043 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4044 /* syntax/icode_generation.nit:775 */
4045 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4046 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4047 fra
.me
.REG
[3] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[3]);
4048 /* syntax/icode_generation.nit:776 */
4049 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4050 /* syntax/icode_generation.nit:777 */
4051 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4052 /* syntax/icode_generation.nit:778 */
4053 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4054 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4055 /* syntax/icode_generation.nit:779 */
4056 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___lit_true_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4057 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[5]);
4058 /* syntax/icode_generation.nit:782 */
4059 fra
.me
.REG
[3] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4060 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4061 /* syntax/icode_generation.nit:783 */
4062 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4063 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4064 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4065 /* syntax/icode_generation.nit:785 */
4066 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4067 /* syntax/icode_generation.nit:786 */
4070 stack_frame_head
= fra
.me
.prev
;
4071 return fra
.me
.REG
[2];
4073 val_t
syntax___icode_generation___AAndExpr___generate_icode(val_t p0
, val_t p1
){
4074 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
4076 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4077 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4079 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAndExpr___generate_icode
;
4080 fra
.me
.has_broke
= 0;
4081 fra
.me
.REG_size
= 6;
4082 fra
.me
.nitni_local_ref_head
= NULL
;
4083 fra
.me
.REG
[0] = NIT_NULL
;
4084 fra
.me
.REG
[1] = NIT_NULL
;
4085 fra
.me
.REG
[2] = NIT_NULL
;
4086 fra
.me
.REG
[3] = NIT_NULL
;
4087 fra
.me
.REG
[4] = NIT_NULL
;
4088 fra
.me
.REG
[5] = NIT_NULL
;
4091 /* syntax/icode_generation.nit:794 */
4092 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4093 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4094 /* syntax/icode_generation.nit:797 */
4095 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4096 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4097 fra
.me
.REG
[3] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[3]);
4098 /* syntax/icode_generation.nit:798 */
4099 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4100 /* syntax/icode_generation.nit:799 */
4101 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4102 /* syntax/icode_generation.nit:800 */
4103 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4104 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4105 /* syntax/icode_generation.nit:801 */
4106 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___lit_false_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4107 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[5]);
4108 /* syntax/icode_generation.nit:804 */
4109 fra
.me
.REG
[3] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4110 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4111 /* syntax/icode_generation.nit:805 */
4112 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4113 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4114 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4115 /* syntax/icode_generation.nit:807 */
4116 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4117 /* syntax/icode_generation.nit:808 */
4120 stack_frame_head
= fra
.me
.prev
;
4121 return fra
.me
.REG
[2];
4123 val_t
syntax___icode_generation___ANotExpr___generate_icode(val_t p0
, val_t p1
){
4124 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4126 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4127 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4129 fra
.me
.meth
= LOCATE_syntax___icode_generation___ANotExpr___generate_icode
;
4130 fra
.me
.has_broke
= 0;
4131 fra
.me
.REG_size
= 3;
4132 fra
.me
.nitni_local_ref_head
= NULL
;
4133 fra
.me
.REG
[0] = NIT_NULL
;
4134 fra
.me
.REG
[1] = NIT_NULL
;
4135 fra
.me
.REG
[2] = NIT_NULL
;
4138 /* syntax/icode_generation.nit:815 */
4139 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4140 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4141 /* syntax/icode_generation.nit:816 */
4142 fra
.me
.REG
[2] = NEW_INot_icode___icode_base___INot___init(fra
.me
.REG
[2]);
4143 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4144 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]);
4147 stack_frame_head
= fra
.me
.prev
;
4148 return fra
.me
.REG
[0];
4150 val_t
syntax___icode_generation___AOrElseExpr___generate_icode(val_t p0
, val_t p1
){
4151 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
4153 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4154 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4156 fra
.me
.meth
= LOCATE_syntax___icode_generation___AOrElseExpr___generate_icode
;
4157 fra
.me
.has_broke
= 0;
4158 fra
.me
.REG_size
= 7;
4159 fra
.me
.nitni_local_ref_head
= NULL
;
4160 fra
.me
.REG
[0] = NIT_NULL
;
4161 fra
.me
.REG
[1] = NIT_NULL
;
4162 fra
.me
.REG
[2] = NIT_NULL
;
4163 fra
.me
.REG
[3] = NIT_NULL
;
4164 fra
.me
.REG
[4] = NIT_NULL
;
4165 fra
.me
.REG
[5] = NIT_NULL
;
4166 fra
.me
.REG
[6] = NIT_NULL
;
4169 /* syntax/icode_generation.nit:824 */
4170 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4171 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4172 /* syntax/icode_generation.nit:827 */
4173 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4174 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4175 /* syntax/icode_generation.nit:830 */
4176 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___lit_null_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4177 /* syntax/icode_generation.nit:831 */
4178 fra
.me
.REG
[4] = NEW_IIs_icode___icode_base___IIs___init(fra
.me
.REG
[2], fra
.me
.REG
[4]);
4179 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4180 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4181 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]);
4182 /* syntax/icode_generation.nit:832 */
4183 fra
.me
.REG
[5] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[5]);
4184 /* syntax/icode_generation.nit:833 */
4185 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4186 /* syntax/icode_generation.nit:834 */
4187 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4188 /* syntax/icode_generation.nit:837 */
4189 fra
.me
.REG
[6] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4190 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
4191 /* syntax/icode_generation.nit:838 */
4192 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4193 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4194 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
4195 /* syntax/icode_generation.nit:841 */
4196 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4197 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4198 /* syntax/icode_generation.nit:842 */
4199 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
4200 /* syntax/icode_generation.nit:844 */
4201 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4202 /* syntax/icode_generation.nit:846 */
4205 stack_frame_head
= fra
.me
.prev
;
4206 return fra
.me
.REG
[3];
4208 val_t
syntax___icode_generation___AIsaExpr___generate_icode(val_t p0
, val_t p1
){
4209 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4212 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4213 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4215 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIsaExpr___generate_icode
;
4216 fra
.me
.has_broke
= 0;
4217 fra
.me
.REG_size
= 5;
4218 fra
.me
.nitni_local_ref_head
= NULL
;
4219 fra
.me
.REG
[0] = NIT_NULL
;
4220 fra
.me
.REG
[1] = NIT_NULL
;
4221 fra
.me
.REG
[2] = NIT_NULL
;
4222 fra
.me
.REG
[3] = NIT_NULL
;
4223 fra
.me
.REG
[4] = NIT_NULL
;
4226 /* syntax/icode_generation.nit:851 */
4227 fra
.me
.REG
[2] = fra
.me
.REG
[0];
4228 /* syntax/icode_generation.nit:853 */
4229 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4230 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4231 /* syntax/icode_generation.nit:854 */
4232 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___selfreg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4233 REGB0
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
4234 if (UNTAG_Bool(REGB0
)) {
4236 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 854);
4238 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4239 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4240 fra
.me
.REG
[0] = NEW_ITypeCheck_icode___icode_base___ITypeCheck___init(fra
.me
.REG
[4], fra
.me
.REG
[3], fra
.me
.REG
[0]);
4241 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4242 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]);
4245 stack_frame_head
= fra
.me
.prev
;
4246 return fra
.me
.REG
[2];
4248 val_t
syntax___icode_generation___AAsCastExpr___generate_icode(val_t p0
, val_t p1
){
4249 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4251 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4252 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4254 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAsCastExpr___generate_icode
;
4255 fra
.me
.has_broke
= 0;
4256 fra
.me
.REG_size
= 3;
4257 fra
.me
.nitni_local_ref_head
= NULL
;
4258 fra
.me
.REG
[0] = NIT_NULL
;
4259 fra
.me
.REG
[1] = NIT_NULL
;
4260 fra
.me
.REG
[2] = NIT_NULL
;
4263 /* syntax/icode_generation.nit:861 */
4264 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsCastExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4265 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4266 /* syntax/icode_generation.nit:862 */
4267 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4268 CALL_icode___icode_builder___ICodeBuilder___add_type_cast(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4269 /* syntax/icode_generation.nit:863 */
4272 stack_frame_head
= fra
.me
.prev
;
4273 return fra
.me
.REG
[2];
4275 val_t
syntax___icode_generation___AAsNotnullExpr___generate_icode(val_t p0
, val_t p1
){
4276 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4278 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4279 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4281 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAsNotnullExpr___generate_icode
;
4282 fra
.me
.has_broke
= 0;
4283 fra
.me
.REG_size
= 3;
4284 fra
.me
.nitni_local_ref_head
= NULL
;
4285 fra
.me
.REG
[0] = NIT_NULL
;
4286 fra
.me
.REG
[1] = NIT_NULL
;
4287 fra
.me
.REG
[2] = NIT_NULL
;
4290 /* syntax/icode_generation.nit:870 */
4291 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4292 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4293 /* syntax/icode_generation.nit:871 */
4294 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4295 CALL_icode___icode_builder___ICodeBuilder___add_type_cast(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4296 /* syntax/icode_generation.nit:872 */
4299 stack_frame_head
= fra
.me
.prev
;
4300 return fra
.me
.REG
[2];
4302 val_t
syntax___icode_generation___ATrueExpr___generate_icode(val_t p0
, val_t p1
){
4303 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4305 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4306 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4308 fra
.me
.meth
= LOCATE_syntax___icode_generation___ATrueExpr___generate_icode
;
4309 fra
.me
.has_broke
= 0;
4310 fra
.me
.REG_size
= 2;
4311 fra
.me
.nitni_local_ref_head
= NULL
;
4312 fra
.me
.REG
[0] = NIT_NULL
;
4313 fra
.me
.REG
[1] = NIT_NULL
;
4316 /* syntax/icode_generation.nit:879 */
4317 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___lit_true_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4320 stack_frame_head
= fra
.me
.prev
;
4321 return fra
.me
.REG
[1];
4323 val_t
syntax___icode_generation___AFalseExpr___generate_icode(val_t p0
, val_t p1
){
4324 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4326 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4327 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4329 fra
.me
.meth
= LOCATE_syntax___icode_generation___AFalseExpr___generate_icode
;
4330 fra
.me
.has_broke
= 0;
4331 fra
.me
.REG_size
= 2;
4332 fra
.me
.nitni_local_ref_head
= NULL
;
4333 fra
.me
.REG
[0] = NIT_NULL
;
4334 fra
.me
.REG
[1] = NIT_NULL
;
4337 /* syntax/icode_generation.nit:886 */
4338 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___lit_false_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4341 stack_frame_head
= fra
.me
.prev
;
4342 return fra
.me
.REG
[1];
4344 val_t
syntax___icode_generation___AIntExpr___generate_icode(val_t p0
, val_t p1
){
4345 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4347 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4348 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4350 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIntExpr___generate_icode
;
4351 fra
.me
.has_broke
= 0;
4352 fra
.me
.REG_size
= 3;
4353 fra
.me
.nitni_local_ref_head
= NULL
;
4354 fra
.me
.REG
[0] = NIT_NULL
;
4355 fra
.me
.REG
[1] = NIT_NULL
;
4356 fra
.me
.REG
[2] = NIT_NULL
;
4359 /* syntax/icode_generation.nit:893 */
4360 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIntExpr___n_number(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4361 fra
.me
.REG
[2] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4362 fra
.me
.REG
[2] = NEW_IIntValue_icode___icode_base___IIntValue___init(fra
.me
.REG
[2]);
4363 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4364 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]);
4367 stack_frame_head
= fra
.me
.prev
;
4368 return fra
.me
.REG
[0];
4370 val_t
syntax___icode_generation___AFloatExpr___generate_icode(val_t p0
, val_t p1
){
4371 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4373 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4374 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4376 fra
.me
.meth
= LOCATE_syntax___icode_generation___AFloatExpr___generate_icode
;
4377 fra
.me
.has_broke
= 0;
4378 fra
.me
.REG_size
= 3;
4379 fra
.me
.nitni_local_ref_head
= NULL
;
4380 fra
.me
.REG
[0] = NIT_NULL
;
4381 fra
.me
.REG
[1] = NIT_NULL
;
4382 fra
.me
.REG
[2] = NIT_NULL
;
4385 /* syntax/icode_generation.nit:900 */
4386 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AFloatExpr___n_float(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4387 fra
.me
.REG
[2] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4388 fra
.me
.REG
[2] = NEW_IFloatValue_icode___icode_base___IFloatValue___init(fra
.me
.REG
[2]);
4389 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4390 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]);
4393 stack_frame_head
= fra
.me
.prev
;
4394 return fra
.me
.REG
[0];
4396 val_t
syntax___icode_generation___ACharExpr___generate_icode(val_t p0
, val_t p1
){
4397 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4399 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4400 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4402 fra
.me
.meth
= LOCATE_syntax___icode_generation___ACharExpr___generate_icode
;
4403 fra
.me
.has_broke
= 0;
4404 fra
.me
.REG_size
= 3;
4405 fra
.me
.nitni_local_ref_head
= NULL
;
4406 fra
.me
.REG
[0] = NIT_NULL
;
4407 fra
.me
.REG
[1] = NIT_NULL
;
4408 fra
.me
.REG
[2] = NIT_NULL
;
4411 /* syntax/icode_generation.nit:907 */
4412 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ACharExpr___n_char(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4413 fra
.me
.REG
[2] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4414 fra
.me
.REG
[2] = NEW_ICharValue_icode___icode_base___ICharValue___init(fra
.me
.REG
[2]);
4415 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4416 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]);
4419 stack_frame_head
= fra
.me
.prev
;
4420 return fra
.me
.REG
[0];
4422 val_t
syntax___icode_generation___AStringFormExpr___generate_icode(val_t p0
, val_t p1
){
4423 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
4426 static val_t once_value_1
; /* Once value */
4427 static val_t once_value_2
; /* Once value */
4428 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4429 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4431 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStringFormExpr___generate_icode
;
4432 fra
.me
.has_broke
= 0;
4433 fra
.me
.REG_size
= 9;
4434 fra
.me
.nitni_local_ref_head
= NULL
;
4435 fra
.me
.REG
[0] = NIT_NULL
;
4436 fra
.me
.REG
[1] = NIT_NULL
;
4437 fra
.me
.REG
[2] = NIT_NULL
;
4438 fra
.me
.REG
[3] = NIT_NULL
;
4439 fra
.me
.REG
[4] = NIT_NULL
;
4440 fra
.me
.REG
[5] = NIT_NULL
;
4441 fra
.me
.REG
[6] = NIT_NULL
;
4442 fra
.me
.REG
[7] = NIT_NULL
;
4443 fra
.me
.REG
[8] = NIT_NULL
;
4446 /* syntax/icode_generation.nit:912 */
4447 fra
.me
.REG
[2] = fra
.me
.REG
[0];
4448 /* syntax/icode_generation.nit:914 */
4449 CALL_syntax___icode_generation___AStringFormExpr___compute_string_infos(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4450 /* syntax/icode_generation.nit:915 */
4451 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4452 /* syntax/icode_generation.nit:916 */
4453 fra
.me
.REG
[4] = NEW_IOnce_icode___icode_base___IOnce___init();
4454 /* syntax/icode_generation.nit:917 */
4455 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4456 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]);
4457 /* syntax/icode_generation.nit:918 */
4458 fra
.me
.REG
[4] = CALL_icode___icode_base___IOnce___body(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4459 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4460 /* syntax/icode_generation.nit:919 */
4461 fra
.me
.REG
[4] = ATTR_syntax___icode_generation___AStringFormExpr____cstring(fra
.me
.REG
[2]);
4462 REGB0
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
4463 if (UNTAG_Bool(REGB0
)) {
4465 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 919);
4467 fra
.me
.REG
[4] = NEW_IStringValue_icode___icode_base___IStringValue___init(fra
.me
.REG
[4]);
4468 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4469 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_nativestring(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4470 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]);
4471 /* syntax/icode_generation.nit:920 */
4472 fra
.me
.REG
[4] = ATTR_syntax___icode_generation___AStringFormExpr____cstring_length(fra
.me
.REG
[2]);
4473 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4474 if (UNTAG_Bool(REGB0
)) {
4475 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 920);
4477 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4478 fra
.me
.REG
[4] = NEW_IIntValue_icode___icode_base___IIntValue___init(fra
.me
.REG
[4]);
4479 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4480 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4481 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]);
4482 /* syntax/icode_generation.nit:921 */
4483 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4484 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4485 if (!once_value_1
) {
4486 if (!once_value_2
) {
4487 fra
.me
.REG
[8] = BOX_NativeString("with_native");
4488 REGB0
= TAG_Int(11);
4489 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
4490 once_value_2
= fra
.me
.REG
[8];
4491 register_static_object(&once_value_2
);
4492 } else fra
.me
.REG
[8] = once_value_2
;
4493 fra
.me
.REG
[8] = fra
.me
.REG
[8];
4494 fra
.me
.REG
[8] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
4495 once_value_1
= fra
.me
.REG
[8];
4496 register_static_object(&once_value_1
);
4497 } else fra
.me
.REG
[8] = once_value_1
;
4498 fra
.me
.REG
[8] = fra
.me
.REG
[8];
4499 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]);
4500 /* syntax/icode_generation.nit:922 */
4501 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4503 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4504 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
4505 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
4506 fra
.me
.REG
[4] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[7], fra
.me
.REG
[8], fra
.me
.REG
[4]);
4507 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4508 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]);
4509 /* syntax/icode_generation.nit:923 */
4510 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[2]);
4511 /* syntax/icode_generation.nit:924 */
4512 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4513 /* syntax/icode_generation.nit:925 */
4516 stack_frame_head
= fra
.me
.prev
;
4517 return fra
.me
.REG
[5];
4519 val_t
syntax___icode_generation___AStringFormExpr___string_text(val_t p0
){
4520 struct {struct stack_frame_t me
;} fra
;
4522 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4523 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4525 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStringFormExpr___string_text
;
4526 fra
.me
.has_broke
= 0;
4527 fra
.me
.REG_size
= 0;
4528 fra
.me
.nitni_local_ref_head
= NULL
;
4529 /* syntax/icode_generation.nit:928 */
4530 nit_abort("Deferred method called", NULL
, LOCATE_syntax___icode_generation
, 928);
4531 stack_frame_head
= fra
.me
.prev
;
4534 void syntax___icode_generation___AStringFormExpr___compute_string_infos(val_t p0
){
4535 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4543 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4544 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4546 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStringFormExpr___compute_string_infos
;
4547 fra
.me
.has_broke
= 0;
4548 fra
.me
.REG_size
= 3;
4549 fra
.me
.nitni_local_ref_head
= NULL
;
4550 fra
.me
.REG
[0] = NIT_NULL
;
4551 fra
.me
.REG
[1] = NIT_NULL
;
4552 fra
.me
.REG
[2] = NIT_NULL
;
4554 /* syntax/icode_generation.nit:940 */
4556 /* syntax/icode_generation.nit:941 */
4557 fra
.me
.REG
[1] = CALL_syntax___icode_generation___AStringFormExpr___string_text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4558 /* syntax/icode_generation.nit:942 */
4559 fra
.me
.REG
[2] = NEW_Buffer_standard___string___Buffer___init();
4560 /* syntax/icode_generation.nit:943 */
4562 /* syntax/icode_generation.nit:944 */
4564 /* ../lib/standard/collection/array.nit:24 */
4565 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
4566 if (UNTAG_Bool(REGB2
)) {
4568 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4570 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1]);
4571 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
4572 if (UNTAG_Bool(REGB3
)) {
4574 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4576 /* ../lib/standard/kernel.nit:232 */
4577 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
4578 /* syntax/icode_generation.nit:944 */
4579 if (UNTAG_Bool(REGB2
)) {
4580 /* syntax/icode_generation.nit:945 */
4581 REGB2
= CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB1
);
4582 /* syntax/icode_generation.nit:946 */
4583 REGB3
= TAG_Char('\\');
4584 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB3
));
4585 if (UNTAG_Bool(REGB4
)) {
4587 /* ../lib/standard/kernel.nit:378 */
4588 REGB3
= TAG_Bool((REGB2
)==(REGB3
));
4589 /* syntax/icode_generation.nit:946 */
4592 if (UNTAG_Bool(REGB4
)) {
4593 /* syntax/icode_generation.nit:947 */
4595 /* ../lib/standard/kernel.nit:235 */
4596 REGB4
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB4
));
4597 /* syntax/icode_generation.nit:947 */
4599 /* syntax/icode_generation.nit:948 */
4600 REGB4
= CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB1
);
4601 /* syntax/icode_generation.nit:949 */
4602 REGB3
= TAG_Char('{');
4603 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB4
,REGB3
));
4604 if (UNTAG_Bool(REGB5
)) {
4606 /* ../lib/standard/kernel.nit:378 */
4607 REGB3
= TAG_Bool((REGB4
)==(REGB3
));
4608 /* syntax/icode_generation.nit:949 */
4611 REGB5
= TAG_Bool(!UNTAG_Bool(REGB5
));
4612 if (UNTAG_Bool(REGB5
)) {
4613 REGB5
= TAG_Char('}');
4614 REGB3
= TAG_Bool(IS_EQUAL_OO(REGB4
,REGB5
));
4615 if (UNTAG_Bool(REGB3
)) {
4617 /* ../lib/standard/kernel.nit:378 */
4618 REGB5
= TAG_Bool((REGB4
)==(REGB5
));
4619 /* syntax/icode_generation.nit:949 */
4622 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
4624 REGB5
= TAG_Bool(false);
4627 if (UNTAG_Bool(REGB3
)) {
4628 /* syntax/icode_generation.nit:950 */
4629 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB2
);
4631 /* syntax/icode_generation.nit:952 */
4634 /* syntax/icode_generation.nit:954 */
4636 /* ../lib/standard/kernel.nit:235 */
4637 REGB4
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB4
));
4638 /* syntax/icode_generation.nit:954 */
4640 /* syntax/icode_generation.nit:955 */
4641 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB2
);
4642 /* syntax/icode_generation.nit:956 */
4644 /* ../lib/standard/kernel.nit:235 */
4645 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
4646 /* syntax/icode_generation.nit:956 */
4649 /* syntax/icode_generation.nit:944 */
4654 /* syntax/icode_generation.nit:958 */
4655 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4656 ATTR_syntax___icode_generation___AStringFormExpr____cstring(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4657 /* syntax/icode_generation.nit:959 */
4658 ATTR_syntax___icode_generation___AStringFormExpr____cstring_length(fra
.me
.REG
[0]) = REGB0
;
4659 stack_frame_head
= fra
.me
.prev
;
4662 val_t
syntax___icode_generation___AStringExpr___string_text(val_t p0
){
4663 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4668 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4669 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4671 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStringExpr___string_text
;
4672 fra
.me
.has_broke
= 0;
4673 fra
.me
.REG_size
= 2;
4674 fra
.me
.nitni_local_ref_head
= NULL
;
4675 fra
.me
.REG
[0] = NIT_NULL
;
4676 fra
.me
.REG
[1] = NIT_NULL
;
4678 /* syntax/icode_generation.nit:964 */
4679 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4680 fra
.me
.REG
[1] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4682 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4683 fra
.me
.REG
[0] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4684 /* ../lib/standard/collection/array.nit:24 */
4685 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4686 if (UNTAG_Bool(REGB1
)) {
4688 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4690 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4691 /* syntax/icode_generation.nit:964 */
4693 /* ../lib/standard/kernel.nit:237 */
4694 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4695 /* syntax/icode_generation.nit:964 */
4696 fra
.me
.REG
[1] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4699 stack_frame_head
= fra
.me
.prev
;
4700 return fra
.me
.REG
[1];
4702 val_t
syntax___icode_generation___AStartStringExpr___string_text(val_t p0
){
4703 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4708 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4709 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4711 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStartStringExpr___string_text
;
4712 fra
.me
.has_broke
= 0;
4713 fra
.me
.REG_size
= 2;
4714 fra
.me
.nitni_local_ref_head
= NULL
;
4715 fra
.me
.REG
[0] = NIT_NULL
;
4716 fra
.me
.REG
[1] = NIT_NULL
;
4718 /* syntax/icode_generation.nit:967 */
4719 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AStartStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4720 fra
.me
.REG
[1] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4722 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AStartStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4723 fra
.me
.REG
[0] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4724 /* ../lib/standard/collection/array.nit:24 */
4725 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4726 if (UNTAG_Bool(REGB1
)) {
4728 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4730 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4731 /* syntax/icode_generation.nit:967 */
4733 /* ../lib/standard/kernel.nit:237 */
4734 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4735 /* syntax/icode_generation.nit:967 */
4736 fra
.me
.REG
[1] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4739 stack_frame_head
= fra
.me
.prev
;
4740 return fra
.me
.REG
[1];
4742 val_t
syntax___icode_generation___AMidStringExpr___string_text(val_t p0
){
4743 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4748 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4749 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4751 fra
.me
.meth
= LOCATE_syntax___icode_generation___AMidStringExpr___string_text
;
4752 fra
.me
.has_broke
= 0;
4753 fra
.me
.REG_size
= 2;
4754 fra
.me
.nitni_local_ref_head
= NULL
;
4755 fra
.me
.REG
[0] = NIT_NULL
;
4756 fra
.me
.REG
[1] = NIT_NULL
;
4758 /* syntax/icode_generation.nit:970 */
4759 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AMidStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4760 fra
.me
.REG
[1] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4762 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AMidStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4763 fra
.me
.REG
[0] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4764 /* ../lib/standard/collection/array.nit:24 */
4765 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4766 if (UNTAG_Bool(REGB1
)) {
4768 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4770 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4771 /* syntax/icode_generation.nit:970 */
4773 /* ../lib/standard/kernel.nit:237 */
4774 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4775 /* syntax/icode_generation.nit:970 */
4776 fra
.me
.REG
[1] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4779 stack_frame_head
= fra
.me
.prev
;
4780 return fra
.me
.REG
[1];
4782 val_t
syntax___icode_generation___AEndStringExpr___string_text(val_t p0
){
4783 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4788 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4789 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4791 fra
.me
.meth
= LOCATE_syntax___icode_generation___AEndStringExpr___string_text
;
4792 fra
.me
.has_broke
= 0;
4793 fra
.me
.REG_size
= 2;
4794 fra
.me
.nitni_local_ref_head
= NULL
;
4795 fra
.me
.REG
[0] = NIT_NULL
;
4796 fra
.me
.REG
[1] = NIT_NULL
;
4798 /* syntax/icode_generation.nit:973 */
4799 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AEndStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4800 fra
.me
.REG
[1] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4802 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AEndStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4803 fra
.me
.REG
[0] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4804 /* ../lib/standard/collection/array.nit:24 */
4805 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4806 if (UNTAG_Bool(REGB1
)) {
4808 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4810 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4811 /* syntax/icode_generation.nit:973 */
4813 /* ../lib/standard/kernel.nit:237 */
4814 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4815 /* syntax/icode_generation.nit:973 */
4816 fra
.me
.REG
[1] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4819 stack_frame_head
= fra
.me
.prev
;
4820 return fra
.me
.REG
[1];
4822 val_t
syntax___icode_generation___ASuperstringExpr___generate_icode(val_t p0
, val_t p1
){
4823 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
4826 static val_t once_value_1
; /* Once value */
4827 static val_t once_value_2
; /* Once value */
4828 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4829 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4831 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASuperstringExpr___generate_icode
;
4832 fra
.me
.has_broke
= 0;
4833 fra
.me
.REG_size
= 6;
4834 fra
.me
.nitni_local_ref_head
= NULL
;
4835 fra
.me
.REG
[0] = NIT_NULL
;
4836 fra
.me
.REG
[1] = NIT_NULL
;
4837 fra
.me
.REG
[2] = NIT_NULL
;
4838 fra
.me
.REG
[3] = NIT_NULL
;
4839 fra
.me
.REG
[4] = NIT_NULL
;
4840 fra
.me
.REG
[5] = NIT_NULL
;
4843 /* syntax/icode_generation.nit:979 */
4844 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASuperstringExpr___atype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4845 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4846 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4847 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
);
4848 /* syntax/icode_generation.nit:980 */
4849 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4850 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4851 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4852 if (!once_value_1
) {
4853 if (!once_value_2
) {
4854 fra
.me
.REG
[5] = BOX_NativeString("to_s");
4856 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
4857 once_value_2
= fra
.me
.REG
[5];
4858 register_static_object(&once_value_2
);
4859 } else fra
.me
.REG
[5] = once_value_2
;
4860 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4861 fra
.me
.REG
[5] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4862 once_value_1
= fra
.me
.REG
[5];
4863 register_static_object(&once_value_1
);
4864 } else fra
.me
.REG
[5] = once_value_1
;
4865 fra
.me
.REG
[5] = fra
.me
.REG
[5];
4866 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]);
4867 /* syntax/icode_generation.nit:981 */
4868 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4869 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
));
4870 /* syntax/icode_generation.nit:988 */
4872 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4873 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
4874 fra
.me
.REG
[4] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[4]);
4875 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4876 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]);
4879 stack_frame_head
= fra
.me
.prev
;
4880 return fra
.me
.REG
[0];
4882 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
){
4883 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4888 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4889 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4891 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASuperstringExpr___generate_icode
;
4892 fra
.me
.has_broke
= 0;
4893 fra
.me
.REG_size
= 3;
4894 fra
.me
.nitni_local_ref_head
= NULL
;
4895 fra
.me
.REG
[0] = NIT_NULL
;
4896 fra
.me
.REG
[1] = NIT_NULL
;
4897 fra
.me
.REG
[2] = NIT_NULL
;
4898 fra
.me
.closure_ctx
= closctx_param
;
4899 fra
.me
.closure_funs
= CREG
;
4901 CREG
[0] = clos_fun0
;
4902 /* syntax/icode_generation.nit:982 */
4903 fra
.me
.REG
[1] = CALL_syntax___icode_generation___A2IContext___generate_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
4904 /* syntax/icode_generation.nit:983 */
4905 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4906 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(closctx
->REG
[0])(closctx
->REG
[0]);
4907 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[0],fra
.me
.REG
[2]));
4908 if (UNTAG_Bool(REGB0
)) {
4910 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
4913 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
4914 if (UNTAG_Bool(REGB0
)) {
4915 /* syntax/icode_generation.nit:984 */
4917 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4918 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
4919 fra
.me
.REG
[2] = NEW_ICall_icode___icode_base___ICall___init(closctx
->REG
[5], fra
.me
.REG
[2]);
4920 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(closctx
->REG
[0])(closctx
->REG
[0]);
4921 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4922 fra
.me
.REG
[1] = fra
.me
.REG
[0];
4924 /* syntax/icode_generation.nit:986 */
4925 CALL_syntax___icode_generation___A2IContext___add_call_array_add(closctx
->REG
[1])(closctx
->REG
[1], closctx
->REG
[2], fra
.me
.REG
[1]);
4926 stack_frame_head
= fra
.me
.prev
;
4929 val_t
syntax___icode_generation___ANullExpr___generate_icode(val_t p0
, val_t p1
){
4930 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4932 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4933 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4935 fra
.me
.meth
= LOCATE_syntax___icode_generation___ANullExpr___generate_icode
;
4936 fra
.me
.has_broke
= 0;
4937 fra
.me
.REG_size
= 2;
4938 fra
.me
.nitni_local_ref_head
= NULL
;
4939 fra
.me
.REG
[0] = NIT_NULL
;
4940 fra
.me
.REG
[1] = NIT_NULL
;
4943 /* syntax/icode_generation.nit:995 */
4944 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___lit_null_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4947 stack_frame_head
= fra
.me
.prev
;
4948 return fra
.me
.REG
[1];
4950 val_t
syntax___icode_generation___AArrayExpr___generate_icode(val_t p0
, val_t p1
){
4951 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4954 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4955 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4957 fra
.me
.meth
= LOCATE_syntax___icode_generation___AArrayExpr___generate_icode
;
4958 fra
.me
.has_broke
= 0;
4959 fra
.me
.REG_size
= 3;
4960 fra
.me
.nitni_local_ref_head
= NULL
;
4961 fra
.me
.REG
[0] = NIT_NULL
;
4962 fra
.me
.REG
[1] = NIT_NULL
;
4963 fra
.me
.REG
[2] = NIT_NULL
;
4966 /* syntax/icode_generation.nit:1002 */
4967 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AArrayExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4968 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AExprs___n_exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4969 /* syntax/icode_generation.nit:1003 */
4970 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4971 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4972 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___add_new_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], REGB0
);
4973 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[2])(fra
.me
.REG
[2], (&(fra
.me
)), ((fun_t
)OC_syntax___icode_generation___AArrayExpr___generate_icode_1
));
4974 /* syntax/icode_generation.nit:1008 */
4977 stack_frame_head
= fra
.me
.prev
;
4978 return fra
.me
.REG
[0];
4980 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
){
4981 struct {struct stack_frame_t me
;} fra
;
4984 /* syntax/icode_generation.nit:1004 */
4985 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4986 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4988 fra
.me
.meth
= LOCATE_syntax___icode_generation___AArrayExpr___generate_icode
;
4989 fra
.me
.has_broke
= 0;
4990 fra
.me
.REG_size
= 1;
4991 fra
.me
.nitni_local_ref_head
= NULL
;
4992 fra
.me
.REG
[0] = NIT_NULL
;
4993 fra
.me
.closure_ctx
= closctx_param
;
4994 fra
.me
.closure_funs
= CREG
;
4996 CREG
[0] = clos_fun0
;
4997 /* syntax/icode_generation.nit:1005 */
4998 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
4999 /* syntax/icode_generation.nit:1006 */
5000 CALL_syntax___icode_generation___A2IContext___add_call_array_add(closctx
->REG
[1])(closctx
->REG
[1], closctx
->REG
[0], fra
.me
.REG
[0]);
5001 stack_frame_head
= fra
.me
.prev
;
5004 val_t
syntax___icode_generation___ACrangeExpr___generate_icode(val_t p0
, val_t p1
){
5005 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5008 static val_t once_value_1
; /* Once value */
5009 static val_t once_value_2
; /* Once value */
5010 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5011 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5013 fra
.me
.meth
= LOCATE_syntax___icode_generation___ACrangeExpr___generate_icode
;
5014 fra
.me
.has_broke
= 0;
5015 fra
.me
.REG_size
= 7;
5016 fra
.me
.nitni_local_ref_head
= NULL
;
5017 fra
.me
.REG
[0] = NIT_NULL
;
5018 fra
.me
.REG
[1] = NIT_NULL
;
5019 fra
.me
.REG
[2] = NIT_NULL
;
5020 fra
.me
.REG
[3] = NIT_NULL
;
5021 fra
.me
.REG
[4] = NIT_NULL
;
5022 fra
.me
.REG
[5] = NIT_NULL
;
5023 fra
.me
.REG
[6] = NIT_NULL
;
5026 /* syntax/icode_generation.nit:1015 */
5027 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5028 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5029 /* syntax/icode_generation.nit:1016 */
5030 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5031 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5032 /* syntax/icode_generation.nit:1017 */
5033 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5034 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5035 if (!once_value_1
) {
5036 if (!once_value_2
) {
5037 fra
.me
.REG
[6] = BOX_NativeString("init");
5039 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
5040 once_value_2
= fra
.me
.REG
[6];
5041 register_static_object(&once_value_2
);
5042 } else fra
.me
.REG
[6] = once_value_2
;
5043 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5044 fra
.me
.REG
[6] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5045 once_value_1
= fra
.me
.REG
[6];
5046 register_static_object(&once_value_1
);
5047 } else fra
.me
.REG
[6] = once_value_1
;
5048 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5049 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]);
5050 /* syntax/icode_generation.nit:1018 */
5051 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5053 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5054 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
5055 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5056 fra
.me
.REG
[4] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[5], fra
.me
.REG
[6], fra
.me
.REG
[4]);
5057 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5058 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]);
5061 stack_frame_head
= fra
.me
.prev
;
5062 return fra
.me
.REG
[0];
5064 val_t
syntax___icode_generation___AOrangeExpr___generate_icode(val_t p0
, val_t p1
){
5065 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5068 static val_t once_value_1
; /* Once value */
5069 static val_t once_value_2
; /* Once value */
5070 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5071 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5073 fra
.me
.meth
= LOCATE_syntax___icode_generation___AOrangeExpr___generate_icode
;
5074 fra
.me
.has_broke
= 0;
5075 fra
.me
.REG_size
= 7;
5076 fra
.me
.nitni_local_ref_head
= NULL
;
5077 fra
.me
.REG
[0] = NIT_NULL
;
5078 fra
.me
.REG
[1] = NIT_NULL
;
5079 fra
.me
.REG
[2] = NIT_NULL
;
5080 fra
.me
.REG
[3] = NIT_NULL
;
5081 fra
.me
.REG
[4] = NIT_NULL
;
5082 fra
.me
.REG
[5] = NIT_NULL
;
5083 fra
.me
.REG
[6] = NIT_NULL
;
5086 /* syntax/icode_generation.nit:1025 */
5087 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5088 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5089 /* syntax/icode_generation.nit:1026 */
5090 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5091 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5092 /* syntax/icode_generation.nit:1027 */
5093 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5094 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5095 if (!once_value_1
) {
5096 if (!once_value_2
) {
5097 fra
.me
.REG
[6] = BOX_NativeString("without_last");
5098 REGB0
= TAG_Int(12);
5099 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
5100 once_value_2
= fra
.me
.REG
[6];
5101 register_static_object(&once_value_2
);
5102 } else fra
.me
.REG
[6] = once_value_2
;
5103 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5104 fra
.me
.REG
[6] = CALL_standard___symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5105 once_value_1
= fra
.me
.REG
[6];
5106 register_static_object(&once_value_1
);
5107 } else fra
.me
.REG
[6] = once_value_1
;
5108 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5109 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]);
5110 /* syntax/icode_generation.nit:1028 */
5111 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5113 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5114 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
5115 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5116 fra
.me
.REG
[4] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[5], fra
.me
.REG
[6], fra
.me
.REG
[4]);
5117 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5118 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]);
5121 stack_frame_head
= fra
.me
.prev
;
5122 return fra
.me
.REG
[0];
5124 val_t
syntax___icode_generation___ASuperExpr___generate_icode(val_t p0
, val_t p1
){
5125 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
5131 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5132 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5134 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASuperExpr___generate_icode
;
5135 fra
.me
.has_broke
= 0;
5136 fra
.me
.REG_size
= 6;
5137 fra
.me
.nitni_local_ref_head
= NULL
;
5138 fra
.me
.REG
[0] = NIT_NULL
;
5139 fra
.me
.REG
[1] = NIT_NULL
;
5140 fra
.me
.REG
[2] = NIT_NULL
;
5141 fra
.me
.REG
[3] = NIT_NULL
;
5142 fra
.me
.REG
[4] = NIT_NULL
;
5143 fra
.me
.REG
[5] = NIT_NULL
;
5146 /* syntax/icode_generation.nit:1035 */
5147 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5148 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5149 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5151 /* ../lib/standard/kernel.nit:237 */
5152 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
5153 /* syntax/icode_generation.nit:1036 */
5154 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASuperExpr___init_in_superclass(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5155 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5156 if (UNTAG_Bool(REGB0
)) {
5158 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5159 if (UNTAG_Bool(REGB2
)) {
5160 REGB2
= TAG_Bool(false);
5163 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5167 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5168 if (UNTAG_Bool(REGB0
)) {
5169 /* syntax/icode_generation.nit:1037 */
5170 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASuperExpr___init_in_superclass(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5171 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5172 if (UNTAG_Bool(REGB0
)) {
5173 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1037);
5175 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5176 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5177 if (UNTAG_Bool(REGB0
)) {
5178 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1037);
5180 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5183 /* syntax/icode_generation.nit:1039 */
5185 /* ../lib/standard/kernel.nit:235 */
5186 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
5187 /* syntax/icode_generation.nit:1039 */
5188 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5189 /* syntax/icode_generation.nit:1040 */
5190 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5191 fra
.me
.REG
[3] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5193 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
5194 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5195 /* syntax/icode_generation.nit:1041 */
5196 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5197 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AExprs___n_exprs(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5198 /* syntax/icode_generation.nit:1042 */
5199 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5200 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
5201 if (UNTAG_Bool(REGB2
)) {
5203 /* ../lib/standard/kernel.nit:227 */
5204 REGB0
= TAG_Bool((REGB0
)==(REGB1
));
5205 /* syntax/icode_generation.nit:1042 */
5208 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
5209 if (UNTAG_Bool(REGB2
)) {
5210 /* syntax/icode_generation.nit:1043 */
5212 /* ../lib/standard/kernel.nit:352 */
5214 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
5215 if (UNTAG_Bool(REGB0
)) {
5217 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5219 /* ../lib/standard/kernel.nit:232 */
5220 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
5221 /* ../lib/standard/kernel.nit:352 */
5222 if (UNTAG_Bool(REGB0
)) {
5223 /* syntax/icode_generation.nit:1043 */
5225 /* syntax/icode_generation.nit:1044 */
5226 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5227 fra
.me
.REG
[4] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5229 /* ../lib/standard/kernel.nit:235 */
5230 REGB3
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB3
));
5231 /* syntax/icode_generation.nit:1044 */
5232 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB3
);
5233 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5234 /* ../lib/standard/kernel.nit:354 */
5236 /* ../lib/standard/kernel.nit:235 */
5237 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
5238 /* ../lib/standard/kernel.nit:354 */
5241 /* ../lib/standard/kernel.nit:352 */
5247 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
));
5249 /* syntax/icode_generation.nit:1051 */
5250 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ASuperExpr___init_in_superclass(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5251 /* syntax/icode_generation.nit:1052 */
5252 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5253 if (UNTAG_Bool(REGB2
)) {
5255 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5256 if (UNTAG_Bool(REGB1
)) {
5257 REGB1
= TAG_Bool(false);
5260 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
5264 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
5265 if (UNTAG_Bool(REGB2
)) {
5266 /* syntax/icode_generation.nit:1053 */
5267 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5268 if (UNTAG_Bool(REGB2
)) {
5269 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1053);
5271 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5272 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5273 if (UNTAG_Bool(REGB2
)) {
5274 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1053);
5276 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5277 /* syntax/icode_generation.nit:1054 */
5278 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5279 if (UNTAG_Bool(REGB2
)) {
5281 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5282 if (UNTAG_Bool(REGB1
)) {
5283 REGB1
= TAG_Bool(false);
5286 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5290 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
5291 if (UNTAG_Bool(REGB2
)) {
5292 /* syntax/icode_generation.nit:1055 */
5293 fra
.me
.REG
[5] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5294 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]);
5297 /* syntax/icode_generation.nit:1057 */
5298 fra
.me
.REG
[5] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5299 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5300 /* syntax/icode_generation.nit:1058 */
5301 fra
.me
.REG
[4] = NIT_NULL
;
5305 /* syntax/icode_generation.nit:1061 */
5306 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5307 fra
.me
.REG
[3] = fra
.me
.REG
[0];
5308 /* syntax/icode_generation.nit:1062 */
5309 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5310 if (UNTAG_Bool(REGB2
)) {
5311 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1062);
5313 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5314 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5315 if (UNTAG_Bool(REGB2
)) {
5316 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1062);
5318 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5319 /* syntax/icode_generation.nit:1063 */
5320 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5321 if (UNTAG_Bool(REGB2
)) {
5323 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5324 if (UNTAG_Bool(REGB1
)) {
5325 REGB1
= TAG_Bool(false);
5328 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
5332 if (UNTAG_Bool(REGB2
)) {
5333 /* syntax/icode_generation.nit:1064 */
5334 fra
.me
.REG
[5] = NEW_ISuper_icode___icode_base___ISuper___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5335 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5336 /* syntax/icode_generation.nit:1065 */
5337 fra
.me
.REG
[4] = NIT_NULL
;
5340 /* syntax/icode_generation.nit:1067 */
5341 fra
.me
.REG
[2] = NEW_ISuper_icode___icode_base___ISuper___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5342 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]);
5343 fra
.me
.REG
[4] = fra
.me
.REG
[0];
5348 stack_frame_head
= fra
.me
.prev
;
5349 return fra
.me
.REG
[4];
5351 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
){
5352 struct {struct stack_frame_t me
;} fra
;
5355 /* syntax/icode_generation.nit:1047 */
5356 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5357 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5359 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASuperExpr___generate_icode
;
5360 fra
.me
.has_broke
= 0;
5361 fra
.me
.REG_size
= 1;
5362 fra
.me
.nitni_local_ref_head
= NULL
;
5363 fra
.me
.REG
[0] = NIT_NULL
;
5364 fra
.me
.closure_ctx
= closctx_param
;
5365 fra
.me
.closure_funs
= CREG
;
5367 CREG
[0] = clos_fun0
;
5368 /* syntax/icode_generation.nit:1048 */
5369 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
5370 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
5371 stack_frame_head
= fra
.me
.prev
;
5374 val_t
syntax___icode_generation___AAttrExpr___generate_icode(val_t p0
, val_t p1
){
5375 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5378 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5379 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5381 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAttrExpr___generate_icode
;
5382 fra
.me
.has_broke
= 0;
5383 fra
.me
.REG_size
= 4;
5384 fra
.me
.nitni_local_ref_head
= NULL
;
5385 fra
.me
.REG
[0] = NIT_NULL
;
5386 fra
.me
.REG
[1] = NIT_NULL
;
5387 fra
.me
.REG
[2] = NIT_NULL
;
5388 fra
.me
.REG
[3] = NIT_NULL
;
5391 /* syntax/icode_generation.nit:1076 */
5392 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5393 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5394 /* syntax/icode_generation.nit:1077 */
5395 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5396 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5397 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5398 if (UNTAG_Bool(REGB0
)) {
5399 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5401 /* syntax/icode_generation.nit:1078 */
5402 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5403 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]);
5406 stack_frame_head
= fra
.me
.prev
;
5407 return fra
.me
.REG
[2];
5409 val_t
syntax___icode_generation___AAttrAssignExpr___generate_icode(val_t p0
, val_t p1
){
5410 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5413 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5414 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5416 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAttrAssignExpr___generate_icode
;
5417 fra
.me
.has_broke
= 0;
5418 fra
.me
.REG_size
= 4;
5419 fra
.me
.nitni_local_ref_head
= NULL
;
5420 fra
.me
.REG
[0] = NIT_NULL
;
5421 fra
.me
.REG
[1] = NIT_NULL
;
5422 fra
.me
.REG
[2] = NIT_NULL
;
5423 fra
.me
.REG
[3] = NIT_NULL
;
5426 /* syntax/icode_generation.nit:1085 */
5427 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5428 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5429 /* syntax/icode_generation.nit:1086 */
5430 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5431 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5432 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5433 if (UNTAG_Bool(REGB0
)) {
5434 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5436 /* syntax/icode_generation.nit:1087 */
5437 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5438 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5439 /* syntax/icode_generation.nit:1088 */
5440 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5441 fra
.me
.REG
[3] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5442 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5443 /* syntax/icode_generation.nit:1089 */
5444 fra
.me
.REG
[3] = NIT_NULL
;
5447 stack_frame_head
= fra
.me
.prev
;
5448 return fra
.me
.REG
[3];
5450 val_t
syntax___icode_generation___AAttrReassignExpr___generate_icode(val_t p0
, val_t p1
){
5451 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5454 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5455 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5457 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAttrReassignExpr___generate_icode
;
5458 fra
.me
.has_broke
= 0;
5459 fra
.me
.REG_size
= 7;
5460 fra
.me
.nitni_local_ref_head
= NULL
;
5461 fra
.me
.REG
[0] = NIT_NULL
;
5462 fra
.me
.REG
[1] = NIT_NULL
;
5463 fra
.me
.REG
[2] = NIT_NULL
;
5464 fra
.me
.REG
[3] = NIT_NULL
;
5465 fra
.me
.REG
[4] = NIT_NULL
;
5466 fra
.me
.REG
[5] = NIT_NULL
;
5467 fra
.me
.REG
[6] = NIT_NULL
;
5470 /* syntax/icode_generation.nit:1095 */
5471 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5472 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5473 /* syntax/icode_generation.nit:1096 */
5474 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5475 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5476 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5477 if (UNTAG_Bool(REGB0
)) {
5478 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5480 /* syntax/icode_generation.nit:1097 */
5481 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5482 fra
.me
.REG
[3] = NEW_IAttrRead_icode___icode_base___IAttrRead___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5483 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5484 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]);
5485 /* syntax/icode_generation.nit:1098 */
5486 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5487 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5488 /* syntax/icode_generation.nit:1099 */
5489 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5491 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5492 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
5493 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
5494 fra
.me
.REG
[6] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5495 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5496 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]);
5497 /* syntax/icode_generation.nit:1100 */
5498 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5499 fra
.me
.REG
[5] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[5]);
5500 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5501 /* syntax/icode_generation.nit:1101 */
5502 fra
.me
.REG
[5] = NIT_NULL
;
5505 stack_frame_head
= fra
.me
.prev
;
5506 return fra
.me
.REG
[5];
5508 val_t
syntax___icode_generation___AIssetAttrExpr___generate_icode(val_t p0
, val_t p1
){
5509 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5512 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5513 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5515 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIssetAttrExpr___generate_icode
;
5516 fra
.me
.has_broke
= 0;
5517 fra
.me
.REG_size
= 4;
5518 fra
.me
.nitni_local_ref_head
= NULL
;
5519 fra
.me
.REG
[0] = NIT_NULL
;
5520 fra
.me
.REG
[1] = NIT_NULL
;
5521 fra
.me
.REG
[2] = NIT_NULL
;
5522 fra
.me
.REG
[3] = NIT_NULL
;
5525 /* syntax/icode_generation.nit:1108 */
5526 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5527 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5528 /* syntax/icode_generation.nit:1109 */
5529 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5530 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5531 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5532 if (UNTAG_Bool(REGB0
)) {
5533 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5535 /* syntax/icode_generation.nit:1110 */
5536 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5537 fra
.me
.REG
[2] = NEW_IAttrIsset_icode___icode_base___IAttrIsset___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5538 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5539 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]);
5542 stack_frame_head
= fra
.me
.prev
;
5543 return fra
.me
.REG
[0];
5545 void syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
5546 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5559 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5560 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5562 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in
;
5563 fra
.me
.has_broke
= 0;
5564 fra
.me
.REG_size
= 7;
5565 fra
.me
.nitni_local_ref_head
= NULL
;
5566 fra
.me
.REG
[0] = NIT_NULL
;
5567 fra
.me
.REG
[1] = NIT_NULL
;
5568 fra
.me
.REG
[2] = NIT_NULL
;
5569 fra
.me
.REG
[3] = NIT_NULL
;
5570 fra
.me
.REG
[4] = NIT_NULL
;
5571 fra
.me
.REG
[5] = NIT_NULL
;
5572 fra
.me
.REG
[6] = NIT_NULL
;
5577 /* syntax/icode_generation.nit:1118 */
5578 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5579 /* syntax/icode_generation.nit:1119 */
5580 REGB1
= CALL_metamodel___vararg___MMSignature___vararg_rank(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5581 /* syntax/icode_generation.nit:1120 */
5582 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5583 /* ../lib/standard/collection/array.nit:24 */
5584 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
5585 if (UNTAG_Bool(REGB2
)) {
5587 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
5589 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
5590 /* syntax/icode_generation.nit:1122 */
5592 /* syntax/icode_generation.nit:1123 */
5594 /* ../lib/standard/kernel.nit:347 */
5596 /* ../lib/standard/kernel.nit:352 */
5598 REGB6
= TAG_Bool(VAL_ISA(REGB5
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4
), VTID_standard___kernel___Comparable___OTHER(REGB4
))) /*cast OTHER*/;
5599 if (UNTAG_Bool(REGB6
)) {
5601 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5603 /* ../lib/standard/kernel.nit:232 */
5604 REGB6
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB5
));
5605 /* ../lib/standard/kernel.nit:352 */
5606 if (UNTAG_Bool(REGB6
)) {
5607 /* syntax/icode_generation.nit:1123 */
5609 /* syntax/icode_generation.nit:1125 */
5610 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB6
);
5611 /* syntax/icode_generation.nit:1126 */
5612 REGB7
= TAG_Bool(IS_EQUAL_OO(REGB6
,REGB1
));
5613 if (UNTAG_Bool(REGB7
)) {
5615 /* ../lib/standard/kernel.nit:227 */
5616 REGB6
= TAG_Bool((REGB6
)==(REGB1
));
5617 /* syntax/icode_generation.nit:1126 */
5620 if (UNTAG_Bool(REGB7
)) {
5621 /* syntax/icode_generation.nit:1127 */
5622 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5623 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5624 /* ../lib/standard/kernel.nit:237 */
5625 REGB7
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB0
));
5626 /* syntax/icode_generation.nit:1127 */
5627 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
);
5628 /* syntax/icode_generation.nit:1128 */
5630 /* ../lib/standard/kernel.nit:237 */
5631 REGB6
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB0
));
5632 /* ../lib/standard/kernel.nit:341 */
5634 REGB8
= TAG_Bool(VAL_ISA(REGB6
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB7
), VTID_standard___kernel___Comparable___OTHER(REGB7
))) /*cast OTHER*/;
5635 if (UNTAG_Bool(REGB8
)) {
5637 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5639 /* ../lib/standard/kernel.nit:231 */
5640 REGB8
= TAG_Bool(UNTAG_Int(REGB7
)<=UNTAG_Int(REGB6
));
5641 /* ../lib/standard/kernel.nit:341 */
5642 if (UNTAG_Bool(REGB8
)) {
5643 /* ../lib/standard/collection/array.nit:278 */
5644 fra
.me
.REG
[5] = fra
.me
.REG
[0];
5646 /* ../lib/standard/collection/array.nit:280 */
5648 REGB10
= TAG_Bool(VAL_ISA(REGB9
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
5649 if (UNTAG_Bool(REGB10
)) {
5651 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5653 /* ../lib/standard/kernel.nit:233 */
5654 REGB9
= TAG_Bool(UNTAG_Int(REGB8
)>=UNTAG_Int(REGB9
));
5655 /* ../lib/standard/collection/array.nit:280 */
5656 if (UNTAG_Bool(REGB9
)) {
5657 REGB9
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
5658 if (UNTAG_Bool(REGB9
)) {
5660 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
5662 REGB9
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
5663 REGB10
= TAG_Bool(VAL_ISA(REGB9
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
5664 if (UNTAG_Bool(REGB10
)) {
5666 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5668 /* ../lib/standard/kernel.nit:232 */
5669 REGB9
= TAG_Bool(UNTAG_Int(REGB8
)<UNTAG_Int(REGB9
));
5671 /* ../lib/standard/collection/array.nit:280 */
5672 REGB10
= TAG_Bool(false);
5675 if (UNTAG_Bool(REGB9
)) {
5677 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
5679 /* ../lib/standard/collection/array.nit:281 */
5680 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
5681 REGB9
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5682 if (UNTAG_Bool(REGB9
)) {
5683 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
5685 /* ../lib/standard/collection/array.nit:718 */
5686 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB8
)];
5687 /* ../lib/standard/collection/array.nit:281 */
5690 /* syntax/icode_generation.nit:1130 */
5691 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5692 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]);
5693 /* syntax/icode_generation.nit:1131 */
5695 /* ../lib/standard/kernel.nit:235 */
5696 REGB8
= TAG_Int(UNTAG_Int(REGB3
)+UNTAG_Int(REGB8
));
5697 /* syntax/icode_generation.nit:1131 */
5699 /* ../lib/standard/kernel.nit:343 */
5701 /* ../lib/standard/kernel.nit:235 */
5702 REGB8
= TAG_Int(UNTAG_Int(REGB7
)+UNTAG_Int(REGB8
));
5703 /* ../lib/standard/kernel.nit:343 */
5706 /* ../lib/standard/kernel.nit:341 */
5711 /* syntax/icode_generation.nit:1133 */
5712 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5714 /* ../lib/standard/collection/array.nit:278 */
5715 fra
.me
.REG
[4] = fra
.me
.REG
[0];
5717 /* ../lib/standard/collection/array.nit:280 */
5719 REGB8
= TAG_Bool(VAL_ISA(REGB6
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB7
), VTID_standard___kernel___Comparable___OTHER(REGB7
))) /*cast OTHER*/;
5720 if (UNTAG_Bool(REGB8
)) {
5722 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5724 /* ../lib/standard/kernel.nit:233 */
5725 REGB6
= TAG_Bool(UNTAG_Int(REGB7
)>=UNTAG_Int(REGB6
));
5726 /* ../lib/standard/collection/array.nit:280 */
5727 if (UNTAG_Bool(REGB6
)) {
5728 REGB6
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
5729 if (UNTAG_Bool(REGB6
)) {
5731 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
5733 REGB6
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
5734 REGB8
= TAG_Bool(VAL_ISA(REGB6
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB7
), VTID_standard___kernel___Comparable___OTHER(REGB7
))) /*cast OTHER*/;
5735 if (UNTAG_Bool(REGB8
)) {
5737 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5739 /* ../lib/standard/kernel.nit:232 */
5740 REGB6
= TAG_Bool(UNTAG_Int(REGB7
)<UNTAG_Int(REGB6
));
5742 /* ../lib/standard/collection/array.nit:280 */
5743 REGB8
= TAG_Bool(false);
5746 if (UNTAG_Bool(REGB6
)) {
5748 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
5750 /* ../lib/standard/collection/array.nit:281 */
5751 fra
.me
.REG
[4] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
5752 REGB6
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5753 if (UNTAG_Bool(REGB6
)) {
5754 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
5756 /* ../lib/standard/collection/array.nit:718 */
5757 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB7
)];
5758 /* ../lib/standard/collection/array.nit:281 */
5761 /* syntax/icode_generation.nit:1135 */
5762 fra
.me
.REG
[5] = fra
.me
.REG
[4];
5763 /* syntax/icode_generation.nit:1136 */
5764 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5765 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5766 /* syntax/icode_generation.nit:1137 */
5768 /* ../lib/standard/kernel.nit:235 */
5769 REGB7
= TAG_Int(UNTAG_Int(REGB3
)+UNTAG_Int(REGB7
));
5770 /* syntax/icode_generation.nit:1137 */
5773 /* ../lib/standard/kernel.nit:354 */
5775 /* ../lib/standard/kernel.nit:235 */
5776 REGB7
= TAG_Int(UNTAG_Int(REGB4
)+UNTAG_Int(REGB7
));
5777 /* ../lib/standard/kernel.nit:354 */
5780 /* ../lib/standard/kernel.nit:352 */
5785 stack_frame_head
= fra
.me
.prev
;
5788 val_t
syntax___icode_generation___ASendExpr___generate_icode(val_t p0
, val_t p1
){
5789 struct {struct stack_frame_t me
; val_t MORE_REG
[15];} fra
;
5796 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5797 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5799 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASendExpr___generate_icode
;
5800 fra
.me
.has_broke
= 0;
5801 fra
.me
.REG_size
= 16;
5802 fra
.me
.nitni_local_ref_head
= NULL
;
5803 fra
.me
.REG
[0] = NIT_NULL
;
5804 fra
.me
.REG
[1] = NIT_NULL
;
5805 fra
.me
.REG
[2] = NIT_NULL
;
5806 fra
.me
.REG
[3] = NIT_NULL
;
5807 fra
.me
.REG
[4] = NIT_NULL
;
5808 fra
.me
.REG
[5] = NIT_NULL
;
5809 fra
.me
.REG
[6] = NIT_NULL
;
5810 fra
.me
.REG
[7] = NIT_NULL
;
5811 fra
.me
.REG
[8] = NIT_NULL
;
5812 fra
.me
.REG
[9] = NIT_NULL
;
5813 fra
.me
.REG
[10] = NIT_NULL
;
5814 fra
.me
.REG
[11] = NIT_NULL
;
5815 fra
.me
.REG
[12] = NIT_NULL
;
5816 fra
.me
.REG
[13] = NIT_NULL
;
5817 fra
.me
.REG
[14] = NIT_NULL
;
5818 fra
.me
.REG
[15] = NIT_NULL
;
5821 /* syntax/icode_generation.nit:1144 */
5822 fra
.me
.REG
[2] = fra
.me
.REG
[0];
5823 /* syntax/icode_generation.nit:1146 */
5824 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5825 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5826 /* syntax/icode_generation.nit:1147 */
5827 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___init();
5828 /* syntax/icode_generation.nit:1148 */
5829 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5830 /* syntax/icode_generation.nit:1149 */
5831 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5832 /* syntax/icode_generation.nit:1150 */
5833 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5834 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*/;
5835 if (UNTAG_Bool(REGB0
)) {
5837 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1150);
5839 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]);
5840 /* syntax/icode_generation.nit:1151 */
5841 fra
.me
.REG
[5] = NIT_NULL
;
5842 /* syntax/icode_generation.nit:1155 */
5843 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5844 /* syntax/icode_generation.nit:1156 */
5845 fra
.me
.REG
[6] = NIT_NULL
;
5846 /* syntax/icode_generation.nit:1157 */
5847 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5848 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5849 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5850 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5851 if (UNTAG_Bool(REGB0
)) {
5852 /* syntax/icode_generation.nit:1158 */
5853 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5854 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5855 /* syntax/icode_generation.nit:1159 */
5856 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
5857 if (UNTAG_Bool(REGB0
)) {
5859 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
5860 if (UNTAG_Bool(REGB1
)) {
5861 REGB1
= TAG_Bool(false);
5864 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
5868 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5869 if (UNTAG_Bool(REGB0
)) {
5870 /* syntax/icode_generation.nit:1160 */
5871 fra
.me
.REG
[7] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
5872 fra
.me
.REG
[5] = fra
.me
.REG
[7];
5874 /* syntax/icode_generation.nit:1162 */
5875 fra
.me
.REG
[7] = NEW_ISeq_icode___icode_base___ISeq___init();
5876 /* syntax/icode_generation.nit:1163 */
5877 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
5878 /* syntax/icode_generation.nit:1164 */
5879 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
5880 /* syntax/icode_generation.nit:1165 */
5881 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___init();
5882 fra
.me
.REG
[6] = fra
.me
.REG
[8];
5883 /* syntax/icode_generation.nit:1166 */
5885 /* syntax/icode_generation.nit:1167 */
5886 fra
.me
.REG
[8] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5887 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5888 if (UNTAG_Bool(REGB0
)) {
5890 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5891 if (UNTAG_Bool(REGB1
)) {
5892 REGB1
= TAG_Bool(false);
5895 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
5899 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5900 if (UNTAG_Bool(REGB0
)) {
5901 fra
.me
.REG
[8] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5902 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5903 if (UNTAG_Bool(REGB0
)) {
5904 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1167);
5906 /* ../lib/standard/collection/array.nit:24 */
5907 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8])!=NIT_NULL
);
5908 if (UNTAG_Bool(REGB0
)) {
5910 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
5912 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8]);
5914 /* syntax/icode_generation.nit:1168 */
5915 fra
.me
.REG
[8] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5916 /* syntax/icode_generation.nit:1169 */
5917 fra
.me
.REG
[9] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5918 fra
.me
.REG
[9] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
5919 /* ../lib/standard/collection/array.nit:269 */
5921 /* ../lib/standard/collection/array.nit:270 */
5922 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
5923 if (UNTAG_Bool(REGB1
)) {
5925 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
5927 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9]);
5928 /* ../lib/standard/collection/array.nit:271 */
5929 fra
.me
.REG
[10] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[9]);
5930 /* ../lib/standard/collection/array.nit:272 */
5932 /* ../lib/standard/collection/array.nit:24 */
5933 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
5934 if (UNTAG_Bool(REGB1
)) {
5936 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
5938 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9]);
5939 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
5940 if (UNTAG_Bool(REGB2
)) {
5942 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5944 /* ../lib/standard/kernel.nit:232 */
5945 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
5946 /* ../lib/standard/collection/array.nit:272 */
5947 if (UNTAG_Bool(REGB1
)) {
5948 /* ../lib/standard/collection/array.nit:273 */
5949 REGB1
= TAG_Bool(fra
.me
.REG
[10]==NIT_NULL
);
5950 if (UNTAG_Bool(REGB1
)) {
5951 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
5953 /* ../lib/standard/collection/array.nit:718 */
5954 fra
.me
.REG
[11] = ((Nit_NativeArray
)fra
.me
.REG
[10])->val
[UNTAG_Int(REGB0
)];
5955 /* syntax/icode_generation.nit:1170 */
5956 REGB1
= TAG_Bool(false);
5957 /* syntax/icode_generation.nit:1171 */
5958 fra
.me
.REG
[11] = CALL_metamodel___static_type___MMClosure___name(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
5959 /* syntax/icode_generation.nit:1172 */
5960 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5961 if (UNTAG_Bool(REGB2
)) {
5963 REGB3
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5964 if (UNTAG_Bool(REGB3
)) {
5965 REGB3
= TAG_Bool(false);
5968 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
5972 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
5973 if (UNTAG_Bool(REGB2
)) {
5974 /* syntax/icode_generation.nit:1173 */
5975 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
5976 if (UNTAG_Bool(REGB2
)) {
5977 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1173);
5979 /* ../lib/standard/collection/array.nit:266 */
5980 fra
.me
.REG
[12] = fra
.me
.REG
[8];
5981 /* ../lib/standard/collection/array.nit:269 */
5983 /* ../lib/standard/collection/array.nit:270 */
5984 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[12])!=NIT_NULL
);
5985 if (UNTAG_Bool(REGB3
)) {
5987 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
5989 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[12]);
5990 /* ../lib/standard/collection/array.nit:271 */
5991 fra
.me
.REG
[13] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[12]);
5992 /* ../lib/standard/collection/array.nit:272 */
5994 /* ../lib/standard/collection/array.nit:24 */
5995 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[12])!=NIT_NULL
);
5996 if (UNTAG_Bool(REGB3
)) {
5998 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6000 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[12]);
6001 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
6002 if (UNTAG_Bool(REGB4
)) {
6004 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6006 /* ../lib/standard/kernel.nit:232 */
6007 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
6008 /* ../lib/standard/collection/array.nit:272 */
6009 if (UNTAG_Bool(REGB3
)) {
6010 /* ../lib/standard/collection/array.nit:273 */
6011 REGB3
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
6012 if (UNTAG_Bool(REGB3
)) {
6013 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
6015 /* ../lib/standard/collection/array.nit:718 */
6016 fra
.me
.REG
[14] = ((Nit_NativeArray
)fra
.me
.REG
[13])->val
[UNTAG_Int(REGB2
)];
6017 /* syntax/icode_generation.nit:1174 */
6018 fra
.me
.REG
[15] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
6019 fra
.me
.REG
[15] = CALL_syntax___typing___AClosureId___to_symbol(fra
.me
.REG
[15])(fra
.me
.REG
[15]);
6020 REGB3
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[15],fra
.me
.REG
[11]));
6021 if (UNTAG_Bool(REGB3
)) {
6023 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[11]);
6026 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
6027 if (UNTAG_Bool(REGB3
)) {
6030 /* syntax/icode_generation.nit:1175 */
6031 REGB3
= TAG_Bool(false);
6032 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB3
));
6033 if (UNTAG_Bool(REGB4
)) {
6035 /* ../lib/standard/kernel.nit:195 */
6036 REGB3
= TAG_Bool((REGB1
)==(REGB3
));
6037 /* syntax/icode_generation.nit:1175 */
6040 if (UNTAG_Bool(REGB4
)) {
6042 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 1175);
6044 /* syntax/icode_generation.nit:1176 */
6045 REGB4
= TAG_Bool(true);
6047 /* syntax/icode_generation.nit:1177 */
6048 fra
.me
.REG
[15] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
6049 REGB4
= TAG_Bool(fra
.me
.REG
[15]==NIT_NULL
);
6050 if (UNTAG_Bool(REGB4
)) {
6051 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1177);
6053 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[7]);
6054 /* syntax/icode_generation.nit:1178 */
6055 fra
.me
.REG
[15] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
6056 REGB4
= TAG_Bool(fra
.me
.REG
[15]==NIT_NULL
);
6057 if (UNTAG_Bool(REGB4
)) {
6058 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1178);
6060 CALL_syntax___icode_generation___EscapableBlock___break_value__eq(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[5]);
6061 /* syntax/icode_generation.nit:1179 */
6062 fra
.me
.REG
[14] = CALL_syntax___icode_generation___AClosureDef___generate_iclosuredef(fra
.me
.REG
[14])(fra
.me
.REG
[14], fra
.me
.REG
[1]);
6063 /* syntax/icode_generation.nit:1180 */
6064 REGB4
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6065 if (UNTAG_Bool(REGB4
)) {
6066 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1180);
6068 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[14]);
6070 /* ../lib/standard/collection/array.nit:274 */
6072 /* ../lib/standard/kernel.nit:235 */
6073 REGB4
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB4
));
6074 /* ../lib/standard/collection/array.nit:274 */
6077 /* ../lib/standard/collection/array.nit:272 */
6083 /* syntax/icode_generation.nit:1183 */
6084 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
6085 if (UNTAG_Bool(REGB1
)) {
6086 /* syntax/icode_generation.nit:1184 */
6087 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6088 if (UNTAG_Bool(REGB1
)) {
6089 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1184);
6091 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
6093 /* ../lib/standard/collection/array.nit:274 */
6095 /* ../lib/standard/kernel.nit:235 */
6096 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6097 /* ../lib/standard/collection/array.nit:274 */
6100 /* ../lib/standard/collection/array.nit:272 */
6106 /* syntax/icode_generation.nit:1189 */
6107 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]);
6108 /* syntax/icode_generation.nit:1192 */
6109 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6110 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6111 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6112 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6113 if (UNTAG_Bool(REGB0
)) {
6114 /* syntax/icode_generation.nit:1193 */
6115 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6116 if (UNTAG_Bool(REGB0
)) {
6118 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6119 if (UNTAG_Bool(REGB1
)) {
6120 REGB1
= TAG_Bool(false);
6123 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
6127 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6128 if (UNTAG_Bool(REGB0
)) {
6129 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6130 if (UNTAG_Bool(REGB0
)) {
6132 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6133 if (UNTAG_Bool(REGB1
)) {
6134 REGB1
= TAG_Bool(false);
6137 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
6141 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6143 REGB1
= TAG_Bool(false);
6146 if (UNTAG_Bool(REGB0
)) {
6147 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[6]);
6149 /* syntax/icode_generation.nit:1194 */
6150 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6152 /* syntax/icode_generation.nit:1196 */
6153 fra
.me
.REG
[5] = fra
.me
.REG
[6];
6155 /* syntax/icode_generation.nit:1199 */
6156 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6157 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6158 if (UNTAG_Bool(REGB0
)) {
6159 /* syntax/icode_generation.nit:1200 */
6160 CALL_syntax___icode_generation___A2IContext___invoke_super_init_calls_after(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6162 /* syntax/icode_generation.nit:1202 */
6165 stack_frame_head
= fra
.me
.prev
;
6166 return fra
.me
.REG
[5];
6168 val_t
syntax___icode_generation___ASendReassignExpr___generate_icode(val_t p0
, val_t p1
){
6169 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
6172 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6173 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6175 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASendReassignExpr___generate_icode
;
6176 fra
.me
.has_broke
= 0;
6177 fra
.me
.REG_size
= 8;
6178 fra
.me
.nitni_local_ref_head
= NULL
;
6179 fra
.me
.REG
[0] = NIT_NULL
;
6180 fra
.me
.REG
[1] = NIT_NULL
;
6181 fra
.me
.REG
[2] = NIT_NULL
;
6182 fra
.me
.REG
[3] = NIT_NULL
;
6183 fra
.me
.REG
[4] = NIT_NULL
;
6184 fra
.me
.REG
[5] = NIT_NULL
;
6185 fra
.me
.REG
[6] = NIT_NULL
;
6186 fra
.me
.REG
[7] = NIT_NULL
;
6189 /* syntax/icode_generation.nit:1207 */
6190 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6191 /* syntax/icode_generation.nit:1209 */
6192 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6193 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6194 /* syntax/icode_generation.nit:1210 */
6195 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6196 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6197 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6198 if (UNTAG_Bool(REGB0
)) {
6199 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6201 /* syntax/icode_generation.nit:1211 */
6202 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___init();
6203 /* syntax/icode_generation.nit:1212 */
6204 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6205 /* syntax/icode_generation.nit:1213 */
6206 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ASendReassignExpr___read_prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6207 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6208 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*/;
6209 if (UNTAG_Bool(REGB0
)) {
6211 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1213);
6213 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]);
6214 /* syntax/icode_generation.nit:1215 */
6215 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ASendReassignExpr___read_prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6216 fra
.me
.REG
[3] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6217 fra
.me
.REG
[5] = CALL_syntax___syntax_base___ASendReassignExpr___read_prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6218 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6219 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6220 if (UNTAG_Bool(REGB0
)) {
6221 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1215);
6223 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6224 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*/;
6225 if (UNTAG_Bool(REGB0
)) {
6227 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1215);
6229 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]);
6230 /* syntax/icode_generation.nit:1216 */
6231 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6232 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6233 /* syntax/icode_generation.nit:1217 */
6234 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6236 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6237 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
6238 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
6239 fra
.me
.REG
[7] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[6], fra
.me
.REG
[7]);
6240 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6241 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6242 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6243 if (UNTAG_Bool(REGB0
)) {
6244 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1217);
6246 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6247 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*/;
6248 if (UNTAG_Bool(REGB0
)) {
6250 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1217);
6252 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]);
6253 /* syntax/icode_generation.nit:1218 */
6254 fra
.me
.REG
[4] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6255 /* syntax/icode_generation.nit:1219 */
6256 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
6257 /* syntax/icode_generation.nit:1220 */
6258 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6259 fra
.me
.REG
[4] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[2], fra
.me
.REG
[4]);
6260 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6261 /* syntax/icode_generation.nit:1221 */
6262 fra
.me
.REG
[4] = NIT_NULL
;
6265 stack_frame_head
= fra
.me
.prev
;
6266 return fra
.me
.REG
[4];
6268 val_t
syntax___icode_generation___ANewExpr___generate_icode(val_t p0
, val_t p1
){
6269 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
6272 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6273 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6275 fra
.me
.meth
= LOCATE_syntax___icode_generation___ANewExpr___generate_icode
;
6276 fra
.me
.has_broke
= 0;
6277 fra
.me
.REG_size
= 5;
6278 fra
.me
.nitni_local_ref_head
= NULL
;
6279 fra
.me
.REG
[0] = NIT_NULL
;
6280 fra
.me
.REG
[1] = NIT_NULL
;
6281 fra
.me
.REG
[2] = NIT_NULL
;
6282 fra
.me
.REG
[3] = NIT_NULL
;
6283 fra
.me
.REG
[4] = NIT_NULL
;
6286 /* syntax/icode_generation.nit:1226 */
6287 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6288 /* syntax/icode_generation.nit:1228 */
6289 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
6290 /* syntax/icode_generation.nit:1229 */
6291 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6292 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6293 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*/;
6294 if (UNTAG_Bool(REGB0
)) {
6296 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1229);
6298 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]);
6299 /* syntax/icode_generation.nit:1230 */
6300 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6301 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6302 fra
.me
.REG
[3] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[4], fra
.me
.REG
[0], fra
.me
.REG
[3]);
6303 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6304 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]);
6307 stack_frame_head
= fra
.me
.prev
;
6308 return fra
.me
.REG
[2];
6310 val_t
syntax___icode_generation___AProxyExpr___generate_icode(val_t p0
, val_t p1
){
6311 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6313 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6314 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6316 fra
.me
.meth
= LOCATE_syntax___icode_generation___AProxyExpr___generate_icode
;
6317 fra
.me
.has_broke
= 0;
6318 fra
.me
.REG_size
= 2;
6319 fra
.me
.nitni_local_ref_head
= NULL
;
6320 fra
.me
.REG
[0] = NIT_NULL
;
6321 fra
.me
.REG
[1] = NIT_NULL
;
6324 /* syntax/icode_generation.nit:1237 */
6325 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6326 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6329 stack_frame_head
= fra
.me
.prev
;
6330 return fra
.me
.REG
[0];
6332 val_t
syntax___icode_generation___AOnceExpr___generate_icode(val_t p0
, val_t p1
){
6333 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
6335 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6336 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6338 fra
.me
.meth
= LOCATE_syntax___icode_generation___AOnceExpr___generate_icode
;
6339 fra
.me
.has_broke
= 0;
6340 fra
.me
.REG_size
= 5;
6341 fra
.me
.nitni_local_ref_head
= NULL
;
6342 fra
.me
.REG
[0] = NIT_NULL
;
6343 fra
.me
.REG
[1] = NIT_NULL
;
6344 fra
.me
.REG
[2] = NIT_NULL
;
6345 fra
.me
.REG
[3] = NIT_NULL
;
6346 fra
.me
.REG
[4] = NIT_NULL
;
6349 /* syntax/icode_generation.nit:1244 */
6350 fra
.me
.REG
[2] = NEW_IOnce_icode___icode_base___IOnce___init();
6351 /* syntax/icode_generation.nit:1245 */
6352 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6353 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]);
6354 /* syntax/icode_generation.nit:1246 */
6355 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6356 /* syntax/icode_generation.nit:1247 */
6357 fra
.me
.REG
[2] = CALL_icode___icode_base___IOnce___body(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6358 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6359 /* syntax/icode_generation.nit:1249 */
6360 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6361 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6362 /* syntax/icode_generation.nit:1250 */
6363 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
6364 /* syntax/icode_generation.nit:1252 */
6365 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6366 /* syntax/icode_generation.nit:1253 */
6369 stack_frame_head
= fra
.me
.prev
;
6370 return fra
.me
.REG
[3];
6372 val_t
syntax___icode_generation___AClosureDef___generate_iclosuredef(val_t p0
, val_t p1
){
6373 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
6381 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6382 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6384 fra
.me
.meth
= LOCATE_syntax___icode_generation___AClosureDef___generate_iclosuredef
;
6385 fra
.me
.has_broke
= 0;
6386 fra
.me
.REG_size
= 7;
6387 fra
.me
.nitni_local_ref_head
= NULL
;
6388 fra
.me
.REG
[0] = NIT_NULL
;
6389 fra
.me
.REG
[1] = NIT_NULL
;
6390 fra
.me
.REG
[2] = NIT_NULL
;
6391 fra
.me
.REG
[3] = NIT_NULL
;
6392 fra
.me
.REG
[4] = NIT_NULL
;
6393 fra
.me
.REG
[5] = NIT_NULL
;
6394 fra
.me
.REG
[6] = NIT_NULL
;
6397 /* syntax/icode_generation.nit:1261 */
6398 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6399 /* syntax/icode_generation.nit:1264 */
6400 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
6401 /* syntax/icode_generation.nit:1265 */
6402 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6403 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6404 /* syntax/icode_generation.nit:1266 */
6406 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6407 /* ../lib/standard/kernel.nit:352 */
6409 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6410 if (UNTAG_Bool(REGB2
)) {
6412 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6414 /* ../lib/standard/kernel.nit:232 */
6415 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6416 /* ../lib/standard/kernel.nit:352 */
6417 if (UNTAG_Bool(REGB2
)) {
6418 /* syntax/icode_generation.nit:1266 */
6420 /* syntax/icode_generation.nit:1267 */
6421 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB2
);
6422 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6423 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
6424 /* ../lib/standard/kernel.nit:354 */
6426 /* ../lib/standard/kernel.nit:235 */
6427 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
6428 /* ../lib/standard/kernel.nit:354 */
6431 /* ../lib/standard/kernel.nit:352 */
6436 /* syntax/icode_generation.nit:1269 */
6437 fra
.me
.REG
[5] = NIT_NULL
;
6438 /* syntax/icode_generation.nit:1270 */
6439 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6440 /* syntax/icode_generation.nit:1271 */
6441 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6442 if (UNTAG_Bool(REGB0
)) {
6444 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6445 if (UNTAG_Bool(REGB1
)) {
6446 REGB1
= TAG_Bool(false);
6449 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
6453 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6454 if (UNTAG_Bool(REGB0
)) {
6455 /* syntax/icode_generation.nit:1272 */
6456 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6457 fra
.me
.REG
[5] = fra
.me
.REG
[4];
6459 /* syntax/icode_generation.nit:1275 */
6460 fra
.me
.REG
[5] = NEW_IClosureDef_icode___icode_base___IClosureDef___init(fra
.me
.REG
[3], fra
.me
.REG
[5]);
6461 /* syntax/icode_generation.nit:1276 */
6462 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6463 CALL_icode___icode_base___IRoutine___location__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
6464 /* syntax/icode_generation.nit:1279 */
6465 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6466 /* syntax/icode_generation.nit:1280 */
6467 fra
.me
.REG
[4] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6468 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6469 /* syntax/icode_generation.nit:1281 */
6470 fra
.me
.REG
[4] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6471 fra
.me
.REG
[6] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6472 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6473 if (UNTAG_Bool(REGB0
)) {
6474 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1281);
6476 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
6477 /* syntax/icode_generation.nit:1282 */
6478 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6479 fra
.me
.REG
[4] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6480 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6481 if (UNTAG_Bool(REGB0
)) {
6482 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1282);
6484 CALL_syntax___icode_generation___EscapableBlock___continue_value__eq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6485 /* syntax/icode_generation.nit:1285 */
6487 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AClosureDef___variables(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6488 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6489 if (UNTAG_Bool(REGB1
)) {
6490 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1285);
6492 /* ../lib/standard/collection/array.nit:24 */
6493 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6494 if (UNTAG_Bool(REGB1
)) {
6496 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6498 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6499 /* ../lib/standard/kernel.nit:352 */
6501 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6502 if (UNTAG_Bool(REGB2
)) {
6504 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6506 /* ../lib/standard/kernel.nit:232 */
6507 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6508 /* ../lib/standard/kernel.nit:352 */
6509 if (UNTAG_Bool(REGB2
)) {
6510 /* syntax/icode_generation.nit:1285 */
6512 /* syntax/icode_generation.nit:1286 */
6513 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AClosureDef___variables(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6514 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6515 if (UNTAG_Bool(REGB3
)) {
6516 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1286);
6518 /* ../lib/standard/collection/array.nit:278 */
6520 /* ../lib/standard/collection/array.nit:280 */
6522 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
6523 if (UNTAG_Bool(REGB5
)) {
6525 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6527 /* ../lib/standard/kernel.nit:233 */
6528 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
6529 /* ../lib/standard/collection/array.nit:280 */
6530 if (UNTAG_Bool(REGB4
)) {
6531 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6532 if (UNTAG_Bool(REGB4
)) {
6534 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
6536 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6537 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
6538 if (UNTAG_Bool(REGB5
)) {
6540 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6542 /* ../lib/standard/kernel.nit:232 */
6543 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
6545 /* ../lib/standard/collection/array.nit:280 */
6546 REGB5
= TAG_Bool(false);
6549 if (UNTAG_Bool(REGB4
)) {
6551 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
6553 /* ../lib/standard/collection/array.nit:281 */
6554 fra
.me
.REG
[4] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
6555 REGB4
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6556 if (UNTAG_Bool(REGB4
)) {
6557 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
6559 /* ../lib/standard/collection/array.nit:718 */
6560 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB3
)];
6561 /* ../lib/standard/collection/array.nit:281 */
6564 /* syntax/icode_generation.nit:1286 */
6565 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6566 /* syntax/icode_generation.nit:1287 */
6567 fra
.me
.REG
[6] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6568 fra
.me
.REG
[6] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB2
);
6569 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[6]);
6570 /* ../lib/standard/kernel.nit:354 */
6572 /* ../lib/standard/kernel.nit:235 */
6573 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
6574 /* ../lib/standard/kernel.nit:354 */
6577 /* ../lib/standard/kernel.nit:352 */
6582 /* syntax/icode_generation.nit:1290 */
6583 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6584 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6585 /* syntax/icode_generation.nit:1293 */
6586 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6587 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6588 if (UNTAG_Bool(REGB0
)) {
6589 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6590 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6591 if (UNTAG_Bool(REGB0
)) {
6592 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1293);
6594 fra
.me
.REG
[6] = CALL_syntax___icode_generation___EscapableBlock___break_value(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6595 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6596 if (UNTAG_Bool(REGB0
)) {
6598 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6599 if (UNTAG_Bool(REGB1
)) {
6600 REGB1
= TAG_Bool(false);
6603 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
6608 REGB1
= TAG_Bool(false);
6611 if (UNTAG_Bool(REGB0
)) {
6612 /* syntax/icode_generation.nit:1294 */
6613 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6614 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6615 if (UNTAG_Bool(REGB0
)) {
6616 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1294);
6618 fra
.me
.REG
[6] = CALL_syntax___icode_generation___EscapableBlock___break_seq(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6619 REGB0
= TAG_Bool(fra
.me
.REG
[6]!=NIT_NULL
);
6620 if (UNTAG_Bool(REGB0
)) {
6622 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1294);
6624 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6626 /* syntax/icode_generation.nit:1297 */
6627 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6628 /* syntax/icode_generation.nit:1298 */
6629 ATTR_syntax___icode_generation___AClosureDef____iclosure_def(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
6630 /* syntax/icode_generation.nit:1299 */
6633 stack_frame_head
= fra
.me
.prev
;
6634 return fra
.me
.REG
[5];
6636 val_t
syntax___icode_generation___AClosureCallExpr___generate_icode(val_t p0
, val_t p1
){
6637 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
6642 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6643 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6645 fra
.me
.meth
= LOCATE_syntax___icode_generation___AClosureCallExpr___generate_icode
;
6646 fra
.me
.has_broke
= 0;
6647 fra
.me
.REG_size
= 9;
6648 fra
.me
.nitni_local_ref_head
= NULL
;
6649 fra
.me
.REG
[0] = NIT_NULL
;
6650 fra
.me
.REG
[1] = NIT_NULL
;
6651 fra
.me
.REG
[2] = NIT_NULL
;
6652 fra
.me
.REG
[3] = NIT_NULL
;
6653 fra
.me
.REG
[4] = NIT_NULL
;
6654 fra
.me
.REG
[5] = NIT_NULL
;
6655 fra
.me
.REG
[6] = NIT_NULL
;
6656 fra
.me
.REG
[7] = NIT_NULL
;
6657 fra
.me
.REG
[8] = NIT_NULL
;
6660 /* syntax/icode_generation.nit:1307 */
6661 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___init();
6662 /* syntax/icode_generation.nit:1308 */
6663 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6664 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6665 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6666 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]);
6667 /* syntax/icode_generation.nit:1311 */
6668 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___closurevariables(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6669 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6670 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6671 /* syntax/icode_generation.nit:1312 */
6672 fra
.me
.REG
[3] = NEW_IClosCall_icode___icode_base___IClosCall___init(fra
.me
.REG
[4], fra
.me
.REG
[2]);
6673 /* syntax/icode_generation.nit:1313 */
6674 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6675 /* syntax/icode_generation.nit:1316 */
6676 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6677 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6679 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
6680 if (UNTAG_Bool(REGB2
)) {
6682 /* ../lib/standard/kernel.nit:227 */
6683 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
6684 /* syntax/icode_generation.nit:1316 */
6687 if (UNTAG_Bool(REGB2
)) {
6688 /* syntax/icode_generation.nit:1317 */
6689 fra
.me
.REG
[6] = NEW_ISeq_icode___icode_base___ISeq___init();
6690 /* syntax/icode_generation.nit:1318 */
6691 CALL_icode___icode_base___IClosCall___break_seq__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
6692 /* syntax/icode_generation.nit:1319 */
6693 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6694 /* syntax/icode_generation.nit:1320 */
6695 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6696 fra
.me
.REG
[6] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6697 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6698 if (UNTAG_Bool(REGB2
)) {
6699 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1320);
6701 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_expr(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6702 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6703 /* syntax/icode_generation.nit:1321 */
6704 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6706 /* syntax/icode_generation.nit:1325 */
6707 fra
.me
.REG
[6] = NIT_NULL
;
6708 /* syntax/icode_generation.nit:1326 */
6709 fra
.me
.REG
[7] = CALL_icode___icode_base___IClosureDecl___default(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6710 /* syntax/icode_generation.nit:1327 */
6711 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6712 if (UNTAG_Bool(REGB2
)) {
6714 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6715 if (UNTAG_Bool(REGB1
)) {
6716 REGB1
= TAG_Bool(false);
6719 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
6723 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6724 if (UNTAG_Bool(REGB2
)) {
6725 /* syntax/icode_generation.nit:1328 */
6726 fra
.me
.REG
[4] = NEW_IHasClos_icode___icode_base___IHasClos___init(fra
.me
.REG
[4]);
6727 fra
.me
.REG
[8] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6728 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6729 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]);
6730 fra
.me
.REG
[8] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[8]);
6731 fra
.me
.REG
[6] = fra
.me
.REG
[8];
6732 /* syntax/icode_generation.nit:1329 */
6733 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6734 /* syntax/icode_generation.nit:1330 */
6735 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6736 if (UNTAG_Bool(REGB2
)) {
6737 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1330);
6739 fra
.me
.REG
[8] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6740 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[8]);
6742 /* syntax/icode_generation.nit:1334 */
6743 fra
.me
.REG
[8] = NIT_NULL
;
6744 /* syntax/icode_generation.nit:1335 */
6745 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6746 fra
.me
.REG
[0] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6747 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6748 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6749 /* syntax/icode_generation.nit:1336 */
6750 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6751 if (UNTAG_Bool(REGB2
)) {
6753 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6754 if (UNTAG_Bool(REGB1
)) {
6755 REGB1
= TAG_Bool(false);
6758 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
6762 if (UNTAG_Bool(REGB2
)) {
6763 /* syntax/icode_generation.nit:1337 */
6764 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6766 /* syntax/icode_generation.nit:1339 */
6767 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]);
6768 fra
.me
.REG
[8] = fra
.me
.REG
[3];
6770 /* syntax/icode_generation.nit:1343 */
6771 fra
.me
.REG
[3] = NIT_NULL
;
6772 /* syntax/icode_generation.nit:1344 */
6773 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6774 if (UNTAG_Bool(REGB2
)) {
6776 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6777 if (UNTAG_Bool(REGB1
)) {
6778 REGB1
= TAG_Bool(false);
6781 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
6785 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6786 if (UNTAG_Bool(REGB2
)) {
6787 /* syntax/icode_generation.nit:1345 */
6788 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6789 if (UNTAG_Bool(REGB2
)) {
6791 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6792 if (UNTAG_Bool(REGB1
)) {
6793 REGB1
= TAG_Bool(false);
6796 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
6800 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6801 if (UNTAG_Bool(REGB2
)) {
6803 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 1345);
6805 /* syntax/icode_generation.nit:1346 */
6806 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6807 if (UNTAG_Bool(REGB2
)) {
6809 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6810 if (UNTAG_Bool(REGB1
)) {
6811 REGB1
= TAG_Bool(false);
6814 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
6818 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6819 if (UNTAG_Bool(REGB2
)) {
6820 /* syntax/icode_generation.nit:1347 */
6821 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6822 if (UNTAG_Bool(REGB2
)) {
6824 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6825 if (UNTAG_Bool(REGB1
)) {
6826 REGB1
= TAG_Bool(false);
6829 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
6833 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6834 if (UNTAG_Bool(REGB2
)) {
6836 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 1347);
6838 /* syntax/icode_generation.nit:1348 */
6839 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6840 fra
.me
.REG
[3] = fra
.me
.REG
[0];
6841 /* syntax/icode_generation.nit:1349 */
6842 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[8]);
6844 /* syntax/icode_generation.nit:1351 */
6845 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6846 if (UNTAG_Bool(REGB2
)) {
6847 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1351);
6849 fra
.me
.REG
[6] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6850 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6851 /* syntax/icode_generation.nit:1352 */
6852 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
);
6853 /* syntax/icode_generation.nit:1353 */
6854 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6855 if (UNTAG_Bool(REGB2
)) {
6857 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6858 if (UNTAG_Bool(REGB1
)) {
6859 REGB1
= TAG_Bool(false);
6862 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
6866 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6867 if (UNTAG_Bool(REGB2
)) {
6868 /* syntax/icode_generation.nit:1354 */
6869 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6870 if (UNTAG_Bool(REGB2
)) {
6872 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
6873 if (UNTAG_Bool(REGB1
)) {
6874 REGB1
= TAG_Bool(false);
6877 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
6881 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6882 if (UNTAG_Bool(REGB2
)) {
6884 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 1354);
6886 /* syntax/icode_generation.nit:1355 */
6887 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
6889 /* syntax/icode_generation.nit:1357 */
6890 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6892 /* syntax/icode_generation.nit:1359 */
6893 fra
.me
.REG
[3] = fra
.me
.REG
[8];
6895 /* syntax/icode_generation.nit:1361 */
6898 stack_frame_head
= fra
.me
.prev
;
6899 return fra
.me
.REG
[3];
6901 val_t
syntax___icode_generation___ADebugTypeExpr___generate_icode(val_t p0
, val_t p1
){
6902 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6904 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6905 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6907 fra
.me
.meth
= LOCATE_syntax___icode_generation___ADebugTypeExpr___generate_icode
;
6908 fra
.me
.has_broke
= 0;
6909 fra
.me
.REG_size
= 2;
6910 fra
.me
.nitni_local_ref_head
= NULL
;
6911 fra
.me
.REG
[0] = NIT_NULL
;
6912 fra
.me
.REG
[1] = NIT_NULL
;
6915 /* syntax/icode_generation.nit:1369 */
6916 fra
.me
.REG
[1] = NIT_NULL
;
6919 stack_frame_head
= fra
.me
.prev
;
6920 return fra
.me
.REG
[1];