gc: show default GC on warnings
[nit.git] / c_src / icode_generation._sep.c
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;
5 val_t REGB0;
6 val_t REGB1;
7 val_t tmp;
8 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9 fra.me.file = LOCATE_icode_generation;
10 fra.me.line = 28;
11 fra.me.meth = LOCATE_icode_generation___A2IContext___stmt;
12 fra.me.has_broke = 0;
13 fra.me.REG_size = 4;
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;
18 fra.me.REG[0] = p0;
19 fra.me.REG[1] = p1;
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)) {
25 } else {
26 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
27 if (UNTAG_Bool(REGB1)) {
28 REGB1 = TAG_Bool(false);
29 REGB0 = REGB1;
30 } else {
31 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
32 REGB0 = REGB1;
33 }
34 }
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);
43 nit_exit(1);
44 }
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]);
47 } else {
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)) {
53 } else {
54 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
55 if (UNTAG_Bool(REGB1)) {
56 REGB1 = TAG_Bool(false);
57 REGB0 = REGB1;
58 } else {
59 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
60 REGB0 = REGB1;
61 }
62 }
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);
72 nit_exit(1);
73 }
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]);
76 }
77 }
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;
81 return;
82 }
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;
85 val_t REGB0;
86 val_t REGB1;
87 val_t tmp;
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;
94 fra.me.line = 38;
95 fra.me.meth = LOCATE_icode_generation___A2IContext___add_new_array;
96 fra.me.has_broke = 0;
97 fra.me.REG_size = 5;
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;
103 fra.me.REG[0] = p0;
104 fra.me.REG[1] = p1;
105 REGB0 = p2;
106 fra.me.REG[2] = CALL_icode_generation___A2IContext___visitor(fra.me.REG[0])(fra.me.REG[0]);
107 /* ./syntax//icode_generation.nit:41 */
108 if (!once_value_1) {
109 if (!once_value_2) {
110 fra.me.REG[3] = BOX_NativeString("with_capacity");
111 REGB1 = TAG_Int(13);
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]);
121 REGB1 = TAG_Int(3);
122 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB1);
123 /* ./syntax//icode_generation.nit:42 */
124 if (!once_value_3) {
125 fra.me.REG[4] = BOX_NativeString("TAG_Int(");
126 REGB1 = TAG_Int(8);
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]);
134 if (!once_value_4) {
135 fra.me.REG[4] = BOX_NativeString(")");
136 REGB0 = TAG_Int(1);
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]);
147 REGB0 = TAG_Int(1);
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]);
153 goto label5;
154 label5: while(0);
155 stack_frame_head = fra.me.prev;
156 return fra.me.REG[1];
157 }
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;
160 val_t REGB0;
161 val_t tmp;
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;
166 fra.me.line = 46;
167 fra.me.meth = LOCATE_icode_generation___A2IContext___add_call_array_add;
168 fra.me.has_broke = 0;
169 fra.me.REG_size = 6;
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;
176 fra.me.REG[0] = p0;
177 fra.me.REG[1] = p1;
178 fra.me.REG[2] = p2;
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 */
182 if (!once_value_1) {
183 if (!once_value_2) {
184 fra.me.REG[5] = BOX_NativeString("add");
185 REGB0 = TAG_Int(3);
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]);
195 REGB0 = TAG_Int(2);
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;
203 return;
204 }
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;
207 val_t REGB0;
208 val_t REGB1;
209 val_t tmp;
210 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
211 fra.me.file = LOCATE_icode_generation;
212 fra.me.line = 54;
213 fra.me.meth = LOCATE_icode_generation___A2IContext___variable;
214 fra.me.has_broke = 0;
215 fra.me.REG_size = 5;
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;
221 fra.me.REG[0] = p0;
222 fra.me.REG[1] = p1;
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)) {
226 } else {
227 fprintf(stderr, "Uninitialized attribute %s", "_variables");
228 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 58);
229 nit_exit(1);
230 }
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)) {
237 } else {
238 fprintf(stderr, "Uninitialized attribute %s", "_variables");
239 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 59);
240 nit_exit(1);
241 }
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]);
244 goto label1;
245 } else {
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)) {
250 } else {
251 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
252 if (UNTAG_Bool(REGB1)) {
253 REGB1 = TAG_Bool(false);
254 REGB0 = REGB1;
255 } else {
256 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
257 REGB0 = REGB1;
258 }
259 }
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];
265 }
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)) {
270 } else {
271 fprintf(stderr, "Uninitialized attribute %s", "_variables");
272 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 64);
273 nit_exit(1);
274 }
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 */
279 goto label1;
280 }
281 label1: while(0);
282 stack_frame_head = fra.me.prev;
283 return fra.me.REG[2];
284 }
285 val_t icode_generation___A2IContext___closurevariables(val_t p0){
286 struct {struct stack_frame_t me;} fra;
287 val_t REGB0;
288 val_t tmp;
289 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
290 fra.me.file = LOCATE_icode_generation;
291 fra.me.line = 72;
292 fra.me.meth = LOCATE_icode_generation___A2IContext___closurevariables;
293 fra.me.has_broke = 0;
294 fra.me.REG_size = 1;
295 fra.me.REG[0] = NIT_NULL;
296 fra.me.REG[0] = p0;
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)) {
300 } else {
301 fprintf(stderr, "Uninitialized attribute %s", "_closurevariables");
302 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 72);
303 nit_exit(1);
304 }
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];
308 }
309 val_t icode_generation___A2IContext___visitor(val_t p0){
310 struct {struct stack_frame_t me;} fra;
311 val_t REGB0;
312 val_t tmp;
313 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
314 fra.me.file = LOCATE_icode_generation;
315 fra.me.line = 75;
316 fra.me.meth = LOCATE_icode_generation___A2IContext___visitor;
317 fra.me.has_broke = 0;
318 fra.me.REG_size = 1;
319 fra.me.REG[0] = NIT_NULL;
320 fra.me.REG[0] = p0;
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)) {
324 } else {
325 fprintf(stderr, "Uninitialized attribute %s", "_visitor");
326 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 75);
327 nit_exit(1);
328 }
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];
332 }
333 val_t icode_generation___A2IContext___return_seq(val_t p0){
334 struct {struct stack_frame_t me;} fra;
335 val_t tmp;
336 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
337 fra.me.file = LOCATE_icode_generation;
338 fra.me.line = 78;
339 fra.me.meth = LOCATE_icode_generation___A2IContext___return_seq;
340 fra.me.has_broke = 0;
341 fra.me.REG_size = 1;
342 fra.me.REG[0] = NIT_NULL;
343 fra.me.REG[0] = p0;
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];
348 }
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;
351 val_t tmp;
352 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
353 fra.me.file = LOCATE_icode_generation;
354 fra.me.line = 78;
355 fra.me.meth = LOCATE_icode_generation___A2IContext___return_seq__eq;
356 fra.me.has_broke = 0;
357 fra.me.REG_size = 2;
358 fra.me.REG[0] = NIT_NULL;
359 fra.me.REG[1] = NIT_NULL;
360 fra.me.REG[0] = p0;
361 fra.me.REG[1] = p1;
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;
365 return;
366 }
367 val_t icode_generation___A2IContext___return_value(val_t p0){
368 struct {struct stack_frame_t me;} fra;
369 val_t tmp;
370 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
371 fra.me.file = LOCATE_icode_generation;
372 fra.me.line = 81;
373 fra.me.meth = LOCATE_icode_generation___A2IContext___return_value;
374 fra.me.has_broke = 0;
375 fra.me.REG_size = 1;
376 fra.me.REG[0] = NIT_NULL;
377 fra.me.REG[0] = p0;
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];
382 }
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;
385 val_t tmp;
386 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
387 fra.me.file = LOCATE_icode_generation;
388 fra.me.line = 81;
389 fra.me.meth = LOCATE_icode_generation___A2IContext___return_value__eq;
390 fra.me.has_broke = 0;
391 fra.me.REG_size = 2;
392 fra.me.REG[0] = NIT_NULL;
393 fra.me.REG[1] = NIT_NULL;
394 fra.me.REG[0] = p0;
395 fra.me.REG[1] = p1;
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;
399 return;
400 }
401 val_t icode_generation___A2IContext___method(val_t p0){
402 struct {struct stack_frame_t me;} fra;
403 val_t tmp;
404 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
405 fra.me.file = LOCATE_icode_generation;
406 fra.me.line = 84;
407 fra.me.meth = LOCATE_icode_generation___A2IContext___method;
408 fra.me.has_broke = 0;
409 fra.me.REG_size = 1;
410 fra.me.REG[0] = NIT_NULL;
411 fra.me.REG[0] = p0;
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];
416 }
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;
420 val_t tmp;
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;
424 fra.me.line = 87;
425 fra.me.meth = LOCATE_icode_generation___A2IContext___init;
426 fra.me.has_broke = 0;
427 fra.me.REG_size = 6;
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;
434 fra.me.REG[0] = p0;
435 fra.me.REG[1] = p1;
436 fra.me.REG[2] = p2;
437 fra.me.REG[3] = p3;
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;
454 return;
455 }
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;
458 val_t REGB0;
459 val_t REGB1;
460 val_t REGB2;
461 val_t REGB3;
462 val_t REGB4;
463 val_t tmp;
464 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
465 fra.me.file = LOCATE_icode_generation;
466 fra.me.line = 96;
467 fra.me.meth = LOCATE_icode_generation___A2IContext___invoke_super_init_calls_after;
468 fra.me.has_broke = 0;
469 fra.me.REG_size = 7;
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;
477 fra.me.REG[0] = p0;
478 fra.me.REG[1] = p1;
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)) {
483 } else {
484 fprintf(stderr, "Assert failed");
485 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 100);
486 nit_exit(1);
487 }
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);
493 nit_exit(1);
494 }
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)) {
499 } else {
500 fprintf(stderr, "Assert failed");
501 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 102);
502 nit_exit(1);
503 }
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);
509 nit_exit(1);
510 }
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)) {
514 goto label1;
515 }
516 REGB0 = TAG_Int(0);
517 REGB1 = TAG_Int(0);
518 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
519 /* ./syntax//icode_generation.nit:107 */
520 if (UNTAG_Bool(REGB2)) {
521 } else {
522 REGB3 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
523 if (UNTAG_Bool(REGB3)) {
524 REGB3 = TAG_Bool(false);
525 REGB2 = REGB3;
526 } else {
527 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
528 REGB2 = REGB3;
529 }
530 }
531 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
532 if (UNTAG_Bool(REGB2)) {
533 /* ./syntax//icode_generation.nit:108 */
534 while(1) {
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);
539 nit_exit(1);
540 }
541 fra.me.REG[3] = CALL_syntax_base___AConcreteInitPropdef___super_init_calls(fra.me.REG[2])(fra.me.REG[2]);
542 REGB2 = REGB0;
543 REGB3 = TAG_Int(0);
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)) {
549 } else {
550 fprintf(stderr, "Uninitialized attribute %s", "_length");
551 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
552 nit_exit(1);
553 }
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 */
557 } else {
558 REGB4 = TAG_Bool(false);
559 REGB3 = REGB4;
560 }
561 if (UNTAG_Bool(REGB3)) {
562 } else {
563 fprintf(stderr, "Assert %s failed", "'index'");
564 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
565 nit_exit(1);
566 }
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);
573 nit_exit(1);
574 }
575 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB2)];
576 /* ./../lib/standard//collection//array.nit:234 */
577 goto label2;
578 label2: while(0);
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)) {
582 } else {
583 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
584 if (UNTAG_Bool(REGB3)) {
585 REGB3 = TAG_Bool(false);
586 REGB2 = REGB3;
587 } else {
588 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
589 REGB2 = REGB3;
590 }
591 }
592 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
593 if (UNTAG_Bool(REGB2)) {
594 REGB2 = TAG_Int(1);
595 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
596 REGB0 = REGB2;
597 /* ./syntax//icode_generation.nit:109 */
598 } else {
599 /* ./syntax//icode_generation.nit:108 */
600 goto label3;
601 }
602 }
603 label3: while(0);
604 REGB2 = TAG_Int(1);
605 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
606 REGB0 = REGB2;
607 /* ./syntax//icode_generation.nit:113 */
608 while(1) {
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);
613 nit_exit(1);
614 }
615 fra.me.REG[3] = CALL_syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra.me.REG[2])(fra.me.REG[2]);
616 REGB2 = REGB1;
617 REGB3 = TAG_Int(0);
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)) {
623 } else {
624 fprintf(stderr, "Uninitialized attribute %s", "_length");
625 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
626 nit_exit(1);
627 }
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 */
631 } else {
632 REGB4 = TAG_Bool(false);
633 REGB3 = REGB4;
634 }
635 if (UNTAG_Bool(REGB3)) {
636 } else {
637 fprintf(stderr, "Assert %s failed", "'index'");
638 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
639 nit_exit(1);
640 }
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);
647 nit_exit(1);
648 }
649 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB2)];
650 /* ./../lib/standard//collection//array.nit:234 */
651 goto label4;
652 label4: while(0);
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)) {
656 } else {
657 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
658 if (UNTAG_Bool(REGB3)) {
659 REGB3 = TAG_Bool(false);
660 REGB2 = REGB3;
661 } else {
662 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
663 REGB2 = REGB3;
664 }
665 }
666 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
667 if (UNTAG_Bool(REGB2)) {
668 REGB2 = TAG_Int(1);
669 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
670 REGB1 = REGB2;
671 /* ./syntax//icode_generation.nit:114 */
672 } else {
673 /* ./syntax//icode_generation.nit:113 */
674 goto label5;
675 }
676 }
677 label5: while(0);
678 REGB2 = TAG_Int(1);
679 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
680 REGB1 = REGB2;
681 /* ./syntax//icode_generation.nit:116 */
682 }
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);
689 nit_exit(1);
690 }
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)) {
695 } else {
696 fprintf(stderr, "Uninitialized attribute %s", "_length");
697 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
698 nit_exit(1);
699 }
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);
709 nit_exit(1);
710 }
711 fra.me.REG[3] = CALL_syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra.me.REG[2])(fra.me.REG[2]);
712 REGB2 = TAG_Int(0);
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)) {
718 } else {
719 fprintf(stderr, "Uninitialized attribute %s", "_length");
720 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
721 nit_exit(1);
722 }
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 */
726 } else {
727 REGB3 = TAG_Bool(false);
728 REGB2 = REGB3;
729 }
730 if (UNTAG_Bool(REGB2)) {
731 } else {
732 fprintf(stderr, "Assert %s failed", "'index'");
733 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
734 nit_exit(1);
735 }
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);
742 nit_exit(1);
743 }
744 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB1)];
745 /* ./../lib/standard//collection//array.nit:234 */
746 goto label6;
747 label6: while(0);
748 fra.me.REG[1] = fra.me.REG[3];
749 /* ./syntax//icode_generation.nit:120 */
750 }
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);
756 nit_exit(1);
757 }
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)) {
762 } else {
763 fprintf(stderr, "Uninitialized attribute %s", "_length");
764 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
765 nit_exit(1);
766 }
767 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
768 /* ./syntax//icode_generation.nit:123 */
769 while(1) {
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);
778 nit_exit(1);
779 }
780 fra.me.REG[3] = CALL_syntax_base___AConcreteInitPropdef___super_init_calls(fra.me.REG[2])(fra.me.REG[2]);
781 REGB2 = REGB0;
782 REGB3 = TAG_Int(0);
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)) {
788 } else {
789 fprintf(stderr, "Uninitialized attribute %s", "_length");
790 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
791 nit_exit(1);
792 }
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 */
796 } else {
797 REGB4 = TAG_Bool(false);
798 REGB3 = REGB4;
799 }
800 if (UNTAG_Bool(REGB3)) {
801 } else {
802 fprintf(stderr, "Assert %s failed", "'index'");
803 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
804 nit_exit(1);
805 }
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);
812 nit_exit(1);
813 }
814 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB2)];
815 /* ./../lib/standard//collection//array.nit:234 */
816 goto label7;
817 label7: while(0);
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)) {
821 } else {
822 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
823 REGB2 = REGB3;
824 }
825 if (UNTAG_Bool(REGB2)) {
826 goto label8;
827 }
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);
835 nit_exit(1);
836 }
837 REGB2 = CALL_static_type___MMSignature___arity(fra.me.REG[5])(fra.me.REG[5]);
838 REGB3 = TAG_Int(0);
839 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB3));
840 if (UNTAG_Bool(REGB4)) {
841 } else {
842 REGB3 = TAG_Bool((REGB2)==(REGB3));
843 REGB4 = REGB3;
844 /* ./syntax//icode_generation.nit:127 */
845 }
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]);
852 } else {
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 */
857 while(1) {
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]);
863 } else {
864 /* ./syntax//icode_generation.nit:130 */
865 goto label9;
866 }
867 CALL_abstract_collection___Iterator___next(fra.me.REG[5])(fra.me.REG[5]);
868 }
869 label9: while(0);
870 }
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]);
874 REGB4 = TAG_Int(1);
875 REGB4 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB4));
876 REGB0 = REGB4;
877 /* ./syntax//icode_generation.nit:135 */
878 } else {
879 /* ./syntax//icode_generation.nit:123 */
880 goto label8;
881 }
882 }
883 label8: while(0);
884 label1: while(0);
885 stack_frame_head = fra.me.prev;
886 return;
887 }
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;
890 val_t REGB0;
891 val_t REGB1;
892 val_t tmp;
893 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
894 fra.me.file = LOCATE_icode_generation;
895 fra.me.line = 142;
896 fra.me.meth = LOCATE_icode_generation___A2IContext___generate_stmt;
897 fra.me.has_broke = 0;
898 fra.me.REG_size = 3;
899 fra.me.REG[0] = NIT_NULL;
900 fra.me.REG[1] = NIT_NULL;
901 fra.me.REG[2] = NIT_NULL;
902 fra.me.REG[0] = p0;
903 fra.me.REG[1] = p1;
904 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
905 /* ./syntax//icode_generation.nit:145 */
906 if (UNTAG_Bool(REGB0)) {
907 } else {
908 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
909 if (UNTAG_Bool(REGB1)) {
910 REGB1 = TAG_Bool(false);
911 REGB0 = REGB1;
912 } else {
913 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
914 REGB0 = REGB1;
915 }
916 }
917 if (UNTAG_Bool(REGB0)) {
918 goto label1;
919 }
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);
928 nit_exit(1);
929 }
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];
933 label1: while(0);
934 stack_frame_head = fra.me.prev;
935 return;
936 }
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;
939 val_t REGB0;
940 val_t tmp;
941 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
942 fra.me.file = LOCATE_icode_generation;
943 fra.me.line = 152;
944 fra.me.meth = LOCATE_icode_generation___A2IContext___generate_expr;
945 fra.me.has_broke = 0;
946 fra.me.REG_size = 3;
947 fra.me.REG[0] = NIT_NULL;
948 fra.me.REG[1] = NIT_NULL;
949 fra.me.REG[2] = NIT_NULL;
950 fra.me.REG[0] = p0;
951 fra.me.REG[1] = p1;
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)) {
959 } else {
960 fprintf(stderr, "Cast failed");
961 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 157);
962 nit_exit(1);
963 }
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 */
967 goto label1;
968 label1: while(0);
969 stack_frame_head = fra.me.prev;
970 return fra.me.REG[1];
971 }
972 val_t icode_generation___EscapableBlock___break_seq(val_t p0){
973 struct {struct stack_frame_t me;} fra;
974 val_t tmp;
975 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
976 fra.me.file = LOCATE_icode_generation;
977 fra.me.line = 164;
978 fra.me.meth = LOCATE_icode_generation___EscapableBlock___break_seq;
979 fra.me.has_broke = 0;
980 fra.me.REG_size = 1;
981 fra.me.REG[0] = NIT_NULL;
982 fra.me.REG[0] = p0;
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];
987 }
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;
990 val_t tmp;
991 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
992 fra.me.file = LOCATE_icode_generation;
993 fra.me.line = 164;
994 fra.me.meth = LOCATE_icode_generation___EscapableBlock___break_seq__eq;
995 fra.me.has_broke = 0;
996 fra.me.REG_size = 2;
997 fra.me.REG[0] = NIT_NULL;
998 fra.me.REG[1] = NIT_NULL;
999 fra.me.REG[0] = p0;
1000 fra.me.REG[1] = p1;
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;
1004 return;
1005 }
1006 val_t icode_generation___EscapableBlock___continue_seq(val_t p0){
1007 struct {struct stack_frame_t me;} fra;
1008 val_t tmp;
1009 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1010 fra.me.file = LOCATE_icode_generation;
1011 fra.me.line = 167;
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;
1016 fra.me.REG[0] = p0;
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];
1021 }
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;
1024 val_t tmp;
1025 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1026 fra.me.file = LOCATE_icode_generation;
1027 fra.me.line = 167;
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;
1033 fra.me.REG[0] = p0;
1034 fra.me.REG[1] = p1;
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;
1038 return;
1039 }
1040 val_t icode_generation___EscapableBlock___break_value(val_t p0){
1041 struct {struct stack_frame_t me;} fra;
1042 val_t tmp;
1043 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1044 fra.me.file = LOCATE_icode_generation;
1045 fra.me.line = 170;
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;
1050 fra.me.REG[0] = p0;
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];
1055 }
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;
1058 val_t tmp;
1059 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1060 fra.me.file = LOCATE_icode_generation;
1061 fra.me.line = 170;
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;
1067 fra.me.REG[0] = p0;
1068 fra.me.REG[1] = p1;
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;
1072 return;
1073 }
1074 val_t icode_generation___EscapableBlock___continue_value(val_t p0){
1075 struct {struct stack_frame_t me;} fra;
1076 val_t tmp;
1077 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1078 fra.me.file = LOCATE_icode_generation;
1079 fra.me.line = 173;
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;
1084 fra.me.REG[0] = p0;
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];
1089 }
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;
1092 val_t tmp;
1093 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1094 fra.me.file = LOCATE_icode_generation;
1095 fra.me.line = 173;
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;
1101 fra.me.REG[0] = p0;
1102 fra.me.REG[1] = p1;
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;
1106 return;
1107 }
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;
1110 val_t REGB0;
1111 val_t tmp;
1112 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1113 fra.me.file = LOCATE_icode_generation;
1114 fra.me.line = 178;
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;
1122 fra.me.REG[0] = p0;
1123 fra.me.REG[1] = p1;
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 */
1128 while(1) {
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 */
1135 while(1) {
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]);
1144 } else {
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]);
1150 }
1151 }
1152 } else {
1153 /* ./syntax//icode_generation.nit:183 */
1154 goto label1;
1155 }
1156 CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]);
1157 }
1158 label1: while(0);
1159 } else {
1160 /* ./syntax//icode_generation.nit:182 */
1161 goto label2;
1162 }
1163 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
1164 }
1165 label2: while(0);
1166 stack_frame_head = fra.me.prev;
1167 return;
1168 }
1169 val_t icode_generation___MMSrcAttribute___iroutine(val_t p0){
1170 struct {struct stack_frame_t me;} fra;
1171 val_t tmp;
1172 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1173 fra.me.file = LOCATE_icode_generation;
1174 fra.me.line = 195;
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;
1179 fra.me.REG[0] = p0;
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];
1184 }
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;
1187 val_t tmp;
1188 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1189 fra.me.file = LOCATE_icode_generation;
1190 fra.me.line = 195;
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;
1196 fra.me.REG[0] = p0;
1197 fra.me.REG[1] = p1;
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;
1201 return;
1202 }
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;
1205 val_t REGB0;
1206 val_t REGB1;
1207 val_t tmp;
1208 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1209 fra.me.file = LOCATE_icode_generation;
1210 fra.me.line = 197;
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;
1218 fra.me.REG[0] = p0;
1219 fra.me.REG[1] = p1;
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);
1226 nit_exit(1);
1227 }
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)) {
1231 } else {
1232 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1233 if (UNTAG_Bool(REGB1)) {
1234 REGB1 = TAG_Bool(false);
1235 REGB0 = REGB1;
1236 } else {
1237 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1238 REGB0 = REGB1;
1239 }
1240 }
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);
1249 nit_exit(1);
1250 }
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);
1258 nit_exit(1);
1259 }
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];
1272 }
1273 stack_frame_head = fra.me.prev;
1274 return;
1275 }
1276 val_t icode_generation___MMSrcMethod___iroutine(val_t p0){
1277 struct {struct stack_frame_t me;} fra;
1278 val_t tmp;
1279 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1280 fra.me.file = LOCATE_icode_generation;
1281 fra.me.line = 213;
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;
1286 fra.me.REG[0] = p0;
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];
1291 }
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;
1294 val_t tmp;
1295 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1296 fra.me.file = LOCATE_icode_generation;
1297 fra.me.line = 213;
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;
1303 fra.me.REG[0] = p0;
1304 fra.me.REG[1] = p1;
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;
1308 return;
1309 }
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;
1312 val_t REGB0;
1313 val_t REGB1;
1314 val_t tmp;
1315 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1316 fra.me.file = LOCATE_icode_generation;
1317 fra.me.line = 215;
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;
1325 fra.me.REG[0] = p0;
1326 fra.me.REG[1] = p1;
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);
1333 nit_exit(1);
1334 }
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)) {
1340 } else {
1341 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1342 if (UNTAG_Bool(REGB1)) {
1343 REGB1 = TAG_Bool(false);
1344 REGB0 = REGB1;
1345 } else {
1346 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1347 REGB0 = REGB1;
1348 }
1349 }
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);
1358 nit_exit(1);
1359 }
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]);
1362 }
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;
1373 return;
1374 }
1375 void icode_generation___MMSrcMethod___inner_generate_iroutine(val_t p0, val_t p1){
1376 struct {struct stack_frame_t me;} fra;
1377 val_t tmp;
1378 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1379 fra.me.file = LOCATE_icode_generation;
1380 fra.me.line = 229;
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);
1387 nit_exit(1);
1388 stack_frame_head = fra.me.prev;
1389 return;
1390 }
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;
1393 val_t REGB0;
1394 val_t tmp;
1395 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1396 fra.me.file = LOCATE_icode_generation;
1397 fra.me.line = 234;
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;
1404 fra.me.REG[0] = p0;
1405 fra.me.REG[1] = p1;
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);
1412 nit_exit(1);
1413 }
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;
1422 return;
1423 }
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;
1426 val_t REGB0;
1427 val_t tmp;
1428 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1429 fra.me.file = LOCATE_icode_generation;
1430 fra.me.line = 242;
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;
1438 fra.me.REG[0] = p0;
1439 fra.me.REG[1] = p1;
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);
1448 nit_exit(1);
1449 }
1450 fra.me.REG[0] = CALL_syntax_base___AAttrPropdef___prop(fra.me.REG[0])(fra.me.REG[0]);
1451 REGB0 = TAG_Int(0);
1452 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], REGB0);
1453 REGB0 = TAG_Int(1);
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;
1458 return;
1459 }
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;
1462 val_t tmp;
1463 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1464 fra.me.file = LOCATE_icode_generation;
1465 fra.me.line = 250;
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;
1471 fra.me.REG[0] = p0;
1472 fra.me.REG[1] = p1;
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;
1478 return;
1479 }
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;
1482 val_t REGB0;
1483 val_t REGB1;
1484 val_t REGB2;
1485 val_t REGB3;
1486 val_t REGB4;
1487 val_t tmp;
1488 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1489 fra.me.file = LOCATE_icode_generation;
1490 fra.me.line = 257;
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;
1504 fra.me.REG[0] = p0;
1505 fra.me.REG[1] = p1;
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)) {
1513 } else {
1514 fprintf(stderr, "Uninitialized attribute %s", "_length");
1515 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
1516 nit_exit(1);
1517 }
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 */
1524 while(1) {
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)) {
1531 } else {
1532 fprintf(stderr, "Assert failed");
1533 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 263);
1534 nit_exit(1);
1535 }
1536 REGB0 = TAG_Int(1);
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)) {
1544 } else {
1545 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
1546 REGB0 = REGB2;
1547 }
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]);
1552 REGB0 = TAG_Int(1);
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 */
1556 while(1) {
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]);
1563 } else {
1564 /* ./syntax//icode_generation.nit:268 */
1565 goto label1;
1566 }
1567 CALL_abstract_collection___Iterator___next(fra.me.REG[8])(fra.me.REG[8]);
1568 }
1569 label1: while(0);
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]);
1573 } else {
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]);
1577 }
1578 } else {
1579 /* ./syntax//icode_generation.nit:262 */
1580 goto label2;
1581 }
1582 CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]);
1583 }
1584 label2: while(0);
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 */
1589 while(1) {
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));
1595 REGB3 = TAG_Int(0);
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)) {
1601 } else {
1602 fprintf(stderr, "Uninitialized attribute %s", "_length");
1603 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
1604 nit_exit(1);
1605 }
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 */
1609 } else {
1610 REGB4 = TAG_Bool(false);
1611 REGB3 = REGB4;
1612 }
1613 if (UNTAG_Bool(REGB3)) {
1614 } else {
1615 fprintf(stderr, "Assert %s failed", "'index'");
1616 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
1617 nit_exit(1);
1618 }
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);
1625 nit_exit(1);
1626 }
1627 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB2)];
1628 /* ./../lib/standard//collection//array.nit:234 */
1629 goto label3;
1630 label3: while(0);
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]);
1635 } else {
1636 /* ./syntax//icode_generation.nit:276 */
1637 goto label4;
1638 }
1639 CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]);
1640 }
1641 label4: while(0);
1642 stack_frame_head = fra.me.prev;
1643 return;
1644 }
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;
1647 val_t REGB0;
1648 val_t tmp;
1649 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1650 fra.me.file = LOCATE_icode_generation;
1651 fra.me.line = 287;
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;
1657 fra.me.REG[0] = p0;
1658 fra.me.REG[1] = p1;
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);
1664 nit_exit(1);
1665 }
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;
1668 return;
1669 }
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;
1672 val_t tmp;
1673 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1674 fra.me.file = LOCATE_icode_generation;
1675 fra.me.line = 285;
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;
1681 fra.me.REG[0] = p0;
1682 fra.me.REG[1] = p1;
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;
1686 return;
1687 }
1688 val_t icode_generation___A2IVisitor___icode_ctx(val_t p0){
1689 struct {struct stack_frame_t me;} fra;
1690 val_t REGB0;
1691 val_t tmp;
1692 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1693 fra.me.file = LOCATE_icode_generation;
1694 fra.me.line = 286;
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;
1699 fra.me.REG[0] = p0;
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)) {
1704 } else {
1705 fprintf(stderr, "Cast failed");
1706 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 286);
1707 nit_exit(1);
1708 }
1709 goto label1;
1710 label1: while(0);
1711 stack_frame_head = fra.me.prev;
1712 return fra.me.REG[0];
1713 }
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;
1717 val_t tmp;
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;
1721 fra.me.line = 288;
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;
1728 fra.me.REG[0] = p0;
1729 fra.me.REG[1] = p1;
1730 fra.me.REG[2] = p2;
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;
1735 return;
1736 }
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;
1739 val_t tmp;
1740 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1741 fra.me.file = LOCATE_icode_generation;
1742 fra.me.line = 295;
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;
1748 fra.me.REG[0] = p0;
1749 fra.me.REG[1] = p1;
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;
1753 return;
1754 }
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;
1757 val_t REGB0;
1758 val_t REGB1;
1759 val_t tmp;
1760 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1761 fra.me.file = LOCATE_icode_generation;
1762 fra.me.line = 299;
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;
1772 fra.me.REG[0] = p0;
1773 fra.me.REG[1] = p1;
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)) {
1791 } else {
1792 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1793 if (UNTAG_Bool(REGB1)) {
1794 REGB1 = TAG_Bool(false);
1795 REGB0 = REGB1;
1796 } else {
1797 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1798 REGB0 = REGB1;
1799 }
1800 }
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)) {
1808 } else {
1809 fprintf(stderr, "Cast failed");
1810 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 306);
1811 nit_exit(1);
1812 }
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]);
1816 }
1817 stack_frame_head = fra.me.prev;
1818 return;
1819 }
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;
1822 val_t tmp;
1823 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1824 fra.me.file = LOCATE_icode_generation;
1825 fra.me.line = 312;
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;
1833 fra.me.REG[0] = p0;
1834 fra.me.REG[1] = p1;
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;
1844 return;
1845 }
1846 void icode_generation___AMethPropdef___fill_iroutine(val_t p0, val_t p1, val_t p2){
1847 struct {struct stack_frame_t me;} fra;
1848 val_t tmp;
1849 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1850 fra.me.file = LOCATE_icode_generation;
1851 fra.me.line = 318;
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);
1858 nit_exit(1);
1859 stack_frame_head = fra.me.prev;
1860 return;
1861 }
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;
1864 val_t REGB0;
1865 val_t REGB1;
1866 val_t tmp;
1867 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1868 fra.me.file = LOCATE_icode_generation;
1869 fra.me.line = 323;
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;
1883 fra.me.REG[0] = p0;
1884 fra.me.REG[1] = p1;
1885 fra.me.REG[2] = p2;
1886 fra.me.REG[3] = p3;
1887 fra.me.REG[4] = p4;
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 */
1891 while(1) {
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)) {
1904 } else {
1905 fprintf(stderr, "Cast failed");
1906 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 328);
1907 nit_exit(1);
1908 }
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]);
1917 }
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]);
1923 } else {
1924 /* ./syntax//icode_generation.nit:325 */
1925 goto label1;
1926 }
1927 CALL_abstract_collection___Iterator___next(fra.me.REG[5])(fra.me.REG[5]);
1928 }
1929 label1: while(0);
1930 REGB0 = TAG_Int(0);
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 */
1936 while(1) {
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);
1949 nit_exit(1);
1950 }
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]);
1953 } else {
1954 /* ./syntax//icode_generation.nit:334 */
1955 goto label2;
1956 }
1957 CALL_abstract_collection___Iterator___next(fra.me.REG[5])(fra.me.REG[5]);
1958 }
1959 label2: while(0);
1960 stack_frame_head = fra.me.prev;
1961 return;
1962 }
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;
1965 val_t REGB0;
1966 val_t REGB1;
1967 val_t tmp;
1968 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1969 fra.me.file = LOCATE_icode_generation;
1970 fra.me.line = 342;
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;
1981 fra.me.REG[0] = p0;
1982 fra.me.REG[1] = p1;
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);
1999 nit_exit(1);
2000 }
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);
2009 nit_exit(1);
2010 }
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);
2019 nit_exit(1);
2020 }
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);
2029 nit_exit(1);
2030 }
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)) {
2043 } else {
2044 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
2045 if (UNTAG_Bool(REGB1)) {
2046 REGB1 = TAG_Bool(false);
2047 REGB0 = REGB1;
2048 } else {
2049 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
2050 REGB0 = REGB1;
2051 }
2052 }
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);
2066 nit_exit(1);
2067 }
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);
2073 nit_exit(1);
2074 }
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)) {
2084 } else {
2085 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2086 if (UNTAG_Bool(REGB1)) {
2087 REGB1 = TAG_Bool(false);
2088 REGB0 = REGB1;
2089 } else {
2090 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
2091 REGB0 = REGB1;
2092 }
2093 }
2094 } else {
2095 REGB1 = TAG_Bool(false);
2096 REGB0 = REGB1;
2097 }
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)) {
2103 } else {
2104 fprintf(stderr, "Cast failed");
2105 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 360);
2106 nit_exit(1);
2107 }
2108 CALL_icode_builder___ICodeBuilder___add_escape(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2109 }
2110 }
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;
2114 return;
2115 }
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;
2118 val_t REGB0;
2119 val_t REGB1;
2120 val_t REGB2;
2121 val_t tmp;
2122 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2123 fra.me.file = LOCATE_icode_generation;
2124 fra.me.line = 368;
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;
2134 fra.me.REG[0] = p0;
2135 fra.me.REG[1] = p1;
2136 fra.me.REG[2] = p2;
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]);
2142 REGB0 = TAG_Int(0);
2143 fra.me.REG[5] = fra.me.REG[3];
2144 REGB1 = TAG_Int(0);
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)) {
2150 } else {
2151 fprintf(stderr, "Uninitialized attribute %s", "_length");
2152 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
2153 nit_exit(1);
2154 }
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 */
2158 } else {
2159 REGB2 = TAG_Bool(false);
2160 REGB1 = REGB2;
2161 }
2162 if (UNTAG_Bool(REGB1)) {
2163 } else {
2164 fprintf(stderr, "Assert %s failed", "'index'");
2165 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
2166 nit_exit(1);
2167 }
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);
2174 nit_exit(1);
2175 }
2176 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
2177 /* ./../lib/standard//collection//array.nit:234 */
2178 goto label1;
2179 label1: while(0);
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);
2193 nit_exit(1);
2194 }
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)) {
2201 } else {
2202 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2203 if (UNTAG_Bool(REGB1)) {
2204 REGB1 = TAG_Bool(false);
2205 REGB0 = REGB1;
2206 } else {
2207 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
2208 REGB0 = REGB1;
2209 }
2210 }
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);
2221 nit_exit(1);
2222 }
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]);
2224 }
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);
2230 }
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)) {
2235 } else {
2236 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2237 if (UNTAG_Bool(REGB1)) {
2238 REGB1 = TAG_Bool(false);
2239 REGB0 = REGB1;
2240 } else {
2241 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
2242 REGB0 = REGB1;
2243 }
2244 }
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]);
2250 }
2251 stack_frame_head = fra.me.prev;
2252 return;
2253 }
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;
2256 val_t REGB0;
2257 val_t tmp;
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;
2261 fra.me.line = 392;
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;
2268 fra.me.REG[0] = p0;
2269 fra.me.REG[1] = p1;
2270 fra.me.REG[2] = p2;
2271 REGB0 = TAG_Int(0);
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;
2284 return;
2285 }
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;
2288 val_t REGB0;
2289 val_t REGB1;
2290 val_t REGB2;
2291 val_t tmp;
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;
2306 fra.me.line = 399;
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;
2318 fra.me.REG[0] = p0;
2319 fra.me.REG[1] = p1;
2320 fra.me.REG[2] = p2;
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("");
2328 REGB0 = TAG_Int(0);
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("_");
2340 REGB0 = TAG_Int(1);
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("_");
2352 REGB0 = TAG_Int(1);
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("_");
2364 REGB0 = TAG_Int(1);
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("_");
2375 REGB0 = TAG_Int(1);
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);
2386 nit_exit(1);
2387 }
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("");
2393 REGB0 = TAG_Int(0);
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)) {
2404 } else {
2405 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2406 if (UNTAG_Bool(REGB1)) {
2407 REGB1 = TAG_Bool(false);
2408 REGB0 = REGB1;
2409 } else {
2410 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
2411 REGB0 = REGB1;
2412 }
2413 }
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);
2422 nit_exit(1);
2423 }
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];
2426 REGB0 = TAG_Int(1);
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)) {
2430 } else {
2431 fprintf(stderr, "Uninitialized attribute %s", "_length");
2432 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
2433 nit_exit(1);
2434 }
2435 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
2436 REGB2 = TAG_Int(2);
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 */
2441 }
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);
2449 nit_exit(1);
2450 }
2451 REGB0 = CALL_static_type___MMSignature___arity(fra.me.REG[2])(fra.me.REG[2]);
2452 REGB1 = TAG_Int(1);
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)) {
2457 } else {
2458 REGB1 = TAG_Bool((REGB2)==(REGB1));
2459 REGB0 = REGB1;
2460 /* ./syntax//icode_generation.nit:408 */
2461 }
2462 if (UNTAG_Bool(REGB0)) {
2463 } else {
2464 fprintf(stderr, "Assert failed");
2465 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 408);
2466 nit_exit(1);
2467 }
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);
2474 nit_exit(1);
2475 }
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("@@@");
2479 REGB0 = TAG_Int(3);
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]);
2486 REGB0 = TAG_Int(0);
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);
2492 nit_exit(1);
2493 }
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]);
2497 while(1) {
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);
2506 nit_exit(1);
2507 }
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("@@@");
2511 REGB1 = TAG_Int(3);
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]);
2518 } else {
2519 /* ./syntax//icode_generation.nit:411 */
2520 goto label9;
2521 }
2522 CALL_abstract_collection___Iterator___next(fra.me.REG[6])(fra.me.REG[6]);
2523 }
2524 label9: while(0);
2525 REGB1 = TAG_Int(5);
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("");
2530 REGB1 = TAG_Int(0);
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("(");
2539 REGB1 = TAG_Int(1);
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(", ");
2547 REGB1 = TAG_Int(2);
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(")");
2556 REGB1 = TAG_Int(1);
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);
2568 nit_exit(1);
2569 }
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)) {
2574 } else {
2575 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2576 if (UNTAG_Bool(REGB0)) {
2577 REGB0 = TAG_Bool(false);
2578 REGB1 = REGB0;
2579 } else {
2580 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2581 REGB1 = REGB0;
2582 }
2583 }
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);
2591 nit_exit(1);
2592 }
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]);
2599 } else {
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]);
2603 }
2604 stack_frame_head = fra.me.prev;
2605 return;
2606 }
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;
2609 val_t REGB0;
2610 val_t REGB1;
2611 val_t REGB2;
2612 val_t REGB3;
2613 val_t tmp;
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;
2847 fra.me.line = 426;
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;
2860 fra.me.REG[0] = p0;
2861 fra.me.REG[1] = p1;
2862 fra.me.REG[2] = p2;
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");
2874 REGB0 = TAG_Int(3);
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)) {
2885 } else {
2886 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
2887 REGB0 = REGB1;
2888 }
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");
2894 REGB0 = TAG_Int(9);
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)) {
2905 } else {
2906 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
2907 REGB0 = REGB1;
2908 }
2909 if (UNTAG_Bool(REGB0)) {
2910 /* ./syntax//icode_generation.nit:434 */
2911 if (!once_value_5) {
2912 fra.me.REG[7] = BOX_NativeString("@@@");
2913 REGB0 = TAG_Int(3);
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];
2919 } else {
2920 /* ./syntax//icode_generation.nit:435 */
2921 if (!once_value_6) {
2922 if (!once_value_7) {
2923 fra.me.REG[7] = BOX_NativeString("unary -");
2924 REGB0 = TAG_Int(7);
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)) {
2935 } else {
2936 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
2937 REGB0 = REGB1;
2938 }
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];
2949 } else {
2950 /* ./syntax//icode_generation.nit:437 */
2951 if (!once_value_9) {
2952 if (!once_value_10) {
2953 fra.me.REG[7] = BOX_NativeString("output");
2954 REGB0 = TAG_Int(6);
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)) {
2965 } else {
2966 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
2967 REGB0 = REGB1;
2968 }
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];
2979 } else {
2980 /* ./syntax//icode_generation.nit:439 */
2981 if (!once_value_12) {
2982 if (!once_value_13) {
2983 fra.me.REG[7] = BOX_NativeString("ascii");
2984 REGB0 = TAG_Int(5);
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)) {
2995 } else {
2996 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
2997 REGB0 = REGB1;
2998 }
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];
3009 } else {
3010 /* ./syntax//icode_generation.nit:441 */
3011 if (!once_value_15) {
3012 if (!once_value_16) {
3013 fra.me.REG[7] = BOX_NativeString("succ");
3014 REGB0 = TAG_Int(4);
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)) {
3025 } else {
3026 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3027 REGB0 = REGB1;
3028 }
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];
3039 } else {
3040 /* ./syntax//icode_generation.nit:443 */
3041 if (!once_value_18) {
3042 if (!once_value_19) {
3043 fra.me.REG[7] = BOX_NativeString("prec");
3044 REGB0 = TAG_Int(4);
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)) {
3055 } else {
3056 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3057 REGB0 = REGB1;
3058 }
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];
3069 } else {
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");
3074 REGB0 = TAG_Int(4);
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)) {
3085 } else {
3086 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3087 REGB0 = REGB1;
3088 }
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];
3099 } else {
3100 /* ./syntax//icode_generation.nit:447 */
3101 if (!once_value_24) {
3102 if (!once_value_25) {
3103 fra.me.REG[7] = BOX_NativeString("+");
3104 REGB0 = TAG_Int(1);
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)) {
3115 } else {
3116 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3117 REGB0 = REGB1;
3118 }
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];
3129 } else {
3130 /* ./syntax//icode_generation.nit:449 */
3131 if (!once_value_27) {
3132 if (!once_value_28) {
3133 fra.me.REG[7] = BOX_NativeString("-");
3134 REGB0 = TAG_Int(1);
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)) {
3145 } else {
3146 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3147 REGB0 = REGB1;
3148 }
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];
3159 } else {
3160 /* ./syntax//icode_generation.nit:451 */
3161 if (!once_value_30) {
3162 if (!once_value_31) {
3163 fra.me.REG[7] = BOX_NativeString("*");
3164 REGB0 = TAG_Int(1);
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)) {
3175 } else {
3176 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3177 REGB0 = REGB1;
3178 }
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];
3189 } else {
3190 /* ./syntax//icode_generation.nit:453 */
3191 if (!once_value_33) {
3192 if (!once_value_34) {
3193 fra.me.REG[7] = BOX_NativeString("/");
3194 REGB0 = TAG_Int(1);
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)) {
3205 } else {
3206 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3207 REGB0 = REGB1;
3208 }
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];
3219 } else {
3220 /* ./syntax//icode_generation.nit:455 */
3221 if (!once_value_36) {
3222 if (!once_value_37) {
3223 fra.me.REG[7] = BOX_NativeString("%");
3224 REGB0 = TAG_Int(1);
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)) {
3235 } else {
3236 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3237 REGB0 = REGB1;
3238 }
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];
3249 } else {
3250 /* ./syntax//icode_generation.nit:457 */
3251 if (!once_value_39) {
3252 if (!once_value_40) {
3253 fra.me.REG[7] = BOX_NativeString("<");
3254 REGB0 = TAG_Int(1);
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)) {
3265 } else {
3266 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3267 REGB0 = REGB1;
3268 }
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];
3279 } else {
3280 /* ./syntax//icode_generation.nit:459 */
3281 if (!once_value_42) {
3282 if (!once_value_43) {
3283 fra.me.REG[7] = BOX_NativeString(">");
3284 REGB0 = TAG_Int(1);
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)) {
3295 } else {
3296 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3297 REGB0 = REGB1;
3298 }
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];
3309 } else {
3310 /* ./syntax//icode_generation.nit:461 */
3311 if (!once_value_45) {
3312 if (!once_value_46) {
3313 fra.me.REG[7] = BOX_NativeString("<=");
3314 REGB0 = TAG_Int(2);
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)) {
3325 } else {
3326 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3327 REGB0 = REGB1;
3328 }
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];
3339 } else {
3340 /* ./syntax//icode_generation.nit:463 */
3341 if (!once_value_48) {
3342 if (!once_value_49) {
3343 fra.me.REG[7] = BOX_NativeString(">=");
3344 REGB0 = TAG_Int(2);
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)) {
3355 } else {
3356 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3357 REGB0 = REGB1;
3358 }
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];
3369 } else {
3370 /* ./syntax//icode_generation.nit:465 */
3371 if (!once_value_51) {
3372 if (!once_value_52) {
3373 fra.me.REG[7] = BOX_NativeString("lshift");
3374 REGB0 = TAG_Int(6);
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)) {
3385 } else {
3386 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3387 REGB0 = REGB1;
3388 }
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];
3399 } else {
3400 /* ./syntax//icode_generation.nit:467 */
3401 if (!once_value_54) {
3402 if (!once_value_55) {
3403 fra.me.REG[7] = BOX_NativeString("rshift");
3404 REGB0 = TAG_Int(6);
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)) {
3415 } else {
3416 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3417 REGB0 = REGB1;
3418 }
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];
3429 } else {
3430 /* ./syntax//icode_generation.nit:469 */
3431 if (!once_value_57) {
3432 if (!once_value_58) {
3433 fra.me.REG[7] = BOX_NativeString("==");
3434 REGB0 = TAG_Int(2);
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)) {
3445 } else {
3446 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3447 REGB0 = REGB1;
3448 }
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];
3459 } else {
3460 /* ./syntax//icode_generation.nit:471 */
3461 if (!once_value_60) {
3462 if (!once_value_61) {
3463 fra.me.REG[7] = BOX_NativeString("!=");
3464 REGB0 = TAG_Int(2);
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)) {
3475 } else {
3476 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3477 REGB0 = REGB1;
3478 }
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];
3489 }
3490 }
3491 }
3492 }
3493 }
3494 }
3495 }
3496 }
3497 }
3498 }
3499 }
3500 }
3501 }
3502 }
3503 }
3504 }
3505 }
3506 }
3507 }
3508 }
3509 } else {
3510 /* ./syntax//icode_generation.nit:474 */
3511 if (!once_value_63) {
3512 if (!once_value_64) {
3513 fra.me.REG[7] = BOX_NativeString("Float");
3514 REGB0 = TAG_Int(5);
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)) {
3525 } else {
3526 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
3527 REGB0 = REGB1;
3528 }
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");
3534 REGB0 = TAG_Int(9);
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)) {
3545 } else {
3546 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3547 REGB0 = REGB1;
3548 }
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];
3559 } else {
3560 /* ./syntax//icode_generation.nit:477 */
3561 if (!once_value_68) {
3562 if (!once_value_69) {
3563 fra.me.REG[7] = BOX_NativeString("unary -");
3564 REGB0 = TAG_Int(7);
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)) {
3575 } else {
3576 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3577 REGB0 = REGB1;
3578 }
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];
3589 } else {
3590 /* ./syntax//icode_generation.nit:479 */
3591 if (!once_value_71) {
3592 if (!once_value_72) {
3593 fra.me.REG[7] = BOX_NativeString("output");
3594 REGB0 = TAG_Int(6);
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)) {
3605 } else {
3606 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3607 REGB0 = REGB1;
3608 }
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];
3619 } else {
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");
3624 REGB0 = TAG_Int(4);
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)) {
3635 } else {
3636 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3637 REGB0 = REGB1;
3638 }
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];
3649 } else {
3650 /* ./syntax//icode_generation.nit:483 */
3651 if (!once_value_77) {
3652 if (!once_value_78) {
3653 fra.me.REG[7] = BOX_NativeString("+");
3654 REGB0 = TAG_Int(1);
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)) {
3665 } else {
3666 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3667 REGB0 = REGB1;
3668 }
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];
3679 } else {
3680 /* ./syntax//icode_generation.nit:485 */
3681 if (!once_value_80) {
3682 if (!once_value_81) {
3683 fra.me.REG[7] = BOX_NativeString("-");
3684 REGB0 = TAG_Int(1);
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)) {
3695 } else {
3696 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3697 REGB0 = REGB1;
3698 }
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];
3709 } else {
3710 /* ./syntax//icode_generation.nit:487 */
3711 if (!once_value_83) {
3712 if (!once_value_84) {
3713 fra.me.REG[7] = BOX_NativeString("*");
3714 REGB0 = TAG_Int(1);
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)) {
3725 } else {
3726 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3727 REGB0 = REGB1;
3728 }
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];
3739 } else {
3740 /* ./syntax//icode_generation.nit:489 */
3741 if (!once_value_86) {
3742 if (!once_value_87) {
3743 fra.me.REG[7] = BOX_NativeString("/");
3744 REGB0 = TAG_Int(1);
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)) {
3755 } else {
3756 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3757 REGB0 = REGB1;
3758 }
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];
3769 } else {
3770 /* ./syntax//icode_generation.nit:491 */
3771 if (!once_value_89) {
3772 if (!once_value_90) {
3773 fra.me.REG[7] = BOX_NativeString("<");
3774 REGB0 = TAG_Int(1);
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)) {
3785 } else {
3786 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3787 REGB0 = REGB1;
3788 }
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];
3799 } else {
3800 /* ./syntax//icode_generation.nit:493 */
3801 if (!once_value_92) {
3802 if (!once_value_93) {
3803 fra.me.REG[7] = BOX_NativeString(">");
3804 REGB0 = TAG_Int(1);
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)) {
3815 } else {
3816 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3817 REGB0 = REGB1;
3818 }
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];
3829 } else {
3830 /* ./syntax//icode_generation.nit:495 */
3831 if (!once_value_95) {
3832 if (!once_value_96) {
3833 fra.me.REG[7] = BOX_NativeString("<=");
3834 REGB0 = TAG_Int(2);
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)) {
3845 } else {
3846 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3847 REGB0 = REGB1;
3848 }
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];
3859 } else {
3860 /* ./syntax//icode_generation.nit:497 */
3861 if (!once_value_98) {
3862 if (!once_value_99) {
3863 fra.me.REG[7] = BOX_NativeString(">=");
3864 REGB0 = TAG_Int(2);
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)) {
3875 } else {
3876 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3877 REGB0 = REGB1;
3878 }
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];
3889 }
3890 }
3891 }
3892 }
3893 }
3894 }
3895 }
3896 }
3897 }
3898 }
3899 }
3900 }
3901 } else {
3902 /* ./syntax//icode_generation.nit:500 */
3903 if (!once_value_101) {
3904 if (!once_value_102) {
3905 fra.me.REG[7] = BOX_NativeString("Char");
3906 REGB0 = TAG_Int(4);
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)) {
3917 } else {
3918 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
3919 REGB0 = REGB1;
3920 }
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");
3926 REGB0 = TAG_Int(9);
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)) {
3937 } else {
3938 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3939 REGB0 = REGB1;
3940 }
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];
3951 } else {
3952 /* ./syntax//icode_generation.nit:503 */
3953 if (!once_value_106) {
3954 if (!once_value_107) {
3955 fra.me.REG[7] = BOX_NativeString("unary -");
3956 REGB0 = TAG_Int(7);
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)) {
3967 } else {
3968 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3969 REGB0 = REGB1;
3970 }
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];
3981 } else {
3982 /* ./syntax//icode_generation.nit:505 */
3983 if (!once_value_109) {
3984 if (!once_value_110) {
3985 fra.me.REG[7] = BOX_NativeString("output");
3986 REGB0 = TAG_Int(6);
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)) {
3997 } else {
3998 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
3999 REGB0 = REGB1;
4000 }
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];
4011 } else {
4012 /* ./syntax//icode_generation.nit:507 */
4013 if (!once_value_112) {
4014 if (!once_value_113) {
4015 fra.me.REG[7] = BOX_NativeString("ascii");
4016 REGB0 = TAG_Int(5);
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)) {
4027 } else {
4028 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4029 REGB0 = REGB1;
4030 }
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];
4041 } else {
4042 /* ./syntax//icode_generation.nit:509 */
4043 if (!once_value_115) {
4044 if (!once_value_116) {
4045 fra.me.REG[7] = BOX_NativeString("succ");
4046 REGB0 = TAG_Int(4);
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)) {
4057 } else {
4058 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4059 REGB0 = REGB1;
4060 }
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];
4071 } else {
4072 /* ./syntax//icode_generation.nit:511 */
4073 if (!once_value_118) {
4074 if (!once_value_119) {
4075 fra.me.REG[7] = BOX_NativeString("prec");
4076 REGB0 = TAG_Int(4);
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)) {
4087 } else {
4088 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4089 REGB0 = REGB1;
4090 }
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];
4101 } else {
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");
4106 REGB0 = TAG_Int(4);
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)) {
4117 } else {
4118 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4119 REGB0 = REGB1;
4120 }
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];
4131 } else {
4132 /* ./syntax//icode_generation.nit:515 */
4133 if (!once_value_124) {
4134 if (!once_value_125) {
4135 fra.me.REG[7] = BOX_NativeString("+");
4136 REGB0 = TAG_Int(1);
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)) {
4147 } else {
4148 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4149 REGB0 = REGB1;
4150 }
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];
4161 } else {
4162 /* ./syntax//icode_generation.nit:517 */
4163 if (!once_value_127) {
4164 if (!once_value_128) {
4165 fra.me.REG[7] = BOX_NativeString("-");
4166 REGB0 = TAG_Int(1);
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)) {
4177 } else {
4178 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4179 REGB0 = REGB1;
4180 }
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];
4191 } else {
4192 /* ./syntax//icode_generation.nit:519 */
4193 if (!once_value_130) {
4194 if (!once_value_131) {
4195 fra.me.REG[7] = BOX_NativeString("*");
4196 REGB0 = TAG_Int(1);
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)) {
4207 } else {
4208 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4209 REGB0 = REGB1;
4210 }
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];
4221 } else {
4222 /* ./syntax//icode_generation.nit:521 */
4223 if (!once_value_133) {
4224 if (!once_value_134) {
4225 fra.me.REG[7] = BOX_NativeString("/");
4226 REGB0 = TAG_Int(1);
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)) {
4237 } else {
4238 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4239 REGB0 = REGB1;
4240 }
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];
4251 } else {
4252 /* ./syntax//icode_generation.nit:523 */
4253 if (!once_value_136) {
4254 if (!once_value_137) {
4255 fra.me.REG[7] = BOX_NativeString("%");
4256 REGB0 = TAG_Int(1);
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)) {
4267 } else {
4268 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4269 REGB0 = REGB1;
4270 }
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];
4281 } else {
4282 /* ./syntax//icode_generation.nit:525 */
4283 if (!once_value_139) {
4284 if (!once_value_140) {
4285 fra.me.REG[7] = BOX_NativeString("<");
4286 REGB0 = TAG_Int(1);
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)) {
4297 } else {
4298 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4299 REGB0 = REGB1;
4300 }
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];
4311 } else {
4312 /* ./syntax//icode_generation.nit:527 */
4313 if (!once_value_142) {
4314 if (!once_value_143) {
4315 fra.me.REG[7] = BOX_NativeString(">");
4316 REGB0 = TAG_Int(1);
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)) {
4327 } else {
4328 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4329 REGB0 = REGB1;
4330 }
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];
4341 } else {
4342 /* ./syntax//icode_generation.nit:529 */
4343 if (!once_value_145) {
4344 if (!once_value_146) {
4345 fra.me.REG[7] = BOX_NativeString("<=");
4346 REGB0 = TAG_Int(2);
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)) {
4357 } else {
4358 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4359 REGB0 = REGB1;
4360 }
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];
4371 } else {
4372 /* ./syntax//icode_generation.nit:531 */
4373 if (!once_value_148) {
4374 if (!once_value_149) {
4375 fra.me.REG[7] = BOX_NativeString(">=");
4376 REGB0 = TAG_Int(2);
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)) {
4387 } else {
4388 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4389 REGB0 = REGB1;
4390 }
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];
4401 } else {
4402 /* ./syntax//icode_generation.nit:533 */
4403 if (!once_value_151) {
4404 if (!once_value_152) {
4405 fra.me.REG[7] = BOX_NativeString("==");
4406 REGB0 = TAG_Int(2);
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)) {
4417 } else {
4418 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4419 REGB0 = REGB1;
4420 }
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];
4431 } else {
4432 /* ./syntax//icode_generation.nit:535 */
4433 if (!once_value_154) {
4434 if (!once_value_155) {
4435 fra.me.REG[7] = BOX_NativeString("!=");
4436 REGB0 = TAG_Int(2);
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)) {
4447 } else {
4448 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4449 REGB0 = REGB1;
4450 }
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];
4461 }
4462 }
4463 }
4464 }
4465 }
4466 }
4467 }
4468 }
4469 }
4470 }
4471 }
4472 }
4473 }
4474 }
4475 }
4476 }
4477 }
4478 }
4479 } else {
4480 /* ./syntax//icode_generation.nit:538 */
4481 if (!once_value_157) {
4482 if (!once_value_158) {
4483 fra.me.REG[7] = BOX_NativeString("Bool");
4484 REGB0 = TAG_Int(4);
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)) {
4495 } else {
4496 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
4497 REGB0 = REGB1;
4498 }
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");
4504 REGB0 = TAG_Int(9);
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)) {
4515 } else {
4516 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4517 REGB0 = REGB1;
4518 }
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];
4529 } else {
4530 /* ./syntax//icode_generation.nit:541 */
4531 if (!once_value_162) {
4532 if (!once_value_163) {
4533 fra.me.REG[7] = BOX_NativeString("unary -");
4534 REGB0 = TAG_Int(7);
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)) {
4545 } else {
4546 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4547 REGB0 = REGB1;
4548 }
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];
4559 } else {
4560 /* ./syntax//icode_generation.nit:543 */
4561 if (!once_value_165) {
4562 if (!once_value_166) {
4563 fra.me.REG[7] = BOX_NativeString("output");
4564 REGB0 = TAG_Int(6);
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)) {
4575 } else {
4576 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4577 REGB0 = REGB1;
4578 }
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];
4589 } else {
4590 /* ./syntax//icode_generation.nit:545 */
4591 if (!once_value_168) {
4592 if (!once_value_169) {
4593 fra.me.REG[7] = BOX_NativeString("ascii");
4594 REGB0 = TAG_Int(5);
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)) {
4605 } else {
4606 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4607 REGB0 = REGB1;
4608 }
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];
4619 } else {
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");
4624 REGB0 = TAG_Int(4);
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)) {
4635 } else {
4636 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4637 REGB0 = REGB1;
4638 }
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];
4649 } else {
4650 /* ./syntax//icode_generation.nit:549 */
4651 if (!once_value_174) {
4652 if (!once_value_175) {
4653 fra.me.REG[7] = BOX_NativeString("==");
4654 REGB0 = TAG_Int(2);
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)) {
4665 } else {
4666 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4667 REGB0 = REGB1;
4668 }
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];
4679 } else {
4680 /* ./syntax//icode_generation.nit:551 */
4681 if (!once_value_177) {
4682 if (!once_value_178) {
4683 fra.me.REG[7] = BOX_NativeString("!=");
4684 REGB0 = TAG_Int(2);
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)) {
4695 } else {
4696 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4697 REGB0 = REGB1;
4698 }
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];
4709 }
4710 }
4711 }
4712 }
4713 }
4714 }
4715 }
4716 } else {
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)) {
4732 } else {
4733 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
4734 REGB0 = REGB1;
4735 }
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");
4741 REGB0 = TAG_Int(9);
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)) {
4752 } else {
4753 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4754 REGB0 = REGB1;
4755 }
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];
4766 } else {
4767 /* ./syntax//icode_generation.nit:557 */
4768 if (!once_value_185) {
4769 if (!once_value_186) {
4770 fra.me.REG[7] = BOX_NativeString("[]");
4771 REGB0 = TAG_Int(2);
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)) {
4782 } else {
4783 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4784 REGB0 = REGB1;
4785 }
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];
4796 } else {
4797 /* ./syntax//icode_generation.nit:559 */
4798 if (!once_value_188) {
4799 if (!once_value_189) {
4800 fra.me.REG[7] = BOX_NativeString("[]=");
4801 REGB0 = TAG_Int(3);
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)) {
4812 } else {
4813 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4814 REGB0 = REGB1;
4815 }
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];
4826 } else {
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");
4831 REGB0 = TAG_Int(7);
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)) {
4842 } else {
4843 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4844 REGB0 = REGB1;
4845 }
4846 if (UNTAG_Bool(REGB0)) {
4847 REGB0 = TAG_Int(0);
4848 fra.me.REG[7] = fra.me.REG[3];
4849 REGB1 = TAG_Int(0);
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)) {
4855 } else {
4856 fprintf(stderr, "Uninitialized attribute %s", "_length");
4857 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
4858 nit_exit(1);
4859 }
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 */
4863 } else {
4864 REGB2 = TAG_Bool(false);
4865 REGB1 = REGB2;
4866 }
4867 if (UNTAG_Bool(REGB1)) {
4868 } else {
4869 fprintf(stderr, "Assert %s failed", "'index'");
4870 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
4871 nit_exit(1);
4872 }
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);
4879 nit_exit(1);
4880 }
4881 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB0)];
4882 /* ./../lib/standard//collection//array.nit:234 */
4883 goto label193;
4884 label193: while(0);
4885 REGB0 = TAG_Int(0);
4886 REGB1 = TAG_Int(1);
4887 fra.me.REG[8] = fra.me.REG[3];
4888 REGB2 = TAG_Int(0);
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)) {
4894 } else {
4895 fprintf(stderr, "Uninitialized attribute %s", "_length");
4896 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
4897 nit_exit(1);
4898 }
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 */
4902 } else {
4903 REGB3 = TAG_Bool(false);
4904 REGB2 = REGB3;
4905 }
4906 if (UNTAG_Bool(REGB2)) {
4907 } else {
4908 fprintf(stderr, "Assert %s failed", "'index'");
4909 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
4910 nit_exit(1);
4911 }
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);
4918 nit_exit(1);
4919 }
4920 fra.me.REG[8] = ((Nit_NativeArray)fra.me.REG[8])->val[UNTAG_Int(REGB1)];
4921 /* ./../lib/standard//collection//array.nit:234 */
4922 goto label194;
4923 label194: while(0);
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]);
4926 REGB0 = TAG_Int(1);
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];
4938 }
4939 }
4940 }
4941 }
4942 } else {
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)) {
4958 } else {
4959 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
4960 REGB0 = REGB1;
4961 }
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");
4967 REGB0 = TAG_Int(9);
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)) {
4978 } else {
4979 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
4980 REGB0 = REGB1;
4981 }
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];
4992 } else {
4993 /* ./syntax//icode_generation.nit:570 */
4994 if (!once_value_201) {
4995 if (!once_value_202) {
4996 fra.me.REG[7] = BOX_NativeString("atoi");
4997 REGB0 = TAG_Int(4);
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)) {
5008 } else {
5009 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
5010 REGB0 = REGB1;
5011 }
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];
5022 } else {
5023 /* ./syntax//icode_generation.nit:572 */
5024 if (!once_value_204) {
5025 if (!once_value_205) {
5026 fra.me.REG[7] = BOX_NativeString("[]");
5027 REGB0 = TAG_Int(2);
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)) {
5038 } else {
5039 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
5040 REGB0 = REGB1;
5041 }
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];
5052 } else {
5053 /* ./syntax//icode_generation.nit:574 */
5054 if (!once_value_207) {
5055 if (!once_value_208) {
5056 fra.me.REG[7] = BOX_NativeString("[]=");
5057 REGB0 = TAG_Int(3);
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)) {
5068 } else {
5069 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
5070 REGB0 = REGB1;
5071 }
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];
5082 } else {
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");
5087 REGB0 = TAG_Int(7);
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)) {
5098 } else {
5099 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
5100 REGB0 = REGB1;
5101 }
5102 if (UNTAG_Bool(REGB0)) {
5103 REGB0 = TAG_Int(0);
5104 fra.me.REG[7] = fra.me.REG[3];
5105 REGB1 = TAG_Int(0);
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)) {
5111 } else {
5112 fprintf(stderr, "Uninitialized attribute %s", "_length");
5113 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
5114 nit_exit(1);
5115 }
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 */
5119 } else {
5120 REGB2 = TAG_Bool(false);
5121 REGB1 = REGB2;
5122 }
5123 if (UNTAG_Bool(REGB1)) {
5124 } else {
5125 fprintf(stderr, "Assert %s failed", "'index'");
5126 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
5127 nit_exit(1);
5128 }
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);
5135 nit_exit(1);
5136 }
5137 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB0)];
5138 /* ./../lib/standard//collection//array.nit:234 */
5139 goto label212;
5140 label212: while(0);
5141 REGB0 = TAG_Int(0);
5142 REGB1 = TAG_Int(1);
5143 fra.me.REG[4] = fra.me.REG[3];
5144 REGB2 = TAG_Int(0);
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)) {
5150 } else {
5151 fprintf(stderr, "Uninitialized attribute %s", "_length");
5152 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
5153 nit_exit(1);
5154 }
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 */
5158 } else {
5159 REGB3 = TAG_Bool(false);
5160 REGB2 = REGB3;
5161 }
5162 if (UNTAG_Bool(REGB2)) {
5163 } else {
5164 fprintf(stderr, "Assert %s failed", "'index'");
5165 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
5166 nit_exit(1);
5167 }
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);
5174 nit_exit(1);
5175 }
5176 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB1)];
5177 /* ./../lib/standard//collection//array.nit:234 */
5178 goto label213;
5179 label213: while(0);
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]);
5182 REGB0 = TAG_Int(1);
5183 REGB1 = TAG_Int(4);
5184 fra.me.REG[4] = fra.me.REG[3];
5185 REGB2 = TAG_Int(0);
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)) {
5191 } else {
5192 fprintf(stderr, "Uninitialized attribute %s", "_length");
5193 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
5194 nit_exit(1);
5195 }
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 */
5199 } else {
5200 REGB3 = TAG_Bool(false);
5201 REGB2 = REGB3;
5202 }
5203 if (UNTAG_Bool(REGB2)) {
5204 } else {
5205 fprintf(stderr, "Assert %s failed", "'index'");
5206 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
5207 nit_exit(1);
5208 }
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);
5215 nit_exit(1);
5216 }
5217 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB1)];
5218 /* ./../lib/standard//collection//array.nit:234 */
5219 goto label214;
5220 label214: while(0);
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]);
5223 REGB0 = TAG_Int(4);
5224 REGB1 = TAG_Int(2);
5225 fra.me.REG[4] = fra.me.REG[3];
5226 REGB2 = TAG_Int(0);
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)) {
5232 } else {
5233 fprintf(stderr, "Uninitialized attribute %s", "_length");
5234 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
5235 nit_exit(1);
5236 }
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 */
5240 } else {
5241 REGB3 = TAG_Bool(false);
5242 REGB2 = REGB3;
5243 }
5244 if (UNTAG_Bool(REGB2)) {
5245 } else {
5246 fprintf(stderr, "Assert %s failed", "'index'");
5247 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
5248 nit_exit(1);
5249 }
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);
5256 nit_exit(1);
5257 }
5258 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB1)];
5259 /* ./../lib/standard//collection//array.nit:234 */
5260 goto label215;
5261 label215: while(0);
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]);
5264 REGB0 = TAG_Int(2);
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];
5276 }
5277 }
5278 }
5279 }
5280 }
5281 } else {
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");
5286 REGB0 = TAG_Int(9);
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)) {
5297 } else {
5298 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
5299 REGB0 = REGB1;
5300 }
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];
5311 } else {
5312 /* ./syntax//icode_generation.nit:586 */
5313 if (!once_value_220) {
5314 if (!once_value_221) {
5315 fra.me.REG[7] = BOX_NativeString("sys");
5316 REGB0 = TAG_Int(3);
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)) {
5327 } else {
5328 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
5329 REGB0 = REGB1;
5330 }
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)");
5335 REGB0 = TAG_Int(7);
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];
5341 } else {
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)) {
5357 } else {
5358 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
5359 REGB0 = REGB1;
5360 }
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];
5371 } else {
5372 /* ./syntax//icode_generation.nit:590 */
5373 if (!once_value_226) {
5374 if (!once_value_227) {
5375 fra.me.REG[7] = BOX_NativeString("exit");
5376 REGB0 = TAG_Int(4);
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)) {
5387 } else {
5388 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
5389 REGB0 = REGB1;
5390 }
5391 if (UNTAG_Bool(REGB0)) {
5392 REGB0 = TAG_Int(0);
5393 REGB1 = TAG_Int(1);
5394 fra.me.REG[7] = fra.me.REG[3];
5395 REGB2 = TAG_Int(0);
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)) {
5401 } else {
5402 fprintf(stderr, "Uninitialized attribute %s", "_length");
5403 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
5404 nit_exit(1);
5405 }
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 */
5409 } else {
5410 REGB3 = TAG_Bool(false);
5411 REGB2 = REGB3;
5412 }
5413 if (UNTAG_Bool(REGB2)) {
5414 } else {
5415 fprintf(stderr, "Assert %s failed", "'index'");
5416 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
5417 nit_exit(1);
5418 }
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);
5425 nit_exit(1);
5426 }
5427 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5428 /* ./../lib/standard//collection//array.nit:234 */
5429 goto label228;
5430 label228: while(0);
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];
5442 } else {
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)) {
5458 } else {
5459 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
5460 REGB0 = REGB1;
5461 }
5462 if (UNTAG_Bool(REGB0)) {
5463 REGB0 = TAG_Int(0);
5464 REGB1 = TAG_Int(1);
5465 fra.me.REG[7] = fra.me.REG[3];
5466 REGB2 = TAG_Int(0);
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)) {
5472 } else {
5473 fprintf(stderr, "Uninitialized attribute %s", "_length");
5474 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
5475 nit_exit(1);
5476 }
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 */
5480 } else {
5481 REGB3 = TAG_Bool(false);
5482 REGB2 = REGB3;
5483 }
5484 if (UNTAG_Bool(REGB2)) {
5485 } else {
5486 fprintf(stderr, "Assert %s failed", "'index'");
5487 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
5488 nit_exit(1);
5489 }
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);
5496 nit_exit(1);
5497 }
5498 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5499 /* ./../lib/standard//collection//array.nit:234 */
5500 goto label232;
5501 label232: while(0);
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];
5513 } else {
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)) {
5529 } else {
5530 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
5531 REGB0 = REGB1;
5532 }
5533 if (UNTAG_Bool(REGB0)) {
5534 REGB0 = TAG_Int(0);
5535 REGB1 = TAG_Int(1);
5536 fra.me.REG[7] = fra.me.REG[3];
5537 REGB2 = TAG_Int(0);
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)) {
5543 } else {
5544 fprintf(stderr, "Uninitialized attribute %s", "_length");
5545 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
5546 nit_exit(1);
5547 }
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 */
5551 } else {
5552 REGB3 = TAG_Bool(false);
5553 REGB2 = REGB3;
5554 }
5555 if (UNTAG_Bool(REGB2)) {
5556 } else {
5557 fprintf(stderr, "Assert %s failed", "'index'");
5558 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
5559 nit_exit(1);
5560 }
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);
5567 nit_exit(1);
5568 }
5569 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB1)];
5570 /* ./../lib/standard//collection//array.nit:234 */
5571 goto label236;
5572 label236: while(0);
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];
5584 }
5585 }
5586 }
5587 }
5588 }
5589 }
5590 }
5591 }
5592 }
5593 }
5594 }
5595 }
5596 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5597 /* ./syntax//icode_generation.nit:600 */
5598 if (UNTAG_Bool(REGB0)) {
5599 } else {
5600 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5601 if (UNTAG_Bool(REGB1)) {
5602 REGB1 = TAG_Bool(false);
5603 REGB0 = REGB1;
5604 } else {
5605 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
5606 REGB0 = REGB1;
5607 }
5608 }
5609 if (UNTAG_Bool(REGB0)) {
5610 fra.me.REG[7] = CALL_icode_generation___A2IContext___visitor(fra.me.REG[1])(fra.me.REG[1]);
5611 REGB0 = TAG_Int(3);
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(".");
5626 REGB0 = TAG_Int(1);
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");
5637 REGB0 = TAG_Int(8);
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];
5643 }
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);
5650 nit_exit(1);
5651 }
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)) {
5656 } else {
5657 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5658 if (UNTAG_Bool(REGB1)) {
5659 REGB1 = TAG_Bool(false);
5660 REGB0 = REGB1;
5661 } else {
5662 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5663 REGB0 = REGB1;
5664 }
5665 }
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]);
5672 } else {
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]);
5676 }
5677 stack_frame_head = fra.me.prev;
5678 return;
5679 }
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;
5682 val_t tmp;
5683 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5684 fra.me.file = LOCATE_icode_generation;
5685 fra.me.line = 616;
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;
5691 fra.me.REG[0] = p0;
5692 fra.me.REG[1] = p1;
5693 /* ./syntax//icode_generation.nit:616 */
5694 stack_frame_head = fra.me.prev;
5695 return;
5696 }
5697 val_t icode_generation___AExpr___generate_icode(val_t p0, val_t p1){
5698 struct {struct stack_frame_t me;} fra;
5699 val_t tmp;
5700 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5701 fra.me.file = LOCATE_icode_generation;
5702 fra.me.line = 618;
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);
5709 nit_exit(1);
5710 stack_frame_head = fra.me.prev;
5711 return NIT_NULL;
5712 }
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;
5715 val_t REGB0;
5716 val_t REGB1;
5717 val_t tmp;
5718 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5719 fra.me.file = LOCATE_icode_generation;
5720 fra.me.line = 624;
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;
5727 fra.me.REG[0] = p0;
5728 fra.me.REG[1] = p1;
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)) {
5735 } else {
5736 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5737 if (UNTAG_Bool(REGB1)) {
5738 REGB1 = TAG_Bool(false);
5739 REGB0 = REGB1;
5740 } else {
5741 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
5742 REGB0 = REGB1;
5743 }
5744 }
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]);
5750 }
5751 fra.me.REG[0] = NIT_NULL;
5752 /* ./syntax//icode_generation.nit:631 */
5753 goto label1;
5754 label1: while(0);
5755 stack_frame_head = fra.me.prev;
5756 return fra.me.REG[0];
5757 }
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;
5760 val_t REGB0;
5761 val_t tmp;
5762 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5763 fra.me.file = LOCATE_icode_generation;
5764 fra.me.line = 636;
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;
5771 fra.me.REG[0] = p0;
5772 fra.me.REG[1] = p1;
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 */
5776 while(1) {
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]);
5781 } else {
5782 goto label1;
5783 }
5784 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
5785 }
5786 label1: while(0);
5787 fra.me.REG[0] = NIT_NULL;
5788 /* ./syntax//icode_generation.nit:639 */
5789 goto label2;
5790 label2: while(0);
5791 stack_frame_head = fra.me.prev;
5792 return fra.me.REG[0];
5793 }
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;
5796 val_t REGB0;
5797 val_t tmp;
5798 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5799 fra.me.file = LOCATE_icode_generation;
5800 fra.me.line = 644;
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;
5809 fra.me.REG[0] = p0;
5810 fra.me.REG[1] = p1;
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);
5821 nit_exit(1);
5822 }
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 */
5833 goto label1;
5834 label1: while(0);
5835 stack_frame_head = fra.me.prev;
5836 return fra.me.REG[2];
5837 }
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;
5840 val_t REGB0;
5841 val_t REGB1;
5842 val_t tmp;
5843 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5844 fra.me.file = LOCATE_icode_generation;
5845 fra.me.line = 660;
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;
5852 fra.me.REG[0] = p0;
5853 fra.me.REG[1] = p1;
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)) {
5858 } else {
5859 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5860 if (UNTAG_Bool(REGB1)) {
5861 REGB1 = TAG_Bool(false);
5862 REGB0 = REGB1;
5863 } else {
5864 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
5865 REGB0 = REGB1;
5866 }
5867 }
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)) {
5874 } else {
5875 fprintf(stderr, "Cast failed");
5876 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 664);
5877 nit_exit(1);
5878 }
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]);
5881 }
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)) {
5886 } else {
5887 fprintf(stderr, "Cast failed");
5888 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 666);
5889 nit_exit(1);
5890 }
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 */
5894 goto label1;
5895 label1: while(0);
5896 stack_frame_head = fra.me.prev;
5897 return fra.me.REG[0];
5898 }
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;
5901 val_t REGB0;
5902 val_t REGB1;
5903 val_t tmp;
5904 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5905 fra.me.file = LOCATE_icode_generation;
5906 fra.me.line = 672;
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;
5914 fra.me.REG[0] = p0;
5915 fra.me.REG[1] = p1;
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)) {
5920 } else {
5921 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5922 if (UNTAG_Bool(REGB1)) {
5923 REGB1 = TAG_Bool(false);
5924 REGB0 = REGB1;
5925 } else {
5926 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5927 REGB0 = REGB1;
5928 }
5929 }
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);
5938 nit_exit(1);
5939 }
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)) {
5943 } else {
5944 fprintf(stderr, "Cast failed");
5945 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 676);
5946 nit_exit(1);
5947 }
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]);
5950 }
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);
5957 nit_exit(1);
5958 }
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)) {
5962 } else {
5963 fprintf(stderr, "Cast failed");
5964 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 678);
5965 nit_exit(1);
5966 }
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 */
5970 goto label1;
5971 label1: while(0);
5972 stack_frame_head = fra.me.prev;
5973 return fra.me.REG[0];
5974 }
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;
5977 val_t REGB0;
5978 val_t REGB1;
5979 val_t tmp;
5980 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5981 fra.me.file = LOCATE_icode_generation;
5982 fra.me.line = 684;
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;
5990 fra.me.REG[0] = p0;
5991 fra.me.REG[1] = p1;
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)) {
5996 } else {
5997 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5998 if (UNTAG_Bool(REGB1)) {
5999 REGB1 = TAG_Bool(false);
6000 REGB0 = REGB1;
6001 } else {
6002 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6003 REGB0 = REGB1;
6004 }
6005 }
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);
6014 nit_exit(1);
6015 }
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)) {
6019 } else {
6020 fprintf(stderr, "Cast failed");
6021 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 688);
6022 nit_exit(1);
6023 }
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]);
6026 }
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);
6033 nit_exit(1);
6034 }
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)) {
6038 } else {
6039 fprintf(stderr, "Cast failed");
6040 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 690);
6041 nit_exit(1);
6042 }
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 */
6046 goto label1;
6047 label1: while(0);
6048 stack_frame_head = fra.me.prev;
6049 return fra.me.REG[0];
6050 }
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;
6053 val_t REGB0;
6054 val_t tmp;
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;
6058 fra.me.line = 696;
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;
6065 fra.me.REG[0] = p0;
6066 fra.me.REG[1] = p1;
6067 REGB0 = TAG_Int(0);
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");
6072 REGB0 = TAG_Int(7);
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 */
6081 goto label2;
6082 label2: while(0);
6083 stack_frame_head = fra.me.prev;
6084 return fra.me.REG[0];
6085 }
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;
6088 val_t REGB0;
6089 val_t REGB1;
6090 val_t tmp;
6091 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6092 fra.me.file = LOCATE_icode_generation;
6093 fra.me.line = 704;
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;
6102 fra.me.REG[0] = p0;
6103 fra.me.REG[1] = p1;
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)) {
6114 } else {
6115 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6116 if (UNTAG_Bool(REGB1)) {
6117 REGB1 = TAG_Bool(false);
6118 REGB0 = REGB1;
6119 } else {
6120 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
6121 REGB0 = REGB1;
6122 }
6123 }
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]);
6132 }
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)) {
6137 } else {
6138 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6139 if (UNTAG_Bool(REGB1)) {
6140 REGB1 = TAG_Bool(false);
6141 REGB0 = REGB1;
6142 } else {
6143 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
6144 REGB0 = REGB1;
6145 }
6146 }
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]);
6155 }
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 */
6160 goto label1;
6161 label1: while(0);
6162 stack_frame_head = fra.me.prev;
6163 return fra.me.REG[3];
6164 }
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;
6167 val_t REGB0;
6168 val_t REGB1;
6169 val_t tmp;
6170 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6171 fra.me.file = LOCATE_icode_generation;
6172 fra.me.line = 726;
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;
6183 fra.me.REG[0] = p0;
6184 fra.me.REG[1] = p1;
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);
6195 nit_exit(1);
6196 }
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)) {
6209 } else {
6210 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6211 if (UNTAG_Bool(REGB1)) {
6212 REGB1 = TAG_Bool(false);
6213 REGB0 = REGB1;
6214 } else {
6215 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
6216 REGB0 = REGB1;
6217 }
6218 }
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);
6231 nit_exit(1);
6232 }
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]);
6237 }
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 */
6247 goto label1;
6248 label1: while(0);
6249 stack_frame_head = fra.me.prev;
6250 return fra.me.REG[2];
6251 }
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;
6254 val_t REGB0;
6255 val_t REGB1;
6256 val_t tmp;
6257 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6258 fra.me.file = LOCATE_icode_generation;
6259 fra.me.line = 755;
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;
6268 fra.me.REG[0] = p0;
6269 fra.me.REG[1] = p1;
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);
6280 nit_exit(1);
6281 }
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)) {
6289 } else {
6290 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6291 if (UNTAG_Bool(REGB1)) {
6292 REGB1 = TAG_Bool(false);
6293 REGB0 = REGB1;
6294 } else {
6295 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6296 REGB0 = REGB1;
6297 }
6298 }
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);
6312 nit_exit(1);
6313 }
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]);
6318 }
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 */
6323 goto label1;
6324 label1: while(0);
6325 stack_frame_head = fra.me.prev;
6326 return fra.me.REG[2];
6327 }
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;
6330 val_t REGB0;
6331 val_t tmp;
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;
6342 fra.me.line = 778;
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;
6356 fra.me.REG[0] = p0;
6357 fra.me.REG[1] = p1;
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");
6365 REGB0 = TAG_Int(8);
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)) {
6380 } else {
6381 fprintf(stderr, "Cast failed");
6382 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 785);
6383 nit_exit(1);
6384 }
6385 REGB0 = TAG_Int(1);
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);
6403 nit_exit(1);
6404 }
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");
6413 REGB0 = TAG_Int(5);
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]);
6423 REGB0 = TAG_Int(1);
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);
6444 nit_exit(1);
6445 }
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");
6452 REGB0 = TAG_Int(4);
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)) {
6467 } else {
6468 fprintf(stderr, "Cast failed");
6469 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 807);
6470 nit_exit(1);
6471 }
6472 REGB0 = TAG_Int(1);
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");
6495 REGB0 = TAG_Int(4);
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]);
6507 REGB0 = TAG_Int(1);
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 */
6517 goto label9;
6518 label9: while(0);
6519 stack_frame_head = fra.me.prev;
6520 return fra.me.REG[4];
6521 }
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;
6524 val_t REGB0;
6525 val_t REGB1;
6526 val_t tmp;
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;
6531 fra.me.line = 830;
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;
6540 fra.me.REG[0] = p0;
6541 fra.me.REG[1] = p1;
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)) {
6558 } else {
6559 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6560 if (UNTAG_Bool(REGB1)) {
6561 REGB1 = TAG_Bool(false);
6562 REGB0 = REGB1;
6563 } else {
6564 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
6565 REGB0 = REGB1;
6566 }
6567 }
6568 if (UNTAG_Bool(REGB0)) {
6569 REGB0 = TAG_Int(0);
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]);
6581 } else {
6582 REGB0 = TAG_Int(1);
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);
6597 nit_exit(1);
6598 }
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]);
6602 }
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 */
6607 goto label3;
6608 label3: while(0);
6609 stack_frame_head = fra.me.prev;
6610 return fra.me.REG[3];
6611 }
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;
6614 val_t tmp;
6615 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6616 fra.me.file = LOCATE_icode_generation;
6617 fra.me.line = 850;
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;
6623 fra.me.REG[0] = p0;
6624 fra.me.REG[1] = p1;
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 */
6628 goto label1;
6629 label1: while(0);
6630 stack_frame_head = fra.me.prev;
6631 return fra.me.REG[0];
6632 }
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;
6635 val_t tmp;
6636 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6637 fra.me.file = LOCATE_icode_generation;
6638 fra.me.line = 857;
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;
6645 fra.me.REG[0] = p0;
6646 fra.me.REG[1] = p1;
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 */
6655 goto label1;
6656 label1: while(0);
6657 stack_frame_head = fra.me.prev;
6658 return fra.me.REG[2];
6659 }
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;
6662 val_t REGB0;
6663 val_t tmp;
6664 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6665 fra.me.file = LOCATE_icode_generation;
6666 fra.me.line = 866;
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;
6676 fra.me.REG[0] = p0;
6677 fra.me.REG[1] = p1;
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]);
6683 REGB0 = TAG_Int(2);
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);
6695 nit_exit(1);
6696 }
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)) {
6700 } else {
6701 fprintf(stderr, "Cast failed");
6702 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 870);
6703 nit_exit(1);
6704 }
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 */
6710 goto label1;
6711 label1: while(0);
6712 stack_frame_head = fra.me.prev;
6713 return fra.me.REG[0];
6714 }
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;
6717 val_t tmp;
6718 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6719 fra.me.file = LOCATE_icode_generation;
6720 fra.me.line = 877;
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;
6726 fra.me.REG[0] = p0;
6727 fra.me.REG[1] = p1;
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 */
6731 goto label1;
6732 label1: while(0);
6733 stack_frame_head = fra.me.prev;
6734 return fra.me.REG[0];
6735 }
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;
6738 val_t tmp;
6739 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6740 fra.me.file = LOCATE_icode_generation;
6741 fra.me.line = 884;
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;
6751 fra.me.REG[0] = p0;
6752 fra.me.REG[1] = p1;
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 */
6778 goto label1;
6779 label1: while(0);
6780 stack_frame_head = fra.me.prev;
6781 return fra.me.REG[4];
6782 }
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;
6785 val_t tmp;
6786 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6787 fra.me.file = LOCATE_icode_generation;
6788 fra.me.line = 908;
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;
6796 fra.me.REG[0] = p0;
6797 fra.me.REG[1] = p1;
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 */
6806 goto label1;
6807 label1: while(0);
6808 stack_frame_head = fra.me.prev;
6809 return fra.me.REG[0];
6810 }
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;
6813 val_t tmp;
6814 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6815 fra.me.file = LOCATE_icode_generation;
6816 fra.me.line = 917;
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;
6826 fra.me.REG[0] = p0;
6827 fra.me.REG[1] = p1;
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 */
6852 goto label1;
6853 label1: while(0);
6854 stack_frame_head = fra.me.prev;
6855 return fra.me.REG[2];
6856 }
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;
6859 val_t tmp;
6860 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6861 fra.me.file = LOCATE_icode_generation;
6862 fra.me.line = 939;
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;
6872 fra.me.REG[0] = p0;
6873 fra.me.REG[1] = p1;
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 */
6898 goto label1;
6899 label1: while(0);
6900 stack_frame_head = fra.me.prev;
6901 return fra.me.REG[2];
6902 }
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;
6905 val_t tmp;
6906 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6907 fra.me.file = LOCATE_icode_generation;
6908 fra.me.line = 961;
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;
6915 fra.me.REG[0] = p0;
6916 fra.me.REG[1] = p1;
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 */
6923 goto label1;
6924 label1: while(0);
6925 stack_frame_head = fra.me.prev;
6926 return fra.me.REG[0];
6927 }
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;
6930 val_t tmp;
6931 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6932 fra.me.file = LOCATE_icode_generation;
6933 fra.me.line = 969;
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;
6941 fra.me.REG[0] = p0;
6942 fra.me.REG[1] = p1;
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 */
6951 goto label1;
6952 label1: while(0);
6953 stack_frame_head = fra.me.prev;
6954 return fra.me.REG[0];
6955 }
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;
6958 val_t tmp;
6959 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6960 fra.me.file = LOCATE_icode_generation;
6961 fra.me.line = 977;
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;
6968 fra.me.REG[0] = p0;
6969 fra.me.REG[1] = p1;
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 */
6976 goto label1;
6977 label1: while(0);
6978 stack_frame_head = fra.me.prev;
6979 return fra.me.REG[2];
6980 }
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;
6983 val_t tmp;
6984 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6985 fra.me.file = LOCATE_icode_generation;
6986 fra.me.line = 986;
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;
6993 fra.me.REG[0] = p0;
6994 fra.me.REG[1] = p1;
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 */
7001 goto label1;
7002 label1: while(0);
7003 stack_frame_head = fra.me.prev;
7004 return fra.me.REG[2];
7005 }
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;
7008 val_t tmp;
7009 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7010 fra.me.file = LOCATE_icode_generation;
7011 fra.me.line = 995;
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;
7017 fra.me.REG[0] = p0;
7018 fra.me.REG[1] = p1;
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 */
7021 goto label1;
7022 label1: while(0);
7023 stack_frame_head = fra.me.prev;
7024 return fra.me.REG[1];
7025 }
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;
7028 val_t tmp;
7029 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7030 fra.me.file = LOCATE_icode_generation;
7031 fra.me.line = 1002;
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;
7037 fra.me.REG[0] = p0;
7038 fra.me.REG[1] = p1;
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 */
7041 goto label1;
7042 label1: while(0);
7043 stack_frame_head = fra.me.prev;
7044 return fra.me.REG[1];
7045 }
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;
7048 val_t REGB0;
7049 val_t tmp;
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;
7054 fra.me.line = 1009;
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;
7062 fra.me.REG[0] = p0;
7063 fra.me.REG[1] = p1;
7064 REGB0 = TAG_Int(3);
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(");
7069 REGB0 = TAG_Int(8);
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(")");
7080 REGB0 = TAG_Int(1);
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]);
7090 goto label3;
7091 label3: while(0);
7092 stack_frame_head = fra.me.prev;
7093 return fra.me.REG[0];
7094 }
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;
7097 val_t REGB0;
7098 val_t tmp;
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;
7103 fra.me.line = 1016;
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;
7111 fra.me.REG[0] = p0;
7112 fra.me.REG[1] = p1;
7113 REGB0 = TAG_Int(3);
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(")");
7129 REGB0 = TAG_Int(1);
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]);
7139 goto label3;
7140 label3: while(0);
7141 stack_frame_head = fra.me.prev;
7142 return fra.me.REG[0];
7143 }
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;
7146 val_t REGB0;
7147 val_t tmp;
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;
7152 fra.me.line = 1023;
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;
7160 fra.me.REG[0] = p0;
7161 fra.me.REG[1] = p1;
7162 REGB0 = TAG_Int(3);
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(");
7167 REGB0 = TAG_Int(9);
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(")");
7178 REGB0 = TAG_Int(1);
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]);
7188 goto label3;
7189 label3: while(0);
7190 stack_frame_head = fra.me.prev;
7191 return fra.me.REG[0];
7192 }
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;
7195 val_t REGB0;
7196 val_t tmp;
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;
7205 fra.me.line = 1030;
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;
7218 fra.me.REG[0] = p0;
7219 fra.me.REG[1] = p1;
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]);
7229 REGB0 = TAG_Int(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("\")");
7245 REGB0 = TAG_Int(2);
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]);
7256 REGB0 = TAG_Int(3);
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(");
7261 REGB0 = TAG_Int(8);
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(")");
7272 REGB0 = TAG_Int(1);
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]);
7300 REGB0 = TAG_Int(2);
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 */
7313 goto label7;
7314 label7: while(0);
7315 stack_frame_head = fra.me.prev;
7316 return fra.me.REG[4];
7317 }
7318 val_t icode_generation___AStringFormExpr___string_text(val_t p0){
7319 struct {struct stack_frame_t me;} fra;
7320 val_t tmp;
7321 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7322 fra.me.file = LOCATE_icode_generation;
7323 fra.me.line = 1046;
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);
7330 nit_exit(1);
7331 stack_frame_head = fra.me.prev;
7332 return NIT_NULL;
7333 }
7334 void icode_generation___AStringFormExpr___compute_string_infos(val_t p0){
7335 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
7336 val_t REGB0;
7337 val_t REGB1;
7338 val_t REGB2;
7339 val_t REGB3;
7340 val_t REGB4;
7341 val_t REGB5;
7342 val_t tmp;
7343 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7344 fra.me.file = LOCATE_icode_generation;
7345 fra.me.line = 1055;
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;
7352 fra.me.REG[0] = p0;
7353 REGB0 = TAG_Int(0);
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();
7356 REGB1 = TAG_Int(0);
7357 /* ./syntax//icode_generation.nit:1062 */
7358 while(1) {
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)) {
7362 } else {
7363 fprintf(stderr, "Uninitialized attribute %s", "_length");
7364 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
7365 nit_exit(1);
7366 }
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)) {
7376 } else {
7377 REGB3 = TAG_Bool((REGB2)==(REGB3));
7378 REGB4 = REGB3;
7379 /* ./syntax//icode_generation.nit:1064 */
7380 }
7381 if (UNTAG_Bool(REGB4)) {
7382 REGB4 = TAG_Int(1);
7383 REGB4 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB4));
7384 REGB1 = 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)) {
7390 } else {
7391 REGB3 = TAG_Bool((REGB4)==(REGB3));
7392 REGB5 = REGB3;
7393 /* ./syntax//icode_generation.nit:1067 */
7394 }
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)) {
7400 } else {
7401 REGB5 = TAG_Bool((REGB4)==(REGB5));
7402 REGB3 = REGB5;
7403 /* ./syntax//icode_generation.nit:1067 */
7404 }
7405 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7406 } else {
7407 REGB5 = TAG_Bool(false);
7408 REGB3 = REGB5;
7409 }
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);
7413 }
7414 REGB2 = REGB4;
7415 /* ./syntax//icode_generation.nit:1070 */
7416 }
7417 REGB4 = TAG_Int(1);
7418 REGB4 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB4));
7419 REGB0 = REGB4;
7420 /* ./syntax//icode_generation.nit:1073 */
7421 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], REGB2);
7422 REGB2 = TAG_Int(1);
7423 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
7424 REGB1 = REGB2;
7425 /* ./syntax//icode_generation.nit:1074 */
7426 } else {
7427 /* ./syntax//icode_generation.nit:1062 */
7428 goto label1;
7429 }
7430 }
7431 label1: while(0);
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;
7438 return;
7439 }
7440 val_t icode_generation___AStringExpr___string_text(val_t p0){
7441 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
7442 val_t REGB0;
7443 val_t REGB1;
7444 val_t REGB2;
7445 val_t tmp;
7446 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7447 fra.me.file = LOCATE_icode_generation;
7448 fra.me.line = 1082;
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;
7454 fra.me.REG[0] = p0;
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]);
7457 REGB0 = TAG_Int(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)) {
7463 } else {
7464 fprintf(stderr, "Uninitialized attribute %s", "_length");
7465 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
7466 nit_exit(1);
7467 }
7468 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
7469 REGB2 = TAG_Int(2);
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 */
7473 goto label1;
7474 label1: while(0);
7475 stack_frame_head = fra.me.prev;
7476 return fra.me.REG[1];
7477 }
7478 val_t icode_generation___AStartStringExpr___string_text(val_t p0){
7479 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
7480 val_t REGB0;
7481 val_t REGB1;
7482 val_t REGB2;
7483 val_t tmp;
7484 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7485 fra.me.file = LOCATE_icode_generation;
7486 fra.me.line = 1085;
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;
7492 fra.me.REG[0] = p0;
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]);
7495 REGB0 = TAG_Int(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)) {
7501 } else {
7502 fprintf(stderr, "Uninitialized attribute %s", "_length");
7503 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
7504 nit_exit(1);
7505 }
7506 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
7507 REGB2 = TAG_Int(2);
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 */
7511 goto label1;
7512 label1: while(0);
7513 stack_frame_head = fra.me.prev;
7514 return fra.me.REG[1];
7515 }
7516 val_t icode_generation___AMidStringExpr___string_text(val_t p0){
7517 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
7518 val_t REGB0;
7519 val_t REGB1;
7520 val_t REGB2;
7521 val_t tmp;
7522 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7523 fra.me.file = LOCATE_icode_generation;
7524 fra.me.line = 1088;
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;
7530 fra.me.REG[0] = p0;
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]);
7533 REGB0 = TAG_Int(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)) {
7539 } else {
7540 fprintf(stderr, "Uninitialized attribute %s", "_length");
7541 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
7542 nit_exit(1);
7543 }
7544 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
7545 REGB2 = TAG_Int(2);
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 */
7549 goto label1;
7550 label1: while(0);
7551 stack_frame_head = fra.me.prev;
7552 return fra.me.REG[1];
7553 }
7554 val_t icode_generation___AEndStringExpr___string_text(val_t p0){
7555 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
7556 val_t REGB0;
7557 val_t REGB1;
7558 val_t REGB2;
7559 val_t tmp;
7560 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7561 fra.me.file = LOCATE_icode_generation;
7562 fra.me.line = 1091;
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;
7568 fra.me.REG[0] = p0;
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]);
7571 REGB0 = TAG_Int(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)) {
7577 } else {
7578 fprintf(stderr, "Uninitialized attribute %s", "_length");
7579 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
7580 nit_exit(1);
7581 }
7582 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
7583 REGB2 = TAG_Int(2);
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 */
7587 goto label1;
7588 label1: while(0);
7589 stack_frame_head = fra.me.prev;
7590 return fra.me.REG[1];
7591 }
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;
7594 val_t REGB0;
7595 val_t REGB1;
7596 val_t tmp;
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;
7601 fra.me.line = 1095;
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;
7613 fra.me.REG[0] = p0;
7614 fra.me.REG[1] = p1;
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");
7626 REGB0 = TAG_Int(4);
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 */
7639 while(1) {
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)) {
7649 } else {
7650 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
7651 REGB0 = REGB1;
7652 }
7653 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7654 if (UNTAG_Bool(REGB0)) {
7655 REGB0 = TAG_Int(1);
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];
7663 }
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]);
7666 } else {
7667 /* ./syntax//icode_generation.nit:1099 */
7668 goto label3;
7669 }
7670 CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]);
7671 }
7672 label3: while(0);
7673 REGB0 = TAG_Int(1);
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]);
7680 goto label4;
7681 label4: while(0);
7682 stack_frame_head = fra.me.prev;
7683 return fra.me.REG[0];
7684 }
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;
7687 val_t tmp;
7688 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7689 fra.me.file = LOCATE_icode_generation;
7690 fra.me.line = 1111;
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;
7696 fra.me.REG[0] = p0;
7697 fra.me.REG[1] = p1;
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 */
7700 goto label1;
7701 label1: while(0);
7702 stack_frame_head = fra.me.prev;
7703 return fra.me.REG[1];
7704 }
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;
7707 val_t REGB0;
7708 val_t tmp;
7709 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7710 fra.me.file = LOCATE_icode_generation;
7711 fra.me.line = 1118;
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;
7719 fra.me.REG[0] = p0;
7720 fra.me.REG[1] = p1;
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 */
7728 while(1) {
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]);
7735 } else {
7736 /* ./syntax//icode_generation.nit:1121 */
7737 goto label1;
7738 }
7739 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
7740 }
7741 label1: while(0);
7742 /* ./syntax//icode_generation.nit:1125 */
7743 goto label2;
7744 label2: while(0);
7745 stack_frame_head = fra.me.prev;
7746 return fra.me.REG[2];
7747 }
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;
7750 val_t REGB0;
7751 val_t tmp;
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;
7756 fra.me.line = 1130;
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;
7767 fra.me.REG[0] = p0;
7768 fra.me.REG[1] = p1;
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");
7779 REGB0 = TAG_Int(4);
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]);
7790 REGB0 = TAG_Int(2);
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]);
7798 goto label3;
7799 label3: while(0);
7800 stack_frame_head = fra.me.prev;
7801 return fra.me.REG[0];
7802 }
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;
7805 val_t REGB0;
7806 val_t tmp;
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;
7811 fra.me.line = 1140;
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;
7822 fra.me.REG[0] = p0;
7823 fra.me.REG[1] = p1;
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]);
7845 REGB0 = TAG_Int(2);
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]);
7853 goto label3;
7854 label3: while(0);
7855 stack_frame_head = fra.me.prev;
7856 return fra.me.REG[0];
7857 }
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;
7860 val_t REGB0;
7861 val_t REGB1;
7862 val_t REGB2;
7863 val_t tmp;
7864 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7865 fra.me.file = LOCATE_icode_generation;
7866 fra.me.line = 1150;
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;
7876 fra.me.REG[0] = p0;
7877 fra.me.REG[1] = p1;
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]);
7881 REGB1 = TAG_Int(1);
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)) {
7887 } else {
7888 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7889 if (UNTAG_Bool(REGB2)) {
7890 REGB2 = TAG_Bool(false);
7891 REGB0 = REGB2;
7892 } else {
7893 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7894 REGB0 = REGB2;
7895 }
7896 }
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);
7905 nit_exit(1);
7906 }
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);
7912 nit_exit(1);
7913 }
7914 REGB0 = CALL_static_type___MMSignature___arity(fra.me.REG[2])(fra.me.REG[2]);
7915 REGB1 = REGB0;
7916 }
7917 REGB0 = TAG_Int(1);
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]);
7922 REGB0 = TAG_Int(0);
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)) {
7931 } else {
7932 REGB0 = TAG_Bool((REGB0)==(REGB1));
7933 REGB2 = REGB0;
7934 /* ./syntax//icode_generation.nit:1158 */
7935 }
7936 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
7937 if (UNTAG_Bool(REGB2)) {
7938 REGB2 = TAG_Int(0);
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 */
7942 while(1) {
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]);
7948 REGB2 = TAG_Int(1);
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]);
7953 } else {
7954 /* ./syntax//icode_generation.nit:1159 */
7955 goto label1;
7956 }
7957 CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]);
7958 }
7959 label1: while(0);
7960 } else {
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 */
7964 while(1) {
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]);
7971 } else {
7972 /* ./syntax//icode_generation.nit:1163 */
7973 goto label2;
7974 }
7975 CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]);
7976 }
7977 label2: while(0);
7978 }
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)) {
7983 } else {
7984 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7985 if (UNTAG_Bool(REGB1)) {
7986 REGB1 = TAG_Bool(false);
7987 REGB2 = REGB1;
7988 } else {
7989 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7990 REGB2 = REGB1;
7991 }
7992 }
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);
8000 nit_exit(1);
8001 }
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);
8007 nit_exit(1);
8008 }
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)) {
8013 } else {
8014 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8015 if (UNTAG_Bool(REGB1)) {
8016 REGB1 = TAG_Bool(false);
8017 REGB2 = REGB1;
8018 } else {
8019 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8020 REGB2 = REGB1;
8021 }
8022 }
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 */
8028 goto label3;
8029 } else {
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 */
8035 goto label3;
8036 }
8037 } else {
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);
8045 nit_exit(1);
8046 }
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);
8052 nit_exit(1);
8053 }
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)) {
8058 } else {
8059 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8060 if (UNTAG_Bool(REGB1)) {
8061 REGB1 = TAG_Bool(false);
8062 REGB2 = REGB1;
8063 } else {
8064 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8065 REGB2 = REGB1;
8066 }
8067 }
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 */
8074 goto label3;
8075 } else {
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 */
8080 goto label3;
8081 }
8082 }
8083 label3: while(0);
8084 stack_frame_head = fra.me.prev;
8085 return fra.me.REG[4];
8086 }
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;
8089 val_t REGB0;
8090 val_t tmp;
8091 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8092 fra.me.file = LOCATE_icode_generation;
8093 fra.me.line = 1190;
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;
8101 fra.me.REG[0] = p0;
8102 fra.me.REG[1] = p1;
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]);
8111 }
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 */
8115 goto label1;
8116 label1: while(0);
8117 stack_frame_head = fra.me.prev;
8118 return fra.me.REG[2];
8119 }
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;
8122 val_t REGB0;
8123 val_t tmp;
8124 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8125 fra.me.file = LOCATE_icode_generation;
8126 fra.me.line = 1199;
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;
8134 fra.me.REG[0] = p0;
8135 fra.me.REG[1] = p1;
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]);
8144 }
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 */
8153 goto label1;
8154 label1: while(0);
8155 stack_frame_head = fra.me.prev;
8156 return fra.me.REG[3];
8157 }
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;
8160 val_t REGB0;
8161 val_t tmp;
8162 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8163 fra.me.file = LOCATE_icode_generation;
8164 fra.me.line = 1209;
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;
8175 fra.me.REG[0] = p0;
8176 fra.me.REG[1] = p1;
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]);
8185 }
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]);
8193 REGB0 = TAG_Int(2);
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 */
8207 goto label1;
8208 label1: while(0);
8209 stack_frame_head = fra.me.prev;
8210 return fra.me.REG[5];
8211 }
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;
8214 val_t REGB0;
8215 val_t tmp;
8216 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8217 fra.me.file = LOCATE_icode_generation;
8218 fra.me.line = 1222;
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;
8226 fra.me.REG[0] = p0;
8227 fra.me.REG[1] = p1;
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]);
8236 }
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 */
8242 goto label1;
8243 label1: while(0);
8244 stack_frame_head = fra.me.prev;
8245 return fra.me.REG[0];
8246 }
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;
8249 val_t REGB0;
8250 val_t REGB1;
8251 val_t REGB2;
8252 val_t REGB3;
8253 val_t REGB4;
8254 val_t REGB5;
8255 val_t REGB6;
8256 val_t tmp;
8257 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8258 fra.me.file = LOCATE_icode_generation;
8259 fra.me.line = 1231;
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;
8272 fra.me.REG[0] = p0;
8273 fra.me.REG[1] = p1;
8274 fra.me.REG[2] = p2;
8275 fra.me.REG[3] = p3;
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)) {
8282 } else {
8283 fprintf(stderr, "Uninitialized attribute %s", "_length");
8284 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
8285 nit_exit(1);
8286 }
8287 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
8288 REGB3 = TAG_Int(0);
8289 REGB4 = TAG_Int(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 */
8293 while(1) {
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)) {
8301 } else {
8302 REGB4 = TAG_Bool((REGB4)==(REGB1));
8303 REGB5 = REGB4;
8304 /* ./syntax//icode_generation.nit:1242 */
8305 }
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);
8311 REGB5 = TAG_Int(0);
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 */
8316 while(1) {
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];
8321 REGB4 = REGB3;
8322 REGB5 = TAG_Int(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)) {
8328 } else {
8329 fprintf(stderr, "Uninitialized attribute %s", "_length");
8330 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
8331 nit_exit(1);
8332 }
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 */
8336 } else {
8337 REGB6 = TAG_Bool(false);
8338 REGB5 = REGB6;
8339 }
8340 if (UNTAG_Bool(REGB5)) {
8341 } else {
8342 fprintf(stderr, "Assert %s failed", "'index'");
8343 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
8344 nit_exit(1);
8345 }
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);
8352 nit_exit(1);
8353 }
8354 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB4)];
8355 /* ./../lib/standard//collection//array.nit:234 */
8356 goto label1;
8357 label1: while(0);
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]);
8361 REGB4 = TAG_Int(1);
8362 REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB4));
8363 REGB3 = REGB4;
8364 /* ./syntax//icode_generation.nit:1247 */
8365 } else {
8366 /* ./syntax//icode_generation.nit:1244 */
8367 goto label2;
8368 }
8369 CALL_abstract_collection___Iterator___next(fra.me.REG[6])(fra.me.REG[6]);
8370 }
8371 label2: while(0);
8372 /* ./syntax//icode_generation.nit:1249 */
8373 array___Array___add(fra.me.REG[2], fra.me.REG[5]);
8374 } else {
8375 fra.me.REG[5] = fra.me.REG[0];
8376 REGB4 = REGB3;
8377 REGB5 = TAG_Int(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)) {
8383 } else {
8384 fprintf(stderr, "Uninitialized attribute %s", "_length");
8385 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
8386 nit_exit(1);
8387 }
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 */
8391 } else {
8392 REGB6 = TAG_Bool(false);
8393 REGB5 = REGB6;
8394 }
8395 if (UNTAG_Bool(REGB5)) {
8396 } else {
8397 fprintf(stderr, "Assert %s failed", "'index'");
8398 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
8399 nit_exit(1);
8400 }
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);
8407 nit_exit(1);
8408 }
8409 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB4)];
8410 /* ./../lib/standard//collection//array.nit:234 */
8411 goto label3;
8412 label3: while(0);
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]);
8417 REGB4 = TAG_Int(1);
8418 REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB4));
8419 REGB3 = REGB4;
8420 /* ./syntax//icode_generation.nit:1253 */
8421 }
8422 } else {
8423 /* ./syntax//icode_generation.nit:1239 */
8424 goto label4;
8425 }
8426 CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]);
8427 }
8428 label4: while(0);
8429 stack_frame_head = fra.me.prev;
8430 return;
8431 }
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;
8434 val_t REGB0;
8435 val_t REGB1;
8436 val_t REGB2;
8437 val_t tmp;
8438 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8439 fra.me.file = LOCATE_icode_generation;
8440 fra.me.line = 1260;
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;
8458 fra.me.REG[0] = p0;
8459 fra.me.REG[1] = p1;
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)) {
8470 } else {
8471 fprintf(stderr, "Cast failed");
8472 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 1266);
8473 nit_exit(1);
8474 }
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)) {
8490 } else {
8491 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8492 if (UNTAG_Bool(REGB1)) {
8493 REGB1 = TAG_Bool(false);
8494 REGB0 = REGB1;
8495 } else {
8496 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
8497 REGB0 = REGB1;
8498 }
8499 }
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 */
8505 }
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];
8513 REGB0 = TAG_Int(0);
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)) {
8518 } else {
8519 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
8520 if (UNTAG_Bool(REGB1)) {
8521 REGB1 = TAG_Bool(false);
8522 REGB0 = REGB1;
8523 } else {
8524 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
8525 REGB0 = REGB1;
8526 }
8527 }
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);
8535 nit_exit(1);
8536 }
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)) {
8540 } else {
8541 fprintf(stderr, "Uninitialized attribute %s", "_length");
8542 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
8543 nit_exit(1);
8544 }
8545 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[8]);
8546 /* ./syntax//icode_generation.nit:1283 */
8547 }
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 */
8553 while(1) {
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)) {
8562 } else {
8563 REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
8564 if (UNTAG_Bool(REGB2)) {
8565 REGB2 = TAG_Bool(false);
8566 REGB1 = REGB2;
8567 } else {
8568 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
8569 REGB1 = REGB2;
8570 }
8571 }
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 */
8576 while(1) {
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)) {
8585 } else {
8586 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[13])(fra.me.REG[13], fra.me.REG[10]);
8587 REGB1 = REGB2;
8588 }
8589 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8590 if (UNTAG_Bool(REGB1)) {
8591 goto label1;
8592 }
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)) {
8597 } else {
8598 REGB1 = TAG_Bool((REGB0)==(REGB1));
8599 REGB2 = REGB1;
8600 /* ./syntax//icode_generation.nit:1291 */
8601 }
8602 if (UNTAG_Bool(REGB2)) {
8603 } else {
8604 fprintf(stderr, "Assert failed");
8605 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 1291);
8606 nit_exit(1);
8607 }
8608 REGB2 = TAG_Bool(true);
8609 REGB0 = REGB2;
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);
8616 nit_exit(1);
8617 }
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);
8625 nit_exit(1);
8626 }
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);
8634 nit_exit(1);
8635 }
8636 array___Array___add(fra.me.REG[6], fra.me.REG[12]);
8637 label1: while(0);
8638 } else {
8639 /* ./syntax//icode_generation.nit:1289 */
8640 goto label2;
8641 }
8642 CALL_abstract_collection___Iterator___next(fra.me.REG[11])(fra.me.REG[11]);
8643 }
8644 label2: while(0);
8645 }
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);
8654 nit_exit(1);
8655 }
8656 array___Array___add(fra.me.REG[6], NIT_NULL);
8657 }
8658 } else {
8659 /* ./syntax//icode_generation.nit:1285 */
8660 goto label3;
8661 }
8662 CALL_abstract_collection___Iterator___next(fra.me.REG[9])(fra.me.REG[9]);
8663 }
8664 label3: while(0);
8665 }
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)) {
8676 } else {
8677 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8678 if (UNTAG_Bool(REGB2)) {
8679 REGB2 = TAG_Bool(false);
8680 REGB0 = REGB2;
8681 } else {
8682 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8683 REGB0 = REGB2;
8684 }
8685 }
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)) {
8690 } else {
8691 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8692 if (UNTAG_Bool(REGB2)) {
8693 REGB2 = TAG_Bool(false);
8694 REGB0 = REGB2;
8695 } else {
8696 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8697 REGB0 = REGB2;
8698 }
8699 }
8700 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8701 } else {
8702 REGB2 = TAG_Bool(false);
8703 REGB0 = REGB2;
8704 }
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]);
8707 }
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]);
8710 } else {
8711 fra.me.REG[4] = fra.me.REG[6];
8712 /* ./syntax//icode_generation.nit:1312 */
8713 }
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]);
8720 }
8721 /* ./syntax//icode_generation.nit:1318 */
8722 goto label4;
8723 label4: while(0);
8724 stack_frame_head = fra.me.prev;
8725 return fra.me.REG[4];
8726 }
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;
8729 val_t REGB0;
8730 val_t tmp;
8731 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8732 fra.me.file = LOCATE_icode_generation;
8733 fra.me.line = 1323;
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;
8744 fra.me.REG[0] = p0;
8745 fra.me.REG[1] = p1;
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]);
8754 }
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)) {
8763 } else {
8764 fprintf(stderr, "Cast failed");
8765 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 1329);
8766 nit_exit(1);
8767 }
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);
8778 nit_exit(1);
8779 }
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)) {
8783 } else {
8784 fprintf(stderr, "Cast failed");
8785 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 1331);
8786 nit_exit(1);
8787 }
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]);
8792 REGB0 = TAG_Int(2);
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);
8804 nit_exit(1);
8805 }
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)) {
8809 } else {
8810 fprintf(stderr, "Cast failed");
8811 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 1333);
8812 nit_exit(1);
8813 }
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 */
8824 goto label1;
8825 label1: while(0);
8826 stack_frame_head = fra.me.prev;
8827 return fra.me.REG[3];
8828 }
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;
8831 val_t REGB0;
8832 val_t tmp;
8833 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8834 fra.me.file = LOCATE_icode_generation;
8835 fra.me.line = 1342;
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;
8844 fra.me.REG[0] = p0;
8845 fra.me.REG[1] = p1;
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)) {
8852 } else {
8853 fprintf(stderr, "Cast failed");
8854 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 1345);
8855 nit_exit(1);
8856 }
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 */
8864 goto label1;
8865 label1: while(0);
8866 stack_frame_head = fra.me.prev;
8867 return fra.me.REG[0];
8868 }
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;
8871 val_t tmp;
8872 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8873 fra.me.file = LOCATE_icode_generation;
8874 fra.me.line = 1351;
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;
8880 fra.me.REG[0] = p0;
8881 fra.me.REG[1] = p1;
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 */
8885 goto label1;
8886 label1: while(0);
8887 stack_frame_head = fra.me.prev;
8888 return fra.me.REG[0];
8889 }
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;
8892 val_t tmp;
8893 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8894 fra.me.file = LOCATE_icode_generation;
8895 fra.me.line = 1358;
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;
8904 fra.me.REG[0] = p0;
8905 fra.me.REG[1] = p1;
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 */
8920 goto label1;
8921 label1: while(0);
8922 stack_frame_head = fra.me.prev;
8923 return fra.me.REG[3];
8924 }
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;
8927 val_t REGB0;
8928 val_t REGB1;
8929 val_t REGB2;
8930 val_t REGB3;
8931 val_t tmp;
8932 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8933 fra.me.file = LOCATE_icode_generation;
8934 fra.me.line = 1377;
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;
8945 fra.me.REG[0] = p0;
8946 fra.me.REG[1] = p1;
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]);
8950 REGB0 = TAG_Int(0);
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 */
8955 while(1) {
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]);
8963 } else {
8964 /* ./syntax//icode_generation.nit:1382 */
8965 goto label1;
8966 }
8967 CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]);
8968 }
8969 label1: while(0);
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)) {
8975 } else {
8976 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8977 if (UNTAG_Bool(REGB0)) {
8978 REGB0 = TAG_Bool(false);
8979 REGB1 = REGB0;
8980 } else {
8981 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8982 REGB1 = REGB0;
8983 }
8984 }
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 */
8990 }
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);
9006 nit_exit(1);
9007 }
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);
9016 nit_exit(1);
9017 }
9018 CALL_icode_generation___EscapableBlock___continue_value__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
9019 REGB1 = TAG_Int(0);
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);
9026 nit_exit(1);
9027 }
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)) {
9031 } else {
9032 fprintf(stderr, "Uninitialized attribute %s", "_length");
9033 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
9034 nit_exit(1);
9035 }
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 */
9040 while(1) {
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);
9050 nit_exit(1);
9051 }
9052 REGB1 = REGB0;
9053 REGB2 = TAG_Int(0);
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)) {
9059 } else {
9060 fprintf(stderr, "Uninitialized attribute %s", "_length");
9061 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
9062 nit_exit(1);
9063 }
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 */
9067 } else {
9068 REGB3 = TAG_Bool(false);
9069 REGB2 = REGB3;
9070 }
9071 if (UNTAG_Bool(REGB2)) {
9072 } else {
9073 fprintf(stderr, "Assert %s failed", "'index'");
9074 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
9075 nit_exit(1);
9076 }
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);
9083 nit_exit(1);
9084 }
9085 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
9086 /* ./../lib/standard//collection//array.nit:234 */
9087 goto label2;
9088 label2: while(0);
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]);
9094 } else {
9095 /* ./syntax//icode_generation.nit:1401 */
9096 goto label3;
9097 }
9098 CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]);
9099 }
9100 label3: while(0);
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);
9113 nit_exit(1);
9114 }
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)) {
9118 } else {
9119 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9120 if (UNTAG_Bool(REGB1)) {
9121 REGB1 = TAG_Bool(false);
9122 REGB0 = REGB1;
9123 } else {
9124 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9125 REGB0 = REGB1;
9126 }
9127 }
9128 } else {
9129 REGB1 = TAG_Bool(false);
9130 REGB0 = REGB1;
9131 }
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);
9139 nit_exit(1);
9140 }
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)) {
9144 } else {
9145 fprintf(stderr, "Cast failed");
9146 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 1410);
9147 nit_exit(1);
9148 }
9149 CALL_icode_builder___ICodeBuilder___add_escape(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9150 }
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 */
9156 goto label4;
9157 label4: while(0);
9158 stack_frame_head = fra.me.prev;
9159 return fra.me.REG[4];
9160 }
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;
9163 val_t REGB0;
9164 val_t REGB1;
9165 val_t REGB2;
9166 val_t tmp;
9167 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9168 fra.me.file = LOCATE_icode_generation;
9169 fra.me.line = 1420;
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;
9182 fra.me.REG[0] = p0;
9183 fra.me.REG[1] = p1;
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]);
9197 REGB1 = TAG_Int(1);
9198 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
9199 /* ./syntax//icode_generation.nit:1432 */
9200 if (UNTAG_Bool(REGB2)) {
9201 } else {
9202 REGB1 = TAG_Bool((REGB0)==(REGB1));
9203 REGB2 = REGB1;
9204 /* ./syntax//icode_generation.nit:1432 */
9205 }
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);
9219 nit_exit(1);
9220 }
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]);
9225 }
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)) {
9231 } else {
9232 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9233 if (UNTAG_Bool(REGB1)) {
9234 REGB1 = TAG_Bool(false);
9235 REGB2 = REGB1;
9236 } else {
9237 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
9238 REGB2 = REGB1;
9239 }
9240 }
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);
9256 nit_exit(1);
9257 }
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]);
9260 }
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)) {
9269 } else {
9270 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9271 if (UNTAG_Bool(REGB1)) {
9272 REGB1 = TAG_Bool(false);
9273 REGB2 = REGB1;
9274 } else {
9275 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
9276 REGB2 = REGB1;
9277 }
9278 }
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]);
9282 } else {
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 */
9286 }
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)) {
9291 } else {
9292 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9293 if (UNTAG_Bool(REGB1)) {
9294 REGB1 = TAG_Bool(false);
9295 REGB2 = REGB1;
9296 } else {
9297 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
9298 REGB2 = REGB1;
9299 }
9300 }
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)) {
9306 } else {
9307 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
9308 if (UNTAG_Bool(REGB1)) {
9309 REGB1 = TAG_Bool(false);
9310 REGB2 = REGB1;
9311 } else {
9312 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
9313 REGB2 = REGB1;
9314 }
9315 }
9316 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
9317 if (UNTAG_Bool(REGB2)) {
9318 } else {
9319 fprintf(stderr, "Assert failed");
9320 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 1461);
9321 nit_exit(1);
9322 }
9323 REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
9324 /* ./syntax//icode_generation.nit:1462 */
9325 if (UNTAG_Bool(REGB2)) {
9326 } else {
9327 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
9328 if (UNTAG_Bool(REGB1)) {
9329 REGB1 = TAG_Bool(false);
9330 REGB2 = REGB1;
9331 } else {
9332 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
9333 REGB2 = REGB1;
9334 }
9335 }
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)) {
9341 } else {
9342 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9343 if (UNTAG_Bool(REGB1)) {
9344 REGB1 = TAG_Bool(false);
9345 REGB2 = REGB1;
9346 } else {
9347 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
9348 REGB2 = REGB1;
9349 }
9350 }
9351 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
9352 if (UNTAG_Bool(REGB2)) {
9353 } else {
9354 fprintf(stderr, "Assert failed");
9355 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 1463);
9356 nit_exit(1);
9357 }
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]);
9362 }
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);
9368 nit_exit(1);
9369 }
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)) {
9376 } else {
9377 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9378 if (UNTAG_Bool(REGB1)) {
9379 REGB1 = TAG_Bool(false);
9380 REGB2 = REGB1;
9381 } else {
9382 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9383 REGB2 = REGB1;
9384 }
9385 }
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)) {
9391 } else {
9392 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9393 if (UNTAG_Bool(REGB1)) {
9394 REGB1 = TAG_Bool(false);
9395 REGB2 = REGB1;
9396 } else {
9397 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9398 REGB2 = REGB1;
9399 }
9400 }
9401 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
9402 if (UNTAG_Bool(REGB2)) {
9403 } else {
9404 fprintf(stderr, "Assert failed");
9405 fprintf(stderr, " (%s:%d)\n", LOCATE_icode_generation, 1470);
9406 nit_exit(1);
9407 }
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]);
9410 }
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]);
9413 } else {
9414 fra.me.REG[3] = fra.me.REG[8];
9415 /* ./syntax//icode_generation.nit:1475 */
9416 }
9417 /* ./syntax//icode_generation.nit:1477 */
9418 goto label1;
9419 label1: while(0);
9420 stack_frame_head = fra.me.prev;
9421 return fra.me.REG[3];
9422 }