1 /* This C file is generated by NIT to compile module icode_generation. */
2 #include "icode_generation._sep.h"
3 void icode_generation___A2IContext___stmt(val_t p0
, val_t p1
){
4 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
8 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9 fra
.me
.file
= LOCATE_icode_generation
;
11 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___stmt
;
14 fra
.me
.REG
[0] = NIT_NULL
;
15 fra
.me
.REG
[1] = NIT_NULL
;
16 fra
.me
.REG
[2] = NIT_NULL
;
17 fra
.me
.REG
[3] = NIT_NULL
;
20 fra
.me
.REG
[2] = fra
.me
.REG
[0];
21 fra
.me
.REG
[3] = ATTR_icode_generation___A2IContext____current_node(fra
.me
.REG
[2]);
22 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
23 /* ./syntax//icode_generation.nit:30 */
24 if (UNTAG_Bool(REGB0
)) {
26 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
27 if (UNTAG_Bool(REGB1
)) {
28 REGB1
= TAG_Bool(false);
31 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
35 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
36 if (UNTAG_Bool(REGB0
)) {
37 fra
.me
.REG
[3] = ATTR_icode_generation___A2IContext____current_node(fra
.me
.REG
[2]);
38 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
39 /* ./syntax//icode_generation.nit:31 */
40 if (UNTAG_Bool(REGB0
)) {
41 fprintf(stderr
, "Reciever is null");
42 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 31);
45 fra
.me
.REG
[3] = CALL_parser_nodes___ANode___location(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
46 CALL_icode_builder___ICodeBuilder___current_location__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
48 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
49 fra
.me
.REG
[3] = CALL_parser_prod___Visitor___current_node(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
50 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
51 /* ./syntax//icode_generation.nit:32 */
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_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 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
66 fra
.me
.REG
[3] = CALL_parser_prod___Visitor___current_node(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
67 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
68 /* ./syntax//icode_generation.nit:33 */
69 if (UNTAG_Bool(REGB0
)) {
70 fprintf(stderr
, "Reciever is null");
71 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 33);
74 fra
.me
.REG
[3] = CALL_parser_nodes___ANode___location(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
75 CALL_icode_builder___ICodeBuilder___current_location__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
78 /* ./syntax//icode_generation.nit:35 */
79 CALL_SUPER_icode_generation___A2IContext___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
80 stack_frame_head
= fra
.me
.prev
;
83 val_t
icode_generation___A2IContext___add_new_array(val_t p0
, val_t p1
, val_t p2
){
84 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
88 static val_t once_value_1
; /* Once value */
89 static val_t once_value_2
; /* Once value */
90 static val_t once_value_3
; /* Once value */
91 static val_t once_value_4
; /* Once value */
92 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
93 fra
.me
.file
= LOCATE_icode_generation
;
95 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___add_new_array
;
98 fra
.me
.REG
[0] = NIT_NULL
;
99 fra
.me
.REG
[1] = NIT_NULL
;
100 fra
.me
.REG
[2] = NIT_NULL
;
101 fra
.me
.REG
[3] = NIT_NULL
;
102 fra
.me
.REG
[4] = NIT_NULL
;
106 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
107 /* ./syntax//icode_generation.nit:41 */
110 fra
.me
.REG
[3] = BOX_NativeString("with_capacity");
112 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB1
);
113 once_value_2
= fra
.me
.REG
[3];
114 register_static_object(&once_value_2
);
115 } else fra
.me
.REG
[3] = once_value_2
;
116 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
117 once_value_1
= fra
.me
.REG
[3];
118 register_static_object(&once_value_1
);
119 } else fra
.me
.REG
[3] = once_value_1
;
120 fra
.me
.REG
[3] = CALL_syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[3]);
122 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB1
);
123 /* ./syntax//icode_generation.nit:42 */
125 fra
.me
.REG
[4] = BOX_NativeString("TAG_Int(");
127 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
128 once_value_3
= fra
.me
.REG
[4];
129 register_static_object(&once_value_3
);
130 } else fra
.me
.REG
[4] = once_value_3
;
131 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[4]);
132 fra
.me
.REG
[4] = CALL_string___Object___to_s(REGB0
)(REGB0
);
133 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[4]);
135 fra
.me
.REG
[4] = BOX_NativeString(")");
137 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
138 once_value_4
= fra
.me
.REG
[4];
139 register_static_object(&once_value_4
);
140 } else fra
.me
.REG
[4] = once_value_4
;
141 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[4]);
142 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
143 fra
.me
.REG
[2] = NEW_INative_icode_base___INative___init(fra
.me
.REG
[2], NIT_NULL
);
144 fra
.me
.REG
[4] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
145 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
146 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[4]);
148 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
149 /* ./syntax//icode_generation.nit:43 */
150 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[4]);
151 fra
.me
.REG
[2] = NEW_INew_icode_base___INew___init(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
152 fra
.me
.REG
[1] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[1]);
155 stack_frame_head
= fra
.me
.prev
;
156 return fra
.me
.REG
[1];
158 void icode_generation___A2IContext___add_call_array_add(val_t p0
, val_t p1
, val_t p2
){
159 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
162 static val_t once_value_1
; /* Once value */
163 static val_t once_value_2
; /* Once value */
164 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
165 fra
.me
.file
= LOCATE_icode_generation
;
167 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___add_call_array_add
;
168 fra
.me
.has_broke
= 0;
170 fra
.me
.REG
[0] = NIT_NULL
;
171 fra
.me
.REG
[1] = NIT_NULL
;
172 fra
.me
.REG
[2] = NIT_NULL
;
173 fra
.me
.REG
[3] = NIT_NULL
;
174 fra
.me
.REG
[4] = NIT_NULL
;
175 fra
.me
.REG
[5] = NIT_NULL
;
179 fra
.me
.REG
[3] = CALL_icode_base___IRegister___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
180 fra
.me
.REG
[4] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
181 /* ./syntax//icode_generation.nit:50 */
184 fra
.me
.REG
[5] = BOX_NativeString("add");
186 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
187 once_value_2
= fra
.me
.REG
[5];
188 register_static_object(&once_value_2
);
189 } else fra
.me
.REG
[5] = once_value_2
;
190 fra
.me
.REG
[5] = CALL_symbol___String___to_symbol(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
191 once_value_1
= fra
.me
.REG
[5];
192 register_static_object(&once_value_1
);
193 } else fra
.me
.REG
[5] = once_value_1
;
194 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3], fra
.me
.REG
[5]);
196 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
197 /* ./syntax//icode_generation.nit:51 */
198 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[1]);
199 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[2]);
200 fra
.me
.REG
[3] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[3]);
201 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
202 stack_frame_head
= fra
.me
.prev
;
205 val_t
icode_generation___A2IContext___variable(val_t p0
, val_t p1
){
206 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
210 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
211 fra
.me
.file
= LOCATE_icode_generation
;
213 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___variable
;
214 fra
.me
.has_broke
= 0;
216 fra
.me
.REG
[0] = NIT_NULL
;
217 fra
.me
.REG
[1] = NIT_NULL
;
218 fra
.me
.REG
[2] = NIT_NULL
;
219 fra
.me
.REG
[3] = NIT_NULL
;
220 fra
.me
.REG
[4] = NIT_NULL
;
223 REGB0
= TAG_Bool(ATTR_icode_generation___A2IContext____variables(fra
.me
.REG
[0])!=NIT_NULL
);
224 /* ./syntax//icode_generation.nit:58 */
225 if (UNTAG_Bool(REGB0
)) {
227 fprintf(stderr
, "Uninitialized attribute %s", "_variables");
228 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 58);
231 fra
.me
.REG
[2] = ATTR_icode_generation___A2IContext____variables(fra
.me
.REG
[0]);
232 REGB0
= CALL_abstract_collection___MapRead___has_key(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
233 if (UNTAG_Bool(REGB0
)) {
234 REGB0
= TAG_Bool(ATTR_icode_generation___A2IContext____variables(fra
.me
.REG
[0])!=NIT_NULL
);
235 /* ./syntax//icode_generation.nit:59 */
236 if (UNTAG_Bool(REGB0
)) {
238 fprintf(stderr
, "Uninitialized attribute %s", "_variables");
239 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 59);
242 fra
.me
.REG
[2] = ATTR_icode_generation___A2IContext____variables(fra
.me
.REG
[0]);
243 fra
.me
.REG
[2] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
246 fra
.me
.REG
[3] = CALL_syntax_base___Variable___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
247 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
248 /* ./syntax//icode_generation.nit:62 */
249 if (UNTAG_Bool(REGB0
)) {
251 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
252 if (UNTAG_Bool(REGB1
)) {
253 REGB1
= TAG_Bool(false);
256 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
260 if (UNTAG_Bool(REGB0
)) {
261 fra
.me
.REG
[4] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
262 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
263 fra
.me
.REG
[4] = CALL_static_type___MMType___as_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
264 fra
.me
.REG
[3] = fra
.me
.REG
[4];
266 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
267 REGB0
= TAG_Bool(ATTR_icode_generation___A2IContext____variables(fra
.me
.REG
[0])!=NIT_NULL
);
268 /* ./syntax//icode_generation.nit:64 */
269 if (UNTAG_Bool(REGB0
)) {
271 fprintf(stderr
, "Uninitialized attribute %s", "_variables");
272 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 64);
275 fra
.me
.REG
[0] = ATTR_icode_generation___A2IContext____variables(fra
.me
.REG
[0]);
276 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3]);
277 fra
.me
.REG
[2] = fra
.me
.REG
[3];
278 /* ./syntax//icode_generation.nit:65 */
282 stack_frame_head
= fra
.me
.prev
;
283 return fra
.me
.REG
[2];
285 val_t
icode_generation___A2IContext___closurevariables(val_t p0
){
286 struct {struct stack_frame_t me
;} fra
;
289 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
290 fra
.me
.file
= LOCATE_icode_generation
;
292 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___closurevariables
;
293 fra
.me
.has_broke
= 0;
295 fra
.me
.REG
[0] = NIT_NULL
;
297 REGB0
= TAG_Bool(ATTR_icode_generation___A2IContext____closurevariables(fra
.me
.REG
[0])!=NIT_NULL
);
298 /* ./syntax//icode_generation.nit:72 */
299 if (UNTAG_Bool(REGB0
)) {
301 fprintf(stderr
, "Uninitialized attribute %s", "_closurevariables");
302 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 72);
305 fra
.me
.REG
[0] = ATTR_icode_generation___A2IContext____closurevariables(fra
.me
.REG
[0]);
306 stack_frame_head
= fra
.me
.prev
;
307 return fra
.me
.REG
[0];
309 val_t
icode_generation___A2IContext___visitor(val_t p0
){
310 struct {struct stack_frame_t me
;} fra
;
313 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
314 fra
.me
.file
= LOCATE_icode_generation
;
316 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___visitor
;
317 fra
.me
.has_broke
= 0;
319 fra
.me
.REG
[0] = NIT_NULL
;
321 REGB0
= TAG_Bool(ATTR_icode_generation___A2IContext____visitor(fra
.me
.REG
[0])!=NIT_NULL
);
322 /* ./syntax//icode_generation.nit:75 */
323 if (UNTAG_Bool(REGB0
)) {
325 fprintf(stderr
, "Uninitialized attribute %s", "_visitor");
326 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 75);
329 fra
.me
.REG
[0] = ATTR_icode_generation___A2IContext____visitor(fra
.me
.REG
[0]);
330 stack_frame_head
= fra
.me
.prev
;
331 return fra
.me
.REG
[0];
333 val_t
icode_generation___A2IContext___return_seq(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_icode_generation
;
339 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___return_seq
;
340 fra
.me
.has_broke
= 0;
342 fra
.me
.REG
[0] = NIT_NULL
;
344 fra
.me
.REG
[0] = ATTR_icode_generation___A2IContext____return_seq(fra
.me
.REG
[0]);
345 /* ./syntax//icode_generation.nit:78 */
346 stack_frame_head
= fra
.me
.prev
;
347 return fra
.me
.REG
[0];
349 void icode_generation___A2IContext___return_seq__eq(val_t p0
, val_t p1
){
350 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
352 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
353 fra
.me
.file
= LOCATE_icode_generation
;
355 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___return_seq__eq
;
356 fra
.me
.has_broke
= 0;
358 fra
.me
.REG
[0] = NIT_NULL
;
359 fra
.me
.REG
[1] = NIT_NULL
;
362 /* ./syntax//icode_generation.nit:78 */
363 ATTR_icode_generation___A2IContext____return_seq(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
364 stack_frame_head
= fra
.me
.prev
;
367 val_t
icode_generation___A2IContext___return_value(val_t p0
){
368 struct {struct stack_frame_t me
;} fra
;
370 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
371 fra
.me
.file
= LOCATE_icode_generation
;
373 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___return_value
;
374 fra
.me
.has_broke
= 0;
376 fra
.me
.REG
[0] = NIT_NULL
;
378 fra
.me
.REG
[0] = ATTR_icode_generation___A2IContext____return_value(fra
.me
.REG
[0]);
379 /* ./syntax//icode_generation.nit:81 */
380 stack_frame_head
= fra
.me
.prev
;
381 return fra
.me
.REG
[0];
383 void icode_generation___A2IContext___return_value__eq(val_t p0
, val_t p1
){
384 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
386 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
387 fra
.me
.file
= LOCATE_icode_generation
;
389 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___return_value__eq
;
390 fra
.me
.has_broke
= 0;
392 fra
.me
.REG
[0] = NIT_NULL
;
393 fra
.me
.REG
[1] = NIT_NULL
;
396 /* ./syntax//icode_generation.nit:81 */
397 ATTR_icode_generation___A2IContext____return_value(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
398 stack_frame_head
= fra
.me
.prev
;
401 val_t
icode_generation___A2IContext___method(val_t p0
){
402 struct {struct stack_frame_t me
;} fra
;
404 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
405 fra
.me
.file
= LOCATE_icode_generation
;
407 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___method
;
408 fra
.me
.has_broke
= 0;
410 fra
.me
.REG
[0] = NIT_NULL
;
412 fra
.me
.REG
[0] = ATTR_icode_generation___A2IContext____method(fra
.me
.REG
[0]);
413 /* ./syntax//icode_generation.nit:84 */
414 stack_frame_head
= fra
.me
.prev
;
415 return fra
.me
.REG
[0];
417 void icode_generation___A2IContext___init(val_t p0
, val_t p1
, val_t p2
, val_t p3
, int* init_table
){
418 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_A2IContext
].i
;
419 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
421 if (init_table
[itpos0
]) return;
422 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
423 fra
.me
.file
= LOCATE_icode_generation
;
425 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___init
;
426 fra
.me
.has_broke
= 0;
428 fra
.me
.REG
[0] = NIT_NULL
;
429 fra
.me
.REG
[1] = NIT_NULL
;
430 fra
.me
.REG
[2] = NIT_NULL
;
431 fra
.me
.REG
[3] = NIT_NULL
;
432 fra
.me
.REG
[4] = NIT_NULL
;
433 fra
.me
.REG
[5] = NIT_NULL
;
438 fra
.me
.REG
[4] = fra
.me
.REG
[0];
439 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___module(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
440 /* ./syntax//icode_generation.nit:89 */
441 CALL_icode_builder___ICodeBuilder___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5], fra
.me
.REG
[2], init_table
);
442 /* ./syntax//icode_generation.nit:90 */
443 ATTR_icode_generation___A2IContext____visitor(fra
.me
.REG
[4]) = fra
.me
.REG
[1];
444 fra
.me
.REG
[1] = CALL_icode_base___IRoutine___body(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
445 /* ./syntax//icode_generation.nit:91 */
446 ATTR_icode_generation___A2IContext____return_seq(fra
.me
.REG
[4]) = fra
.me
.REG
[1];
447 fra
.me
.REG
[2] = CALL_icode_base___IRoutine___result(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
448 /* ./syntax//icode_generation.nit:92 */
449 ATTR_icode_generation___A2IContext____return_value(fra
.me
.REG
[4]) = fra
.me
.REG
[2];
450 /* ./syntax//icode_generation.nit:93 */
451 ATTR_icode_generation___A2IContext____method(fra
.me
.REG
[4]) = fra
.me
.REG
[3];
452 stack_frame_head
= fra
.me
.prev
;
453 init_table
[itpos0
] = 1;
456 void icode_generation___A2IContext___invoke_super_init_calls_after(val_t p0
, val_t p1
){
457 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
464 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
465 fra
.me
.file
= LOCATE_icode_generation
;
467 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___invoke_super_init_calls_after
;
468 fra
.me
.has_broke
= 0;
470 fra
.me
.REG
[0] = NIT_NULL
;
471 fra
.me
.REG
[1] = NIT_NULL
;
472 fra
.me
.REG
[2] = NIT_NULL
;
473 fra
.me
.REG
[3] = NIT_NULL
;
474 fra
.me
.REG
[4] = NIT_NULL
;
475 fra
.me
.REG
[5] = NIT_NULL
;
476 fra
.me
.REG
[6] = NIT_NULL
;
479 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
480 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_MMSrcMethod
, ID_MMSrcMethod
)) /*cast MMSrcMethod*/;
481 /* ./syntax//icode_generation.nit:100 */
482 if (UNTAG_Bool(REGB0
)) {
484 fprintf(stderr
, "Assert failed");
485 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 100);
488 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
489 /* ./syntax//icode_generation.nit:101 */
490 if (UNTAG_Bool(REGB0
)) {
491 fprintf(stderr
, "Reciever is null");
492 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 101);
495 fra
.me
.REG
[2] = CALL_syntax_base___MMLocalProperty___node(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
496 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_AConcreteInitPropdef
, ID_AConcreteInitPropdef
)) /*cast AConcreteInitPropdef*/;
497 /* ./syntax//icode_generation.nit:102 */
498 if (UNTAG_Bool(REGB0
)) {
500 fprintf(stderr
, "Assert failed");
501 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 102);
504 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
505 /* ./syntax//icode_generation.nit:104 */
506 if (UNTAG_Bool(REGB0
)) {
507 fprintf(stderr
, "Reciever is null");
508 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 104);
511 fra
.me
.REG
[3] = CALL_syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
512 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
513 if (UNTAG_Bool(REGB0
)) {
518 REGB2
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
519 /* ./syntax//icode_generation.nit:107 */
520 if (UNTAG_Bool(REGB2
)) {
522 REGB3
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
523 if (UNTAG_Bool(REGB3
)) {
524 REGB3
= TAG_Bool(false);
527 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
531 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
532 if (UNTAG_Bool(REGB2
)) {
533 /* ./syntax//icode_generation.nit:108 */
535 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
536 if (UNTAG_Bool(REGB2
)) {
537 fprintf(stderr
, "Reciever is null");
538 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 108);
541 fra
.me
.REG
[3] = CALL_syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
544 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
545 /* ./../lib/standard//collection//array.nit:233 */
546 if (UNTAG_Bool(REGB3
)) {
547 REGB3
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
548 if (UNTAG_Bool(REGB3
)) {
550 fprintf(stderr
, "Uninitialized attribute %s", "_length");
551 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
554 REGB3
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
555 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
556 /* ./../lib/standard//collection//array.nit:233 */
558 REGB4
= TAG_Bool(false);
561 if (UNTAG_Bool(REGB3
)) {
563 fprintf(stderr
, "Assert %s failed", "'index'");
564 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
567 fra
.me
.REG
[3] = ATTR_array___Array____items(fra
.me
.REG
[3]);
568 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
569 /* ./../lib/standard//collection//array.nit:234 */
570 if (UNTAG_Bool(REGB3
)) {
571 fprintf(stderr
, "Reciever is null");
572 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
575 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB2
)];
576 /* ./../lib/standard//collection//array.nit:234 */
579 REGB2
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[3],fra
.me
.REG
[1]));
580 /* ./syntax//icode_generation.nit:108 */
581 if (UNTAG_Bool(REGB2
)) {
583 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
584 if (UNTAG_Bool(REGB3
)) {
585 REGB3
= TAG_Bool(false);
588 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
592 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
593 if (UNTAG_Bool(REGB2
)) {
595 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
597 /* ./syntax//icode_generation.nit:109 */
599 /* ./syntax//icode_generation.nit:108 */
605 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
607 /* ./syntax//icode_generation.nit:113 */
609 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
610 if (UNTAG_Bool(REGB2
)) {
611 fprintf(stderr
, "Reciever is null");
612 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 113);
615 fra
.me
.REG
[3] = CALL_syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
618 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
619 /* ./../lib/standard//collection//array.nit:233 */
620 if (UNTAG_Bool(REGB3
)) {
621 REGB3
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
622 if (UNTAG_Bool(REGB3
)) {
624 fprintf(stderr
, "Uninitialized attribute %s", "_length");
625 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
628 REGB3
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
629 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
630 /* ./../lib/standard//collection//array.nit:233 */
632 REGB4
= TAG_Bool(false);
635 if (UNTAG_Bool(REGB3
)) {
637 fprintf(stderr
, "Assert %s failed", "'index'");
638 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
641 fra
.me
.REG
[3] = ATTR_array___Array____items(fra
.me
.REG
[3]);
642 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
643 /* ./../lib/standard//collection//array.nit:234 */
644 if (UNTAG_Bool(REGB3
)) {
645 fprintf(stderr
, "Reciever is null");
646 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
649 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB2
)];
650 /* ./../lib/standard//collection//array.nit:234 */
653 REGB2
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[3],fra
.me
.REG
[1]));
654 /* ./syntax//icode_generation.nit:113 */
655 if (UNTAG_Bool(REGB2
)) {
657 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
658 if (UNTAG_Bool(REGB3
)) {
659 REGB3
= TAG_Bool(false);
662 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
666 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
667 if (UNTAG_Bool(REGB2
)) {
669 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
671 /* ./syntax//icode_generation.nit:114 */
673 /* ./syntax//icode_generation.nit:113 */
679 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
681 /* ./syntax//icode_generation.nit:116 */
683 fra
.me
.REG
[1] = NIT_NULL
;
684 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
685 /* ./syntax//icode_generation.nit:119 */
686 if (UNTAG_Bool(REGB2
)) {
687 fprintf(stderr
, "Reciever is null");
688 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 119);
691 fra
.me
.REG
[3] = CALL_syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
692 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
693 /* ./../lib/standard//collection//array.nit:23 */
694 if (UNTAG_Bool(REGB2
)) {
696 fprintf(stderr
, "Uninitialized attribute %s", "_length");
697 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
700 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
701 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
702 /* ./syntax//icode_generation.nit:119 */
703 if (UNTAG_Bool(REGB2
)) {
704 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
705 /* ./syntax//icode_generation.nit:120 */
706 if (UNTAG_Bool(REGB2
)) {
707 fprintf(stderr
, "Reciever is null");
708 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 120);
711 fra
.me
.REG
[3] = CALL_syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
713 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>=UNTAG_Int(REGB2
));
714 /* ./../lib/standard//collection//array.nit:233 */
715 if (UNTAG_Bool(REGB2
)) {
716 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
717 if (UNTAG_Bool(REGB2
)) {
719 fprintf(stderr
, "Uninitialized attribute %s", "_length");
720 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
723 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
724 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
725 /* ./../lib/standard//collection//array.nit:233 */
727 REGB3
= TAG_Bool(false);
730 if (UNTAG_Bool(REGB2
)) {
732 fprintf(stderr
, "Assert %s failed", "'index'");
733 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
736 fra
.me
.REG
[3] = ATTR_array___Array____items(fra
.me
.REG
[3]);
737 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
738 /* ./../lib/standard//collection//array.nit:234 */
739 if (UNTAG_Bool(REGB2
)) {
740 fprintf(stderr
, "Reciever is null");
741 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
744 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB1
)];
745 /* ./../lib/standard//collection//array.nit:234 */
748 fra
.me
.REG
[1] = fra
.me
.REG
[3];
749 /* ./syntax//icode_generation.nit:120 */
751 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
752 /* ./syntax//icode_generation.nit:122 */
753 if (UNTAG_Bool(REGB1
)) {
754 fprintf(stderr
, "Reciever is null");
755 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 122);
758 fra
.me
.REG
[3] = CALL_syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
759 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
760 /* ./../lib/standard//collection//array.nit:23 */
761 if (UNTAG_Bool(REGB1
)) {
763 fprintf(stderr
, "Uninitialized attribute %s", "_length");
764 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
767 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
768 /* ./syntax//icode_generation.nit:123 */
770 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
771 /* ./syntax//icode_generation.nit:123 */
772 if (UNTAG_Bool(REGB2
)) {
773 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
774 /* ./syntax//icode_generation.nit:124 */
775 if (UNTAG_Bool(REGB2
)) {
776 fprintf(stderr
, "Reciever is null");
777 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 124);
780 fra
.me
.REG
[3] = CALL_syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
783 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
784 /* ./../lib/standard//collection//array.nit:233 */
785 if (UNTAG_Bool(REGB3
)) {
786 REGB3
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
787 if (UNTAG_Bool(REGB3
)) {
789 fprintf(stderr
, "Uninitialized attribute %s", "_length");
790 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
793 REGB3
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
794 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
795 /* ./../lib/standard//collection//array.nit:233 */
797 REGB4
= TAG_Bool(false);
800 if (UNTAG_Bool(REGB3
)) {
802 fprintf(stderr
, "Assert %s failed", "'index'");
803 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
806 fra
.me
.REG
[3] = ATTR_array___Array____items(fra
.me
.REG
[3]);
807 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
808 /* ./../lib/standard//collection//array.nit:234 */
809 if (UNTAG_Bool(REGB3
)) {
810 fprintf(stderr
, "Reciever is null");
811 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
814 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB2
)];
815 /* ./../lib/standard//collection//array.nit:234 */
818 REGB2
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[3],fra
.me
.REG
[1]));
819 /* ./syntax//icode_generation.nit:125 */
820 if (UNTAG_Bool(REGB2
)) {
822 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
825 if (UNTAG_Bool(REGB2
)) {
828 fra
.me
.REG
[4] = NEW_Array_array___Array___init();
829 fra
.me
.REG
[5] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
830 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
831 /* ./syntax//icode_generation.nit:127 */
832 if (UNTAG_Bool(REGB2
)) {
833 fprintf(stderr
, "Reciever is null");
834 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 127);
837 REGB2
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
839 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB3
));
840 if (UNTAG_Bool(REGB4
)) {
842 REGB3
= TAG_Bool((REGB2
)==(REGB3
));
844 /* ./syntax//icode_generation.nit:127 */
846 if (UNTAG_Bool(REGB4
)) {
847 fra
.me
.REG
[5] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
848 fra
.me
.REG
[5] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
849 fra
.me
.REG
[5] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
850 /* ./syntax//icode_generation.nit:128 */
851 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
853 fra
.me
.REG
[5] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
854 fra
.me
.REG
[5] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
855 fra
.me
.REG
[5] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
856 /* ./syntax//icode_generation.nit:130 */
858 REGB4
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
859 if (UNTAG_Bool(REGB4
)) {
860 fra
.me
.REG
[6] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
861 /* ./syntax//icode_generation.nit:131 */
862 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[6]);
864 /* ./syntax//icode_generation.nit:130 */
867 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
871 fra
.me
.REG
[4] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[4]);
872 /* ./syntax//icode_generation.nit:134 */
873 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
875 REGB4
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB4
));
877 /* ./syntax//icode_generation.nit:135 */
879 /* ./syntax//icode_generation.nit:123 */
885 stack_frame_head
= fra
.me
.prev
;
888 void icode_generation___A2IContext___generate_stmt(val_t p0
, val_t p1
){
889 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
893 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
894 fra
.me
.file
= LOCATE_icode_generation
;
896 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___generate_stmt
;
897 fra
.me
.has_broke
= 0;
899 fra
.me
.REG
[0] = NIT_NULL
;
900 fra
.me
.REG
[1] = NIT_NULL
;
901 fra
.me
.REG
[2] = NIT_NULL
;
904 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
905 /* ./syntax//icode_generation.nit:145 */
906 if (UNTAG_Bool(REGB0
)) {
908 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
909 if (UNTAG_Bool(REGB1
)) {
910 REGB1
= TAG_Bool(false);
913 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
917 if (UNTAG_Bool(REGB0
)) {
920 fra
.me
.REG
[2] = ATTR_icode_generation___A2IContext____current_node(fra
.me
.REG
[0]);
921 /* ./syntax//icode_generation.nit:147 */
922 ATTR_icode_generation___A2IContext____current_node(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
923 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
924 /* ./syntax//icode_generation.nit:148 */
925 if (UNTAG_Bool(REGB0
)) {
926 fprintf(stderr
, "Reciever is null");
927 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 148);
930 CALL_icode_generation___AExpr___generate_icode(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
931 /* ./syntax//icode_generation.nit:149 */
932 ATTR_icode_generation___A2IContext____current_node(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
934 stack_frame_head
= fra
.me
.prev
;
937 val_t
icode_generation___A2IContext___generate_expr(val_t p0
, val_t p1
){
938 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
941 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
942 fra
.me
.file
= LOCATE_icode_generation
;
944 fra
.me
.meth
= LOCATE_icode_generation___A2IContext___generate_expr
;
945 fra
.me
.has_broke
= 0;
947 fra
.me
.REG
[0] = NIT_NULL
;
948 fra
.me
.REG
[1] = NIT_NULL
;
949 fra
.me
.REG
[2] = NIT_NULL
;
952 fra
.me
.REG
[2] = ATTR_icode_generation___A2IContext____current_node(fra
.me
.REG
[0]);
953 /* ./syntax//icode_generation.nit:156 */
954 ATTR_icode_generation___A2IContext____current_node(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
955 fra
.me
.REG
[1] = CALL_icode_generation___AExpr___generate_icode(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
956 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
957 /* ./syntax//icode_generation.nit:157 */
958 if (UNTAG_Bool(REGB0
)) {
960 fprintf(stderr
, "Cast failed");
961 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 157);
964 /* ./syntax//icode_generation.nit:158 */
965 ATTR_icode_generation___A2IContext____current_node(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
966 /* ./syntax//icode_generation.nit:159 */
969 stack_frame_head
= fra
.me
.prev
;
970 return fra
.me
.REG
[1];
972 val_t
icode_generation___EscapableBlock___break_seq(val_t p0
){
973 struct {struct stack_frame_t me
;} fra
;
975 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
976 fra
.me
.file
= LOCATE_icode_generation
;
978 fra
.me
.meth
= LOCATE_icode_generation___EscapableBlock___break_seq
;
979 fra
.me
.has_broke
= 0;
981 fra
.me
.REG
[0] = NIT_NULL
;
983 fra
.me
.REG
[0] = ATTR_icode_generation___EscapableBlock____break_seq(fra
.me
.REG
[0]);
984 /* ./syntax//icode_generation.nit:164 */
985 stack_frame_head
= fra
.me
.prev
;
986 return fra
.me
.REG
[0];
988 void icode_generation___EscapableBlock___break_seq__eq(val_t p0
, val_t p1
){
989 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
991 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
992 fra
.me
.file
= LOCATE_icode_generation
;
994 fra
.me
.meth
= LOCATE_icode_generation___EscapableBlock___break_seq__eq
;
995 fra
.me
.has_broke
= 0;
997 fra
.me
.REG
[0] = NIT_NULL
;
998 fra
.me
.REG
[1] = NIT_NULL
;
1001 /* ./syntax//icode_generation.nit:164 */
1002 ATTR_icode_generation___EscapableBlock____break_seq(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1003 stack_frame_head
= fra
.me
.prev
;
1006 val_t
icode_generation___EscapableBlock___continue_seq(val_t p0
){
1007 struct {struct stack_frame_t me
;} fra
;
1009 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1010 fra
.me
.file
= LOCATE_icode_generation
;
1012 fra
.me
.meth
= LOCATE_icode_generation___EscapableBlock___continue_seq
;
1013 fra
.me
.has_broke
= 0;
1014 fra
.me
.REG_size
= 1;
1015 fra
.me
.REG
[0] = NIT_NULL
;
1017 fra
.me
.REG
[0] = ATTR_icode_generation___EscapableBlock____continue_seq(fra
.me
.REG
[0]);
1018 /* ./syntax//icode_generation.nit:167 */
1019 stack_frame_head
= fra
.me
.prev
;
1020 return fra
.me
.REG
[0];
1022 void icode_generation___EscapableBlock___continue_seq__eq(val_t p0
, val_t p1
){
1023 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1025 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1026 fra
.me
.file
= LOCATE_icode_generation
;
1028 fra
.me
.meth
= LOCATE_icode_generation___EscapableBlock___continue_seq__eq
;
1029 fra
.me
.has_broke
= 0;
1030 fra
.me
.REG_size
= 2;
1031 fra
.me
.REG
[0] = NIT_NULL
;
1032 fra
.me
.REG
[1] = NIT_NULL
;
1035 /* ./syntax//icode_generation.nit:167 */
1036 ATTR_icode_generation___EscapableBlock____continue_seq(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1037 stack_frame_head
= fra
.me
.prev
;
1040 val_t
icode_generation___EscapableBlock___break_value(val_t p0
){
1041 struct {struct stack_frame_t me
;} fra
;
1043 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1044 fra
.me
.file
= LOCATE_icode_generation
;
1046 fra
.me
.meth
= LOCATE_icode_generation___EscapableBlock___break_value
;
1047 fra
.me
.has_broke
= 0;
1048 fra
.me
.REG_size
= 1;
1049 fra
.me
.REG
[0] = NIT_NULL
;
1051 fra
.me
.REG
[0] = ATTR_icode_generation___EscapableBlock____break_value(fra
.me
.REG
[0]);
1052 /* ./syntax//icode_generation.nit:170 */
1053 stack_frame_head
= fra
.me
.prev
;
1054 return fra
.me
.REG
[0];
1056 void icode_generation___EscapableBlock___break_value__eq(val_t p0
, val_t p1
){
1057 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1059 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1060 fra
.me
.file
= LOCATE_icode_generation
;
1062 fra
.me
.meth
= LOCATE_icode_generation___EscapableBlock___break_value__eq
;
1063 fra
.me
.has_broke
= 0;
1064 fra
.me
.REG_size
= 2;
1065 fra
.me
.REG
[0] = NIT_NULL
;
1066 fra
.me
.REG
[1] = NIT_NULL
;
1069 /* ./syntax//icode_generation.nit:170 */
1070 ATTR_icode_generation___EscapableBlock____break_value(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1071 stack_frame_head
= fra
.me
.prev
;
1074 val_t
icode_generation___EscapableBlock___continue_value(val_t p0
){
1075 struct {struct stack_frame_t me
;} fra
;
1077 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1078 fra
.me
.file
= LOCATE_icode_generation
;
1080 fra
.me
.meth
= LOCATE_icode_generation___EscapableBlock___continue_value
;
1081 fra
.me
.has_broke
= 0;
1082 fra
.me
.REG_size
= 1;
1083 fra
.me
.REG
[0] = NIT_NULL
;
1085 fra
.me
.REG
[0] = ATTR_icode_generation___EscapableBlock____continue_value(fra
.me
.REG
[0]);
1086 /* ./syntax//icode_generation.nit:173 */
1087 stack_frame_head
= fra
.me
.prev
;
1088 return fra
.me
.REG
[0];
1090 void icode_generation___EscapableBlock___continue_value__eq(val_t p0
, val_t p1
){
1091 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1093 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1094 fra
.me
.file
= LOCATE_icode_generation
;
1096 fra
.me
.meth
= LOCATE_icode_generation___EscapableBlock___continue_value__eq
;
1097 fra
.me
.has_broke
= 0;
1098 fra
.me
.REG_size
= 2;
1099 fra
.me
.REG
[0] = NIT_NULL
;
1100 fra
.me
.REG
[1] = NIT_NULL
;
1103 /* ./syntax//icode_generation.nit:173 */
1104 ATTR_icode_generation___EscapableBlock____continue_value(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1105 stack_frame_head
= fra
.me
.prev
;
1108 void icode_generation___MMSrcModule___generate_icode(val_t p0
, val_t p1
){
1109 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1112 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1113 fra
.me
.file
= LOCATE_icode_generation
;
1115 fra
.me
.meth
= LOCATE_icode_generation___MMSrcModule___generate_icode
;
1116 fra
.me
.has_broke
= 0;
1117 fra
.me
.REG_size
= 4;
1118 fra
.me
.REG
[0] = NIT_NULL
;
1119 fra
.me
.REG
[1] = NIT_NULL
;
1120 fra
.me
.REG
[2] = NIT_NULL
;
1121 fra
.me
.REG
[3] = NIT_NULL
;
1124 fra
.me
.REG
[1] = NEW_A2IVisitor_icode_generation___A2IVisitor___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1125 fra
.me
.REG
[0] = CALL_syntax_base___MMSrcModule___src_local_classes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1126 fra
.me
.REG
[0] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1127 /* ./syntax//icode_generation.nit:182 */
1129 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1130 if (UNTAG_Bool(REGB0
)) {
1131 fra
.me
.REG
[2] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1132 fra
.me
.REG
[2] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1133 fra
.me
.REG
[2] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1134 /* ./syntax//icode_generation.nit:183 */
1136 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1137 if (UNTAG_Bool(REGB0
)) {
1138 fra
.me
.REG
[3] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1139 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_MMSrcMethod
, ID_MMSrcMethod
)) /*cast MMSrcMethod*/;
1140 /* ./syntax//icode_generation.nit:184 */
1141 if (UNTAG_Bool(REGB0
)) {
1142 /* ./syntax//icode_generation.nit:185 */
1143 CALL_icode_generation___MMSrcMethod___generate_iroutine(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
1145 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_MMSrcAttribute
, ID_MMSrcAttribute
)) /*cast MMSrcAttribute*/;
1146 /* ./syntax//icode_generation.nit:186 */
1147 if (UNTAG_Bool(REGB0
)) {
1148 /* ./syntax//icode_generation.nit:187 */
1149 CALL_icode_generation___MMSrcAttribute___generate_iroutine(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
1153 /* ./syntax//icode_generation.nit:183 */
1156 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1160 /* ./syntax//icode_generation.nit:182 */
1163 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1166 stack_frame_head
= fra
.me
.prev
;
1169 val_t
icode_generation___MMSrcAttribute___iroutine(val_t p0
){
1170 struct {struct stack_frame_t me
;} fra
;
1172 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1173 fra
.me
.file
= LOCATE_icode_generation
;
1175 fra
.me
.meth
= LOCATE_icode_generation___MMSrcAttribute___iroutine
;
1176 fra
.me
.has_broke
= 0;
1177 fra
.me
.REG_size
= 1;
1178 fra
.me
.REG
[0] = NIT_NULL
;
1180 fra
.me
.REG
[0] = ATTR_icode_generation___MMSrcAttribute____iroutine(fra
.me
.REG
[0]);
1181 /* ./syntax//icode_generation.nit:195 */
1182 stack_frame_head
= fra
.me
.prev
;
1183 return fra
.me
.REG
[0];
1185 void icode_generation___MMSrcAttribute___iroutine__eq(val_t p0
, val_t p1
){
1186 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1188 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1189 fra
.me
.file
= LOCATE_icode_generation
;
1191 fra
.me
.meth
= LOCATE_icode_generation___MMSrcAttribute___iroutine__eq
;
1192 fra
.me
.has_broke
= 0;
1193 fra
.me
.REG_size
= 2;
1194 fra
.me
.REG
[0] = NIT_NULL
;
1195 fra
.me
.REG
[1] = NIT_NULL
;
1198 /* ./syntax//icode_generation.nit:195 */
1199 ATTR_icode_generation___MMSrcAttribute____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1200 stack_frame_head
= fra
.me
.prev
;
1203 void icode_generation___MMSrcAttribute___generate_iroutine(val_t p0
, val_t p1
){
1204 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1208 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1209 fra
.me
.file
= LOCATE_icode_generation
;
1211 fra
.me
.meth
= LOCATE_icode_generation___MMSrcAttribute___generate_iroutine
;
1212 fra
.me
.has_broke
= 0;
1213 fra
.me
.REG_size
= 4;
1214 fra
.me
.REG
[0] = NIT_NULL
;
1215 fra
.me
.REG
[1] = NIT_NULL
;
1216 fra
.me
.REG
[2] = NIT_NULL
;
1217 fra
.me
.REG
[3] = NIT_NULL
;
1220 fra
.me
.REG
[2] = CALL_syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1221 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1222 /* ./syntax//icode_generation.nit:200 */
1223 if (UNTAG_Bool(REGB0
)) {
1224 fprintf(stderr
, "Reciever is null");
1225 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 200);
1228 fra
.me
.REG
[2] = CALL_parser_nodes___AAttrPropdef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1229 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1230 if (UNTAG_Bool(REGB0
)) {
1232 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1233 if (UNTAG_Bool(REGB1
)) {
1234 REGB1
= TAG_Bool(false);
1237 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1241 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1242 if (UNTAG_Bool(REGB0
)) {
1243 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1244 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1245 /* ./syntax//icode_generation.nit:201 */
1246 if (UNTAG_Bool(REGB0
)) {
1247 fprintf(stderr
, "Reciever is null");
1248 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 201);
1251 fra
.me
.REG
[2] = CALL_icode_builder___MMSignature___generate_empty_iroutine(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1252 fra
.me
.REG
[3] = CALL_syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1253 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1254 /* ./syntax//icode_generation.nit:202 */
1255 if (UNTAG_Bool(REGB0
)) {
1256 fprintf(stderr
, "Reciever is null");
1257 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 202);
1260 fra
.me
.REG
[3] = CALL_parser_nodes___ANode___location(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1261 CALL_icode_base___IRoutine___location__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1262 fra
.me
.REG
[3] = NEW_A2IContext_icode_generation___A2IContext___init(fra
.me
.REG
[1], fra
.me
.REG
[2], NIT_NULL
);
1263 /* ./syntax//icode_generation.nit:204 */
1264 CALL_icode_generation___A2IVisitor___icode_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1265 fra
.me
.REG
[3] = CALL_syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1266 /* ./syntax//icode_generation.nit:205 */
1267 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1268 /* ./syntax//icode_generation.nit:206 */
1269 CALL_icode_generation___A2IVisitor___icode_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1270 /* ./syntax//icode_generation.nit:207 */
1271 ATTR_icode_generation___MMSrcAttribute____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
1273 stack_frame_head
= fra
.me
.prev
;
1276 val_t
icode_generation___MMSrcMethod___iroutine(val_t p0
){
1277 struct {struct stack_frame_t me
;} fra
;
1279 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1280 fra
.me
.file
= LOCATE_icode_generation
;
1282 fra
.me
.meth
= LOCATE_icode_generation___MMSrcMethod___iroutine
;
1283 fra
.me
.has_broke
= 0;
1284 fra
.me
.REG_size
= 1;
1285 fra
.me
.REG
[0] = NIT_NULL
;
1287 fra
.me
.REG
[0] = ATTR_icode_generation___MMSrcMethod____iroutine(fra
.me
.REG
[0]);
1288 /* ./syntax//icode_generation.nit:213 */
1289 stack_frame_head
= fra
.me
.prev
;
1290 return fra
.me
.REG
[0];
1292 void icode_generation___MMSrcMethod___iroutine__eq(val_t p0
, val_t p1
){
1293 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1295 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1296 fra
.me
.file
= LOCATE_icode_generation
;
1298 fra
.me
.meth
= LOCATE_icode_generation___MMSrcMethod___iroutine__eq
;
1299 fra
.me
.has_broke
= 0;
1300 fra
.me
.REG_size
= 2;
1301 fra
.me
.REG
[0] = NIT_NULL
;
1302 fra
.me
.REG
[1] = NIT_NULL
;
1305 /* ./syntax//icode_generation.nit:213 */
1306 ATTR_icode_generation___MMSrcMethod____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1307 stack_frame_head
= fra
.me
.prev
;
1310 void icode_generation___MMSrcMethod___generate_iroutine(val_t p0
, val_t p1
){
1311 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1315 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1316 fra
.me
.file
= LOCATE_icode_generation
;
1318 fra
.me
.meth
= LOCATE_icode_generation___MMSrcMethod___generate_iroutine
;
1319 fra
.me
.has_broke
= 0;
1320 fra
.me
.REG_size
= 4;
1321 fra
.me
.REG
[0] = NIT_NULL
;
1322 fra
.me
.REG
[1] = NIT_NULL
;
1323 fra
.me
.REG
[2] = NIT_NULL
;
1324 fra
.me
.REG
[3] = NIT_NULL
;
1327 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1328 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1329 /* ./syntax//icode_generation.nit:218 */
1330 if (UNTAG_Bool(REGB0
)) {
1331 fprintf(stderr
, "Reciever is null");
1332 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 218);
1335 fra
.me
.REG
[2] = CALL_icode_builder___MMSignature___generate_empty_iroutine(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1336 fra
.me
.REG
[3] = CALL_syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1337 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1338 /* ./syntax//icode_generation.nit:219 */
1339 if (UNTAG_Bool(REGB0
)) {
1341 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1342 if (UNTAG_Bool(REGB1
)) {
1343 REGB1
= TAG_Bool(false);
1346 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
1350 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1351 if (UNTAG_Bool(REGB0
)) {
1352 fra
.me
.REG
[3] = CALL_syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1353 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1354 /* ./syntax//icode_generation.nit:220 */
1355 if (UNTAG_Bool(REGB0
)) {
1356 fprintf(stderr
, "Reciever is null");
1357 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 220);
1360 fra
.me
.REG
[3] = CALL_parser_nodes___ANode___location(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1361 CALL_icode_base___IRoutine___location__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1363 fra
.me
.REG
[3] = NEW_A2IContext_icode_generation___A2IContext___init(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
1364 /* ./syntax//icode_generation.nit:223 */
1365 CALL_icode_generation___A2IVisitor___icode_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1366 /* ./syntax//icode_generation.nit:224 */
1367 CALL_icode_generation___MMSrcMethod___inner_generate_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
1368 /* ./syntax//icode_generation.nit:225 */
1369 CALL_icode_generation___A2IVisitor___icode_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1370 /* ./syntax//icode_generation.nit:226 */
1371 ATTR_icode_generation___MMSrcMethod____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
1372 stack_frame_head
= fra
.me
.prev
;
1375 void icode_generation___MMSrcMethod___inner_generate_iroutine(val_t p0
, val_t p1
){
1376 struct {struct stack_frame_t me
;} fra
;
1378 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1379 fra
.me
.file
= LOCATE_icode_generation
;
1381 fra
.me
.meth
= LOCATE_icode_generation___MMSrcMethod___inner_generate_iroutine
;
1382 fra
.me
.has_broke
= 0;
1383 fra
.me
.REG_size
= 0;
1384 /* ./syntax//icode_generation.nit:229 */
1385 fprintf(stderr
, "Deferred method called");
1386 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 229);
1388 stack_frame_head
= fra
.me
.prev
;
1391 void icode_generation___MMReadImplementationMethod___inner_generate_iroutine(val_t p0
, val_t p1
){
1392 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1395 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1396 fra
.me
.file
= LOCATE_icode_generation
;
1398 fra
.me
.meth
= LOCATE_icode_generation___MMReadImplementationMethod___inner_generate_iroutine
;
1399 fra
.me
.has_broke
= 0;
1400 fra
.me
.REG_size
= 3;
1401 fra
.me
.REG
[0] = NIT_NULL
;
1402 fra
.me
.REG
[1] = NIT_NULL
;
1403 fra
.me
.REG
[2] = NIT_NULL
;
1406 fra
.me
.REG
[0] = CALL_syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1407 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1408 /* ./syntax//icode_generation.nit:236 */
1409 if (UNTAG_Bool(REGB0
)) {
1410 fprintf(stderr
, "Reciever is null");
1411 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 236);
1414 fra
.me
.REG
[0] = CALL_syntax_base___AAttrPropdef___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1415 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1416 fra
.me
.REG
[2] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1417 fra
.me
.REG
[2] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1418 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___add_attr_read(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
1419 /* ./syntax//icode_generation.nit:237 */
1420 CALL_icode_builder___ICodeBuilder___add_return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1421 stack_frame_head
= fra
.me
.prev
;
1424 void icode_generation___MMWriteImplementationMethod___inner_generate_iroutine(val_t p0
, val_t p1
){
1425 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1428 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1429 fra
.me
.file
= LOCATE_icode_generation
;
1431 fra
.me
.meth
= LOCATE_icode_generation___MMWriteImplementationMethod___inner_generate_iroutine
;
1432 fra
.me
.has_broke
= 0;
1433 fra
.me
.REG_size
= 4;
1434 fra
.me
.REG
[0] = NIT_NULL
;
1435 fra
.me
.REG
[1] = NIT_NULL
;
1436 fra
.me
.REG
[2] = NIT_NULL
;
1437 fra
.me
.REG
[3] = NIT_NULL
;
1440 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1441 fra
.me
.REG
[2] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1442 fra
.me
.REG
[0] = CALL_syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1443 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1444 /* ./syntax//icode_generation.nit:245 */
1445 if (UNTAG_Bool(REGB0
)) {
1446 fprintf(stderr
, "Reciever is null");
1447 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 245);
1450 fra
.me
.REG
[0] = CALL_syntax_base___AAttrPropdef___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1452 fra
.me
.REG
[3] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
1454 fra
.me
.REG
[2] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
1455 fra
.me
.REG
[2] = NEW_IAttrWrite_icode_base___IAttrWrite___init(fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[2]);
1456 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1457 stack_frame_head
= fra
.me
.prev
;
1460 void icode_generation___MMMethSrcMethod___inner_generate_iroutine(val_t p0
, val_t p1
){
1461 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1463 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1464 fra
.me
.file
= LOCATE_icode_generation
;
1466 fra
.me
.meth
= LOCATE_icode_generation___MMMethSrcMethod___inner_generate_iroutine
;
1467 fra
.me
.has_broke
= 0;
1468 fra
.me
.REG_size
= 2;
1469 fra
.me
.REG
[0] = NIT_NULL
;
1470 fra
.me
.REG
[1] = NIT_NULL
;
1473 fra
.me
.REG
[1] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1474 fra
.me
.REG
[0] = CALL_syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1475 /* ./syntax//icode_generation.nit:252 */
1476 CALL_parser_prod___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1477 stack_frame_head
= fra
.me
.prev
;
1480 void icode_generation___MMImplicitInit___inner_generate_iroutine(val_t p0
, val_t p1
){
1481 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
1488 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1489 fra
.me
.file
= LOCATE_icode_generation
;
1491 fra
.me
.meth
= LOCATE_icode_generation___MMImplicitInit___inner_generate_iroutine
;
1492 fra
.me
.has_broke
= 0;
1493 fra
.me
.REG_size
= 10;
1494 fra
.me
.REG
[0] = NIT_NULL
;
1495 fra
.me
.REG
[1] = NIT_NULL
;
1496 fra
.me
.REG
[2] = NIT_NULL
;
1497 fra
.me
.REG
[3] = NIT_NULL
;
1498 fra
.me
.REG
[4] = NIT_NULL
;
1499 fra
.me
.REG
[5] = NIT_NULL
;
1500 fra
.me
.REG
[6] = NIT_NULL
;
1501 fra
.me
.REG
[7] = NIT_NULL
;
1502 fra
.me
.REG
[8] = NIT_NULL
;
1503 fra
.me
.REG
[9] = NIT_NULL
;
1506 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1507 fra
.me
.REG
[2] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1508 REGB0
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1509 fra
.me
.REG
[3] = CALL_syntax_base___MMImplicitInit___unassigned_attributes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1510 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
1511 /* ./../lib/standard//collection//array.nit:23 */
1512 if (UNTAG_Bool(REGB1
)) {
1514 fprintf(stderr
, "Uninitialized attribute %s", "_length");
1515 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
1518 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
1519 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
1520 fra
.me
.REG
[3] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1521 fra
.me
.REG
[4] = CALL_syntax_base___MMImplicitInit___super_inits(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1522 fra
.me
.REG
[4] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1523 /* ./syntax//icode_generation.nit:262 */
1525 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1526 if (UNTAG_Bool(REGB0
)) {
1527 fra
.me
.REG
[5] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1528 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[5], COLOR_MMMethod
, ID_MMMethod
)) /*cast MMMethod*/;
1529 /* ./syntax//icode_generation.nit:263 */
1530 if (UNTAG_Bool(REGB0
)) {
1532 fprintf(stderr
, "Assert failed");
1533 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 263);
1537 fra
.me
.REG
[6] = NEW_Array_array___Array___with_capacity(REGB0
);
1538 /* ./syntax//icode_generation.nit:264 */
1539 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[3]);
1540 fra
.me
.REG
[7] = CALL_syntax_base___MMImplicitInit___super_init(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1541 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[5],fra
.me
.REG
[7]));
1542 /* ./syntax//icode_generation.nit:265 */
1543 if (UNTAG_Bool(REGB0
)) {
1545 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
1548 if (UNTAG_Bool(REGB0
)) {
1549 fra
.me
.REG
[7] = NEW_Array_array___Array___with_capacity(REGB1
);
1550 /* ./syntax//icode_generation.nit:267 */
1551 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[3]);
1553 fra
.me
.REG
[8] = NEW_Range_range___Range___without_last(REGB0
, REGB1
);
1554 fra
.me
.REG
[8] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
1555 /* ./syntax//icode_generation.nit:268 */
1557 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
1558 if (UNTAG_Bool(REGB0
)) {
1559 REGB0
= CALL_abstract_collection___Iterator___item(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
1560 fra
.me
.REG
[9] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
1561 /* ./syntax//icode_generation.nit:269 */
1562 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[9]);
1564 /* ./syntax//icode_generation.nit:268 */
1567 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
1570 fra
.me
.REG
[7] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[7]);
1571 /* ./syntax//icode_generation.nit:271 */
1572 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
1574 fra
.me
.REG
[6] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[6]);
1575 /* ./syntax//icode_generation.nit:273 */
1576 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
1579 /* ./syntax//icode_generation.nit:262 */
1582 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1585 REGB0
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1586 fra
.me
.REG
[4] = NEW_Range_range___Range___without_last(REGB1
, REGB0
);
1587 fra
.me
.REG
[4] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1588 /* ./syntax//icode_generation.nit:276 */
1590 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1591 if (UNTAG_Bool(REGB0
)) {
1592 REGB0
= CALL_abstract_collection___Iterator___item(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1593 fra
.me
.REG
[6] = CALL_syntax_base___MMImplicitInit___unassigned_attributes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1594 REGB2
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
1596 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
1597 /* ./../lib/standard//collection//array.nit:233 */
1598 if (UNTAG_Bool(REGB3
)) {
1599 REGB3
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6])!=NIT_NULL
);
1600 if (UNTAG_Bool(REGB3
)) {
1602 fprintf(stderr
, "Uninitialized attribute %s", "_length");
1603 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
1606 REGB3
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[6]);
1607 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
1608 /* ./../lib/standard//collection//array.nit:233 */
1610 REGB4
= TAG_Bool(false);
1613 if (UNTAG_Bool(REGB3
)) {
1615 fprintf(stderr
, "Assert %s failed", "'index'");
1616 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
1619 fra
.me
.REG
[6] = ATTR_array___Array____items(fra
.me
.REG
[6]);
1620 REGB3
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
1621 /* ./../lib/standard//collection//array.nit:234 */
1622 if (UNTAG_Bool(REGB3
)) {
1623 fprintf(stderr
, "Reciever is null");
1624 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
1627 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB2
)];
1628 /* ./../lib/standard//collection//array.nit:234 */
1631 fra
.me
.REG
[5] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
1632 fra
.me
.REG
[5] = NEW_IAttrWrite_icode_base___IAttrWrite___init(fra
.me
.REG
[6], fra
.me
.REG
[3], fra
.me
.REG
[5]);
1633 /* ./syntax//icode_generation.nit:278 */
1634 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
1636 /* ./syntax//icode_generation.nit:276 */
1639 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1642 stack_frame_head
= fra
.me
.prev
;
1645 void icode_generation___A2IVisitor___visit(val_t p0
, val_t p1
){
1646 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1649 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1650 fra
.me
.file
= LOCATE_icode_generation
;
1652 fra
.me
.meth
= LOCATE_icode_generation___A2IVisitor___visit
;
1653 fra
.me
.has_broke
= 0;
1654 fra
.me
.REG_size
= 2;
1655 fra
.me
.REG
[0] = NIT_NULL
;
1656 fra
.me
.REG
[1] = NIT_NULL
;
1659 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1660 /* ./syntax//icode_generation.nit:287 */
1661 if (UNTAG_Bool(REGB0
)) {
1662 fprintf(stderr
, "Reciever is null");
1663 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 287);
1666 CALL_icode_generation___ANode___accept_icode_generation(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1667 stack_frame_head
= fra
.me
.prev
;
1670 void icode_generation___A2IVisitor___icode_ctx__eq(val_t p0
, val_t p1
){
1671 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1673 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1674 fra
.me
.file
= LOCATE_icode_generation
;
1676 fra
.me
.meth
= LOCATE_icode_generation___A2IVisitor___icode_ctx__eq
;
1677 fra
.me
.has_broke
= 0;
1678 fra
.me
.REG_size
= 2;
1679 fra
.me
.REG
[0] = NIT_NULL
;
1680 fra
.me
.REG
[1] = NIT_NULL
;
1683 /* ./syntax//icode_generation.nit:285 */
1684 ATTR_icode_generation___A2IVisitor____icode_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1685 stack_frame_head
= fra
.me
.prev
;
1688 val_t
icode_generation___A2IVisitor___icode_ctx(val_t p0
){
1689 struct {struct stack_frame_t me
;} fra
;
1692 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1693 fra
.me
.file
= LOCATE_icode_generation
;
1695 fra
.me
.meth
= LOCATE_icode_generation___A2IVisitor___icode_ctx
;
1696 fra
.me
.has_broke
= 0;
1697 fra
.me
.REG_size
= 1;
1698 fra
.me
.REG
[0] = NIT_NULL
;
1700 fra
.me
.REG
[0] = ATTR_icode_generation___A2IVisitor____icode_ctx(fra
.me
.REG
[0]);
1701 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
1702 /* ./syntax//icode_generation.nit:286 */
1703 if (UNTAG_Bool(REGB0
)) {
1705 fprintf(stderr
, "Cast failed");
1706 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 286);
1711 stack_frame_head
= fra
.me
.prev
;
1712 return fra
.me
.REG
[0];
1714 void icode_generation___A2IVisitor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
1715 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_A2IVisitor
].i
;
1716 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1718 if (init_table
[itpos1
]) return;
1719 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1720 fra
.me
.file
= LOCATE_icode_generation
;
1722 fra
.me
.meth
= LOCATE_icode_generation___A2IVisitor___init
;
1723 fra
.me
.has_broke
= 0;
1724 fra
.me
.REG_size
= 3;
1725 fra
.me
.REG
[0] = NIT_NULL
;
1726 fra
.me
.REG
[1] = NIT_NULL
;
1727 fra
.me
.REG
[2] = NIT_NULL
;
1731 /* ./syntax//icode_generation.nit:288 */
1732 CALL_syntax_base___AbsSyntaxVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], init_table
);
1733 stack_frame_head
= fra
.me
.prev
;
1734 init_table
[itpos1
] = 1;
1737 void icode_generation___ANode___accept_icode_generation(val_t p0
, val_t p1
){
1738 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1740 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1741 fra
.me
.file
= LOCATE_icode_generation
;
1743 fra
.me
.meth
= LOCATE_icode_generation___ANode___accept_icode_generation
;
1744 fra
.me
.has_broke
= 0;
1745 fra
.me
.REG_size
= 2;
1746 fra
.me
.REG
[0] = NIT_NULL
;
1747 fra
.me
.REG
[1] = NIT_NULL
;
1750 /* ./syntax//icode_generation.nit:295 */
1751 CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1752 stack_frame_head
= fra
.me
.prev
;
1755 void icode_generation___AAttrPropdef___accept_icode_generation(val_t p0
, val_t p1
){
1756 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
1760 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1761 fra
.me
.file
= LOCATE_icode_generation
;
1763 fra
.me
.meth
= LOCATE_icode_generation___AAttrPropdef___accept_icode_generation
;
1764 fra
.me
.has_broke
= 0;
1765 fra
.me
.REG_size
= 6;
1766 fra
.me
.REG
[0] = NIT_NULL
;
1767 fra
.me
.REG
[1] = NIT_NULL
;
1768 fra
.me
.REG
[2] = NIT_NULL
;
1769 fra
.me
.REG
[3] = NIT_NULL
;
1770 fra
.me
.REG
[4] = NIT_NULL
;
1771 fra
.me
.REG
[5] = NIT_NULL
;
1774 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1775 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1776 fra
.me
.REG
[3] = CALL_icode_generation___A2IVisitor___icode_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1777 fra
.me
.REG
[4] = CALL_syntax_base___APropdef___self_var(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1778 fra
.me
.REG
[4] = CALL_icode_generation___A2IContext___variable(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1779 fra
.me
.REG
[5] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1780 fra
.me
.REG
[5] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1781 fra
.me
.REG
[5] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1782 fra
.me
.REG
[5] = NEW_IMove_icode_base___IMove___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1783 /* ./syntax//icode_generation.nit:302 */
1784 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
1785 /* ./syntax//icode_generation.nit:303 */
1786 CALL_SUPER_icode_generation___AAttrPropdef___accept_icode_generation(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1787 fra
.me
.REG
[2] = CALL_parser_nodes___AAttrPropdef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1788 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1789 /* ./syntax//icode_generation.nit:305 */
1790 if (UNTAG_Bool(REGB0
)) {
1792 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1793 if (UNTAG_Bool(REGB1
)) {
1794 REGB1
= TAG_Bool(false);
1797 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1801 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1802 if (UNTAG_Bool(REGB0
)) {
1803 fra
.me
.REG
[1] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1804 fra
.me
.REG
[1] = CALL_icode_base___IRoutine___result(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1805 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_IRegister
, ID_IRegister
)) /*cast IRegister*/;
1806 /* ./syntax//icode_generation.nit:306 */
1807 if (UNTAG_Bool(REGB0
)) {
1809 fprintf(stderr
, "Cast failed");
1810 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 306);
1813 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1814 fra
.me
.REG
[2] = NEW_IMove_icode_base___IMove___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1815 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1817 stack_frame_head
= fra
.me
.prev
;
1820 void icode_generation___AMethPropdef___accept_icode_generation(val_t p0
, val_t p1
){
1821 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1823 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1824 fra
.me
.file
= LOCATE_icode_generation
;
1826 fra
.me
.meth
= LOCATE_icode_generation___AMethPropdef___accept_icode_generation
;
1827 fra
.me
.has_broke
= 0;
1828 fra
.me
.REG_size
= 4;
1829 fra
.me
.REG
[0] = NIT_NULL
;
1830 fra
.me
.REG
[1] = NIT_NULL
;
1831 fra
.me
.REG
[2] = NIT_NULL
;
1832 fra
.me
.REG
[3] = NIT_NULL
;
1835 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1836 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1837 /* ./syntax//icode_generation.nit:314 */
1838 CALL_SUPER_icode_generation___AMethPropdef___accept_icode_generation(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1839 fra
.me
.REG
[3] = CALL_icode_generation___A2IVisitor___icode_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1840 fra
.me
.REG
[1] = CALL_syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1841 /* ./syntax//icode_generation.nit:315 */
1842 CALL_icode_generation___AMethPropdef___fill_iroutine(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
1843 stack_frame_head
= fra
.me
.prev
;
1846 void icode_generation___AMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
1847 struct {struct stack_frame_t me
;} fra
;
1849 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1850 fra
.me
.file
= LOCATE_icode_generation
;
1852 fra
.me
.meth
= LOCATE_icode_generation___AMethPropdef___fill_iroutine
;
1853 fra
.me
.has_broke
= 0;
1854 fra
.me
.REG_size
= 0;
1855 /* ./syntax//icode_generation.nit:318 */
1856 fprintf(stderr
, "Deferred method called");
1857 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 318);
1859 stack_frame_head
= fra
.me
.prev
;
1862 void icode_generation___ASignature___fill_iroutine_parameters(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
1863 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
1867 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1868 fra
.me
.file
= LOCATE_icode_generation
;
1870 fra
.me
.meth
= LOCATE_icode_generation___ASignature___fill_iroutine_parameters
;
1871 fra
.me
.has_broke
= 0;
1872 fra
.me
.REG_size
= 10;
1873 fra
.me
.REG
[0] = NIT_NULL
;
1874 fra
.me
.REG
[1] = NIT_NULL
;
1875 fra
.me
.REG
[2] = NIT_NULL
;
1876 fra
.me
.REG
[3] = NIT_NULL
;
1877 fra
.me
.REG
[4] = NIT_NULL
;
1878 fra
.me
.REG
[5] = NIT_NULL
;
1879 fra
.me
.REG
[6] = NIT_NULL
;
1880 fra
.me
.REG
[7] = NIT_NULL
;
1881 fra
.me
.REG
[8] = NIT_NULL
;
1882 fra
.me
.REG
[9] = NIT_NULL
;
1888 fra
.me
.REG
[5] = CALL_parser_nodes___ASignature___n_params(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1889 fra
.me
.REG
[5] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1890 /* ./syntax//icode_generation.nit:325 */
1892 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1893 if (UNTAG_Bool(REGB0
)) {
1894 fra
.me
.REG
[6] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1895 fra
.me
.REG
[7] = CALL_syntax_base___AParam___variable(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1896 fra
.me
.REG
[7] = CALL_icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
1897 REGB0
= CALL_syntax_base___AParam___position(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1898 fra
.me
.REG
[8] = CALL_static_type___MMSignature_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
1899 fra
.me
.REG
[9] = CALL_syntax_base___AParam___variable(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1900 fra
.me
.REG
[9] = CALL_syntax_base___Variable___stype(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
1901 REGB0
= TAG_Bool((fra
.me
.REG
[9]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[9], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
1902 /* ./syntax//icode_generation.nit:328 */
1903 if (UNTAG_Bool(REGB0
)) {
1905 fprintf(stderr
, "Cast failed");
1906 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 328);
1909 REGB0
= CALL_static_type___MMType_____l(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
1910 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1911 /* ./syntax//icode_generation.nit:329 */
1912 if (UNTAG_Bool(REGB0
)) {
1913 REGB0
= CALL_syntax_base___AParam___position(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1914 fra
.me
.REG
[8] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
1915 /* ./syntax//icode_generation.nit:330 */
1916 CALL_icode_builder___ICodeBuilder___add_type_cast(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[8], fra
.me
.REG
[9]);
1918 REGB0
= CALL_syntax_base___AParam___position(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1919 fra
.me
.REG
[6] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
1920 fra
.me
.REG
[6] = NEW_IMove_icode_base___IMove___init(fra
.me
.REG
[7], fra
.me
.REG
[6]);
1921 /* ./syntax//icode_generation.nit:332 */
1922 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
1924 /* ./syntax//icode_generation.nit:325 */
1927 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1931 fra
.me
.REG
[5] = CALL_parser_nodes___ASignature___n_closure_decls(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1932 REGB1
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1933 fra
.me
.REG
[5] = NEW_Range_range___Range___without_last(REGB0
, REGB1
);
1934 fra
.me
.REG
[5] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1935 /* ./syntax//icode_generation.nit:334 */
1937 REGB1
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1938 if (UNTAG_Bool(REGB1
)) {
1939 REGB1
= CALL_abstract_collection___Iterator___item(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1940 fra
.me
.REG
[3] = CALL_parser_nodes___ASignature___n_closure_decls(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1941 fra
.me
.REG
[3] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
1942 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___closurevariables(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1943 fra
.me
.REG
[3] = CALL_syntax_base___AClosureDecl___variable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1944 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1945 /* ./syntax//icode_generation.nit:336 */
1946 if (UNTAG_Bool(REGB0
)) {
1947 fprintf(stderr
, "Reciever is null");
1948 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 336);
1951 fra
.me
.REG
[6] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB1
);
1952 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[6]);
1954 /* ./syntax//icode_generation.nit:334 */
1957 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1960 stack_frame_head
= fra
.me
.prev
;
1963 void icode_generation___AClosureDecl___accept_icode_generation(val_t p0
, val_t p1
){
1964 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
1968 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1969 fra
.me
.file
= LOCATE_icode_generation
;
1971 fra
.me
.meth
= LOCATE_icode_generation___AClosureDecl___accept_icode_generation
;
1972 fra
.me
.has_broke
= 0;
1973 fra
.me
.REG_size
= 7;
1974 fra
.me
.REG
[0] = NIT_NULL
;
1975 fra
.me
.REG
[1] = NIT_NULL
;
1976 fra
.me
.REG
[2] = NIT_NULL
;
1977 fra
.me
.REG
[3] = NIT_NULL
;
1978 fra
.me
.REG
[4] = NIT_NULL
;
1979 fra
.me
.REG
[5] = NIT_NULL
;
1980 fra
.me
.REG
[6] = NIT_NULL
;
1983 fra
.me
.REG
[1] = CALL_icode_generation___A2IVisitor___icode_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1984 fra
.me
.REG
[2] = CALL_syntax_base___AClosureDecl___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1985 fra
.me
.REG
[2] = CALL_syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1986 fra
.me
.REG
[2] = CALL_static_type___MMClosure___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1987 fra
.me
.REG
[2] = CALL_icode_builder___MMSignature___generate_empty_iclosuredef(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1988 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1989 fra
.me
.REG
[4] = CALL_icode_base___IRoutine___body(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1990 /* ./syntax//icode_generation.nit:347 */
1991 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
1992 fra
.me
.REG
[4] = CALL_typing___AClosureDecl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1993 fra
.me
.REG
[5] = CALL_icode_base___IRoutine___body(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1994 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1995 /* ./syntax//icode_generation.nit:348 */
1996 if (UNTAG_Bool(REGB0
)) {
1997 fprintf(stderr
, "Reciever is null");
1998 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 348);
2001 CALL_icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2002 fra
.me
.REG
[5] = CALL_typing___AClosureDecl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2003 fra
.me
.REG
[4] = CALL_icode_base___IRoutine___result(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2004 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2005 /* ./syntax//icode_generation.nit:349 */
2006 if (UNTAG_Bool(REGB0
)) {
2007 fprintf(stderr
, "Reciever is null");
2008 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 349);
2011 CALL_icode_generation___EscapableBlock___continue_value__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
2012 fra
.me
.REG
[4] = CALL_typing___AClosureDecl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2013 fra
.me
.REG
[5] = CALL_icode_generation___A2IContext___return_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2014 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2015 /* ./syntax//icode_generation.nit:350 */
2016 if (UNTAG_Bool(REGB0
)) {
2017 fprintf(stderr
, "Reciever is null");
2018 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 350);
2021 CALL_icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2022 fra
.me
.REG
[5] = CALL_typing___AClosureDecl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2023 fra
.me
.REG
[4] = CALL_icode_generation___A2IContext___return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2024 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2025 /* ./syntax//icode_generation.nit:351 */
2026 if (UNTAG_Bool(REGB0
)) {
2027 fprintf(stderr
, "Reciever is null");
2028 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 351);
2031 CALL_icode_generation___EscapableBlock___break_value__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
2032 fra
.me
.REG
[4] = CALL_parser_nodes___AClosureDecl___n_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2033 fra
.me
.REG
[5] = CALL_syntax_base___AClosureDecl___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2034 fra
.me
.REG
[5] = CALL_syntax_base___ClosureVariable___closure(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2035 fra
.me
.REG
[5] = CALL_static_type___MMClosure___signature(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2036 fra
.me
.REG
[6] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2037 /* ./syntax//icode_generation.nit:352 */
2038 CALL_icode_generation___ASignature___fill_iroutine_parameters(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[6], NIT_NULL
);
2039 fra
.me
.REG
[6] = CALL_parser_nodes___AClosureDecl___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2040 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2041 /* ./syntax//icode_generation.nit:354 */
2042 if (UNTAG_Bool(REGB0
)) {
2044 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2045 if (UNTAG_Bool(REGB1
)) {
2046 REGB1
= TAG_Bool(false);
2049 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
2053 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2054 if (UNTAG_Bool(REGB0
)) {
2055 fra
.me
.REG
[6] = CALL_parser_nodes___AClosureDecl___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2056 /* ./syntax//icode_generation.nit:355 */
2057 CALL_icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
2058 fra
.me
.REG
[6] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2059 fra
.me
.REG
[6] = CALL_icode_base___IRoutine___closure_decls(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2060 REGB0
= CALL_syntax_base___AClosureDecl___position(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2061 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2062 /* ./syntax//icode_generation.nit:356 */
2063 if (UNTAG_Bool(REGB1
)) {
2064 fprintf(stderr
, "Reciever is null");
2065 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 356);
2068 fra
.me
.REG
[6] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB0
);
2069 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2070 if (UNTAG_Bool(REGB0
)) {
2071 fprintf(stderr
, "Reciever is null");
2072 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 356);
2075 CALL_icode_base___IClosureDecl___default__eq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[2]);
2076 fra
.me
.REG
[0] = CALL_syntax_base___AClosureDecl___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2077 fra
.me
.REG
[0] = CALL_syntax_base___ClosureVariable___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2078 REGB0
= CALL_static_type___MMClosure___is_break(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2079 /* ./syntax//icode_generation.nit:359 */
2080 if (UNTAG_Bool(REGB0
)) {
2081 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2082 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2083 if (UNTAG_Bool(REGB0
)) {
2085 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2086 if (UNTAG_Bool(REGB1
)) {
2087 REGB1
= TAG_Bool(false);
2090 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2095 REGB1
= TAG_Bool(false);
2098 if (UNTAG_Bool(REGB0
)) {
2099 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___return_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2100 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
2101 /* ./syntax//icode_generation.nit:360 */
2102 if (UNTAG_Bool(REGB0
)) {
2104 fprintf(stderr
, "Cast failed");
2105 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 360);
2108 CALL_icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2111 /* ./syntax//icode_generation.nit:363 */
2112 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2113 stack_frame_head
= fra
.me
.prev
;
2116 void icode_generation___AConcreteMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2117 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
2122 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2123 fra
.me
.file
= LOCATE_icode_generation
;
2125 fra
.me
.meth
= LOCATE_icode_generation___AConcreteMethPropdef___fill_iroutine
;
2126 fra
.me
.has_broke
= 0;
2127 fra
.me
.REG_size
= 6;
2128 fra
.me
.REG
[0] = NIT_NULL
;
2129 fra
.me
.REG
[1] = NIT_NULL
;
2130 fra
.me
.REG
[2] = NIT_NULL
;
2131 fra
.me
.REG
[3] = NIT_NULL
;
2132 fra
.me
.REG
[4] = NIT_NULL
;
2133 fra
.me
.REG
[5] = NIT_NULL
;
2137 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2138 fra
.me
.REG
[3] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2139 fra
.me
.REG
[3] = CALL_array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2140 fra
.me
.REG
[4] = CALL_syntax_base___APropdef___self_var(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2141 fra
.me
.REG
[4] = CALL_icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2143 fra
.me
.REG
[5] = fra
.me
.REG
[3];
2145 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
2146 /* ./../lib/standard//collection//array.nit:233 */
2147 if (UNTAG_Bool(REGB1
)) {
2148 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
2149 if (UNTAG_Bool(REGB1
)) {
2151 fprintf(stderr
, "Uninitialized attribute %s", "_length");
2152 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
2155 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5]);
2156 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
2157 /* ./../lib/standard//collection//array.nit:233 */
2159 REGB2
= TAG_Bool(false);
2162 if (UNTAG_Bool(REGB1
)) {
2164 fprintf(stderr
, "Assert %s failed", "'index'");
2165 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
2168 fra
.me
.REG
[5] = ATTR_array___Array____items(fra
.me
.REG
[5]);
2169 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2170 /* ./../lib/standard//collection//array.nit:234 */
2171 if (UNTAG_Bool(REGB1
)) {
2172 fprintf(stderr
, "Reciever is null");
2173 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
2176 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
2177 /* ./../lib/standard//collection//array.nit:234 */
2180 fra
.me
.REG
[5] = NEW_IMove_icode_base___IMove___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2181 /* ./syntax//icode_generation.nit:372 */
2182 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
2183 /* ./syntax//icode_generation.nit:373 */
2184 CALL_abstract_collection___Sequence___shift(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2185 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2186 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2187 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2188 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2189 /* ./syntax//icode_generation.nit:376 */
2190 if (UNTAG_Bool(REGB0
)) {
2191 fprintf(stderr
, "Reciever is null");
2192 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 376);
2195 fra
.me
.REG
[2] = CALL_static_type___MMSignature___recv(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2196 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
2197 fra
.me
.REG
[5] = CALL_parser_nodes___AMethPropdef___n_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2198 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2199 /* ./syntax//icode_generation.nit:377 */
2200 if (UNTAG_Bool(REGB0
)) {
2202 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2203 if (UNTAG_Bool(REGB1
)) {
2204 REGB1
= TAG_Bool(false);
2207 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
2211 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2212 if (UNTAG_Bool(REGB0
)) {
2213 fra
.me
.REG
[5] = CALL_parser_nodes___AMethPropdef___n_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2214 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2215 fra
.me
.REG
[4] = CALL_icode_base___IRoutine___closure_decls(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2216 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2217 /* ./syntax//icode_generation.nit:378 */
2218 if (UNTAG_Bool(REGB0
)) {
2219 fprintf(stderr
, "Reciever is null");
2220 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 378);
2223 CALL_icode_generation___ASignature___fill_iroutine_parameters(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[4]);
2225 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_AConcreteInitPropdef
, ID_AConcreteInitPropdef
)) /*cast AConcreteInitPropdef*/;
2226 /* ./syntax//icode_generation.nit:381 */
2227 if (UNTAG_Bool(REGB0
)) {
2228 /* ./syntax//icode_generation.nit:382 */
2229 CALL_icode_generation___A2IContext___invoke_super_init_calls_after(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2231 fra
.me
.REG
[4] = CALL_parser_nodes___AConcreteMethPropdef___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2232 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2233 /* ./syntax//icode_generation.nit:385 */
2234 if (UNTAG_Bool(REGB0
)) {
2236 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2237 if (UNTAG_Bool(REGB1
)) {
2238 REGB1
= TAG_Bool(false);
2241 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
2245 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2246 if (UNTAG_Bool(REGB0
)) {
2247 fra
.me
.REG
[0] = CALL_parser_nodes___AConcreteMethPropdef___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2248 /* ./syntax//icode_generation.nit:386 */
2249 CALL_icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2251 stack_frame_head
= fra
.me
.prev
;
2254 void icode_generation___ADeferredMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2255 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2258 static val_t once_value_1
; /* Once value */
2259 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2260 fra
.me
.file
= LOCATE_icode_generation
;
2262 fra
.me
.meth
= LOCATE_icode_generation___ADeferredMethPropdef___fill_iroutine
;
2263 fra
.me
.has_broke
= 0;
2264 fra
.me
.REG_size
= 3;
2265 fra
.me
.REG
[0] = NIT_NULL
;
2266 fra
.me
.REG
[1] = NIT_NULL
;
2267 fra
.me
.REG
[2] = NIT_NULL
;
2272 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
2273 /* ./syntax//icode_generation.nit:394 */
2274 if (!once_value_1
) {
2275 fra
.me
.REG
[0] = BOX_NativeString("Deferred method called");
2276 REGB0
= TAG_Int(22);
2277 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
2278 once_value_1
= fra
.me
.REG
[0];
2279 register_static_object(&once_value_1
);
2280 } else fra
.me
.REG
[0] = once_value_1
;
2281 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2282 CALL_icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2283 stack_frame_head
= fra
.me
.prev
;
2286 void icode_generation___AExternMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2287 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
2292 static val_t once_value_1
; /* Once value */
2293 static val_t once_value_2
; /* Once value */
2294 static val_t once_value_3
; /* Once value */
2295 static val_t once_value_4
; /* Once value */
2296 static val_t once_value_5
; /* Once value */
2297 static val_t once_value_6
; /* Once value */
2298 static val_t once_value_7
; /* Once value */
2299 static val_t once_value_8
; /* Once value */
2300 static val_t once_value_10
; /* Once value */
2301 static val_t once_value_11
; /* Once value */
2302 static val_t once_value_12
; /* Once value */
2303 static val_t once_value_13
; /* Once value */
2304 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2305 fra
.me
.file
= LOCATE_icode_generation
;
2307 fra
.me
.meth
= LOCATE_icode_generation___AExternMethPropdef___fill_iroutine
;
2308 fra
.me
.has_broke
= 0;
2309 fra
.me
.REG_size
= 8;
2310 fra
.me
.REG
[0] = NIT_NULL
;
2311 fra
.me
.REG
[1] = NIT_NULL
;
2312 fra
.me
.REG
[2] = NIT_NULL
;
2313 fra
.me
.REG
[3] = NIT_NULL
;
2314 fra
.me
.REG
[4] = NIT_NULL
;
2315 fra
.me
.REG
[5] = NIT_NULL
;
2316 fra
.me
.REG
[6] = NIT_NULL
;
2317 fra
.me
.REG
[7] = NIT_NULL
;
2321 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2322 fra
.me
.REG
[3] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2323 REGB0
= TAG_Int(11);
2324 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
2325 /* ./syntax//icode_generation.nit:402 */
2326 if (!once_value_1
) {
2327 fra
.me
.REG
[5] = BOX_NativeString("");
2329 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
2330 once_value_1
= fra
.me
.REG
[5];
2331 register_static_object(&once_value_1
);
2332 } else fra
.me
.REG
[5] = once_value_1
;
2333 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2334 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalProperty___module(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2335 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMModule___name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2336 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2337 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2338 if (!once_value_2
) {
2339 fra
.me
.REG
[5] = BOX_NativeString("_");
2341 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
2342 once_value_2
= fra
.me
.REG
[5];
2343 register_static_object(&once_value_2
);
2344 } else fra
.me
.REG
[5] = once_value_2
;
2345 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2346 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2347 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalClass___name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2348 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2349 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2350 if (!once_value_3
) {
2351 fra
.me
.REG
[5] = BOX_NativeString("_");
2353 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
2354 once_value_3
= fra
.me
.REG
[5];
2355 register_static_object(&once_value_3
);
2356 } else fra
.me
.REG
[5] = once_value_3
;
2357 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2358 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2359 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalClass___name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2360 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2361 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2362 if (!once_value_4
) {
2363 fra
.me
.REG
[5] = BOX_NativeString("_");
2365 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
2366 once_value_4
= fra
.me
.REG
[5];
2367 register_static_object(&once_value_4
);
2368 } else fra
.me
.REG
[5] = once_value_4
;
2369 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2370 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2371 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2372 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2373 if (!once_value_5
) {
2374 fra
.me
.REG
[5] = BOX_NativeString("_");
2376 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
2377 once_value_5
= fra
.me
.REG
[5];
2378 register_static_object(&once_value_5
);
2379 } else fra
.me
.REG
[5] = once_value_5
;
2380 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2381 fra
.me
.REG
[5] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2382 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2383 if (UNTAG_Bool(REGB0
)) {
2384 fprintf(stderr
, "Reciever is null");
2385 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 402);
2388 REGB0
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2389 fra
.me
.REG
[5] = CALL_string___Object___to_s(REGB0
)(REGB0
);
2390 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2391 if (!once_value_6
) {
2392 fra
.me
.REG
[5] = BOX_NativeString("");
2394 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
2395 once_value_6
= fra
.me
.REG
[5];
2396 register_static_object(&once_value_6
);
2397 } else fra
.me
.REG
[5] = once_value_6
;
2398 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2399 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2400 fra
.me
.REG
[5] = CALL_parser_nodes___AExternMethPropdef___n_extern(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2401 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2402 /* ./syntax//icode_generation.nit:403 */
2403 if (UNTAG_Bool(REGB0
)) {
2405 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2406 if (UNTAG_Bool(REGB1
)) {
2407 REGB1
= TAG_Bool(false);
2410 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
2414 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2415 if (UNTAG_Bool(REGB0
)) {
2416 fra
.me
.REG
[0] = CALL_parser_nodes___AExternMethPropdef___n_extern(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2417 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2418 /* ./syntax//icode_generation.nit:404 */
2419 if (UNTAG_Bool(REGB0
)) {
2420 fprintf(stderr
, "Reciever is null");
2421 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 404);
2424 fra
.me
.REG
[0] = CALL_lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2425 fra
.me
.REG
[4] = fra
.me
.REG
[0];
2427 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
2428 /* ./../lib/standard//collection//array.nit:23 */
2429 if (UNTAG_Bool(REGB1
)) {
2431 fprintf(stderr
, "Uninitialized attribute %s", "_length");
2432 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
2435 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
2437 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
2438 fra
.me
.REG
[0] = CALL_string___AbstractString___substring(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
, REGB2
);
2439 fra
.me
.REG
[4] = fra
.me
.REG
[0];
2440 /* ./syntax//icode_generation.nit:405 */
2442 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2443 REGB2
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2444 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2445 /* ./syntax//icode_generation.nit:408 */
2446 if (UNTAG_Bool(REGB0
)) {
2447 fprintf(stderr
, "Reciever is null");
2448 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 408);
2451 REGB0
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2453 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
2454 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
2455 /* ./syntax//icode_generation.nit:408 */
2456 if (UNTAG_Bool(REGB0
)) {
2458 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
2460 /* ./syntax//icode_generation.nit:408 */
2462 if (UNTAG_Bool(REGB0
)) {
2464 fprintf(stderr
, "Assert failed");
2465 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 408);
2468 fra
.me
.REG
[0] = NEW_Array_array___Array___init();
2469 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2470 /* ./syntax//icode_generation.nit:410 */
2471 if (UNTAG_Bool(REGB0
)) {
2472 fprintf(stderr
, "Reciever is null");
2473 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 410);
2476 fra
.me
.REG
[5] = CALL_static_type___MMSignature___recv(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2477 if (!once_value_7
) {
2478 fra
.me
.REG
[6] = BOX_NativeString("@@@");
2480 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
2481 once_value_7
= fra
.me
.REG
[6];
2482 register_static_object(&once_value_7
);
2483 } else fra
.me
.REG
[6] = once_value_7
;
2484 fra
.me
.REG
[6] = CALL_primitive_info___MMType___unboxtype(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2485 array___Array___add(fra
.me
.REG
[0], fra
.me
.REG
[6]);
2487 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2488 /* ./syntax//icode_generation.nit:411 */
2489 if (UNTAG_Bool(REGB1
)) {
2490 fprintf(stderr
, "Reciever is null");
2491 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 411);
2494 REGB1
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2495 fra
.me
.REG
[6] = NEW_Range_range___Range___without_last(REGB0
, REGB1
);
2496 fra
.me
.REG
[6] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2498 REGB1
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2499 if (UNTAG_Bool(REGB1
)) {
2500 REGB1
= CALL_abstract_collection___Iterator___item(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2501 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2502 /* ./syntax//icode_generation.nit:412 */
2503 if (UNTAG_Bool(REGB0
)) {
2504 fprintf(stderr
, "Reciever is null");
2505 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 412);
2508 fra
.me
.REG
[5] = CALL_static_type___MMSignature_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB1
);
2509 if (!once_value_8
) {
2510 fra
.me
.REG
[7] = BOX_NativeString("@@@");
2512 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB1
);
2513 once_value_8
= fra
.me
.REG
[7];
2514 register_static_object(&once_value_8
);
2515 } else fra
.me
.REG
[7] = once_value_8
;
2516 fra
.me
.REG
[7] = CALL_primitive_info___MMType___unboxtype(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
2517 array___Array___add(fra
.me
.REG
[0], fra
.me
.REG
[7]);
2519 /* ./syntax//icode_generation.nit:411 */
2522 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2526 fra
.me
.REG
[6] = NEW_Array_array___Array___with_capacity(REGB1
);
2527 /* ./syntax//icode_generation.nit:414 */
2528 if (!once_value_10
) {
2529 fra
.me
.REG
[7] = BOX_NativeString("");
2531 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB1
);
2532 once_value_10
= fra
.me
.REG
[7];
2533 register_static_object(&once_value_10
);
2534 } else fra
.me
.REG
[7] = once_value_10
;
2535 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[7]);
2536 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[4]);
2537 if (!once_value_11
) {
2538 fra
.me
.REG
[4] = BOX_NativeString("(");
2540 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
2541 once_value_11
= fra
.me
.REG
[4];
2542 register_static_object(&once_value_11
);
2543 } else fra
.me
.REG
[4] = once_value_11
;
2544 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[4]);
2545 if (!once_value_12
) {
2546 fra
.me
.REG
[4] = BOX_NativeString(", ");
2548 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
2549 once_value_12
= fra
.me
.REG
[4];
2550 register_static_object(&once_value_12
);
2551 } else fra
.me
.REG
[4] = once_value_12
;
2552 fra
.me
.REG
[4] = CALL_string___Collection___join(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
2553 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[4]);
2554 if (!once_value_13
) {
2555 fra
.me
.REG
[4] = BOX_NativeString(")");
2557 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB1
);
2558 once_value_13
= fra
.me
.REG
[4];
2559 register_static_object(&once_value_13
);
2560 } else fra
.me
.REG
[4] = once_value_13
;
2561 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[4]);
2562 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2563 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2564 /* ./syntax//icode_generation.nit:415 */
2565 if (UNTAG_Bool(REGB1
)) {
2566 fprintf(stderr
, "Reciever is null");
2567 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 415);
2570 fra
.me
.REG
[2] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2571 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2572 /* ./syntax//icode_generation.nit:416 */
2573 if (UNTAG_Bool(REGB1
)) {
2575 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2576 if (UNTAG_Bool(REGB0
)) {
2577 REGB0
= TAG_Bool(false);
2580 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2584 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
2585 if (UNTAG_Bool(REGB1
)) {
2586 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2587 /* ./syntax//icode_generation.nit:417 */
2588 if (UNTAG_Bool(REGB1
)) {
2589 fprintf(stderr
, "Reciever is null");
2590 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 417);
2593 fra
.me
.REG
[4] = CALL_primitive_info___MMType___boxtype(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
2594 fra
.me
.REG
[6] = fra
.me
.REG
[4];
2595 fra
.me
.REG
[4] = NEW_INative_icode_base___INative___init(fra
.me
.REG
[6], fra
.me
.REG
[3]);
2596 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[2]);
2597 /* ./syntax//icode_generation.nit:418 */
2598 CALL_icode_builder___ICodeBuilder___add_return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2600 fra
.me
.REG
[3] = NEW_INative_icode_base___INative___init(fra
.me
.REG
[6], fra
.me
.REG
[3]);
2601 /* ./syntax//icode_generation.nit:420 */
2602 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2604 stack_frame_head
= fra
.me
.prev
;
2607 void icode_generation___AInternMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2608 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
2614 static val_t once_value_1
; /* Once value */
2615 static val_t once_value_2
; /* Once value */
2616 static val_t once_value_3
; /* Once value */
2617 static val_t once_value_4
; /* Once value */
2618 static val_t once_value_5
; /* Once value */
2619 static val_t once_value_6
; /* Once value */
2620 static val_t once_value_7
; /* Once value */
2621 static val_t once_value_8
; /* Once value */
2622 static val_t once_value_9
; /* Once value */
2623 static val_t once_value_10
; /* Once value */
2624 static val_t once_value_11
; /* Once value */
2625 static val_t once_value_12
; /* Once value */
2626 static val_t once_value_13
; /* Once value */
2627 static val_t once_value_14
; /* Once value */
2628 static val_t once_value_15
; /* Once value */
2629 static val_t once_value_16
; /* Once value */
2630 static val_t once_value_17
; /* Once value */
2631 static val_t once_value_18
; /* Once value */
2632 static val_t once_value_19
; /* Once value */
2633 static val_t once_value_20
; /* Once value */
2634 static val_t once_value_21
; /* Once value */
2635 static val_t once_value_22
; /* Once value */
2636 static val_t once_value_23
; /* Once value */
2637 static val_t once_value_24
; /* Once value */
2638 static val_t once_value_25
; /* Once value */
2639 static val_t once_value_26
; /* Once value */
2640 static val_t once_value_27
; /* Once value */
2641 static val_t once_value_28
; /* Once value */
2642 static val_t once_value_29
; /* Once value */
2643 static val_t once_value_30
; /* Once value */
2644 static val_t once_value_31
; /* Once value */
2645 static val_t once_value_32
; /* Once value */
2646 static val_t once_value_33
; /* Once value */
2647 static val_t once_value_34
; /* Once value */
2648 static val_t once_value_35
; /* Once value */
2649 static val_t once_value_36
; /* Once value */
2650 static val_t once_value_37
; /* Once value */
2651 static val_t once_value_38
; /* Once value */
2652 static val_t once_value_39
; /* Once value */
2653 static val_t once_value_40
; /* Once value */
2654 static val_t once_value_41
; /* Once value */
2655 static val_t once_value_42
; /* Once value */
2656 static val_t once_value_43
; /* Once value */
2657 static val_t once_value_44
; /* Once value */
2658 static val_t once_value_45
; /* Once value */
2659 static val_t once_value_46
; /* Once value */
2660 static val_t once_value_47
; /* Once value */
2661 static val_t once_value_48
; /* Once value */
2662 static val_t once_value_49
; /* Once value */
2663 static val_t once_value_50
; /* Once value */
2664 static val_t once_value_51
; /* Once value */
2665 static val_t once_value_52
; /* Once value */
2666 static val_t once_value_53
; /* Once value */
2667 static val_t once_value_54
; /* Once value */
2668 static val_t once_value_55
; /* Once value */
2669 static val_t once_value_56
; /* Once value */
2670 static val_t once_value_57
; /* Once value */
2671 static val_t once_value_58
; /* Once value */
2672 static val_t once_value_59
; /* Once value */
2673 static val_t once_value_60
; /* Once value */
2674 static val_t once_value_61
; /* Once value */
2675 static val_t once_value_62
; /* Once value */
2676 static val_t once_value_63
; /* Once value */
2677 static val_t once_value_64
; /* Once value */
2678 static val_t once_value_65
; /* Once value */
2679 static val_t once_value_66
; /* Once value */
2680 static val_t once_value_67
; /* Once value */
2681 static val_t once_value_68
; /* Once value */
2682 static val_t once_value_69
; /* Once value */
2683 static val_t once_value_70
; /* Once value */
2684 static val_t once_value_71
; /* Once value */
2685 static val_t once_value_72
; /* Once value */
2686 static val_t once_value_73
; /* Once value */
2687 static val_t once_value_74
; /* Once value */
2688 static val_t once_value_75
; /* Once value */
2689 static val_t once_value_76
; /* Once value */
2690 static val_t once_value_77
; /* Once value */
2691 static val_t once_value_78
; /* Once value */
2692 static val_t once_value_79
; /* Once value */
2693 static val_t once_value_80
; /* Once value */
2694 static val_t once_value_81
; /* Once value */
2695 static val_t once_value_82
; /* Once value */
2696 static val_t once_value_83
; /* Once value */
2697 static val_t once_value_84
; /* Once value */
2698 static val_t once_value_85
; /* Once value */
2699 static val_t once_value_86
; /* Once value */
2700 static val_t once_value_87
; /* Once value */
2701 static val_t once_value_88
; /* Once value */
2702 static val_t once_value_89
; /* Once value */
2703 static val_t once_value_90
; /* Once value */
2704 static val_t once_value_91
; /* Once value */
2705 static val_t once_value_92
; /* Once value */
2706 static val_t once_value_93
; /* Once value */
2707 static val_t once_value_94
; /* Once value */
2708 static val_t once_value_95
; /* Once value */
2709 static val_t once_value_96
; /* Once value */
2710 static val_t once_value_97
; /* Once value */
2711 static val_t once_value_98
; /* Once value */
2712 static val_t once_value_99
; /* Once value */
2713 static val_t once_value_100
; /* Once value */
2714 static val_t once_value_101
; /* Once value */
2715 static val_t once_value_102
; /* Once value */
2716 static val_t once_value_103
; /* Once value */
2717 static val_t once_value_104
; /* Once value */
2718 static val_t once_value_105
; /* Once value */
2719 static val_t once_value_106
; /* Once value */
2720 static val_t once_value_107
; /* Once value */
2721 static val_t once_value_108
; /* Once value */
2722 static val_t once_value_109
; /* Once value */
2723 static val_t once_value_110
; /* Once value */
2724 static val_t once_value_111
; /* Once value */
2725 static val_t once_value_112
; /* Once value */
2726 static val_t once_value_113
; /* Once value */
2727 static val_t once_value_114
; /* Once value */
2728 static val_t once_value_115
; /* Once value */
2729 static val_t once_value_116
; /* Once value */
2730 static val_t once_value_117
; /* Once value */
2731 static val_t once_value_118
; /* Once value */
2732 static val_t once_value_119
; /* Once value */
2733 static val_t once_value_120
; /* Once value */
2734 static val_t once_value_121
; /* Once value */
2735 static val_t once_value_122
; /* Once value */
2736 static val_t once_value_123
; /* Once value */
2737 static val_t once_value_124
; /* Once value */
2738 static val_t once_value_125
; /* Once value */
2739 static val_t once_value_126
; /* Once value */
2740 static val_t once_value_127
; /* Once value */
2741 static val_t once_value_128
; /* Once value */
2742 static val_t once_value_129
; /* Once value */
2743 static val_t once_value_130
; /* Once value */
2744 static val_t once_value_131
; /* Once value */
2745 static val_t once_value_132
; /* Once value */
2746 static val_t once_value_133
; /* Once value */
2747 static val_t once_value_134
; /* Once value */
2748 static val_t once_value_135
; /* Once value */
2749 static val_t once_value_136
; /* Once value */
2750 static val_t once_value_137
; /* Once value */
2751 static val_t once_value_138
; /* Once value */
2752 static val_t once_value_139
; /* Once value */
2753 static val_t once_value_140
; /* Once value */
2754 static val_t once_value_141
; /* Once value */
2755 static val_t once_value_142
; /* Once value */
2756 static val_t once_value_143
; /* Once value */
2757 static val_t once_value_144
; /* Once value */
2758 static val_t once_value_145
; /* Once value */
2759 static val_t once_value_146
; /* Once value */
2760 static val_t once_value_147
; /* Once value */
2761 static val_t once_value_148
; /* Once value */
2762 static val_t once_value_149
; /* Once value */
2763 static val_t once_value_150
; /* Once value */
2764 static val_t once_value_151
; /* Once value */
2765 static val_t once_value_152
; /* Once value */
2766 static val_t once_value_153
; /* Once value */
2767 static val_t once_value_154
; /* Once value */
2768 static val_t once_value_155
; /* Once value */
2769 static val_t once_value_156
; /* Once value */
2770 static val_t once_value_157
; /* Once value */
2771 static val_t once_value_158
; /* Once value */
2772 static val_t once_value_159
; /* Once value */
2773 static val_t once_value_160
; /* Once value */
2774 static val_t once_value_161
; /* Once value */
2775 static val_t once_value_162
; /* Once value */
2776 static val_t once_value_163
; /* Once value */
2777 static val_t once_value_164
; /* Once value */
2778 static val_t once_value_165
; /* Once value */
2779 static val_t once_value_166
; /* Once value */
2780 static val_t once_value_167
; /* Once value */
2781 static val_t once_value_168
; /* Once value */
2782 static val_t once_value_169
; /* Once value */
2783 static val_t once_value_170
; /* Once value */
2784 static val_t once_value_171
; /* Once value */
2785 static val_t once_value_172
; /* Once value */
2786 static val_t once_value_173
; /* Once value */
2787 static val_t once_value_174
; /* Once value */
2788 static val_t once_value_175
; /* Once value */
2789 static val_t once_value_176
; /* Once value */
2790 static val_t once_value_177
; /* Once value */
2791 static val_t once_value_178
; /* Once value */
2792 static val_t once_value_179
; /* Once value */
2793 static val_t once_value_180
; /* Once value */
2794 static val_t once_value_181
; /* Once value */
2795 static val_t once_value_182
; /* Once value */
2796 static val_t once_value_183
; /* Once value */
2797 static val_t once_value_184
; /* Once value */
2798 static val_t once_value_185
; /* Once value */
2799 static val_t once_value_186
; /* Once value */
2800 static val_t once_value_187
; /* Once value */
2801 static val_t once_value_188
; /* Once value */
2802 static val_t once_value_189
; /* Once value */
2803 static val_t once_value_190
; /* Once value */
2804 static val_t once_value_191
; /* Once value */
2805 static val_t once_value_192
; /* Once value */
2806 static val_t once_value_195
; /* Once value */
2807 static val_t once_value_196
; /* Once value */
2808 static val_t once_value_197
; /* Once value */
2809 static val_t once_value_198
; /* Once value */
2810 static val_t once_value_199
; /* Once value */
2811 static val_t once_value_200
; /* Once value */
2812 static val_t once_value_201
; /* Once value */
2813 static val_t once_value_202
; /* Once value */
2814 static val_t once_value_203
; /* Once value */
2815 static val_t once_value_204
; /* Once value */
2816 static val_t once_value_205
; /* Once value */
2817 static val_t once_value_206
; /* Once value */
2818 static val_t once_value_207
; /* Once value */
2819 static val_t once_value_208
; /* Once value */
2820 static val_t once_value_209
; /* Once value */
2821 static val_t once_value_210
; /* Once value */
2822 static val_t once_value_211
; /* Once value */
2823 static val_t once_value_216
; /* Once value */
2824 static val_t once_value_217
; /* Once value */
2825 static val_t once_value_218
; /* Once value */
2826 static val_t once_value_219
; /* Once value */
2827 static val_t once_value_220
; /* Once value */
2828 static val_t once_value_221
; /* Once value */
2829 static val_t once_value_222
; /* Once value */
2830 static val_t once_value_223
; /* Once value */
2831 static val_t once_value_224
; /* Once value */
2832 static val_t once_value_225
; /* Once value */
2833 static val_t once_value_226
; /* Once value */
2834 static val_t once_value_227
; /* Once value */
2835 static val_t once_value_229
; /* Once value */
2836 static val_t once_value_230
; /* Once value */
2837 static val_t once_value_231
; /* Once value */
2838 static val_t once_value_233
; /* Once value */
2839 static val_t once_value_234
; /* Once value */
2840 static val_t once_value_235
; /* Once value */
2841 static val_t once_value_237
; /* Once value */
2842 static val_t once_value_238
; /* Once value */
2843 static val_t once_value_239
; /* Once value */
2844 static val_t once_value_240
; /* Once value */
2845 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2846 fra
.me
.file
= LOCATE_icode_generation
;
2848 fra
.me
.meth
= LOCATE_icode_generation___AInternMethPropdef___fill_iroutine
;
2849 fra
.me
.has_broke
= 0;
2850 fra
.me
.REG_size
= 9;
2851 fra
.me
.REG
[0] = NIT_NULL
;
2852 fra
.me
.REG
[1] = NIT_NULL
;
2853 fra
.me
.REG
[2] = NIT_NULL
;
2854 fra
.me
.REG
[3] = NIT_NULL
;
2855 fra
.me
.REG
[4] = NIT_NULL
;
2856 fra
.me
.REG
[5] = NIT_NULL
;
2857 fra
.me
.REG
[6] = NIT_NULL
;
2858 fra
.me
.REG
[7] = NIT_NULL
;
2859 fra
.me
.REG
[8] = NIT_NULL
;
2863 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2864 fra
.me
.REG
[3] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2865 fra
.me
.REG
[3] = CALL_array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2866 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2867 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2868 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2869 fra
.me
.REG
[6] = NIT_NULL
;
2870 /* ./syntax//icode_generation.nit:432 */
2871 if (!once_value_1
) {
2872 if (!once_value_2
) {
2873 fra
.me
.REG
[7] = BOX_NativeString("Int");
2875 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
2876 once_value_2
= fra
.me
.REG
[7];
2877 register_static_object(&once_value_2
);
2878 } else fra
.me
.REG
[7] = once_value_2
;
2879 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2880 once_value_1
= fra
.me
.REG
[7];
2881 register_static_object(&once_value_1
);
2882 } else fra
.me
.REG
[7] = once_value_1
;
2883 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[4],fra
.me
.REG
[7]));
2884 if (UNTAG_Bool(REGB0
)) {
2886 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
2889 if (UNTAG_Bool(REGB0
)) {
2890 /* ./syntax//icode_generation.nit:433 */
2891 if (!once_value_3
) {
2892 if (!once_value_4
) {
2893 fra
.me
.REG
[7] = BOX_NativeString("object_id");
2895 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
2896 once_value_4
= fra
.me
.REG
[7];
2897 register_static_object(&once_value_4
);
2898 } else fra
.me
.REG
[7] = once_value_4
;
2899 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2900 once_value_3
= fra
.me
.REG
[7];
2901 register_static_object(&once_value_3
);
2902 } else fra
.me
.REG
[7] = once_value_3
;
2903 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
2904 if (UNTAG_Bool(REGB0
)) {
2906 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
2909 if (UNTAG_Bool(REGB0
)) {
2910 /* ./syntax//icode_generation.nit:434 */
2911 if (!once_value_5
) {
2912 fra
.me
.REG
[7] = BOX_NativeString("@@@");
2914 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
2915 once_value_5
= fra
.me
.REG
[7];
2916 register_static_object(&once_value_5
);
2917 } else fra
.me
.REG
[7] = once_value_5
;
2918 fra
.me
.REG
[6] = fra
.me
.REG
[7];
2920 /* ./syntax//icode_generation.nit:435 */
2921 if (!once_value_6
) {
2922 if (!once_value_7
) {
2923 fra
.me
.REG
[7] = BOX_NativeString("unary -");
2925 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
2926 once_value_7
= fra
.me
.REG
[7];
2927 register_static_object(&once_value_7
);
2928 } else fra
.me
.REG
[7] = once_value_7
;
2929 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2930 once_value_6
= fra
.me
.REG
[7];
2931 register_static_object(&once_value_6
);
2932 } else fra
.me
.REG
[7] = once_value_6
;
2933 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
2934 if (UNTAG_Bool(REGB0
)) {
2936 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
2939 if (UNTAG_Bool(REGB0
)) {
2940 /* ./syntax//icode_generation.nit:436 */
2941 if (!once_value_8
) {
2942 fra
.me
.REG
[7] = BOX_NativeString("TAG_Int(-UNTAG_Int(@@@))");
2943 REGB0
= TAG_Int(24);
2944 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
2945 once_value_8
= fra
.me
.REG
[7];
2946 register_static_object(&once_value_8
);
2947 } else fra
.me
.REG
[7] = once_value_8
;
2948 fra
.me
.REG
[6] = fra
.me
.REG
[7];
2950 /* ./syntax//icode_generation.nit:437 */
2951 if (!once_value_9
) {
2952 if (!once_value_10
) {
2953 fra
.me
.REG
[7] = BOX_NativeString("output");
2955 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
2956 once_value_10
= fra
.me
.REG
[7];
2957 register_static_object(&once_value_10
);
2958 } else fra
.me
.REG
[7] = once_value_10
;
2959 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2960 once_value_9
= fra
.me
.REG
[7];
2961 register_static_object(&once_value_9
);
2962 } else fra
.me
.REG
[7] = once_value_9
;
2963 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
2964 if (UNTAG_Bool(REGB0
)) {
2966 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
2969 if (UNTAG_Bool(REGB0
)) {
2970 /* ./syntax//icode_generation.nit:438 */
2971 if (!once_value_11
) {
2972 fra
.me
.REG
[7] = BOX_NativeString("printf(\"%ld\\n\", UNTAG_Int(@@@));");
2973 REGB0
= TAG_Int(32);
2974 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
2975 once_value_11
= fra
.me
.REG
[7];
2976 register_static_object(&once_value_11
);
2977 } else fra
.me
.REG
[7] = once_value_11
;
2978 fra
.me
.REG
[6] = fra
.me
.REG
[7];
2980 /* ./syntax//icode_generation.nit:439 */
2981 if (!once_value_12
) {
2982 if (!once_value_13
) {
2983 fra
.me
.REG
[7] = BOX_NativeString("ascii");
2985 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
2986 once_value_13
= fra
.me
.REG
[7];
2987 register_static_object(&once_value_13
);
2988 } else fra
.me
.REG
[7] = once_value_13
;
2989 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2990 once_value_12
= fra
.me
.REG
[7];
2991 register_static_object(&once_value_12
);
2992 } else fra
.me
.REG
[7] = once_value_12
;
2993 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
2994 if (UNTAG_Bool(REGB0
)) {
2996 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
2999 if (UNTAG_Bool(REGB0
)) {
3000 /* ./syntax//icode_generation.nit:440 */
3001 if (!once_value_14
) {
3002 fra
.me
.REG
[7] = BOX_NativeString("TAG_Char(UNTAG_Int(@@@))");
3003 REGB0
= TAG_Int(24);
3004 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3005 once_value_14
= fra
.me
.REG
[7];
3006 register_static_object(&once_value_14
);
3007 } else fra
.me
.REG
[7] = once_value_14
;
3008 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3010 /* ./syntax//icode_generation.nit:441 */
3011 if (!once_value_15
) {
3012 if (!once_value_16
) {
3013 fra
.me
.REG
[7] = BOX_NativeString("succ");
3015 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3016 once_value_16
= fra
.me
.REG
[7];
3017 register_static_object(&once_value_16
);
3018 } else fra
.me
.REG
[7] = once_value_16
;
3019 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3020 once_value_15
= fra
.me
.REG
[7];
3021 register_static_object(&once_value_15
);
3022 } else fra
.me
.REG
[7] = once_value_15
;
3023 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3024 if (UNTAG_Bool(REGB0
)) {
3026 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3029 if (UNTAG_Bool(REGB0
)) {
3030 /* ./syntax//icode_generation.nit:442 */
3031 if (!once_value_17
) {
3032 fra
.me
.REG
[7] = BOX_NativeString("TAG_Int(UNTAG_Int(@@@)+1)");
3033 REGB0
= TAG_Int(25);
3034 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3035 once_value_17
= fra
.me
.REG
[7];
3036 register_static_object(&once_value_17
);
3037 } else fra
.me
.REG
[7] = once_value_17
;
3038 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3040 /* ./syntax//icode_generation.nit:443 */
3041 if (!once_value_18
) {
3042 if (!once_value_19
) {
3043 fra
.me
.REG
[7] = BOX_NativeString("prec");
3045 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3046 once_value_19
= fra
.me
.REG
[7];
3047 register_static_object(&once_value_19
);
3048 } else fra
.me
.REG
[7] = once_value_19
;
3049 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3050 once_value_18
= fra
.me
.REG
[7];
3051 register_static_object(&once_value_18
);
3052 } else fra
.me
.REG
[7] = once_value_18
;
3053 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3054 if (UNTAG_Bool(REGB0
)) {
3056 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3059 if (UNTAG_Bool(REGB0
)) {
3060 /* ./syntax//icode_generation.nit:444 */
3061 if (!once_value_20
) {
3062 fra
.me
.REG
[7] = BOX_NativeString("TAG_Int(UNTAG_Int(@@@)-1)");
3063 REGB0
= TAG_Int(25);
3064 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3065 once_value_20
= fra
.me
.REG
[7];
3066 register_static_object(&once_value_20
);
3067 } else fra
.me
.REG
[7] = once_value_20
;
3068 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3070 /* ./syntax//icode_generation.nit:445 */
3071 if (!once_value_21
) {
3072 if (!once_value_22
) {
3073 fra
.me
.REG
[7] = BOX_NativeString("to_f");
3075 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3076 once_value_22
= fra
.me
.REG
[7];
3077 register_static_object(&once_value_22
);
3078 } else fra
.me
.REG
[7] = once_value_22
;
3079 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3080 once_value_21
= fra
.me
.REG
[7];
3081 register_static_object(&once_value_21
);
3082 } else fra
.me
.REG
[7] = once_value_21
;
3083 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3084 if (UNTAG_Bool(REGB0
)) {
3086 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3089 if (UNTAG_Bool(REGB0
)) {
3090 /* ./syntax//icode_generation.nit:446 */
3091 if (!once_value_23
) {
3092 fra
.me
.REG
[7] = BOX_NativeString("BOX_Float((float)UNTAG_Int(@@@))");
3093 REGB0
= TAG_Int(32);
3094 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3095 once_value_23
= fra
.me
.REG
[7];
3096 register_static_object(&once_value_23
);
3097 } else fra
.me
.REG
[7] = once_value_23
;
3098 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3100 /* ./syntax//icode_generation.nit:447 */
3101 if (!once_value_24
) {
3102 if (!once_value_25
) {
3103 fra
.me
.REG
[7] = BOX_NativeString("+");
3105 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3106 once_value_25
= fra
.me
.REG
[7];
3107 register_static_object(&once_value_25
);
3108 } else fra
.me
.REG
[7] = once_value_25
;
3109 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3110 once_value_24
= fra
.me
.REG
[7];
3111 register_static_object(&once_value_24
);
3112 } else fra
.me
.REG
[7] = once_value_24
;
3113 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3114 if (UNTAG_Bool(REGB0
)) {
3116 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3119 if (UNTAG_Bool(REGB0
)) {
3120 /* ./syntax//icode_generation.nit:448 */
3121 if (!once_value_26
) {
3122 fra
.me
.REG
[7] = BOX_NativeString("TAG_Int(UNTAG_Int(@@@)+UNTAG_Int(@@@))");
3123 REGB0
= TAG_Int(38);
3124 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3125 once_value_26
= fra
.me
.REG
[7];
3126 register_static_object(&once_value_26
);
3127 } else fra
.me
.REG
[7] = once_value_26
;
3128 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3130 /* ./syntax//icode_generation.nit:449 */
3131 if (!once_value_27
) {
3132 if (!once_value_28
) {
3133 fra
.me
.REG
[7] = BOX_NativeString("-");
3135 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3136 once_value_28
= fra
.me
.REG
[7];
3137 register_static_object(&once_value_28
);
3138 } else fra
.me
.REG
[7] = once_value_28
;
3139 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3140 once_value_27
= fra
.me
.REG
[7];
3141 register_static_object(&once_value_27
);
3142 } else fra
.me
.REG
[7] = once_value_27
;
3143 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3144 if (UNTAG_Bool(REGB0
)) {
3146 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3149 if (UNTAG_Bool(REGB0
)) {
3150 /* ./syntax//icode_generation.nit:450 */
3151 if (!once_value_29
) {
3152 fra
.me
.REG
[7] = BOX_NativeString("TAG_Int(UNTAG_Int(@@@)-UNTAG_Int(@@@))");
3153 REGB0
= TAG_Int(38);
3154 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3155 once_value_29
= fra
.me
.REG
[7];
3156 register_static_object(&once_value_29
);
3157 } else fra
.me
.REG
[7] = once_value_29
;
3158 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3160 /* ./syntax//icode_generation.nit:451 */
3161 if (!once_value_30
) {
3162 if (!once_value_31
) {
3163 fra
.me
.REG
[7] = BOX_NativeString("*");
3165 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3166 once_value_31
= fra
.me
.REG
[7];
3167 register_static_object(&once_value_31
);
3168 } else fra
.me
.REG
[7] = once_value_31
;
3169 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3170 once_value_30
= fra
.me
.REG
[7];
3171 register_static_object(&once_value_30
);
3172 } else fra
.me
.REG
[7] = once_value_30
;
3173 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3174 if (UNTAG_Bool(REGB0
)) {
3176 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3179 if (UNTAG_Bool(REGB0
)) {
3180 /* ./syntax//icode_generation.nit:452 */
3181 if (!once_value_32
) {
3182 fra
.me
.REG
[7] = BOX_NativeString("TAG_Int(UNTAG_Int(@@@)*UNTAG_Int(@@@))");
3183 REGB0
= TAG_Int(38);
3184 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3185 once_value_32
= fra
.me
.REG
[7];
3186 register_static_object(&once_value_32
);
3187 } else fra
.me
.REG
[7] = once_value_32
;
3188 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3190 /* ./syntax//icode_generation.nit:453 */
3191 if (!once_value_33
) {
3192 if (!once_value_34
) {
3193 fra
.me
.REG
[7] = BOX_NativeString("/");
3195 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3196 once_value_34
= fra
.me
.REG
[7];
3197 register_static_object(&once_value_34
);
3198 } else fra
.me
.REG
[7] = once_value_34
;
3199 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3200 once_value_33
= fra
.me
.REG
[7];
3201 register_static_object(&once_value_33
);
3202 } else fra
.me
.REG
[7] = once_value_33
;
3203 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3204 if (UNTAG_Bool(REGB0
)) {
3206 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3209 if (UNTAG_Bool(REGB0
)) {
3210 /* ./syntax//icode_generation.nit:454 */
3211 if (!once_value_35
) {
3212 fra
.me
.REG
[7] = BOX_NativeString("TAG_Int(UNTAG_Int(@@@)/UNTAG_Int(@@@))");
3213 REGB0
= TAG_Int(38);
3214 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3215 once_value_35
= fra
.me
.REG
[7];
3216 register_static_object(&once_value_35
);
3217 } else fra
.me
.REG
[7] = once_value_35
;
3218 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3220 /* ./syntax//icode_generation.nit:455 */
3221 if (!once_value_36
) {
3222 if (!once_value_37
) {
3223 fra
.me
.REG
[7] = BOX_NativeString("%");
3225 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3226 once_value_37
= fra
.me
.REG
[7];
3227 register_static_object(&once_value_37
);
3228 } else fra
.me
.REG
[7] = once_value_37
;
3229 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3230 once_value_36
= fra
.me
.REG
[7];
3231 register_static_object(&once_value_36
);
3232 } else fra
.me
.REG
[7] = once_value_36
;
3233 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3234 if (UNTAG_Bool(REGB0
)) {
3236 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3239 if (UNTAG_Bool(REGB0
)) {
3240 /* ./syntax//icode_generation.nit:456 */
3241 if (!once_value_38
) {
3242 fra
.me
.REG
[7] = BOX_NativeString("TAG_Int(UNTAG_Int(@@@)%UNTAG_Int(@@@))");
3243 REGB0
= TAG_Int(38);
3244 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3245 once_value_38
= fra
.me
.REG
[7];
3246 register_static_object(&once_value_38
);
3247 } else fra
.me
.REG
[7] = once_value_38
;
3248 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3250 /* ./syntax//icode_generation.nit:457 */
3251 if (!once_value_39
) {
3252 if (!once_value_40
) {
3253 fra
.me
.REG
[7] = BOX_NativeString("<");
3255 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3256 once_value_40
= fra
.me
.REG
[7];
3257 register_static_object(&once_value_40
);
3258 } else fra
.me
.REG
[7] = once_value_40
;
3259 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3260 once_value_39
= fra
.me
.REG
[7];
3261 register_static_object(&once_value_39
);
3262 } else fra
.me
.REG
[7] = once_value_39
;
3263 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3264 if (UNTAG_Bool(REGB0
)) {
3266 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3269 if (UNTAG_Bool(REGB0
)) {
3270 /* ./syntax//icode_generation.nit:458 */
3271 if (!once_value_41
) {
3272 fra
.me
.REG
[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(@@@)<UNTAG_Int(@@@))");
3273 REGB0
= TAG_Int(39);
3274 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3275 once_value_41
= fra
.me
.REG
[7];
3276 register_static_object(&once_value_41
);
3277 } else fra
.me
.REG
[7] = once_value_41
;
3278 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3280 /* ./syntax//icode_generation.nit:459 */
3281 if (!once_value_42
) {
3282 if (!once_value_43
) {
3283 fra
.me
.REG
[7] = BOX_NativeString(">");
3285 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3286 once_value_43
= fra
.me
.REG
[7];
3287 register_static_object(&once_value_43
);
3288 } else fra
.me
.REG
[7] = once_value_43
;
3289 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3290 once_value_42
= fra
.me
.REG
[7];
3291 register_static_object(&once_value_42
);
3292 } else fra
.me
.REG
[7] = once_value_42
;
3293 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3294 if (UNTAG_Bool(REGB0
)) {
3296 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3299 if (UNTAG_Bool(REGB0
)) {
3300 /* ./syntax//icode_generation.nit:460 */
3301 if (!once_value_44
) {
3302 fra
.me
.REG
[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(@@@)>UNTAG_Int(@@@))");
3303 REGB0
= TAG_Int(39);
3304 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3305 once_value_44
= fra
.me
.REG
[7];
3306 register_static_object(&once_value_44
);
3307 } else fra
.me
.REG
[7] = once_value_44
;
3308 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3310 /* ./syntax//icode_generation.nit:461 */
3311 if (!once_value_45
) {
3312 if (!once_value_46
) {
3313 fra
.me
.REG
[7] = BOX_NativeString("<=");
3315 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3316 once_value_46
= fra
.me
.REG
[7];
3317 register_static_object(&once_value_46
);
3318 } else fra
.me
.REG
[7] = once_value_46
;
3319 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3320 once_value_45
= fra
.me
.REG
[7];
3321 register_static_object(&once_value_45
);
3322 } else fra
.me
.REG
[7] = once_value_45
;
3323 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3324 if (UNTAG_Bool(REGB0
)) {
3326 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3329 if (UNTAG_Bool(REGB0
)) {
3330 /* ./syntax//icode_generation.nit:462 */
3331 if (!once_value_47
) {
3332 fra
.me
.REG
[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(@@@)<=UNTAG_Int(@@@))");
3333 REGB0
= TAG_Int(40);
3334 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3335 once_value_47
= fra
.me
.REG
[7];
3336 register_static_object(&once_value_47
);
3337 } else fra
.me
.REG
[7] = once_value_47
;
3338 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3340 /* ./syntax//icode_generation.nit:463 */
3341 if (!once_value_48
) {
3342 if (!once_value_49
) {
3343 fra
.me
.REG
[7] = BOX_NativeString(">=");
3345 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3346 once_value_49
= fra
.me
.REG
[7];
3347 register_static_object(&once_value_49
);
3348 } else fra
.me
.REG
[7] = once_value_49
;
3349 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3350 once_value_48
= fra
.me
.REG
[7];
3351 register_static_object(&once_value_48
);
3352 } else fra
.me
.REG
[7] = once_value_48
;
3353 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3354 if (UNTAG_Bool(REGB0
)) {
3356 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3359 if (UNTAG_Bool(REGB0
)) {
3360 /* ./syntax//icode_generation.nit:464 */
3361 if (!once_value_50
) {
3362 fra
.me
.REG
[7] = BOX_NativeString("TAG_Bool(UNTAG_Int(@@@)>=UNTAG_Int(@@@))");
3363 REGB0
= TAG_Int(40);
3364 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3365 once_value_50
= fra
.me
.REG
[7];
3366 register_static_object(&once_value_50
);
3367 } else fra
.me
.REG
[7] = once_value_50
;
3368 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3370 /* ./syntax//icode_generation.nit:465 */
3371 if (!once_value_51
) {
3372 if (!once_value_52
) {
3373 fra
.me
.REG
[7] = BOX_NativeString("lshift");
3375 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3376 once_value_52
= fra
.me
.REG
[7];
3377 register_static_object(&once_value_52
);
3378 } else fra
.me
.REG
[7] = once_value_52
;
3379 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3380 once_value_51
= fra
.me
.REG
[7];
3381 register_static_object(&once_value_51
);
3382 } else fra
.me
.REG
[7] = once_value_51
;
3383 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3384 if (UNTAG_Bool(REGB0
)) {
3386 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3389 if (UNTAG_Bool(REGB0
)) {
3390 /* ./syntax//icode_generation.nit:466 */
3391 if (!once_value_53
) {
3392 fra
.me
.REG
[7] = BOX_NativeString("TAG_Int(UNTAG_Int(@@@)<<UNTAG_Int(@@@))");
3393 REGB0
= TAG_Int(39);
3394 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3395 once_value_53
= fra
.me
.REG
[7];
3396 register_static_object(&once_value_53
);
3397 } else fra
.me
.REG
[7] = once_value_53
;
3398 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3400 /* ./syntax//icode_generation.nit:467 */
3401 if (!once_value_54
) {
3402 if (!once_value_55
) {
3403 fra
.me
.REG
[7] = BOX_NativeString("rshift");
3405 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3406 once_value_55
= fra
.me
.REG
[7];
3407 register_static_object(&once_value_55
);
3408 } else fra
.me
.REG
[7] = once_value_55
;
3409 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3410 once_value_54
= fra
.me
.REG
[7];
3411 register_static_object(&once_value_54
);
3412 } else fra
.me
.REG
[7] = once_value_54
;
3413 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3414 if (UNTAG_Bool(REGB0
)) {
3416 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3419 if (UNTAG_Bool(REGB0
)) {
3420 /* ./syntax//icode_generation.nit:468 */
3421 if (!once_value_56
) {
3422 fra
.me
.REG
[7] = BOX_NativeString("TAG_Int(UNTAG_Int(@@@)>>UNTAG_Int(@@@))");
3423 REGB0
= TAG_Int(39);
3424 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3425 once_value_56
= fra
.me
.REG
[7];
3426 register_static_object(&once_value_56
);
3427 } else fra
.me
.REG
[7] = once_value_56
;
3428 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3430 /* ./syntax//icode_generation.nit:469 */
3431 if (!once_value_57
) {
3432 if (!once_value_58
) {
3433 fra
.me
.REG
[7] = BOX_NativeString("==");
3435 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3436 once_value_58
= fra
.me
.REG
[7];
3437 register_static_object(&once_value_58
);
3438 } else fra
.me
.REG
[7] = once_value_58
;
3439 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3440 once_value_57
= fra
.me
.REG
[7];
3441 register_static_object(&once_value_57
);
3442 } else fra
.me
.REG
[7] = once_value_57
;
3443 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3444 if (UNTAG_Bool(REGB0
)) {
3446 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3449 if (UNTAG_Bool(REGB0
)) {
3450 /* ./syntax//icode_generation.nit:470 */
3451 if (!once_value_59
) {
3452 fra
.me
.REG
[7] = BOX_NativeString("TAG_Bool((@@@)==(@@@))");
3453 REGB0
= TAG_Int(22);
3454 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3455 once_value_59
= fra
.me
.REG
[7];
3456 register_static_object(&once_value_59
);
3457 } else fra
.me
.REG
[7] = once_value_59
;
3458 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3460 /* ./syntax//icode_generation.nit:471 */
3461 if (!once_value_60
) {
3462 if (!once_value_61
) {
3463 fra
.me
.REG
[7] = BOX_NativeString("!=");
3465 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3466 once_value_61
= fra
.me
.REG
[7];
3467 register_static_object(&once_value_61
);
3468 } else fra
.me
.REG
[7] = once_value_61
;
3469 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3470 once_value_60
= fra
.me
.REG
[7];
3471 register_static_object(&once_value_60
);
3472 } else fra
.me
.REG
[7] = once_value_60
;
3473 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3474 if (UNTAG_Bool(REGB0
)) {
3476 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3479 if (UNTAG_Bool(REGB0
)) {
3480 /* ./syntax//icode_generation.nit:472 */
3481 if (!once_value_62
) {
3482 fra
.me
.REG
[7] = BOX_NativeString("TAG_Bool((@@@)!=(@@@))");
3483 REGB0
= TAG_Int(22);
3484 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3485 once_value_62
= fra
.me
.REG
[7];
3486 register_static_object(&once_value_62
);
3487 } else fra
.me
.REG
[7] = once_value_62
;
3488 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3510 /* ./syntax//icode_generation.nit:474 */
3511 if (!once_value_63
) {
3512 if (!once_value_64
) {
3513 fra
.me
.REG
[7] = BOX_NativeString("Float");
3515 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3516 once_value_64
= fra
.me
.REG
[7];
3517 register_static_object(&once_value_64
);
3518 } else fra
.me
.REG
[7] = once_value_64
;
3519 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3520 once_value_63
= fra
.me
.REG
[7];
3521 register_static_object(&once_value_63
);
3522 } else fra
.me
.REG
[7] = once_value_63
;
3523 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[4],fra
.me
.REG
[7]));
3524 if (UNTAG_Bool(REGB0
)) {
3526 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
3529 if (UNTAG_Bool(REGB0
)) {
3530 /* ./syntax//icode_generation.nit:475 */
3531 if (!once_value_65
) {
3532 if (!once_value_66
) {
3533 fra
.me
.REG
[7] = BOX_NativeString("object_id");
3535 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3536 once_value_66
= fra
.me
.REG
[7];
3537 register_static_object(&once_value_66
);
3538 } else fra
.me
.REG
[7] = once_value_66
;
3539 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3540 once_value_65
= fra
.me
.REG
[7];
3541 register_static_object(&once_value_65
);
3542 } else fra
.me
.REG
[7] = once_value_65
;
3543 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3544 if (UNTAG_Bool(REGB0
)) {
3546 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3549 if (UNTAG_Bool(REGB0
)) {
3550 /* ./syntax//icode_generation.nit:476 */
3551 if (!once_value_67
) {
3552 fra
.me
.REG
[7] = BOX_NativeString("TAG_Int((bigint)UNBOX_Float(@@@))");
3553 REGB0
= TAG_Int(33);
3554 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3555 once_value_67
= fra
.me
.REG
[7];
3556 register_static_object(&once_value_67
);
3557 } else fra
.me
.REG
[7] = once_value_67
;
3558 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3560 /* ./syntax//icode_generation.nit:477 */
3561 if (!once_value_68
) {
3562 if (!once_value_69
) {
3563 fra
.me
.REG
[7] = BOX_NativeString("unary -");
3565 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3566 once_value_69
= fra
.me
.REG
[7];
3567 register_static_object(&once_value_69
);
3568 } else fra
.me
.REG
[7] = once_value_69
;
3569 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3570 once_value_68
= fra
.me
.REG
[7];
3571 register_static_object(&once_value_68
);
3572 } else fra
.me
.REG
[7] = once_value_68
;
3573 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3574 if (UNTAG_Bool(REGB0
)) {
3576 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3579 if (UNTAG_Bool(REGB0
)) {
3580 /* ./syntax//icode_generation.nit:478 */
3581 if (!once_value_70
) {
3582 fra
.me
.REG
[7] = BOX_NativeString("BOX_Float(-UNBOX_Float(@@@))");
3583 REGB0
= TAG_Int(28);
3584 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3585 once_value_70
= fra
.me
.REG
[7];
3586 register_static_object(&once_value_70
);
3587 } else fra
.me
.REG
[7] = once_value_70
;
3588 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3590 /* ./syntax//icode_generation.nit:479 */
3591 if (!once_value_71
) {
3592 if (!once_value_72
) {
3593 fra
.me
.REG
[7] = BOX_NativeString("output");
3595 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3596 once_value_72
= fra
.me
.REG
[7];
3597 register_static_object(&once_value_72
);
3598 } else fra
.me
.REG
[7] = once_value_72
;
3599 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3600 once_value_71
= fra
.me
.REG
[7];
3601 register_static_object(&once_value_71
);
3602 } else fra
.me
.REG
[7] = once_value_71
;
3603 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3604 if (UNTAG_Bool(REGB0
)) {
3606 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3609 if (UNTAG_Bool(REGB0
)) {
3610 /* ./syntax//icode_generation.nit:480 */
3611 if (!once_value_73
) {
3612 fra
.me
.REG
[7] = BOX_NativeString("printf(\"%f\\n\", UNBOX_Float(@@@));");
3613 REGB0
= TAG_Int(33);
3614 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3615 once_value_73
= fra
.me
.REG
[7];
3616 register_static_object(&once_value_73
);
3617 } else fra
.me
.REG
[7] = once_value_73
;
3618 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3620 /* ./syntax//icode_generation.nit:481 */
3621 if (!once_value_74
) {
3622 if (!once_value_75
) {
3623 fra
.me
.REG
[7] = BOX_NativeString("to_i");
3625 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3626 once_value_75
= fra
.me
.REG
[7];
3627 register_static_object(&once_value_75
);
3628 } else fra
.me
.REG
[7] = once_value_75
;
3629 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3630 once_value_74
= fra
.me
.REG
[7];
3631 register_static_object(&once_value_74
);
3632 } else fra
.me
.REG
[7] = once_value_74
;
3633 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3634 if (UNTAG_Bool(REGB0
)) {
3636 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3639 if (UNTAG_Bool(REGB0
)) {
3640 /* ./syntax//icode_generation.nit:482 */
3641 if (!once_value_76
) {
3642 fra
.me
.REG
[7] = BOX_NativeString("TAG_Int((bigint)UNBOX_Float(@@@))");
3643 REGB0
= TAG_Int(33);
3644 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3645 once_value_76
= fra
.me
.REG
[7];
3646 register_static_object(&once_value_76
);
3647 } else fra
.me
.REG
[7] = once_value_76
;
3648 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3650 /* ./syntax//icode_generation.nit:483 */
3651 if (!once_value_77
) {
3652 if (!once_value_78
) {
3653 fra
.me
.REG
[7] = BOX_NativeString("+");
3655 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3656 once_value_78
= fra
.me
.REG
[7];
3657 register_static_object(&once_value_78
);
3658 } else fra
.me
.REG
[7] = once_value_78
;
3659 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3660 once_value_77
= fra
.me
.REG
[7];
3661 register_static_object(&once_value_77
);
3662 } else fra
.me
.REG
[7] = once_value_77
;
3663 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3664 if (UNTAG_Bool(REGB0
)) {
3666 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3669 if (UNTAG_Bool(REGB0
)) {
3670 /* ./syntax//icode_generation.nit:484 */
3671 if (!once_value_79
) {
3672 fra
.me
.REG
[7] = BOX_NativeString("BOX_Float(UNBOX_Float(@@@)+UNBOX_Float(@@@))");
3673 REGB0
= TAG_Int(44);
3674 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3675 once_value_79
= fra
.me
.REG
[7];
3676 register_static_object(&once_value_79
);
3677 } else fra
.me
.REG
[7] = once_value_79
;
3678 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3680 /* ./syntax//icode_generation.nit:485 */
3681 if (!once_value_80
) {
3682 if (!once_value_81
) {
3683 fra
.me
.REG
[7] = BOX_NativeString("-");
3685 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3686 once_value_81
= fra
.me
.REG
[7];
3687 register_static_object(&once_value_81
);
3688 } else fra
.me
.REG
[7] = once_value_81
;
3689 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3690 once_value_80
= fra
.me
.REG
[7];
3691 register_static_object(&once_value_80
);
3692 } else fra
.me
.REG
[7] = once_value_80
;
3693 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3694 if (UNTAG_Bool(REGB0
)) {
3696 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3699 if (UNTAG_Bool(REGB0
)) {
3700 /* ./syntax//icode_generation.nit:486 */
3701 if (!once_value_82
) {
3702 fra
.me
.REG
[7] = BOX_NativeString("BOX_Float(UNBOX_Float(@@@)-UNBOX_Float(@@@))");
3703 REGB0
= TAG_Int(44);
3704 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3705 once_value_82
= fra
.me
.REG
[7];
3706 register_static_object(&once_value_82
);
3707 } else fra
.me
.REG
[7] = once_value_82
;
3708 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3710 /* ./syntax//icode_generation.nit:487 */
3711 if (!once_value_83
) {
3712 if (!once_value_84
) {
3713 fra
.me
.REG
[7] = BOX_NativeString("*");
3715 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3716 once_value_84
= fra
.me
.REG
[7];
3717 register_static_object(&once_value_84
);
3718 } else fra
.me
.REG
[7] = once_value_84
;
3719 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3720 once_value_83
= fra
.me
.REG
[7];
3721 register_static_object(&once_value_83
);
3722 } else fra
.me
.REG
[7] = once_value_83
;
3723 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3724 if (UNTAG_Bool(REGB0
)) {
3726 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3729 if (UNTAG_Bool(REGB0
)) {
3730 /* ./syntax//icode_generation.nit:488 */
3731 if (!once_value_85
) {
3732 fra
.me
.REG
[7] = BOX_NativeString("BOX_Float(UNBOX_Float(@@@)*UNBOX_Float(@@@))");
3733 REGB0
= TAG_Int(44);
3734 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3735 once_value_85
= fra
.me
.REG
[7];
3736 register_static_object(&once_value_85
);
3737 } else fra
.me
.REG
[7] = once_value_85
;
3738 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3740 /* ./syntax//icode_generation.nit:489 */
3741 if (!once_value_86
) {
3742 if (!once_value_87
) {
3743 fra
.me
.REG
[7] = BOX_NativeString("/");
3745 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3746 once_value_87
= fra
.me
.REG
[7];
3747 register_static_object(&once_value_87
);
3748 } else fra
.me
.REG
[7] = once_value_87
;
3749 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3750 once_value_86
= fra
.me
.REG
[7];
3751 register_static_object(&once_value_86
);
3752 } else fra
.me
.REG
[7] = once_value_86
;
3753 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3754 if (UNTAG_Bool(REGB0
)) {
3756 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3759 if (UNTAG_Bool(REGB0
)) {
3760 /* ./syntax//icode_generation.nit:490 */
3761 if (!once_value_88
) {
3762 fra
.me
.REG
[7] = BOX_NativeString("BOX_Float(UNBOX_Float(@@@)/UNBOX_Float(@@@))");
3763 REGB0
= TAG_Int(44);
3764 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3765 once_value_88
= fra
.me
.REG
[7];
3766 register_static_object(&once_value_88
);
3767 } else fra
.me
.REG
[7] = once_value_88
;
3768 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3770 /* ./syntax//icode_generation.nit:491 */
3771 if (!once_value_89
) {
3772 if (!once_value_90
) {
3773 fra
.me
.REG
[7] = BOX_NativeString("<");
3775 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3776 once_value_90
= fra
.me
.REG
[7];
3777 register_static_object(&once_value_90
);
3778 } else fra
.me
.REG
[7] = once_value_90
;
3779 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3780 once_value_89
= fra
.me
.REG
[7];
3781 register_static_object(&once_value_89
);
3782 } else fra
.me
.REG
[7] = once_value_89
;
3783 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3784 if (UNTAG_Bool(REGB0
)) {
3786 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3789 if (UNTAG_Bool(REGB0
)) {
3790 /* ./syntax//icode_generation.nit:492 */
3791 if (!once_value_91
) {
3792 fra
.me
.REG
[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(@@@)<UNBOX_Float(@@@))");
3793 REGB0
= TAG_Int(43);
3794 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3795 once_value_91
= fra
.me
.REG
[7];
3796 register_static_object(&once_value_91
);
3797 } else fra
.me
.REG
[7] = once_value_91
;
3798 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3800 /* ./syntax//icode_generation.nit:493 */
3801 if (!once_value_92
) {
3802 if (!once_value_93
) {
3803 fra
.me
.REG
[7] = BOX_NativeString(">");
3805 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3806 once_value_93
= fra
.me
.REG
[7];
3807 register_static_object(&once_value_93
);
3808 } else fra
.me
.REG
[7] = once_value_93
;
3809 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3810 once_value_92
= fra
.me
.REG
[7];
3811 register_static_object(&once_value_92
);
3812 } else fra
.me
.REG
[7] = once_value_92
;
3813 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3814 if (UNTAG_Bool(REGB0
)) {
3816 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3819 if (UNTAG_Bool(REGB0
)) {
3820 /* ./syntax//icode_generation.nit:494 */
3821 if (!once_value_94
) {
3822 fra
.me
.REG
[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(@@@)>UNBOX_Float(@@@))");
3823 REGB0
= TAG_Int(43);
3824 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3825 once_value_94
= fra
.me
.REG
[7];
3826 register_static_object(&once_value_94
);
3827 } else fra
.me
.REG
[7] = once_value_94
;
3828 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3830 /* ./syntax//icode_generation.nit:495 */
3831 if (!once_value_95
) {
3832 if (!once_value_96
) {
3833 fra
.me
.REG
[7] = BOX_NativeString("<=");
3835 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3836 once_value_96
= fra
.me
.REG
[7];
3837 register_static_object(&once_value_96
);
3838 } else fra
.me
.REG
[7] = once_value_96
;
3839 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3840 once_value_95
= fra
.me
.REG
[7];
3841 register_static_object(&once_value_95
);
3842 } else fra
.me
.REG
[7] = once_value_95
;
3843 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3844 if (UNTAG_Bool(REGB0
)) {
3846 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3849 if (UNTAG_Bool(REGB0
)) {
3850 /* ./syntax//icode_generation.nit:496 */
3851 if (!once_value_97
) {
3852 fra
.me
.REG
[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(@@@)<=UNBOX_Float(@@@))");
3853 REGB0
= TAG_Int(44);
3854 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3855 once_value_97
= fra
.me
.REG
[7];
3856 register_static_object(&once_value_97
);
3857 } else fra
.me
.REG
[7] = once_value_97
;
3858 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3860 /* ./syntax//icode_generation.nit:497 */
3861 if (!once_value_98
) {
3862 if (!once_value_99
) {
3863 fra
.me
.REG
[7] = BOX_NativeString(">=");
3865 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3866 once_value_99
= fra
.me
.REG
[7];
3867 register_static_object(&once_value_99
);
3868 } else fra
.me
.REG
[7] = once_value_99
;
3869 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3870 once_value_98
= fra
.me
.REG
[7];
3871 register_static_object(&once_value_98
);
3872 } else fra
.me
.REG
[7] = once_value_98
;
3873 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3874 if (UNTAG_Bool(REGB0
)) {
3876 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3879 if (UNTAG_Bool(REGB0
)) {
3880 /* ./syntax//icode_generation.nit:498 */
3881 if (!once_value_100
) {
3882 fra
.me
.REG
[7] = BOX_NativeString("TAG_Bool(UNBOX_Float(@@@)>=UNBOX_Float(@@@))");
3883 REGB0
= TAG_Int(44);
3884 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3885 once_value_100
= fra
.me
.REG
[7];
3886 register_static_object(&once_value_100
);
3887 } else fra
.me
.REG
[7] = once_value_100
;
3888 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3902 /* ./syntax//icode_generation.nit:500 */
3903 if (!once_value_101
) {
3904 if (!once_value_102
) {
3905 fra
.me
.REG
[7] = BOX_NativeString("Char");
3907 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3908 once_value_102
= fra
.me
.REG
[7];
3909 register_static_object(&once_value_102
);
3910 } else fra
.me
.REG
[7] = once_value_102
;
3911 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3912 once_value_101
= fra
.me
.REG
[7];
3913 register_static_object(&once_value_101
);
3914 } else fra
.me
.REG
[7] = once_value_101
;
3915 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[4],fra
.me
.REG
[7]));
3916 if (UNTAG_Bool(REGB0
)) {
3918 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
3921 if (UNTAG_Bool(REGB0
)) {
3922 /* ./syntax//icode_generation.nit:501 */
3923 if (!once_value_103
) {
3924 if (!once_value_104
) {
3925 fra
.me
.REG
[7] = BOX_NativeString("object_id");
3927 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3928 once_value_104
= fra
.me
.REG
[7];
3929 register_static_object(&once_value_104
);
3930 } else fra
.me
.REG
[7] = once_value_104
;
3931 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3932 once_value_103
= fra
.me
.REG
[7];
3933 register_static_object(&once_value_103
);
3934 } else fra
.me
.REG
[7] = once_value_103
;
3935 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3936 if (UNTAG_Bool(REGB0
)) {
3938 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3941 if (UNTAG_Bool(REGB0
)) {
3942 /* ./syntax//icode_generation.nit:502 */
3943 if (!once_value_105
) {
3944 fra
.me
.REG
[7] = BOX_NativeString("TAG_Int(UNTAG_Char(@@@))");
3945 REGB0
= TAG_Int(24);
3946 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3947 once_value_105
= fra
.me
.REG
[7];
3948 register_static_object(&once_value_105
);
3949 } else fra
.me
.REG
[7] = once_value_105
;
3950 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3952 /* ./syntax//icode_generation.nit:503 */
3953 if (!once_value_106
) {
3954 if (!once_value_107
) {
3955 fra
.me
.REG
[7] = BOX_NativeString("unary -");
3957 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3958 once_value_107
= fra
.me
.REG
[7];
3959 register_static_object(&once_value_107
);
3960 } else fra
.me
.REG
[7] = once_value_107
;
3961 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3962 once_value_106
= fra
.me
.REG
[7];
3963 register_static_object(&once_value_106
);
3964 } else fra
.me
.REG
[7] = once_value_106
;
3965 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3966 if (UNTAG_Bool(REGB0
)) {
3968 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
3971 if (UNTAG_Bool(REGB0
)) {
3972 /* ./syntax//icode_generation.nit:504 */
3973 if (!once_value_108
) {
3974 fra
.me
.REG
[7] = BOX_NativeString("TAG_Char(-UNTAG_Char(@@@))");
3975 REGB0
= TAG_Int(26);
3976 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3977 once_value_108
= fra
.me
.REG
[7];
3978 register_static_object(&once_value_108
);
3979 } else fra
.me
.REG
[7] = once_value_108
;
3980 fra
.me
.REG
[6] = fra
.me
.REG
[7];
3982 /* ./syntax//icode_generation.nit:505 */
3983 if (!once_value_109
) {
3984 if (!once_value_110
) {
3985 fra
.me
.REG
[7] = BOX_NativeString("output");
3987 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
3988 once_value_110
= fra
.me
.REG
[7];
3989 register_static_object(&once_value_110
);
3990 } else fra
.me
.REG
[7] = once_value_110
;
3991 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3992 once_value_109
= fra
.me
.REG
[7];
3993 register_static_object(&once_value_109
);
3994 } else fra
.me
.REG
[7] = once_value_109
;
3995 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
3996 if (UNTAG_Bool(REGB0
)) {
3998 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4001 if (UNTAG_Bool(REGB0
)) {
4002 /* ./syntax//icode_generation.nit:506 */
4003 if (!once_value_111
) {
4004 fra
.me
.REG
[7] = BOX_NativeString("printf(\"%c\", (unsigned char)UNTAG_Char(@@@));");
4005 REGB0
= TAG_Int(45);
4006 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4007 once_value_111
= fra
.me
.REG
[7];
4008 register_static_object(&once_value_111
);
4009 } else fra
.me
.REG
[7] = once_value_111
;
4010 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4012 /* ./syntax//icode_generation.nit:507 */
4013 if (!once_value_112
) {
4014 if (!once_value_113
) {
4015 fra
.me
.REG
[7] = BOX_NativeString("ascii");
4017 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4018 once_value_113
= fra
.me
.REG
[7];
4019 register_static_object(&once_value_113
);
4020 } else fra
.me
.REG
[7] = once_value_113
;
4021 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4022 once_value_112
= fra
.me
.REG
[7];
4023 register_static_object(&once_value_112
);
4024 } else fra
.me
.REG
[7] = once_value_112
;
4025 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4026 if (UNTAG_Bool(REGB0
)) {
4028 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4031 if (UNTAG_Bool(REGB0
)) {
4032 /* ./syntax//icode_generation.nit:508 */
4033 if (!once_value_114
) {
4034 fra
.me
.REG
[7] = BOX_NativeString("TAG_Int((unsigned char)UNTAG_Char(@@@))");
4035 REGB0
= TAG_Int(39);
4036 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4037 once_value_114
= fra
.me
.REG
[7];
4038 register_static_object(&once_value_114
);
4039 } else fra
.me
.REG
[7] = once_value_114
;
4040 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4042 /* ./syntax//icode_generation.nit:509 */
4043 if (!once_value_115
) {
4044 if (!once_value_116
) {
4045 fra
.me
.REG
[7] = BOX_NativeString("succ");
4047 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4048 once_value_116
= fra
.me
.REG
[7];
4049 register_static_object(&once_value_116
);
4050 } else fra
.me
.REG
[7] = once_value_116
;
4051 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4052 once_value_115
= fra
.me
.REG
[7];
4053 register_static_object(&once_value_115
);
4054 } else fra
.me
.REG
[7] = once_value_115
;
4055 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4056 if (UNTAG_Bool(REGB0
)) {
4058 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4061 if (UNTAG_Bool(REGB0
)) {
4062 /* ./syntax//icode_generation.nit:510 */
4063 if (!once_value_117
) {
4064 fra
.me
.REG
[7] = BOX_NativeString("TAG_Char(UNTAG_Char(@@@)+1)");
4065 REGB0
= TAG_Int(27);
4066 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4067 once_value_117
= fra
.me
.REG
[7];
4068 register_static_object(&once_value_117
);
4069 } else fra
.me
.REG
[7] = once_value_117
;
4070 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4072 /* ./syntax//icode_generation.nit:511 */
4073 if (!once_value_118
) {
4074 if (!once_value_119
) {
4075 fra
.me
.REG
[7] = BOX_NativeString("prec");
4077 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4078 once_value_119
= fra
.me
.REG
[7];
4079 register_static_object(&once_value_119
);
4080 } else fra
.me
.REG
[7] = once_value_119
;
4081 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4082 once_value_118
= fra
.me
.REG
[7];
4083 register_static_object(&once_value_118
);
4084 } else fra
.me
.REG
[7] = once_value_118
;
4085 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4086 if (UNTAG_Bool(REGB0
)) {
4088 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4091 if (UNTAG_Bool(REGB0
)) {
4092 /* ./syntax//icode_generation.nit:512 */
4093 if (!once_value_120
) {
4094 fra
.me
.REG
[7] = BOX_NativeString("TAG_Char(UNTAG_Char(@@@)-1)");
4095 REGB0
= TAG_Int(27);
4096 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4097 once_value_120
= fra
.me
.REG
[7];
4098 register_static_object(&once_value_120
);
4099 } else fra
.me
.REG
[7] = once_value_120
;
4100 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4102 /* ./syntax//icode_generation.nit:513 */
4103 if (!once_value_121
) {
4104 if (!once_value_122
) {
4105 fra
.me
.REG
[7] = BOX_NativeString("to_i");
4107 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4108 once_value_122
= fra
.me
.REG
[7];
4109 register_static_object(&once_value_122
);
4110 } else fra
.me
.REG
[7] = once_value_122
;
4111 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4112 once_value_121
= fra
.me
.REG
[7];
4113 register_static_object(&once_value_121
);
4114 } else fra
.me
.REG
[7] = once_value_121
;
4115 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4116 if (UNTAG_Bool(REGB0
)) {
4118 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4121 if (UNTAG_Bool(REGB0
)) {
4122 /* ./syntax//icode_generation.nit:514 */
4123 if (!once_value_123
) {
4124 fra
.me
.REG
[7] = BOX_NativeString("TAG_Int(UNTAG_Char(@@@)-'0')");
4125 REGB0
= TAG_Int(28);
4126 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4127 once_value_123
= fra
.me
.REG
[7];
4128 register_static_object(&once_value_123
);
4129 } else fra
.me
.REG
[7] = once_value_123
;
4130 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4132 /* ./syntax//icode_generation.nit:515 */
4133 if (!once_value_124
) {
4134 if (!once_value_125
) {
4135 fra
.me
.REG
[7] = BOX_NativeString("+");
4137 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4138 once_value_125
= fra
.me
.REG
[7];
4139 register_static_object(&once_value_125
);
4140 } else fra
.me
.REG
[7] = once_value_125
;
4141 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4142 once_value_124
= fra
.me
.REG
[7];
4143 register_static_object(&once_value_124
);
4144 } else fra
.me
.REG
[7] = once_value_124
;
4145 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4146 if (UNTAG_Bool(REGB0
)) {
4148 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4151 if (UNTAG_Bool(REGB0
)) {
4152 /* ./syntax//icode_generation.nit:516 */
4153 if (!once_value_126
) {
4154 fra
.me
.REG
[7] = BOX_NativeString("TAG_Char(UNTAG_Char(@@@)+UNTAG_Char(@@@))");
4155 REGB0
= TAG_Int(41);
4156 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4157 once_value_126
= fra
.me
.REG
[7];
4158 register_static_object(&once_value_126
);
4159 } else fra
.me
.REG
[7] = once_value_126
;
4160 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4162 /* ./syntax//icode_generation.nit:517 */
4163 if (!once_value_127
) {
4164 if (!once_value_128
) {
4165 fra
.me
.REG
[7] = BOX_NativeString("-");
4167 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4168 once_value_128
= fra
.me
.REG
[7];
4169 register_static_object(&once_value_128
);
4170 } else fra
.me
.REG
[7] = once_value_128
;
4171 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4172 once_value_127
= fra
.me
.REG
[7];
4173 register_static_object(&once_value_127
);
4174 } else fra
.me
.REG
[7] = once_value_127
;
4175 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4176 if (UNTAG_Bool(REGB0
)) {
4178 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4181 if (UNTAG_Bool(REGB0
)) {
4182 /* ./syntax//icode_generation.nit:518 */
4183 if (!once_value_129
) {
4184 fra
.me
.REG
[7] = BOX_NativeString("TAG_Char(UNTAG_Char(@@@)-UNTAG_Char(@@@))");
4185 REGB0
= TAG_Int(41);
4186 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4187 once_value_129
= fra
.me
.REG
[7];
4188 register_static_object(&once_value_129
);
4189 } else fra
.me
.REG
[7] = once_value_129
;
4190 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4192 /* ./syntax//icode_generation.nit:519 */
4193 if (!once_value_130
) {
4194 if (!once_value_131
) {
4195 fra
.me
.REG
[7] = BOX_NativeString("*");
4197 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4198 once_value_131
= fra
.me
.REG
[7];
4199 register_static_object(&once_value_131
);
4200 } else fra
.me
.REG
[7] = once_value_131
;
4201 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4202 once_value_130
= fra
.me
.REG
[7];
4203 register_static_object(&once_value_130
);
4204 } else fra
.me
.REG
[7] = once_value_130
;
4205 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4206 if (UNTAG_Bool(REGB0
)) {
4208 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4211 if (UNTAG_Bool(REGB0
)) {
4212 /* ./syntax//icode_generation.nit:520 */
4213 if (!once_value_132
) {
4214 fra
.me
.REG
[7] = BOX_NativeString("TAG_Char(UNTAG_Char(@@@)*UNTAG_Char(@@@))");
4215 REGB0
= TAG_Int(41);
4216 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4217 once_value_132
= fra
.me
.REG
[7];
4218 register_static_object(&once_value_132
);
4219 } else fra
.me
.REG
[7] = once_value_132
;
4220 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4222 /* ./syntax//icode_generation.nit:521 */
4223 if (!once_value_133
) {
4224 if (!once_value_134
) {
4225 fra
.me
.REG
[7] = BOX_NativeString("/");
4227 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4228 once_value_134
= fra
.me
.REG
[7];
4229 register_static_object(&once_value_134
);
4230 } else fra
.me
.REG
[7] = once_value_134
;
4231 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4232 once_value_133
= fra
.me
.REG
[7];
4233 register_static_object(&once_value_133
);
4234 } else fra
.me
.REG
[7] = once_value_133
;
4235 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4236 if (UNTAG_Bool(REGB0
)) {
4238 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4241 if (UNTAG_Bool(REGB0
)) {
4242 /* ./syntax//icode_generation.nit:522 */
4243 if (!once_value_135
) {
4244 fra
.me
.REG
[7] = BOX_NativeString("TAG_Char(UNTAG_Char(@@@)/UNTAG_Char(@@@))");
4245 REGB0
= TAG_Int(41);
4246 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4247 once_value_135
= fra
.me
.REG
[7];
4248 register_static_object(&once_value_135
);
4249 } else fra
.me
.REG
[7] = once_value_135
;
4250 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4252 /* ./syntax//icode_generation.nit:523 */
4253 if (!once_value_136
) {
4254 if (!once_value_137
) {
4255 fra
.me
.REG
[7] = BOX_NativeString("%");
4257 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4258 once_value_137
= fra
.me
.REG
[7];
4259 register_static_object(&once_value_137
);
4260 } else fra
.me
.REG
[7] = once_value_137
;
4261 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4262 once_value_136
= fra
.me
.REG
[7];
4263 register_static_object(&once_value_136
);
4264 } else fra
.me
.REG
[7] = once_value_136
;
4265 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4266 if (UNTAG_Bool(REGB0
)) {
4268 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4271 if (UNTAG_Bool(REGB0
)) {
4272 /* ./syntax//icode_generation.nit:524 */
4273 if (!once_value_138
) {
4274 fra
.me
.REG
[7] = BOX_NativeString("TAG_Char(UNTAG_Char(@@@)%UNTAG_Char(@@@))");
4275 REGB0
= TAG_Int(41);
4276 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4277 once_value_138
= fra
.me
.REG
[7];
4278 register_static_object(&once_value_138
);
4279 } else fra
.me
.REG
[7] = once_value_138
;
4280 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4282 /* ./syntax//icode_generation.nit:525 */
4283 if (!once_value_139
) {
4284 if (!once_value_140
) {
4285 fra
.me
.REG
[7] = BOX_NativeString("<");
4287 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4288 once_value_140
= fra
.me
.REG
[7];
4289 register_static_object(&once_value_140
);
4290 } else fra
.me
.REG
[7] = once_value_140
;
4291 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4292 once_value_139
= fra
.me
.REG
[7];
4293 register_static_object(&once_value_139
);
4294 } else fra
.me
.REG
[7] = once_value_139
;
4295 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4296 if (UNTAG_Bool(REGB0
)) {
4298 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4301 if (UNTAG_Bool(REGB0
)) {
4302 /* ./syntax//icode_generation.nit:526 */
4303 if (!once_value_141
) {
4304 fra
.me
.REG
[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(@@@)<UNTAG_Char(@@@))");
4305 REGB0
= TAG_Int(41);
4306 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4307 once_value_141
= fra
.me
.REG
[7];
4308 register_static_object(&once_value_141
);
4309 } else fra
.me
.REG
[7] = once_value_141
;
4310 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4312 /* ./syntax//icode_generation.nit:527 */
4313 if (!once_value_142
) {
4314 if (!once_value_143
) {
4315 fra
.me
.REG
[7] = BOX_NativeString(">");
4317 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4318 once_value_143
= fra
.me
.REG
[7];
4319 register_static_object(&once_value_143
);
4320 } else fra
.me
.REG
[7] = once_value_143
;
4321 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4322 once_value_142
= fra
.me
.REG
[7];
4323 register_static_object(&once_value_142
);
4324 } else fra
.me
.REG
[7] = once_value_142
;
4325 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4326 if (UNTAG_Bool(REGB0
)) {
4328 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4331 if (UNTAG_Bool(REGB0
)) {
4332 /* ./syntax//icode_generation.nit:528 */
4333 if (!once_value_144
) {
4334 fra
.me
.REG
[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(@@@)>UNTAG_Char(@@@))");
4335 REGB0
= TAG_Int(41);
4336 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4337 once_value_144
= fra
.me
.REG
[7];
4338 register_static_object(&once_value_144
);
4339 } else fra
.me
.REG
[7] = once_value_144
;
4340 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4342 /* ./syntax//icode_generation.nit:529 */
4343 if (!once_value_145
) {
4344 if (!once_value_146
) {
4345 fra
.me
.REG
[7] = BOX_NativeString("<=");
4347 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4348 once_value_146
= fra
.me
.REG
[7];
4349 register_static_object(&once_value_146
);
4350 } else fra
.me
.REG
[7] = once_value_146
;
4351 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4352 once_value_145
= fra
.me
.REG
[7];
4353 register_static_object(&once_value_145
);
4354 } else fra
.me
.REG
[7] = once_value_145
;
4355 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4356 if (UNTAG_Bool(REGB0
)) {
4358 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4361 if (UNTAG_Bool(REGB0
)) {
4362 /* ./syntax//icode_generation.nit:530 */
4363 if (!once_value_147
) {
4364 fra
.me
.REG
[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(@@@)<=UNTAG_Char(@@@))");
4365 REGB0
= TAG_Int(42);
4366 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4367 once_value_147
= fra
.me
.REG
[7];
4368 register_static_object(&once_value_147
);
4369 } else fra
.me
.REG
[7] = once_value_147
;
4370 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4372 /* ./syntax//icode_generation.nit:531 */
4373 if (!once_value_148
) {
4374 if (!once_value_149
) {
4375 fra
.me
.REG
[7] = BOX_NativeString(">=");
4377 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4378 once_value_149
= fra
.me
.REG
[7];
4379 register_static_object(&once_value_149
);
4380 } else fra
.me
.REG
[7] = once_value_149
;
4381 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4382 once_value_148
= fra
.me
.REG
[7];
4383 register_static_object(&once_value_148
);
4384 } else fra
.me
.REG
[7] = once_value_148
;
4385 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4386 if (UNTAG_Bool(REGB0
)) {
4388 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4391 if (UNTAG_Bool(REGB0
)) {
4392 /* ./syntax//icode_generation.nit:532 */
4393 if (!once_value_150
) {
4394 fra
.me
.REG
[7] = BOX_NativeString("TAG_Bool(UNTAG_Char(@@@)>=UNTAG_Char(@@@))");
4395 REGB0
= TAG_Int(42);
4396 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4397 once_value_150
= fra
.me
.REG
[7];
4398 register_static_object(&once_value_150
);
4399 } else fra
.me
.REG
[7] = once_value_150
;
4400 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4402 /* ./syntax//icode_generation.nit:533 */
4403 if (!once_value_151
) {
4404 if (!once_value_152
) {
4405 fra
.me
.REG
[7] = BOX_NativeString("==");
4407 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4408 once_value_152
= fra
.me
.REG
[7];
4409 register_static_object(&once_value_152
);
4410 } else fra
.me
.REG
[7] = once_value_152
;
4411 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4412 once_value_151
= fra
.me
.REG
[7];
4413 register_static_object(&once_value_151
);
4414 } else fra
.me
.REG
[7] = once_value_151
;
4415 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4416 if (UNTAG_Bool(REGB0
)) {
4418 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4421 if (UNTAG_Bool(REGB0
)) {
4422 /* ./syntax//icode_generation.nit:534 */
4423 if (!once_value_153
) {
4424 fra
.me
.REG
[7] = BOX_NativeString("TAG_Bool((@@@)==(@@@))");
4425 REGB0
= TAG_Int(22);
4426 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4427 once_value_153
= fra
.me
.REG
[7];
4428 register_static_object(&once_value_153
);
4429 } else fra
.me
.REG
[7] = once_value_153
;
4430 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4432 /* ./syntax//icode_generation.nit:535 */
4433 if (!once_value_154
) {
4434 if (!once_value_155
) {
4435 fra
.me
.REG
[7] = BOX_NativeString("!=");
4437 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4438 once_value_155
= fra
.me
.REG
[7];
4439 register_static_object(&once_value_155
);
4440 } else fra
.me
.REG
[7] = once_value_155
;
4441 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4442 once_value_154
= fra
.me
.REG
[7];
4443 register_static_object(&once_value_154
);
4444 } else fra
.me
.REG
[7] = once_value_154
;
4445 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4446 if (UNTAG_Bool(REGB0
)) {
4448 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4451 if (UNTAG_Bool(REGB0
)) {
4452 /* ./syntax//icode_generation.nit:536 */
4453 if (!once_value_156
) {
4454 fra
.me
.REG
[7] = BOX_NativeString("TAG_Bool((@@@)!=(@@@))");
4455 REGB0
= TAG_Int(22);
4456 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4457 once_value_156
= fra
.me
.REG
[7];
4458 register_static_object(&once_value_156
);
4459 } else fra
.me
.REG
[7] = once_value_156
;
4460 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4480 /* ./syntax//icode_generation.nit:538 */
4481 if (!once_value_157
) {
4482 if (!once_value_158
) {
4483 fra
.me
.REG
[7] = BOX_NativeString("Bool");
4485 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4486 once_value_158
= fra
.me
.REG
[7];
4487 register_static_object(&once_value_158
);
4488 } else fra
.me
.REG
[7] = once_value_158
;
4489 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4490 once_value_157
= fra
.me
.REG
[7];
4491 register_static_object(&once_value_157
);
4492 } else fra
.me
.REG
[7] = once_value_157
;
4493 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[4],fra
.me
.REG
[7]));
4494 if (UNTAG_Bool(REGB0
)) {
4496 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
4499 if (UNTAG_Bool(REGB0
)) {
4500 /* ./syntax//icode_generation.nit:539 */
4501 if (!once_value_159
) {
4502 if (!once_value_160
) {
4503 fra
.me
.REG
[7] = BOX_NativeString("object_id");
4505 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4506 once_value_160
= fra
.me
.REG
[7];
4507 register_static_object(&once_value_160
);
4508 } else fra
.me
.REG
[7] = once_value_160
;
4509 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4510 once_value_159
= fra
.me
.REG
[7];
4511 register_static_object(&once_value_159
);
4512 } else fra
.me
.REG
[7] = once_value_159
;
4513 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4514 if (UNTAG_Bool(REGB0
)) {
4516 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4519 if (UNTAG_Bool(REGB0
)) {
4520 /* ./syntax//icode_generation.nit:540 */
4521 if (!once_value_161
) {
4522 fra
.me
.REG
[7] = BOX_NativeString("TAG_Int(UNTAG_Bool(@@@))");
4523 REGB0
= TAG_Int(24);
4524 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4525 once_value_161
= fra
.me
.REG
[7];
4526 register_static_object(&once_value_161
);
4527 } else fra
.me
.REG
[7] = once_value_161
;
4528 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4530 /* ./syntax//icode_generation.nit:541 */
4531 if (!once_value_162
) {
4532 if (!once_value_163
) {
4533 fra
.me
.REG
[7] = BOX_NativeString("unary -");
4535 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4536 once_value_163
= fra
.me
.REG
[7];
4537 register_static_object(&once_value_163
);
4538 } else fra
.me
.REG
[7] = once_value_163
;
4539 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4540 once_value_162
= fra
.me
.REG
[7];
4541 register_static_object(&once_value_162
);
4542 } else fra
.me
.REG
[7] = once_value_162
;
4543 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4544 if (UNTAG_Bool(REGB0
)) {
4546 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4549 if (UNTAG_Bool(REGB0
)) {
4550 /* ./syntax//icode_generation.nit:542 */
4551 if (!once_value_164
) {
4552 fra
.me
.REG
[7] = BOX_NativeString("TAG_Bool(-UNTAG_Bool(@@@))");
4553 REGB0
= TAG_Int(26);
4554 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4555 once_value_164
= fra
.me
.REG
[7];
4556 register_static_object(&once_value_164
);
4557 } else fra
.me
.REG
[7] = once_value_164
;
4558 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4560 /* ./syntax//icode_generation.nit:543 */
4561 if (!once_value_165
) {
4562 if (!once_value_166
) {
4563 fra
.me
.REG
[7] = BOX_NativeString("output");
4565 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4566 once_value_166
= fra
.me
.REG
[7];
4567 register_static_object(&once_value_166
);
4568 } else fra
.me
.REG
[7] = once_value_166
;
4569 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4570 once_value_165
= fra
.me
.REG
[7];
4571 register_static_object(&once_value_165
);
4572 } else fra
.me
.REG
[7] = once_value_165
;
4573 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4574 if (UNTAG_Bool(REGB0
)) {
4576 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4579 if (UNTAG_Bool(REGB0
)) {
4580 /* ./syntax//icode_generation.nit:544 */
4581 if (!once_value_167
) {
4582 fra
.me
.REG
[7] = BOX_NativeString("(void)printf(UNTAG_Bool(@@@)?\"true\\n\":\"false\\n\");");
4583 REGB0
= TAG_Int(49);
4584 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4585 once_value_167
= fra
.me
.REG
[7];
4586 register_static_object(&once_value_167
);
4587 } else fra
.me
.REG
[7] = once_value_167
;
4588 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4590 /* ./syntax//icode_generation.nit:545 */
4591 if (!once_value_168
) {
4592 if (!once_value_169
) {
4593 fra
.me
.REG
[7] = BOX_NativeString("ascii");
4595 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4596 once_value_169
= fra
.me
.REG
[7];
4597 register_static_object(&once_value_169
);
4598 } else fra
.me
.REG
[7] = once_value_169
;
4599 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4600 once_value_168
= fra
.me
.REG
[7];
4601 register_static_object(&once_value_168
);
4602 } else fra
.me
.REG
[7] = once_value_168
;
4603 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4604 if (UNTAG_Bool(REGB0
)) {
4606 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4609 if (UNTAG_Bool(REGB0
)) {
4610 /* ./syntax//icode_generation.nit:546 */
4611 if (!once_value_170
) {
4612 fra
.me
.REG
[7] = BOX_NativeString("TAG_Bool(UNTAG_Bool(@@@))");
4613 REGB0
= TAG_Int(25);
4614 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4615 once_value_170
= fra
.me
.REG
[7];
4616 register_static_object(&once_value_170
);
4617 } else fra
.me
.REG
[7] = once_value_170
;
4618 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4620 /* ./syntax//icode_generation.nit:547 */
4621 if (!once_value_171
) {
4622 if (!once_value_172
) {
4623 fra
.me
.REG
[7] = BOX_NativeString("to_i");
4625 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4626 once_value_172
= fra
.me
.REG
[7];
4627 register_static_object(&once_value_172
);
4628 } else fra
.me
.REG
[7] = once_value_172
;
4629 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4630 once_value_171
= fra
.me
.REG
[7];
4631 register_static_object(&once_value_171
);
4632 } else fra
.me
.REG
[7] = once_value_171
;
4633 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4634 if (UNTAG_Bool(REGB0
)) {
4636 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4639 if (UNTAG_Bool(REGB0
)) {
4640 /* ./syntax//icode_generation.nit:548 */
4641 if (!once_value_173
) {
4642 fra
.me
.REG
[7] = BOX_NativeString("TAG_Int(UNTAG_Bool(@@@))");
4643 REGB0
= TAG_Int(24);
4644 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4645 once_value_173
= fra
.me
.REG
[7];
4646 register_static_object(&once_value_173
);
4647 } else fra
.me
.REG
[7] = once_value_173
;
4648 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4650 /* ./syntax//icode_generation.nit:549 */
4651 if (!once_value_174
) {
4652 if (!once_value_175
) {
4653 fra
.me
.REG
[7] = BOX_NativeString("==");
4655 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4656 once_value_175
= fra
.me
.REG
[7];
4657 register_static_object(&once_value_175
);
4658 } else fra
.me
.REG
[7] = once_value_175
;
4659 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4660 once_value_174
= fra
.me
.REG
[7];
4661 register_static_object(&once_value_174
);
4662 } else fra
.me
.REG
[7] = once_value_174
;
4663 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4664 if (UNTAG_Bool(REGB0
)) {
4666 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4669 if (UNTAG_Bool(REGB0
)) {
4670 /* ./syntax//icode_generation.nit:550 */
4671 if (!once_value_176
) {
4672 fra
.me
.REG
[7] = BOX_NativeString("TAG_Bool((@@@)==(@@@))");
4673 REGB0
= TAG_Int(22);
4674 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4675 once_value_176
= fra
.me
.REG
[7];
4676 register_static_object(&once_value_176
);
4677 } else fra
.me
.REG
[7] = once_value_176
;
4678 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4680 /* ./syntax//icode_generation.nit:551 */
4681 if (!once_value_177
) {
4682 if (!once_value_178
) {
4683 fra
.me
.REG
[7] = BOX_NativeString("!=");
4685 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4686 once_value_178
= fra
.me
.REG
[7];
4687 register_static_object(&once_value_178
);
4688 } else fra
.me
.REG
[7] = once_value_178
;
4689 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4690 once_value_177
= fra
.me
.REG
[7];
4691 register_static_object(&once_value_177
);
4692 } else fra
.me
.REG
[7] = once_value_177
;
4693 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4694 if (UNTAG_Bool(REGB0
)) {
4696 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4699 if (UNTAG_Bool(REGB0
)) {
4700 /* ./syntax//icode_generation.nit:552 */
4701 if (!once_value_179
) {
4702 fra
.me
.REG
[7] = BOX_NativeString("TAG_Bool((@@@)!=(@@@))");
4703 REGB0
= TAG_Int(22);
4704 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4705 once_value_179
= fra
.me
.REG
[7];
4706 register_static_object(&once_value_179
);
4707 } else fra
.me
.REG
[7] = once_value_179
;
4708 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4717 /* ./syntax//icode_generation.nit:554 */
4718 if (!once_value_180
) {
4719 if (!once_value_181
) {
4720 fra
.me
.REG
[7] = BOX_NativeString("NativeArray");
4721 REGB0
= TAG_Int(11);
4722 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4723 once_value_181
= fra
.me
.REG
[7];
4724 register_static_object(&once_value_181
);
4725 } else fra
.me
.REG
[7] = once_value_181
;
4726 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4727 once_value_180
= fra
.me
.REG
[7];
4728 register_static_object(&once_value_180
);
4729 } else fra
.me
.REG
[7] = once_value_180
;
4730 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[4],fra
.me
.REG
[7]));
4731 if (UNTAG_Bool(REGB0
)) {
4733 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
4736 if (UNTAG_Bool(REGB0
)) {
4737 /* ./syntax//icode_generation.nit:555 */
4738 if (!once_value_182
) {
4739 if (!once_value_183
) {
4740 fra
.me
.REG
[7] = BOX_NativeString("object_id");
4742 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4743 once_value_183
= fra
.me
.REG
[7];
4744 register_static_object(&once_value_183
);
4745 } else fra
.me
.REG
[7] = once_value_183
;
4746 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4747 once_value_182
= fra
.me
.REG
[7];
4748 register_static_object(&once_value_182
);
4749 } else fra
.me
.REG
[7] = once_value_182
;
4750 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4751 if (UNTAG_Bool(REGB0
)) {
4753 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4756 if (UNTAG_Bool(REGB0
)) {
4757 /* ./syntax//icode_generation.nit:556 */
4758 if (!once_value_184
) {
4759 fra
.me
.REG
[7] = BOX_NativeString("TAG_Int(((Nit_NativeArray)@@@)->object_id)");
4760 REGB0
= TAG_Int(42);
4761 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4762 once_value_184
= fra
.me
.REG
[7];
4763 register_static_object(&once_value_184
);
4764 } else fra
.me
.REG
[7] = once_value_184
;
4765 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4767 /* ./syntax//icode_generation.nit:557 */
4768 if (!once_value_185
) {
4769 if (!once_value_186
) {
4770 fra
.me
.REG
[7] = BOX_NativeString("[]");
4772 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4773 once_value_186
= fra
.me
.REG
[7];
4774 register_static_object(&once_value_186
);
4775 } else fra
.me
.REG
[7] = once_value_186
;
4776 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4777 once_value_185
= fra
.me
.REG
[7];
4778 register_static_object(&once_value_185
);
4779 } else fra
.me
.REG
[7] = once_value_185
;
4780 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4781 if (UNTAG_Bool(REGB0
)) {
4783 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4786 if (UNTAG_Bool(REGB0
)) {
4787 /* ./syntax//icode_generation.nit:558 */
4788 if (!once_value_187
) {
4789 fra
.me
.REG
[7] = BOX_NativeString("((Nit_NativeArray)@@@)->val[UNTAG_Int(@@@)]");
4790 REGB0
= TAG_Int(43);
4791 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4792 once_value_187
= fra
.me
.REG
[7];
4793 register_static_object(&once_value_187
);
4794 } else fra
.me
.REG
[7] = once_value_187
;
4795 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4797 /* ./syntax//icode_generation.nit:559 */
4798 if (!once_value_188
) {
4799 if (!once_value_189
) {
4800 fra
.me
.REG
[7] = BOX_NativeString("[]=");
4802 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4803 once_value_189
= fra
.me
.REG
[7];
4804 register_static_object(&once_value_189
);
4805 } else fra
.me
.REG
[7] = once_value_189
;
4806 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4807 once_value_188
= fra
.me
.REG
[7];
4808 register_static_object(&once_value_188
);
4809 } else fra
.me
.REG
[7] = once_value_188
;
4810 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4811 if (UNTAG_Bool(REGB0
)) {
4813 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4816 if (UNTAG_Bool(REGB0
)) {
4817 /* ./syntax//icode_generation.nit:560 */
4818 if (!once_value_190
) {
4819 fra
.me
.REG
[7] = BOX_NativeString("((Nit_NativeArray)@@@)->val[UNTAG_Int(@@@)]=@@@");
4820 REGB0
= TAG_Int(47);
4821 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4822 once_value_190
= fra
.me
.REG
[7];
4823 register_static_object(&once_value_190
);
4824 } else fra
.me
.REG
[7] = once_value_190
;
4825 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4827 /* ./syntax//icode_generation.nit:561 */
4828 if (!once_value_191
) {
4829 if (!once_value_192
) {
4830 fra
.me
.REG
[7] = BOX_NativeString("copy_to");
4832 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4833 once_value_192
= fra
.me
.REG
[7];
4834 register_static_object(&once_value_192
);
4835 } else fra
.me
.REG
[7] = once_value_192
;
4836 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4837 once_value_191
= fra
.me
.REG
[7];
4838 register_static_object(&once_value_191
);
4839 } else fra
.me
.REG
[7] = once_value_191
;
4840 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4841 if (UNTAG_Bool(REGB0
)) {
4843 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4846 if (UNTAG_Bool(REGB0
)) {
4848 fra
.me
.REG
[7] = fra
.me
.REG
[3];
4850 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
4851 /* ./../lib/standard//collection//array.nit:233 */
4852 if (UNTAG_Bool(REGB1
)) {
4853 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
4854 if (UNTAG_Bool(REGB1
)) {
4856 fprintf(stderr
, "Uninitialized attribute %s", "_length");
4857 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
4860 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7]);
4861 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
4862 /* ./../lib/standard//collection//array.nit:233 */
4864 REGB2
= TAG_Bool(false);
4867 if (UNTAG_Bool(REGB1
)) {
4869 fprintf(stderr
, "Assert %s failed", "'index'");
4870 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
4873 fra
.me
.REG
[7] = ATTR_array___Array____items(fra
.me
.REG
[7]);
4874 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
4875 /* ./../lib/standard//collection//array.nit:234 */
4876 if (UNTAG_Bool(REGB1
)) {
4877 fprintf(stderr
, "Reciever is null");
4878 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
4881 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB0
)];
4882 /* ./../lib/standard//collection//array.nit:234 */
4887 fra
.me
.REG
[8] = fra
.me
.REG
[3];
4889 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>=UNTAG_Int(REGB2
));
4890 /* ./../lib/standard//collection//array.nit:233 */
4891 if (UNTAG_Bool(REGB2
)) {
4892 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[8])!=NIT_NULL
);
4893 if (UNTAG_Bool(REGB2
)) {
4895 fprintf(stderr
, "Uninitialized attribute %s", "_length");
4896 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
4899 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[8]);
4900 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
4901 /* ./../lib/standard//collection//array.nit:233 */
4903 REGB3
= TAG_Bool(false);
4906 if (UNTAG_Bool(REGB2
)) {
4908 fprintf(stderr
, "Assert %s failed", "'index'");
4909 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
4912 fra
.me
.REG
[8] = ATTR_array___Array____items(fra
.me
.REG
[8]);
4913 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
4914 /* ./../lib/standard//collection//array.nit:234 */
4915 if (UNTAG_Bool(REGB2
)) {
4916 fprintf(stderr
, "Reciever is null");
4917 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
4920 fra
.me
.REG
[8] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB1
)];
4921 /* ./../lib/standard//collection//array.nit:234 */
4924 /* ./syntax//icode_generation.nit:563 */
4925 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
, fra
.me
.REG
[8]);
4927 /* ./syntax//icode_generation.nit:564 */
4928 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
, fra
.me
.REG
[7]);
4929 /* ./syntax//icode_generation.nit:565 */
4930 if (!once_value_195
) {
4931 fra
.me
.REG
[7] = BOX_NativeString("(void)memcpy(((Nit_NativeArray )@@@)->val, ((Nit_NativeArray)@@@)->val, UNTAG_Int(@@@)*sizeof(val_t))");
4932 REGB0
= TAG_Int(101);
4933 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4934 once_value_195
= fra
.me
.REG
[7];
4935 register_static_object(&once_value_195
);
4936 } else fra
.me
.REG
[7] = once_value_195
;
4937 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4943 /* ./syntax//icode_generation.nit:567 */
4944 if (!once_value_196
) {
4945 if (!once_value_197
) {
4946 fra
.me
.REG
[7] = BOX_NativeString("NativeString");
4947 REGB0
= TAG_Int(12);
4948 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4949 once_value_197
= fra
.me
.REG
[7];
4950 register_static_object(&once_value_197
);
4951 } else fra
.me
.REG
[7] = once_value_197
;
4952 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4953 once_value_196
= fra
.me
.REG
[7];
4954 register_static_object(&once_value_196
);
4955 } else fra
.me
.REG
[7] = once_value_196
;
4956 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[4],fra
.me
.REG
[7]));
4957 if (UNTAG_Bool(REGB0
)) {
4959 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
4962 if (UNTAG_Bool(REGB0
)) {
4963 /* ./syntax//icode_generation.nit:568 */
4964 if (!once_value_198
) {
4965 if (!once_value_199
) {
4966 fra
.me
.REG
[7] = BOX_NativeString("object_id");
4968 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4969 once_value_199
= fra
.me
.REG
[7];
4970 register_static_object(&once_value_199
);
4971 } else fra
.me
.REG
[7] = once_value_199
;
4972 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4973 once_value_198
= fra
.me
.REG
[7];
4974 register_static_object(&once_value_198
);
4975 } else fra
.me
.REG
[7] = once_value_198
;
4976 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
4977 if (UNTAG_Bool(REGB0
)) {
4979 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
4982 if (UNTAG_Bool(REGB0
)) {
4983 /* ./syntax//icode_generation.nit:569 */
4984 if (!once_value_200
) {
4985 fra
.me
.REG
[7] = BOX_NativeString("TAG_Int(UNBOX_NativeString(@@@))");
4986 REGB0
= TAG_Int(32);
4987 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4988 once_value_200
= fra
.me
.REG
[7];
4989 register_static_object(&once_value_200
);
4990 } else fra
.me
.REG
[7] = once_value_200
;
4991 fra
.me
.REG
[6] = fra
.me
.REG
[7];
4993 /* ./syntax//icode_generation.nit:570 */
4994 if (!once_value_201
) {
4995 if (!once_value_202
) {
4996 fra
.me
.REG
[7] = BOX_NativeString("atoi");
4998 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
4999 once_value_202
= fra
.me
.REG
[7];
5000 register_static_object(&once_value_202
);
5001 } else fra
.me
.REG
[7] = once_value_202
;
5002 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5003 once_value_201
= fra
.me
.REG
[7];
5004 register_static_object(&once_value_201
);
5005 } else fra
.me
.REG
[7] = once_value_201
;
5006 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
5007 if (UNTAG_Bool(REGB0
)) {
5009 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
5012 if (UNTAG_Bool(REGB0
)) {
5013 /* ./syntax//icode_generation.nit:571 */
5014 if (!once_value_203
) {
5015 fra
.me
.REG
[7] = BOX_NativeString("TAG_Int(atoi(UNBOX_NativeString(@@@)))");
5016 REGB0
= TAG_Int(38);
5017 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
5018 once_value_203
= fra
.me
.REG
[7];
5019 register_static_object(&once_value_203
);
5020 } else fra
.me
.REG
[7] = once_value_203
;
5021 fra
.me
.REG
[6] = fra
.me
.REG
[7];
5023 /* ./syntax//icode_generation.nit:572 */
5024 if (!once_value_204
) {
5025 if (!once_value_205
) {
5026 fra
.me
.REG
[7] = BOX_NativeString("[]");
5028 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
5029 once_value_205
= fra
.me
.REG
[7];
5030 register_static_object(&once_value_205
);
5031 } else fra
.me
.REG
[7] = once_value_205
;
5032 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5033 once_value_204
= fra
.me
.REG
[7];
5034 register_static_object(&once_value_204
);
5035 } else fra
.me
.REG
[7] = once_value_204
;
5036 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
5037 if (UNTAG_Bool(REGB0
)) {
5039 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
5042 if (UNTAG_Bool(REGB0
)) {
5043 /* ./syntax//icode_generation.nit:573 */
5044 if (!once_value_206
) {
5045 fra
.me
.REG
[7] = BOX_NativeString("TAG_Char(UNBOX_NativeString(@@@)[UNTAG_Int(@@@)])");
5046 REGB0
= TAG_Int(49);
5047 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
5048 once_value_206
= fra
.me
.REG
[7];
5049 register_static_object(&once_value_206
);
5050 } else fra
.me
.REG
[7] = once_value_206
;
5051 fra
.me
.REG
[6] = fra
.me
.REG
[7];
5053 /* ./syntax//icode_generation.nit:574 */
5054 if (!once_value_207
) {
5055 if (!once_value_208
) {
5056 fra
.me
.REG
[7] = BOX_NativeString("[]=");
5058 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
5059 once_value_208
= fra
.me
.REG
[7];
5060 register_static_object(&once_value_208
);
5061 } else fra
.me
.REG
[7] = once_value_208
;
5062 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5063 once_value_207
= fra
.me
.REG
[7];
5064 register_static_object(&once_value_207
);
5065 } else fra
.me
.REG
[7] = once_value_207
;
5066 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
5067 if (UNTAG_Bool(REGB0
)) {
5069 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
5072 if (UNTAG_Bool(REGB0
)) {
5073 /* ./syntax//icode_generation.nit:575 */
5074 if (!once_value_209
) {
5075 fra
.me
.REG
[7] = BOX_NativeString("UNBOX_NativeString(@@@)[UNTAG_Int(@@@)]=UNTAG_Char(@@@);");
5076 REGB0
= TAG_Int(56);
5077 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
5078 once_value_209
= fra
.me
.REG
[7];
5079 register_static_object(&once_value_209
);
5080 } else fra
.me
.REG
[7] = once_value_209
;
5081 fra
.me
.REG
[6] = fra
.me
.REG
[7];
5083 /* ./syntax//icode_generation.nit:576 */
5084 if (!once_value_210
) {
5085 if (!once_value_211
) {
5086 fra
.me
.REG
[7] = BOX_NativeString("copy_to");
5088 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
5089 once_value_211
= fra
.me
.REG
[7];
5090 register_static_object(&once_value_211
);
5091 } else fra
.me
.REG
[7] = once_value_211
;
5092 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5093 once_value_210
= fra
.me
.REG
[7];
5094 register_static_object(&once_value_210
);
5095 } else fra
.me
.REG
[7] = once_value_210
;
5096 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
5097 if (UNTAG_Bool(REGB0
)) {
5099 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
5102 if (UNTAG_Bool(REGB0
)) {
5104 fra
.me
.REG
[7] = fra
.me
.REG
[3];
5106 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
5107 /* ./../lib/standard//collection//array.nit:233 */
5108 if (UNTAG_Bool(REGB1
)) {
5109 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
5110 if (UNTAG_Bool(REGB1
)) {
5112 fprintf(stderr
, "Uninitialized attribute %s", "_length");
5113 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
5116 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7]);
5117 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
5118 /* ./../lib/standard//collection//array.nit:233 */
5120 REGB2
= TAG_Bool(false);
5123 if (UNTAG_Bool(REGB1
)) {
5125 fprintf(stderr
, "Assert %s failed", "'index'");
5126 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
5129 fra
.me
.REG
[7] = ATTR_array___Array____items(fra
.me
.REG
[7]);
5130 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
5131 /* ./../lib/standard//collection//array.nit:234 */
5132 if (UNTAG_Bool(REGB1
)) {
5133 fprintf(stderr
, "Reciever is null");
5134 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
5137 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB0
)];
5138 /* ./../lib/standard//collection//array.nit:234 */
5143 fra
.me
.REG
[4] = fra
.me
.REG
[3];
5145 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>=UNTAG_Int(REGB2
));
5146 /* ./../lib/standard//collection//array.nit:233 */
5147 if (UNTAG_Bool(REGB2
)) {
5148 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
5149 if (UNTAG_Bool(REGB2
)) {
5151 fprintf(stderr
, "Uninitialized attribute %s", "_length");
5152 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
5155 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
5156 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
5157 /* ./../lib/standard//collection//array.nit:233 */
5159 REGB3
= TAG_Bool(false);
5162 if (UNTAG_Bool(REGB2
)) {
5164 fprintf(stderr
, "Assert %s failed", "'index'");
5165 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
5168 fra
.me
.REG
[4] = ATTR_array___Array____items(fra
.me
.REG
[4]);
5169 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5170 /* ./../lib/standard//collection//array.nit:234 */
5171 if (UNTAG_Bool(REGB2
)) {
5172 fprintf(stderr
, "Reciever is null");
5173 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
5176 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB1
)];
5177 /* ./../lib/standard//collection//array.nit:234 */
5180 /* ./syntax//icode_generation.nit:578 */
5181 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
, fra
.me
.REG
[4]);
5184 fra
.me
.REG
[4] = fra
.me
.REG
[3];
5186 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>=UNTAG_Int(REGB2
));
5187 /* ./../lib/standard//collection//array.nit:233 */
5188 if (UNTAG_Bool(REGB2
)) {
5189 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
5190 if (UNTAG_Bool(REGB2
)) {
5192 fprintf(stderr
, "Uninitialized attribute %s", "_length");
5193 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
5196 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
5197 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
5198 /* ./../lib/standard//collection//array.nit:233 */
5200 REGB3
= TAG_Bool(false);
5203 if (UNTAG_Bool(REGB2
)) {
5205 fprintf(stderr
, "Assert %s failed", "'index'");
5206 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
5209 fra
.me
.REG
[4] = ATTR_array___Array____items(fra
.me
.REG
[4]);
5210 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5211 /* ./../lib/standard//collection//array.nit:234 */
5212 if (UNTAG_Bool(REGB2
)) {
5213 fprintf(stderr
, "Reciever is null");
5214 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
5217 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB1
)];
5218 /* ./../lib/standard//collection//array.nit:234 */
5221 /* ./syntax//icode_generation.nit:579 */
5222 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
, fra
.me
.REG
[4]);
5225 fra
.me
.REG
[4] = fra
.me
.REG
[3];
5227 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>=UNTAG_Int(REGB2
));
5228 /* ./../lib/standard//collection//array.nit:233 */
5229 if (UNTAG_Bool(REGB2
)) {
5230 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
5231 if (UNTAG_Bool(REGB2
)) {
5233 fprintf(stderr
, "Uninitialized attribute %s", "_length");
5234 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
5237 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
5238 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
5239 /* ./../lib/standard//collection//array.nit:233 */
5241 REGB3
= TAG_Bool(false);
5244 if (UNTAG_Bool(REGB2
)) {
5246 fprintf(stderr
, "Assert %s failed", "'index'");
5247 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
5250 fra
.me
.REG
[4] = ATTR_array___Array____items(fra
.me
.REG
[4]);
5251 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5252 /* ./../lib/standard//collection//array.nit:234 */
5253 if (UNTAG_Bool(REGB2
)) {
5254 fprintf(stderr
, "Reciever is null");
5255 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
5258 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB1
)];
5259 /* ./../lib/standard//collection//array.nit:234 */
5262 /* ./syntax//icode_generation.nit:580 */
5263 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
, fra
.me
.REG
[4]);
5265 /* ./syntax//icode_generation.nit:581 */
5266 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
, fra
.me
.REG
[7]);
5267 /* ./syntax//icode_generation.nit:582 */
5268 if (!once_value_216
) {
5269 fra
.me
.REG
[7] = BOX_NativeString("(void)memcpy(UNBOX_NativeString(@@@)+UNTAG_Int(@@@), UNBOX_NativeString(@@@)+UNTAG_Int(@@@), UNTAG_Int(@@@));");
5270 REGB0
= TAG_Int(109);
5271 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
5272 once_value_216
= fra
.me
.REG
[7];
5273 register_static_object(&once_value_216
);
5274 } else fra
.me
.REG
[7] = once_value_216
;
5275 fra
.me
.REG
[6] = fra
.me
.REG
[7];
5282 /* ./syntax//icode_generation.nit:584 */
5283 if (!once_value_217
) {
5284 if (!once_value_218
) {
5285 fra
.me
.REG
[7] = BOX_NativeString("object_id");
5287 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
5288 once_value_218
= fra
.me
.REG
[7];
5289 register_static_object(&once_value_218
);
5290 } else fra
.me
.REG
[7] = once_value_218
;
5291 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5292 once_value_217
= fra
.me
.REG
[7];
5293 register_static_object(&once_value_217
);
5294 } else fra
.me
.REG
[7] = once_value_217
;
5295 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
5296 if (UNTAG_Bool(REGB0
)) {
5298 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
5301 if (UNTAG_Bool(REGB0
)) {
5302 /* ./syntax//icode_generation.nit:585 */
5303 if (!once_value_219
) {
5304 fra
.me
.REG
[7] = BOX_NativeString("TAG_Int((bigint)((obj_t)@@@)[1].object_id)");
5305 REGB0
= TAG_Int(42);
5306 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
5307 once_value_219
= fra
.me
.REG
[7];
5308 register_static_object(&once_value_219
);
5309 } else fra
.me
.REG
[7] = once_value_219
;
5310 fra
.me
.REG
[6] = fra
.me
.REG
[7];
5312 /* ./syntax//icode_generation.nit:586 */
5313 if (!once_value_220
) {
5314 if (!once_value_221
) {
5315 fra
.me
.REG
[7] = BOX_NativeString("sys");
5317 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
5318 once_value_221
= fra
.me
.REG
[7];
5319 register_static_object(&once_value_221
);
5320 } else fra
.me
.REG
[7] = once_value_221
;
5321 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5322 once_value_220
= fra
.me
.REG
[7];
5323 register_static_object(&once_value_220
);
5324 } else fra
.me
.REG
[7] = once_value_220
;
5325 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
5326 if (UNTAG_Bool(REGB0
)) {
5328 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
5331 if (UNTAG_Bool(REGB0
)) {
5332 /* ./syntax//icode_generation.nit:587 */
5333 if (!once_value_222
) {
5334 fra
.me
.REG
[7] = BOX_NativeString("(G_sys)");
5336 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
5337 once_value_222
= fra
.me
.REG
[7];
5338 register_static_object(&once_value_222
);
5339 } else fra
.me
.REG
[7] = once_value_222
;
5340 fra
.me
.REG
[6] = fra
.me
.REG
[7];
5342 /* ./syntax//icode_generation.nit:588 */
5343 if (!once_value_223
) {
5344 if (!once_value_224
) {
5345 fra
.me
.REG
[7] = BOX_NativeString("is_same_type");
5346 REGB0
= TAG_Int(12);
5347 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
5348 once_value_224
= fra
.me
.REG
[7];
5349 register_static_object(&once_value_224
);
5350 } else fra
.me
.REG
[7] = once_value_224
;
5351 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5352 once_value_223
= fra
.me
.REG
[7];
5353 register_static_object(&once_value_223
);
5354 } else fra
.me
.REG
[7] = once_value_223
;
5355 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
5356 if (UNTAG_Bool(REGB0
)) {
5358 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
5361 if (UNTAG_Bool(REGB0
)) {
5362 /* ./syntax//icode_generation.nit:589 */
5363 if (!once_value_225
) {
5364 fra
.me
.REG
[7] = BOX_NativeString("TAG_Bool((VAL2VFT(@@@)==VAL2VFT(@@@)))");
5365 REGB0
= TAG_Int(38);
5366 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
5367 once_value_225
= fra
.me
.REG
[7];
5368 register_static_object(&once_value_225
);
5369 } else fra
.me
.REG
[7] = once_value_225
;
5370 fra
.me
.REG
[6] = fra
.me
.REG
[7];
5372 /* ./syntax//icode_generation.nit:590 */
5373 if (!once_value_226
) {
5374 if (!once_value_227
) {
5375 fra
.me
.REG
[7] = BOX_NativeString("exit");
5377 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
5378 once_value_227
= fra
.me
.REG
[7];
5379 register_static_object(&once_value_227
);
5380 } else fra
.me
.REG
[7] = once_value_227
;
5381 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5382 once_value_226
= fra
.me
.REG
[7];
5383 register_static_object(&once_value_226
);
5384 } else fra
.me
.REG
[7] = once_value_226
;
5385 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
5386 if (UNTAG_Bool(REGB0
)) {
5388 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
5391 if (UNTAG_Bool(REGB0
)) {
5394 fra
.me
.REG
[7] = fra
.me
.REG
[3];
5396 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>=UNTAG_Int(REGB2
));
5397 /* ./../lib/standard//collection//array.nit:233 */
5398 if (UNTAG_Bool(REGB2
)) {
5399 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
5400 if (UNTAG_Bool(REGB2
)) {
5402 fprintf(stderr
, "Uninitialized attribute %s", "_length");
5403 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
5406 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7]);
5407 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
5408 /* ./../lib/standard//collection//array.nit:233 */
5410 REGB3
= TAG_Bool(false);
5413 if (UNTAG_Bool(REGB2
)) {
5415 fprintf(stderr
, "Assert %s failed", "'index'");
5416 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
5419 fra
.me
.REG
[7] = ATTR_array___Array____items(fra
.me
.REG
[7]);
5420 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
5421 /* ./../lib/standard//collection//array.nit:234 */
5422 if (UNTAG_Bool(REGB2
)) {
5423 fprintf(stderr
, "Reciever is null");
5424 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
5427 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB1
)];
5428 /* ./../lib/standard//collection//array.nit:234 */
5431 /* ./syntax//icode_generation.nit:591 */
5432 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
, fra
.me
.REG
[7]);
5433 /* ./syntax//icode_generation.nit:592 */
5434 if (!once_value_229
) {
5435 fra
.me
.REG
[7] = BOX_NativeString("exit(UNTAG_Int(@@@));");
5436 REGB0
= TAG_Int(21);
5437 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
5438 once_value_229
= fra
.me
.REG
[7];
5439 register_static_object(&once_value_229
);
5440 } else fra
.me
.REG
[7] = once_value_229
;
5441 fra
.me
.REG
[6] = fra
.me
.REG
[7];
5443 /* ./syntax//icode_generation.nit:593 */
5444 if (!once_value_230
) {
5445 if (!once_value_231
) {
5446 fra
.me
.REG
[7] = BOX_NativeString("calloc_array");
5447 REGB0
= TAG_Int(12);
5448 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
5449 once_value_231
= fra
.me
.REG
[7];
5450 register_static_object(&once_value_231
);
5451 } else fra
.me
.REG
[7] = once_value_231
;
5452 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5453 once_value_230
= fra
.me
.REG
[7];
5454 register_static_object(&once_value_230
);
5455 } else fra
.me
.REG
[7] = once_value_230
;
5456 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
5457 if (UNTAG_Bool(REGB0
)) {
5459 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
5462 if (UNTAG_Bool(REGB0
)) {
5465 fra
.me
.REG
[7] = fra
.me
.REG
[3];
5467 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>=UNTAG_Int(REGB2
));
5468 /* ./../lib/standard//collection//array.nit:233 */
5469 if (UNTAG_Bool(REGB2
)) {
5470 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
5471 if (UNTAG_Bool(REGB2
)) {
5473 fprintf(stderr
, "Uninitialized attribute %s", "_length");
5474 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
5477 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7]);
5478 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
5479 /* ./../lib/standard//collection//array.nit:233 */
5481 REGB3
= TAG_Bool(false);
5484 if (UNTAG_Bool(REGB2
)) {
5486 fprintf(stderr
, "Assert %s failed", "'index'");
5487 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
5490 fra
.me
.REG
[7] = ATTR_array___Array____items(fra
.me
.REG
[7]);
5491 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
5492 /* ./../lib/standard//collection//array.nit:234 */
5493 if (UNTAG_Bool(REGB2
)) {
5494 fprintf(stderr
, "Reciever is null");
5495 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
5498 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB1
)];
5499 /* ./../lib/standard//collection//array.nit:234 */
5502 /* ./syntax//icode_generation.nit:594 */
5503 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
, fra
.me
.REG
[7]);
5504 /* ./syntax//icode_generation.nit:595 */
5505 if (!once_value_233
) {
5506 fra
.me
.REG
[7] = BOX_NativeString("NEW_NativeArray(UNTAG_Int(@@@), sizeof(val_t))");
5507 REGB0
= TAG_Int(46);
5508 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
5509 once_value_233
= fra
.me
.REG
[7];
5510 register_static_object(&once_value_233
);
5511 } else fra
.me
.REG
[7] = once_value_233
;
5512 fra
.me
.REG
[6] = fra
.me
.REG
[7];
5514 /* ./syntax//icode_generation.nit:596 */
5515 if (!once_value_234
) {
5516 if (!once_value_235
) {
5517 fra
.me
.REG
[7] = BOX_NativeString("calloc_string");
5518 REGB0
= TAG_Int(13);
5519 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
5520 once_value_235
= fra
.me
.REG
[7];
5521 register_static_object(&once_value_235
);
5522 } else fra
.me
.REG
[7] = once_value_235
;
5523 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
5524 once_value_234
= fra
.me
.REG
[7];
5525 register_static_object(&once_value_234
);
5526 } else fra
.me
.REG
[7] = once_value_234
;
5527 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[7]));
5528 if (UNTAG_Bool(REGB0
)) {
5530 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
5533 if (UNTAG_Bool(REGB0
)) {
5536 fra
.me
.REG
[7] = fra
.me
.REG
[3];
5538 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>=UNTAG_Int(REGB2
));
5539 /* ./../lib/standard//collection//array.nit:233 */
5540 if (UNTAG_Bool(REGB2
)) {
5541 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
5542 if (UNTAG_Bool(REGB2
)) {
5544 fprintf(stderr
, "Uninitialized attribute %s", "_length");
5545 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
5548 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7]);
5549 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
5550 /* ./../lib/standard//collection//array.nit:233 */
5552 REGB3
= TAG_Bool(false);
5555 if (UNTAG_Bool(REGB2
)) {
5557 fprintf(stderr
, "Assert %s failed", "'index'");
5558 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
5561 fra
.me
.REG
[7] = ATTR_array___Array____items(fra
.me
.REG
[7]);
5562 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
5563 /* ./../lib/standard//collection//array.nit:234 */
5564 if (UNTAG_Bool(REGB2
)) {
5565 fprintf(stderr
, "Reciever is null");
5566 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
5569 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB1
)];
5570 /* ./../lib/standard//collection//array.nit:234 */
5573 /* ./syntax//icode_generation.nit:597 */
5574 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
, fra
.me
.REG
[7]);
5575 /* ./syntax//icode_generation.nit:598 */
5576 if (!once_value_237
) {
5577 fra
.me
.REG
[7] = BOX_NativeString("BOX_NativeString((char*)raw_alloc((UNTAG_Int(@@@) * sizeof(char))))");
5578 REGB0
= TAG_Int(67);
5579 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
5580 once_value_237
= fra
.me
.REG
[7];
5581 register_static_object(&once_value_237
);
5582 } else fra
.me
.REG
[7] = once_value_237
;
5583 fra
.me
.REG
[6] = fra
.me
.REG
[7];
5596 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
5597 /* ./syntax//icode_generation.nit:600 */
5598 if (UNTAG_Bool(REGB0
)) {
5600 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
5601 if (UNTAG_Bool(REGB1
)) {
5602 REGB1
= TAG_Bool(false);
5605 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
5609 if (UNTAG_Bool(REGB0
)) {
5610 fra
.me
.REG
[7] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5612 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB0
);
5613 /* ./syntax//icode_generation.nit:601 */
5614 if (!once_value_238
) {
5615 fra
.me
.REG
[4] = BOX_NativeString("Fatal error: unknown intern method ");
5616 REGB0
= TAG_Int(35);
5617 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
5618 once_value_238
= fra
.me
.REG
[4];
5619 register_static_object(&once_value_238
);
5620 } else fra
.me
.REG
[4] = once_value_238
;
5621 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5622 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5623 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5624 if (!once_value_239
) {
5625 fra
.me
.REG
[4] = BOX_NativeString(".");
5627 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
5628 once_value_239
= fra
.me
.REG
[4];
5629 register_static_object(&once_value_239
);
5630 } else fra
.me
.REG
[4] = once_value_239
;
5631 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5632 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5633 CALL_syntax_base___AbsSyntaxVisitor___error(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[0], fra
.me
.REG
[5]);
5634 /* ./syntax//icode_generation.nit:602 */
5635 if (!once_value_240
) {
5636 fra
.me
.REG
[5] = BOX_NativeString("NIT_NULL");
5638 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
5639 once_value_240
= fra
.me
.REG
[5];
5640 register_static_object(&once_value_240
);
5641 } else fra
.me
.REG
[5] = once_value_240
;
5642 fra
.me
.REG
[6] = fra
.me
.REG
[5];
5644 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5645 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5646 /* ./syntax//icode_generation.nit:604 */
5647 if (UNTAG_Bool(REGB0
)) {
5648 fprintf(stderr
, "Reciever is null");
5649 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 604);
5652 fra
.me
.REG
[2] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5653 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5654 /* ./syntax//icode_generation.nit:605 */
5655 if (UNTAG_Bool(REGB0
)) {
5657 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5658 if (UNTAG_Bool(REGB1
)) {
5659 REGB1
= TAG_Bool(false);
5662 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5666 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5667 if (UNTAG_Bool(REGB0
)) {
5668 fra
.me
.REG
[5] = NEW_INative_icode_base___INative___init(fra
.me
.REG
[6], fra
.me
.REG
[3]);
5669 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[2]);
5670 /* ./syntax//icode_generation.nit:606 */
5671 CALL_icode_builder___ICodeBuilder___add_return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5673 fra
.me
.REG
[3] = NEW_INative_icode_base___INative___init(fra
.me
.REG
[6], fra
.me
.REG
[3]);
5674 /* ./syntax//icode_generation.nit:608 */
5675 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5677 stack_frame_head
= fra
.me
.prev
;
5680 void icode_generation___AExpr___accept_icode_generation(val_t p0
, val_t p1
){
5681 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5683 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5684 fra
.me
.file
= LOCATE_icode_generation
;
5686 fra
.me
.meth
= LOCATE_icode_generation___AExpr___accept_icode_generation
;
5687 fra
.me
.has_broke
= 0;
5688 fra
.me
.REG_size
= 2;
5689 fra
.me
.REG
[0] = NIT_NULL
;
5690 fra
.me
.REG
[1] = NIT_NULL
;
5693 /* ./syntax//icode_generation.nit:616 */
5694 stack_frame_head
= fra
.me
.prev
;
5697 val_t
icode_generation___AExpr___generate_icode(val_t p0
, val_t p1
){
5698 struct {struct stack_frame_t me
;} fra
;
5700 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5701 fra
.me
.file
= LOCATE_icode_generation
;
5703 fra
.me
.meth
= LOCATE_icode_generation___AExpr___generate_icode
;
5704 fra
.me
.has_broke
= 0;
5705 fra
.me
.REG_size
= 0;
5706 /* ./syntax//icode_generation.nit:618 */
5707 fprintf(stderr
, "Deferred method called");
5708 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 618);
5710 stack_frame_head
= fra
.me
.prev
;
5713 val_t
icode_generation___AVardeclExpr___generate_icode(val_t p0
, val_t p1
){
5714 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5718 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5719 fra
.me
.file
= LOCATE_icode_generation
;
5721 fra
.me
.meth
= LOCATE_icode_generation___AVardeclExpr___generate_icode
;
5722 fra
.me
.has_broke
= 0;
5723 fra
.me
.REG_size
= 3;
5724 fra
.me
.REG
[0] = NIT_NULL
;
5725 fra
.me
.REG
[1] = NIT_NULL
;
5726 fra
.me
.REG
[2] = NIT_NULL
;
5729 fra
.me
.REG
[2] = CALL_syntax_base___AVardeclExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5730 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5731 fra
.me
.REG
[0] = CALL_parser_nodes___AVardeclExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5732 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5733 /* ./syntax//icode_generation.nit:628 */
5734 if (UNTAG_Bool(REGB0
)) {
5736 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5737 if (UNTAG_Bool(REGB1
)) {
5738 REGB1
= TAG_Bool(false);
5741 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
5745 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5746 if (UNTAG_Bool(REGB0
)) {
5747 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
5748 /* ./syntax//icode_generation.nit:629 */
5749 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
5751 fra
.me
.REG
[0] = NIT_NULL
;
5752 /* ./syntax//icode_generation.nit:631 */
5755 stack_frame_head
= fra
.me
.prev
;
5756 return fra
.me
.REG
[0];
5758 val_t
icode_generation___ABlockExpr___generate_icode(val_t p0
, val_t p1
){
5759 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5762 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5763 fra
.me
.file
= LOCATE_icode_generation
;
5765 fra
.me
.meth
= LOCATE_icode_generation___ABlockExpr___generate_icode
;
5766 fra
.me
.has_broke
= 0;
5767 fra
.me
.REG_size
= 3;
5768 fra
.me
.REG
[0] = NIT_NULL
;
5769 fra
.me
.REG
[1] = NIT_NULL
;
5770 fra
.me
.REG
[2] = NIT_NULL
;
5773 fra
.me
.REG
[0] = CALL_parser_nodes___ABlockExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5774 fra
.me
.REG
[0] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5775 /* ./syntax//icode_generation.nit:638 */
5777 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5778 if (UNTAG_Bool(REGB0
)) {
5779 fra
.me
.REG
[2] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5780 CALL_icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5784 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5787 fra
.me
.REG
[0] = NIT_NULL
;
5788 /* ./syntax//icode_generation.nit:639 */
5791 stack_frame_head
= fra
.me
.prev
;
5792 return fra
.me
.REG
[0];
5794 val_t
icode_generation___ADoExpr___generate_icode(val_t p0
, val_t p1
){
5795 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
5798 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5799 fra
.me
.file
= LOCATE_icode_generation
;
5801 fra
.me
.meth
= LOCATE_icode_generation___ADoExpr___generate_icode
;
5802 fra
.me
.has_broke
= 0;
5803 fra
.me
.REG_size
= 5;
5804 fra
.me
.REG
[0] = NIT_NULL
;
5805 fra
.me
.REG
[1] = NIT_NULL
;
5806 fra
.me
.REG
[2] = NIT_NULL
;
5807 fra
.me
.REG
[3] = NIT_NULL
;
5808 fra
.me
.REG
[4] = NIT_NULL
;
5811 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5812 fra
.me
.REG
[3] = NEW_ISeq_icode_base___ISeq___init();
5813 /* ./syntax//icode_generation.nit:648 */
5814 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5815 fra
.me
.REG
[4] = CALL_typing___ADoExpr___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5816 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5817 /* ./syntax//icode_generation.nit:649 */
5818 if (UNTAG_Bool(REGB0
)) {
5819 fprintf(stderr
, "Reciever is null");
5820 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 649);
5823 CALL_icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5824 /* ./syntax//icode_generation.nit:650 */
5825 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5826 fra
.me
.REG
[0] = CALL_parser_nodes___ADoExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5827 /* ./syntax//icode_generation.nit:652 */
5828 CALL_icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
5829 /* ./syntax//icode_generation.nit:654 */
5830 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5831 fra
.me
.REG
[2] = NIT_NULL
;
5832 /* ./syntax//icode_generation.nit:655 */
5835 stack_frame_head
= fra
.me
.prev
;
5836 return fra
.me
.REG
[2];
5838 val_t
icode_generation___AReturnExpr___generate_icode(val_t p0
, val_t p1
){
5839 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5843 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5844 fra
.me
.file
= LOCATE_icode_generation
;
5846 fra
.me
.meth
= LOCATE_icode_generation___AReturnExpr___generate_icode
;
5847 fra
.me
.has_broke
= 0;
5848 fra
.me
.REG_size
= 3;
5849 fra
.me
.REG
[0] = NIT_NULL
;
5850 fra
.me
.REG
[1] = NIT_NULL
;
5851 fra
.me
.REG
[2] = NIT_NULL
;
5854 fra
.me
.REG
[0] = CALL_parser_nodes___AReturnExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5855 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5856 /* ./syntax//icode_generation.nit:663 */
5857 if (UNTAG_Bool(REGB0
)) {
5859 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5860 if (UNTAG_Bool(REGB1
)) {
5861 REGB1
= TAG_Bool(false);
5864 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
5868 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5869 if (UNTAG_Bool(REGB0
)) {
5870 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5871 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
5872 /* ./syntax//icode_generation.nit:664 */
5873 if (UNTAG_Bool(REGB0
)) {
5875 fprintf(stderr
, "Cast failed");
5876 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 664);
5879 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
5880 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
5882 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___return_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5883 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
5884 /* ./syntax//icode_generation.nit:666 */
5885 if (UNTAG_Bool(REGB0
)) {
5887 fprintf(stderr
, "Cast failed");
5888 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 666);
5891 CALL_icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
5892 fra
.me
.REG
[0] = NIT_NULL
;
5893 /* ./syntax//icode_generation.nit:667 */
5896 stack_frame_head
= fra
.me
.prev
;
5897 return fra
.me
.REG
[0];
5899 val_t
icode_generation___ABreakExpr___generate_icode(val_t p0
, val_t p1
){
5900 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5904 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5905 fra
.me
.file
= LOCATE_icode_generation
;
5907 fra
.me
.meth
= LOCATE_icode_generation___ABreakExpr___generate_icode
;
5908 fra
.me
.has_broke
= 0;
5909 fra
.me
.REG_size
= 4;
5910 fra
.me
.REG
[0] = NIT_NULL
;
5911 fra
.me
.REG
[1] = NIT_NULL
;
5912 fra
.me
.REG
[2] = NIT_NULL
;
5913 fra
.me
.REG
[3] = NIT_NULL
;
5916 fra
.me
.REG
[2] = CALL_parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5917 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5918 /* ./syntax//icode_generation.nit:675 */
5919 if (UNTAG_Bool(REGB0
)) {
5921 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5922 if (UNTAG_Bool(REGB1
)) {
5923 REGB1
= TAG_Bool(false);
5926 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5930 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5931 if (UNTAG_Bool(REGB0
)) {
5932 fra
.me
.REG
[3] = CALL_escape___AEscapeExpr___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5933 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5934 /* ./syntax//icode_generation.nit:676 */
5935 if (UNTAG_Bool(REGB0
)) {
5936 fprintf(stderr
, "Reciever is null");
5937 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 676);
5940 fra
.me
.REG
[3] = CALL_icode_generation___EscapableBlock___break_value(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5941 REGB0
= TAG_Bool(fra
.me
.REG
[3]!=NIT_NULL
);
5942 if (UNTAG_Bool(REGB0
)) {
5944 fprintf(stderr
, "Cast failed");
5945 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 676);
5948 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5949 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
5951 fra
.me
.REG
[0] = CALL_escape___AEscapeExpr___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5952 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5953 /* ./syntax//icode_generation.nit:678 */
5954 if (UNTAG_Bool(REGB0
)) {
5955 fprintf(stderr
, "Reciever is null");
5956 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 678);
5959 fra
.me
.REG
[0] = CALL_icode_generation___EscapableBlock___break_seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5960 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
5961 if (UNTAG_Bool(REGB0
)) {
5963 fprintf(stderr
, "Cast failed");
5964 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 678);
5967 CALL_icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
5968 fra
.me
.REG
[0] = NIT_NULL
;
5969 /* ./syntax//icode_generation.nit:679 */
5972 stack_frame_head
= fra
.me
.prev
;
5973 return fra
.me
.REG
[0];
5975 val_t
icode_generation___AContinueExpr___generate_icode(val_t p0
, val_t p1
){
5976 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5980 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5981 fra
.me
.file
= LOCATE_icode_generation
;
5983 fra
.me
.meth
= LOCATE_icode_generation___AContinueExpr___generate_icode
;
5984 fra
.me
.has_broke
= 0;
5985 fra
.me
.REG_size
= 4;
5986 fra
.me
.REG
[0] = NIT_NULL
;
5987 fra
.me
.REG
[1] = NIT_NULL
;
5988 fra
.me
.REG
[2] = NIT_NULL
;
5989 fra
.me
.REG
[3] = NIT_NULL
;
5992 fra
.me
.REG
[2] = CALL_parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5993 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5994 /* ./syntax//icode_generation.nit:687 */
5995 if (UNTAG_Bool(REGB0
)) {
5997 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5998 if (UNTAG_Bool(REGB1
)) {
5999 REGB1
= TAG_Bool(false);
6002 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
6006 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6007 if (UNTAG_Bool(REGB0
)) {
6008 fra
.me
.REG
[3] = CALL_escape___AEscapeExpr___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6009 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6010 /* ./syntax//icode_generation.nit:688 */
6011 if (UNTAG_Bool(REGB0
)) {
6012 fprintf(stderr
, "Reciever is null");
6013 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 688);
6016 fra
.me
.REG
[3] = CALL_icode_generation___EscapableBlock___continue_value(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6017 REGB0
= TAG_Bool(fra
.me
.REG
[3]!=NIT_NULL
);
6018 if (UNTAG_Bool(REGB0
)) {
6020 fprintf(stderr
, "Cast failed");
6021 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 688);
6024 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6025 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
6027 fra
.me
.REG
[0] = CALL_escape___AEscapeExpr___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6028 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6029 /* ./syntax//icode_generation.nit:690 */
6030 if (UNTAG_Bool(REGB0
)) {
6031 fprintf(stderr
, "Reciever is null");
6032 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 690);
6035 fra
.me
.REG
[0] = CALL_icode_generation___EscapableBlock___continue_seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6036 REGB0
= TAG_Bool(fra
.me
.REG
[0]!=NIT_NULL
);
6037 if (UNTAG_Bool(REGB0
)) {
6039 fprintf(stderr
, "Cast failed");
6040 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 690);
6043 CALL_icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6044 fra
.me
.REG
[0] = NIT_NULL
;
6045 /* ./syntax//icode_generation.nit:691 */
6048 stack_frame_head
= fra
.me
.prev
;
6049 return fra
.me
.REG
[0];
6051 val_t
icode_generation___AAbortExpr___generate_icode(val_t p0
, val_t p1
){
6052 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
6055 static val_t once_value_1
; /* Once value */
6056 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6057 fra
.me
.file
= LOCATE_icode_generation
;
6059 fra
.me
.meth
= LOCATE_icode_generation___AAbortExpr___generate_icode
;
6060 fra
.me
.has_broke
= 0;
6061 fra
.me
.REG_size
= 3;
6062 fra
.me
.REG
[0] = NIT_NULL
;
6063 fra
.me
.REG
[1] = NIT_NULL
;
6064 fra
.me
.REG
[2] = NIT_NULL
;
6068 fra
.me
.REG
[0] = NEW_Array_array___Array___with_capacity(REGB0
);
6069 /* ./syntax//icode_generation.nit:698 */
6070 if (!once_value_1
) {
6071 fra
.me
.REG
[2] = BOX_NativeString("Aborted");
6073 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
6074 once_value_1
= fra
.me
.REG
[2];
6075 register_static_object(&once_value_1
);
6076 } else fra
.me
.REG
[2] = once_value_1
;
6077 array___Array___add(fra
.me
.REG
[0], fra
.me
.REG
[2]);
6078 CALL_icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6079 fra
.me
.REG
[0] = NIT_NULL
;
6080 /* ./syntax//icode_generation.nit:699 */
6083 stack_frame_head
= fra
.me
.prev
;
6084 return fra
.me
.REG
[0];
6086 val_t
icode_generation___AIfExpr___generate_icode(val_t p0
, val_t p1
){
6087 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
6091 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6092 fra
.me
.file
= LOCATE_icode_generation
;
6094 fra
.me
.meth
= LOCATE_icode_generation___AIfExpr___generate_icode
;
6095 fra
.me
.has_broke
= 0;
6096 fra
.me
.REG_size
= 5;
6097 fra
.me
.REG
[0] = NIT_NULL
;
6098 fra
.me
.REG
[1] = NIT_NULL
;
6099 fra
.me
.REG
[2] = NIT_NULL
;
6100 fra
.me
.REG
[3] = NIT_NULL
;
6101 fra
.me
.REG
[4] = NIT_NULL
;
6104 fra
.me
.REG
[2] = CALL_parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6105 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6106 fra
.me
.REG
[2] = NEW_IIf_icode_base___IIf___init(fra
.me
.REG
[2]);
6107 /* ./syntax//icode_generation.nit:707 */
6108 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6109 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6110 fra
.me
.REG
[4] = CALL_parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6111 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6112 /* ./syntax//icode_generation.nit:710 */
6113 if (UNTAG_Bool(REGB0
)) {
6115 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6116 if (UNTAG_Bool(REGB1
)) {
6117 REGB1
= TAG_Bool(false);
6120 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
6124 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6125 if (UNTAG_Bool(REGB0
)) {
6126 fra
.me
.REG
[4] = CALL_icode_base___IIf___then_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6127 /* ./syntax//icode_generation.nit:711 */
6128 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6129 fra
.me
.REG
[4] = CALL_parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6130 /* ./syntax//icode_generation.nit:712 */
6131 CALL_icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6133 fra
.me
.REG
[4] = CALL_parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6134 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6135 /* ./syntax//icode_generation.nit:715 */
6136 if (UNTAG_Bool(REGB0
)) {
6138 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6139 if (UNTAG_Bool(REGB1
)) {
6140 REGB1
= TAG_Bool(false);
6143 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
6147 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6148 if (UNTAG_Bool(REGB0
)) {
6149 fra
.me
.REG
[2] = CALL_icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6150 /* ./syntax//icode_generation.nit:716 */
6151 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6152 fra
.me
.REG
[0] = CALL_parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6153 /* ./syntax//icode_generation.nit:717 */
6154 CALL_icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6156 /* ./syntax//icode_generation.nit:720 */
6157 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6158 fra
.me
.REG
[3] = NIT_NULL
;
6159 /* ./syntax//icode_generation.nit:721 */
6162 stack_frame_head
= fra
.me
.prev
;
6163 return fra
.me
.REG
[3];
6165 val_t
icode_generation___AWhileExpr___generate_icode(val_t p0
, val_t p1
){
6166 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
6170 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6171 fra
.me
.file
= LOCATE_icode_generation
;
6173 fra
.me
.meth
= LOCATE_icode_generation___AWhileExpr___generate_icode
;
6174 fra
.me
.has_broke
= 0;
6175 fra
.me
.REG_size
= 7;
6176 fra
.me
.REG
[0] = NIT_NULL
;
6177 fra
.me
.REG
[1] = NIT_NULL
;
6178 fra
.me
.REG
[2] = NIT_NULL
;
6179 fra
.me
.REG
[3] = NIT_NULL
;
6180 fra
.me
.REG
[4] = NIT_NULL
;
6181 fra
.me
.REG
[5] = NIT_NULL
;
6182 fra
.me
.REG
[6] = NIT_NULL
;
6185 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6186 fra
.me
.REG
[3] = NEW_ILoop_icode_base___ILoop___init();
6187 /* ./syntax//icode_generation.nit:730 */
6188 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6189 fra
.me
.REG
[4] = CALL_typing___AWhileExpr___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6190 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6191 /* ./syntax//icode_generation.nit:731 */
6192 if (UNTAG_Bool(REGB0
)) {
6193 fprintf(stderr
, "Reciever is null");
6194 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 731);
6197 CALL_icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6198 /* ./syntax//icode_generation.nit:732 */
6199 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6200 fra
.me
.REG
[4] = CALL_parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6201 fra
.me
.REG
[4] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6202 fra
.me
.REG
[4] = NEW_IIf_icode_base___IIf___init(fra
.me
.REG
[4]);
6203 /* ./syntax//icode_generation.nit:736 */
6204 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6205 fra
.me
.REG
[5] = CALL_parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6206 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6207 /* ./syntax//icode_generation.nit:739 */
6208 if (UNTAG_Bool(REGB0
)) {
6210 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6211 if (UNTAG_Bool(REGB1
)) {
6212 REGB1
= TAG_Bool(false);
6215 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
6219 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6220 if (UNTAG_Bool(REGB0
)) {
6221 fra
.me
.REG
[5] = CALL_icode_base___IIf___then_seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6222 /* ./syntax//icode_generation.nit:740 */
6223 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6224 fra
.me
.REG
[5] = CALL_typing___AWhileExpr___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6225 fra
.me
.REG
[6] = CALL_icode_base___IIf___then_seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6226 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6227 /* ./syntax//icode_generation.nit:741 */
6228 if (UNTAG_Bool(REGB0
)) {
6229 fprintf(stderr
, "Reciever is null");
6230 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 741);
6233 CALL_icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
6234 fra
.me
.REG
[0] = CALL_parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6235 /* ./syntax//icode_generation.nit:742 */
6236 CALL_icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6238 fra
.me
.REG
[4] = CALL_icode_base___IIf___else_seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6239 /* ./syntax//icode_generation.nit:746 */
6240 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6241 /* ./syntax//icode_generation.nit:747 */
6242 CALL_icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6243 /* ./syntax//icode_generation.nit:749 */
6244 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6245 fra
.me
.REG
[2] = NIT_NULL
;
6246 /* ./syntax//icode_generation.nit:750 */
6249 stack_frame_head
= fra
.me
.prev
;
6250 return fra
.me
.REG
[2];
6252 val_t
icode_generation___ALoopExpr___generate_icode(val_t p0
, val_t p1
){
6253 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
6257 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6258 fra
.me
.file
= LOCATE_icode_generation
;
6260 fra
.me
.meth
= LOCATE_icode_generation___ALoopExpr___generate_icode
;
6261 fra
.me
.has_broke
= 0;
6262 fra
.me
.REG_size
= 5;
6263 fra
.me
.REG
[0] = NIT_NULL
;
6264 fra
.me
.REG
[1] = NIT_NULL
;
6265 fra
.me
.REG
[2] = NIT_NULL
;
6266 fra
.me
.REG
[3] = NIT_NULL
;
6267 fra
.me
.REG
[4] = NIT_NULL
;
6270 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6271 fra
.me
.REG
[3] = NEW_ILoop_icode_base___ILoop___init();
6272 /* ./syntax//icode_generation.nit:759 */
6273 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6274 fra
.me
.REG
[4] = CALL_typing___ALoopExpr___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6275 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6276 /* ./syntax//icode_generation.nit:760 */
6277 if (UNTAG_Bool(REGB0
)) {
6278 fprintf(stderr
, "Reciever is null");
6279 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 760);
6282 CALL_icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6283 /* ./syntax//icode_generation.nit:761 */
6284 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6285 fra
.me
.REG
[3] = CALL_parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6286 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6287 /* ./syntax//icode_generation.nit:764 */
6288 if (UNTAG_Bool(REGB0
)) {
6290 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
6291 if (UNTAG_Bool(REGB1
)) {
6292 REGB1
= TAG_Bool(false);
6295 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
6299 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6300 if (UNTAG_Bool(REGB0
)) {
6301 fra
.me
.REG
[3] = NEW_ISeq_icode_base___ISeq___init();
6302 /* ./syntax//icode_generation.nit:766 */
6303 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6304 /* ./syntax//icode_generation.nit:767 */
6305 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6306 fra
.me
.REG
[4] = CALL_typing___ALoopExpr___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6307 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6308 /* ./syntax//icode_generation.nit:768 */
6309 if (UNTAG_Bool(REGB0
)) {
6310 fprintf(stderr
, "Reciever is null");
6311 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 768);
6314 CALL_icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6315 fra
.me
.REG
[0] = CALL_parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6316 /* ./syntax//icode_generation.nit:769 */
6317 CALL_icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6319 /* ./syntax//icode_generation.nit:772 */
6320 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6321 fra
.me
.REG
[2] = NIT_NULL
;
6322 /* ./syntax//icode_generation.nit:773 */
6325 stack_frame_head
= fra
.me
.prev
;
6326 return fra
.me
.REG
[2];
6328 val_t
icode_generation___AForExpr___generate_icode(val_t p0
, val_t p1
){
6329 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
6332 static val_t once_value_1
; /* Once value */
6333 static val_t once_value_2
; /* Once value */
6334 static val_t once_value_3
; /* Once value */
6335 static val_t once_value_4
; /* Once value */
6336 static val_t once_value_5
; /* Once value */
6337 static val_t once_value_6
; /* Once value */
6338 static val_t once_value_7
; /* Once value */
6339 static val_t once_value_8
; /* Once value */
6340 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6341 fra
.me
.file
= LOCATE_icode_generation
;
6343 fra
.me
.meth
= LOCATE_icode_generation___AForExpr___generate_icode
;
6344 fra
.me
.has_broke
= 0;
6345 fra
.me
.REG_size
= 10;
6346 fra
.me
.REG
[0] = NIT_NULL
;
6347 fra
.me
.REG
[1] = NIT_NULL
;
6348 fra
.me
.REG
[2] = NIT_NULL
;
6349 fra
.me
.REG
[3] = NIT_NULL
;
6350 fra
.me
.REG
[4] = NIT_NULL
;
6351 fra
.me
.REG
[5] = NIT_NULL
;
6352 fra
.me
.REG
[6] = NIT_NULL
;
6353 fra
.me
.REG
[7] = NIT_NULL
;
6354 fra
.me
.REG
[8] = NIT_NULL
;
6355 fra
.me
.REG
[9] = NIT_NULL
;
6358 fra
.me
.REG
[2] = CALL_parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6359 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6360 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6361 /* ./syntax//icode_generation.nit:783 */
6362 if (!once_value_1
) {
6363 if (!once_value_2
) {
6364 fra
.me
.REG
[4] = BOX_NativeString("iterator");
6366 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
6367 once_value_2
= fra
.me
.REG
[4];
6368 register_static_object(&once_value_2
);
6369 } else fra
.me
.REG
[4] = once_value_2
;
6370 fra
.me
.REG
[4] = CALL_symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6371 once_value_1
= fra
.me
.REG
[4];
6372 register_static_object(&once_value_1
);
6373 } else fra
.me
.REG
[4] = once_value_1
;
6374 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[4]);
6375 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
6376 fra
.me
.REG
[2] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6377 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
6378 /* ./syntax//icode_generation.nit:785 */
6379 if (UNTAG_Bool(REGB0
)) {
6381 fprintf(stderr
, "Cast failed");
6382 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 785);
6386 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
6387 fra
.me
.REG
[5] = CALL_parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6388 fra
.me
.REG
[5] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6389 /* ./syntax//icode_generation.nit:786 */
6390 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[5]);
6391 fra
.me
.REG
[3] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6392 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
6393 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6394 fra
.me
.REG
[5] = NEW_ILoop_icode_base___ILoop___init();
6395 /* ./syntax//icode_generation.nit:791 */
6396 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6397 fra
.me
.REG
[6] = CALL_typing___AForExpr___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6398 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6399 /* ./syntax//icode_generation.nit:792 */
6400 if (UNTAG_Bool(REGB0
)) {
6401 fprintf(stderr
, "Reciever is null");
6402 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 792);
6405 CALL_icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
6406 /* ./syntax//icode_generation.nit:793 */
6407 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6408 fra
.me
.REG
[6] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6409 /* ./syntax//icode_generation.nit:796 */
6410 if (!once_value_3
) {
6411 if (!once_value_4
) {
6412 fra
.me
.REG
[7] = BOX_NativeString("is_ok");
6414 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB0
);
6415 once_value_4
= fra
.me
.REG
[7];
6416 register_static_object(&once_value_4
);
6417 } else fra
.me
.REG
[7] = once_value_4
;
6418 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6419 once_value_3
= fra
.me
.REG
[7];
6420 register_static_object(&once_value_3
);
6421 } else fra
.me
.REG
[7] = once_value_3
;
6422 fra
.me
.REG
[7] = CALL_syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[2], fra
.me
.REG
[7]);
6424 fra
.me
.REG
[6] = NEW_Array_array___Array___with_capacity(REGB0
);
6425 /* ./syntax//icode_generation.nit:797 */
6426 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[3]);
6427 fra
.me
.REG
[6] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[7], fra
.me
.REG
[6]);
6428 fra
.me
.REG
[7] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6429 fra
.me
.REG
[7] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6430 fra
.me
.REG
[7] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6], fra
.me
.REG
[7]);
6431 fra
.me
.REG
[7] = NEW_IIf_icode_base___IIf___init(fra
.me
.REG
[7]);
6432 /* ./syntax//icode_generation.nit:801 */
6433 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
6434 fra
.me
.REG
[6] = CALL_icode_base___IIf___then_seq(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6435 /* ./syntax//icode_generation.nit:802 */
6436 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6437 fra
.me
.REG
[6] = CALL_typing___AForExpr___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6438 fra
.me
.REG
[8] = CALL_icode_base___IIf___then_seq(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6439 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6440 /* ./syntax//icode_generation.nit:803 */
6441 if (UNTAG_Bool(REGB0
)) {
6442 fprintf(stderr
, "Reciever is null");
6443 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 803);
6446 CALL_icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[8]);
6447 fra
.me
.REG
[8] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6448 /* ./syntax//icode_generation.nit:806 */
6449 if (!once_value_5
) {
6450 if (!once_value_6
) {
6451 fra
.me
.REG
[6] = BOX_NativeString("item");
6453 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
6454 once_value_6
= fra
.me
.REG
[6];
6455 register_static_object(&once_value_6
);
6456 } else fra
.me
.REG
[6] = once_value_6
;
6457 fra
.me
.REG
[6] = CALL_symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6458 once_value_5
= fra
.me
.REG
[6];
6459 register_static_object(&once_value_5
);
6460 } else fra
.me
.REG
[6] = once_value_5
;
6461 fra
.me
.REG
[6] = CALL_syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[2], fra
.me
.REG
[6]);
6462 fra
.me
.REG
[8] = CALL_syntax_base___AForExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6463 fra
.me
.REG
[8] = CALL_syntax_base___Variable___stype(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6464 REGB0
= TAG_Bool((fra
.me
.REG
[8]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[8], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
6465 /* ./syntax//icode_generation.nit:807 */
6466 if (UNTAG_Bool(REGB0
)) {
6468 fprintf(stderr
, "Cast failed");
6469 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 807);
6473 fra
.me
.REG
[9] = NEW_Array_array___Array___with_capacity(REGB0
);
6474 /* ./syntax//icode_generation.nit:808 */
6475 array___Array___add(fra
.me
.REG
[9], fra
.me
.REG
[3]);
6476 fra
.me
.REG
[9] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[6], fra
.me
.REG
[9]);
6477 fra
.me
.REG
[8] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[9], fra
.me
.REG
[8]);
6478 fra
.me
.REG
[9] = CALL_syntax_base___AForExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6479 fra
.me
.REG
[9] = CALL_icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[9]);
6480 /* ./syntax//icode_generation.nit:810 */
6481 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[9], fra
.me
.REG
[8]);
6482 fra
.me
.REG
[0] = CALL_parser_nodes___AForExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6483 /* ./syntax//icode_generation.nit:813 */
6484 CALL_icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6485 fra
.me
.REG
[7] = CALL_icode_base___IIf___else_seq(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6486 /* ./syntax//icode_generation.nit:816 */
6487 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
6488 /* ./syntax//icode_generation.nit:817 */
6489 CALL_icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6490 fra
.me
.REG
[7] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6491 /* ./syntax//icode_generation.nit:820 */
6492 if (!once_value_7
) {
6493 if (!once_value_8
) {
6494 fra
.me
.REG
[0] = BOX_NativeString("next");
6496 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
6497 once_value_8
= fra
.me
.REG
[0];
6498 register_static_object(&once_value_8
);
6499 } else fra
.me
.REG
[0] = once_value_8
;
6500 fra
.me
.REG
[0] = CALL_symbol___String___to_symbol(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6501 once_value_7
= fra
.me
.REG
[0];
6502 register_static_object(&once_value_7
);
6503 } else fra
.me
.REG
[0] = once_value_7
;
6504 fra
.me
.REG
[0] = CALL_syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[2], fra
.me
.REG
[0]);
6505 /* ./syntax//icode_generation.nit:821 */
6506 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6508 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB0
);
6509 /* ./syntax//icode_generation.nit:822 */
6510 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[3]);
6511 fra
.me
.REG
[5] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[0], fra
.me
.REG
[5]);
6512 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6513 /* ./syntax//icode_generation.nit:824 */
6514 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6515 fra
.me
.REG
[4] = NIT_NULL
;
6516 /* ./syntax//icode_generation.nit:825 */
6519 stack_frame_head
= fra
.me
.prev
;
6520 return fra
.me
.REG
[4];
6522 val_t
icode_generation___AAssertExpr___generate_icode(val_t p0
, val_t p1
){
6523 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
6527 static val_t once_value_1
; /* Once value */
6528 static val_t once_value_2
; /* Once value */
6529 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6530 fra
.me
.file
= LOCATE_icode_generation
;
6532 fra
.me
.meth
= LOCATE_icode_generation___AAssertExpr___generate_icode
;
6533 fra
.me
.has_broke
= 0;
6534 fra
.me
.REG_size
= 5;
6535 fra
.me
.REG
[0] = NIT_NULL
;
6536 fra
.me
.REG
[1] = NIT_NULL
;
6537 fra
.me
.REG
[2] = NIT_NULL
;
6538 fra
.me
.REG
[3] = NIT_NULL
;
6539 fra
.me
.REG
[4] = NIT_NULL
;
6542 fra
.me
.REG
[2] = CALL_parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6543 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6544 fra
.me
.REG
[2] = NEW_IIf_icode_base___IIf___init(fra
.me
.REG
[2]);
6545 /* ./syntax//icode_generation.nit:834 */
6546 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6547 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6548 fra
.me
.REG
[2] = CALL_icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6549 /* ./syntax//icode_generation.nit:836 */
6550 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6551 fra
.me
.REG
[2] = CALL_parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6552 /* ./syntax//icode_generation.nit:837 */
6553 CALL_icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6554 fra
.me
.REG
[0] = CALL_parser_nodes___AAssertExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6555 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6556 /* ./syntax//icode_generation.nit:839 */
6557 if (UNTAG_Bool(REGB0
)) {
6559 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6560 if (UNTAG_Bool(REGB1
)) {
6561 REGB1
= TAG_Bool(false);
6564 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
6568 if (UNTAG_Bool(REGB0
)) {
6570 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
6571 /* ./syntax//icode_generation.nit:840 */
6572 if (!once_value_1
) {
6573 fra
.me
.REG
[4] = BOX_NativeString("Assert failed");
6574 REGB0
= TAG_Int(13);
6575 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
6576 once_value_1
= fra
.me
.REG
[4];
6577 register_static_object(&once_value_1
);
6578 } else fra
.me
.REG
[4] = once_value_1
;
6579 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[4]);
6580 CALL_icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6583 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
6584 /* ./syntax//icode_generation.nit:842 */
6585 if (!once_value_2
) {
6586 fra
.me
.REG
[4] = BOX_NativeString("Assert %s failed");
6587 REGB0
= TAG_Int(17);
6588 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
6589 once_value_2
= fra
.me
.REG
[4];
6590 register_static_object(&once_value_2
);
6591 } else fra
.me
.REG
[4] = once_value_2
;
6592 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[4]);
6593 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6594 if (UNTAG_Bool(REGB0
)) {
6595 fprintf(stderr
, "Reciever is null");
6596 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 842);
6599 fra
.me
.REG
[0] = CALL_string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6600 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[0]);
6601 CALL_icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6603 /* ./syntax//icode_generation.nit:844 */
6604 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6605 fra
.me
.REG
[3] = NIT_NULL
;
6606 /* ./syntax//icode_generation.nit:845 */
6609 stack_frame_head
= fra
.me
.prev
;
6610 return fra
.me
.REG
[3];
6612 val_t
icode_generation___AVarExpr___generate_icode(val_t p0
, val_t p1
){
6613 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6615 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6616 fra
.me
.file
= LOCATE_icode_generation
;
6618 fra
.me
.meth
= LOCATE_icode_generation___AVarExpr___generate_icode
;
6619 fra
.me
.has_broke
= 0;
6620 fra
.me
.REG_size
= 2;
6621 fra
.me
.REG
[0] = NIT_NULL
;
6622 fra
.me
.REG
[1] = NIT_NULL
;
6625 fra
.me
.REG
[0] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6626 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6627 /* ./syntax//icode_generation.nit:852 */
6630 stack_frame_head
= fra
.me
.prev
;
6631 return fra
.me
.REG
[0];
6633 val_t
icode_generation___AVarAssignExpr___generate_icode(val_t p0
, val_t p1
){
6634 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
6636 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6637 fra
.me
.file
= LOCATE_icode_generation
;
6639 fra
.me
.meth
= LOCATE_icode_generation___AVarAssignExpr___generate_icode
;
6640 fra
.me
.has_broke
= 0;
6641 fra
.me
.REG_size
= 3;
6642 fra
.me
.REG
[0] = NIT_NULL
;
6643 fra
.me
.REG
[1] = NIT_NULL
;
6644 fra
.me
.REG
[2] = NIT_NULL
;
6647 fra
.me
.REG
[2] = CALL_parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6648 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6649 fra
.me
.REG
[0] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6650 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6651 /* ./syntax//icode_generation.nit:860 */
6652 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
6653 fra
.me
.REG
[2] = NIT_NULL
;
6654 /* ./syntax//icode_generation.nit:861 */
6657 stack_frame_head
= fra
.me
.prev
;
6658 return fra
.me
.REG
[2];
6660 val_t
icode_generation___AVarReassignExpr___generate_icode(val_t p0
, val_t p1
){
6661 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
6664 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6665 fra
.me
.file
= LOCATE_icode_generation
;
6667 fra
.me
.meth
= LOCATE_icode_generation___AVarReassignExpr___generate_icode
;
6668 fra
.me
.has_broke
= 0;
6669 fra
.me
.REG_size
= 6;
6670 fra
.me
.REG
[0] = NIT_NULL
;
6671 fra
.me
.REG
[1] = NIT_NULL
;
6672 fra
.me
.REG
[2] = NIT_NULL
;
6673 fra
.me
.REG
[3] = NIT_NULL
;
6674 fra
.me
.REG
[4] = NIT_NULL
;
6675 fra
.me
.REG
[5] = NIT_NULL
;
6678 fra
.me
.REG
[2] = CALL_syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6679 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6680 fra
.me
.REG
[3] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6681 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6682 fra
.me
.REG
[4] = CALL_syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6684 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB0
);
6685 /* ./syntax//icode_generation.nit:870 */
6686 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[2]);
6687 array___Array___add(fra
.me
.REG
[5], fra
.me
.REG
[3]);
6688 fra
.me
.REG
[5] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
6689 fra
.me
.REG
[0] = CALL_syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6690 fra
.me
.REG
[0] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6691 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6692 if (UNTAG_Bool(REGB0
)) {
6693 fprintf(stderr
, "Reciever is null");
6694 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 870);
6697 fra
.me
.REG
[0] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6698 REGB0
= TAG_Bool((fra
.me
.REG
[0]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[0], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
6699 if (UNTAG_Bool(REGB0
)) {
6701 fprintf(stderr
, "Cast failed");
6702 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 870);
6705 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[0]);
6706 /* ./syntax//icode_generation.nit:871 */
6707 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
6708 fra
.me
.REG
[0] = NIT_NULL
;
6709 /* ./syntax//icode_generation.nit:872 */
6712 stack_frame_head
= fra
.me
.prev
;
6713 return fra
.me
.REG
[0];
6715 val_t
icode_generation___ASelfExpr___generate_icode(val_t p0
, val_t p1
){
6716 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6718 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6719 fra
.me
.file
= LOCATE_icode_generation
;
6721 fra
.me
.meth
= LOCATE_icode_generation___ASelfExpr___generate_icode
;
6722 fra
.me
.has_broke
= 0;
6723 fra
.me
.REG_size
= 2;
6724 fra
.me
.REG
[0] = NIT_NULL
;
6725 fra
.me
.REG
[1] = NIT_NULL
;
6728 fra
.me
.REG
[0] = CALL_syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6729 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6730 /* ./syntax//icode_generation.nit:879 */
6733 stack_frame_head
= fra
.me
.prev
;
6734 return fra
.me
.REG
[0];
6736 val_t
icode_generation___AIfexprExpr___generate_icode(val_t p0
, val_t p1
){
6737 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
6739 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6740 fra
.me
.file
= LOCATE_icode_generation
;
6742 fra
.me
.meth
= LOCATE_icode_generation___AIfexprExpr___generate_icode
;
6743 fra
.me
.has_broke
= 0;
6744 fra
.me
.REG_size
= 6;
6745 fra
.me
.REG
[0] = NIT_NULL
;
6746 fra
.me
.REG
[1] = NIT_NULL
;
6747 fra
.me
.REG
[2] = NIT_NULL
;
6748 fra
.me
.REG
[3] = NIT_NULL
;
6749 fra
.me
.REG
[4] = NIT_NULL
;
6750 fra
.me
.REG
[5] = NIT_NULL
;
6753 fra
.me
.REG
[2] = CALL_parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6754 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6755 fra
.me
.REG
[2] = NEW_IIf_icode_base___IIf___init(fra
.me
.REG
[2]);
6756 /* ./syntax//icode_generation.nit:888 */
6757 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6758 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6759 fra
.me
.REG
[4] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6760 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6761 fra
.me
.REG
[5] = CALL_icode_base___IIf___then_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6762 /* ./syntax//icode_generation.nit:895 */
6763 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6764 fra
.me
.REG
[5] = CALL_parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6765 fra
.me
.REG
[5] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6766 /* ./syntax//icode_generation.nit:896 */
6767 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
6768 fra
.me
.REG
[2] = CALL_icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6769 /* ./syntax//icode_generation.nit:899 */
6770 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6771 fra
.me
.REG
[0] = CALL_parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6772 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6773 /* ./syntax//icode_generation.nit:900 */
6774 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[0]);
6775 /* ./syntax//icode_generation.nit:902 */
6776 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6777 /* ./syntax//icode_generation.nit:903 */
6780 stack_frame_head
= fra
.me
.prev
;
6781 return fra
.me
.REG
[4];
6783 val_t
icode_generation___AEeExpr___generate_icode(val_t p0
, val_t p1
){
6784 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
6786 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6787 fra
.me
.file
= LOCATE_icode_generation
;
6789 fra
.me
.meth
= LOCATE_icode_generation___AEeExpr___generate_icode
;
6790 fra
.me
.has_broke
= 0;
6791 fra
.me
.REG_size
= 4;
6792 fra
.me
.REG
[0] = NIT_NULL
;
6793 fra
.me
.REG
[1] = NIT_NULL
;
6794 fra
.me
.REG
[2] = NIT_NULL
;
6795 fra
.me
.REG
[3] = NIT_NULL
;
6798 fra
.me
.REG
[2] = CALL_parser_nodes___AEeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6799 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6800 fra
.me
.REG
[3] = CALL_parser_nodes___AEeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6801 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6802 fra
.me
.REG
[3] = NEW_IIs_icode_base___IIs___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6803 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6804 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
6805 /* ./syntax//icode_generation.nit:912 */
6808 stack_frame_head
= fra
.me
.prev
;
6809 return fra
.me
.REG
[0];
6811 val_t
icode_generation___AOrExpr___generate_icode(val_t p0
, val_t p1
){
6812 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
6814 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6815 fra
.me
.file
= LOCATE_icode_generation
;
6817 fra
.me
.meth
= LOCATE_icode_generation___AOrExpr___generate_icode
;
6818 fra
.me
.has_broke
= 0;
6819 fra
.me
.REG_size
= 6;
6820 fra
.me
.REG
[0] = NIT_NULL
;
6821 fra
.me
.REG
[1] = NIT_NULL
;
6822 fra
.me
.REG
[2] = NIT_NULL
;
6823 fra
.me
.REG
[3] = NIT_NULL
;
6824 fra
.me
.REG
[4] = NIT_NULL
;
6825 fra
.me
.REG
[5] = NIT_NULL
;
6828 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6829 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6830 fra
.me
.REG
[3] = CALL_parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6831 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6832 fra
.me
.REG
[3] = NEW_IIf_icode_base___IIf___init(fra
.me
.REG
[3]);
6833 /* ./syntax//icode_generation.nit:924 */
6834 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6835 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6836 fra
.me
.REG
[5] = CALL_icode_base___IIf___then_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6837 /* ./syntax//icode_generation.nit:926 */
6838 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6839 fra
.me
.REG
[5] = CALL_icode_builder___ICodeBuilder___lit_true_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6840 /* ./syntax//icode_generation.nit:927 */
6841 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[5]);
6842 fra
.me
.REG
[3] = CALL_icode_base___IIf___else_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6843 /* ./syntax//icode_generation.nit:930 */
6844 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6845 fra
.me
.REG
[0] = CALL_parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6846 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6847 /* ./syntax//icode_generation.nit:931 */
6848 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
6849 /* ./syntax//icode_generation.nit:933 */
6850 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6851 /* ./syntax//icode_generation.nit:934 */
6854 stack_frame_head
= fra
.me
.prev
;
6855 return fra
.me
.REG
[2];
6857 val_t
icode_generation___AAndExpr___generate_icode(val_t p0
, val_t p1
){
6858 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
6860 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6861 fra
.me
.file
= LOCATE_icode_generation
;
6863 fra
.me
.meth
= LOCATE_icode_generation___AAndExpr___generate_icode
;
6864 fra
.me
.has_broke
= 0;
6865 fra
.me
.REG_size
= 6;
6866 fra
.me
.REG
[0] = NIT_NULL
;
6867 fra
.me
.REG
[1] = NIT_NULL
;
6868 fra
.me
.REG
[2] = NIT_NULL
;
6869 fra
.me
.REG
[3] = NIT_NULL
;
6870 fra
.me
.REG
[4] = NIT_NULL
;
6871 fra
.me
.REG
[5] = NIT_NULL
;
6874 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6875 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6876 fra
.me
.REG
[3] = CALL_parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6877 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6878 fra
.me
.REG
[3] = NEW_IIf_icode_base___IIf___init(fra
.me
.REG
[3]);
6879 /* ./syntax//icode_generation.nit:946 */
6880 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6881 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6882 fra
.me
.REG
[5] = CALL_icode_base___IIf___else_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6883 /* ./syntax//icode_generation.nit:948 */
6884 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6885 fra
.me
.REG
[5] = CALL_icode_builder___ICodeBuilder___lit_false_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6886 /* ./syntax//icode_generation.nit:949 */
6887 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[5]);
6888 fra
.me
.REG
[3] = CALL_icode_base___IIf___then_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6889 /* ./syntax//icode_generation.nit:952 */
6890 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6891 fra
.me
.REG
[0] = CALL_parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6892 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6893 /* ./syntax//icode_generation.nit:953 */
6894 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
6895 /* ./syntax//icode_generation.nit:955 */
6896 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6897 /* ./syntax//icode_generation.nit:956 */
6900 stack_frame_head
= fra
.me
.prev
;
6901 return fra
.me
.REG
[2];
6903 val_t
icode_generation___ANotExpr___generate_icode(val_t p0
, val_t p1
){
6904 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
6906 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6907 fra
.me
.file
= LOCATE_icode_generation
;
6909 fra
.me
.meth
= LOCATE_icode_generation___ANotExpr___generate_icode
;
6910 fra
.me
.has_broke
= 0;
6911 fra
.me
.REG_size
= 3;
6912 fra
.me
.REG
[0] = NIT_NULL
;
6913 fra
.me
.REG
[1] = NIT_NULL
;
6914 fra
.me
.REG
[2] = NIT_NULL
;
6917 fra
.me
.REG
[2] = CALL_parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6918 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6919 fra
.me
.REG
[2] = NEW_INot_icode_base___INot___init(fra
.me
.REG
[2]);
6920 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6921 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
6922 /* ./syntax//icode_generation.nit:964 */
6925 stack_frame_head
= fra
.me
.prev
;
6926 return fra
.me
.REG
[0];
6928 val_t
icode_generation___AIsaExpr___generate_icode(val_t p0
, val_t p1
){
6929 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
6931 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6932 fra
.me
.file
= LOCATE_icode_generation
;
6934 fra
.me
.meth
= LOCATE_icode_generation___AIsaExpr___generate_icode
;
6935 fra
.me
.has_broke
= 0;
6936 fra
.me
.REG_size
= 4;
6937 fra
.me
.REG
[0] = NIT_NULL
;
6938 fra
.me
.REG
[1] = NIT_NULL
;
6939 fra
.me
.REG
[2] = NIT_NULL
;
6940 fra
.me
.REG
[3] = NIT_NULL
;
6943 fra
.me
.REG
[2] = CALL_parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6944 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6945 fra
.me
.REG
[3] = CALL_parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6946 fra
.me
.REG
[3] = CALL_syntax_base___AType___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6947 fra
.me
.REG
[3] = NEW_ITypeCheck_icode_base___ITypeCheck___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
6948 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6949 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
6950 /* ./syntax//icode_generation.nit:972 */
6953 stack_frame_head
= fra
.me
.prev
;
6954 return fra
.me
.REG
[0];
6956 val_t
icode_generation___AAsCastExpr___generate_icode(val_t p0
, val_t p1
){
6957 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
6959 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6960 fra
.me
.file
= LOCATE_icode_generation
;
6962 fra
.me
.meth
= LOCATE_icode_generation___AAsCastExpr___generate_icode
;
6963 fra
.me
.has_broke
= 0;
6964 fra
.me
.REG_size
= 3;
6965 fra
.me
.REG
[0] = NIT_NULL
;
6966 fra
.me
.REG
[1] = NIT_NULL
;
6967 fra
.me
.REG
[2] = NIT_NULL
;
6970 fra
.me
.REG
[2] = CALL_parser_nodes___AAsCastExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6971 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6972 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6973 /* ./syntax//icode_generation.nit:980 */
6974 CALL_icode_builder___ICodeBuilder___add_type_cast(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
6975 /* ./syntax//icode_generation.nit:981 */
6978 stack_frame_head
= fra
.me
.prev
;
6979 return fra
.me
.REG
[2];
6981 val_t
icode_generation___AAsNotnullExpr___generate_icode(val_t p0
, val_t p1
){
6982 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
6984 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6985 fra
.me
.file
= LOCATE_icode_generation
;
6987 fra
.me
.meth
= LOCATE_icode_generation___AAsNotnullExpr___generate_icode
;
6988 fra
.me
.has_broke
= 0;
6989 fra
.me
.REG_size
= 3;
6990 fra
.me
.REG
[0] = NIT_NULL
;
6991 fra
.me
.REG
[1] = NIT_NULL
;
6992 fra
.me
.REG
[2] = NIT_NULL
;
6995 fra
.me
.REG
[2] = CALL_parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6996 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6997 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6998 /* ./syntax//icode_generation.nit:989 */
6999 CALL_icode_builder___ICodeBuilder___add_type_cast(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
7000 /* ./syntax//icode_generation.nit:990 */
7003 stack_frame_head
= fra
.me
.prev
;
7004 return fra
.me
.REG
[2];
7006 val_t
icode_generation___ATrueExpr___generate_icode(val_t p0
, val_t p1
){
7007 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7009 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7010 fra
.me
.file
= LOCATE_icode_generation
;
7012 fra
.me
.meth
= LOCATE_icode_generation___ATrueExpr___generate_icode
;
7013 fra
.me
.has_broke
= 0;
7014 fra
.me
.REG_size
= 2;
7015 fra
.me
.REG
[0] = NIT_NULL
;
7016 fra
.me
.REG
[1] = NIT_NULL
;
7019 fra
.me
.REG
[1] = CALL_icode_builder___ICodeBuilder___lit_true_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7020 /* ./syntax//icode_generation.nit:997 */
7023 stack_frame_head
= fra
.me
.prev
;
7024 return fra
.me
.REG
[1];
7026 val_t
icode_generation___AFalseExpr___generate_icode(val_t p0
, val_t p1
){
7027 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7029 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7030 fra
.me
.file
= LOCATE_icode_generation
;
7032 fra
.me
.meth
= LOCATE_icode_generation___AFalseExpr___generate_icode
;
7033 fra
.me
.has_broke
= 0;
7034 fra
.me
.REG_size
= 2;
7035 fra
.me
.REG
[0] = NIT_NULL
;
7036 fra
.me
.REG
[1] = NIT_NULL
;
7039 fra
.me
.REG
[1] = CALL_icode_builder___ICodeBuilder___lit_false_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7040 /* ./syntax//icode_generation.nit:1004 */
7043 stack_frame_head
= fra
.me
.prev
;
7044 return fra
.me
.REG
[1];
7046 val_t
icode_generation___AIntExpr___generate_icode(val_t p0
, val_t p1
){
7047 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7050 static val_t once_value_1
; /* Once value */
7051 static val_t once_value_2
; /* Once value */
7052 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7053 fra
.me
.file
= LOCATE_icode_generation
;
7055 fra
.me
.meth
= LOCATE_icode_generation___AIntExpr___generate_icode
;
7056 fra
.me
.has_broke
= 0;
7057 fra
.me
.REG_size
= 4;
7058 fra
.me
.REG
[0] = NIT_NULL
;
7059 fra
.me
.REG
[1] = NIT_NULL
;
7060 fra
.me
.REG
[2] = NIT_NULL
;
7061 fra
.me
.REG
[3] = NIT_NULL
;
7065 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
7066 /* ./syntax//icode_generation.nit:1011 */
7067 if (!once_value_1
) {
7068 fra
.me
.REG
[3] = BOX_NativeString("TAG_Int(");
7070 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
7071 once_value_1
= fra
.me
.REG
[3];
7072 register_static_object(&once_value_1
);
7073 } else fra
.me
.REG
[3] = once_value_1
;
7074 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7075 fra
.me
.REG
[3] = CALL_parser_nodes___AIntExpr___n_number(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7076 fra
.me
.REG
[3] = CALL_lexer___Token___text(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7077 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7078 if (!once_value_2
) {
7079 fra
.me
.REG
[3] = BOX_NativeString(")");
7081 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
7082 once_value_2
= fra
.me
.REG
[3];
7083 register_static_object(&once_value_2
);
7084 } else fra
.me
.REG
[3] = once_value_2
;
7085 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7086 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7087 fra
.me
.REG
[2] = NEW_INative_icode_base___INative___init(fra
.me
.REG
[2], NIT_NULL
);
7088 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7089 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
7092 stack_frame_head
= fra
.me
.prev
;
7093 return fra
.me
.REG
[0];
7095 val_t
icode_generation___AFloatExpr___generate_icode(val_t p0
, val_t p1
){
7096 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7099 static val_t once_value_1
; /* Once value */
7100 static val_t once_value_2
; /* Once value */
7101 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7102 fra
.me
.file
= LOCATE_icode_generation
;
7104 fra
.me
.meth
= LOCATE_icode_generation___AFloatExpr___generate_icode
;
7105 fra
.me
.has_broke
= 0;
7106 fra
.me
.REG_size
= 4;
7107 fra
.me
.REG
[0] = NIT_NULL
;
7108 fra
.me
.REG
[1] = NIT_NULL
;
7109 fra
.me
.REG
[2] = NIT_NULL
;
7110 fra
.me
.REG
[3] = NIT_NULL
;
7114 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
7115 /* ./syntax//icode_generation.nit:1018 */
7116 if (!once_value_1
) {
7117 fra
.me
.REG
[3] = BOX_NativeString("BOX_Float(");
7118 REGB0
= TAG_Int(10);
7119 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
7120 once_value_1
= fra
.me
.REG
[3];
7121 register_static_object(&once_value_1
);
7122 } else fra
.me
.REG
[3] = once_value_1
;
7123 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7124 fra
.me
.REG
[3] = CALL_parser_nodes___AFloatExpr___n_float(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7125 fra
.me
.REG
[3] = CALL_lexer___Token___text(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7126 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7127 if (!once_value_2
) {
7128 fra
.me
.REG
[3] = BOX_NativeString(")");
7130 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
7131 once_value_2
= fra
.me
.REG
[3];
7132 register_static_object(&once_value_2
);
7133 } else fra
.me
.REG
[3] = once_value_2
;
7134 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7135 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7136 fra
.me
.REG
[2] = NEW_INative_icode_base___INative___init(fra
.me
.REG
[2], NIT_NULL
);
7137 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7138 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
7141 stack_frame_head
= fra
.me
.prev
;
7142 return fra
.me
.REG
[0];
7144 val_t
icode_generation___ACharExpr___generate_icode(val_t p0
, val_t p1
){
7145 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7148 static val_t once_value_1
; /* Once value */
7149 static val_t once_value_2
; /* Once value */
7150 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7151 fra
.me
.file
= LOCATE_icode_generation
;
7153 fra
.me
.meth
= LOCATE_icode_generation___ACharExpr___generate_icode
;
7154 fra
.me
.has_broke
= 0;
7155 fra
.me
.REG_size
= 4;
7156 fra
.me
.REG
[0] = NIT_NULL
;
7157 fra
.me
.REG
[1] = NIT_NULL
;
7158 fra
.me
.REG
[2] = NIT_NULL
;
7159 fra
.me
.REG
[3] = NIT_NULL
;
7163 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
7164 /* ./syntax//icode_generation.nit:1025 */
7165 if (!once_value_1
) {
7166 fra
.me
.REG
[3] = BOX_NativeString("TAG_Char(");
7168 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
7169 once_value_1
= fra
.me
.REG
[3];
7170 register_static_object(&once_value_1
);
7171 } else fra
.me
.REG
[3] = once_value_1
;
7172 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7173 fra
.me
.REG
[3] = CALL_parser_nodes___ACharExpr___n_char(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7174 fra
.me
.REG
[3] = CALL_lexer___Token___text(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7175 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7176 if (!once_value_2
) {
7177 fra
.me
.REG
[3] = BOX_NativeString(")");
7179 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
7180 once_value_2
= fra
.me
.REG
[3];
7181 register_static_object(&once_value_2
);
7182 } else fra
.me
.REG
[3] = once_value_2
;
7183 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7184 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7185 fra
.me
.REG
[2] = NEW_INative_icode_base___INative___init(fra
.me
.REG
[2], NIT_NULL
);
7186 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7187 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
7190 stack_frame_head
= fra
.me
.prev
;
7191 return fra
.me
.REG
[0];
7193 val_t
icode_generation___AStringFormExpr___generate_icode(val_t p0
, val_t p1
){
7194 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
7197 static val_t once_value_1
; /* Once value */
7198 static val_t once_value_2
; /* Once value */
7199 static val_t once_value_3
; /* Once value */
7200 static val_t once_value_4
; /* Once value */
7201 static val_t once_value_5
; /* Once value */
7202 static val_t once_value_6
; /* Once value */
7203 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7204 fra
.me
.file
= LOCATE_icode_generation
;
7206 fra
.me
.meth
= LOCATE_icode_generation___AStringFormExpr___generate_icode
;
7207 fra
.me
.has_broke
= 0;
7208 fra
.me
.REG_size
= 9;
7209 fra
.me
.REG
[0] = NIT_NULL
;
7210 fra
.me
.REG
[1] = NIT_NULL
;
7211 fra
.me
.REG
[2] = NIT_NULL
;
7212 fra
.me
.REG
[3] = NIT_NULL
;
7213 fra
.me
.REG
[4] = NIT_NULL
;
7214 fra
.me
.REG
[5] = NIT_NULL
;
7215 fra
.me
.REG
[6] = NIT_NULL
;
7216 fra
.me
.REG
[7] = NIT_NULL
;
7217 fra
.me
.REG
[8] = NIT_NULL
;
7220 /* ./syntax//icode_generation.nit:1032 */
7221 CALL_icode_generation___AStringFormExpr___compute_string_infos(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7222 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7223 fra
.me
.REG
[3] = NEW_IOnce_icode_base___IOnce___init();
7224 fra
.me
.REG
[4] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7225 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
7226 fra
.me
.REG
[3] = CALL_icode_base___IOnce___body(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7227 /* ./syntax//icode_generation.nit:1036 */
7228 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
7230 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
7231 /* ./syntax//icode_generation.nit:1037 */
7232 if (!once_value_1
) {
7233 fra
.me
.REG
[5] = BOX_NativeString("BOX_NativeString(\"");
7234 REGB0
= TAG_Int(18);
7235 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
7236 once_value_1
= fra
.me
.REG
[5];
7237 register_static_object(&once_value_1
);
7238 } else fra
.me
.REG
[5] = once_value_1
;
7239 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[5]);
7240 fra
.me
.REG
[5] = ATTR_icode_generation___AStringFormExpr____cstring(fra
.me
.REG
[0]);
7241 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
7242 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[5]);
7243 if (!once_value_2
) {
7244 fra
.me
.REG
[5] = BOX_NativeString("\")");
7246 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
7247 once_value_2
= fra
.me
.REG
[5];
7248 register_static_object(&once_value_2
);
7249 } else fra
.me
.REG
[5] = once_value_2
;
7250 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[5]);
7251 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7252 fra
.me
.REG
[3] = NEW_INative_icode_base___INative___init(fra
.me
.REG
[3], NIT_NULL
);
7253 fra
.me
.REG
[5] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7254 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___type_nativestring(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
7255 fra
.me
.REG
[5] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[5]);
7257 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
7258 /* ./syntax//icode_generation.nit:1038 */
7259 if (!once_value_3
) {
7260 fra
.me
.REG
[6] = BOX_NativeString("TAG_Int(");
7262 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
7263 once_value_3
= fra
.me
.REG
[6];
7264 register_static_object(&once_value_3
);
7265 } else fra
.me
.REG
[6] = once_value_3
;
7266 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[6]);
7267 fra
.me
.REG
[6] = ATTR_icode_generation___AStringFormExpr____cstring_length(fra
.me
.REG
[0]);
7268 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7269 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[6]);
7270 if (!once_value_4
) {
7271 fra
.me
.REG
[6] = BOX_NativeString(")");
7273 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
7274 once_value_4
= fra
.me
.REG
[6];
7275 register_static_object(&once_value_4
);
7276 } else fra
.me
.REG
[6] = once_value_4
;
7277 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[6]);
7278 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7279 fra
.me
.REG
[3] = NEW_INative_icode_base___INative___init(fra
.me
.REG
[3], NIT_NULL
);
7280 fra
.me
.REG
[6] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7281 fra
.me
.REG
[6] = CALL_syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7282 fra
.me
.REG
[6] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[6]);
7283 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7284 fra
.me
.REG
[7] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7285 /* ./syntax//icode_generation.nit:1039 */
7286 if (!once_value_5
) {
7287 if (!once_value_6
) {
7288 fra
.me
.REG
[8] = BOX_NativeString("with_native");
7289 REGB0
= TAG_Int(11);
7290 fra
.me
.REG
[8] = NEW_String_string___String___with_native(fra
.me
.REG
[8], REGB0
);
7291 once_value_6
= fra
.me
.REG
[8];
7292 register_static_object(&once_value_6
);
7293 } else fra
.me
.REG
[8] = once_value_6
;
7294 fra
.me
.REG
[8] = CALL_symbol___String___to_symbol(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
7295 once_value_5
= fra
.me
.REG
[8];
7296 register_static_object(&once_value_5
);
7297 } else fra
.me
.REG
[8] = once_value_5
;
7298 fra
.me
.REG
[8] = CALL_syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7], fra
.me
.REG
[8]);
7299 fra
.me
.REG
[7] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7301 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
7302 /* ./syntax//icode_generation.nit:1040 */
7303 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[5]);
7304 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[6]);
7305 fra
.me
.REG
[3] = NEW_INew_icode_base___INew___init(fra
.me
.REG
[7], fra
.me
.REG
[8], fra
.me
.REG
[3]);
7306 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7307 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
7308 /* ./syntax//icode_generation.nit:1041 */
7309 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[0]);
7310 /* ./syntax//icode_generation.nit:1042 */
7311 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7312 /* ./syntax//icode_generation.nit:1043 */
7315 stack_frame_head
= fra
.me
.prev
;
7316 return fra
.me
.REG
[4];
7318 val_t
icode_generation___AStringFormExpr___string_text(val_t p0
){
7319 struct {struct stack_frame_t me
;} fra
;
7321 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7322 fra
.me
.file
= LOCATE_icode_generation
;
7324 fra
.me
.meth
= LOCATE_icode_generation___AStringFormExpr___string_text
;
7325 fra
.me
.has_broke
= 0;
7326 fra
.me
.REG_size
= 0;
7327 /* ./syntax//icode_generation.nit:1046 */
7328 fprintf(stderr
, "Deferred method called");
7329 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1046);
7331 stack_frame_head
= fra
.me
.prev
;
7334 void icode_generation___AStringFormExpr___compute_string_infos(val_t p0
){
7335 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
7343 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7344 fra
.me
.file
= LOCATE_icode_generation
;
7346 fra
.me
.meth
= LOCATE_icode_generation___AStringFormExpr___compute_string_infos
;
7347 fra
.me
.has_broke
= 0;
7348 fra
.me
.REG_size
= 3;
7349 fra
.me
.REG
[0] = NIT_NULL
;
7350 fra
.me
.REG
[1] = NIT_NULL
;
7351 fra
.me
.REG
[2] = NIT_NULL
;
7354 fra
.me
.REG
[1] = CALL_icode_generation___AStringFormExpr___string_text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7355 fra
.me
.REG
[2] = NEW_Buffer_string___Buffer___init();
7357 /* ./syntax//icode_generation.nit:1062 */
7359 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
7360 /* ./../lib/standard//collection//array.nit:23 */
7361 if (UNTAG_Bool(REGB2
)) {
7363 fprintf(stderr
, "Uninitialized attribute %s", "_length");
7364 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
7367 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[1]);
7368 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
7369 /* ./syntax//icode_generation.nit:1062 */
7370 if (UNTAG_Bool(REGB2
)) {
7371 REGB2
= CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB1
);
7372 REGB3
= TAG_Char('\\');
7373 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB3
));
7374 /* ./syntax//icode_generation.nit:1064 */
7375 if (UNTAG_Bool(REGB4
)) {
7377 REGB3
= TAG_Bool((REGB2
)==(REGB3
));
7379 /* ./syntax//icode_generation.nit:1064 */
7381 if (UNTAG_Bool(REGB4
)) {
7383 REGB4
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB4
));
7385 REGB4
= CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB1
);
7386 REGB3
= TAG_Char('{');
7387 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB4
,REGB3
));
7388 /* ./syntax//icode_generation.nit:1067 */
7389 if (UNTAG_Bool(REGB5
)) {
7391 REGB3
= TAG_Bool((REGB4
)==(REGB3
));
7393 /* ./syntax//icode_generation.nit:1067 */
7395 REGB5
= TAG_Bool(!UNTAG_Bool(REGB5
));
7396 if (UNTAG_Bool(REGB5
)) {
7397 REGB5
= TAG_Char('}');
7398 REGB3
= TAG_Bool(IS_EQUAL_OO(REGB4
,REGB5
));
7399 if (UNTAG_Bool(REGB3
)) {
7401 REGB5
= TAG_Bool((REGB4
)==(REGB5
));
7403 /* ./syntax//icode_generation.nit:1067 */
7405 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
7407 REGB5
= TAG_Bool(false);
7410 if (UNTAG_Bool(REGB3
)) {
7411 /* ./syntax//icode_generation.nit:1068 */
7412 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB2
);
7415 /* ./syntax//icode_generation.nit:1070 */
7418 REGB4
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB4
));
7420 /* ./syntax//icode_generation.nit:1073 */
7421 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB2
);
7423 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
7425 /* ./syntax//icode_generation.nit:1074 */
7427 /* ./syntax//icode_generation.nit:1062 */
7432 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7433 /* ./syntax//icode_generation.nit:1076 */
7434 ATTR_icode_generation___AStringFormExpr____cstring(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
7435 /* ./syntax//icode_generation.nit:1077 */
7436 ATTR_icode_generation___AStringFormExpr____cstring_length(fra
.me
.REG
[0]) = REGB0
;
7437 stack_frame_head
= fra
.me
.prev
;
7440 val_t
icode_generation___AStringExpr___string_text(val_t p0
){
7441 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7446 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7447 fra
.me
.file
= LOCATE_icode_generation
;
7449 fra
.me
.meth
= LOCATE_icode_generation___AStringExpr___string_text
;
7450 fra
.me
.has_broke
= 0;
7451 fra
.me
.REG_size
= 2;
7452 fra
.me
.REG
[0] = NIT_NULL
;
7453 fra
.me
.REG
[1] = NIT_NULL
;
7455 fra
.me
.REG
[1] = CALL_parser_nodes___AStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7456 fra
.me
.REG
[1] = CALL_lexer___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7458 fra
.me
.REG
[0] = CALL_parser_nodes___AStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7459 fra
.me
.REG
[0] = CALL_lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7460 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
7461 /* ./../lib/standard//collection//array.nit:23 */
7462 if (UNTAG_Bool(REGB1
)) {
7464 fprintf(stderr
, "Uninitialized attribute %s", "_length");
7465 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
7468 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0]);
7470 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
7471 fra
.me
.REG
[1] = CALL_string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
7472 /* ./syntax//icode_generation.nit:1082 */
7475 stack_frame_head
= fra
.me
.prev
;
7476 return fra
.me
.REG
[1];
7478 val_t
icode_generation___AStartStringExpr___string_text(val_t p0
){
7479 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7484 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7485 fra
.me
.file
= LOCATE_icode_generation
;
7487 fra
.me
.meth
= LOCATE_icode_generation___AStartStringExpr___string_text
;
7488 fra
.me
.has_broke
= 0;
7489 fra
.me
.REG_size
= 2;
7490 fra
.me
.REG
[0] = NIT_NULL
;
7491 fra
.me
.REG
[1] = NIT_NULL
;
7493 fra
.me
.REG
[1] = CALL_parser_nodes___AStartStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7494 fra
.me
.REG
[1] = CALL_lexer___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7496 fra
.me
.REG
[0] = CALL_parser_nodes___AStartStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7497 fra
.me
.REG
[0] = CALL_lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7498 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
7499 /* ./../lib/standard//collection//array.nit:23 */
7500 if (UNTAG_Bool(REGB1
)) {
7502 fprintf(stderr
, "Uninitialized attribute %s", "_length");
7503 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
7506 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0]);
7508 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
7509 fra
.me
.REG
[1] = CALL_string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
7510 /* ./syntax//icode_generation.nit:1085 */
7513 stack_frame_head
= fra
.me
.prev
;
7514 return fra
.me
.REG
[1];
7516 val_t
icode_generation___AMidStringExpr___string_text(val_t p0
){
7517 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7522 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7523 fra
.me
.file
= LOCATE_icode_generation
;
7525 fra
.me
.meth
= LOCATE_icode_generation___AMidStringExpr___string_text
;
7526 fra
.me
.has_broke
= 0;
7527 fra
.me
.REG_size
= 2;
7528 fra
.me
.REG
[0] = NIT_NULL
;
7529 fra
.me
.REG
[1] = NIT_NULL
;
7531 fra
.me
.REG
[1] = CALL_parser_nodes___AMidStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7532 fra
.me
.REG
[1] = CALL_lexer___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7534 fra
.me
.REG
[0] = CALL_parser_nodes___AMidStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7535 fra
.me
.REG
[0] = CALL_lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7536 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
7537 /* ./../lib/standard//collection//array.nit:23 */
7538 if (UNTAG_Bool(REGB1
)) {
7540 fprintf(stderr
, "Uninitialized attribute %s", "_length");
7541 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
7544 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0]);
7546 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
7547 fra
.me
.REG
[1] = CALL_string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
7548 /* ./syntax//icode_generation.nit:1088 */
7551 stack_frame_head
= fra
.me
.prev
;
7552 return fra
.me
.REG
[1];
7554 val_t
icode_generation___AEndStringExpr___string_text(val_t p0
){
7555 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7560 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7561 fra
.me
.file
= LOCATE_icode_generation
;
7563 fra
.me
.meth
= LOCATE_icode_generation___AEndStringExpr___string_text
;
7564 fra
.me
.has_broke
= 0;
7565 fra
.me
.REG_size
= 2;
7566 fra
.me
.REG
[0] = NIT_NULL
;
7567 fra
.me
.REG
[1] = NIT_NULL
;
7569 fra
.me
.REG
[1] = CALL_parser_nodes___AEndStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7570 fra
.me
.REG
[1] = CALL_lexer___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7572 fra
.me
.REG
[0] = CALL_parser_nodes___AEndStringExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7573 fra
.me
.REG
[0] = CALL_lexer___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7574 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
7575 /* ./../lib/standard//collection//array.nit:23 */
7576 if (UNTAG_Bool(REGB1
)) {
7578 fprintf(stderr
, "Uninitialized attribute %s", "_length");
7579 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
7582 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0]);
7584 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
7585 fra
.me
.REG
[1] = CALL_string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
7586 /* ./syntax//icode_generation.nit:1091 */
7589 stack_frame_head
= fra
.me
.prev
;
7590 return fra
.me
.REG
[1];
7592 val_t
icode_generation___ASuperstringExpr___generate_icode(val_t p0
, val_t p1
){
7593 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
7597 static val_t once_value_1
; /* Once value */
7598 static val_t once_value_2
; /* Once value */
7599 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7600 fra
.me
.file
= LOCATE_icode_generation
;
7602 fra
.me
.meth
= LOCATE_icode_generation___ASuperstringExpr___generate_icode
;
7603 fra
.me
.has_broke
= 0;
7604 fra
.me
.REG_size
= 8;
7605 fra
.me
.REG
[0] = NIT_NULL
;
7606 fra
.me
.REG
[1] = NIT_NULL
;
7607 fra
.me
.REG
[2] = NIT_NULL
;
7608 fra
.me
.REG
[3] = NIT_NULL
;
7609 fra
.me
.REG
[4] = NIT_NULL
;
7610 fra
.me
.REG
[5] = NIT_NULL
;
7611 fra
.me
.REG
[6] = NIT_NULL
;
7612 fra
.me
.REG
[7] = NIT_NULL
;
7615 fra
.me
.REG
[2] = CALL_syntax_base___ASuperstringExpr___atype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7616 fra
.me
.REG
[3] = CALL_parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7617 REGB0
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7618 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___add_new_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], REGB0
);
7619 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7620 fra
.me
.REG
[4] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7621 fra
.me
.REG
[4] = CALL_syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7622 /* ./syntax//icode_generation.nit:1098 */
7623 if (!once_value_1
) {
7624 if (!once_value_2
) {
7625 fra
.me
.REG
[5] = BOX_NativeString("to_s");
7627 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
7628 once_value_2
= fra
.me
.REG
[5];
7629 register_static_object(&once_value_2
);
7630 } else fra
.me
.REG
[5] = once_value_2
;
7631 fra
.me
.REG
[5] = CALL_symbol___String___to_symbol(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
7632 once_value_1
= fra
.me
.REG
[5];
7633 register_static_object(&once_value_1
);
7634 } else fra
.me
.REG
[5] = once_value_1
;
7635 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4], fra
.me
.REG
[5]);
7636 fra
.me
.REG
[4] = CALL_parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7637 fra
.me
.REG
[4] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7638 /* ./syntax//icode_generation.nit:1099 */
7640 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7641 if (UNTAG_Bool(REGB0
)) {
7642 fra
.me
.REG
[3] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7643 fra
.me
.REG
[6] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
7644 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7645 fra
.me
.REG
[7] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7646 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[7]));
7647 /* ./syntax//icode_generation.nit:1101 */
7648 if (UNTAG_Bool(REGB0
)) {
7650 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7]);
7653 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7654 if (UNTAG_Bool(REGB0
)) {
7656 fra
.me
.REG
[7] = NEW_Array_array___Array___with_capacity(REGB0
);
7657 /* ./syntax//icode_generation.nit:1102 */
7658 array___Array___add(fra
.me
.REG
[7], fra
.me
.REG
[6]);
7659 fra
.me
.REG
[7] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[7]);
7660 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7661 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7], fra
.me
.REG
[3]);
7662 fra
.me
.REG
[6] = fra
.me
.REG
[3];
7664 /* ./syntax//icode_generation.nit:1104 */
7665 CALL_icode_generation___A2IContext___add_call_array_add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[6]);
7667 /* ./syntax//icode_generation.nit:1099 */
7670 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7674 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
7675 /* ./syntax//icode_generation.nit:1106 */
7676 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[2]);
7677 fra
.me
.REG
[4] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[4]);
7678 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7679 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[0]);
7682 stack_frame_head
= fra
.me
.prev
;
7683 return fra
.me
.REG
[0];
7685 val_t
icode_generation___ANullExpr___generate_icode(val_t p0
, val_t p1
){
7686 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7688 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7689 fra
.me
.file
= LOCATE_icode_generation
;
7691 fra
.me
.meth
= LOCATE_icode_generation___ANullExpr___generate_icode
;
7692 fra
.me
.has_broke
= 0;
7693 fra
.me
.REG_size
= 2;
7694 fra
.me
.REG
[0] = NIT_NULL
;
7695 fra
.me
.REG
[1] = NIT_NULL
;
7698 fra
.me
.REG
[1] = CALL_icode_builder___ICodeBuilder___lit_null_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7699 /* ./syntax//icode_generation.nit:1113 */
7702 stack_frame_head
= fra
.me
.prev
;
7703 return fra
.me
.REG
[1];
7705 val_t
icode_generation___AArrayExpr___generate_icode(val_t p0
, val_t p1
){
7706 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
7709 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7710 fra
.me
.file
= LOCATE_icode_generation
;
7712 fra
.me
.meth
= LOCATE_icode_generation___AArrayExpr___generate_icode
;
7713 fra
.me
.has_broke
= 0;
7714 fra
.me
.REG_size
= 4;
7715 fra
.me
.REG
[0] = NIT_NULL
;
7716 fra
.me
.REG
[1] = NIT_NULL
;
7717 fra
.me
.REG
[2] = NIT_NULL
;
7718 fra
.me
.REG
[3] = NIT_NULL
;
7721 fra
.me
.REG
[2] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7722 fra
.me
.REG
[3] = CALL_parser_nodes___AArrayExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7723 REGB0
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7724 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___add_new_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], REGB0
);
7725 fra
.me
.REG
[0] = CALL_parser_nodes___AArrayExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7726 fra
.me
.REG
[0] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7727 /* ./syntax//icode_generation.nit:1121 */
7729 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7730 if (UNTAG_Bool(REGB0
)) {
7731 fra
.me
.REG
[3] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7732 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
7733 /* ./syntax//icode_generation.nit:1123 */
7734 CALL_icode_generation___A2IContext___add_call_array_add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
7736 /* ./syntax//icode_generation.nit:1121 */
7739 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7742 /* ./syntax//icode_generation.nit:1125 */
7745 stack_frame_head
= fra
.me
.prev
;
7746 return fra
.me
.REG
[2];
7748 val_t
icode_generation___ACrangeExpr___generate_icode(val_t p0
, val_t p1
){
7749 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
7752 static val_t once_value_1
; /* Once value */
7753 static val_t once_value_2
; /* Once value */
7754 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7755 fra
.me
.file
= LOCATE_icode_generation
;
7757 fra
.me
.meth
= LOCATE_icode_generation___ACrangeExpr___generate_icode
;
7758 fra
.me
.has_broke
= 0;
7759 fra
.me
.REG_size
= 7;
7760 fra
.me
.REG
[0] = NIT_NULL
;
7761 fra
.me
.REG
[1] = NIT_NULL
;
7762 fra
.me
.REG
[2] = NIT_NULL
;
7763 fra
.me
.REG
[3] = NIT_NULL
;
7764 fra
.me
.REG
[4] = NIT_NULL
;
7765 fra
.me
.REG
[5] = NIT_NULL
;
7766 fra
.me
.REG
[6] = NIT_NULL
;
7769 fra
.me
.REG
[2] = CALL_parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7770 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7771 fra
.me
.REG
[3] = CALL_parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7772 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
7773 fra
.me
.REG
[4] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7774 fra
.me
.REG
[5] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7775 /* ./syntax//icode_generation.nit:1134 */
7776 if (!once_value_1
) {
7777 if (!once_value_2
) {
7778 fra
.me
.REG
[6] = BOX_NativeString("init");
7780 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
7781 once_value_2
= fra
.me
.REG
[6];
7782 register_static_object(&once_value_2
);
7783 } else fra
.me
.REG
[6] = once_value_2
;
7784 fra
.me
.REG
[6] = CALL_symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7785 once_value_1
= fra
.me
.REG
[6];
7786 register_static_object(&once_value_1
);
7787 } else fra
.me
.REG
[6] = once_value_1
;
7788 fra
.me
.REG
[6] = CALL_syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5], fra
.me
.REG
[6]);
7789 fra
.me
.REG
[5] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7791 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
7792 /* ./syntax//icode_generation.nit:1135 */
7793 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[2]);
7794 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7795 fra
.me
.REG
[4] = NEW_INew_icode_base___INew___init(fra
.me
.REG
[5], fra
.me
.REG
[6], fra
.me
.REG
[4]);
7796 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7797 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[0]);
7800 stack_frame_head
= fra
.me
.prev
;
7801 return fra
.me
.REG
[0];
7803 val_t
icode_generation___AOrangeExpr___generate_icode(val_t p0
, val_t p1
){
7804 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
7807 static val_t once_value_1
; /* Once value */
7808 static val_t once_value_2
; /* Once value */
7809 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7810 fra
.me
.file
= LOCATE_icode_generation
;
7812 fra
.me
.meth
= LOCATE_icode_generation___AOrangeExpr___generate_icode
;
7813 fra
.me
.has_broke
= 0;
7814 fra
.me
.REG_size
= 7;
7815 fra
.me
.REG
[0] = NIT_NULL
;
7816 fra
.me
.REG
[1] = NIT_NULL
;
7817 fra
.me
.REG
[2] = NIT_NULL
;
7818 fra
.me
.REG
[3] = NIT_NULL
;
7819 fra
.me
.REG
[4] = NIT_NULL
;
7820 fra
.me
.REG
[5] = NIT_NULL
;
7821 fra
.me
.REG
[6] = NIT_NULL
;
7824 fra
.me
.REG
[2] = CALL_parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7825 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
7826 fra
.me
.REG
[3] = CALL_parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7827 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
7828 fra
.me
.REG
[4] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7829 fra
.me
.REG
[5] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7830 /* ./syntax//icode_generation.nit:1144 */
7831 if (!once_value_1
) {
7832 if (!once_value_2
) {
7833 fra
.me
.REG
[6] = BOX_NativeString("without_last");
7834 REGB0
= TAG_Int(12);
7835 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
7836 once_value_2
= fra
.me
.REG
[6];
7837 register_static_object(&once_value_2
);
7838 } else fra
.me
.REG
[6] = once_value_2
;
7839 fra
.me
.REG
[6] = CALL_symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7840 once_value_1
= fra
.me
.REG
[6];
7841 register_static_object(&once_value_1
);
7842 } else fra
.me
.REG
[6] = once_value_1
;
7843 fra
.me
.REG
[6] = CALL_syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5], fra
.me
.REG
[6]);
7844 fra
.me
.REG
[5] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7846 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
7847 /* ./syntax//icode_generation.nit:1145 */
7848 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[2]);
7849 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[3]);
7850 fra
.me
.REG
[4] = NEW_INew_icode_base___INew___init(fra
.me
.REG
[5], fra
.me
.REG
[6], fra
.me
.REG
[4]);
7851 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7852 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[0]);
7855 stack_frame_head
= fra
.me
.prev
;
7856 return fra
.me
.REG
[0];
7858 val_t
icode_generation___ASuperExpr___generate_icode(val_t p0
, val_t p1
){
7859 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
7864 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7865 fra
.me
.file
= LOCATE_icode_generation
;
7867 fra
.me
.meth
= LOCATE_icode_generation___ASuperExpr___generate_icode
;
7868 fra
.me
.has_broke
= 0;
7869 fra
.me
.REG_size
= 6;
7870 fra
.me
.REG
[0] = NIT_NULL
;
7871 fra
.me
.REG
[1] = NIT_NULL
;
7872 fra
.me
.REG
[2] = NIT_NULL
;
7873 fra
.me
.REG
[3] = NIT_NULL
;
7874 fra
.me
.REG
[4] = NIT_NULL
;
7875 fra
.me
.REG
[5] = NIT_NULL
;
7878 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7879 fra
.me
.REG
[2] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7880 REGB0
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7882 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
7883 fra
.me
.REG
[2] = CALL_syntax_base___ASuperExpr___init_in_superclass(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7884 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7885 /* ./syntax//icode_generation.nit:1153 */
7886 if (UNTAG_Bool(REGB0
)) {
7888 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7889 if (UNTAG_Bool(REGB2
)) {
7890 REGB2
= TAG_Bool(false);
7893 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7897 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
7898 if (UNTAG_Bool(REGB0
)) {
7899 fra
.me
.REG
[2] = CALL_syntax_base___ASuperExpr___init_in_superclass(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7900 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7901 /* ./syntax//icode_generation.nit:1154 */
7902 if (UNTAG_Bool(REGB0
)) {
7903 fprintf(stderr
, "Reciever is null");
7904 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1154);
7907 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7908 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7909 if (UNTAG_Bool(REGB0
)) {
7910 fprintf(stderr
, "Reciever is null");
7911 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1154);
7914 REGB0
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
7918 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
7919 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
7920 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7921 fra
.me
.REG
[3] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7923 fra
.me
.REG
[3] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
7924 /* ./syntax//icode_generation.nit:1157 */
7925 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
7926 fra
.me
.REG
[3] = CALL_parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7927 REGB0
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7928 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
7929 /* ./syntax//icode_generation.nit:1158 */
7930 if (UNTAG_Bool(REGB2
)) {
7932 REGB0
= TAG_Bool((REGB0
)==(REGB1
));
7934 /* ./syntax//icode_generation.nit:1158 */
7936 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
7937 if (UNTAG_Bool(REGB2
)) {
7939 fra
.me
.REG
[3] = NEW_Range_range___Range___without_last(REGB2
, REGB1
);
7940 fra
.me
.REG
[3] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7941 /* ./syntax//icode_generation.nit:1159 */
7943 REGB1
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7944 if (UNTAG_Bool(REGB1
)) {
7945 REGB1
= CALL_abstract_collection___Iterator___item(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7946 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
7947 fra
.me
.REG
[4] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
7949 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
7950 fra
.me
.REG
[4] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB2
);
7951 /* ./syntax//icode_generation.nit:1160 */
7952 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[4]);
7954 /* ./syntax//icode_generation.nit:1159 */
7957 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7961 fra
.me
.REG
[3] = CALL_parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7962 fra
.me
.REG
[3] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7963 /* ./syntax//icode_generation.nit:1163 */
7965 REGB2
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7966 if (UNTAG_Bool(REGB2
)) {
7967 fra
.me
.REG
[4] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7968 fra
.me
.REG
[4] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
7969 /* ./syntax//icode_generation.nit:1164 */
7970 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[4]);
7972 /* ./syntax//icode_generation.nit:1163 */
7975 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
7979 fra
.me
.REG
[3] = CALL_syntax_base___ASuperExpr___init_in_superclass(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
7980 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
7981 /* ./syntax//icode_generation.nit:1168 */
7982 if (UNTAG_Bool(REGB2
)) {
7984 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
7985 if (UNTAG_Bool(REGB1
)) {
7986 REGB1
= TAG_Bool(false);
7989 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
7993 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
7994 if (UNTAG_Bool(REGB2
)) {
7995 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
7996 /* ./syntax//icode_generation.nit:1169 */
7997 if (UNTAG_Bool(REGB2
)) {
7998 fprintf(stderr
, "Reciever is null");
7999 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1169);
8002 fra
.me
.REG
[4] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8003 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8004 if (UNTAG_Bool(REGB2
)) {
8005 fprintf(stderr
, "Reciever is null");
8006 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1169);
8009 fra
.me
.REG
[4] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8010 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8011 /* ./syntax//icode_generation.nit:1170 */
8012 if (UNTAG_Bool(REGB2
)) {
8014 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8015 if (UNTAG_Bool(REGB1
)) {
8016 REGB1
= TAG_Bool(false);
8019 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
8023 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
8024 if (UNTAG_Bool(REGB2
)) {
8025 fra
.me
.REG
[5] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
8026 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[4]);
8027 /* ./syntax//icode_generation.nit:1171 */
8030 fra
.me
.REG
[5] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
8031 /* ./syntax//icode_generation.nit:1173 */
8032 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
8033 fra
.me
.REG
[4] = NIT_NULL
;
8034 /* ./syntax//icode_generation.nit:1174 */
8038 fra
.me
.REG
[0] = CALL_syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8039 fra
.me
.REG
[3] = fra
.me
.REG
[0];
8040 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8041 /* ./syntax//icode_generation.nit:1178 */
8042 if (UNTAG_Bool(REGB2
)) {
8043 fprintf(stderr
, "Reciever is null");
8044 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1178);
8047 fra
.me
.REG
[0] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8048 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
8049 if (UNTAG_Bool(REGB2
)) {
8050 fprintf(stderr
, "Reciever is null");
8051 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1178);
8054 fra
.me
.REG
[0] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8055 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
8056 /* ./syntax//icode_generation.nit:1179 */
8057 if (UNTAG_Bool(REGB2
)) {
8059 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
8060 if (UNTAG_Bool(REGB1
)) {
8061 REGB1
= TAG_Bool(false);
8064 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
8068 if (UNTAG_Bool(REGB2
)) {
8069 fra
.me
.REG
[5] = NEW_ISuper_icode_base___ISuper___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
8070 /* ./syntax//icode_generation.nit:1180 */
8071 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
8072 fra
.me
.REG
[4] = NIT_NULL
;
8073 /* ./syntax//icode_generation.nit:1181 */
8076 fra
.me
.REG
[2] = NEW_ISuper_icode_base___ISuper___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
8077 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
8078 fra
.me
.REG
[4] = fra
.me
.REG
[0];
8079 /* ./syntax//icode_generation.nit:1183 */
8084 stack_frame_head
= fra
.me
.prev
;
8085 return fra
.me
.REG
[4];
8087 val_t
icode_generation___AAttrExpr___generate_icode(val_t p0
, val_t p1
){
8088 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
8091 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8092 fra
.me
.file
= LOCATE_icode_generation
;
8094 fra
.me
.meth
= LOCATE_icode_generation___AAttrExpr___generate_icode
;
8095 fra
.me
.has_broke
= 0;
8096 fra
.me
.REG_size
= 4;
8097 fra
.me
.REG
[0] = NIT_NULL
;
8098 fra
.me
.REG
[1] = NIT_NULL
;
8099 fra
.me
.REG
[2] = NIT_NULL
;
8100 fra
.me
.REG
[3] = NIT_NULL
;
8103 fra
.me
.REG
[2] = CALL_parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8104 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8105 fra
.me
.REG
[3] = CALL_parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8106 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8107 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8108 /* ./syntax//icode_generation.nit:1193 */
8109 if (UNTAG_Bool(REGB0
)) {
8110 CALL_icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8112 fra
.me
.REG
[0] = CALL_syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8113 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___add_attr_read(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
8114 /* ./syntax//icode_generation.nit:1194 */
8117 stack_frame_head
= fra
.me
.prev
;
8118 return fra
.me
.REG
[2];
8120 val_t
icode_generation___AAttrAssignExpr___generate_icode(val_t p0
, val_t p1
){
8121 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
8124 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8125 fra
.me
.file
= LOCATE_icode_generation
;
8127 fra
.me
.meth
= LOCATE_icode_generation___AAttrAssignExpr___generate_icode
;
8128 fra
.me
.has_broke
= 0;
8129 fra
.me
.REG_size
= 4;
8130 fra
.me
.REG
[0] = NIT_NULL
;
8131 fra
.me
.REG
[1] = NIT_NULL
;
8132 fra
.me
.REG
[2] = NIT_NULL
;
8133 fra
.me
.REG
[3] = NIT_NULL
;
8136 fra
.me
.REG
[2] = CALL_parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8137 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8138 fra
.me
.REG
[3] = CALL_parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8139 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8140 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8141 /* ./syntax//icode_generation.nit:1202 */
8142 if (UNTAG_Bool(REGB0
)) {
8143 CALL_icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8145 fra
.me
.REG
[3] = CALL_parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8146 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
8147 fra
.me
.REG
[0] = CALL_syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8148 fra
.me
.REG
[3] = NEW_IAttrWrite_icode_base___IAttrWrite___init(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[3]);
8149 /* ./syntax//icode_generation.nit:1204 */
8150 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
8151 fra
.me
.REG
[3] = NIT_NULL
;
8152 /* ./syntax//icode_generation.nit:1205 */
8155 stack_frame_head
= fra
.me
.prev
;
8156 return fra
.me
.REG
[3];
8158 val_t
icode_generation___AAttrReassignExpr___generate_icode(val_t p0
, val_t p1
){
8159 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
8162 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8163 fra
.me
.file
= LOCATE_icode_generation
;
8165 fra
.me
.meth
= LOCATE_icode_generation___AAttrReassignExpr___generate_icode
;
8166 fra
.me
.has_broke
= 0;
8167 fra
.me
.REG_size
= 7;
8168 fra
.me
.REG
[0] = NIT_NULL
;
8169 fra
.me
.REG
[1] = NIT_NULL
;
8170 fra
.me
.REG
[2] = NIT_NULL
;
8171 fra
.me
.REG
[3] = NIT_NULL
;
8172 fra
.me
.REG
[4] = NIT_NULL
;
8173 fra
.me
.REG
[5] = NIT_NULL
;
8174 fra
.me
.REG
[6] = NIT_NULL
;
8177 fra
.me
.REG
[2] = CALL_parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8178 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8179 fra
.me
.REG
[3] = CALL_parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8180 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8181 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8182 /* ./syntax//icode_generation.nit:1212 */
8183 if (UNTAG_Bool(REGB0
)) {
8184 CALL_icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8186 fra
.me
.REG
[3] = CALL_syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8187 fra
.me
.REG
[3] = NEW_IAttrRead_icode_base___IAttrRead___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
8188 fra
.me
.REG
[4] = CALL_syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8189 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
8190 fra
.me
.REG
[3] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8191 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
8192 fra
.me
.REG
[5] = CALL_syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8194 fra
.me
.REG
[6] = NEW_Array_array___Array___with_capacity(REGB0
);
8195 /* ./syntax//icode_generation.nit:1215 */
8196 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[4]);
8197 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[3]);
8198 fra
.me
.REG
[6] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[6]);
8199 fra
.me
.REG
[5] = CALL_syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8200 fra
.me
.REG
[5] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6], fra
.me
.REG
[5]);
8201 fra
.me
.REG
[0] = CALL_syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8202 fra
.me
.REG
[5] = NEW_IAttrWrite_icode_base___IAttrWrite___init(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[5]);
8203 /* ./syntax//icode_generation.nit:1216 */
8204 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
8205 fra
.me
.REG
[5] = NIT_NULL
;
8206 /* ./syntax//icode_generation.nit:1217 */
8209 stack_frame_head
= fra
.me
.prev
;
8210 return fra
.me
.REG
[5];
8212 val_t
icode_generation___AIssetAttrExpr___generate_icode(val_t p0
, val_t p1
){
8213 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
8216 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8217 fra
.me
.file
= LOCATE_icode_generation
;
8219 fra
.me
.meth
= LOCATE_icode_generation___AIssetAttrExpr___generate_icode
;
8220 fra
.me
.has_broke
= 0;
8221 fra
.me
.REG_size
= 4;
8222 fra
.me
.REG
[0] = NIT_NULL
;
8223 fra
.me
.REG
[1] = NIT_NULL
;
8224 fra
.me
.REG
[2] = NIT_NULL
;
8225 fra
.me
.REG
[3] = NIT_NULL
;
8228 fra
.me
.REG
[2] = CALL_parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8229 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8230 fra
.me
.REG
[3] = CALL_parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8231 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8232 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8233 /* ./syntax//icode_generation.nit:1225 */
8234 if (UNTAG_Bool(REGB0
)) {
8235 CALL_icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8237 fra
.me
.REG
[3] = CALL_syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8238 fra
.me
.REG
[2] = NEW_IAttrIsset_icode_base___IAttrIsset___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
8239 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8240 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
8241 /* ./syntax//icode_generation.nit:1226 */
8244 stack_frame_head
= fra
.me
.prev
;
8245 return fra
.me
.REG
[0];
8247 void icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
8248 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
8257 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8258 fra
.me
.file
= LOCATE_icode_generation
;
8260 fra
.me
.meth
= LOCATE_icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in
;
8261 fra
.me
.has_broke
= 0;
8262 fra
.me
.REG_size
= 9;
8263 fra
.me
.REG
[0] = NIT_NULL
;
8264 fra
.me
.REG
[1] = NIT_NULL
;
8265 fra
.me
.REG
[2] = NIT_NULL
;
8266 fra
.me
.REG
[3] = NIT_NULL
;
8267 fra
.me
.REG
[4] = NIT_NULL
;
8268 fra
.me
.REG
[5] = NIT_NULL
;
8269 fra
.me
.REG
[6] = NIT_NULL
;
8270 fra
.me
.REG
[7] = NIT_NULL
;
8271 fra
.me
.REG
[8] = NIT_NULL
;
8276 REGB0
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8277 REGB1
= CALL_vararg___MMSignature___vararg_rank(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8278 fra
.me
.REG
[0] = CALL_syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8279 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
8280 /* ./../lib/standard//collection//array.nit:23 */
8281 if (UNTAG_Bool(REGB2
)) {
8283 fprintf(stderr
, "Uninitialized attribute %s", "_length");
8284 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
8287 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0]);
8290 fra
.me
.REG
[4] = NEW_Range_range___Range___without_last(REGB4
, REGB0
);
8291 fra
.me
.REG
[4] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8292 /* ./syntax//icode_generation.nit:1239 */
8294 REGB4
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8295 if (UNTAG_Bool(REGB4
)) {
8296 REGB4
= CALL_abstract_collection___Iterator___item(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8297 fra
.me
.REG
[5] = CALL_static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB4
);
8298 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB4
,REGB1
));
8299 /* ./syntax//icode_generation.nit:1242 */
8300 if (UNTAG_Bool(REGB5
)) {
8302 REGB4
= TAG_Bool((REGB4
)==(REGB1
));
8304 /* ./syntax//icode_generation.nit:1242 */
8306 if (UNTAG_Bool(REGB5
)) {
8307 fra
.me
.REG
[6] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8308 fra
.me
.REG
[5] = CALL_syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
8309 REGB5
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB0
));
8310 fra
.me
.REG
[5] = CALL_icode_generation___A2IContext___add_new_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], REGB5
);
8312 REGB4
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB0
));
8313 fra
.me
.REG
[6] = NEW_Range_range___Range___init(REGB5
, REGB4
);
8314 fra
.me
.REG
[6] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
8315 /* ./syntax//icode_generation.nit:1244 */
8317 REGB4
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
8318 if (UNTAG_Bool(REGB4
)) {
8319 REGB4
= CALL_abstract_collection___Iterator___item(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
8320 fra
.me
.REG
[7] = fra
.me
.REG
[0];
8323 REGB5
= TAG_Bool(UNTAG_Int(REGB4
)>=UNTAG_Int(REGB5
));
8324 /* ./../lib/standard//collection//array.nit:233 */
8325 if (UNTAG_Bool(REGB5
)) {
8326 REGB5
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7])!=NIT_NULL
);
8327 if (UNTAG_Bool(REGB5
)) {
8329 fprintf(stderr
, "Uninitialized attribute %s", "_length");
8330 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
8333 REGB5
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[7]);
8334 REGB5
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB5
));
8335 /* ./../lib/standard//collection//array.nit:233 */
8337 REGB6
= TAG_Bool(false);
8340 if (UNTAG_Bool(REGB5
)) {
8342 fprintf(stderr
, "Assert %s failed", "'index'");
8343 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
8346 fra
.me
.REG
[7] = ATTR_array___Array____items(fra
.me
.REG
[7]);
8347 REGB5
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
8348 /* ./../lib/standard//collection//array.nit:234 */
8349 if (UNTAG_Bool(REGB5
)) {
8350 fprintf(stderr
, "Reciever is null");
8351 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
8354 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[7])->val
[UNTAG_Int(REGB4
)];
8355 /* ./../lib/standard//collection//array.nit:234 */
8358 fra
.me
.REG
[8] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
8359 /* ./syntax//icode_generation.nit:1246 */
8360 CALL_icode_generation___A2IContext___add_call_array_add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[8]);
8362 REGB4
= TAG_Int(UNTAG_Int(REGB3
)+UNTAG_Int(REGB4
));
8364 /* ./syntax//icode_generation.nit:1247 */
8366 /* ./syntax//icode_generation.nit:1244 */
8369 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
8372 /* ./syntax//icode_generation.nit:1249 */
8373 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[5]);
8375 fra
.me
.REG
[5] = fra
.me
.REG
[0];
8378 REGB5
= TAG_Bool(UNTAG_Int(REGB4
)>=UNTAG_Int(REGB5
));
8379 /* ./../lib/standard//collection//array.nit:233 */
8380 if (UNTAG_Bool(REGB5
)) {
8381 REGB5
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
8382 if (UNTAG_Bool(REGB5
)) {
8384 fprintf(stderr
, "Uninitialized attribute %s", "_length");
8385 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
8388 REGB5
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5]);
8389 REGB5
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB5
));
8390 /* ./../lib/standard//collection//array.nit:233 */
8392 REGB6
= TAG_Bool(false);
8395 if (UNTAG_Bool(REGB5
)) {
8397 fprintf(stderr
, "Assert %s failed", "'index'");
8398 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
8401 fra
.me
.REG
[5] = ATTR_array___Array____items(fra
.me
.REG
[5]);
8402 REGB5
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8403 /* ./../lib/standard//collection//array.nit:234 */
8404 if (UNTAG_Bool(REGB5
)) {
8405 fprintf(stderr
, "Reciever is null");
8406 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
8409 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB4
)];
8410 /* ./../lib/standard//collection//array.nit:234 */
8413 fra
.me
.REG
[7] = fra
.me
.REG
[5];
8414 fra
.me
.REG
[5] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
8415 /* ./syntax//icode_generation.nit:1252 */
8416 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[5]);
8418 REGB4
= TAG_Int(UNTAG_Int(REGB3
)+UNTAG_Int(REGB4
));
8420 /* ./syntax//icode_generation.nit:1253 */
8423 /* ./syntax//icode_generation.nit:1239 */
8426 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8429 stack_frame_head
= fra
.me
.prev
;
8432 val_t
icode_generation___ASendExpr___generate_icode(val_t p0
, val_t p1
){
8433 struct {struct stack_frame_t me
; val_t MORE_REG
[13];} fra
;
8438 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8439 fra
.me
.file
= LOCATE_icode_generation
;
8441 fra
.me
.meth
= LOCATE_icode_generation___ASendExpr___generate_icode
;
8442 fra
.me
.has_broke
= 0;
8443 fra
.me
.REG_size
= 14;
8444 fra
.me
.REG
[0] = NIT_NULL
;
8445 fra
.me
.REG
[1] = NIT_NULL
;
8446 fra
.me
.REG
[2] = NIT_NULL
;
8447 fra
.me
.REG
[3] = NIT_NULL
;
8448 fra
.me
.REG
[4] = NIT_NULL
;
8449 fra
.me
.REG
[5] = NIT_NULL
;
8450 fra
.me
.REG
[6] = NIT_NULL
;
8451 fra
.me
.REG
[7] = NIT_NULL
;
8452 fra
.me
.REG
[8] = NIT_NULL
;
8453 fra
.me
.REG
[9] = NIT_NULL
;
8454 fra
.me
.REG
[10] = NIT_NULL
;
8455 fra
.me
.REG
[11] = NIT_NULL
;
8456 fra
.me
.REG
[12] = NIT_NULL
;
8457 fra
.me
.REG
[13] = NIT_NULL
;
8460 fra
.me
.REG
[2] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8461 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8462 fra
.me
.REG
[3] = NEW_Array_array___Array___init();
8463 /* ./syntax//icode_generation.nit:1264 */
8464 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[2]);
8465 fra
.me
.REG
[2] = CALL_syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8466 fra
.me
.REG
[4] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8467 REGB0
= TAG_Bool((fra
.me
.REG
[4]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[4], COLOR_MMSignature
, ID_MMSignature
)) /*cast MMSignature*/;
8468 /* ./syntax//icode_generation.nit:1266 */
8469 if (UNTAG_Bool(REGB0
)) {
8471 fprintf(stderr
, "Cast failed");
8472 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1266);
8475 CALL_icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
8476 fra
.me
.REG
[4] = NIT_NULL
;
8477 fra
.me
.REG
[5] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8478 fra
.me
.REG
[6] = NIT_NULL
;
8479 fra
.me
.REG
[7] = CALL_syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8480 fra
.me
.REG
[7] = CALL_static_type___MMSignature___closures(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8481 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8482 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8483 /* ./syntax//icode_generation.nit:1273 */
8484 if (UNTAG_Bool(REGB0
)) {
8485 fra
.me
.REG
[7] = CALL_syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8486 fra
.me
.REG
[7] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
8487 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
8488 /* ./syntax//icode_generation.nit:1275 */
8489 if (UNTAG_Bool(REGB0
)) {
8491 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
8492 if (UNTAG_Bool(REGB1
)) {
8493 REGB1
= TAG_Bool(false);
8496 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
8500 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8501 if (UNTAG_Bool(REGB0
)) {
8502 fra
.me
.REG
[7] = CALL_icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
8503 fra
.me
.REG
[4] = fra
.me
.REG
[7];
8504 /* ./syntax//icode_generation.nit:1276 */
8506 fra
.me
.REG
[7] = NEW_ISeq_icode_base___ISeq___init();
8507 /* ./syntax//icode_generation.nit:1279 */
8508 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
8509 /* ./syntax//icode_generation.nit:1280 */
8510 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
8511 fra
.me
.REG
[8] = NEW_Array_array___Array___init();
8512 fra
.me
.REG
[6] = fra
.me
.REG
[8];
8514 fra
.me
.REG
[8] = CALL_syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8515 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
8516 /* ./syntax//icode_generation.nit:1283 */
8517 if (UNTAG_Bool(REGB0
)) {
8519 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
8520 if (UNTAG_Bool(REGB1
)) {
8521 REGB1
= TAG_Bool(false);
8524 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
8528 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8529 if (UNTAG_Bool(REGB0
)) {
8530 fra
.me
.REG
[8] = CALL_syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8531 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
8532 if (UNTAG_Bool(REGB0
)) {
8533 fprintf(stderr
, "Reciever is null");
8534 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1283);
8537 REGB0
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[8])!=NIT_NULL
);
8538 /* ./../lib/standard//collection//array.nit:23 */
8539 if (UNTAG_Bool(REGB0
)) {
8541 fprintf(stderr
, "Uninitialized attribute %s", "_length");
8542 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
8545 REGB0
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[8]);
8546 /* ./syntax//icode_generation.nit:1283 */
8548 fra
.me
.REG
[8] = CALL_syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8549 fra
.me
.REG
[9] = CALL_syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8550 fra
.me
.REG
[9] = CALL_static_type___MMSignature___closures(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
8551 fra
.me
.REG
[9] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
8552 /* ./syntax//icode_generation.nit:1285 */
8554 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
8555 if (UNTAG_Bool(REGB0
)) {
8556 fra
.me
.REG
[10] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
8557 REGB0
= TAG_Bool(false);
8558 fra
.me
.REG
[10] = CALL_static_type___MMClosure___name(fra
.me
.REG
[10])(fra
.me
.REG
[10]);
8559 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
8560 /* ./syntax//icode_generation.nit:1288 */
8561 if (UNTAG_Bool(REGB1
)) {
8563 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
8564 if (UNTAG_Bool(REGB2
)) {
8565 REGB2
= TAG_Bool(false);
8568 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
8572 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
8573 if (UNTAG_Bool(REGB1
)) {
8574 fra
.me
.REG
[11] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
8575 /* ./syntax//icode_generation.nit:1289 */
8577 REGB1
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
8578 if (UNTAG_Bool(REGB1
)) {
8579 fra
.me
.REG
[12] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
8580 fra
.me
.REG
[13] = CALL_parser_nodes___AClosureDef___n_id(fra
.me
.REG
[12])(fra
.me
.REG
[12]);
8581 fra
.me
.REG
[13] = CALL_typing___AClosureId___to_symbol(fra
.me
.REG
[13])(fra
.me
.REG
[13]);
8582 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[13],fra
.me
.REG
[10]));
8583 /* ./syntax//icode_generation.nit:1290 */
8584 if (UNTAG_Bool(REGB1
)) {
8586 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[10]);
8589 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
8590 if (UNTAG_Bool(REGB1
)) {
8593 REGB1
= TAG_Bool(false);
8594 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
8595 /* ./syntax//icode_generation.nit:1291 */
8596 if (UNTAG_Bool(REGB2
)) {
8598 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
8600 /* ./syntax//icode_generation.nit:1291 */
8602 if (UNTAG_Bool(REGB2
)) {
8604 fprintf(stderr
, "Assert failed");
8605 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1291);
8608 REGB2
= TAG_Bool(true);
8610 fra
.me
.REG
[13] = CALL_typing___AClosureDef___escapable(fra
.me
.REG
[12])(fra
.me
.REG
[12]);
8611 REGB2
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
8612 /* ./syntax//icode_generation.nit:1293 */
8613 if (UNTAG_Bool(REGB2
)) {
8614 fprintf(stderr
, "Reciever is null");
8615 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1293);
8618 CALL_icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[7]);
8619 fra
.me
.REG
[13] = CALL_typing___AClosureDef___escapable(fra
.me
.REG
[12])(fra
.me
.REG
[12]);
8620 REGB2
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
8621 /* ./syntax//icode_generation.nit:1294 */
8622 if (UNTAG_Bool(REGB2
)) {
8623 fprintf(stderr
, "Reciever is null");
8624 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1294);
8627 CALL_icode_generation___EscapableBlock___break_value__eq(fra
.me
.REG
[13])(fra
.me
.REG
[13], fra
.me
.REG
[4]);
8628 fra
.me
.REG
[12] = CALL_icode_generation___AClosureDef___generate_iclosuredef(fra
.me
.REG
[12])(fra
.me
.REG
[12], fra
.me
.REG
[1]);
8629 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
8630 /* ./syntax//icode_generation.nit:1296 */
8631 if (UNTAG_Bool(REGB2
)) {
8632 fprintf(stderr
, "Reciever is null");
8633 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1296);
8636 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[12]);
8639 /* ./syntax//icode_generation.nit:1289 */
8642 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
8646 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8647 /* ./syntax//icode_generation.nit:1299 */
8648 if (UNTAG_Bool(REGB0
)) {
8649 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
8650 /* ./syntax//icode_generation.nit:1300 */
8651 if (UNTAG_Bool(REGB0
)) {
8652 fprintf(stderr
, "Reciever is null");
8653 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1300);
8656 array___Array___add(fra
.me
.REG
[6], NIT_NULL
);
8659 /* ./syntax//icode_generation.nit:1285 */
8662 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
8666 fra
.me
.REG
[6] = CALL_icode_builder___ICodeBuilder___add_call(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[6]);
8667 fra
.me
.REG
[0] = CALL_syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8668 fra
.me
.REG
[0] = CALL_static_type___MMSignature___closures(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8669 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8670 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8671 /* ./syntax//icode_generation.nit:1308 */
8672 if (UNTAG_Bool(REGB0
)) {
8673 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8674 /* ./syntax//icode_generation.nit:1309 */
8675 if (UNTAG_Bool(REGB0
)) {
8677 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8678 if (UNTAG_Bool(REGB2
)) {
8679 REGB2
= TAG_Bool(false);
8682 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
8686 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8687 if (UNTAG_Bool(REGB0
)) {
8688 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
8689 if (UNTAG_Bool(REGB0
)) {
8691 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
8692 if (UNTAG_Bool(REGB2
)) {
8693 REGB2
= TAG_Bool(false);
8696 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
8700 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
8702 REGB2
= TAG_Bool(false);
8705 if (UNTAG_Bool(REGB0
)) {
8706 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[6]);
8708 /* ./syntax//icode_generation.nit:1310 */
8709 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
8711 fra
.me
.REG
[4] = fra
.me
.REG
[6];
8712 /* ./syntax//icode_generation.nit:1312 */
8714 fra
.me
.REG
[6] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8715 REGB0
= CALL_abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
8716 /* ./syntax//icode_generation.nit:1315 */
8717 if (UNTAG_Bool(REGB0
)) {
8718 /* ./syntax//icode_generation.nit:1316 */
8719 CALL_icode_generation___A2IContext___invoke_super_init_calls_after(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8721 /* ./syntax//icode_generation.nit:1318 */
8724 stack_frame_head
= fra
.me
.prev
;
8725 return fra
.me
.REG
[4];
8727 val_t
icode_generation___ASendReassignExpr___generate_icode(val_t p0
, val_t p1
){
8728 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
8731 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8732 fra
.me
.file
= LOCATE_icode_generation
;
8734 fra
.me
.meth
= LOCATE_icode_generation___ASendReassignExpr___generate_icode
;
8735 fra
.me
.has_broke
= 0;
8736 fra
.me
.REG_size
= 7;
8737 fra
.me
.REG
[0] = NIT_NULL
;
8738 fra
.me
.REG
[1] = NIT_NULL
;
8739 fra
.me
.REG
[2] = NIT_NULL
;
8740 fra
.me
.REG
[3] = NIT_NULL
;
8741 fra
.me
.REG
[4] = NIT_NULL
;
8742 fra
.me
.REG
[5] = NIT_NULL
;
8743 fra
.me
.REG
[6] = NIT_NULL
;
8746 fra
.me
.REG
[2] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8747 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8748 fra
.me
.REG
[3] = CALL_parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8749 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8750 REGB0
= CALL_static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8751 /* ./syntax//icode_generation.nit:1326 */
8752 if (UNTAG_Bool(REGB0
)) {
8753 CALL_icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8755 fra
.me
.REG
[3] = NEW_Array_array___Array___init();
8756 /* ./syntax//icode_generation.nit:1328 */
8757 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[2]);
8758 fra
.me
.REG
[2] = CALL_syntax_base___ASendReassignExpr___read_prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8759 fra
.me
.REG
[2] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8760 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_MMSignature
, ID_MMSignature
)) /*cast MMSignature*/;
8761 /* ./syntax//icode_generation.nit:1329 */
8762 if (UNTAG_Bool(REGB0
)) {
8764 fprintf(stderr
, "Cast failed");
8765 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1329);
8768 CALL_icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
8769 fra
.me
.REG
[2] = CALL_syntax_base___ASendReassignExpr___read_prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8770 fra
.me
.REG
[2] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
8771 fra
.me
.REG
[4] = CALL_syntax_base___ASendReassignExpr___read_prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8772 fra
.me
.REG
[4] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8773 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
8774 /* ./syntax//icode_generation.nit:1331 */
8775 if (UNTAG_Bool(REGB0
)) {
8776 fprintf(stderr
, "Reciever is null");
8777 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1331);
8780 fra
.me
.REG
[4] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8781 REGB0
= TAG_Bool((fra
.me
.REG
[4]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[4], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
8782 if (UNTAG_Bool(REGB0
)) {
8784 fprintf(stderr
, "Cast failed");
8785 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1331);
8788 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[4]);
8789 fra
.me
.REG
[2] = CALL_parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8790 fra
.me
.REG
[2] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8791 fra
.me
.REG
[5] = CALL_syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8793 fra
.me
.REG
[6] = NEW_Array_array___Array___with_capacity(REGB0
);
8794 /* ./syntax//icode_generation.nit:1333 */
8795 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[4]);
8796 array___Array___add(fra
.me
.REG
[6], fra
.me
.REG
[2]);
8797 fra
.me
.REG
[6] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[6]);
8798 fra
.me
.REG
[5] = CALL_syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8799 fra
.me
.REG
[5] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
8800 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
8801 if (UNTAG_Bool(REGB0
)) {
8802 fprintf(stderr
, "Reciever is null");
8803 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1333);
8806 fra
.me
.REG
[5] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
8807 REGB0
= TAG_Bool((fra
.me
.REG
[5]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[5], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
8808 if (UNTAG_Bool(REGB0
)) {
8810 fprintf(stderr
, "Cast failed");
8811 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1333);
8814 fra
.me
.REG
[5] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6], fra
.me
.REG
[5]);
8815 fra
.me
.REG
[3] = CALL_array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8816 /* ./syntax//icode_generation.nit:1335 */
8817 array___Array___add(fra
.me
.REG
[3], fra
.me
.REG
[5]);
8818 fra
.me
.REG
[0] = CALL_syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8819 fra
.me
.REG
[3] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[0], fra
.me
.REG
[3]);
8820 /* ./syntax//icode_generation.nit:1336 */
8821 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
8822 fra
.me
.REG
[3] = NIT_NULL
;
8823 /* ./syntax//icode_generation.nit:1337 */
8826 stack_frame_head
= fra
.me
.prev
;
8827 return fra
.me
.REG
[3];
8829 val_t
icode_generation___ANewExpr___generate_icode(val_t p0
, val_t p1
){
8830 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
8833 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8834 fra
.me
.file
= LOCATE_icode_generation
;
8836 fra
.me
.meth
= LOCATE_icode_generation___ANewExpr___generate_icode
;
8837 fra
.me
.has_broke
= 0;
8838 fra
.me
.REG_size
= 5;
8839 fra
.me
.REG
[0] = NIT_NULL
;
8840 fra
.me
.REG
[1] = NIT_NULL
;
8841 fra
.me
.REG
[2] = NIT_NULL
;
8842 fra
.me
.REG
[3] = NIT_NULL
;
8843 fra
.me
.REG
[4] = NIT_NULL
;
8846 fra
.me
.REG
[2] = NEW_Array_array___Array___init();
8847 fra
.me
.REG
[3] = CALL_syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8848 fra
.me
.REG
[3] = CALL_static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8849 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_MMSignature
, ID_MMSignature
)) /*cast MMSignature*/;
8850 /* ./syntax//icode_generation.nit:1345 */
8851 if (UNTAG_Bool(REGB0
)) {
8853 fprintf(stderr
, "Cast failed");
8854 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1345);
8857 CALL_icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
8858 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8859 fra
.me
.REG
[4] = CALL_syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8860 fra
.me
.REG
[2] = NEW_INew_icode_base___INew___init(fra
.me
.REG
[3], fra
.me
.REG
[4], fra
.me
.REG
[2]);
8861 fra
.me
.REG
[0] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8862 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
8863 /* ./syntax//icode_generation.nit:1346 */
8866 stack_frame_head
= fra
.me
.prev
;
8867 return fra
.me
.REG
[0];
8869 val_t
icode_generation___AProxyExpr___generate_icode(val_t p0
, val_t p1
){
8870 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
8872 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8873 fra
.me
.file
= LOCATE_icode_generation
;
8875 fra
.me
.meth
= LOCATE_icode_generation___AProxyExpr___generate_icode
;
8876 fra
.me
.has_broke
= 0;
8877 fra
.me
.REG_size
= 2;
8878 fra
.me
.REG
[0] = NIT_NULL
;
8879 fra
.me
.REG
[1] = NIT_NULL
;
8882 fra
.me
.REG
[0] = CALL_parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8883 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
8884 /* ./syntax//icode_generation.nit:1353 */
8887 stack_frame_head
= fra
.me
.prev
;
8888 return fra
.me
.REG
[0];
8890 val_t
icode_generation___AOnceExpr___generate_icode(val_t p0
, val_t p1
){
8891 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
8893 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8894 fra
.me
.file
= LOCATE_icode_generation
;
8896 fra
.me
.meth
= LOCATE_icode_generation___AOnceExpr___generate_icode
;
8897 fra
.me
.has_broke
= 0;
8898 fra
.me
.REG_size
= 5;
8899 fra
.me
.REG
[0] = NIT_NULL
;
8900 fra
.me
.REG
[1] = NIT_NULL
;
8901 fra
.me
.REG
[2] = NIT_NULL
;
8902 fra
.me
.REG
[3] = NIT_NULL
;
8903 fra
.me
.REG
[4] = NIT_NULL
;
8906 fra
.me
.REG
[2] = NEW_IOnce_icode_base___IOnce___init();
8907 fra
.me
.REG
[3] = CALL_syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8908 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
8909 fra
.me
.REG
[4] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8910 fra
.me
.REG
[2] = CALL_icode_base___IOnce___body(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
8911 /* ./syntax//icode_generation.nit:1363 */
8912 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
8913 fra
.me
.REG
[0] = CALL_parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8914 fra
.me
.REG
[0] = CALL_icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
8915 /* ./syntax//icode_generation.nit:1366 */
8916 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
8917 /* ./syntax//icode_generation.nit:1368 */
8918 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
8919 /* ./syntax//icode_generation.nit:1369 */
8922 stack_frame_head
= fra
.me
.prev
;
8923 return fra
.me
.REG
[3];
8925 val_t
icode_generation___AClosureDef___generate_iclosuredef(val_t p0
, val_t p1
){
8926 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
8932 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8933 fra
.me
.file
= LOCATE_icode_generation
;
8935 fra
.me
.meth
= LOCATE_icode_generation___AClosureDef___generate_iclosuredef
;
8936 fra
.me
.has_broke
= 0;
8937 fra
.me
.REG_size
= 7;
8938 fra
.me
.REG
[0] = NIT_NULL
;
8939 fra
.me
.REG
[1] = NIT_NULL
;
8940 fra
.me
.REG
[2] = NIT_NULL
;
8941 fra
.me
.REG
[3] = NIT_NULL
;
8942 fra
.me
.REG
[4] = NIT_NULL
;
8943 fra
.me
.REG
[5] = NIT_NULL
;
8944 fra
.me
.REG
[6] = NIT_NULL
;
8947 fra
.me
.REG
[2] = NEW_Array_array___Array___init();
8948 fra
.me
.REG
[3] = CALL_syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8949 fra
.me
.REG
[3] = CALL_static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8951 REGB1
= CALL_static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8952 fra
.me
.REG
[4] = NEW_Range_range___Range___without_last(REGB0
, REGB1
);
8953 fra
.me
.REG
[4] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8954 /* ./syntax//icode_generation.nit:1382 */
8956 REGB1
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8957 if (UNTAG_Bool(REGB1
)) {
8958 REGB1
= CALL_abstract_collection___Iterator___item(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8959 fra
.me
.REG
[5] = CALL_static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
8960 fra
.me
.REG
[5] = CALL_icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
8961 /* ./syntax//icode_generation.nit:1383 */
8962 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[5]);
8964 /* ./syntax//icode_generation.nit:1382 */
8967 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8970 fra
.me
.REG
[4] = NIT_NULL
;
8971 fra
.me
.REG
[3] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
8972 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8973 /* ./syntax//icode_generation.nit:1387 */
8974 if (UNTAG_Bool(REGB1
)) {
8976 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
8977 if (UNTAG_Bool(REGB0
)) {
8978 REGB0
= TAG_Bool(false);
8981 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
8985 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
8986 if (UNTAG_Bool(REGB1
)) {
8987 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
8988 fra
.me
.REG
[4] = fra
.me
.REG
[3];
8989 /* ./syntax//icode_generation.nit:1388 */
8991 fra
.me
.REG
[4] = NEW_IClosureDef_icode_base___IClosureDef___init(fra
.me
.REG
[2], fra
.me
.REG
[4]);
8992 fra
.me
.REG
[2] = CALL_parser_nodes___ANode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
8993 /* ./syntax//icode_generation.nit:1392 */
8994 CALL_icode_base___IRoutine___location__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
8995 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
8996 fra
.me
.REG
[3] = CALL_icode_base___IRoutine___body(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
8997 /* ./syntax//icode_generation.nit:1396 */
8998 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
8999 fra
.me
.REG
[3] = CALL_typing___AClosureDef___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9000 fra
.me
.REG
[5] = CALL_icode_base___IRoutine___body(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9001 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9002 /* ./syntax//icode_generation.nit:1397 */
9003 if (UNTAG_Bool(REGB1
)) {
9004 fprintf(stderr
, "Reciever is null");
9005 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1397);
9008 CALL_icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
9009 fra
.me
.REG
[5] = CALL_typing___AClosureDef___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9010 fra
.me
.REG
[3] = CALL_icode_base___IRoutine___result(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9011 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9012 /* ./syntax//icode_generation.nit:1398 */
9013 if (UNTAG_Bool(REGB1
)) {
9014 fprintf(stderr
, "Reciever is null");
9015 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1398);
9018 CALL_icode_generation___EscapableBlock___continue_value__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
9020 fra
.me
.REG
[3] = CALL_syntax_base___AClosureDef___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9021 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9022 /* ./syntax//icode_generation.nit:1401 */
9023 if (UNTAG_Bool(REGB0
)) {
9024 fprintf(stderr
, "Reciever is null");
9025 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1401);
9028 REGB0
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
9029 /* ./../lib/standard//collection//array.nit:23 */
9030 if (UNTAG_Bool(REGB0
)) {
9032 fprintf(stderr
, "Uninitialized attribute %s", "_length");
9033 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
9036 REGB0
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
9037 fra
.me
.REG
[3] = NEW_Range_range___Range___without_last(REGB1
, REGB0
);
9038 fra
.me
.REG
[3] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9039 /* ./syntax//icode_generation.nit:1401 */
9041 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9042 if (UNTAG_Bool(REGB0
)) {
9043 REGB0
= CALL_abstract_collection___Iterator___item(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9044 fra
.me
.REG
[5] = CALL_syntax_base___AClosureDef___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9045 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9046 /* ./syntax//icode_generation.nit:1402 */
9047 if (UNTAG_Bool(REGB1
)) {
9048 fprintf(stderr
, "Reciever is null");
9049 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1402);
9054 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>=UNTAG_Int(REGB2
));
9055 /* ./../lib/standard//collection//array.nit:233 */
9056 if (UNTAG_Bool(REGB2
)) {
9057 REGB2
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
9058 if (UNTAG_Bool(REGB2
)) {
9060 fprintf(stderr
, "Uninitialized attribute %s", "_length");
9061 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
9064 REGB2
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5]);
9065 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
9066 /* ./../lib/standard//collection//array.nit:233 */
9068 REGB3
= TAG_Bool(false);
9071 if (UNTAG_Bool(REGB2
)) {
9073 fprintf(stderr
, "Assert %s failed", "'index'");
9074 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 233);
9077 fra
.me
.REG
[5] = ATTR_array___Array____items(fra
.me
.REG
[5]);
9078 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
9079 /* ./../lib/standard//collection//array.nit:234 */
9080 if (UNTAG_Bool(REGB2
)) {
9081 fprintf(stderr
, "Reciever is null");
9082 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 234);
9085 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB1
)];
9086 /* ./../lib/standard//collection//array.nit:234 */
9089 fra
.me
.REG
[5] = CALL_icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
9090 fra
.me
.REG
[6] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9091 fra
.me
.REG
[6] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB0
);
9092 /* ./syntax//icode_generation.nit:1403 */
9093 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[6]);
9095 /* ./syntax//icode_generation.nit:1401 */
9098 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9101 fra
.me
.REG
[3] = CALL_parser_nodes___AClosureDef___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9102 /* ./syntax//icode_generation.nit:1406 */
9103 CALL_icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
9104 fra
.me
.REG
[3] = CALL_syntax_base___AClosureDef___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9105 REGB0
= CALL_static_type___MMClosure___is_break(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9106 /* ./syntax//icode_generation.nit:1409 */
9107 if (UNTAG_Bool(REGB0
)) {
9108 fra
.me
.REG
[3] = CALL_typing___AClosureDef___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9109 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9110 if (UNTAG_Bool(REGB0
)) {
9111 fprintf(stderr
, "Reciever is null");
9112 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1409);
9115 fra
.me
.REG
[3] = CALL_icode_generation___EscapableBlock___break_value(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9116 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9117 if (UNTAG_Bool(REGB0
)) {
9119 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9120 if (UNTAG_Bool(REGB1
)) {
9121 REGB1
= TAG_Bool(false);
9124 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
9129 REGB1
= TAG_Bool(false);
9132 if (UNTAG_Bool(REGB0
)) {
9133 fra
.me
.REG
[3] = CALL_typing___AClosureDef___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9134 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9135 /* ./syntax//icode_generation.nit:1410 */
9136 if (UNTAG_Bool(REGB0
)) {
9137 fprintf(stderr
, "Reciever is null");
9138 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1410);
9141 fra
.me
.REG
[3] = CALL_icode_generation___EscapableBlock___break_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9142 REGB0
= TAG_Bool(fra
.me
.REG
[3]!=NIT_NULL
);
9143 if (UNTAG_Bool(REGB0
)) {
9145 fprintf(stderr
, "Cast failed");
9146 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1410);
9149 CALL_icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
9151 /* ./syntax//icode_generation.nit:1413 */
9152 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
9153 /* ./syntax//icode_generation.nit:1414 */
9154 ATTR_icode_generation___AClosureDef____iclosure_def(fra
.me
.REG
[0]) = fra
.me
.REG
[4];
9155 /* ./syntax//icode_generation.nit:1415 */
9158 stack_frame_head
= fra
.me
.prev
;
9159 return fra
.me
.REG
[4];
9161 val_t
icode_generation___AClosureCallExpr___generate_icode(val_t p0
, val_t p1
){
9162 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
9167 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9168 fra
.me
.file
= LOCATE_icode_generation
;
9170 fra
.me
.meth
= LOCATE_icode_generation___AClosureCallExpr___generate_icode
;
9171 fra
.me
.has_broke
= 0;
9172 fra
.me
.REG_size
= 9;
9173 fra
.me
.REG
[0] = NIT_NULL
;
9174 fra
.me
.REG
[1] = NIT_NULL
;
9175 fra
.me
.REG
[2] = NIT_NULL
;
9176 fra
.me
.REG
[3] = NIT_NULL
;
9177 fra
.me
.REG
[4] = NIT_NULL
;
9178 fra
.me
.REG
[5] = NIT_NULL
;
9179 fra
.me
.REG
[6] = NIT_NULL
;
9180 fra
.me
.REG
[7] = NIT_NULL
;
9181 fra
.me
.REG
[8] = NIT_NULL
;
9184 fra
.me
.REG
[2] = NEW_Array_array___Array___init();
9185 fra
.me
.REG
[3] = CALL_syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9186 fra
.me
.REG
[3] = CALL_syntax_base___ClosureVariable___closure(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9187 fra
.me
.REG
[3] = CALL_static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
9188 /* ./syntax//icode_generation.nit:1424 */
9189 CALL_icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
9190 fra
.me
.REG
[3] = CALL_icode_generation___A2IContext___closurevariables(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9191 fra
.me
.REG
[4] = CALL_syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9192 fra
.me
.REG
[4] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
9193 fra
.me
.REG
[3] = NEW_IClosCall_icode_base___IClosCall___init(fra
.me
.REG
[4], fra
.me
.REG
[2]);
9194 fra
.me
.REG
[5] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9195 fra
.me
.REG
[6] = CALL_parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9196 REGB0
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9198 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
9199 /* ./syntax//icode_generation.nit:1432 */
9200 if (UNTAG_Bool(REGB2
)) {
9202 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
9204 /* ./syntax//icode_generation.nit:1432 */
9206 if (UNTAG_Bool(REGB2
)) {
9207 fra
.me
.REG
[6] = NEW_ISeq_icode_base___ISeq___init();
9208 /* ./syntax//icode_generation.nit:1434 */
9209 CALL_icode_base___IClosCall___break_seq__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
9210 /* ./syntax//icode_generation.nit:1435 */
9211 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
9212 fra
.me
.REG
[6] = CALL_parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9213 fra
.me
.REG
[6] = CALL_abstract_collection___Collection___first(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9214 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9215 /* ./syntax//icode_generation.nit:1436 */
9216 if (UNTAG_Bool(REGB2
)) {
9217 fprintf(stderr
, "Reciever is null");
9218 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1436);
9221 fra
.me
.REG
[6] = CALL_parser_nodes___AClosureDef___n_expr(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9222 CALL_icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
9223 /* ./syntax//icode_generation.nit:1437 */
9224 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
9226 fra
.me
.REG
[6] = NIT_NULL
;
9227 fra
.me
.REG
[7] = CALL_icode_base___IClosureDecl___default(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
9228 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
9229 /* ./syntax//icode_generation.nit:1443 */
9230 if (UNTAG_Bool(REGB2
)) {
9232 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
9233 if (UNTAG_Bool(REGB1
)) {
9234 REGB1
= TAG_Bool(false);
9237 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
9241 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
9242 if (UNTAG_Bool(REGB2
)) {
9243 fra
.me
.REG
[4] = NEW_IHasClos_icode_base___IHasClos___init(fra
.me
.REG
[4]);
9244 fra
.me
.REG
[8] = CALL_icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
9245 fra
.me
.REG
[8] = CALL_syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
9246 fra
.me
.REG
[8] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[8]);
9247 fra
.me
.REG
[8] = NEW_IIf_icode_base___IIf___init(fra
.me
.REG
[8]);
9248 fra
.me
.REG
[6] = fra
.me
.REG
[8];
9249 /* ./syntax//icode_generation.nit:1445 */
9250 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
9251 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9252 /* ./syntax//icode_generation.nit:1446 */
9253 if (UNTAG_Bool(REGB2
)) {
9254 fprintf(stderr
, "Reciever is null");
9255 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1446);
9258 fra
.me
.REG
[8] = CALL_icode_base___IIf___then_seq(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9259 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[8]);
9261 fra
.me
.REG
[8] = NIT_NULL
;
9262 fra
.me
.REG
[0] = CALL_syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9263 fra
.me
.REG
[0] = CALL_syntax_base___ClosureVariable___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9264 fra
.me
.REG
[0] = CALL_static_type___MMClosure___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9265 fra
.me
.REG
[0] = CALL_static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
9266 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
9267 /* ./syntax//icode_generation.nit:1452 */
9268 if (UNTAG_Bool(REGB2
)) {
9270 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
9271 if (UNTAG_Bool(REGB1
)) {
9272 REGB1
= TAG_Bool(false);
9275 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
9279 if (UNTAG_Bool(REGB2
)) {
9280 /* ./syntax//icode_generation.nit:1453 */
9281 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
9283 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
9284 fra
.me
.REG
[8] = fra
.me
.REG
[3];
9285 /* ./syntax//icode_generation.nit:1455 */
9287 fra
.me
.REG
[3] = NIT_NULL
;
9288 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
9289 /* ./syntax//icode_generation.nit:1460 */
9290 if (UNTAG_Bool(REGB2
)) {
9292 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
9293 if (UNTAG_Bool(REGB1
)) {
9294 REGB1
= TAG_Bool(false);
9297 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
9301 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
9302 if (UNTAG_Bool(REGB2
)) {
9303 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9304 /* ./syntax//icode_generation.nit:1461 */
9305 if (UNTAG_Bool(REGB2
)) {
9307 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9308 if (UNTAG_Bool(REGB1
)) {
9309 REGB1
= TAG_Bool(false);
9312 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
9316 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
9317 if (UNTAG_Bool(REGB2
)) {
9319 fprintf(stderr
, "Assert failed");
9320 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1461);
9323 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
9324 /* ./syntax//icode_generation.nit:1462 */
9325 if (UNTAG_Bool(REGB2
)) {
9327 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
9328 if (UNTAG_Bool(REGB1
)) {
9329 REGB1
= TAG_Bool(false);
9332 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
9336 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
9337 if (UNTAG_Bool(REGB2
)) {
9338 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
9339 /* ./syntax//icode_generation.nit:1463 */
9340 if (UNTAG_Bool(REGB2
)) {
9342 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
9343 if (UNTAG_Bool(REGB1
)) {
9344 REGB1
= TAG_Bool(false);
9347 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
9351 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
9352 if (UNTAG_Bool(REGB2
)) {
9354 fprintf(stderr
, "Assert failed");
9355 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1463);
9358 fra
.me
.REG
[0] = CALL_icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
9359 fra
.me
.REG
[3] = fra
.me
.REG
[0];
9360 /* ./syntax//icode_generation.nit:1465 */
9361 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[8]);
9363 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
9364 /* ./syntax//icode_generation.nit:1467 */
9365 if (UNTAG_Bool(REGB2
)) {
9366 fprintf(stderr
, "Reciever is null");
9367 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1467);
9370 fra
.me
.REG
[6] = CALL_icode_base___IIf___else_seq(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
9371 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
9372 fra
.me
.REG
[2] = CALL_icode_tools___ICodeBuilder___inline_routine(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7], fra
.me
.REG
[2], NIT_NULL
);
9373 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9374 /* ./syntax//icode_generation.nit:1469 */
9375 if (UNTAG_Bool(REGB2
)) {
9377 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
9378 if (UNTAG_Bool(REGB1
)) {
9379 REGB1
= TAG_Bool(false);
9382 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
9386 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
9387 if (UNTAG_Bool(REGB2
)) {
9388 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
9389 /* ./syntax//icode_generation.nit:1470 */
9390 if (UNTAG_Bool(REGB2
)) {
9392 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
9393 if (UNTAG_Bool(REGB1
)) {
9394 REGB1
= TAG_Bool(false);
9397 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
9401 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
9402 if (UNTAG_Bool(REGB2
)) {
9404 fprintf(stderr
, "Assert failed");
9405 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_generation
, 1470);
9408 /* ./syntax//icode_generation.nit:1471 */
9409 CALL_icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
9411 /* ./syntax//icode_generation.nit:1473 */
9412 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
9414 fra
.me
.REG
[3] = fra
.me
.REG
[8];
9415 /* ./syntax//icode_generation.nit:1475 */
9417 /* ./syntax//icode_generation.nit:1477 */
9420 stack_frame_head
= fra
.me
.prev
;
9421 return fra
.me
.REG
[3];