1 /* This C file is generated by NIT to compile module syntax___icode_generation. */
2 #include "syntax___icode_generation._sep.h"
3 static const char LOCATE_syntax___icode_generation___A2IContext___stmt
[] = "icode_generation::A2IContext::(icode_builder::ICodeBuilder::stmt)";
4 void syntax___icode_generation___A2IContext___stmt(val_t p0
, val_t p1
){
5 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
9 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10 fra
.me
.file
= LOCATE_syntax___icode_generation
;
12 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___stmt
;
15 fra
.me
.nitni_local_ref_head
= NULL
;
16 fra
.me
.REG
[0] = NIT_NULL
;
17 fra
.me
.REG
[1] = NIT_NULL
;
18 fra
.me
.REG
[2] = NIT_NULL
;
19 fra
.me
.REG
[3] = NIT_NULL
;
22 /* syntax/icode_generation.nit:28 */
23 fra
.me
.REG
[2] = fra
.me
.REG
[0];
24 /* syntax/icode_generation.nit:30 */
25 fra
.me
.REG
[3] = ATTR_syntax___icode_generation___A2IContext____current_node(fra
.me
.REG
[2]);
26 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
27 if (UNTAG_Bool(REGB0
)) {
29 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
30 if (UNTAG_Bool(REGB1
)) {
34 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
38 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
39 if (UNTAG_Bool(REGB0
)) {
40 /* syntax/icode_generation.nit:31 */
41 fra
.me
.REG
[3] = ATTR_syntax___icode_generation___A2IContext____current_node(fra
.me
.REG
[2]);
42 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
43 if (UNTAG_Bool(REGB0
)) {
44 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 31);
46 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
47 CALL_icode___icode_builder___ICodeBuilder___current_location__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
49 /* syntax/icode_generation.nit:32 */
50 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
51 fra
.me
.REG
[3] = CALL_parser___parser_nodes___Visitor___current_node(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
52 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
53 if (UNTAG_Bool(REGB0
)) {
55 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
56 if (UNTAG_Bool(REGB1
)) {
60 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
64 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
65 if (UNTAG_Bool(REGB0
)) {
66 /* syntax/icode_generation.nit:33 */
67 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
68 fra
.me
.REG
[3] = CALL_parser___parser_nodes___Visitor___current_node(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
69 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
70 if (UNTAG_Bool(REGB0
)) {
71 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 33);
73 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
74 CALL_icode___icode_builder___ICodeBuilder___current_location__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
77 /* syntax/icode_generation.nit:35 */
78 CALL_SUPER_syntax___icode_generation___A2IContext___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
79 stack_frame_head
= fra
.me
.prev
;
82 static const char LOCATE_syntax___icode_generation___A2IContext___add_new_array
[] = "icode_generation::A2IContext::add_new_array";
83 val_t
syntax___icode_generation___A2IContext___add_new_array(val_t p0
, val_t p1
, val_t p2
){
84 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
88 static val_t once_value_1
; /* Once value */
89 static val_t once_value_2
; /* Once value */
90 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
91 fra
.me
.file
= LOCATE_syntax___icode_generation
;
93 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___add_new_array
;
96 fra
.me
.nitni_local_ref_head
= NULL
;
97 fra
.me
.REG
[0] = NIT_NULL
;
98 fra
.me
.REG
[1] = NIT_NULL
;
99 fra
.me
.REG
[2] = NIT_NULL
;
100 fra
.me
.REG
[3] = NIT_NULL
;
101 fra
.me
.REG
[4] = NIT_NULL
;
105 /* syntax/icode_generation.nit:41 */
106 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
109 fra
.me
.REG
[3] = BOX_NativeString("with_capacity");
111 fra
.me
.REG
[3] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB1
);
112 once_value_2
= fra
.me
.REG
[3];
113 register_static_object(&once_value_2
);
114 } else fra
.me
.REG
[3] = once_value_2
;
115 fra
.me
.REG
[3] = fra
.me
.REG
[3];
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] = fra
.me
.REG
[3];
121 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[3]);
122 /* syntax/icode_generation.nit:42 */
123 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(REGB0
)(REGB0
);
124 fra
.me
.REG
[2] = NEW_IIntValue_icode___icode_base___IIntValue___init(fra
.me
.REG
[2]);
125 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
126 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
127 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[4]);
128 /* syntax/icode_generation.nit:43 */
130 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
131 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
132 fra
.me
.REG
[2] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
133 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[1]);
136 stack_frame_head
= fra
.me
.prev
;
137 return fra
.me
.REG
[1];
139 static const char LOCATE_syntax___icode_generation___A2IContext___add_call_array_add
[] = "icode_generation::A2IContext::add_call_array_add";
140 void syntax___icode_generation___A2IContext___add_call_array_add(val_t p0
, val_t p1
, val_t p2
){
141 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
144 static val_t once_value_1
; /* Once value */
145 static val_t once_value_2
; /* Once value */
146 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
147 fra
.me
.file
= LOCATE_syntax___icode_generation
;
149 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___add_call_array_add
;
150 fra
.me
.has_broke
= 0;
152 fra
.me
.nitni_local_ref_head
= NULL
;
153 fra
.me
.REG
[0] = NIT_NULL
;
154 fra
.me
.REG
[1] = NIT_NULL
;
155 fra
.me
.REG
[2] = NIT_NULL
;
156 fra
.me
.REG
[3] = NIT_NULL
;
157 fra
.me
.REG
[4] = NIT_NULL
;
158 fra
.me
.REG
[5] = NIT_NULL
;
162 /* syntax/icode_generation.nit:49 */
163 fra
.me
.REG
[3] = CALL_icode___icode_base___IRegister___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
164 /* syntax/icode_generation.nit:50 */
165 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
168 fra
.me
.REG
[5] = BOX_NativeString("add");
170 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
171 once_value_2
= fra
.me
.REG
[5];
172 register_static_object(&once_value_2
);
173 } else fra
.me
.REG
[5] = once_value_2
;
174 fra
.me
.REG
[5] = fra
.me
.REG
[5];
175 fra
.me
.REG
[5] = CALL_symbol___String___to_symbol(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
176 once_value_1
= fra
.me
.REG
[5];
177 register_static_object(&once_value_1
);
178 } else fra
.me
.REG
[5] = once_value_1
;
179 fra
.me
.REG
[5] = fra
.me
.REG
[5];
180 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3], fra
.me
.REG
[5]);
181 /* syntax/icode_generation.nit:51 */
183 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
184 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
185 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
186 fra
.me
.REG
[3] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[3]);
187 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
188 stack_frame_head
= fra
.me
.prev
;
191 static const char LOCATE_syntax___icode_generation___A2IContext___variable
[] = "icode_generation::A2IContext::variable";
192 val_t
syntax___icode_generation___A2IContext___variable(val_t p0
, val_t p1
){
193 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
196 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
197 fra
.me
.file
= LOCATE_syntax___icode_generation
;
199 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___variable
;
200 fra
.me
.has_broke
= 0;
202 fra
.me
.nitni_local_ref_head
= NULL
;
203 fra
.me
.REG
[0] = NIT_NULL
;
204 fra
.me
.REG
[1] = NIT_NULL
;
205 fra
.me
.REG
[2] = NIT_NULL
;
206 fra
.me
.REG
[3] = NIT_NULL
;
207 fra
.me
.REG
[4] = NIT_NULL
;
210 /* syntax/icode_generation.nit:54 */
211 fra
.me
.REG
[2] = fra
.me
.REG
[0];
212 /* syntax/icode_generation.nit:58 */
213 REGB0
= TAG_Bool(ATTR_syntax___icode_generation___A2IContext____variables(fra
.me
.REG
[2])!=NIT_NULL
);
214 if (UNTAG_Bool(REGB0
)) {
216 nit_abort("Uninitialized attribute %s", "_variables", LOCATE_syntax___icode_generation
, 58);
218 fra
.me
.REG
[3] = ATTR_syntax___icode_generation___A2IContext____variables(fra
.me
.REG
[2]);
219 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
220 if (UNTAG_Bool(REGB0
)) {
221 /* syntax/icode_generation.nit:59 */
222 REGB0
= TAG_Bool(ATTR_syntax___icode_generation___A2IContext____variables(fra
.me
.REG
[2])!=NIT_NULL
);
223 if (UNTAG_Bool(REGB0
)) {
225 nit_abort("Uninitialized attribute %s", "_variables", LOCATE_syntax___icode_generation
, 59);
227 fra
.me
.REG
[3] = ATTR_syntax___icode_generation___A2IContext____variables(fra
.me
.REG
[2]);
228 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
231 /* syntax/icode_generation.nit:61 */
232 fra
.me
.REG
[4] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
233 REGB0
= TAG_Bool((fra
.me
.REG
[4]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___static_type___MMType
, ID_metamodel___static_type___MMType
)) /*cast MMType*/;
234 if (UNTAG_Bool(REGB0
)) {
236 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 61);
238 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
239 /* syntax/icode_generation.nit:62 */
240 REGB0
= TAG_Bool(ATTR_syntax___icode_generation___A2IContext____variables(fra
.me
.REG
[2])!=NIT_NULL
);
241 if (UNTAG_Bool(REGB0
)) {
243 nit_abort("Uninitialized attribute %s", "_variables", LOCATE_syntax___icode_generation
, 62);
245 fra
.me
.REG
[2] = ATTR_syntax___icode_generation___A2IContext____variables(fra
.me
.REG
[2]);
246 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[4]);
247 /* syntax/icode_generation.nit:63 */
248 fra
.me
.REG
[3] = fra
.me
.REG
[4];
252 stack_frame_head
= fra
.me
.prev
;
253 return fra
.me
.REG
[3];
255 static const char LOCATE_syntax___icode_generation___A2IContext___closurevariables
[] = "icode_generation::A2IContext::closurevariables";
256 val_t
syntax___icode_generation___A2IContext___closurevariables(val_t p0
){
257 struct {struct stack_frame_t me
;} fra
;
260 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
261 fra
.me
.file
= LOCATE_syntax___icode_generation
;
263 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___closurevariables
;
264 fra
.me
.has_broke
= 0;
266 fra
.me
.nitni_local_ref_head
= NULL
;
267 fra
.me
.REG
[0] = NIT_NULL
;
269 /* syntax/icode_generation.nit:70 */
270 REGB0
= TAG_Bool(ATTR_syntax___icode_generation___A2IContext____closurevariables(fra
.me
.REG
[0])!=NIT_NULL
);
271 if (UNTAG_Bool(REGB0
)) {
273 nit_abort("Uninitialized attribute %s", "_closurevariables", LOCATE_syntax___icode_generation
, 70);
275 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___A2IContext____closurevariables(fra
.me
.REG
[0]);
276 stack_frame_head
= fra
.me
.prev
;
277 return fra
.me
.REG
[0];
279 static const char LOCATE_syntax___icode_generation___A2IContext___visitor
[] = "icode_generation::A2IContext::visitor";
280 val_t
syntax___icode_generation___A2IContext___visitor(val_t p0
){
281 struct {struct stack_frame_t me
;} fra
;
284 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
285 fra
.me
.file
= LOCATE_syntax___icode_generation
;
287 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___visitor
;
288 fra
.me
.has_broke
= 0;
290 fra
.me
.nitni_local_ref_head
= NULL
;
291 fra
.me
.REG
[0] = NIT_NULL
;
293 /* syntax/icode_generation.nit:73 */
294 REGB0
= TAG_Bool(ATTR_syntax___icode_generation___A2IContext____visitor(fra
.me
.REG
[0])!=NIT_NULL
);
295 if (UNTAG_Bool(REGB0
)) {
297 nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_syntax___icode_generation
, 73);
299 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___A2IContext____visitor(fra
.me
.REG
[0]);
300 stack_frame_head
= fra
.me
.prev
;
301 return fra
.me
.REG
[0];
303 static const char LOCATE_syntax___icode_generation___A2IContext___return_seq
[] = "icode_generation::A2IContext::return_seq";
304 val_t
syntax___icode_generation___A2IContext___return_seq(val_t p0
){
305 struct {struct stack_frame_t me
;} fra
;
307 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
308 fra
.me
.file
= LOCATE_syntax___icode_generation
;
310 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___return_seq
;
311 fra
.me
.has_broke
= 0;
313 fra
.me
.nitni_local_ref_head
= NULL
;
314 fra
.me
.REG
[0] = NIT_NULL
;
316 /* syntax/icode_generation.nit:76 */
317 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___A2IContext____return_seq(fra
.me
.REG
[0]);
318 stack_frame_head
= fra
.me
.prev
;
319 return fra
.me
.REG
[0];
321 static const char LOCATE_syntax___icode_generation___A2IContext___return_seq__eq
[] = "icode_generation::A2IContext::return_seq=";
322 void syntax___icode_generation___A2IContext___return_seq__eq(val_t p0
, val_t p1
){
323 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
325 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
326 fra
.me
.file
= LOCATE_syntax___icode_generation
;
328 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___return_seq__eq
;
329 fra
.me
.has_broke
= 0;
331 fra
.me
.nitni_local_ref_head
= NULL
;
332 fra
.me
.REG
[0] = NIT_NULL
;
333 fra
.me
.REG
[1] = NIT_NULL
;
336 /* syntax/icode_generation.nit:76 */
337 ATTR_syntax___icode_generation___A2IContext____return_seq(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
338 stack_frame_head
= fra
.me
.prev
;
341 static const char LOCATE_syntax___icode_generation___A2IContext___return_value
[] = "icode_generation::A2IContext::return_value";
342 val_t
syntax___icode_generation___A2IContext___return_value(val_t p0
){
343 struct {struct stack_frame_t me
;} fra
;
345 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
346 fra
.me
.file
= LOCATE_syntax___icode_generation
;
348 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___return_value
;
349 fra
.me
.has_broke
= 0;
351 fra
.me
.nitni_local_ref_head
= NULL
;
352 fra
.me
.REG
[0] = NIT_NULL
;
354 /* syntax/icode_generation.nit:79 */
355 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___A2IContext____return_value(fra
.me
.REG
[0]);
356 stack_frame_head
= fra
.me
.prev
;
357 return fra
.me
.REG
[0];
359 static const char LOCATE_syntax___icode_generation___A2IContext___return_value__eq
[] = "icode_generation::A2IContext::return_value=";
360 void syntax___icode_generation___A2IContext___return_value__eq(val_t p0
, val_t p1
){
361 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
363 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
364 fra
.me
.file
= LOCATE_syntax___icode_generation
;
366 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___return_value__eq
;
367 fra
.me
.has_broke
= 0;
369 fra
.me
.nitni_local_ref_head
= NULL
;
370 fra
.me
.REG
[0] = NIT_NULL
;
371 fra
.me
.REG
[1] = NIT_NULL
;
374 /* syntax/icode_generation.nit:79 */
375 ATTR_syntax___icode_generation___A2IContext____return_value(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
376 stack_frame_head
= fra
.me
.prev
;
379 static const char LOCATE_syntax___icode_generation___A2IContext___method
[] = "icode_generation::A2IContext::method";
380 val_t
syntax___icode_generation___A2IContext___method(val_t p0
){
381 struct {struct stack_frame_t me
;} fra
;
383 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
384 fra
.me
.file
= LOCATE_syntax___icode_generation
;
386 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___method
;
387 fra
.me
.has_broke
= 0;
389 fra
.me
.nitni_local_ref_head
= NULL
;
390 fra
.me
.REG
[0] = NIT_NULL
;
392 /* syntax/icode_generation.nit:82 */
393 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___A2IContext____method(fra
.me
.REG
[0]);
394 stack_frame_head
= fra
.me
.prev
;
395 return fra
.me
.REG
[0];
397 static const char LOCATE_syntax___icode_generation___A2IContext___selfreg
[] = "icode_generation::A2IContext::selfreg";
398 val_t
syntax___icode_generation___A2IContext___selfreg(val_t p0
){
399 struct {struct stack_frame_t me
;} fra
;
401 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
402 fra
.me
.file
= LOCATE_syntax___icode_generation
;
404 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___selfreg
;
405 fra
.me
.has_broke
= 0;
407 fra
.me
.nitni_local_ref_head
= NULL
;
408 fra
.me
.REG
[0] = NIT_NULL
;
410 /* syntax/icode_generation.nit:85 */
411 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___A2IContext_____atselfreg(fra
.me
.REG
[0]);
412 stack_frame_head
= fra
.me
.prev
;
413 return fra
.me
.REG
[0];
415 static const char LOCATE_syntax___icode_generation___A2IContext___selfreg__eq
[] = "icode_generation::A2IContext::selfreg=";
416 void syntax___icode_generation___A2IContext___selfreg__eq(val_t p0
, val_t p1
){
417 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
419 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
420 fra
.me
.file
= LOCATE_syntax___icode_generation
;
422 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___selfreg__eq
;
423 fra
.me
.has_broke
= 0;
425 fra
.me
.nitni_local_ref_head
= NULL
;
426 fra
.me
.REG
[0] = NIT_NULL
;
427 fra
.me
.REG
[1] = NIT_NULL
;
430 /* syntax/icode_generation.nit:85 */
431 ATTR_syntax___icode_generation___A2IContext_____atselfreg(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
432 stack_frame_head
= fra
.me
.prev
;
435 static const char LOCATE_syntax___icode_generation___A2IContext___init
[] = "icode_generation::A2IContext::init";
436 void syntax___icode_generation___A2IContext___init(val_t p0
, val_t p1
, val_t p2
, val_t p3
, int* init_table
){
437 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_syntax___icode_generation___A2IContext
].i
;
438 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
440 if (init_table
[itpos0
]) return;
441 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
442 fra
.me
.file
= LOCATE_syntax___icode_generation
;
444 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___init
;
445 fra
.me
.has_broke
= 0;
447 fra
.me
.nitni_local_ref_head
= NULL
;
448 fra
.me
.REG
[0] = NIT_NULL
;
449 fra
.me
.REG
[1] = NIT_NULL
;
450 fra
.me
.REG
[2] = NIT_NULL
;
451 fra
.me
.REG
[3] = NIT_NULL
;
452 fra
.me
.REG
[4] = NIT_NULL
;
453 fra
.me
.REG
[5] = NIT_NULL
;
458 /* syntax/icode_generation.nit:88 */
459 fra
.me
.REG
[4] = fra
.me
.REG
[0];
460 /* syntax/icode_generation.nit:90 */
461 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
462 CALL_icode___icode_builder___ICodeBuilder___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5], fra
.me
.REG
[2], init_table
);
463 /* syntax/icode_generation.nit:91 */
464 ATTR_syntax___icode_generation___A2IContext____visitor(fra
.me
.REG
[4]) = fra
.me
.REG
[1];
465 /* syntax/icode_generation.nit:92 */
466 fra
.me
.REG
[1] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
467 ATTR_syntax___icode_generation___A2IContext____return_seq(fra
.me
.REG
[4]) = fra
.me
.REG
[1];
468 /* syntax/icode_generation.nit:93 */
469 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
470 ATTR_syntax___icode_generation___A2IContext____return_value(fra
.me
.REG
[4]) = fra
.me
.REG
[2];
471 /* syntax/icode_generation.nit:94 */
472 ATTR_syntax___icode_generation___A2IContext____method(fra
.me
.REG
[4]) = fra
.me
.REG
[3];
473 stack_frame_head
= fra
.me
.prev
;
474 init_table
[itpos0
] = 1;
477 static const char LOCATE_syntax___icode_generation___A2IContext___invoke_super_init_calls_after
[] = "icode_generation::A2IContext::invoke_super_init_calls_after";
478 void syntax___icode_generation___A2IContext___invoke_super_init_calls_after(val_t p0
, val_t p1
){
479 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
486 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
487 fra
.me
.file
= LOCATE_syntax___icode_generation
;
489 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___invoke_super_init_calls_after
;
490 fra
.me
.has_broke
= 0;
492 fra
.me
.nitni_local_ref_head
= NULL
;
493 fra
.me
.REG
[0] = NIT_NULL
;
494 fra
.me
.REG
[1] = NIT_NULL
;
495 fra
.me
.REG
[2] = NIT_NULL
;
496 fra
.me
.REG
[3] = NIT_NULL
;
497 fra
.me
.REG
[4] = NIT_NULL
;
498 fra
.me
.REG
[5] = NIT_NULL
;
501 /* syntax/icode_generation.nit:100 */
502 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
503 /* syntax/icode_generation.nit:101 */
504 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
505 if (UNTAG_Bool(REGB0
)) {
507 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 101);
509 /* syntax/icode_generation.nit:102 */
510 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
511 if (UNTAG_Bool(REGB0
)) {
512 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 102);
514 fra
.me
.REG
[2] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
515 /* syntax/icode_generation.nit:103 */
516 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_parser___parser_nodes___AConcreteInitPropdef
, ID_parser___parser_nodes___AConcreteInitPropdef
)) /*cast AConcreteInitPropdef*/;
517 if (UNTAG_Bool(REGB0
)) {
519 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 103);
521 /* syntax/icode_generation.nit:105 */
522 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
523 if (UNTAG_Bool(REGB0
)) {
524 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 105);
526 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
527 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
528 if (UNTAG_Bool(REGB0
)) {
531 /* syntax/icode_generation.nit:106 */
533 /* syntax/icode_generation.nit:107 */
535 /* syntax/icode_generation.nit:108 */
536 REGB2
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
537 if (UNTAG_Bool(REGB2
)) {
539 REGB3
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
540 if (UNTAG_Bool(REGB3
)) {
544 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
548 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
549 if (UNTAG_Bool(REGB2
)) {
550 /* syntax/icode_generation.nit:109 */
552 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
553 if (UNTAG_Bool(REGB2
)) {
554 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 109);
556 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
557 /* ../lib/standard/collection/array.nit:279 */
559 /* ../lib/standard/collection/array.nit:281 */
561 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
562 if (UNTAG_Bool(REGB4
)) {
564 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
566 /* ../lib/standard/kernel.nit:243 */
567 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
568 /* ../lib/standard/collection/array.nit:281 */
569 if (UNTAG_Bool(REGB3
)) {
570 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
571 if (UNTAG_Bool(REGB3
)) {
573 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 281);
575 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
576 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
577 if (UNTAG_Bool(REGB4
)) {
579 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
581 /* ../lib/standard/kernel.nit:242 */
582 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
584 /* ../lib/standard/collection/array.nit:281 */
588 if (UNTAG_Bool(REGB3
)) {
590 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 281);
592 /* ../lib/standard/collection/array.nit:282 */
593 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
594 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
595 if (UNTAG_Bool(REGB3
)) {
596 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 282);
598 /* ../lib/standard/collection/array.nit:725 */
599 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB2
)];
600 /* ../lib/standard/collection/array.nit:282 */
603 /* syntax/icode_generation.nit:109 */
604 REGB2
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[3],fra
.me
.REG
[1]));
605 if (UNTAG_Bool(REGB2
)) {
607 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
608 if (UNTAG_Bool(REGB3
)) {
612 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
616 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
617 if (UNTAG_Bool(REGB2
)) {
618 /* syntax/icode_generation.nit:110 */
620 /* ../lib/standard/kernel.nit:245 */
621 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
622 /* syntax/icode_generation.nit:110 */
625 /* syntax/icode_generation.nit:109 */
630 /* syntax/icode_generation.nit:112 */
632 /* ../lib/standard/kernel.nit:245 */
633 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
634 /* syntax/icode_generation.nit:112 */
636 /* syntax/icode_generation.nit:114 */
638 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
639 if (UNTAG_Bool(REGB2
)) {
640 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 114);
642 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
643 /* ../lib/standard/collection/array.nit:279 */
645 /* ../lib/standard/collection/array.nit:281 */
647 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
648 if (UNTAG_Bool(REGB4
)) {
650 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
652 /* ../lib/standard/kernel.nit:243 */
653 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
654 /* ../lib/standard/collection/array.nit:281 */
655 if (UNTAG_Bool(REGB3
)) {
656 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
657 if (UNTAG_Bool(REGB3
)) {
659 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 281);
661 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
662 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
663 if (UNTAG_Bool(REGB4
)) {
665 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
667 /* ../lib/standard/kernel.nit:242 */
668 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
670 /* ../lib/standard/collection/array.nit:281 */
674 if (UNTAG_Bool(REGB3
)) {
676 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 281);
678 /* ../lib/standard/collection/array.nit:282 */
679 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
680 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
681 if (UNTAG_Bool(REGB3
)) {
682 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 282);
684 /* ../lib/standard/collection/array.nit:725 */
685 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB2
)];
686 /* ../lib/standard/collection/array.nit:282 */
689 /* syntax/icode_generation.nit:114 */
690 REGB2
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[3],fra
.me
.REG
[1]));
691 if (UNTAG_Bool(REGB2
)) {
693 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
694 if (UNTAG_Bool(REGB3
)) {
698 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
702 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
703 if (UNTAG_Bool(REGB2
)) {
704 /* syntax/icode_generation.nit:115 */
706 /* ../lib/standard/kernel.nit:245 */
707 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
708 /* syntax/icode_generation.nit:115 */
711 /* syntax/icode_generation.nit:114 */
716 /* syntax/icode_generation.nit:117 */
718 /* ../lib/standard/kernel.nit:245 */
719 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
720 /* syntax/icode_generation.nit:117 */
723 /* syntax/icode_generation.nit:119 */
724 fra
.me
.REG
[1] = NIT_NULL
;
725 /* syntax/icode_generation.nit:120 */
726 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
727 if (UNTAG_Bool(REGB2
)) {
728 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 120);
730 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
731 /* ../lib/standard/collection/array.nit:24 */
732 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
733 if (UNTAG_Bool(REGB2
)) {
735 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
737 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
738 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
739 if (UNTAG_Bool(REGB3
)) {
741 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
743 /* ../lib/standard/kernel.nit:242 */
744 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
745 /* syntax/icode_generation.nit:120 */
746 if (UNTAG_Bool(REGB2
)) {
747 /* syntax/icode_generation.nit:121 */
748 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
749 if (UNTAG_Bool(REGB2
)) {
750 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 121);
752 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
753 /* ../lib/standard/collection/array.nit:281 */
755 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
756 if (UNTAG_Bool(REGB3
)) {
758 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
760 /* ../lib/standard/kernel.nit:243 */
761 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>=UNTAG_Int(REGB2
));
762 /* ../lib/standard/collection/array.nit:281 */
763 if (UNTAG_Bool(REGB2
)) {
764 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
765 if (UNTAG_Bool(REGB2
)) {
767 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 281);
769 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
770 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
771 if (UNTAG_Bool(REGB3
)) {
773 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
775 /* ../lib/standard/kernel.nit:242 */
776 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
778 /* ../lib/standard/collection/array.nit:281 */
782 if (UNTAG_Bool(REGB2
)) {
784 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 281);
786 /* ../lib/standard/collection/array.nit:282 */
787 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
788 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
789 if (UNTAG_Bool(REGB2
)) {
790 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 282);
792 /* ../lib/standard/collection/array.nit:725 */
793 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB1
)];
794 /* ../lib/standard/collection/array.nit:282 */
797 /* syntax/icode_generation.nit:121 */
798 fra
.me
.REG
[1] = fra
.me
.REG
[3];
800 /* syntax/icode_generation.nit:123 */
801 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
802 if (UNTAG_Bool(REGB1
)) {
803 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 123);
805 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
806 /* ../lib/standard/collection/array.nit:24 */
807 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
808 if (UNTAG_Bool(REGB1
)) {
810 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
812 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
813 /* syntax/icode_generation.nit:124 */
815 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
816 if (UNTAG_Bool(REGB2
)) {
818 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
820 /* ../lib/standard/kernel.nit:242 */
821 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
822 /* syntax/icode_generation.nit:124 */
823 if (UNTAG_Bool(REGB2
)) {
824 /* syntax/icode_generation.nit:125 */
825 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
826 if (UNTAG_Bool(REGB2
)) {
827 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 125);
829 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AConcreteInitPropdef___super_init_calls(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
830 /* ../lib/standard/collection/array.nit:279 */
832 /* ../lib/standard/collection/array.nit:281 */
834 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
835 if (UNTAG_Bool(REGB4
)) {
837 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
839 /* ../lib/standard/kernel.nit:243 */
840 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
841 /* ../lib/standard/collection/array.nit:281 */
842 if (UNTAG_Bool(REGB3
)) {
843 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
844 if (UNTAG_Bool(REGB3
)) {
846 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 281);
848 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
849 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
850 if (UNTAG_Bool(REGB4
)) {
852 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
854 /* ../lib/standard/kernel.nit:242 */
855 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
857 /* ../lib/standard/collection/array.nit:281 */
861 if (UNTAG_Bool(REGB3
)) {
863 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 281);
865 /* ../lib/standard/collection/array.nit:282 */
866 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
867 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
868 if (UNTAG_Bool(REGB3
)) {
869 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 282);
871 /* ../lib/standard/collection/array.nit:725 */
872 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB2
)];
873 /* ../lib/standard/collection/array.nit:282 */
876 /* syntax/icode_generation.nit:126 */
877 REGB2
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[3],fra
.me
.REG
[1]));
878 if (UNTAG_Bool(REGB2
)) {
880 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
883 if (UNTAG_Bool(REGB2
)) {
886 /* syntax/icode_generation.nit:127 */
887 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___init();
888 /* syntax/icode_generation.nit:128 */
889 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
890 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
891 if (UNTAG_Bool(REGB2
)) {
892 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 128);
894 REGB2
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
896 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB3
));
897 if (UNTAG_Bool(REGB4
)) {
899 /* ../lib/standard/kernel.nit:237 */
900 REGB3
= TAG_Bool((REGB2
)==(REGB3
));
901 /* syntax/icode_generation.nit:128 */
904 if (UNTAG_Bool(REGB4
)) {
905 /* syntax/icode_generation.nit:129 */
906 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
907 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
908 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
909 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
911 /* syntax/icode_generation.nit:131 */
912 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
913 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
914 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[5])(fra
.me
.REG
[5], (&(fra
.me
)), ((fun_t
)OC_syntax___icode_generation___A2IContext___invoke_super_init_calls_after_9
));
916 /* syntax/icode_generation.nit:135 */
917 fra
.me
.REG
[4] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[4]);
918 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
919 /* syntax/icode_generation.nit:136 */
921 /* ../lib/standard/kernel.nit:245 */
922 REGB4
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB4
));
923 /* syntax/icode_generation.nit:136 */
926 /* syntax/icode_generation.nit:124 */
932 stack_frame_head
= fra
.me
.prev
;
935 void OC_syntax___icode_generation___A2IContext___invoke_super_init_calls_after_9(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
936 struct {struct stack_frame_t me
;} fra
;
939 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
940 fra
.me
.file
= LOCATE_syntax___icode_generation
;
942 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___invoke_super_init_calls_after
;
943 fra
.me
.has_broke
= 0;
945 fra
.me
.nitni_local_ref_head
= NULL
;
946 fra
.me
.REG
[0] = NIT_NULL
;
947 fra
.me
.closure_ctx
= closctx_param
;
948 fra
.me
.closure_funs
= CREG
;
951 /* syntax/icode_generation.nit:132 */
952 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[4])(closctx
->REG
[4], fra
.me
.REG
[0]);
953 stack_frame_head
= fra
.me
.prev
;
956 static const char LOCATE_syntax___icode_generation___A2IContext___generate_stmt
[] = "icode_generation::A2IContext::generate_stmt";
957 void syntax___icode_generation___A2IContext___generate_stmt(val_t p0
, val_t p1
){
958 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
962 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
963 fra
.me
.file
= LOCATE_syntax___icode_generation
;
965 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___generate_stmt
;
966 fra
.me
.has_broke
= 0;
968 fra
.me
.nitni_local_ref_head
= NULL
;
969 fra
.me
.REG
[0] = NIT_NULL
;
970 fra
.me
.REG
[1] = NIT_NULL
;
971 fra
.me
.REG
[2] = NIT_NULL
;
974 /* syntax/icode_generation.nit:146 */
975 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
976 if (UNTAG_Bool(REGB0
)) {
978 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
979 if (UNTAG_Bool(REGB1
)) {
983 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
987 if (UNTAG_Bool(REGB0
)) {
990 /* syntax/icode_generation.nit:147 */
991 fra
.me
.REG
[2] = ATTR_syntax___icode_generation___A2IContext____current_node(fra
.me
.REG
[0]);
992 /* syntax/icode_generation.nit:148 */
993 ATTR_syntax___icode_generation___A2IContext____current_node(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
994 /* syntax/icode_generation.nit:149 */
995 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
996 if (UNTAG_Bool(REGB0
)) {
997 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 149);
999 CALL_syntax___icode_generation___AExpr___generate_icode(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1000 /* syntax/icode_generation.nit:150 */
1001 ATTR_syntax___icode_generation___A2IContext____current_node(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
1003 stack_frame_head
= fra
.me
.prev
;
1006 static const char LOCATE_syntax___icode_generation___A2IContext___generate_expr
[] = "icode_generation::A2IContext::generate_expr";
1007 val_t
syntax___icode_generation___A2IContext___generate_expr(val_t p0
, val_t p1
){
1008 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1011 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1012 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1014 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IContext___generate_expr
;
1015 fra
.me
.has_broke
= 0;
1016 fra
.me
.REG_size
= 4;
1017 fra
.me
.nitni_local_ref_head
= NULL
;
1018 fra
.me
.REG
[0] = NIT_NULL
;
1019 fra
.me
.REG
[1] = NIT_NULL
;
1020 fra
.me
.REG
[2] = NIT_NULL
;
1021 fra
.me
.REG
[3] = NIT_NULL
;
1024 /* syntax/icode_generation.nit:153 */
1025 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1026 /* syntax/icode_generation.nit:156 */
1027 fra
.me
.REG
[3] = ATTR_syntax___icode_generation___A2IContext____current_node(fra
.me
.REG
[2]);
1028 /* syntax/icode_generation.nit:157 */
1029 ATTR_syntax___icode_generation___A2IContext____current_node(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
1030 /* syntax/icode_generation.nit:158 */
1031 fra
.me
.REG
[1] = CALL_syntax___icode_generation___AExpr___generate_icode(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1032 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
1033 if (UNTAG_Bool(REGB0
)) {
1035 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 158);
1037 /* syntax/icode_generation.nit:159 */
1038 ATTR_syntax___icode_generation___A2IContext____current_node(fra
.me
.REG
[2]) = fra
.me
.REG
[3];
1039 /* syntax/icode_generation.nit:160 */
1042 stack_frame_head
= fra
.me
.prev
;
1043 return fra
.me
.REG
[1];
1045 static const char LOCATE_syntax___icode_generation___EscapableBlock___break_seq
[] = "icode_generation::EscapableBlock::break_seq";
1046 val_t
syntax___icode_generation___EscapableBlock___break_seq(val_t p0
){
1047 struct {struct stack_frame_t me
;} fra
;
1049 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1050 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1052 fra
.me
.meth
= LOCATE_syntax___icode_generation___EscapableBlock___break_seq
;
1053 fra
.me
.has_broke
= 0;
1054 fra
.me
.REG_size
= 1;
1055 fra
.me
.nitni_local_ref_head
= NULL
;
1056 fra
.me
.REG
[0] = NIT_NULL
;
1058 /* syntax/icode_generation.nit:165 */
1059 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___EscapableBlock____break_seq(fra
.me
.REG
[0]);
1060 stack_frame_head
= fra
.me
.prev
;
1061 return fra
.me
.REG
[0];
1063 static const char LOCATE_syntax___icode_generation___EscapableBlock___break_seq__eq
[] = "icode_generation::EscapableBlock::break_seq=";
1064 void syntax___icode_generation___EscapableBlock___break_seq__eq(val_t p0
, val_t p1
){
1065 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1067 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1068 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1070 fra
.me
.meth
= LOCATE_syntax___icode_generation___EscapableBlock___break_seq__eq
;
1071 fra
.me
.has_broke
= 0;
1072 fra
.me
.REG_size
= 2;
1073 fra
.me
.nitni_local_ref_head
= NULL
;
1074 fra
.me
.REG
[0] = NIT_NULL
;
1075 fra
.me
.REG
[1] = NIT_NULL
;
1078 /* syntax/icode_generation.nit:165 */
1079 ATTR_syntax___icode_generation___EscapableBlock____break_seq(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1080 stack_frame_head
= fra
.me
.prev
;
1083 static const char LOCATE_syntax___icode_generation___EscapableBlock___continue_seq
[] = "icode_generation::EscapableBlock::continue_seq";
1084 val_t
syntax___icode_generation___EscapableBlock___continue_seq(val_t p0
){
1085 struct {struct stack_frame_t me
;} fra
;
1087 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1088 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1090 fra
.me
.meth
= LOCATE_syntax___icode_generation___EscapableBlock___continue_seq
;
1091 fra
.me
.has_broke
= 0;
1092 fra
.me
.REG_size
= 1;
1093 fra
.me
.nitni_local_ref_head
= NULL
;
1094 fra
.me
.REG
[0] = NIT_NULL
;
1096 /* syntax/icode_generation.nit:168 */
1097 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___EscapableBlock____continue_seq(fra
.me
.REG
[0]);
1098 stack_frame_head
= fra
.me
.prev
;
1099 return fra
.me
.REG
[0];
1101 static const char LOCATE_syntax___icode_generation___EscapableBlock___continue_seq__eq
[] = "icode_generation::EscapableBlock::continue_seq=";
1102 void syntax___icode_generation___EscapableBlock___continue_seq__eq(val_t p0
, val_t p1
){
1103 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1105 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1106 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1108 fra
.me
.meth
= LOCATE_syntax___icode_generation___EscapableBlock___continue_seq__eq
;
1109 fra
.me
.has_broke
= 0;
1110 fra
.me
.REG_size
= 2;
1111 fra
.me
.nitni_local_ref_head
= NULL
;
1112 fra
.me
.REG
[0] = NIT_NULL
;
1113 fra
.me
.REG
[1] = NIT_NULL
;
1116 /* syntax/icode_generation.nit:168 */
1117 ATTR_syntax___icode_generation___EscapableBlock____continue_seq(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1118 stack_frame_head
= fra
.me
.prev
;
1121 static const char LOCATE_syntax___icode_generation___EscapableBlock___break_value
[] = "icode_generation::EscapableBlock::break_value";
1122 val_t
syntax___icode_generation___EscapableBlock___break_value(val_t p0
){
1123 struct {struct stack_frame_t me
;} fra
;
1125 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1126 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1128 fra
.me
.meth
= LOCATE_syntax___icode_generation___EscapableBlock___break_value
;
1129 fra
.me
.has_broke
= 0;
1130 fra
.me
.REG_size
= 1;
1131 fra
.me
.nitni_local_ref_head
= NULL
;
1132 fra
.me
.REG
[0] = NIT_NULL
;
1134 /* syntax/icode_generation.nit:171 */
1135 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___EscapableBlock____break_value(fra
.me
.REG
[0]);
1136 stack_frame_head
= fra
.me
.prev
;
1137 return fra
.me
.REG
[0];
1139 static const char LOCATE_syntax___icode_generation___EscapableBlock___break_value__eq
[] = "icode_generation::EscapableBlock::break_value=";
1140 void syntax___icode_generation___EscapableBlock___break_value__eq(val_t p0
, val_t p1
){
1141 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1143 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1144 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1146 fra
.me
.meth
= LOCATE_syntax___icode_generation___EscapableBlock___break_value__eq
;
1147 fra
.me
.has_broke
= 0;
1148 fra
.me
.REG_size
= 2;
1149 fra
.me
.nitni_local_ref_head
= NULL
;
1150 fra
.me
.REG
[0] = NIT_NULL
;
1151 fra
.me
.REG
[1] = NIT_NULL
;
1154 /* syntax/icode_generation.nit:171 */
1155 ATTR_syntax___icode_generation___EscapableBlock____break_value(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1156 stack_frame_head
= fra
.me
.prev
;
1159 static const char LOCATE_syntax___icode_generation___EscapableBlock___continue_value
[] = "icode_generation::EscapableBlock::continue_value";
1160 val_t
syntax___icode_generation___EscapableBlock___continue_value(val_t p0
){
1161 struct {struct stack_frame_t me
;} fra
;
1163 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1164 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1166 fra
.me
.meth
= LOCATE_syntax___icode_generation___EscapableBlock___continue_value
;
1167 fra
.me
.has_broke
= 0;
1168 fra
.me
.REG_size
= 1;
1169 fra
.me
.nitni_local_ref_head
= NULL
;
1170 fra
.me
.REG
[0] = NIT_NULL
;
1172 /* syntax/icode_generation.nit:174 */
1173 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___EscapableBlock____continue_value(fra
.me
.REG
[0]);
1174 stack_frame_head
= fra
.me
.prev
;
1175 return fra
.me
.REG
[0];
1177 static const char LOCATE_syntax___icode_generation___EscapableBlock___continue_value__eq
[] = "icode_generation::EscapableBlock::continue_value=";
1178 void syntax___icode_generation___EscapableBlock___continue_value__eq(val_t p0
, val_t p1
){
1179 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1181 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1182 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1184 fra
.me
.meth
= LOCATE_syntax___icode_generation___EscapableBlock___continue_value__eq
;
1185 fra
.me
.has_broke
= 0;
1186 fra
.me
.REG_size
= 2;
1187 fra
.me
.nitni_local_ref_head
= NULL
;
1188 fra
.me
.REG
[0] = NIT_NULL
;
1189 fra
.me
.REG
[1] = NIT_NULL
;
1192 /* syntax/icode_generation.nit:174 */
1193 ATTR_syntax___icode_generation___EscapableBlock____continue_value(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1194 stack_frame_head
= fra
.me
.prev
;
1197 static const char LOCATE_syntax___icode_generation___MMSrcModule___generate_icode
[] = "icode_generation::MMSrcModule::generate_icode";
1198 void syntax___icode_generation___MMSrcModule___generate_icode(val_t p0
, val_t p1
){
1199 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1201 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1202 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1204 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcModule___generate_icode
;
1205 fra
.me
.has_broke
= 0;
1206 fra
.me
.REG_size
= 3;
1207 fra
.me
.nitni_local_ref_head
= NULL
;
1208 fra
.me
.REG
[0] = NIT_NULL
;
1209 fra
.me
.REG
[1] = NIT_NULL
;
1210 fra
.me
.REG
[2] = NIT_NULL
;
1213 /* syntax/icode_generation.nit:182 */
1214 fra
.me
.REG
[1] = NEW_A2IVisitor_syntax___icode_generation___A2IVisitor___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1215 /* syntax/icode_generation.nit:183 */
1216 fra
.me
.REG
[2] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1217 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___MapRead___values(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1218 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[2])(fra
.me
.REG
[2], (&(fra
.me
)), ((fun_t
)OC_syntax___icode_generation___MMSrcModule___generate_icode_1
));
1219 stack_frame_head
= fra
.me
.prev
;
1222 void OC_syntax___icode_generation___MMSrcModule___generate_icode_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
1223 struct {struct stack_frame_t me
;} fra
;
1226 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1227 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1229 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcModule___generate_icode
;
1230 fra
.me
.has_broke
= 0;
1231 fra
.me
.REG_size
= 1;
1232 fra
.me
.nitni_local_ref_head
= NULL
;
1233 fra
.me
.REG
[0] = NIT_NULL
;
1234 fra
.me
.closure_ctx
= closctx_param
;
1235 fra
.me
.closure_funs
= CREG
;
1237 CREG
[0] = clos_fun0
;
1238 /* syntax/icode_generation.nit:184 */
1239 fra
.me
.REG
[0] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1240 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___MapRead___values(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1241 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
, ((fun_t
)OC_syntax___icode_generation___MMSrcModule___generate_icode_2
));
1242 stack_frame_head
= fra
.me
.prev
;
1245 void OC_syntax___icode_generation___MMSrcModule___generate_icode_2(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
1246 struct {struct stack_frame_t me
;} fra
;
1250 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1251 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1253 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcModule___generate_icode
;
1254 fra
.me
.has_broke
= 0;
1255 fra
.me
.REG_size
= 1;
1256 fra
.me
.nitni_local_ref_head
= NULL
;
1257 fra
.me
.REG
[0] = NIT_NULL
;
1258 fra
.me
.closure_ctx
= closctx_param
;
1259 fra
.me
.closure_funs
= CREG
;
1261 CREG
[0] = clos_fun0
;
1262 /* syntax/icode_generation.nit:185 */
1263 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_syntax___syntax_base___MMSrcMethod
, ID_syntax___syntax_base___MMSrcMethod
)) /*cast MMSrcMethod*/;
1264 if (UNTAG_Bool(REGB0
)) {
1265 /* syntax/icode_generation.nit:186 */
1266 CALL_syntax___icode_generation___MMSrcMethod___generate_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[1]);
1268 /* syntax/icode_generation.nit:187 */
1269 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_syntax___syntax_base___MMSrcAttribute
, ID_syntax___syntax_base___MMSrcAttribute
)) /*cast MMSrcAttribute*/;
1270 if (UNTAG_Bool(REGB0
)) {
1271 /* syntax/icode_generation.nit:188 */
1272 CALL_syntax___icode_generation___MMSrcAttribute___generate_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[1]);
1275 stack_frame_head
= fra
.me
.prev
;
1278 static const char LOCATE_syntax___icode_generation___MMSrcAttribute___iroutine
[] = "icode_generation::MMSrcAttribute::(icode_base::MMAttribute::iroutine)";
1279 val_t
syntax___icode_generation___MMSrcAttribute___iroutine(val_t p0
){
1280 struct {struct stack_frame_t me
;} fra
;
1282 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1283 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1285 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcAttribute___iroutine
;
1286 fra
.me
.has_broke
= 0;
1287 fra
.me
.REG_size
= 1;
1288 fra
.me
.nitni_local_ref_head
= NULL
;
1289 fra
.me
.REG
[0] = NIT_NULL
;
1291 /* syntax/icode_generation.nit:196 */
1292 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___MMSrcAttribute____iroutine(fra
.me
.REG
[0]);
1293 stack_frame_head
= fra
.me
.prev
;
1294 return fra
.me
.REG
[0];
1296 static const char LOCATE_syntax___icode_generation___MMSrcAttribute___iroutine__eq
[] = "icode_generation::MMSrcAttribute::iroutine=";
1297 void syntax___icode_generation___MMSrcAttribute___iroutine__eq(val_t p0
, val_t p1
){
1298 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1300 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1301 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1303 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcAttribute___iroutine__eq
;
1304 fra
.me
.has_broke
= 0;
1305 fra
.me
.REG_size
= 2;
1306 fra
.me
.nitni_local_ref_head
= NULL
;
1307 fra
.me
.REG
[0] = NIT_NULL
;
1308 fra
.me
.REG
[1] = NIT_NULL
;
1311 /* syntax/icode_generation.nit:196 */
1312 ATTR_syntax___icode_generation___MMSrcAttribute____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1313 stack_frame_head
= fra
.me
.prev
;
1316 static const char LOCATE_syntax___icode_generation___MMSrcAttribute___generate_iroutine
[] = "icode_generation::MMSrcAttribute::generate_iroutine";
1317 void syntax___icode_generation___MMSrcAttribute___generate_iroutine(val_t p0
, val_t p1
){
1318 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1322 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1323 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1325 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcAttribute___generate_iroutine
;
1326 fra
.me
.has_broke
= 0;
1327 fra
.me
.REG_size
= 4;
1328 fra
.me
.nitni_local_ref_head
= NULL
;
1329 fra
.me
.REG
[0] = NIT_NULL
;
1330 fra
.me
.REG
[1] = NIT_NULL
;
1331 fra
.me
.REG
[2] = NIT_NULL
;
1332 fra
.me
.REG
[3] = NIT_NULL
;
1335 /* syntax/icode_generation.nit:201 */
1336 fra
.me
.REG
[2] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1337 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1338 if (UNTAG_Bool(REGB0
)) {
1339 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 201);
1341 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1342 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1343 if (UNTAG_Bool(REGB0
)) {
1345 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1346 if (UNTAG_Bool(REGB1
)) {
1347 REGB1
= TAG_Bool(0);
1350 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1354 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1355 if (UNTAG_Bool(REGB0
)) {
1356 /* syntax/icode_generation.nit:202 */
1357 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1358 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1359 if (UNTAG_Bool(REGB0
)) {
1360 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 202);
1362 fra
.me
.REG
[2] = CALL_icode___icode_builder___MMSignature___generate_empty_iroutine(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1363 /* syntax/icode_generation.nit:203 */
1364 fra
.me
.REG
[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1365 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1366 if (UNTAG_Bool(REGB0
)) {
1367 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 203);
1369 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1370 CALL_icode___icode_base___IRoutine___location__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1371 /* syntax/icode_generation.nit:204 */
1372 fra
.me
.REG
[3] = NEW_A2IContext_syntax___icode_generation___A2IContext___init(fra
.me
.REG
[1], fra
.me
.REG
[2], NIT_NULL
);
1373 /* syntax/icode_generation.nit:205 */
1374 CALL_syntax___icode_generation___A2IVisitor___icode_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1375 /* syntax/icode_generation.nit:206 */
1376 fra
.me
.REG
[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1377 CALL_parser___parser_nodes___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1378 /* syntax/icode_generation.nit:207 */
1379 CALL_syntax___icode_generation___A2IVisitor___icode_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1380 /* syntax/icode_generation.nit:208 */
1381 ATTR_syntax___icode_generation___MMSrcAttribute____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
1383 stack_frame_head
= fra
.me
.prev
;
1386 static const char LOCATE_syntax___icode_generation___MMSrcMethod___iroutine
[] = "icode_generation::MMSrcMethod::(icode_base::MMMethod::iroutine)";
1387 val_t
syntax___icode_generation___MMSrcMethod___iroutine(val_t p0
){
1388 struct {struct stack_frame_t me
;} fra
;
1390 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1391 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1393 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcMethod___iroutine
;
1394 fra
.me
.has_broke
= 0;
1395 fra
.me
.REG_size
= 1;
1396 fra
.me
.nitni_local_ref_head
= NULL
;
1397 fra
.me
.REG
[0] = NIT_NULL
;
1399 /* syntax/icode_generation.nit:214 */
1400 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___MMSrcMethod____iroutine(fra
.me
.REG
[0]);
1401 stack_frame_head
= fra
.me
.prev
;
1402 return fra
.me
.REG
[0];
1404 static const char LOCATE_syntax___icode_generation___MMSrcMethod___iroutine__eq
[] = "icode_generation::MMSrcMethod::iroutine=";
1405 void syntax___icode_generation___MMSrcMethod___iroutine__eq(val_t p0
, val_t p1
){
1406 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1408 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1409 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1411 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcMethod___iroutine__eq
;
1412 fra
.me
.has_broke
= 0;
1413 fra
.me
.REG_size
= 2;
1414 fra
.me
.nitni_local_ref_head
= NULL
;
1415 fra
.me
.REG
[0] = NIT_NULL
;
1416 fra
.me
.REG
[1] = NIT_NULL
;
1419 /* syntax/icode_generation.nit:214 */
1420 ATTR_syntax___icode_generation___MMSrcMethod____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1421 stack_frame_head
= fra
.me
.prev
;
1424 static const char LOCATE_syntax___icode_generation___MMSrcMethod___generate_iroutine
[] = "icode_generation::MMSrcMethod::generate_iroutine";
1425 void syntax___icode_generation___MMSrcMethod___generate_iroutine(val_t p0
, val_t p1
){
1426 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1430 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1431 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1433 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcMethod___generate_iroutine
;
1434 fra
.me
.has_broke
= 0;
1435 fra
.me
.REG_size
= 4;
1436 fra
.me
.nitni_local_ref_head
= NULL
;
1437 fra
.me
.REG
[0] = NIT_NULL
;
1438 fra
.me
.REG
[1] = NIT_NULL
;
1439 fra
.me
.REG
[2] = NIT_NULL
;
1440 fra
.me
.REG
[3] = NIT_NULL
;
1443 /* syntax/icode_generation.nit:219 */
1444 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1445 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1446 if (UNTAG_Bool(REGB0
)) {
1447 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 219);
1449 fra
.me
.REG
[2] = CALL_icode___icode_builder___MMSignature___generate_empty_iroutine(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1450 /* syntax/icode_generation.nit:220 */
1451 fra
.me
.REG
[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1452 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1453 if (UNTAG_Bool(REGB0
)) {
1455 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1456 if (UNTAG_Bool(REGB1
)) {
1457 REGB1
= TAG_Bool(0);
1460 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
1464 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1465 if (UNTAG_Bool(REGB0
)) {
1466 /* syntax/icode_generation.nit:221 */
1467 fra
.me
.REG
[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1468 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1469 if (UNTAG_Bool(REGB0
)) {
1470 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 221);
1472 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1473 CALL_icode___icode_base___IRoutine___location__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1475 /* syntax/icode_generation.nit:223 */
1476 fra
.me
.REG
[3] = NEW_A2IContext_syntax___icode_generation___A2IContext___init(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
1477 /* syntax/icode_generation.nit:224 */
1478 CALL_syntax___icode_generation___A2IVisitor___icode_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1479 /* syntax/icode_generation.nit:225 */
1480 CALL_syntax___icode_generation___MMSrcMethod___inner_generate_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
1481 /* syntax/icode_generation.nit:226 */
1482 CALL_syntax___icode_generation___A2IVisitor___icode_ctx__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1483 /* syntax/icode_generation.nit:227 */
1484 ATTR_syntax___icode_generation___MMSrcMethod____iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
1485 stack_frame_head
= fra
.me
.prev
;
1488 static const char LOCATE_syntax___icode_generation___MMSrcMethod___inner_generate_iroutine
[] = "icode_generation::MMSrcMethod::inner_generate_iroutine";
1489 void syntax___icode_generation___MMSrcMethod___inner_generate_iroutine(val_t p0
, val_t p1
){
1490 struct {struct stack_frame_t me
;} fra
;
1492 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1493 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1495 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMSrcMethod___inner_generate_iroutine
;
1496 fra
.me
.has_broke
= 0;
1497 fra
.me
.REG_size
= 0;
1498 fra
.me
.nitni_local_ref_head
= NULL
;
1499 /* syntax/icode_generation.nit:230 */
1500 nit_abort("Deferred method called", NULL
, LOCATE_syntax___icode_generation
, 230);
1501 stack_frame_head
= fra
.me
.prev
;
1504 static const char LOCATE_syntax___icode_generation___MMReadImplementationMethod___inner_generate_iroutine
[] = "icode_generation::MMReadImplementationMethod::(icode_generation::MMSrcMethod::inner_generate_iroutine)";
1505 void syntax___icode_generation___MMReadImplementationMethod___inner_generate_iroutine(val_t p0
, val_t p1
){
1506 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1509 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1510 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1512 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMReadImplementationMethod___inner_generate_iroutine
;
1513 fra
.me
.has_broke
= 0;
1514 fra
.me
.REG_size
= 3;
1515 fra
.me
.nitni_local_ref_head
= NULL
;
1516 fra
.me
.REG
[0] = NIT_NULL
;
1517 fra
.me
.REG
[1] = NIT_NULL
;
1518 fra
.me
.REG
[2] = NIT_NULL
;
1521 /* syntax/icode_generation.nit:237 */
1522 fra
.me
.REG
[0] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1523 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1524 if (UNTAG_Bool(REGB0
)) {
1525 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 237);
1527 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1528 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1529 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1530 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1531 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___add_attr_read(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
1532 /* syntax/icode_generation.nit:238 */
1533 CALL_icode___icode_builder___ICodeBuilder___add_return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1534 stack_frame_head
= fra
.me
.prev
;
1537 static const char LOCATE_syntax___icode_generation___MMWriteImplementationMethod___inner_generate_iroutine
[] = "icode_generation::MMWriteImplementationMethod::(icode_generation::MMSrcMethod::inner_generate_iroutine)";
1538 void syntax___icode_generation___MMWriteImplementationMethod___inner_generate_iroutine(val_t p0
, val_t p1
){
1539 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1542 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1543 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1545 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMWriteImplementationMethod___inner_generate_iroutine
;
1546 fra
.me
.has_broke
= 0;
1547 fra
.me
.REG_size
= 4;
1548 fra
.me
.nitni_local_ref_head
= NULL
;
1549 fra
.me
.REG
[0] = NIT_NULL
;
1550 fra
.me
.REG
[1] = NIT_NULL
;
1551 fra
.me
.REG
[2] = NIT_NULL
;
1552 fra
.me
.REG
[3] = NIT_NULL
;
1555 /* syntax/icode_generation.nit:245 */
1556 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1557 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1558 /* syntax/icode_generation.nit:246 */
1559 fra
.me
.REG
[0] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1560 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1561 if (UNTAG_Bool(REGB0
)) {
1562 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 246);
1564 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1566 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
1568 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
1569 fra
.me
.REG
[2] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[2]);
1570 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1571 stack_frame_head
= fra
.me
.prev
;
1574 static const char LOCATE_syntax___icode_generation___MMMethSrcMethod___inner_generate_iroutine
[] = "icode_generation::MMMethSrcMethod::(icode_generation::MMSrcMethod::inner_generate_iroutine)";
1575 void syntax___icode_generation___MMMethSrcMethod___inner_generate_iroutine(val_t p0
, val_t p1
){
1576 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1578 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1579 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1581 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMMethSrcMethod___inner_generate_iroutine
;
1582 fra
.me
.has_broke
= 0;
1583 fra
.me
.REG_size
= 2;
1584 fra
.me
.nitni_local_ref_head
= NULL
;
1585 fra
.me
.REG
[0] = NIT_NULL
;
1586 fra
.me
.REG
[1] = NIT_NULL
;
1589 /* syntax/icode_generation.nit:253 */
1590 fra
.me
.REG
[1] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1591 fra
.me
.REG
[0] = CALL_syntax___syntax_base___MMLocalProperty___node(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1592 CALL_parser___parser_nodes___Visitor___enter_visit(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1593 stack_frame_head
= fra
.me
.prev
;
1596 static const char LOCATE_syntax___icode_generation___MMImplicitInit___inner_generate_iroutine
[] = "icode_generation::MMImplicitInit::(icode_generation::MMSrcMethod::inner_generate_iroutine)";
1597 void syntax___icode_generation___MMImplicitInit___inner_generate_iroutine(val_t p0
, val_t p1
){
1598 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
1607 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1608 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1610 fra
.me
.meth
= LOCATE_syntax___icode_generation___MMImplicitInit___inner_generate_iroutine
;
1611 fra
.me
.has_broke
= 0;
1612 fra
.me
.REG_size
= 10;
1613 fra
.me
.nitni_local_ref_head
= NULL
;
1614 fra
.me
.REG
[0] = NIT_NULL
;
1615 fra
.me
.REG
[1] = NIT_NULL
;
1616 fra
.me
.REG
[2] = NIT_NULL
;
1617 fra
.me
.REG
[3] = NIT_NULL
;
1618 fra
.me
.REG
[4] = NIT_NULL
;
1619 fra
.me
.REG
[5] = NIT_NULL
;
1620 fra
.me
.REG
[6] = NIT_NULL
;
1621 fra
.me
.REG
[7] = NIT_NULL
;
1622 fra
.me
.REG
[8] = NIT_NULL
;
1623 fra
.me
.REG
[9] = NIT_NULL
;
1626 /* syntax/icode_generation.nit:260 */
1627 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1628 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1629 /* syntax/icode_generation.nit:261 */
1630 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1631 fra
.me
.REG
[3] = CALL_syntax___syntax_base___MMImplicitInit___unassigned_attributes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1632 /* ../lib/standard/collection/array.nit:24 */
1633 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
1634 if (UNTAG_Bool(REGB1
)) {
1636 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1638 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
1639 /* ../lib/standard/kernel.nit:247 */
1640 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
1641 /* syntax/icode_generation.nit:262 */
1642 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1643 /* syntax/icode_generation.nit:263 */
1644 fra
.me
.REG
[4] = CALL_syntax___syntax_base___MMImplicitInit___super_inits(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1645 /* ../lib/standard/collection/array.nit:270 */
1647 /* ../lib/standard/collection/array.nit:271 */
1648 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1649 if (UNTAG_Bool(REGB2
)) {
1651 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 271);
1653 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1654 /* ../lib/standard/collection/array.nit:272 */
1655 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
1656 /* ../lib/standard/collection/array.nit:273 */
1658 /* ../lib/standard/collection/array.nit:24 */
1659 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1660 if (UNTAG_Bool(REGB2
)) {
1662 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1664 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1665 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1666 if (UNTAG_Bool(REGB3
)) {
1668 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1670 /* ../lib/standard/kernel.nit:242 */
1671 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB2
));
1672 /* ../lib/standard/collection/array.nit:273 */
1673 if (UNTAG_Bool(REGB2
)) {
1674 /* ../lib/standard/collection/array.nit:274 */
1675 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1676 if (UNTAG_Bool(REGB2
)) {
1677 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 274);
1679 /* ../lib/standard/collection/array.nit:725 */
1680 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
1681 /* syntax/icode_generation.nit:264 */
1682 REGB2
= TAG_Bool(VAL_ISA(fra
.me
.REG
[6], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
1683 if (UNTAG_Bool(REGB2
)) {
1685 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 264);
1687 /* syntax/icode_generation.nit:265 */
1689 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2
);
1690 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
1691 /* syntax/icode_generation.nit:266 */
1692 fra
.me
.REG
[8] = CALL_syntax___syntax_base___MMImplicitInit___super_init(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1693 REGB2
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[6],fra
.me
.REG
[8]));
1694 if (UNTAG_Bool(REGB2
)) {
1696 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[8]);
1699 if (UNTAG_Bool(REGB2
)) {
1700 /* syntax/icode_generation.nit:267 */
1701 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
1702 /* syntax/icode_generation.nit:268 */
1703 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3]);
1704 /* syntax/icode_generation.nit:269 */
1706 /* ../lib/standard/kernel.nit:399 */
1708 /* ../lib/standard/kernel.nit:404 */
1710 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
1711 if (UNTAG_Bool(REGB4
)) {
1713 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1715 /* ../lib/standard/kernel.nit:242 */
1716 REGB4
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
1717 /* ../lib/standard/kernel.nit:404 */
1718 if (UNTAG_Bool(REGB4
)) {
1719 /* syntax/icode_generation.nit:269 */
1721 /* syntax/icode_generation.nit:270 */
1722 fra
.me
.REG
[9] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB4
);
1723 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
1724 /* ../lib/standard/kernel.nit:406 */
1726 /* ../lib/standard/kernel.nit:245 */
1727 REGB4
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB4
));
1728 /* ../lib/standard/kernel.nit:406 */
1731 /* ../lib/standard/kernel.nit:404 */
1736 /* syntax/icode_generation.nit:272 */
1737 fra
.me
.REG
[8] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[6], fra
.me
.REG
[8]);
1738 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[8]);
1740 /* syntax/icode_generation.nit:274 */
1741 fra
.me
.REG
[7] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[6], fra
.me
.REG
[7]);
1742 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
1744 /* ../lib/standard/collection/array.nit:275 */
1746 /* ../lib/standard/kernel.nit:245 */
1747 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
1748 /* ../lib/standard/collection/array.nit:275 */
1751 /* ../lib/standard/collection/array.nit:273 */
1756 /* syntax/icode_generation.nit:277 */
1757 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1758 /* ../lib/standard/kernel.nit:399 */
1760 /* ../lib/standard/kernel.nit:404 */
1762 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
1763 if (UNTAG_Bool(REGB3
)) {
1765 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1767 /* ../lib/standard/kernel.nit:242 */
1768 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
1769 /* ../lib/standard/kernel.nit:404 */
1770 if (UNTAG_Bool(REGB3
)) {
1771 /* syntax/icode_generation.nit:277 */
1773 /* syntax/icode_generation.nit:278 */
1774 fra
.me
.REG
[5] = CALL_syntax___syntax_base___MMImplicitInit___unassigned_attributes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1775 /* ../lib/standard/kernel.nit:247 */
1776 REGB4
= TAG_Int(UNTAG_Int(REGB3
)-UNTAG_Int(REGB1
));
1777 /* ../lib/standard/collection/array.nit:281 */
1779 REGB6
= TAG_Bool(VAL_ISA(REGB5
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4
), VTID_standard___kernel___Comparable___OTHER(REGB4
))) /*cast OTHER*/;
1780 if (UNTAG_Bool(REGB6
)) {
1782 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1784 /* ../lib/standard/kernel.nit:243 */
1785 REGB5
= TAG_Bool(UNTAG_Int(REGB4
)>=UNTAG_Int(REGB5
));
1786 /* ../lib/standard/collection/array.nit:281 */
1787 if (UNTAG_Bool(REGB5
)) {
1788 REGB5
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
1789 if (UNTAG_Bool(REGB5
)) {
1791 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 281);
1793 REGB5
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
1794 REGB6
= TAG_Bool(VAL_ISA(REGB5
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4
), VTID_standard___kernel___Comparable___OTHER(REGB4
))) /*cast OTHER*/;
1795 if (UNTAG_Bool(REGB6
)) {
1797 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1799 /* ../lib/standard/kernel.nit:242 */
1800 REGB5
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB5
));
1802 /* ../lib/standard/collection/array.nit:281 */
1803 REGB6
= TAG_Bool(0);
1806 if (UNTAG_Bool(REGB5
)) {
1808 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 281);
1810 /* ../lib/standard/collection/array.nit:282 */
1811 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
1812 REGB5
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1813 if (UNTAG_Bool(REGB5
)) {
1814 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 282);
1816 /* ../lib/standard/collection/array.nit:725 */
1817 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB4
)];
1818 /* ../lib/standard/collection/array.nit:282 */
1821 /* syntax/icode_generation.nit:279 */
1822 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB3
);
1823 fra
.me
.REG
[4] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra
.me
.REG
[5], fra
.me
.REG
[3], fra
.me
.REG
[4]);
1824 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
1825 /* ../lib/standard/kernel.nit:406 */
1827 /* ../lib/standard/kernel.nit:245 */
1828 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1829 /* ../lib/standard/kernel.nit:406 */
1832 /* ../lib/standard/kernel.nit:404 */
1837 stack_frame_head
= fra
.me
.prev
;
1840 static const char LOCATE_syntax___icode_generation___A2IVisitor___icode_ctx__eq
[] = "icode_generation::A2IVisitor::icode_ctx=";
1841 void syntax___icode_generation___A2IVisitor___icode_ctx__eq(val_t p0
, val_t p1
){
1842 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1844 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1845 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1847 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IVisitor___icode_ctx__eq
;
1848 fra
.me
.has_broke
= 0;
1849 fra
.me
.REG_size
= 2;
1850 fra
.me
.nitni_local_ref_head
= NULL
;
1851 fra
.me
.REG
[0] = NIT_NULL
;
1852 fra
.me
.REG
[1] = NIT_NULL
;
1855 /* syntax/icode_generation.nit:286 */
1856 ATTR_syntax___icode_generation___A2IVisitor____icode_ctx(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1857 stack_frame_head
= fra
.me
.prev
;
1860 static const char LOCATE_syntax___icode_generation___A2IVisitor___icode_ctx
[] = "icode_generation::A2IVisitor::icode_ctx";
1861 val_t
syntax___icode_generation___A2IVisitor___icode_ctx(val_t p0
){
1862 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1865 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1866 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1868 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IVisitor___icode_ctx
;
1869 fra
.me
.has_broke
= 0;
1870 fra
.me
.REG_size
= 2;
1871 fra
.me
.nitni_local_ref_head
= NULL
;
1872 fra
.me
.REG
[0] = NIT_NULL
;
1873 fra
.me
.REG
[1] = NIT_NULL
;
1875 /* syntax/icode_generation.nit:287 */
1876 fra
.me
.REG
[1] = fra
.me
.REG
[0];
1877 fra
.me
.REG
[1] = ATTR_syntax___icode_generation___A2IVisitor____icode_ctx(fra
.me
.REG
[1]);
1878 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
1879 if (UNTAG_Bool(REGB0
)) {
1881 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 287);
1885 stack_frame_head
= fra
.me
.prev
;
1886 return fra
.me
.REG
[1];
1888 static const char LOCATE_syntax___icode_generation___A2IVisitor___visit
[] = "icode_generation::A2IVisitor::(parser_nodes::Visitor::visit)";
1889 void syntax___icode_generation___A2IVisitor___visit(val_t p0
, val_t p1
){
1890 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1892 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1893 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1895 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IVisitor___visit
;
1896 fra
.me
.has_broke
= 0;
1897 fra
.me
.REG_size
= 2;
1898 fra
.me
.nitni_local_ref_head
= NULL
;
1899 fra
.me
.REG
[0] = NIT_NULL
;
1900 fra
.me
.REG
[1] = NIT_NULL
;
1903 /* syntax/icode_generation.nit:288 */
1904 CALL_syntax___icode_generation___ANode___accept_icode_generation(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1905 stack_frame_head
= fra
.me
.prev
;
1908 static const char LOCATE_syntax___icode_generation___A2IVisitor___init
[] = "icode_generation::A2IVisitor::init";
1909 void syntax___icode_generation___A2IVisitor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
1910 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_syntax___icode_generation___A2IVisitor
].i
;
1911 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1913 if (init_table
[itpos1
]) return;
1914 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1915 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1917 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IVisitor___init
;
1918 fra
.me
.has_broke
= 0;
1919 fra
.me
.REG_size
= 3;
1920 fra
.me
.nitni_local_ref_head
= NULL
;
1921 fra
.me
.REG
[0] = NIT_NULL
;
1922 fra
.me
.REG
[1] = NIT_NULL
;
1923 fra
.me
.REG
[2] = NIT_NULL
;
1927 /* syntax/icode_generation.nit:289 */
1928 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], init_table
);
1929 stack_frame_head
= fra
.me
.prev
;
1930 init_table
[itpos1
] = 1;
1933 static const char LOCATE_syntax___icode_generation___ANode___accept_icode_generation
[] = "icode_generation::ANode::accept_icode_generation";
1934 void syntax___icode_generation___ANode___accept_icode_generation(val_t p0
, val_t p1
){
1935 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1937 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1938 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1940 fra
.me
.meth
= LOCATE_syntax___icode_generation___ANode___accept_icode_generation
;
1941 fra
.me
.has_broke
= 0;
1942 fra
.me
.REG_size
= 2;
1943 fra
.me
.nitni_local_ref_head
= NULL
;
1944 fra
.me
.REG
[0] = NIT_NULL
;
1945 fra
.me
.REG
[1] = NIT_NULL
;
1948 /* syntax/icode_generation.nit:296 */
1949 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1950 stack_frame_head
= fra
.me
.prev
;
1953 static const char LOCATE_syntax___icode_generation___AAttrPropdef___accept_icode_generation
[] = "icode_generation::AAttrPropdef::(icode_generation::ANode::accept_icode_generation)";
1954 void syntax___icode_generation___AAttrPropdef___accept_icode_generation(val_t p0
, val_t p1
){
1955 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
1959 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1960 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1962 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAttrPropdef___accept_icode_generation
;
1963 fra
.me
.has_broke
= 0;
1964 fra
.me
.REG_size
= 6;
1965 fra
.me
.nitni_local_ref_head
= NULL
;
1966 fra
.me
.REG
[0] = NIT_NULL
;
1967 fra
.me
.REG
[1] = NIT_NULL
;
1968 fra
.me
.REG
[2] = NIT_NULL
;
1969 fra
.me
.REG
[3] = NIT_NULL
;
1970 fra
.me
.REG
[4] = NIT_NULL
;
1971 fra
.me
.REG
[5] = NIT_NULL
;
1974 /* syntax/icode_generation.nit:300 */
1975 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1976 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1977 /* syntax/icode_generation.nit:302 */
1978 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IVisitor___icode_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1979 /* syntax/icode_generation.nit:303 */
1980 fra
.me
.REG
[4] = CALL_syntax___syntax_base___APropdef___self_var(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1981 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1982 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1983 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1984 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1985 fra
.me
.REG
[5] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1986 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
1987 /* syntax/icode_generation.nit:304 */
1988 CALL_SUPER_syntax___icode_generation___AAttrPropdef___accept_icode_generation(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1989 /* syntax/icode_generation.nit:305 */
1990 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1991 /* syntax/icode_generation.nit:306 */
1992 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1993 if (UNTAG_Bool(REGB0
)) {
1995 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1996 if (UNTAG_Bool(REGB1
)) {
1997 REGB1
= TAG_Bool(0);
2000 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2004 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2005 if (UNTAG_Bool(REGB0
)) {
2006 /* syntax/icode_generation.nit:307 */
2007 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2008 fra
.me
.REG
[1] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2009 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_icode___icode_base___IRegister
, ID_icode___icode_base___IRegister
)) /*cast IRegister*/;
2010 if (UNTAG_Bool(REGB0
)) {
2012 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 307);
2014 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
2015 fra
.me
.REG
[2] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2016 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
2018 stack_frame_head
= fra
.me
.prev
;
2021 static const char LOCATE_syntax___icode_generation___AMethPropdef___accept_icode_generation
[] = "icode_generation::AMethPropdef::(icode_generation::ANode::accept_icode_generation)";
2022 void syntax___icode_generation___AMethPropdef___accept_icode_generation(val_t p0
, val_t p1
){
2023 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2025 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2026 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2028 fra
.me
.meth
= LOCATE_syntax___icode_generation___AMethPropdef___accept_icode_generation
;
2029 fra
.me
.has_broke
= 0;
2030 fra
.me
.REG_size
= 4;
2031 fra
.me
.nitni_local_ref_head
= NULL
;
2032 fra
.me
.REG
[0] = NIT_NULL
;
2033 fra
.me
.REG
[1] = NIT_NULL
;
2034 fra
.me
.REG
[2] = NIT_NULL
;
2035 fra
.me
.REG
[3] = NIT_NULL
;
2038 /* syntax/icode_generation.nit:313 */
2039 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2040 fra
.me
.REG
[3] = fra
.me
.REG
[1];
2041 /* syntax/icode_generation.nit:315 */
2042 CALL_SUPER_syntax___icode_generation___AMethPropdef___accept_icode_generation(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2043 /* syntax/icode_generation.nit:316 */
2044 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IVisitor___icode_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2045 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2046 CALL_syntax___icode_generation___AMethPropdef___fill_iroutine(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
2047 stack_frame_head
= fra
.me
.prev
;
2050 static const char LOCATE_syntax___icode_generation___AMethPropdef___fill_iroutine
[] = "icode_generation::AMethPropdef::fill_iroutine";
2051 void syntax___icode_generation___AMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2052 struct {struct stack_frame_t me
;} fra
;
2054 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2055 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2057 fra
.me
.meth
= LOCATE_syntax___icode_generation___AMethPropdef___fill_iroutine
;
2058 fra
.me
.has_broke
= 0;
2059 fra
.me
.REG_size
= 0;
2060 fra
.me
.nitni_local_ref_head
= NULL
;
2061 /* syntax/icode_generation.nit:319 */
2062 nit_abort("Deferred method called", NULL
, LOCATE_syntax___icode_generation
, 319);
2063 stack_frame_head
= fra
.me
.prev
;
2066 static const char LOCATE_syntax___icode_generation___ASignature___fill_iroutine_parameters
[] = "icode_generation::ASignature::fill_iroutine_parameters";
2067 void syntax___icode_generation___ASignature___fill_iroutine_parameters(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
2068 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
2074 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2075 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2077 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASignature___fill_iroutine_parameters
;
2078 fra
.me
.has_broke
= 0;
2079 fra
.me
.REG_size
= 7;
2080 fra
.me
.nitni_local_ref_head
= NULL
;
2081 fra
.me
.REG
[0] = NIT_NULL
;
2082 fra
.me
.REG
[1] = NIT_NULL
;
2083 fra
.me
.REG
[2] = NIT_NULL
;
2084 fra
.me
.REG
[3] = NIT_NULL
;
2085 fra
.me
.REG
[4] = NIT_NULL
;
2086 fra
.me
.REG
[5] = NIT_NULL
;
2087 fra
.me
.REG
[6] = NIT_NULL
;
2093 /* syntax/icode_generation.nit:324 */
2094 fra
.me
.REG
[5] = fra
.me
.REG
[0];
2095 /* syntax/icode_generation.nit:326 */
2096 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ASignature___n_params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2097 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[6])(fra
.me
.REG
[6], (&(fra
.me
)), ((fun_t
)OC_syntax___icode_generation___ASignature___fill_iroutine_parameters_1
));
2098 /* syntax/icode_generation.nit:335 */
2100 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASignature___n_closure_decls(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2101 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2102 /* ../lib/standard/kernel.nit:404 */
2104 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2105 if (UNTAG_Bool(REGB2
)) {
2107 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2109 /* ../lib/standard/kernel.nit:242 */
2110 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
2111 /* ../lib/standard/kernel.nit:404 */
2112 if (UNTAG_Bool(REGB2
)) {
2113 /* syntax/icode_generation.nit:335 */
2115 /* syntax/icode_generation.nit:336 */
2116 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASignature___n_closure_decls(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2117 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB2
);
2118 /* syntax/icode_generation.nit:337 */
2119 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___closurevariables(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2120 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2121 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2122 if (UNTAG_Bool(REGB3
)) {
2123 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 337);
2125 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB2
);
2126 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[2]);
2127 /* ../lib/standard/kernel.nit:406 */
2129 /* ../lib/standard/kernel.nit:245 */
2130 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
2131 /* ../lib/standard/kernel.nit:406 */
2134 /* ../lib/standard/kernel.nit:404 */
2139 stack_frame_head
= fra
.me
.prev
;
2142 void OC_syntax___icode_generation___ASignature___fill_iroutine_parameters_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
2143 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2147 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2148 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2150 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASignature___fill_iroutine_parameters
;
2151 fra
.me
.has_broke
= 0;
2152 fra
.me
.REG_size
= 4;
2153 fra
.me
.nitni_local_ref_head
= NULL
;
2154 fra
.me
.REG
[0] = NIT_NULL
;
2155 fra
.me
.REG
[1] = NIT_NULL
;
2156 fra
.me
.REG
[2] = NIT_NULL
;
2157 fra
.me
.REG
[3] = NIT_NULL
;
2158 fra
.me
.closure_ctx
= closctx_param
;
2159 fra
.me
.closure_funs
= CREG
;
2161 CREG
[0] = clos_fun0
;
2162 /* syntax/icode_generation.nit:327 */
2163 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AParam___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2164 fra
.me
.REG
[1] = CALL_syntax___icode_generation___A2IContext___variable(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[1]);
2165 /* syntax/icode_generation.nit:328 */
2166 REGB0
= CALL_syntax___syntax_base___AParam___position(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2167 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature_____bra(closctx
->REG
[2])(closctx
->REG
[2], REGB0
);
2168 /* syntax/icode_generation.nit:329 */
2169 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AParam___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2170 fra
.me
.REG
[3] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2171 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_metamodel___static_type___MMType
, ID_metamodel___static_type___MMType
)) /*cast MMType*/;
2172 if (UNTAG_Bool(REGB0
)) {
2174 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 329);
2176 /* syntax/icode_generation.nit:330 */
2177 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2178 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2179 if (UNTAG_Bool(REGB0
)) {
2180 /* syntax/icode_generation.nit:331 */
2181 REGB0
= CALL_syntax___syntax_base___AParam___position(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2182 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(closctx
->REG
[3])(closctx
->REG
[3], REGB0
);
2183 CALL_icode___icode_builder___ICodeBuilder___add_type_cast(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
2185 /* syntax/icode_generation.nit:333 */
2186 REGB0
= CALL_syntax___syntax_base___AParam___position(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2187 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(closctx
->REG
[3])(closctx
->REG
[3], REGB0
);
2188 fra
.me
.REG
[0] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2189 CALL_icode___icode_builder___ICodeBuilder___stmt(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
2190 stack_frame_head
= fra
.me
.prev
;
2193 static const char LOCATE_syntax___icode_generation___AClosureDecl___accept_icode_generation
[] = "icode_generation::AClosureDecl::(icode_generation::ANode::accept_icode_generation)";
2194 void syntax___icode_generation___AClosureDecl___accept_icode_generation(val_t p0
, val_t p1
){
2195 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
2199 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2200 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2202 fra
.me
.meth
= LOCATE_syntax___icode_generation___AClosureDecl___accept_icode_generation
;
2203 fra
.me
.has_broke
= 0;
2204 fra
.me
.REG_size
= 8;
2205 fra
.me
.nitni_local_ref_head
= NULL
;
2206 fra
.me
.REG
[0] = NIT_NULL
;
2207 fra
.me
.REG
[1] = NIT_NULL
;
2208 fra
.me
.REG
[2] = NIT_NULL
;
2209 fra
.me
.REG
[3] = NIT_NULL
;
2210 fra
.me
.REG
[4] = NIT_NULL
;
2211 fra
.me
.REG
[5] = NIT_NULL
;
2212 fra
.me
.REG
[6] = NIT_NULL
;
2213 fra
.me
.REG
[7] = NIT_NULL
;
2216 /* syntax/icode_generation.nit:343 */
2217 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2218 /* syntax/icode_generation.nit:345 */
2219 fra
.me
.REG
[1] = CALL_syntax___icode_generation___A2IVisitor___icode_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2220 /* syntax/icode_generation.nit:346 */
2221 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2222 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2223 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2224 fra
.me
.REG
[3] = CALL_icode___icode_builder___MMSignature___generate_empty_iclosuredef(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
2225 /* syntax/icode_generation.nit:347 */
2226 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2227 /* syntax/icode_generation.nit:348 */
2228 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2229 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
2230 /* syntax/icode_generation.nit:349 */
2231 fra
.me
.REG
[5] = CALL_syntax___typing___AClosureDecl___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2232 fra
.me
.REG
[6] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2233 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2234 if (UNTAG_Bool(REGB0
)) {
2235 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 349);
2237 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2238 /* syntax/icode_generation.nit:350 */
2239 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDecl___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2240 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2241 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2242 if (UNTAG_Bool(REGB0
)) {
2243 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 350);
2245 CALL_syntax___icode_generation___EscapableBlock___continue_value__eq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
2246 /* syntax/icode_generation.nit:351 */
2247 fra
.me
.REG
[5] = CALL_syntax___typing___AClosureDecl___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2248 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___return_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2249 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2250 if (UNTAG_Bool(REGB0
)) {
2251 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 351);
2253 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2254 /* syntax/icode_generation.nit:352 */
2255 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDecl___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2256 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2257 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2258 if (UNTAG_Bool(REGB0
)) {
2259 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 352);
2261 CALL_syntax___icode_generation___EscapableBlock___break_value__eq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
2262 /* syntax/icode_generation.nit:353 */
2263 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AClosureDecl___n_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2264 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2265 fra
.me
.REG
[6] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2266 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2267 fra
.me
.REG
[7] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2268 CALL_syntax___icode_generation___ASignature___fill_iroutine_parameters(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1], fra
.me
.REG
[6], fra
.me
.REG
[7], NIT_NULL
);
2269 /* syntax/icode_generation.nit:355 */
2270 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2271 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2272 if (UNTAG_Bool(REGB0
)) {
2274 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2275 if (UNTAG_Bool(REGB1
)) {
2276 REGB1
= TAG_Bool(0);
2279 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
2283 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2284 if (UNTAG_Bool(REGB0
)) {
2285 /* syntax/icode_generation.nit:356 */
2286 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2287 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
2288 /* syntax/icode_generation.nit:357 */
2289 fra
.me
.REG
[7] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2290 fra
.me
.REG
[7] = CALL_icode___icode_base___IRoutine___closure_decls(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2291 REGB0
= CALL_syntax___syntax_base___AClosureDecl___position(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2292 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2293 if (UNTAG_Bool(REGB1
)) {
2294 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 357);
2296 fra
.me
.REG
[7] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB0
);
2297 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2298 if (UNTAG_Bool(REGB0
)) {
2299 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 357);
2301 CALL_icode___icode_base___IClosureDecl___default__eq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
2302 /* syntax/icode_generation.nit:360 */
2303 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2304 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2305 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2306 if (UNTAG_Bool(REGB0
)) {
2307 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2308 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2309 if (UNTAG_Bool(REGB0
)) {
2311 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2312 if (UNTAG_Bool(REGB1
)) {
2313 REGB1
= TAG_Bool(0);
2316 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2321 REGB1
= TAG_Bool(0);
2324 if (UNTAG_Bool(REGB0
)) {
2325 /* syntax/icode_generation.nit:361 */
2326 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___return_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2327 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
2328 if (UNTAG_Bool(REGB0
)) {
2330 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 361);
2332 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2335 /* syntax/icode_generation.nit:364 */
2336 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2337 stack_frame_head
= fra
.me
.prev
;
2340 static const char LOCATE_syntax___icode_generation___AConcreteMethPropdef___fill_iroutine
[] = "icode_generation::AConcreteMethPropdef::(icode_generation::AMethPropdef::fill_iroutine)";
2341 void syntax___icode_generation___AConcreteMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2342 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
2347 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2348 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2350 fra
.me
.meth
= LOCATE_syntax___icode_generation___AConcreteMethPropdef___fill_iroutine
;
2351 fra
.me
.has_broke
= 0;
2352 fra
.me
.REG_size
= 6;
2353 fra
.me
.nitni_local_ref_head
= NULL
;
2354 fra
.me
.REG
[0] = NIT_NULL
;
2355 fra
.me
.REG
[1] = NIT_NULL
;
2356 fra
.me
.REG
[2] = NIT_NULL
;
2357 fra
.me
.REG
[3] = NIT_NULL
;
2358 fra
.me
.REG
[4] = NIT_NULL
;
2359 fra
.me
.REG
[5] = NIT_NULL
;
2363 /* syntax/icode_generation.nit:371 */
2364 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2365 fra
.me
.REG
[3] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2366 fra
.me
.REG
[3] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2367 /* syntax/icode_generation.nit:372 */
2368 fra
.me
.REG
[4] = CALL_syntax___syntax_base___APropdef___self_var(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2369 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2370 /* syntax/icode_generation.nit:373 */
2372 /* ../lib/standard/collection/array.nit:279 */
2373 fra
.me
.REG
[5] = fra
.me
.REG
[3];
2374 /* ../lib/standard/collection/array.nit:281 */
2376 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2377 if (UNTAG_Bool(REGB2
)) {
2379 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2381 /* ../lib/standard/kernel.nit:243 */
2382 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
2383 /* ../lib/standard/collection/array.nit:281 */
2384 if (UNTAG_Bool(REGB1
)) {
2385 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
2386 if (UNTAG_Bool(REGB1
)) {
2388 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 281);
2390 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
2391 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2392 if (UNTAG_Bool(REGB2
)) {
2394 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2396 /* ../lib/standard/kernel.nit:242 */
2397 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
2399 /* ../lib/standard/collection/array.nit:281 */
2400 REGB2
= TAG_Bool(0);
2403 if (UNTAG_Bool(REGB1
)) {
2405 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 281);
2407 /* ../lib/standard/collection/array.nit:282 */
2408 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
2409 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2410 if (UNTAG_Bool(REGB1
)) {
2411 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 282);
2413 /* ../lib/standard/collection/array.nit:725 */
2414 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
2415 /* ../lib/standard/collection/array.nit:282 */
2418 /* syntax/icode_generation.nit:373 */
2419 fra
.me
.REG
[5] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2420 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
2421 /* syntax/icode_generation.nit:374 */
2422 CALL_syntax___icode_generation___A2IContext___selfreg__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2423 /* syntax/icode_generation.nit:375 */
2424 CALL_standard___collection___abstract_collection___Sequence___shift(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2425 /* syntax/icode_generation.nit:377 */
2426 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2427 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2428 /* syntax/icode_generation.nit:378 */
2429 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2430 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2431 if (UNTAG_Bool(REGB0
)) {
2432 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 378);
2434 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2435 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
2436 /* syntax/icode_generation.nit:379 */
2437 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2438 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2439 if (UNTAG_Bool(REGB0
)) {
2441 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2442 if (UNTAG_Bool(REGB1
)) {
2443 REGB1
= TAG_Bool(0);
2446 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
2450 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2451 if (UNTAG_Bool(REGB0
)) {
2452 /* syntax/icode_generation.nit:380 */
2453 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2454 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2455 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___closure_decls(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2456 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2457 if (UNTAG_Bool(REGB0
)) {
2458 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 380);
2460 CALL_syntax___icode_generation___ASignature___fill_iroutine_parameters(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[5]);
2462 /* syntax/icode_generation.nit:383 */
2463 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_parser___parser_nodes___AConcreteInitPropdef
, ID_parser___parser_nodes___AConcreteInitPropdef
)) /*cast AConcreteInitPropdef*/;
2464 if (UNTAG_Bool(REGB0
)) {
2465 /* syntax/icode_generation.nit:384 */
2466 CALL_syntax___icode_generation___A2IContext___invoke_super_init_calls_after(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2468 /* syntax/icode_generation.nit:387 */
2469 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AConcreteMethPropdef___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2470 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2471 if (UNTAG_Bool(REGB0
)) {
2473 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2474 if (UNTAG_Bool(REGB1
)) {
2475 REGB1
= TAG_Bool(0);
2478 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
2482 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2483 if (UNTAG_Bool(REGB0
)) {
2484 /* syntax/icode_generation.nit:388 */
2485 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AConcreteMethPropdef___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2486 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2488 /* syntax/icode_generation.nit:390 */
2489 CALL_syntax___icode_generation___A2IContext___selfreg__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2490 stack_frame_head
= fra
.me
.prev
;
2493 static const char LOCATE_syntax___icode_generation___AExternPropdef___fill_iroutine
[] = "icode_generation::AExternPropdef::(icode_generation::AMethPropdef::fill_iroutine)";
2494 void syntax___icode_generation___AExternPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2495 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2498 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2499 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2501 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExternPropdef___fill_iroutine
;
2502 fra
.me
.has_broke
= 0;
2503 fra
.me
.REG_size
= 3;
2504 fra
.me
.nitni_local_ref_head
= NULL
;
2505 fra
.me
.REG
[0] = NIT_NULL
;
2506 fra
.me
.REG
[1] = NIT_NULL
;
2507 fra
.me
.REG
[2] = NIT_NULL
;
2511 /* syntax/icode_generation.nit:398 */
2512 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_syntax___syntax_base___MMMethSrcMethod
, ID_syntax___syntax_base___MMMethSrcMethod
)) /*cast MMMethSrcMethod*/;
2513 if (UNTAG_Bool(REGB0
)) {
2515 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 398);
2517 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMMethod___explicit_imports(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2518 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[2])(fra
.me
.REG
[2], (&(fra
.me
)), ((fun_t
)OC_syntax___icode_generation___AExternPropdef___fill_iroutine_1
));
2519 stack_frame_head
= fra
.me
.prev
;
2522 void OC_syntax___icode_generation___AExternPropdef___fill_iroutine_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
2523 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2527 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2528 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2530 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExternPropdef___fill_iroutine
;
2531 fra
.me
.has_broke
= 0;
2532 fra
.me
.REG_size
= 3;
2533 fra
.me
.nitni_local_ref_head
= NULL
;
2534 fra
.me
.REG
[0] = NIT_NULL
;
2535 fra
.me
.REG
[1] = NIT_NULL
;
2536 fra
.me
.REG
[2] = NIT_NULL
;
2537 fra
.me
.closure_ctx
= closctx_param
;
2538 fra
.me
.closure_funs
= CREG
;
2540 CREG
[0] = clos_fun0
;
2541 /* syntax/icode_generation.nit:400 */
2542 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2543 /* syntax/icode_generation.nit:402 */
2544 REGB0
= CALL_syntax___syntax_base___MMLocalProperty___is_init(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2545 if (UNTAG_Bool(REGB0
)) {
2546 /* syntax/icode_generation.nit:403 */
2547 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2548 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2549 if (UNTAG_Bool(REGB0
)) {
2550 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 403);
2552 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2553 fra
.me
.REG
[2] = NEW_List_standard___collection___list___List___init();
2554 fra
.me
.REG
[2] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
2556 /* syntax/icode_generation.nit:405 */
2557 fra
.me
.REG
[1] = NEW_List_standard___collection___list___List___init();
2558 fra
.me
.REG
[1] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2559 fra
.me
.REG
[2] = fra
.me
.REG
[1];
2561 /* syntax/icode_generation.nit:407 */
2562 REGB0
= TAG_Bool(1);
2563 CALL_icode___icode_base___IAbsCall___is_explicit_from_extern__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
2564 /* syntax/icode_generation.nit:408 */
2565 CALL_icode___icode_builder___ICodeBuilder___stmt(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[2]);
2566 stack_frame_head
= fra
.me
.prev
;
2569 static const char LOCATE_syntax___icode_generation___AExternInitPropdef___fill_iroutine
[] = "icode_generation::AExternInitPropdef::(icode_generation::AMethPropdef::fill_iroutine)";
2570 void syntax___icode_generation___AExternInitPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2571 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
2576 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2577 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2579 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExternInitPropdef___fill_iroutine
;
2580 fra
.me
.has_broke
= 0;
2581 fra
.me
.REG_size
= 8;
2582 fra
.me
.nitni_local_ref_head
= NULL
;
2583 fra
.me
.REG
[0] = NIT_NULL
;
2584 fra
.me
.REG
[1] = NIT_NULL
;
2585 fra
.me
.REG
[2] = NIT_NULL
;
2586 fra
.me
.REG
[3] = NIT_NULL
;
2587 fra
.me
.REG
[4] = NIT_NULL
;
2588 fra
.me
.REG
[5] = NIT_NULL
;
2589 fra
.me
.REG
[6] = NIT_NULL
;
2590 fra
.me
.REG
[7] = NIT_NULL
;
2594 /* syntax/icode_generation.nit:414 */
2595 fra
.me
.REG
[3] = fra
.me
.REG
[1];
2596 fra
.me
.REG
[4] = fra
.me
.REG
[2];
2597 /* syntax/icode_generation.nit:416 */
2598 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2599 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2600 /* syntax/icode_generation.nit:417 */
2601 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2602 /* syntax/icode_generation.nit:418 */
2603 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2604 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2605 if (UNTAG_Bool(REGB1
)) {
2606 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 418);
2608 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2610 /* ../lib/standard/kernel.nit:245 */
2611 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
2612 /* syntax/icode_generation.nit:418 */
2613 REGB1
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB2
));
2614 if (UNTAG_Bool(REGB1
)) {
2616 /* ../lib/standard/kernel.nit:237 */
2617 REGB2
= TAG_Bool((REGB0
)==(REGB2
));
2618 /* syntax/icode_generation.nit:418 */
2621 if (UNTAG_Bool(REGB1
)) {
2623 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 418);
2625 /* syntax/icode_generation.nit:419 */
2626 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2627 if (UNTAG_Bool(REGB1
)) {
2628 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 419);
2630 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2631 /* syntax/icode_generation.nit:420 */
2632 fra
.me
.REG
[7] = NEW_IRegister_icode___icode_base___IRegister___init(fra
.me
.REG
[6]);
2633 fra
.me
.REG
[5] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2634 fra
.me
.REG
[6] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5], fra
.me
.REG
[6]);
2635 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7], fra
.me
.REG
[6]);
2636 /* syntax/icode_generation.nit:422 */
2637 CALL_SUPER_syntax___icode_generation___AExternInitPropdef___fill_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
2638 stack_frame_head
= fra
.me
.prev
;
2641 static const char LOCATE_syntax___icode_generation___ADeferredMethPropdef___fill_iroutine
[] = "icode_generation::ADeferredMethPropdef::(icode_generation::AMethPropdef::fill_iroutine)";
2642 void syntax___icode_generation___ADeferredMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2643 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2646 static val_t once_value_1
; /* Once value */
2647 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2648 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2650 fra
.me
.meth
= LOCATE_syntax___icode_generation___ADeferredMethPropdef___fill_iroutine
;
2651 fra
.me
.has_broke
= 0;
2652 fra
.me
.REG_size
= 3;
2653 fra
.me
.nitni_local_ref_head
= NULL
;
2654 fra
.me
.REG
[0] = NIT_NULL
;
2655 fra
.me
.REG
[1] = NIT_NULL
;
2656 fra
.me
.REG
[2] = NIT_NULL
;
2660 /* syntax/icode_generation.nit:429 */
2662 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2663 if (!once_value_1
) {
2664 fra
.me
.REG
[0] = BOX_NativeString("Deferred method called");
2665 REGB0
= TAG_Int(22);
2666 fra
.me
.REG
[0] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
2667 once_value_1
= fra
.me
.REG
[0];
2668 register_static_object(&once_value_1
);
2669 } else fra
.me
.REG
[0] = once_value_1
;
2670 fra
.me
.REG
[0] = fra
.me
.REG
[0];
2671 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2672 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2673 stack_frame_head
= fra
.me
.prev
;
2676 static const char LOCATE_syntax___icode_generation___AExternMethPropdef___fill_iroutine
[] = "icode_generation::AExternMethPropdef::(icode_generation::AMethPropdef::fill_iroutine)";
2677 void syntax___icode_generation___AExternMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2678 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
2682 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2683 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2685 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExternMethPropdef___fill_iroutine
;
2686 fra
.me
.has_broke
= 0;
2687 fra
.me
.REG_size
= 8;
2688 fra
.me
.nitni_local_ref_head
= NULL
;
2689 fra
.me
.REG
[0] = NIT_NULL
;
2690 fra
.me
.REG
[1] = NIT_NULL
;
2691 fra
.me
.REG
[2] = NIT_NULL
;
2692 fra
.me
.REG
[3] = NIT_NULL
;
2693 fra
.me
.REG
[4] = NIT_NULL
;
2694 fra
.me
.REG
[5] = NIT_NULL
;
2695 fra
.me
.REG
[6] = NIT_NULL
;
2696 fra
.me
.REG
[7] = NIT_NULL
;
2700 /* syntax/icode_generation.nit:434 */
2701 fra
.me
.REG
[3] = fra
.me
.REG
[1];
2702 fra
.me
.REG
[4] = fra
.me
.REG
[2];
2703 /* syntax/icode_generation.nit:436 */
2704 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2705 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2706 /* syntax/icode_generation.nit:437 */
2707 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2708 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2709 if (UNTAG_Bool(REGB0
)) {
2710 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 437);
2712 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2713 /* syntax/icode_generation.nit:438 */
2714 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2715 if (UNTAG_Bool(REGB0
)) {
2717 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2718 if (UNTAG_Bool(REGB1
)) {
2719 REGB1
= TAG_Bool(0);
2722 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
2726 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2727 if (UNTAG_Bool(REGB0
)) {
2728 /* syntax/icode_generation.nit:439 */
2729 fra
.me
.REG
[7] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2730 fra
.me
.REG
[6] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7], fra
.me
.REG
[6]);
2731 CALL_icode___icode_builder___ICodeBuilder___add_return_value(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
2733 /* syntax/icode_generation.nit:441 */
2734 fra
.me
.REG
[5] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2735 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
2737 /* syntax/icode_generation.nit:444 */
2738 CALL_SUPER_syntax___icode_generation___AExternMethPropdef___fill_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
2739 stack_frame_head
= fra
.me
.prev
;
2742 static const char LOCATE_syntax___icode_generation___AInternMethPropdef___fill_iroutine
[] = "icode_generation::AInternMethPropdef::(icode_generation::AMethPropdef::fill_iroutine)";
2743 void syntax___icode_generation___AInternMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2744 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2748 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2749 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2751 fra
.me
.meth
= LOCATE_syntax___icode_generation___AInternMethPropdef___fill_iroutine
;
2752 fra
.me
.has_broke
= 0;
2753 fra
.me
.REG_size
= 5;
2754 fra
.me
.nitni_local_ref_head
= NULL
;
2755 fra
.me
.REG
[0] = NIT_NULL
;
2756 fra
.me
.REG
[1] = NIT_NULL
;
2757 fra
.me
.REG
[2] = NIT_NULL
;
2758 fra
.me
.REG
[3] = NIT_NULL
;
2759 fra
.me
.REG
[4] = NIT_NULL
;
2763 /* syntax/icode_generation.nit:451 */
2764 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2765 fra
.me
.REG
[0] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2766 /* syntax/icode_generation.nit:452 */
2767 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2768 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2769 if (UNTAG_Bool(REGB0
)) {
2770 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 452);
2772 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2773 /* syntax/icode_generation.nit:453 */
2774 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2775 if (UNTAG_Bool(REGB0
)) {
2777 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2778 if (UNTAG_Bool(REGB1
)) {
2779 REGB1
= TAG_Bool(0);
2782 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2786 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2787 if (UNTAG_Bool(REGB0
)) {
2788 /* syntax/icode_generation.nit:454 */
2789 fra
.me
.REG
[4] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2790 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[3]);
2791 CALL_icode___icode_builder___ICodeBuilder___add_return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2793 /* syntax/icode_generation.nit:456 */
2794 fra
.me
.REG
[0] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2795 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2797 stack_frame_head
= fra
.me
.prev
;
2800 static const char LOCATE_syntax___icode_generation___AExpr___accept_icode_generation
[] = "icode_generation::AExpr::(icode_generation::ANode::accept_icode_generation)";
2801 void syntax___icode_generation___AExpr___accept_icode_generation(val_t p0
, val_t p1
){
2802 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2804 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2805 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2807 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExpr___accept_icode_generation
;
2808 fra
.me
.has_broke
= 0;
2809 fra
.me
.REG_size
= 2;
2810 fra
.me
.nitni_local_ref_head
= NULL
;
2811 fra
.me
.REG
[0] = NIT_NULL
;
2812 fra
.me
.REG
[1] = NIT_NULL
;
2815 stack_frame_head
= fra
.me
.prev
;
2818 static const char LOCATE_syntax___icode_generation___AExpr___generate_icode
[] = "icode_generation::AExpr::generate_icode";
2819 val_t
syntax___icode_generation___AExpr___generate_icode(val_t p0
, val_t p1
){
2820 struct {struct stack_frame_t me
;} fra
;
2822 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2823 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2825 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExpr___generate_icode
;
2826 fra
.me
.has_broke
= 0;
2827 fra
.me
.REG_size
= 0;
2828 fra
.me
.nitni_local_ref_head
= NULL
;
2829 /* syntax/icode_generation.nit:466 */
2830 nit_abort("Deferred method called", NULL
, LOCATE_syntax___icode_generation
, 466);
2831 stack_frame_head
= fra
.me
.prev
;
2834 static const char LOCATE_syntax___icode_generation___AVardeclExpr___generate_icode
[] = "icode_generation::AVardeclExpr::(icode_generation::AExpr::generate_icode)";
2835 val_t
syntax___icode_generation___AVardeclExpr___generate_icode(val_t p0
, val_t p1
){
2836 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2840 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2841 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2843 fra
.me
.meth
= LOCATE_syntax___icode_generation___AVardeclExpr___generate_icode
;
2844 fra
.me
.has_broke
= 0;
2845 fra
.me
.REG_size
= 3;
2846 fra
.me
.nitni_local_ref_head
= NULL
;
2847 fra
.me
.REG
[0] = NIT_NULL
;
2848 fra
.me
.REG
[1] = NIT_NULL
;
2849 fra
.me
.REG
[2] = NIT_NULL
;
2852 /* syntax/icode_generation.nit:474 */
2853 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVardeclExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2854 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2855 /* syntax/icode_generation.nit:475 */
2856 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AVardeclExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2857 /* syntax/icode_generation.nit:476 */
2858 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2859 if (UNTAG_Bool(REGB0
)) {
2861 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2862 if (UNTAG_Bool(REGB1
)) {
2863 REGB1
= TAG_Bool(0);
2866 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2870 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2871 if (UNTAG_Bool(REGB0
)) {
2872 /* syntax/icode_generation.nit:477 */
2873 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2874 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
2876 /* syntax/icode_generation.nit:479 */
2877 fra
.me
.REG
[0] = NIT_NULL
;
2880 stack_frame_head
= fra
.me
.prev
;
2881 return fra
.me
.REG
[0];
2883 static const char LOCATE_syntax___icode_generation___ABlockExpr___generate_icode
[] = "icode_generation::ABlockExpr::(icode_generation::AExpr::generate_icode)";
2884 val_t
syntax___icode_generation___ABlockExpr___generate_icode(val_t p0
, val_t p1
){
2885 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2887 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2888 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2890 fra
.me
.meth
= LOCATE_syntax___icode_generation___ABlockExpr___generate_icode
;
2891 fra
.me
.has_broke
= 0;
2892 fra
.me
.REG_size
= 2;
2893 fra
.me
.nitni_local_ref_head
= NULL
;
2894 fra
.me
.REG
[0] = NIT_NULL
;
2895 fra
.me
.REG
[1] = NIT_NULL
;
2898 /* syntax/icode_generation.nit:486 */
2899 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABlockExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2900 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[0])(fra
.me
.REG
[0], (&(fra
.me
)), ((fun_t
)OC_syntax___icode_generation___ABlockExpr___generate_icode_1
));
2901 /* syntax/icode_generation.nit:487 */
2902 fra
.me
.REG
[1] = NIT_NULL
;
2905 stack_frame_head
= fra
.me
.prev
;
2906 return fra
.me
.REG
[1];
2908 void OC_syntax___icode_generation___ABlockExpr___generate_icode_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
2909 struct {struct stack_frame_t me
;} fra
;
2912 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2913 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2915 fra
.me
.meth
= LOCATE_syntax___icode_generation___ABlockExpr___generate_icode
;
2916 fra
.me
.has_broke
= 0;
2917 fra
.me
.REG_size
= 1;
2918 fra
.me
.nitni_local_ref_head
= NULL
;
2919 fra
.me
.REG
[0] = NIT_NULL
;
2920 fra
.me
.closure_ctx
= closctx_param
;
2921 fra
.me
.closure_funs
= CREG
;
2923 CREG
[0] = clos_fun0
;
2924 CALL_syntax___icode_generation___A2IContext___generate_stmt(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
2925 stack_frame_head
= fra
.me
.prev
;
2928 static const char LOCATE_syntax___icode_generation___ADoExpr___generate_icode
[] = "icode_generation::ADoExpr::(icode_generation::AExpr::generate_icode)";
2929 val_t
syntax___icode_generation___ADoExpr___generate_icode(val_t p0
, val_t p1
){
2930 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2933 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2934 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2936 fra
.me
.meth
= LOCATE_syntax___icode_generation___ADoExpr___generate_icode
;
2937 fra
.me
.has_broke
= 0;
2938 fra
.me
.REG_size
= 5;
2939 fra
.me
.nitni_local_ref_head
= NULL
;
2940 fra
.me
.REG
[0] = NIT_NULL
;
2941 fra
.me
.REG
[1] = NIT_NULL
;
2942 fra
.me
.REG
[2] = NIT_NULL
;
2943 fra
.me
.REG
[3] = NIT_NULL
;
2944 fra
.me
.REG
[4] = NIT_NULL
;
2947 /* syntax/icode_generation.nit:494 */
2948 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2949 /* syntax/icode_generation.nit:495 */
2950 fra
.me
.REG
[3] = NEW_ISeq_icode___icode_base___ISeq___init();
2951 /* syntax/icode_generation.nit:496 */
2952 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2953 /* syntax/icode_generation.nit:497 */
2954 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2955 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2956 if (UNTAG_Bool(REGB0
)) {
2957 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 497);
2959 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
2960 /* syntax/icode_generation.nit:498 */
2961 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2962 /* syntax/icode_generation.nit:500 */
2963 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ADoExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2964 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2965 /* syntax/icode_generation.nit:502 */
2966 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2967 /* syntax/icode_generation.nit:503 */
2968 fra
.me
.REG
[2] = NIT_NULL
;
2971 stack_frame_head
= fra
.me
.prev
;
2972 return fra
.me
.REG
[2];
2974 static const char LOCATE_syntax___icode_generation___AReturnExpr___generate_icode
[] = "icode_generation::AReturnExpr::(icode_generation::AExpr::generate_icode)";
2975 val_t
syntax___icode_generation___AReturnExpr___generate_icode(val_t p0
, val_t p1
){
2976 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2980 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2981 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2983 fra
.me
.meth
= LOCATE_syntax___icode_generation___AReturnExpr___generate_icode
;
2984 fra
.me
.has_broke
= 0;
2985 fra
.me
.REG_size
= 4;
2986 fra
.me
.nitni_local_ref_head
= NULL
;
2987 fra
.me
.REG
[0] = NIT_NULL
;
2988 fra
.me
.REG
[1] = NIT_NULL
;
2989 fra
.me
.REG
[2] = NIT_NULL
;
2990 fra
.me
.REG
[3] = NIT_NULL
;
2993 /* syntax/icode_generation.nit:508 */
2994 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2995 /* syntax/icode_generation.nit:510 */
2996 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AReturnExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2997 /* syntax/icode_generation.nit:511 */
2998 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2999 if (UNTAG_Bool(REGB0
)) {
3001 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3002 if (UNTAG_Bool(REGB1
)) {
3003 REGB1
= TAG_Bool(0);
3006 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3010 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3011 if (UNTAG_Bool(REGB0
)) {
3012 /* syntax/icode_generation.nit:512 */
3013 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3014 REGB0
= TAG_Bool(fra
.me
.REG
[3]!=NIT_NULL
);
3015 if (UNTAG_Bool(REGB0
)) {
3017 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 512);
3019 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3020 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
3022 /* syntax/icode_generation.nit:514 */
3023 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___return_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3024 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
3025 if (UNTAG_Bool(REGB0
)) {
3027 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 514);
3029 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3030 /* syntax/icode_generation.nit:515 */
3031 fra
.me
.REG
[2] = NIT_NULL
;
3034 stack_frame_head
= fra
.me
.prev
;
3035 return fra
.me
.REG
[2];
3037 static const char LOCATE_syntax___icode_generation___ABreakExpr___generate_icode
[] = "icode_generation::ABreakExpr::(icode_generation::AExpr::generate_icode)";
3038 val_t
syntax___icode_generation___ABreakExpr___generate_icode(val_t p0
, val_t p1
){
3039 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3043 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3044 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3046 fra
.me
.meth
= LOCATE_syntax___icode_generation___ABreakExpr___generate_icode
;
3047 fra
.me
.has_broke
= 0;
3048 fra
.me
.REG_size
= 5;
3049 fra
.me
.nitni_local_ref_head
= NULL
;
3050 fra
.me
.REG
[0] = NIT_NULL
;
3051 fra
.me
.REG
[1] = NIT_NULL
;
3052 fra
.me
.REG
[2] = NIT_NULL
;
3053 fra
.me
.REG
[3] = NIT_NULL
;
3054 fra
.me
.REG
[4] = NIT_NULL
;
3057 /* syntax/icode_generation.nit:520 */
3058 fra
.me
.REG
[2] = fra
.me
.REG
[0];
3059 /* syntax/icode_generation.nit:522 */
3060 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3061 /* syntax/icode_generation.nit:523 */
3062 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3063 if (UNTAG_Bool(REGB0
)) {
3065 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3066 if (UNTAG_Bool(REGB1
)) {
3067 REGB1
= TAG_Bool(0);
3070 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3074 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3075 if (UNTAG_Bool(REGB0
)) {
3076 /* syntax/icode_generation.nit:524 */
3077 fra
.me
.REG
[4] = CALL_syntax___scope___AEscapeExpr___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3078 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3079 if (UNTAG_Bool(REGB0
)) {
3080 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 524);
3082 fra
.me
.REG
[4] = CALL_syntax___icode_generation___EscapableBlock___break_value(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3083 REGB0
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
3084 if (UNTAG_Bool(REGB0
)) {
3086 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 524);
3088 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3089 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[3]);
3091 /* syntax/icode_generation.nit:526 */
3092 fra
.me
.REG
[2] = CALL_syntax___scope___AEscapeExpr___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3093 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3094 if (UNTAG_Bool(REGB0
)) {
3095 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 526);
3097 fra
.me
.REG
[2] = CALL_syntax___icode_generation___EscapableBlock___break_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3098 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
3099 if (UNTAG_Bool(REGB0
)) {
3101 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 526);
3103 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3104 /* syntax/icode_generation.nit:527 */
3105 fra
.me
.REG
[2] = NIT_NULL
;
3108 stack_frame_head
= fra
.me
.prev
;
3109 return fra
.me
.REG
[2];
3111 static const char LOCATE_syntax___icode_generation___AContinueExpr___generate_icode
[] = "icode_generation::AContinueExpr::(icode_generation::AExpr::generate_icode)";
3112 val_t
syntax___icode_generation___AContinueExpr___generate_icode(val_t p0
, val_t p1
){
3113 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3117 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3118 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3120 fra
.me
.meth
= LOCATE_syntax___icode_generation___AContinueExpr___generate_icode
;
3121 fra
.me
.has_broke
= 0;
3122 fra
.me
.REG_size
= 5;
3123 fra
.me
.nitni_local_ref_head
= NULL
;
3124 fra
.me
.REG
[0] = NIT_NULL
;
3125 fra
.me
.REG
[1] = NIT_NULL
;
3126 fra
.me
.REG
[2] = NIT_NULL
;
3127 fra
.me
.REG
[3] = NIT_NULL
;
3128 fra
.me
.REG
[4] = NIT_NULL
;
3131 /* syntax/icode_generation.nit:532 */
3132 fra
.me
.REG
[2] = fra
.me
.REG
[0];
3133 /* syntax/icode_generation.nit:534 */
3134 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3135 /* syntax/icode_generation.nit:535 */
3136 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3137 if (UNTAG_Bool(REGB0
)) {
3139 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3140 if (UNTAG_Bool(REGB1
)) {
3141 REGB1
= TAG_Bool(0);
3144 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3148 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3149 if (UNTAG_Bool(REGB0
)) {
3150 /* syntax/icode_generation.nit:536 */
3151 fra
.me
.REG
[4] = CALL_syntax___scope___AEscapeExpr___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3152 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3153 if (UNTAG_Bool(REGB0
)) {
3154 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 536);
3156 fra
.me
.REG
[4] = CALL_syntax___icode_generation___EscapableBlock___continue_value(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3157 REGB0
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
3158 if (UNTAG_Bool(REGB0
)) {
3160 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 536);
3162 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3163 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[3]);
3165 /* syntax/icode_generation.nit:538 */
3166 fra
.me
.REG
[2] = CALL_syntax___scope___AEscapeExpr___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3167 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3168 if (UNTAG_Bool(REGB0
)) {
3169 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 538);
3171 fra
.me
.REG
[2] = CALL_syntax___icode_generation___EscapableBlock___continue_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3172 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
3173 if (UNTAG_Bool(REGB0
)) {
3175 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 538);
3177 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3178 /* syntax/icode_generation.nit:539 */
3179 fra
.me
.REG
[2] = NIT_NULL
;
3182 stack_frame_head
= fra
.me
.prev
;
3183 return fra
.me
.REG
[2];
3185 static const char LOCATE_syntax___icode_generation___AAbortExpr___generate_icode
[] = "icode_generation::AAbortExpr::(icode_generation::AExpr::generate_icode)";
3186 val_t
syntax___icode_generation___AAbortExpr___generate_icode(val_t p0
, val_t p1
){
3187 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3190 static val_t once_value_1
; /* Once value */
3191 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3192 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3194 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAbortExpr___generate_icode
;
3195 fra
.me
.has_broke
= 0;
3196 fra
.me
.REG_size
= 3;
3197 fra
.me
.nitni_local_ref_head
= NULL
;
3198 fra
.me
.REG
[0] = NIT_NULL
;
3199 fra
.me
.REG
[1] = NIT_NULL
;
3200 fra
.me
.REG
[2] = NIT_NULL
;
3203 /* syntax/icode_generation.nit:546 */
3205 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3206 if (!once_value_1
) {
3207 fra
.me
.REG
[2] = BOX_NativeString("Aborted");
3209 fra
.me
.REG
[2] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
3210 once_value_1
= fra
.me
.REG
[2];
3211 register_static_object(&once_value_1
);
3212 } else fra
.me
.REG
[2] = once_value_1
;
3213 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3214 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
3215 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3216 /* syntax/icode_generation.nit:547 */
3217 fra
.me
.REG
[0] = NIT_NULL
;
3220 stack_frame_head
= fra
.me
.prev
;
3221 return fra
.me
.REG
[0];
3223 static const char LOCATE_syntax___icode_generation___AIfExpr___generate_icode
[] = "icode_generation::AIfExpr::(icode_generation::AExpr::generate_icode)";
3224 val_t
syntax___icode_generation___AIfExpr___generate_icode(val_t p0
, val_t p1
){
3225 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3229 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3230 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3232 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIfExpr___generate_icode
;
3233 fra
.me
.has_broke
= 0;
3234 fra
.me
.REG_size
= 5;
3235 fra
.me
.nitni_local_ref_head
= NULL
;
3236 fra
.me
.REG
[0] = NIT_NULL
;
3237 fra
.me
.REG
[1] = NIT_NULL
;
3238 fra
.me
.REG
[2] = NIT_NULL
;
3239 fra
.me
.REG
[3] = NIT_NULL
;
3240 fra
.me
.REG
[4] = NIT_NULL
;
3243 /* syntax/icode_generation.nit:554 */
3244 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3245 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3246 fra
.me
.REG
[2] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[2]);
3247 /* syntax/icode_generation.nit:555 */
3248 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3249 /* syntax/icode_generation.nit:556 */
3250 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3251 /* syntax/icode_generation.nit:558 */
3252 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3253 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3254 if (UNTAG_Bool(REGB0
)) {
3256 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3257 if (UNTAG_Bool(REGB1
)) {
3258 REGB1
= TAG_Bool(0);
3261 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3265 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3266 if (UNTAG_Bool(REGB0
)) {
3267 /* syntax/icode_generation.nit:559 */
3268 fra
.me
.REG
[4] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3269 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3270 /* syntax/icode_generation.nit:560 */
3271 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3272 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3274 /* syntax/icode_generation.nit:563 */
3275 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3276 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3277 if (UNTAG_Bool(REGB0
)) {
3279 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3280 if (UNTAG_Bool(REGB1
)) {
3281 REGB1
= TAG_Bool(0);
3284 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3288 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3289 if (UNTAG_Bool(REGB0
)) {
3290 /* syntax/icode_generation.nit:564 */
3291 fra
.me
.REG
[2] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3292 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3293 /* syntax/icode_generation.nit:565 */
3294 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3295 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3297 /* syntax/icode_generation.nit:568 */
3298 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3299 /* syntax/icode_generation.nit:569 */
3300 fra
.me
.REG
[3] = NIT_NULL
;
3303 stack_frame_head
= fra
.me
.prev
;
3304 return fra
.me
.REG
[3];
3306 static const char LOCATE_syntax___icode_generation___AWhileExpr___generate_icode
[] = "icode_generation::AWhileExpr::(icode_generation::AExpr::generate_icode)";
3307 val_t
syntax___icode_generation___AWhileExpr___generate_icode(val_t p0
, val_t p1
){
3308 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3312 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3313 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3315 fra
.me
.meth
= LOCATE_syntax___icode_generation___AWhileExpr___generate_icode
;
3316 fra
.me
.has_broke
= 0;
3317 fra
.me
.REG_size
= 7;
3318 fra
.me
.nitni_local_ref_head
= NULL
;
3319 fra
.me
.REG
[0] = NIT_NULL
;
3320 fra
.me
.REG
[1] = NIT_NULL
;
3321 fra
.me
.REG
[2] = NIT_NULL
;
3322 fra
.me
.REG
[3] = NIT_NULL
;
3323 fra
.me
.REG
[4] = NIT_NULL
;
3324 fra
.me
.REG
[5] = NIT_NULL
;
3325 fra
.me
.REG
[6] = NIT_NULL
;
3328 /* syntax/icode_generation.nit:576 */
3329 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3330 /* syntax/icode_generation.nit:577 */
3331 fra
.me
.REG
[3] = NEW_ILoop_icode___icode_base___ILoop___init();
3332 /* syntax/icode_generation.nit:578 */
3333 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3334 /* syntax/icode_generation.nit:579 */
3335 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3336 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3337 if (UNTAG_Bool(REGB0
)) {
3338 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 579);
3340 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3341 /* syntax/icode_generation.nit:580 */
3342 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3343 /* syntax/icode_generation.nit:583 */
3344 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3345 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3346 fra
.me
.REG
[4] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[4]);
3347 /* syntax/icode_generation.nit:584 */
3348 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3349 /* syntax/icode_generation.nit:587 */
3350 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3351 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
3352 if (UNTAG_Bool(REGB0
)) {
3354 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
3355 if (UNTAG_Bool(REGB1
)) {
3356 REGB1
= TAG_Bool(0);
3359 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
3363 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3364 if (UNTAG_Bool(REGB0
)) {
3365 /* syntax/icode_generation.nit:588 */
3366 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3367 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3368 /* syntax/icode_generation.nit:589 */
3369 fra
.me
.REG
[5] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3370 fra
.me
.REG
[6] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3371 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
3372 if (UNTAG_Bool(REGB0
)) {
3373 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 589);
3375 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3376 /* syntax/icode_generation.nit:590 */
3377 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3378 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3380 /* syntax/icode_generation.nit:594 */
3381 fra
.me
.REG
[4] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3382 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3383 /* syntax/icode_generation.nit:595 */
3384 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3385 /* syntax/icode_generation.nit:597 */
3386 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3387 /* syntax/icode_generation.nit:598 */
3388 fra
.me
.REG
[2] = NIT_NULL
;
3391 stack_frame_head
= fra
.me
.prev
;
3392 return fra
.me
.REG
[2];
3394 static const char LOCATE_syntax___icode_generation___ALoopExpr___generate_icode
[] = "icode_generation::ALoopExpr::(icode_generation::AExpr::generate_icode)";
3395 val_t
syntax___icode_generation___ALoopExpr___generate_icode(val_t p0
, val_t p1
){
3396 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3400 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3401 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3403 fra
.me
.meth
= LOCATE_syntax___icode_generation___ALoopExpr___generate_icode
;
3404 fra
.me
.has_broke
= 0;
3405 fra
.me
.REG_size
= 5;
3406 fra
.me
.nitni_local_ref_head
= NULL
;
3407 fra
.me
.REG
[0] = NIT_NULL
;
3408 fra
.me
.REG
[1] = NIT_NULL
;
3409 fra
.me
.REG
[2] = NIT_NULL
;
3410 fra
.me
.REG
[3] = NIT_NULL
;
3411 fra
.me
.REG
[4] = NIT_NULL
;
3414 /* syntax/icode_generation.nit:605 */
3415 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3416 /* syntax/icode_generation.nit:606 */
3417 fra
.me
.REG
[3] = NEW_ILoop_icode___icode_base___ILoop___init();
3418 /* syntax/icode_generation.nit:607 */
3419 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3420 /* syntax/icode_generation.nit:608 */
3421 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3422 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3423 if (UNTAG_Bool(REGB0
)) {
3424 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 608);
3426 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3427 /* syntax/icode_generation.nit:609 */
3428 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3429 /* syntax/icode_generation.nit:612 */
3430 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3431 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3432 if (UNTAG_Bool(REGB0
)) {
3434 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3435 if (UNTAG_Bool(REGB1
)) {
3436 REGB1
= TAG_Bool(0);
3439 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3443 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3444 if (UNTAG_Bool(REGB0
)) {
3445 /* syntax/icode_generation.nit:613 */
3446 fra
.me
.REG
[3] = NEW_ISeq_icode___icode_base___ISeq___init();
3447 /* syntax/icode_generation.nit:614 */
3448 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3449 /* syntax/icode_generation.nit:615 */
3450 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3451 /* syntax/icode_generation.nit:616 */
3452 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3453 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3454 if (UNTAG_Bool(REGB0
)) {
3455 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 616);
3457 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3458 /* syntax/icode_generation.nit:617 */
3459 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3460 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3462 /* syntax/icode_generation.nit:620 */
3463 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3464 /* syntax/icode_generation.nit:621 */
3465 fra
.me
.REG
[2] = NIT_NULL
;
3468 stack_frame_head
= fra
.me
.prev
;
3469 return fra
.me
.REG
[2];
3471 static const char LOCATE_syntax___icode_generation___AForExpr___generate_icode
[] = "icode_generation::AForExpr::(icode_generation::AExpr::generate_icode)";
3472 val_t
syntax___icode_generation___AForExpr___generate_icode(val_t p0
, val_t p1
){
3473 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
3481 static val_t once_value_1
; /* Once value */
3482 static val_t once_value_2
; /* Once value */
3483 static val_t once_value_3
; /* Once value */
3484 static val_t once_value_4
; /* Once value */
3485 static val_t once_value_5
; /* Once value */
3486 static val_t once_value_6
; /* Once value */
3487 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3488 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3490 fra
.me
.meth
= LOCATE_syntax___icode_generation___AForExpr___generate_icode
;
3491 fra
.me
.has_broke
= 0;
3492 fra
.me
.REG_size
= 9;
3493 fra
.me
.nitni_local_ref_head
= NULL
;
3494 fra
.me
.REG
[0] = NIT_NULL
;
3495 fra
.me
.REG
[1] = NIT_NULL
;
3496 fra
.me
.REG
[2] = NIT_NULL
;
3497 fra
.me
.REG
[3] = NIT_NULL
;
3498 fra
.me
.REG
[4] = NIT_NULL
;
3499 fra
.me
.REG
[5] = NIT_NULL
;
3500 fra
.me
.REG
[6] = NIT_NULL
;
3501 fra
.me
.REG
[7] = NIT_NULL
;
3502 fra
.me
.REG
[8] = NIT_NULL
;
3505 /* syntax/icode_generation.nit:628 */
3506 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3507 /* syntax/icode_generation.nit:629 */
3508 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3509 /* syntax/icode_generation.nit:630 */
3510 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3511 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3512 /* syntax/icode_generation.nit:634 */
3513 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_parser___parser_nodes___ARangeExpr
, ID_parser___parser_nodes___ARangeExpr
)) /*cast ARangeExpr*/;
3514 if (UNTAG_Bool(REGB0
)) {
3515 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3516 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_range(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
3517 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[5]));
3518 if (UNTAG_Bool(REGB0
)) {
3520 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
3524 REGB1
= TAG_Bool(0);
3527 if (UNTAG_Bool(REGB0
)) {
3528 /* syntax/icode_generation.nit:639 */
3530 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3531 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3532 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3533 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3534 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3535 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3536 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3537 /* syntax/icode_generation.nit:640 */
3538 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_parser___parser_nodes___ACrangeExpr
, ID_parser___parser_nodes___ACrangeExpr
)) /*cast ACrangeExpr*/;
3539 if (UNTAG_Bool(REGB0
)) {
3540 /* syntax/icode_generation.nit:641 */
3541 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3542 if (!once_value_1
) {
3543 if (!once_value_2
) {
3544 fra
.me
.REG
[7] = BOX_NativeString("enumerate_to");
3545 REGB0
= TAG_Int(12);
3546 fra
.me
.REG
[7] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB0
);
3547 once_value_2
= fra
.me
.REG
[7];
3548 register_static_object(&once_value_2
);
3549 } else fra
.me
.REG
[7] = once_value_2
;
3550 fra
.me
.REG
[7] = fra
.me
.REG
[7];
3551 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3552 once_value_1
= fra
.me
.REG
[7];
3553 register_static_object(&once_value_1
);
3554 } else fra
.me
.REG
[7] = once_value_1
;
3555 fra
.me
.REG
[7] = fra
.me
.REG
[7];
3556 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4], fra
.me
.REG
[7]);
3558 /* syntax/icode_generation.nit:643 */
3559 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_parser___parser_nodes___AOrangeExpr
, ID_parser___parser_nodes___AOrangeExpr
)) /*cast AOrangeExpr*/;
3560 if (UNTAG_Bool(REGB0
)) {
3562 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 643);
3564 /* syntax/icode_generation.nit:644 */
3565 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3566 if (!once_value_3
) {
3567 if (!once_value_4
) {
3568 fra
.me
.REG
[6] = BOX_NativeString("enumerate_before");
3569 REGB0
= TAG_Int(16);
3570 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB0
);
3571 once_value_4
= fra
.me
.REG
[6];
3572 register_static_object(&once_value_4
);
3573 } else fra
.me
.REG
[6] = once_value_4
;
3574 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3575 fra
.me
.REG
[6] = CALL_symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3576 once_value_3
= fra
.me
.REG
[6];
3577 register_static_object(&once_value_3
);
3578 } else fra
.me
.REG
[6] = once_value_3
;
3579 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3580 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4], fra
.me
.REG
[6]);
3581 fra
.me
.REG
[7] = fra
.me
.REG
[6];
3584 /* syntax/icode_generation.nit:650 */
3585 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3586 if (!once_value_5
) {
3587 if (!once_value_6
) {
3588 fra
.me
.REG
[4] = BOX_NativeString("iterate");
3590 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
3591 once_value_6
= fra
.me
.REG
[4];
3592 register_static_object(&once_value_6
);
3593 } else fra
.me
.REG
[4] = once_value_6
;
3594 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3595 fra
.me
.REG
[4] = CALL_symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3596 once_value_5
= fra
.me
.REG
[4];
3597 register_static_object(&once_value_5
);
3598 } else fra
.me
.REG
[4] = once_value_5
;
3599 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3600 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3], fra
.me
.REG
[4]);
3601 fra
.me
.REG
[7] = fra
.me
.REG
[4];
3602 /* syntax/icode_generation.nit:651 */
3604 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3605 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3606 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3607 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3608 fra
.me
.REG
[5] = fra
.me
.REG
[4];
3610 /* syntax/icode_generation.nit:655 */
3611 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
3612 if (UNTAG_Bool(REGB0
)) {
3613 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 655);
3615 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3616 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3617 if (UNTAG_Bool(REGB0
)) {
3618 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 655);
3620 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3621 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3622 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3623 if (UNTAG_Bool(REGB0
)) {
3624 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 655);
3626 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3627 fra
.me
.REG
[4] = CALL_icode___icode_builder___MMSignature___generate_empty_iclosuredef(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
3628 /* syntax/icode_generation.nit:656 */
3629 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3630 /* syntax/icode_generation.nit:658 */
3631 fra
.me
.REG
[6] = NEW_ISeq_icode___icode_base___ISeq___init();
3632 /* syntax/icode_generation.nit:659 */
3633 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3634 /* syntax/icode_generation.nit:660 */
3635 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3636 /* syntax/icode_generation.nit:661 */
3637 fra
.me
.REG
[2] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3638 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3639 if (UNTAG_Bool(REGB0
)) {
3640 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 661);
3642 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
3643 /* syntax/icode_generation.nit:662 */
3644 fra
.me
.REG
[2] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3645 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3646 if (UNTAG_Bool(REGB0
)) {
3647 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 662);
3649 CALL_syntax___icode_generation___EscapableBlock___break_value__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3650 /* syntax/icode_generation.nit:664 */
3651 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3652 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3653 /* syntax/icode_generation.nit:665 */
3654 fra
.me
.REG
[2] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3655 fra
.me
.REG
[8] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3656 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3657 if (UNTAG_Bool(REGB0
)) {
3658 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 665);
3660 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[8]);
3661 /* syntax/icode_generation.nit:666 */
3662 fra
.me
.REG
[8] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3663 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
3664 if (UNTAG_Bool(REGB0
)) {
3665 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 666);
3667 CALL_syntax___icode_generation___EscapableBlock___continue_value__eq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
3668 /* syntax/icode_generation.nit:667 */
3670 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AForExpr___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3671 /* ../lib/standard/collection/array.nit:24 */
3672 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8])!=NIT_NULL
);
3673 if (UNTAG_Bool(REGB1
)) {
3675 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
3677 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8]);
3678 /* ../lib/standard/kernel.nit:404 */
3680 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
3681 if (UNTAG_Bool(REGB2
)) {
3683 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
3685 /* ../lib/standard/kernel.nit:242 */
3686 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
3687 /* ../lib/standard/kernel.nit:404 */
3688 if (UNTAG_Bool(REGB2
)) {
3689 /* syntax/icode_generation.nit:667 */
3691 /* syntax/icode_generation.nit:668 */
3692 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AForExpr___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3693 /* ../lib/standard/collection/array.nit:279 */
3695 /* ../lib/standard/collection/array.nit:281 */
3697 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
3698 if (UNTAG_Bool(REGB5
)) {
3700 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
3702 /* ../lib/standard/kernel.nit:243 */
3703 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
3704 /* ../lib/standard/collection/array.nit:281 */
3705 if (UNTAG_Bool(REGB4
)) {
3706 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8])!=NIT_NULL
);
3707 if (UNTAG_Bool(REGB4
)) {
3709 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 281);
3711 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8]);
3712 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
3713 if (UNTAG_Bool(REGB5
)) {
3715 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
3717 /* ../lib/standard/kernel.nit:242 */
3718 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
3720 /* ../lib/standard/collection/array.nit:281 */
3721 REGB5
= TAG_Bool(0);
3724 if (UNTAG_Bool(REGB4
)) {
3726 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 281);
3728 /* ../lib/standard/collection/array.nit:282 */
3729 fra
.me
.REG
[8] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[8]);
3730 REGB4
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
3731 if (UNTAG_Bool(REGB4
)) {
3732 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 282);
3734 /* ../lib/standard/collection/array.nit:725 */
3735 fra
.me
.REG
[8] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB3
)];
3736 /* ../lib/standard/collection/array.nit:282 */
3739 /* syntax/icode_generation.nit:668 */
3740 fra
.me
.REG
[8] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[8]);
3741 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3742 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB2
);
3743 fra
.me
.REG
[2] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[8], fra
.me
.REG
[2]);
3744 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3745 /* ../lib/standard/kernel.nit:406 */
3747 /* ../lib/standard/kernel.nit:245 */
3748 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
3749 /* ../lib/standard/kernel.nit:406 */
3752 /* ../lib/standard/kernel.nit:404 */
3757 /* syntax/icode_generation.nit:670 */
3758 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AForExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3759 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3760 /* syntax/icode_generation.nit:673 */
3761 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3762 /* syntax/icode_generation.nit:674 */
3764 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3765 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
3766 CALL_icode___icode_builder___ICodeBuilder___add_call(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7], fra
.me
.REG
[5], fra
.me
.REG
[6]);
3767 /* syntax/icode_generation.nit:676 */
3768 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3769 /* syntax/icode_generation.nit:677 */
3770 fra
.me
.REG
[3] = NIT_NULL
;
3773 stack_frame_head
= fra
.me
.prev
;
3774 return fra
.me
.REG
[3];
3776 static const char LOCATE_syntax___icode_generation___AAssertExpr___generate_icode
[] = "icode_generation::AAssertExpr::(icode_generation::AExpr::generate_icode)";
3777 val_t
syntax___icode_generation___AAssertExpr___generate_icode(val_t p0
, val_t p1
){
3778 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3782 static val_t once_value_1
; /* Once value */
3783 static val_t once_value_2
; /* Once value */
3784 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3785 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3787 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAssertExpr___generate_icode
;
3788 fra
.me
.has_broke
= 0;
3789 fra
.me
.REG_size
= 5;
3790 fra
.me
.nitni_local_ref_head
= NULL
;
3791 fra
.me
.REG
[0] = NIT_NULL
;
3792 fra
.me
.REG
[1] = NIT_NULL
;
3793 fra
.me
.REG
[2] = NIT_NULL
;
3794 fra
.me
.REG
[3] = NIT_NULL
;
3795 fra
.me
.REG
[4] = NIT_NULL
;
3798 /* syntax/icode_generation.nit:684 */
3799 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3800 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3801 /* syntax/icode_generation.nit:685 */
3802 fra
.me
.REG
[2] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[2]);
3803 /* syntax/icode_generation.nit:686 */
3804 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3805 /* syntax/icode_generation.nit:687 */
3806 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3807 /* syntax/icode_generation.nit:688 */
3808 fra
.me
.REG
[2] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3809 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3810 /* syntax/icode_generation.nit:689 */
3811 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3812 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3813 /* syntax/icode_generation.nit:690 */
3814 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssertExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3815 /* syntax/icode_generation.nit:691 */
3816 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3817 if (UNTAG_Bool(REGB0
)) {
3819 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3820 if (UNTAG_Bool(REGB1
)) {
3821 REGB1
= TAG_Bool(0);
3824 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
3828 if (UNTAG_Bool(REGB0
)) {
3829 /* syntax/icode_generation.nit:692 */
3831 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3832 if (!once_value_1
) {
3833 fra
.me
.REG
[4] = BOX_NativeString("Assert failed");
3834 REGB0
= TAG_Int(13);
3835 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
3836 once_value_1
= fra
.me
.REG
[4];
3837 register_static_object(&once_value_1
);
3838 } else fra
.me
.REG
[4] = once_value_1
;
3839 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3840 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3841 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3843 /* syntax/icode_generation.nit:694 */
3845 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3846 if (!once_value_2
) {
3847 fra
.me
.REG
[4] = BOX_NativeString("Assert '%s' failed");
3848 REGB0
= TAG_Int(18);
3849 fra
.me
.REG
[4] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB0
);
3850 once_value_2
= fra
.me
.REG
[4];
3851 register_static_object(&once_value_2
);
3852 } else fra
.me
.REG
[4] = once_value_2
;
3853 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3854 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3855 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3856 if (UNTAG_Bool(REGB0
)) {
3857 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 694);
3859 fra
.me
.REG
[0] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3860 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3861 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
3862 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3864 /* syntax/icode_generation.nit:696 */
3865 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3866 /* syntax/icode_generation.nit:697 */
3867 fra
.me
.REG
[3] = NIT_NULL
;
3870 stack_frame_head
= fra
.me
.prev
;
3871 return fra
.me
.REG
[3];
3873 static const char LOCATE_syntax___icode_generation___AVarExpr___generate_icode
[] = "icode_generation::AVarExpr::(icode_generation::AExpr::generate_icode)";
3874 val_t
syntax___icode_generation___AVarExpr___generate_icode(val_t p0
, val_t p1
){
3875 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3877 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3878 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3880 fra
.me
.meth
= LOCATE_syntax___icode_generation___AVarExpr___generate_icode
;
3881 fra
.me
.has_broke
= 0;
3882 fra
.me
.REG_size
= 2;
3883 fra
.me
.nitni_local_ref_head
= NULL
;
3884 fra
.me
.REG
[0] = NIT_NULL
;
3885 fra
.me
.REG
[1] = NIT_NULL
;
3888 /* syntax/icode_generation.nit:704 */
3889 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3890 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3893 stack_frame_head
= fra
.me
.prev
;
3894 return fra
.me
.REG
[0];
3896 static const char LOCATE_syntax___icode_generation___AVarAssignExpr___generate_icode
[] = "icode_generation::AVarAssignExpr::(icode_generation::AExpr::generate_icode)";
3897 val_t
syntax___icode_generation___AVarAssignExpr___generate_icode(val_t p0
, val_t p1
){
3898 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3900 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3901 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3903 fra
.me
.meth
= LOCATE_syntax___icode_generation___AVarAssignExpr___generate_icode
;
3904 fra
.me
.has_broke
= 0;
3905 fra
.me
.REG_size
= 3;
3906 fra
.me
.nitni_local_ref_head
= NULL
;
3907 fra
.me
.REG
[0] = NIT_NULL
;
3908 fra
.me
.REG
[1] = NIT_NULL
;
3909 fra
.me
.REG
[2] = NIT_NULL
;
3912 /* syntax/icode_generation.nit:711 */
3913 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3914 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3915 /* syntax/icode_generation.nit:712 */
3916 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3917 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3918 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
3919 /* syntax/icode_generation.nit:713 */
3920 fra
.me
.REG
[2] = NIT_NULL
;
3923 stack_frame_head
= fra
.me
.prev
;
3924 return fra
.me
.REG
[2];
3926 static const char LOCATE_syntax___icode_generation___AVarReassignExpr___generate_icode
[] = "icode_generation::AVarReassignExpr::(icode_generation::AExpr::generate_icode)";
3927 val_t
syntax___icode_generation___AVarReassignExpr___generate_icode(val_t p0
, val_t p1
){
3928 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3931 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3932 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3934 fra
.me
.meth
= LOCATE_syntax___icode_generation___AVarReassignExpr___generate_icode
;
3935 fra
.me
.has_broke
= 0;
3936 fra
.me
.REG_size
= 7;
3937 fra
.me
.nitni_local_ref_head
= NULL
;
3938 fra
.me
.REG
[0] = NIT_NULL
;
3939 fra
.me
.REG
[1] = NIT_NULL
;
3940 fra
.me
.REG
[2] = NIT_NULL
;
3941 fra
.me
.REG
[3] = NIT_NULL
;
3942 fra
.me
.REG
[4] = NIT_NULL
;
3943 fra
.me
.REG
[5] = NIT_NULL
;
3944 fra
.me
.REG
[6] = NIT_NULL
;
3947 /* syntax/icode_generation.nit:718 */
3948 fra
.me
.REG
[2] = fra
.me
.REG
[0];
3949 /* syntax/icode_generation.nit:720 */
3950 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3951 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3952 /* syntax/icode_generation.nit:721 */
3953 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3954 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3955 /* syntax/icode_generation.nit:722 */
3956 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3958 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3959 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
3960 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
3961 fra
.me
.REG
[6] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3962 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3963 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3964 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3965 if (UNTAG_Bool(REGB0
)) {
3966 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 722);
3968 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3969 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___static_type___MMType
, ID_metamodel___static_type___MMType
)) /*cast MMType*/;
3970 if (UNTAG_Bool(REGB0
)) {
3972 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 722);
3974 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6], fra
.me
.REG
[2]);
3975 /* syntax/icode_generation.nit:723 */
3976 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
3977 /* syntax/icode_generation.nit:724 */
3978 fra
.me
.REG
[2] = NIT_NULL
;
3981 stack_frame_head
= fra
.me
.prev
;
3982 return fra
.me
.REG
[2];
3984 static const char LOCATE_syntax___icode_generation___ASelfExpr___generate_icode
[] = "icode_generation::ASelfExpr::(icode_generation::AExpr::generate_icode)";
3985 val_t
syntax___icode_generation___ASelfExpr___generate_icode(val_t p0
, val_t p1
){
3986 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3988 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3989 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3991 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASelfExpr___generate_icode
;
3992 fra
.me
.has_broke
= 0;
3993 fra
.me
.REG_size
= 2;
3994 fra
.me
.nitni_local_ref_head
= NULL
;
3995 fra
.me
.REG
[0] = NIT_NULL
;
3996 fra
.me
.REG
[1] = NIT_NULL
;
3999 /* syntax/icode_generation.nit:731 */
4000 fra
.me
.REG
[0] = CALL_syntax___syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4001 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4004 stack_frame_head
= fra
.me
.prev
;
4005 return fra
.me
.REG
[0];
4007 static const char LOCATE_syntax___icode_generation___AIfexprExpr___generate_icode
[] = "icode_generation::AIfexprExpr::(icode_generation::AExpr::generate_icode)";
4008 val_t
syntax___icode_generation___AIfexprExpr___generate_icode(val_t p0
, val_t p1
){
4009 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
4011 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4012 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4014 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIfexprExpr___generate_icode
;
4015 fra
.me
.has_broke
= 0;
4016 fra
.me
.REG_size
= 6;
4017 fra
.me
.nitni_local_ref_head
= NULL
;
4018 fra
.me
.REG
[0] = NIT_NULL
;
4019 fra
.me
.REG
[1] = NIT_NULL
;
4020 fra
.me
.REG
[2] = NIT_NULL
;
4021 fra
.me
.REG
[3] = NIT_NULL
;
4022 fra
.me
.REG
[4] = NIT_NULL
;
4023 fra
.me
.REG
[5] = NIT_NULL
;
4026 /* syntax/icode_generation.nit:739 */
4027 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4028 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4029 fra
.me
.REG
[2] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[2]);
4030 /* syntax/icode_generation.nit:740 */
4031 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4032 /* syntax/icode_generation.nit:741 */
4033 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4034 /* syntax/icode_generation.nit:744 */
4035 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4036 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4037 /* syntax/icode_generation.nit:747 */
4038 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4039 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4040 /* syntax/icode_generation.nit:748 */
4041 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4042 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4043 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
4044 /* syntax/icode_generation.nit:751 */
4045 fra
.me
.REG
[2] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4046 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4047 /* syntax/icode_generation.nit:752 */
4048 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4049 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4050 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[0]);
4051 /* syntax/icode_generation.nit:754 */
4052 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4053 /* syntax/icode_generation.nit:755 */
4056 stack_frame_head
= fra
.me
.prev
;
4057 return fra
.me
.REG
[4];
4059 static const char LOCATE_syntax___icode_generation___AEeExpr___generate_icode
[] = "icode_generation::AEeExpr::(icode_generation::AExpr::generate_icode)";
4060 val_t
syntax___icode_generation___AEeExpr___generate_icode(val_t p0
, val_t p1
){
4061 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4063 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4064 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4066 fra
.me
.meth
= LOCATE_syntax___icode_generation___AEeExpr___generate_icode
;
4067 fra
.me
.has_broke
= 0;
4068 fra
.me
.REG_size
= 4;
4069 fra
.me
.nitni_local_ref_head
= NULL
;
4070 fra
.me
.REG
[0] = NIT_NULL
;
4071 fra
.me
.REG
[1] = NIT_NULL
;
4072 fra
.me
.REG
[2] = NIT_NULL
;
4073 fra
.me
.REG
[3] = NIT_NULL
;
4076 /* syntax/icode_generation.nit:762 */
4077 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AEeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4078 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4079 /* syntax/icode_generation.nit:763 */
4080 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AEeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4081 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4082 /* syntax/icode_generation.nit:764 */
4083 fra
.me
.REG
[3] = NEW_IIs_icode___icode_base___IIs___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4084 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4085 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
4088 stack_frame_head
= fra
.me
.prev
;
4089 return fra
.me
.REG
[0];
4091 static const char LOCATE_syntax___icode_generation___AOrExpr___generate_icode
[] = "icode_generation::AOrExpr::(icode_generation::AExpr::generate_icode)";
4092 val_t
syntax___icode_generation___AOrExpr___generate_icode(val_t p0
, val_t p1
){
4093 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
4095 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4096 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4098 fra
.me
.meth
= LOCATE_syntax___icode_generation___AOrExpr___generate_icode
;
4099 fra
.me
.has_broke
= 0;
4100 fra
.me
.REG_size
= 6;
4101 fra
.me
.nitni_local_ref_head
= NULL
;
4102 fra
.me
.REG
[0] = NIT_NULL
;
4103 fra
.me
.REG
[1] = NIT_NULL
;
4104 fra
.me
.REG
[2] = NIT_NULL
;
4105 fra
.me
.REG
[3] = NIT_NULL
;
4106 fra
.me
.REG
[4] = NIT_NULL
;
4107 fra
.me
.REG
[5] = NIT_NULL
;
4110 /* syntax/icode_generation.nit:772 */
4111 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4112 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4113 /* syntax/icode_generation.nit:775 */
4114 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4115 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4116 fra
.me
.REG
[3] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[3]);
4117 /* syntax/icode_generation.nit:776 */
4118 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4119 /* syntax/icode_generation.nit:777 */
4120 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4121 /* syntax/icode_generation.nit:778 */
4122 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4123 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4124 /* syntax/icode_generation.nit:779 */
4125 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___lit_true_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4126 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[5]);
4127 /* syntax/icode_generation.nit:782 */
4128 fra
.me
.REG
[3] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4129 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4130 /* syntax/icode_generation.nit:783 */
4131 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4132 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4133 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4134 /* syntax/icode_generation.nit:785 */
4135 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4136 /* syntax/icode_generation.nit:786 */
4139 stack_frame_head
= fra
.me
.prev
;
4140 return fra
.me
.REG
[2];
4142 static const char LOCATE_syntax___icode_generation___AAndExpr___generate_icode
[] = "icode_generation::AAndExpr::(icode_generation::AExpr::generate_icode)";
4143 val_t
syntax___icode_generation___AAndExpr___generate_icode(val_t p0
, val_t p1
){
4144 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
4146 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4147 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4149 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAndExpr___generate_icode
;
4150 fra
.me
.has_broke
= 0;
4151 fra
.me
.REG_size
= 6;
4152 fra
.me
.nitni_local_ref_head
= NULL
;
4153 fra
.me
.REG
[0] = NIT_NULL
;
4154 fra
.me
.REG
[1] = NIT_NULL
;
4155 fra
.me
.REG
[2] = NIT_NULL
;
4156 fra
.me
.REG
[3] = NIT_NULL
;
4157 fra
.me
.REG
[4] = NIT_NULL
;
4158 fra
.me
.REG
[5] = NIT_NULL
;
4161 /* syntax/icode_generation.nit:794 */
4162 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4163 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4164 /* syntax/icode_generation.nit:797 */
4165 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4166 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4167 fra
.me
.REG
[3] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[3]);
4168 /* syntax/icode_generation.nit:798 */
4169 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4170 /* syntax/icode_generation.nit:799 */
4171 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4172 /* syntax/icode_generation.nit:800 */
4173 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4174 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4175 /* syntax/icode_generation.nit:801 */
4176 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___lit_false_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4177 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[5]);
4178 /* syntax/icode_generation.nit:804 */
4179 fra
.me
.REG
[3] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4180 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4181 /* syntax/icode_generation.nit:805 */
4182 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4183 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4184 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4185 /* syntax/icode_generation.nit:807 */
4186 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4187 /* syntax/icode_generation.nit:808 */
4190 stack_frame_head
= fra
.me
.prev
;
4191 return fra
.me
.REG
[2];
4193 static const char LOCATE_syntax___icode_generation___ANotExpr___generate_icode
[] = "icode_generation::ANotExpr::(icode_generation::AExpr::generate_icode)";
4194 val_t
syntax___icode_generation___ANotExpr___generate_icode(val_t p0
, val_t p1
){
4195 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4197 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4198 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4200 fra
.me
.meth
= LOCATE_syntax___icode_generation___ANotExpr___generate_icode
;
4201 fra
.me
.has_broke
= 0;
4202 fra
.me
.REG_size
= 3;
4203 fra
.me
.nitni_local_ref_head
= NULL
;
4204 fra
.me
.REG
[0] = NIT_NULL
;
4205 fra
.me
.REG
[1] = NIT_NULL
;
4206 fra
.me
.REG
[2] = NIT_NULL
;
4209 /* syntax/icode_generation.nit:815 */
4210 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4211 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4212 /* syntax/icode_generation.nit:816 */
4213 fra
.me
.REG
[2] = NEW_INot_icode___icode_base___INot___init(fra
.me
.REG
[2]);
4214 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4215 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4218 stack_frame_head
= fra
.me
.prev
;
4219 return fra
.me
.REG
[0];
4221 static const char LOCATE_syntax___icode_generation___AOrElseExpr___generate_icode
[] = "icode_generation::AOrElseExpr::(icode_generation::AExpr::generate_icode)";
4222 val_t
syntax___icode_generation___AOrElseExpr___generate_icode(val_t p0
, val_t p1
){
4223 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
4225 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4226 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4228 fra
.me
.meth
= LOCATE_syntax___icode_generation___AOrElseExpr___generate_icode
;
4229 fra
.me
.has_broke
= 0;
4230 fra
.me
.REG_size
= 7;
4231 fra
.me
.nitni_local_ref_head
= NULL
;
4232 fra
.me
.REG
[0] = NIT_NULL
;
4233 fra
.me
.REG
[1] = NIT_NULL
;
4234 fra
.me
.REG
[2] = NIT_NULL
;
4235 fra
.me
.REG
[3] = NIT_NULL
;
4236 fra
.me
.REG
[4] = NIT_NULL
;
4237 fra
.me
.REG
[5] = NIT_NULL
;
4238 fra
.me
.REG
[6] = NIT_NULL
;
4241 /* syntax/icode_generation.nit:824 */
4242 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4243 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4244 /* syntax/icode_generation.nit:827 */
4245 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4246 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4247 /* syntax/icode_generation.nit:830 */
4248 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___lit_null_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4249 /* syntax/icode_generation.nit:831 */
4250 fra
.me
.REG
[4] = NEW_IIs_icode___icode_base___IIs___init(fra
.me
.REG
[2], fra
.me
.REG
[4]);
4251 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4252 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4253 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
4254 /* syntax/icode_generation.nit:832 */
4255 fra
.me
.REG
[5] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[5]);
4256 /* syntax/icode_generation.nit:833 */
4257 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4258 /* syntax/icode_generation.nit:834 */
4259 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4260 /* syntax/icode_generation.nit:837 */
4261 fra
.me
.REG
[6] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4262 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
4263 /* syntax/icode_generation.nit:838 */
4264 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4265 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4266 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
4267 /* syntax/icode_generation.nit:841 */
4268 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4269 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4270 /* syntax/icode_generation.nit:842 */
4271 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
4272 /* syntax/icode_generation.nit:844 */
4273 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4274 /* syntax/icode_generation.nit:846 */
4277 stack_frame_head
= fra
.me
.prev
;
4278 return fra
.me
.REG
[3];
4280 static const char LOCATE_syntax___icode_generation___AIsaExpr___generate_icode
[] = "icode_generation::AIsaExpr::(icode_generation::AExpr::generate_icode)";
4281 val_t
syntax___icode_generation___AIsaExpr___generate_icode(val_t p0
, val_t p1
){
4282 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4285 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4286 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4288 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIsaExpr___generate_icode
;
4289 fra
.me
.has_broke
= 0;
4290 fra
.me
.REG_size
= 5;
4291 fra
.me
.nitni_local_ref_head
= NULL
;
4292 fra
.me
.REG
[0] = NIT_NULL
;
4293 fra
.me
.REG
[1] = NIT_NULL
;
4294 fra
.me
.REG
[2] = NIT_NULL
;
4295 fra
.me
.REG
[3] = NIT_NULL
;
4296 fra
.me
.REG
[4] = NIT_NULL
;
4299 /* syntax/icode_generation.nit:851 */
4300 fra
.me
.REG
[2] = fra
.me
.REG
[0];
4301 /* syntax/icode_generation.nit:853 */
4302 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4303 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4304 /* syntax/icode_generation.nit:854 */
4305 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___selfreg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4306 REGB0
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
4307 if (UNTAG_Bool(REGB0
)) {
4309 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 854);
4311 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4312 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4313 fra
.me
.REG
[0] = NEW_ITypeCheck_icode___icode_base___ITypeCheck___init(fra
.me
.REG
[4], fra
.me
.REG
[3], fra
.me
.REG
[0]);
4314 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4315 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
4318 stack_frame_head
= fra
.me
.prev
;
4319 return fra
.me
.REG
[2];
4321 static const char LOCATE_syntax___icode_generation___AAsCastExpr___generate_icode
[] = "icode_generation::AAsCastExpr::(icode_generation::AExpr::generate_icode)";
4322 val_t
syntax___icode_generation___AAsCastExpr___generate_icode(val_t p0
, val_t p1
){
4323 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4325 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4326 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4328 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAsCastExpr___generate_icode
;
4329 fra
.me
.has_broke
= 0;
4330 fra
.me
.REG_size
= 3;
4331 fra
.me
.nitni_local_ref_head
= NULL
;
4332 fra
.me
.REG
[0] = NIT_NULL
;
4333 fra
.me
.REG
[1] = NIT_NULL
;
4334 fra
.me
.REG
[2] = NIT_NULL
;
4337 /* syntax/icode_generation.nit:861 */
4338 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsCastExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4339 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4340 /* syntax/icode_generation.nit:862 */
4341 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4342 CALL_icode___icode_builder___ICodeBuilder___add_type_cast(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4343 /* syntax/icode_generation.nit:863 */
4346 stack_frame_head
= fra
.me
.prev
;
4347 return fra
.me
.REG
[2];
4349 static const char LOCATE_syntax___icode_generation___AAsNotnullExpr___generate_icode
[] = "icode_generation::AAsNotnullExpr::(icode_generation::AExpr::generate_icode)";
4350 val_t
syntax___icode_generation___AAsNotnullExpr___generate_icode(val_t p0
, val_t p1
){
4351 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4353 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4354 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4356 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAsNotnullExpr___generate_icode
;
4357 fra
.me
.has_broke
= 0;
4358 fra
.me
.REG_size
= 3;
4359 fra
.me
.nitni_local_ref_head
= NULL
;
4360 fra
.me
.REG
[0] = NIT_NULL
;
4361 fra
.me
.REG
[1] = NIT_NULL
;
4362 fra
.me
.REG
[2] = NIT_NULL
;
4365 /* syntax/icode_generation.nit:870 */
4366 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4367 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4368 /* syntax/icode_generation.nit:871 */
4369 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4370 CALL_icode___icode_builder___ICodeBuilder___add_type_cast(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4371 /* syntax/icode_generation.nit:872 */
4374 stack_frame_head
= fra
.me
.prev
;
4375 return fra
.me
.REG
[2];
4377 static const char LOCATE_syntax___icode_generation___ATrueExpr___generate_icode
[] = "icode_generation::ATrueExpr::(icode_generation::AExpr::generate_icode)";
4378 val_t
syntax___icode_generation___ATrueExpr___generate_icode(val_t p0
, val_t p1
){
4379 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4381 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4382 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4384 fra
.me
.meth
= LOCATE_syntax___icode_generation___ATrueExpr___generate_icode
;
4385 fra
.me
.has_broke
= 0;
4386 fra
.me
.REG_size
= 2;
4387 fra
.me
.nitni_local_ref_head
= NULL
;
4388 fra
.me
.REG
[0] = NIT_NULL
;
4389 fra
.me
.REG
[1] = NIT_NULL
;
4392 /* syntax/icode_generation.nit:879 */
4393 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___lit_true_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4396 stack_frame_head
= fra
.me
.prev
;
4397 return fra
.me
.REG
[1];
4399 static const char LOCATE_syntax___icode_generation___AFalseExpr___generate_icode
[] = "icode_generation::AFalseExpr::(icode_generation::AExpr::generate_icode)";
4400 val_t
syntax___icode_generation___AFalseExpr___generate_icode(val_t p0
, val_t p1
){
4401 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4403 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4404 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4406 fra
.me
.meth
= LOCATE_syntax___icode_generation___AFalseExpr___generate_icode
;
4407 fra
.me
.has_broke
= 0;
4408 fra
.me
.REG_size
= 2;
4409 fra
.me
.nitni_local_ref_head
= NULL
;
4410 fra
.me
.REG
[0] = NIT_NULL
;
4411 fra
.me
.REG
[1] = NIT_NULL
;
4414 /* syntax/icode_generation.nit:886 */
4415 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___lit_false_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4418 stack_frame_head
= fra
.me
.prev
;
4419 return fra
.me
.REG
[1];
4421 static const char LOCATE_syntax___icode_generation___AIntExpr___generate_icode
[] = "icode_generation::AIntExpr::(icode_generation::AExpr::generate_icode)";
4422 val_t
syntax___icode_generation___AIntExpr___generate_icode(val_t p0
, val_t p1
){
4423 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4425 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4426 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4428 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIntExpr___generate_icode
;
4429 fra
.me
.has_broke
= 0;
4430 fra
.me
.REG_size
= 3;
4431 fra
.me
.nitni_local_ref_head
= NULL
;
4432 fra
.me
.REG
[0] = NIT_NULL
;
4433 fra
.me
.REG
[1] = NIT_NULL
;
4434 fra
.me
.REG
[2] = NIT_NULL
;
4437 /* syntax/icode_generation.nit:893 */
4438 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIntExpr___n_number(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4439 fra
.me
.REG
[2] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4440 fra
.me
.REG
[2] = NEW_IIntValue_icode___icode_base___IIntValue___init(fra
.me
.REG
[2]);
4441 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4442 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4445 stack_frame_head
= fra
.me
.prev
;
4446 return fra
.me
.REG
[0];
4448 static const char LOCATE_syntax___icode_generation___AFloatExpr___generate_icode
[] = "icode_generation::AFloatExpr::(icode_generation::AExpr::generate_icode)";
4449 val_t
syntax___icode_generation___AFloatExpr___generate_icode(val_t p0
, val_t p1
){
4450 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4452 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4453 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4455 fra
.me
.meth
= LOCATE_syntax___icode_generation___AFloatExpr___generate_icode
;
4456 fra
.me
.has_broke
= 0;
4457 fra
.me
.REG_size
= 3;
4458 fra
.me
.nitni_local_ref_head
= NULL
;
4459 fra
.me
.REG
[0] = NIT_NULL
;
4460 fra
.me
.REG
[1] = NIT_NULL
;
4461 fra
.me
.REG
[2] = NIT_NULL
;
4464 /* syntax/icode_generation.nit:900 */
4465 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AFloatExpr___n_float(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4466 fra
.me
.REG
[2] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4467 fra
.me
.REG
[2] = NEW_IFloatValue_icode___icode_base___IFloatValue___init(fra
.me
.REG
[2]);
4468 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4469 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4472 stack_frame_head
= fra
.me
.prev
;
4473 return fra
.me
.REG
[0];
4475 static const char LOCATE_syntax___icode_generation___ACharExpr___generate_icode
[] = "icode_generation::ACharExpr::(icode_generation::AExpr::generate_icode)";
4476 val_t
syntax___icode_generation___ACharExpr___generate_icode(val_t p0
, val_t p1
){
4477 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4479 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4480 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4482 fra
.me
.meth
= LOCATE_syntax___icode_generation___ACharExpr___generate_icode
;
4483 fra
.me
.has_broke
= 0;
4484 fra
.me
.REG_size
= 3;
4485 fra
.me
.nitni_local_ref_head
= NULL
;
4486 fra
.me
.REG
[0] = NIT_NULL
;
4487 fra
.me
.REG
[1] = NIT_NULL
;
4488 fra
.me
.REG
[2] = NIT_NULL
;
4491 /* syntax/icode_generation.nit:907 */
4492 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ACharExpr___n_char(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4493 fra
.me
.REG
[2] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4494 fra
.me
.REG
[2] = NEW_ICharValue_icode___icode_base___ICharValue___init(fra
.me
.REG
[2]);
4495 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4496 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4499 stack_frame_head
= fra
.me
.prev
;
4500 return fra
.me
.REG
[0];
4502 static const char LOCATE_syntax___icode_generation___AStringFormExpr___generate_icode
[] = "icode_generation::AStringFormExpr::(icode_generation::AExpr::generate_icode)";
4503 val_t
syntax___icode_generation___AStringFormExpr___generate_icode(val_t p0
, val_t p1
){
4504 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
4507 static val_t once_value_1
; /* Once value */
4508 static val_t once_value_2
; /* Once value */
4509 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4510 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4512 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStringFormExpr___generate_icode
;
4513 fra
.me
.has_broke
= 0;
4514 fra
.me
.REG_size
= 9;
4515 fra
.me
.nitni_local_ref_head
= NULL
;
4516 fra
.me
.REG
[0] = NIT_NULL
;
4517 fra
.me
.REG
[1] = NIT_NULL
;
4518 fra
.me
.REG
[2] = NIT_NULL
;
4519 fra
.me
.REG
[3] = NIT_NULL
;
4520 fra
.me
.REG
[4] = NIT_NULL
;
4521 fra
.me
.REG
[5] = NIT_NULL
;
4522 fra
.me
.REG
[6] = NIT_NULL
;
4523 fra
.me
.REG
[7] = NIT_NULL
;
4524 fra
.me
.REG
[8] = NIT_NULL
;
4527 /* syntax/icode_generation.nit:912 */
4528 fra
.me
.REG
[2] = fra
.me
.REG
[0];
4529 /* syntax/icode_generation.nit:914 */
4530 CALL_syntax___icode_generation___AStringFormExpr___compute_string_infos(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4531 /* syntax/icode_generation.nit:915 */
4532 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4533 /* syntax/icode_generation.nit:916 */
4534 fra
.me
.REG
[4] = NEW_IOnce_icode___icode_base___IOnce___init();
4535 /* syntax/icode_generation.nit:917 */
4536 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4537 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
4538 /* syntax/icode_generation.nit:918 */
4539 fra
.me
.REG
[4] = CALL_icode___icode_base___IOnce___body(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4540 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4541 /* syntax/icode_generation.nit:919 */
4542 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4543 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_nativestring(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4544 /* syntax/icode_generation.nit:920 */
4545 fra
.me
.REG
[6] = ATTR_syntax___icode_generation___AStringFormExpr____cstring(fra
.me
.REG
[2]);
4546 REGB0
= TAG_Bool(fra
.me
.REG
[6]!=NIT_NULL
);
4547 if (UNTAG_Bool(REGB0
)) {
4549 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 920);
4551 fra
.me
.REG
[6] = NEW_IStringValue_icode___icode_base___IStringValue___init(fra
.me
.REG
[6]);
4552 fra
.me
.REG
[6] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6], fra
.me
.REG
[4]);
4553 /* syntax/icode_generation.nit:921 */
4554 fra
.me
.REG
[0] = ATTR_syntax___icode_generation___AStringFormExpr____cstring_length(fra
.me
.REG
[2]);
4555 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
4556 if (UNTAG_Bool(REGB0
)) {
4557 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 921);
4559 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4560 fra
.me
.REG
[0] = NEW_IIntValue_icode___icode_base___IIntValue___init(fra
.me
.REG
[0]);
4561 fra
.me
.REG
[7] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4562 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
4563 fra
.me
.REG
[7] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[7]);
4564 /* syntax/icode_generation.nit:922 */
4565 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4566 if (!once_value_1
) {
4567 if (!once_value_2
) {
4568 fra
.me
.REG
[8] = BOX_NativeString("to_s_with_length");
4569 REGB0
= TAG_Int(16);
4570 fra
.me
.REG
[8] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[8])(fra
.me
.REG
[8], REGB0
);
4571 once_value_2
= fra
.me
.REG
[8];
4572 register_static_object(&once_value_2
);
4573 } else fra
.me
.REG
[8] = once_value_2
;
4574 fra
.me
.REG
[8] = fra
.me
.REG
[8];
4575 fra
.me
.REG
[8] = CALL_symbol___String___to_symbol(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
4576 once_value_1
= fra
.me
.REG
[8];
4577 register_static_object(&once_value_1
);
4578 } else fra
.me
.REG
[8] = once_value_1
;
4579 fra
.me
.REG
[8] = fra
.me
.REG
[8];
4580 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4], fra
.me
.REG
[8]);
4581 /* syntax/icode_generation.nit:923 */
4583 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4584 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
4585 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7]);
4586 fra
.me
.REG
[4] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[8], fra
.me
.REG
[4]);
4587 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4588 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[2]);
4589 /* syntax/icode_generation.nit:924 */
4590 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[2]);
4591 /* syntax/icode_generation.nit:925 */
4592 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4593 /* syntax/icode_generation.nit:926 */
4596 stack_frame_head
= fra
.me
.prev
;
4597 return fra
.me
.REG
[5];
4599 static const char LOCATE_syntax___icode_generation___AStringFormExpr___string_text
[] = "icode_generation::AStringFormExpr::string_text";
4600 val_t
syntax___icode_generation___AStringFormExpr___string_text(val_t p0
){
4601 struct {struct stack_frame_t me
;} fra
;
4603 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4604 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4606 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStringFormExpr___string_text
;
4607 fra
.me
.has_broke
= 0;
4608 fra
.me
.REG_size
= 0;
4609 fra
.me
.nitni_local_ref_head
= NULL
;
4610 /* syntax/icode_generation.nit:929 */
4611 nit_abort("Deferred method called", NULL
, LOCATE_syntax___icode_generation
, 929);
4612 stack_frame_head
= fra
.me
.prev
;
4615 static const char LOCATE_syntax___icode_generation___AStringFormExpr___compute_string_infos
[] = "icode_generation::AStringFormExpr::compute_string_infos";
4616 void syntax___icode_generation___AStringFormExpr___compute_string_infos(val_t p0
){
4617 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4625 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4626 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4628 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStringFormExpr___compute_string_infos
;
4629 fra
.me
.has_broke
= 0;
4630 fra
.me
.REG_size
= 3;
4631 fra
.me
.nitni_local_ref_head
= NULL
;
4632 fra
.me
.REG
[0] = NIT_NULL
;
4633 fra
.me
.REG
[1] = NIT_NULL
;
4634 fra
.me
.REG
[2] = NIT_NULL
;
4636 /* syntax/icode_generation.nit:941 */
4637 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AStringFormExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4638 fra
.me
.REG
[1] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4639 /* ../lib/standard/collection/array.nit:24 */
4640 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
4641 if (UNTAG_Bool(REGB0
)) {
4643 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4645 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1]);
4646 /* syntax/icode_generation.nit:942 */
4648 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
4649 if (UNTAG_Bool(REGB2
)) {
4651 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4653 /* ../lib/standard/kernel.nit:243 */
4654 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
4655 /* syntax/icode_generation.nit:942 */
4656 if (UNTAG_Bool(REGB1
)) {
4658 REGB1
= CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB1
);
4660 REGB0
= CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
4661 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB0
));
4662 if (UNTAG_Bool(REGB2
)) {
4664 /* ../lib/standard/kernel.nit:434 */
4665 REGB0
= TAG_Bool((REGB1
)==(REGB0
));
4666 /* syntax/icode_generation.nit:942 */
4670 REGB0
= TAG_Bool(0);
4673 if (UNTAG_Bool(REGB2
)) {
4674 /* syntax/icode_generation.nit:943 */
4676 /* ../lib/standard/collection/array.nit:24 */
4677 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
4678 if (UNTAG_Bool(REGB0
)) {
4680 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4682 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1]);
4683 /* syntax/icode_generation.nit:943 */
4685 /* ../lib/standard/kernel.nit:247 */
4686 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
4687 /* syntax/icode_generation.nit:943 */
4688 fra
.me
.REG
[2] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB2
, REGB1
);
4689 fra
.me
.REG
[1] = fra
.me
.REG
[2];
4691 /* syntax/icode_generation.nit:945 */
4693 /* ../lib/standard/collection/array.nit:24 */
4694 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
4695 if (UNTAG_Bool(REGB2
)) {
4697 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4699 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1]);
4700 /* syntax/icode_generation.nit:945 */
4702 /* ../lib/standard/kernel.nit:247 */
4703 REGB0
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB0
));
4704 /* syntax/icode_generation.nit:945 */
4705 fra
.me
.REG
[2] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB1
, REGB0
);
4706 fra
.me
.REG
[1] = fra
.me
.REG
[2];
4708 /* syntax/icode_generation.nit:947 */
4709 fra
.me
.REG
[2] = NEW_Buffer_standard___string___Buffer___init();
4710 /* syntax/icode_generation.nit:948 */
4712 /* syntax/icode_generation.nit:949 */
4714 /* syntax/icode_generation.nit:950 */
4716 /* ../lib/standard/collection/array.nit:24 */
4717 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
4718 if (UNTAG_Bool(REGB2
)) {
4720 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4722 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1]);
4723 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
4724 if (UNTAG_Bool(REGB3
)) {
4726 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4728 /* ../lib/standard/kernel.nit:242 */
4729 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
4730 /* syntax/icode_generation.nit:950 */
4731 if (UNTAG_Bool(REGB2
)) {
4732 /* syntax/icode_generation.nit:951 */
4733 REGB2
= CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB1
);
4734 /* syntax/icode_generation.nit:952 */
4735 REGB3
= TAG_Char('\\');
4736 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB3
));
4737 if (UNTAG_Bool(REGB4
)) {
4739 /* ../lib/standard/kernel.nit:434 */
4740 REGB3
= TAG_Bool((REGB2
)==(REGB3
));
4741 /* syntax/icode_generation.nit:952 */
4744 if (UNTAG_Bool(REGB4
)) {
4745 /* syntax/icode_generation.nit:953 */
4747 /* ../lib/standard/kernel.nit:245 */
4748 REGB4
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB4
));
4749 /* syntax/icode_generation.nit:953 */
4751 /* syntax/icode_generation.nit:954 */
4752 REGB4
= CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB1
);
4753 /* syntax/icode_generation.nit:955 */
4754 REGB3
= TAG_Char('{');
4755 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB4
,REGB3
));
4756 if (UNTAG_Bool(REGB5
)) {
4758 /* ../lib/standard/kernel.nit:434 */
4759 REGB3
= TAG_Bool((REGB4
)==(REGB3
));
4760 /* syntax/icode_generation.nit:955 */
4763 REGB5
= TAG_Bool(!UNTAG_Bool(REGB5
));
4764 if (UNTAG_Bool(REGB5
)) {
4765 REGB5
= TAG_Char('}');
4766 REGB3
= TAG_Bool(IS_EQUAL_OO(REGB4
,REGB5
));
4767 if (UNTAG_Bool(REGB3
)) {
4769 /* ../lib/standard/kernel.nit:434 */
4770 REGB5
= TAG_Bool((REGB4
)==(REGB5
));
4771 /* syntax/icode_generation.nit:955 */
4774 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
4776 REGB5
= TAG_Bool(0);
4779 if (UNTAG_Bool(REGB3
)) {
4780 /* syntax/icode_generation.nit:956 */
4781 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB2
);
4783 /* syntax/icode_generation.nit:958 */
4786 /* syntax/icode_generation.nit:959 */
4787 REGB4
= TAG_Char('"');
4788 REGB3
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB4
));
4789 if (UNTAG_Bool(REGB3
)) {
4791 /* ../lib/standard/kernel.nit:434 */
4792 REGB4
= TAG_Bool((REGB2
)==(REGB4
));
4793 /* syntax/icode_generation.nit:959 */
4796 if (UNTAG_Bool(REGB3
)) {
4797 /* syntax/icode_generation.nit:960 */
4798 REGB3
= TAG_Char('\\');
4799 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB3
);
4801 /* syntax/icode_generation.nit:961 */
4802 REGB3
= TAG_Char('\n');
4803 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB3
));
4804 if (UNTAG_Bool(REGB4
)) {
4806 /* ../lib/standard/kernel.nit:434 */
4807 REGB3
= TAG_Bool((REGB2
)==(REGB3
));
4808 /* syntax/icode_generation.nit:961 */
4811 if (UNTAG_Bool(REGB4
)) {
4812 /* syntax/icode_generation.nit:962 */
4813 REGB4
= TAG_Char('\\');
4814 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB4
);
4815 /* syntax/icode_generation.nit:963 */
4816 REGB4
= TAG_Char('n');
4821 /* syntax/icode_generation.nit:965 */
4823 /* ../lib/standard/kernel.nit:245 */
4824 REGB4
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB4
));
4825 /* syntax/icode_generation.nit:965 */
4827 /* syntax/icode_generation.nit:966 */
4828 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB2
);
4829 /* syntax/icode_generation.nit:967 */
4831 /* ../lib/standard/kernel.nit:245 */
4832 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
4833 /* syntax/icode_generation.nit:967 */
4836 /* syntax/icode_generation.nit:950 */
4841 /* syntax/icode_generation.nit:969 */
4842 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4843 ATTR_syntax___icode_generation___AStringFormExpr____cstring(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4844 /* syntax/icode_generation.nit:970 */
4845 ATTR_syntax___icode_generation___AStringFormExpr____cstring_length(fra
.me
.REG
[0]) = REGB0
;
4846 stack_frame_head
= fra
.me
.prev
;
4849 static const char LOCATE_syntax___icode_generation___AStringExpr___string_text
[] = "icode_generation::AStringExpr::(icode_generation::AStringFormExpr::string_text)";
4850 val_t
syntax___icode_generation___AStringExpr___string_text(val_t p0
){
4851 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4856 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4857 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4859 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStringExpr___string_text
;
4860 fra
.me
.has_broke
= 0;
4861 fra
.me
.REG_size
= 2;
4862 fra
.me
.nitni_local_ref_head
= NULL
;
4863 fra
.me
.REG
[0] = NIT_NULL
;
4864 fra
.me
.REG
[1] = NIT_NULL
;
4866 /* syntax/icode_generation.nit:975 */
4867 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AStringFormExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4868 fra
.me
.REG
[1] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4870 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AStringFormExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4871 fra
.me
.REG
[0] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4872 /* ../lib/standard/collection/array.nit:24 */
4873 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4874 if (UNTAG_Bool(REGB1
)) {
4876 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4878 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4879 /* syntax/icode_generation.nit:975 */
4881 /* ../lib/standard/kernel.nit:247 */
4882 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4883 /* syntax/icode_generation.nit:975 */
4884 fra
.me
.REG
[1] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4887 stack_frame_head
= fra
.me
.prev
;
4888 return fra
.me
.REG
[1];
4890 static const char LOCATE_syntax___icode_generation___AStartStringExpr___string_text
[] = "icode_generation::AStartStringExpr::(icode_generation::AStringFormExpr::string_text)";
4891 val_t
syntax___icode_generation___AStartStringExpr___string_text(val_t p0
){
4892 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4897 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4898 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4900 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStartStringExpr___string_text
;
4901 fra
.me
.has_broke
= 0;
4902 fra
.me
.REG_size
= 2;
4903 fra
.me
.nitni_local_ref_head
= NULL
;
4904 fra
.me
.REG
[0] = NIT_NULL
;
4905 fra
.me
.REG
[1] = NIT_NULL
;
4907 /* syntax/icode_generation.nit:978 */
4908 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AStringFormExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4909 fra
.me
.REG
[1] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4911 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AStringFormExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4912 fra
.me
.REG
[0] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4913 /* ../lib/standard/collection/array.nit:24 */
4914 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4915 if (UNTAG_Bool(REGB1
)) {
4917 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4919 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4920 /* syntax/icode_generation.nit:978 */
4922 /* ../lib/standard/kernel.nit:247 */
4923 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4924 /* syntax/icode_generation.nit:978 */
4925 fra
.me
.REG
[1] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4928 stack_frame_head
= fra
.me
.prev
;
4929 return fra
.me
.REG
[1];
4931 static const char LOCATE_syntax___icode_generation___AMidStringExpr___string_text
[] = "icode_generation::AMidStringExpr::(icode_generation::AStringFormExpr::string_text)";
4932 val_t
syntax___icode_generation___AMidStringExpr___string_text(val_t p0
){
4933 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4938 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4939 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4941 fra
.me
.meth
= LOCATE_syntax___icode_generation___AMidStringExpr___string_text
;
4942 fra
.me
.has_broke
= 0;
4943 fra
.me
.REG_size
= 2;
4944 fra
.me
.nitni_local_ref_head
= NULL
;
4945 fra
.me
.REG
[0] = NIT_NULL
;
4946 fra
.me
.REG
[1] = NIT_NULL
;
4948 /* syntax/icode_generation.nit:981 */
4949 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AStringFormExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4950 fra
.me
.REG
[1] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4952 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AStringFormExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4953 fra
.me
.REG
[0] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4954 /* ../lib/standard/collection/array.nit:24 */
4955 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4956 if (UNTAG_Bool(REGB1
)) {
4958 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4960 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4961 /* syntax/icode_generation.nit:981 */
4963 /* ../lib/standard/kernel.nit:247 */
4964 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4965 /* syntax/icode_generation.nit:981 */
4966 fra
.me
.REG
[1] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4969 stack_frame_head
= fra
.me
.prev
;
4970 return fra
.me
.REG
[1];
4972 static const char LOCATE_syntax___icode_generation___AEndStringExpr___string_text
[] = "icode_generation::AEndStringExpr::(icode_generation::AStringFormExpr::string_text)";
4973 val_t
syntax___icode_generation___AEndStringExpr___string_text(val_t p0
){
4974 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4979 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4980 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4982 fra
.me
.meth
= LOCATE_syntax___icode_generation___AEndStringExpr___string_text
;
4983 fra
.me
.has_broke
= 0;
4984 fra
.me
.REG_size
= 2;
4985 fra
.me
.nitni_local_ref_head
= NULL
;
4986 fra
.me
.REG
[0] = NIT_NULL
;
4987 fra
.me
.REG
[1] = NIT_NULL
;
4989 /* syntax/icode_generation.nit:984 */
4990 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AStringFormExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4991 fra
.me
.REG
[1] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4993 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AStringFormExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4994 fra
.me
.REG
[0] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4995 /* ../lib/standard/collection/array.nit:24 */
4996 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4997 if (UNTAG_Bool(REGB1
)) {
4999 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
5001 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
5002 /* syntax/icode_generation.nit:984 */
5004 /* ../lib/standard/kernel.nit:247 */
5005 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
5006 /* syntax/icode_generation.nit:984 */
5007 fra
.me
.REG
[1] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
5010 stack_frame_head
= fra
.me
.prev
;
5011 return fra
.me
.REG
[1];
5013 static const char LOCATE_syntax___icode_generation___ASuperstringExpr___generate_icode
[] = "icode_generation::ASuperstringExpr::(icode_generation::AExpr::generate_icode)";
5014 val_t
syntax___icode_generation___ASuperstringExpr___generate_icode(val_t p0
, val_t p1
){
5015 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
5018 static val_t once_value_1
; /* Once value */
5019 static val_t once_value_2
; /* Once value */
5020 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5021 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5023 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASuperstringExpr___generate_icode
;
5024 fra
.me
.has_broke
= 0;
5025 fra
.me
.REG_size
= 6;
5026 fra
.me
.nitni_local_ref_head
= NULL
;
5027 fra
.me
.REG
[0] = NIT_NULL
;
5028 fra
.me
.REG
[1] = NIT_NULL
;
5029 fra
.me
.REG
[2] = NIT_NULL
;
5030 fra
.me
.REG
[3] = NIT_NULL
;
5031 fra
.me
.REG
[4] = NIT_NULL
;
5032 fra
.me
.REG
[5] = NIT_NULL
;
5035 /* syntax/icode_generation.nit:990 */
5036 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASuperstringExpr___atype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5037 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5038 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5039 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___add_new_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], REGB0
);
5040 /* syntax/icode_generation.nit:991 */
5041 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5042 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5043 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5044 if (!once_value_1
) {
5045 if (!once_value_2
) {
5046 fra
.me
.REG
[5] = BOX_NativeString("to_s");
5048 fra
.me
.REG
[5] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
5049 once_value_2
= fra
.me
.REG
[5];
5050 register_static_object(&once_value_2
);
5051 } else fra
.me
.REG
[5] = once_value_2
;
5052 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5053 fra
.me
.REG
[5] = CALL_symbol___String___to_symbol(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5054 once_value_1
= fra
.me
.REG
[5];
5055 register_static_object(&once_value_1
);
5056 } else fra
.me
.REG
[5] = once_value_1
;
5057 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5058 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4], fra
.me
.REG
[5]);
5059 /* syntax/icode_generation.nit:992 */
5060 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5061 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[4])(fra
.me
.REG
[4], (&(fra
.me
)), ((fun_t
)OC_syntax___icode_generation___ASuperstringExpr___generate_icode_3
));
5062 /* syntax/icode_generation.nit:999 */
5064 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5065 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
5066 fra
.me
.REG
[4] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5067 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5068 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[0]);
5071 stack_frame_head
= fra
.me
.prev
;
5072 return fra
.me
.REG
[0];
5074 void OC_syntax___icode_generation___ASuperstringExpr___generate_icode_3(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
5075 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5080 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5081 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5083 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASuperstringExpr___generate_icode
;
5084 fra
.me
.has_broke
= 0;
5085 fra
.me
.REG_size
= 3;
5086 fra
.me
.nitni_local_ref_head
= NULL
;
5087 fra
.me
.REG
[0] = NIT_NULL
;
5088 fra
.me
.REG
[1] = NIT_NULL
;
5089 fra
.me
.REG
[2] = NIT_NULL
;
5090 fra
.me
.closure_ctx
= closctx_param
;
5091 fra
.me
.closure_funs
= CREG
;
5093 CREG
[0] = clos_fun0
;
5094 /* syntax/icode_generation.nit:993 */
5095 fra
.me
.REG
[1] = CALL_syntax___icode_generation___A2IContext___generate_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
5096 /* syntax/icode_generation.nit:994 */
5097 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5098 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(closctx
->REG
[0])(closctx
->REG
[0]);
5099 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[0],fra
.me
.REG
[2]));
5100 if (UNTAG_Bool(REGB0
)) {
5102 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
5105 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5106 if (UNTAG_Bool(REGB0
)) {
5107 /* syntax/icode_generation.nit:995 */
5109 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5110 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
5111 fra
.me
.REG
[2] = NEW_ICall_icode___icode_base___ICall___init(closctx
->REG
[5], fra
.me
.REG
[2]);
5112 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(closctx
->REG
[0])(closctx
->REG
[0]);
5113 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
5114 fra
.me
.REG
[1] = fra
.me
.REG
[0];
5116 /* syntax/icode_generation.nit:997 */
5117 CALL_syntax___icode_generation___A2IContext___add_call_array_add(closctx
->REG
[1])(closctx
->REG
[1], closctx
->REG
[2], fra
.me
.REG
[1]);
5118 stack_frame_head
= fra
.me
.prev
;
5121 static const char LOCATE_syntax___icode_generation___ANullExpr___generate_icode
[] = "icode_generation::ANullExpr::(icode_generation::AExpr::generate_icode)";
5122 val_t
syntax___icode_generation___ANullExpr___generate_icode(val_t p0
, val_t p1
){
5123 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5125 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5126 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5128 fra
.me
.meth
= LOCATE_syntax___icode_generation___ANullExpr___generate_icode
;
5129 fra
.me
.has_broke
= 0;
5130 fra
.me
.REG_size
= 2;
5131 fra
.me
.nitni_local_ref_head
= NULL
;
5132 fra
.me
.REG
[0] = NIT_NULL
;
5133 fra
.me
.REG
[1] = NIT_NULL
;
5136 /* syntax/icode_generation.nit:1006 */
5137 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___lit_null_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5140 stack_frame_head
= fra
.me
.prev
;
5141 return fra
.me
.REG
[1];
5143 static const char LOCATE_syntax___icode_generation___AArrayExpr___generate_icode
[] = "icode_generation::AArrayExpr::(icode_generation::AExpr::generate_icode)";
5144 val_t
syntax___icode_generation___AArrayExpr___generate_icode(val_t p0
, val_t p1
){
5145 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5148 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5149 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5151 fra
.me
.meth
= LOCATE_syntax___icode_generation___AArrayExpr___generate_icode
;
5152 fra
.me
.has_broke
= 0;
5153 fra
.me
.REG_size
= 3;
5154 fra
.me
.nitni_local_ref_head
= NULL
;
5155 fra
.me
.REG
[0] = NIT_NULL
;
5156 fra
.me
.REG
[1] = NIT_NULL
;
5157 fra
.me
.REG
[2] = NIT_NULL
;
5160 /* syntax/icode_generation.nit:1013 */
5161 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AArrayExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5162 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AExprs___n_exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5163 /* syntax/icode_generation.nit:1014 */
5164 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5165 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5166 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___add_new_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], REGB0
);
5167 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[2])(fra
.me
.REG
[2], (&(fra
.me
)), ((fun_t
)OC_syntax___icode_generation___AArrayExpr___generate_icode_1
));
5168 /* syntax/icode_generation.nit:1019 */
5171 stack_frame_head
= fra
.me
.prev
;
5172 return fra
.me
.REG
[0];
5174 void OC_syntax___icode_generation___AArrayExpr___generate_icode_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
5175 struct {struct stack_frame_t me
;} fra
;
5178 /* syntax/icode_generation.nit:1015 */
5179 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5180 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5182 fra
.me
.meth
= LOCATE_syntax___icode_generation___AArrayExpr___generate_icode
;
5183 fra
.me
.has_broke
= 0;
5184 fra
.me
.REG_size
= 1;
5185 fra
.me
.nitni_local_ref_head
= NULL
;
5186 fra
.me
.REG
[0] = NIT_NULL
;
5187 fra
.me
.closure_ctx
= closctx_param
;
5188 fra
.me
.closure_funs
= CREG
;
5190 CREG
[0] = clos_fun0
;
5191 /* syntax/icode_generation.nit:1016 */
5192 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
5193 /* syntax/icode_generation.nit:1017 */
5194 CALL_syntax___icode_generation___A2IContext___add_call_array_add(closctx
->REG
[1])(closctx
->REG
[1], closctx
->REG
[0], fra
.me
.REG
[0]);
5195 stack_frame_head
= fra
.me
.prev
;
5198 static const char LOCATE_syntax___icode_generation___ACrangeExpr___generate_icode
[] = "icode_generation::ACrangeExpr::(icode_generation::AExpr::generate_icode)";
5199 val_t
syntax___icode_generation___ACrangeExpr___generate_icode(val_t p0
, val_t p1
){
5200 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5203 static val_t once_value_1
; /* Once value */
5204 static val_t once_value_2
; /* Once value */
5205 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5206 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5208 fra
.me
.meth
= LOCATE_syntax___icode_generation___ACrangeExpr___generate_icode
;
5209 fra
.me
.has_broke
= 0;
5210 fra
.me
.REG_size
= 7;
5211 fra
.me
.nitni_local_ref_head
= NULL
;
5212 fra
.me
.REG
[0] = NIT_NULL
;
5213 fra
.me
.REG
[1] = NIT_NULL
;
5214 fra
.me
.REG
[2] = NIT_NULL
;
5215 fra
.me
.REG
[3] = NIT_NULL
;
5216 fra
.me
.REG
[4] = NIT_NULL
;
5217 fra
.me
.REG
[5] = NIT_NULL
;
5218 fra
.me
.REG
[6] = NIT_NULL
;
5221 /* syntax/icode_generation.nit:1026 */
5222 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5223 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5224 /* syntax/icode_generation.nit:1027 */
5225 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5226 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5227 /* syntax/icode_generation.nit:1028 */
5228 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5229 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5230 if (!once_value_1
) {
5231 if (!once_value_2
) {
5232 fra
.me
.REG
[6] = BOX_NativeString("init");
5234 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB0
);
5235 once_value_2
= fra
.me
.REG
[6];
5236 register_static_object(&once_value_2
);
5237 } else fra
.me
.REG
[6] = once_value_2
;
5238 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5239 fra
.me
.REG
[6] = CALL_symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5240 once_value_1
= fra
.me
.REG
[6];
5241 register_static_object(&once_value_1
);
5242 } else fra
.me
.REG
[6] = once_value_1
;
5243 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5244 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5], fra
.me
.REG
[6]);
5245 /* syntax/icode_generation.nit:1029 */
5246 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5248 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5249 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
5250 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5251 fra
.me
.REG
[4] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[5], fra
.me
.REG
[6], fra
.me
.REG
[4]);
5252 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5253 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[0]);
5256 stack_frame_head
= fra
.me
.prev
;
5257 return fra
.me
.REG
[0];
5259 static const char LOCATE_syntax___icode_generation___AOrangeExpr___generate_icode
[] = "icode_generation::AOrangeExpr::(icode_generation::AExpr::generate_icode)";
5260 val_t
syntax___icode_generation___AOrangeExpr___generate_icode(val_t p0
, val_t p1
){
5261 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5264 static val_t once_value_1
; /* Once value */
5265 static val_t once_value_2
; /* Once value */
5266 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5267 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5269 fra
.me
.meth
= LOCATE_syntax___icode_generation___AOrangeExpr___generate_icode
;
5270 fra
.me
.has_broke
= 0;
5271 fra
.me
.REG_size
= 7;
5272 fra
.me
.nitni_local_ref_head
= NULL
;
5273 fra
.me
.REG
[0] = NIT_NULL
;
5274 fra
.me
.REG
[1] = NIT_NULL
;
5275 fra
.me
.REG
[2] = NIT_NULL
;
5276 fra
.me
.REG
[3] = NIT_NULL
;
5277 fra
.me
.REG
[4] = NIT_NULL
;
5278 fra
.me
.REG
[5] = NIT_NULL
;
5279 fra
.me
.REG
[6] = NIT_NULL
;
5282 /* syntax/icode_generation.nit:1036 */
5283 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5284 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5285 /* syntax/icode_generation.nit:1037 */
5286 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5287 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5288 /* syntax/icode_generation.nit:1038 */
5289 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5290 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5291 if (!once_value_1
) {
5292 if (!once_value_2
) {
5293 fra
.me
.REG
[6] = BOX_NativeString("without_last");
5294 REGB0
= TAG_Int(12);
5295 fra
.me
.REG
[6] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB0
);
5296 once_value_2
= fra
.me
.REG
[6];
5297 register_static_object(&once_value_2
);
5298 } else fra
.me
.REG
[6] = once_value_2
;
5299 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5300 fra
.me
.REG
[6] = CALL_symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5301 once_value_1
= fra
.me
.REG
[6];
5302 register_static_object(&once_value_1
);
5303 } else fra
.me
.REG
[6] = once_value_1
;
5304 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5305 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5], fra
.me
.REG
[6]);
5306 /* syntax/icode_generation.nit:1039 */
5307 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5309 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5310 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
5311 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5312 fra
.me
.REG
[4] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[5], fra
.me
.REG
[6], fra
.me
.REG
[4]);
5313 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5314 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[0]);
5317 stack_frame_head
= fra
.me
.prev
;
5318 return fra
.me
.REG
[0];
5320 static const char LOCATE_syntax___icode_generation___ASuperExpr___generate_icode
[] = "icode_generation::ASuperExpr::(icode_generation::AExpr::generate_icode)";
5321 val_t
syntax___icode_generation___ASuperExpr___generate_icode(val_t p0
, val_t p1
){
5322 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
5328 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5329 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5331 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASuperExpr___generate_icode
;
5332 fra
.me
.has_broke
= 0;
5333 fra
.me
.REG_size
= 6;
5334 fra
.me
.nitni_local_ref_head
= NULL
;
5335 fra
.me
.REG
[0] = NIT_NULL
;
5336 fra
.me
.REG
[1] = NIT_NULL
;
5337 fra
.me
.REG
[2] = NIT_NULL
;
5338 fra
.me
.REG
[3] = NIT_NULL
;
5339 fra
.me
.REG
[4] = NIT_NULL
;
5340 fra
.me
.REG
[5] = NIT_NULL
;
5343 /* syntax/icode_generation.nit:1046 */
5344 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5345 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5346 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5348 /* ../lib/standard/kernel.nit:247 */
5349 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
5350 /* syntax/icode_generation.nit:1047 */
5351 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASuperExpr___init_in_superclass(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5352 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5353 if (UNTAG_Bool(REGB0
)) {
5355 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5356 if (UNTAG_Bool(REGB2
)) {
5357 REGB2
= TAG_Bool(0);
5360 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5364 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5365 if (UNTAG_Bool(REGB0
)) {
5366 /* syntax/icode_generation.nit:1048 */
5367 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASuperExpr___init_in_superclass(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5368 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5369 if (UNTAG_Bool(REGB0
)) {
5370 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1048);
5372 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5373 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5374 if (UNTAG_Bool(REGB0
)) {
5375 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1048);
5377 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5380 /* syntax/icode_generation.nit:1050 */
5382 /* ../lib/standard/kernel.nit:245 */
5383 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
5384 /* syntax/icode_generation.nit:1050 */
5385 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5386 /* syntax/icode_generation.nit:1051 */
5387 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5388 fra
.me
.REG
[3] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5390 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
5391 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5392 /* syntax/icode_generation.nit:1052 */
5393 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5394 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AExprs___n_exprs(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5395 /* syntax/icode_generation.nit:1053 */
5396 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5397 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
5398 if (UNTAG_Bool(REGB2
)) {
5400 /* ../lib/standard/kernel.nit:237 */
5401 REGB0
= TAG_Bool((REGB0
)==(REGB1
));
5402 /* syntax/icode_generation.nit:1053 */
5405 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
5406 if (UNTAG_Bool(REGB2
)) {
5407 /* syntax/icode_generation.nit:1054 */
5409 /* ../lib/standard/kernel.nit:404 */
5411 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
5412 if (UNTAG_Bool(REGB0
)) {
5414 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5416 /* ../lib/standard/kernel.nit:242 */
5417 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
5418 /* ../lib/standard/kernel.nit:404 */
5419 if (UNTAG_Bool(REGB0
)) {
5420 /* syntax/icode_generation.nit:1054 */
5422 /* syntax/icode_generation.nit:1055 */
5423 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5424 fra
.me
.REG
[4] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5426 /* ../lib/standard/kernel.nit:245 */
5427 REGB3
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB3
));
5428 /* syntax/icode_generation.nit:1055 */
5429 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB3
);
5430 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5431 /* ../lib/standard/kernel.nit:406 */
5433 /* ../lib/standard/kernel.nit:245 */
5434 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
5435 /* ../lib/standard/kernel.nit:406 */
5438 /* ../lib/standard/kernel.nit:404 */
5444 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[3])(fra
.me
.REG
[3], (&(fra
.me
)), ((fun_t
)OC_syntax___icode_generation___ASuperExpr___generate_icode_2
));
5446 /* syntax/icode_generation.nit:1062 */
5447 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ASuperExpr___init_in_superclass(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5448 /* syntax/icode_generation.nit:1063 */
5449 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5450 if (UNTAG_Bool(REGB2
)) {
5452 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5453 if (UNTAG_Bool(REGB1
)) {
5454 REGB1
= TAG_Bool(0);
5457 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
5461 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
5462 if (UNTAG_Bool(REGB2
)) {
5463 /* syntax/icode_generation.nit:1064 */
5464 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5465 if (UNTAG_Bool(REGB2
)) {
5466 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1064);
5468 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5469 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5470 if (UNTAG_Bool(REGB2
)) {
5471 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1064);
5473 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5474 /* syntax/icode_generation.nit:1065 */
5475 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5476 if (UNTAG_Bool(REGB2
)) {
5478 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5479 if (UNTAG_Bool(REGB1
)) {
5480 REGB1
= TAG_Bool(0);
5483 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5487 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
5488 if (UNTAG_Bool(REGB2
)) {
5489 /* syntax/icode_generation.nit:1066 */
5490 fra
.me
.REG
[5] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5491 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[4]);
5494 /* syntax/icode_generation.nit:1068 */
5495 fra
.me
.REG
[5] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5496 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5497 /* syntax/icode_generation.nit:1069 */
5498 fra
.me
.REG
[4] = NIT_NULL
;
5502 /* syntax/icode_generation.nit:1072 */
5503 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5504 fra
.me
.REG
[3] = fra
.me
.REG
[0];
5505 /* syntax/icode_generation.nit:1073 */
5506 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5507 if (UNTAG_Bool(REGB2
)) {
5508 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1073);
5510 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5511 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5512 if (UNTAG_Bool(REGB2
)) {
5513 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1073);
5515 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5516 /* syntax/icode_generation.nit:1074 */
5517 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5518 if (UNTAG_Bool(REGB2
)) {
5520 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5521 if (UNTAG_Bool(REGB1
)) {
5522 REGB1
= TAG_Bool(0);
5525 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
5529 if (UNTAG_Bool(REGB2
)) {
5530 /* syntax/icode_generation.nit:1075 */
5531 fra
.me
.REG
[5] = NEW_ISuper_icode___icode_base___ISuper___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5532 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5533 /* syntax/icode_generation.nit:1076 */
5534 fra
.me
.REG
[4] = NIT_NULL
;
5537 /* syntax/icode_generation.nit:1078 */
5538 fra
.me
.REG
[2] = NEW_ISuper_icode___icode_base___ISuper___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5539 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
5540 fra
.me
.REG
[4] = fra
.me
.REG
[0];
5545 stack_frame_head
= fra
.me
.prev
;
5546 return fra
.me
.REG
[4];
5548 void OC_syntax___icode_generation___ASuperExpr___generate_icode_2(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
5549 struct {struct stack_frame_t me
;} fra
;
5552 /* syntax/icode_generation.nit:1058 */
5553 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5554 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5556 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASuperExpr___generate_icode
;
5557 fra
.me
.has_broke
= 0;
5558 fra
.me
.REG_size
= 1;
5559 fra
.me
.nitni_local_ref_head
= NULL
;
5560 fra
.me
.REG
[0] = NIT_NULL
;
5561 fra
.me
.closure_ctx
= closctx_param
;
5562 fra
.me
.closure_funs
= CREG
;
5564 CREG
[0] = clos_fun0
;
5565 /* syntax/icode_generation.nit:1059 */
5566 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
5567 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
5568 stack_frame_head
= fra
.me
.prev
;
5571 static const char LOCATE_syntax___icode_generation___AAttrExpr___generate_icode
[] = "icode_generation::AAttrExpr::(icode_generation::AExpr::generate_icode)";
5572 val_t
syntax___icode_generation___AAttrExpr___generate_icode(val_t p0
, val_t p1
){
5573 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5576 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5577 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5579 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAttrExpr___generate_icode
;
5580 fra
.me
.has_broke
= 0;
5581 fra
.me
.REG_size
= 4;
5582 fra
.me
.nitni_local_ref_head
= NULL
;
5583 fra
.me
.REG
[0] = NIT_NULL
;
5584 fra
.me
.REG
[1] = NIT_NULL
;
5585 fra
.me
.REG
[2] = NIT_NULL
;
5586 fra
.me
.REG
[3] = NIT_NULL
;
5589 /* syntax/icode_generation.nit:1087 */
5590 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5591 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5592 /* syntax/icode_generation.nit:1088 */
5593 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5594 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5595 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5596 if (UNTAG_Bool(REGB0
)) {
5597 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5599 /* syntax/icode_generation.nit:1089 */
5600 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5601 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___add_attr_read(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
5604 stack_frame_head
= fra
.me
.prev
;
5605 return fra
.me
.REG
[2];
5607 static const char LOCATE_syntax___icode_generation___AAttrAssignExpr___generate_icode
[] = "icode_generation::AAttrAssignExpr::(icode_generation::AExpr::generate_icode)";
5608 val_t
syntax___icode_generation___AAttrAssignExpr___generate_icode(val_t p0
, val_t p1
){
5609 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5612 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5613 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5615 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAttrAssignExpr___generate_icode
;
5616 fra
.me
.has_broke
= 0;
5617 fra
.me
.REG_size
= 4;
5618 fra
.me
.nitni_local_ref_head
= NULL
;
5619 fra
.me
.REG
[0] = NIT_NULL
;
5620 fra
.me
.REG
[1] = NIT_NULL
;
5621 fra
.me
.REG
[2] = NIT_NULL
;
5622 fra
.me
.REG
[3] = NIT_NULL
;
5625 /* syntax/icode_generation.nit:1096 */
5626 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5627 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5628 /* syntax/icode_generation.nit:1097 */
5629 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5630 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5631 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5632 if (UNTAG_Bool(REGB0
)) {
5633 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5635 /* syntax/icode_generation.nit:1098 */
5636 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5637 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5638 /* syntax/icode_generation.nit:1099 */
5639 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5640 fra
.me
.REG
[3] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5641 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5642 /* syntax/icode_generation.nit:1100 */
5643 fra
.me
.REG
[3] = NIT_NULL
;
5646 stack_frame_head
= fra
.me
.prev
;
5647 return fra
.me
.REG
[3];
5649 static const char LOCATE_syntax___icode_generation___AAttrReassignExpr___generate_icode
[] = "icode_generation::AAttrReassignExpr::(icode_generation::AExpr::generate_icode)";
5650 val_t
syntax___icode_generation___AAttrReassignExpr___generate_icode(val_t p0
, val_t p1
){
5651 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5654 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5655 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5657 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAttrReassignExpr___generate_icode
;
5658 fra
.me
.has_broke
= 0;
5659 fra
.me
.REG_size
= 7;
5660 fra
.me
.nitni_local_ref_head
= NULL
;
5661 fra
.me
.REG
[0] = NIT_NULL
;
5662 fra
.me
.REG
[1] = NIT_NULL
;
5663 fra
.me
.REG
[2] = NIT_NULL
;
5664 fra
.me
.REG
[3] = NIT_NULL
;
5665 fra
.me
.REG
[4] = NIT_NULL
;
5666 fra
.me
.REG
[5] = NIT_NULL
;
5667 fra
.me
.REG
[6] = NIT_NULL
;
5670 /* syntax/icode_generation.nit:1106 */
5671 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5672 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5673 /* syntax/icode_generation.nit:1107 */
5674 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5675 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5676 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5677 if (UNTAG_Bool(REGB0
)) {
5678 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5680 /* syntax/icode_generation.nit:1108 */
5681 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5682 fra
.me
.REG
[3] = NEW_IAttrRead_icode___icode_base___IAttrRead___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5683 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5684 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
5685 /* syntax/icode_generation.nit:1109 */
5686 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5687 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5688 /* syntax/icode_generation.nit:1110 */
5689 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5691 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5692 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
5693 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
5694 fra
.me
.REG
[6] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5695 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5696 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6], fra
.me
.REG
[5]);
5697 /* syntax/icode_generation.nit:1111 */
5698 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5699 fra
.me
.REG
[5] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[5]);
5700 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5701 /* syntax/icode_generation.nit:1112 */
5702 fra
.me
.REG
[5] = NIT_NULL
;
5705 stack_frame_head
= fra
.me
.prev
;
5706 return fra
.me
.REG
[5];
5708 static const char LOCATE_syntax___icode_generation___AIssetAttrExpr___generate_icode
[] = "icode_generation::AIssetAttrExpr::(icode_generation::AExpr::generate_icode)";
5709 val_t
syntax___icode_generation___AIssetAttrExpr___generate_icode(val_t p0
, val_t p1
){
5710 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5713 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5714 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5716 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIssetAttrExpr___generate_icode
;
5717 fra
.me
.has_broke
= 0;
5718 fra
.me
.REG_size
= 4;
5719 fra
.me
.nitni_local_ref_head
= NULL
;
5720 fra
.me
.REG
[0] = NIT_NULL
;
5721 fra
.me
.REG
[1] = NIT_NULL
;
5722 fra
.me
.REG
[2] = NIT_NULL
;
5723 fra
.me
.REG
[3] = NIT_NULL
;
5726 /* syntax/icode_generation.nit:1119 */
5727 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5728 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5729 /* syntax/icode_generation.nit:1120 */
5730 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5731 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5732 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5733 if (UNTAG_Bool(REGB0
)) {
5734 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5736 /* syntax/icode_generation.nit:1121 */
5737 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5738 fra
.me
.REG
[2] = NEW_IAttrIsset_icode___icode_base___IAttrIsset___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5739 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5740 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
5743 stack_frame_head
= fra
.me
.prev
;
5744 return fra
.me
.REG
[0];
5746 static const char LOCATE_syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in
[] = "icode_generation::AAbsAbsSendExpr::generate_icode_for_arguments_in";
5747 void syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
5748 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5761 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5762 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5764 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in
;
5765 fra
.me
.has_broke
= 0;
5766 fra
.me
.REG_size
= 7;
5767 fra
.me
.nitni_local_ref_head
= NULL
;
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
[3] = NIT_NULL
;
5772 fra
.me
.REG
[4] = NIT_NULL
;
5773 fra
.me
.REG
[5] = NIT_NULL
;
5774 fra
.me
.REG
[6] = NIT_NULL
;
5779 /* syntax/icode_generation.nit:1129 */
5780 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5781 /* syntax/icode_generation.nit:1130 */
5782 REGB1
= CALL_metamodel___vararg___MMSignature___vararg_rank(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5783 /* syntax/icode_generation.nit:1131 */
5784 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5785 /* ../lib/standard/collection/array.nit:24 */
5786 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
5787 if (UNTAG_Bool(REGB2
)) {
5789 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
5791 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
5792 /* syntax/icode_generation.nit:1133 */
5794 /* syntax/icode_generation.nit:1134 */
5796 /* ../lib/standard/kernel.nit:399 */
5798 /* ../lib/standard/kernel.nit:404 */
5800 REGB6
= TAG_Bool(VAL_ISA(REGB5
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4
), VTID_standard___kernel___Comparable___OTHER(REGB4
))) /*cast OTHER*/;
5801 if (UNTAG_Bool(REGB6
)) {
5803 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5805 /* ../lib/standard/kernel.nit:242 */
5806 REGB6
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB5
));
5807 /* ../lib/standard/kernel.nit:404 */
5808 if (UNTAG_Bool(REGB6
)) {
5809 /* syntax/icode_generation.nit:1134 */
5811 /* syntax/icode_generation.nit:1136 */
5812 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB6
);
5813 /* syntax/icode_generation.nit:1137 */
5814 REGB7
= TAG_Bool(IS_EQUAL_OO(REGB6
,REGB1
));
5815 if (UNTAG_Bool(REGB7
)) {
5817 /* ../lib/standard/kernel.nit:237 */
5818 REGB6
= TAG_Bool((REGB6
)==(REGB1
));
5819 /* syntax/icode_generation.nit:1137 */
5822 if (UNTAG_Bool(REGB7
)) {
5823 /* syntax/icode_generation.nit:1138 */
5824 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5825 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5826 /* ../lib/standard/kernel.nit:247 */
5827 REGB7
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB0
));
5828 /* syntax/icode_generation.nit:1138 */
5829 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___add_new_array(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], REGB7
);
5830 /* syntax/icode_generation.nit:1139 */
5832 /* ../lib/standard/kernel.nit:247 */
5833 REGB6
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB0
));
5834 /* ../lib/standard/kernel.nit:393 */
5836 REGB8
= TAG_Bool(VAL_ISA(REGB6
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB7
), VTID_standard___kernel___Comparable___OTHER(REGB7
))) /*cast OTHER*/;
5837 if (UNTAG_Bool(REGB8
)) {
5839 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5841 /* ../lib/standard/kernel.nit:241 */
5842 REGB8
= TAG_Bool(UNTAG_Int(REGB7
)<=UNTAG_Int(REGB6
));
5843 /* ../lib/standard/kernel.nit:393 */
5844 if (UNTAG_Bool(REGB8
)) {
5845 /* ../lib/standard/collection/array.nit:279 */
5846 fra
.me
.REG
[5] = fra
.me
.REG
[0];
5848 /* ../lib/standard/collection/array.nit:281 */
5850 REGB10
= TAG_Bool(VAL_ISA(REGB9
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
5851 if (UNTAG_Bool(REGB10
)) {
5853 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5855 /* ../lib/standard/kernel.nit:243 */
5856 REGB9
= TAG_Bool(UNTAG_Int(REGB8
)>=UNTAG_Int(REGB9
));
5857 /* ../lib/standard/collection/array.nit:281 */
5858 if (UNTAG_Bool(REGB9
)) {
5859 REGB9
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
5860 if (UNTAG_Bool(REGB9
)) {
5862 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 281);
5864 REGB9
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
5865 REGB10
= TAG_Bool(VAL_ISA(REGB9
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
5866 if (UNTAG_Bool(REGB10
)) {
5868 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5870 /* ../lib/standard/kernel.nit:242 */
5871 REGB9
= TAG_Bool(UNTAG_Int(REGB8
)<UNTAG_Int(REGB9
));
5873 /* ../lib/standard/collection/array.nit:281 */
5874 REGB10
= TAG_Bool(0);
5877 if (UNTAG_Bool(REGB9
)) {
5879 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 281);
5881 /* ../lib/standard/collection/array.nit:282 */
5882 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
5883 REGB9
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5884 if (UNTAG_Bool(REGB9
)) {
5885 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 282);
5887 /* ../lib/standard/collection/array.nit:725 */
5888 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB8
)];
5889 /* ../lib/standard/collection/array.nit:282 */
5892 /* syntax/icode_generation.nit:1141 */
5893 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5894 CALL_syntax___icode_generation___A2IContext___add_call_array_add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[6]);
5895 /* syntax/icode_generation.nit:1142 */
5897 /* ../lib/standard/kernel.nit:245 */
5898 REGB8
= TAG_Int(UNTAG_Int(REGB3
)+UNTAG_Int(REGB8
));
5899 /* syntax/icode_generation.nit:1142 */
5901 /* ../lib/standard/kernel.nit:395 */
5903 /* ../lib/standard/kernel.nit:245 */
5904 REGB8
= TAG_Int(UNTAG_Int(REGB7
)+UNTAG_Int(REGB8
));
5905 /* ../lib/standard/kernel.nit:395 */
5908 /* ../lib/standard/kernel.nit:393 */
5913 /* syntax/icode_generation.nit:1144 */
5914 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5916 /* ../lib/standard/collection/array.nit:279 */
5917 fra
.me
.REG
[4] = fra
.me
.REG
[0];
5919 /* ../lib/standard/collection/array.nit:281 */
5921 REGB8
= TAG_Bool(VAL_ISA(REGB6
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB7
), VTID_standard___kernel___Comparable___OTHER(REGB7
))) /*cast OTHER*/;
5922 if (UNTAG_Bool(REGB8
)) {
5924 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5926 /* ../lib/standard/kernel.nit:243 */
5927 REGB6
= TAG_Bool(UNTAG_Int(REGB7
)>=UNTAG_Int(REGB6
));
5928 /* ../lib/standard/collection/array.nit:281 */
5929 if (UNTAG_Bool(REGB6
)) {
5930 REGB6
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
5931 if (UNTAG_Bool(REGB6
)) {
5933 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 281);
5935 REGB6
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
5936 REGB8
= TAG_Bool(VAL_ISA(REGB6
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB7
), VTID_standard___kernel___Comparable___OTHER(REGB7
))) /*cast OTHER*/;
5937 if (UNTAG_Bool(REGB8
)) {
5939 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5941 /* ../lib/standard/kernel.nit:242 */
5942 REGB6
= TAG_Bool(UNTAG_Int(REGB7
)<UNTAG_Int(REGB6
));
5944 /* ../lib/standard/collection/array.nit:281 */
5945 REGB8
= TAG_Bool(0);
5948 if (UNTAG_Bool(REGB6
)) {
5950 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 281);
5952 /* ../lib/standard/collection/array.nit:282 */
5953 fra
.me
.REG
[4] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
5954 REGB6
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5955 if (UNTAG_Bool(REGB6
)) {
5956 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 282);
5958 /* ../lib/standard/collection/array.nit:725 */
5959 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB7
)];
5960 /* ../lib/standard/collection/array.nit:282 */
5963 /* syntax/icode_generation.nit:1146 */
5964 fra
.me
.REG
[5] = fra
.me
.REG
[4];
5965 /* syntax/icode_generation.nit:1147 */
5966 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5967 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5968 /* syntax/icode_generation.nit:1148 */
5970 /* ../lib/standard/kernel.nit:245 */
5971 REGB7
= TAG_Int(UNTAG_Int(REGB3
)+UNTAG_Int(REGB7
));
5972 /* syntax/icode_generation.nit:1148 */
5975 /* ../lib/standard/kernel.nit:406 */
5977 /* ../lib/standard/kernel.nit:245 */
5978 REGB7
= TAG_Int(UNTAG_Int(REGB4
)+UNTAG_Int(REGB7
));
5979 /* ../lib/standard/kernel.nit:406 */
5982 /* ../lib/standard/kernel.nit:404 */
5987 stack_frame_head
= fra
.me
.prev
;
5990 static const char LOCATE_syntax___icode_generation___ASendExpr___generate_icode
[] = "icode_generation::ASendExpr::(icode_generation::AExpr::generate_icode)";
5991 val_t
syntax___icode_generation___ASendExpr___generate_icode(val_t p0
, val_t p1
){
5992 struct {struct stack_frame_t me
; val_t MORE_REG
[15];} fra
;
5999 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6000 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6002 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASendExpr___generate_icode
;
6003 fra
.me
.has_broke
= 0;
6004 fra
.me
.REG_size
= 16;
6005 fra
.me
.nitni_local_ref_head
= NULL
;
6006 fra
.me
.REG
[0] = NIT_NULL
;
6007 fra
.me
.REG
[1] = NIT_NULL
;
6008 fra
.me
.REG
[2] = NIT_NULL
;
6009 fra
.me
.REG
[3] = NIT_NULL
;
6010 fra
.me
.REG
[4] = NIT_NULL
;
6011 fra
.me
.REG
[5] = NIT_NULL
;
6012 fra
.me
.REG
[6] = NIT_NULL
;
6013 fra
.me
.REG
[7] = NIT_NULL
;
6014 fra
.me
.REG
[8] = NIT_NULL
;
6015 fra
.me
.REG
[9] = NIT_NULL
;
6016 fra
.me
.REG
[10] = NIT_NULL
;
6017 fra
.me
.REG
[11] = NIT_NULL
;
6018 fra
.me
.REG
[12] = NIT_NULL
;
6019 fra
.me
.REG
[13] = NIT_NULL
;
6020 fra
.me
.REG
[14] = NIT_NULL
;
6021 fra
.me
.REG
[15] = NIT_NULL
;
6024 /* syntax/icode_generation.nit:1155 */
6025 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6026 /* syntax/icode_generation.nit:1157 */
6027 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6028 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6029 /* syntax/icode_generation.nit:1158 */
6030 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___init();
6031 /* syntax/icode_generation.nit:1159 */
6032 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6033 /* syntax/icode_generation.nit:1160 */
6034 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6035 /* syntax/icode_generation.nit:1161 */
6036 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6037 REGB0
= TAG_Bool((fra
.me
.REG
[5]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[5], COLOR_metamodel___static_type___MMSignature
, ID_metamodel___static_type___MMSignature
)) /*cast MMSignature*/;
6038 if (UNTAG_Bool(REGB0
)) {
6040 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1161);
6042 CALL_syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
6043 /* syntax/icode_generation.nit:1162 */
6044 fra
.me
.REG
[5] = NIT_NULL
;
6045 /* syntax/icode_generation.nit:1166 */
6046 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6047 /* syntax/icode_generation.nit:1167 */
6048 fra
.me
.REG
[6] = NIT_NULL
;
6049 /* syntax/icode_generation.nit:1168 */
6050 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6051 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6052 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6053 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6054 if (UNTAG_Bool(REGB0
)) {
6055 /* syntax/icode_generation.nit:1169 */
6056 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6057 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6058 /* syntax/icode_generation.nit:1170 */
6059 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6060 if (UNTAG_Bool(REGB0
)) {
6062 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6063 if (UNTAG_Bool(REGB1
)) {
6064 REGB1
= TAG_Bool(0);
6067 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
6071 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6072 if (UNTAG_Bool(REGB0
)) {
6073 /* syntax/icode_generation.nit:1171 */
6074 fra
.me
.REG
[7] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
6075 fra
.me
.REG
[5] = fra
.me
.REG
[7];
6077 /* syntax/icode_generation.nit:1173 */
6078 fra
.me
.REG
[7] = NEW_ISeq_icode___icode_base___ISeq___init();
6079 /* syntax/icode_generation.nit:1174 */
6080 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
6081 /* syntax/icode_generation.nit:1175 */
6082 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
6083 /* syntax/icode_generation.nit:1176 */
6084 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___init();
6085 fra
.me
.REG
[6] = fra
.me
.REG
[8];
6086 /* syntax/icode_generation.nit:1177 */
6088 /* syntax/icode_generation.nit:1178 */
6089 fra
.me
.REG
[8] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6090 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6091 if (UNTAG_Bool(REGB0
)) {
6093 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6094 if (UNTAG_Bool(REGB1
)) {
6095 REGB1
= TAG_Bool(0);
6098 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
6102 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6103 if (UNTAG_Bool(REGB0
)) {
6104 fra
.me
.REG
[8] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6105 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6106 if (UNTAG_Bool(REGB0
)) {
6107 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1178);
6109 /* ../lib/standard/collection/array.nit:24 */
6110 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8])!=NIT_NULL
);
6111 if (UNTAG_Bool(REGB0
)) {
6113 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6115 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8]);
6117 /* syntax/icode_generation.nit:1179 */
6118 fra
.me
.REG
[8] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6119 /* syntax/icode_generation.nit:1180 */
6120 fra
.me
.REG
[9] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6121 fra
.me
.REG
[9] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
6122 /* ../lib/standard/collection/array.nit:270 */
6124 /* ../lib/standard/collection/array.nit:271 */
6125 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
6126 if (UNTAG_Bool(REGB1
)) {
6128 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 271);
6130 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9]);
6131 /* ../lib/standard/collection/array.nit:272 */
6132 fra
.me
.REG
[10] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[9]);
6133 /* ../lib/standard/collection/array.nit:273 */
6135 /* ../lib/standard/collection/array.nit:24 */
6136 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
6137 if (UNTAG_Bool(REGB1
)) {
6139 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6141 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9]);
6142 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6143 if (UNTAG_Bool(REGB2
)) {
6145 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6147 /* ../lib/standard/kernel.nit:242 */
6148 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6149 /* ../lib/standard/collection/array.nit:273 */
6150 if (UNTAG_Bool(REGB1
)) {
6151 /* ../lib/standard/collection/array.nit:274 */
6152 REGB1
= TAG_Bool(fra
.me
.REG
[10]==NIT_NULL
);
6153 if (UNTAG_Bool(REGB1
)) {
6154 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 274);
6156 /* ../lib/standard/collection/array.nit:725 */
6157 fra
.me
.REG
[11] = ((Nit_NativeArray
)fra
.me
.REG
[10])->val
[UNTAG_Int(REGB0
)];
6158 /* syntax/icode_generation.nit:1181 */
6159 REGB1
= TAG_Bool(0);
6160 /* syntax/icode_generation.nit:1182 */
6161 fra
.me
.REG
[11] = CALL_metamodel___static_type___MMClosure___name(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
6162 /* syntax/icode_generation.nit:1183 */
6163 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6164 if (UNTAG_Bool(REGB2
)) {
6166 REGB3
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6167 if (UNTAG_Bool(REGB3
)) {
6168 REGB3
= TAG_Bool(0);
6171 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
6175 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6176 if (UNTAG_Bool(REGB2
)) {
6177 /* syntax/icode_generation.nit:1184 */
6178 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6179 if (UNTAG_Bool(REGB2
)) {
6180 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1184);
6182 /* ../lib/standard/collection/array.nit:267 */
6183 fra
.me
.REG
[12] = fra
.me
.REG
[8];
6184 /* ../lib/standard/collection/array.nit:270 */
6186 /* ../lib/standard/collection/array.nit:271 */
6187 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[12])!=NIT_NULL
);
6188 if (UNTAG_Bool(REGB3
)) {
6190 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 271);
6192 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[12]);
6193 /* ../lib/standard/collection/array.nit:272 */
6194 fra
.me
.REG
[13] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[12]);
6195 /* ../lib/standard/collection/array.nit:273 */
6197 /* ../lib/standard/collection/array.nit:24 */
6198 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[12])!=NIT_NULL
);
6199 if (UNTAG_Bool(REGB3
)) {
6201 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6203 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[12]);
6204 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
6205 if (UNTAG_Bool(REGB4
)) {
6207 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6209 /* ../lib/standard/kernel.nit:242 */
6210 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
6211 /* ../lib/standard/collection/array.nit:273 */
6212 if (UNTAG_Bool(REGB3
)) {
6213 /* ../lib/standard/collection/array.nit:274 */
6214 REGB3
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
6215 if (UNTAG_Bool(REGB3
)) {
6216 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 274);
6218 /* ../lib/standard/collection/array.nit:725 */
6219 fra
.me
.REG
[14] = ((Nit_NativeArray
)fra
.me
.REG
[13])->val
[UNTAG_Int(REGB2
)];
6220 /* syntax/icode_generation.nit:1185 */
6221 fra
.me
.REG
[15] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
6222 fra
.me
.REG
[15] = CALL_syntax___typing___AClosureId___to_symbol(fra
.me
.REG
[15])(fra
.me
.REG
[15]);
6223 REGB3
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[15],fra
.me
.REG
[11]));
6224 if (UNTAG_Bool(REGB3
)) {
6226 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[11]);
6229 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
6230 if (UNTAG_Bool(REGB3
)) {
6233 /* syntax/icode_generation.nit:1186 */
6234 REGB3
= TAG_Bool(0);
6235 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB3
));
6236 if (UNTAG_Bool(REGB4
)) {
6238 /* ../lib/standard/kernel.nit:199 */
6239 REGB3
= TAG_Bool((REGB1
)==(REGB3
));
6240 /* syntax/icode_generation.nit:1186 */
6243 if (UNTAG_Bool(REGB4
)) {
6245 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 1186);
6247 /* syntax/icode_generation.nit:1187 */
6248 REGB4
= TAG_Bool(1);
6250 /* syntax/icode_generation.nit:1188 */
6251 fra
.me
.REG
[15] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
6252 REGB4
= TAG_Bool(fra
.me
.REG
[15]==NIT_NULL
);
6253 if (UNTAG_Bool(REGB4
)) {
6254 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1188);
6256 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[7]);
6257 /* syntax/icode_generation.nit:1189 */
6258 fra
.me
.REG
[15] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
6259 REGB4
= TAG_Bool(fra
.me
.REG
[15]==NIT_NULL
);
6260 if (UNTAG_Bool(REGB4
)) {
6261 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1189);
6263 CALL_syntax___icode_generation___EscapableBlock___break_value__eq(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[5]);
6264 /* syntax/icode_generation.nit:1190 */
6265 fra
.me
.REG
[14] = CALL_syntax___icode_generation___AClosureDef___generate_iclosuredef(fra
.me
.REG
[14])(fra
.me
.REG
[14], fra
.me
.REG
[1]);
6266 /* syntax/icode_generation.nit:1191 */
6267 REGB4
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6268 if (UNTAG_Bool(REGB4
)) {
6269 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1191);
6271 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[14]);
6273 /* ../lib/standard/collection/array.nit:275 */
6275 /* ../lib/standard/kernel.nit:245 */
6276 REGB4
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB4
));
6277 /* ../lib/standard/collection/array.nit:275 */
6280 /* ../lib/standard/collection/array.nit:273 */
6286 /* syntax/icode_generation.nit:1194 */
6287 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
6288 if (UNTAG_Bool(REGB1
)) {
6289 /* syntax/icode_generation.nit:1195 */
6290 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6291 if (UNTAG_Bool(REGB1
)) {
6292 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1195);
6294 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
6296 /* ../lib/standard/collection/array.nit:275 */
6298 /* ../lib/standard/kernel.nit:245 */
6299 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6300 /* ../lib/standard/collection/array.nit:275 */
6303 /* ../lib/standard/collection/array.nit:273 */
6309 /* syntax/icode_generation.nit:1200 */
6310 fra
.me
.REG
[6] = CALL_icode___icode_builder___ICodeBuilder___add_call(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4], fra
.me
.REG
[6]);
6311 /* syntax/icode_generation.nit:1203 */
6312 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6313 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6314 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6315 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6316 if (UNTAG_Bool(REGB0
)) {
6317 /* syntax/icode_generation.nit:1204 */
6318 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6319 if (UNTAG_Bool(REGB0
)) {
6321 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6322 if (UNTAG_Bool(REGB1
)) {
6323 REGB1
= TAG_Bool(0);
6326 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
6330 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6331 if (UNTAG_Bool(REGB0
)) {
6332 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6333 if (UNTAG_Bool(REGB0
)) {
6335 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6336 if (UNTAG_Bool(REGB1
)) {
6337 REGB1
= TAG_Bool(0);
6340 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
6344 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6346 REGB1
= TAG_Bool(0);
6349 if (UNTAG_Bool(REGB0
)) {
6350 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[6]);
6352 /* syntax/icode_generation.nit:1205 */
6353 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6355 /* syntax/icode_generation.nit:1207 */
6356 fra
.me
.REG
[5] = fra
.me
.REG
[6];
6358 /* syntax/icode_generation.nit:1210 */
6359 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6360 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6361 if (UNTAG_Bool(REGB0
)) {
6362 /* syntax/icode_generation.nit:1211 */
6363 CALL_syntax___icode_generation___A2IContext___invoke_super_init_calls_after(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6365 /* syntax/icode_generation.nit:1213 */
6368 stack_frame_head
= fra
.me
.prev
;
6369 return fra
.me
.REG
[5];
6371 static const char LOCATE_syntax___icode_generation___ASendReassignExpr___generate_icode
[] = "icode_generation::ASendReassignExpr::(icode_generation::AExpr::generate_icode)";
6372 val_t
syntax___icode_generation___ASendReassignExpr___generate_icode(val_t p0
, val_t p1
){
6373 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
6376 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6377 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6379 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASendReassignExpr___generate_icode
;
6380 fra
.me
.has_broke
= 0;
6381 fra
.me
.REG_size
= 8;
6382 fra
.me
.nitni_local_ref_head
= NULL
;
6383 fra
.me
.REG
[0] = NIT_NULL
;
6384 fra
.me
.REG
[1] = NIT_NULL
;
6385 fra
.me
.REG
[2] = NIT_NULL
;
6386 fra
.me
.REG
[3] = NIT_NULL
;
6387 fra
.me
.REG
[4] = NIT_NULL
;
6388 fra
.me
.REG
[5] = NIT_NULL
;
6389 fra
.me
.REG
[6] = NIT_NULL
;
6390 fra
.me
.REG
[7] = NIT_NULL
;
6393 /* syntax/icode_generation.nit:1218 */
6394 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6395 /* syntax/icode_generation.nit:1220 */
6396 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6397 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6398 /* syntax/icode_generation.nit:1221 */
6399 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6400 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6401 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6402 if (UNTAG_Bool(REGB0
)) {
6403 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6405 /* syntax/icode_generation.nit:1222 */
6406 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___init();
6407 /* syntax/icode_generation.nit:1223 */
6408 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6409 /* syntax/icode_generation.nit:1224 */
6410 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ASendReassignExpr___read_prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6411 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6412 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_metamodel___static_type___MMSignature
, ID_metamodel___static_type___MMSignature
)) /*cast MMSignature*/;
6413 if (UNTAG_Bool(REGB0
)) {
6415 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1224);
6417 CALL_syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[3]);
6418 /* syntax/icode_generation.nit:1226 */
6419 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ASendReassignExpr___read_prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6420 fra
.me
.REG
[3] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6421 fra
.me
.REG
[5] = CALL_syntax___syntax_base___ASendReassignExpr___read_prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6422 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6423 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6424 if (UNTAG_Bool(REGB0
)) {
6425 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1226);
6427 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6428 REGB0
= TAG_Bool((fra
.me
.REG
[5]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[5], COLOR_metamodel___static_type___MMType
, ID_metamodel___static_type___MMType
)) /*cast MMType*/;
6429 if (UNTAG_Bool(REGB0
)) {
6431 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1226);
6433 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[5]);
6434 /* syntax/icode_generation.nit:1227 */
6435 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6436 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6437 /* syntax/icode_generation.nit:1228 */
6438 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6440 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6441 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
6442 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
6443 fra
.me
.REG
[7] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[6], fra
.me
.REG
[7]);
6444 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6445 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6446 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6447 if (UNTAG_Bool(REGB0
)) {
6448 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1228);
6450 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6451 REGB0
= TAG_Bool((fra
.me
.REG
[6]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[6], COLOR_metamodel___static_type___MMType
, ID_metamodel___static_type___MMType
)) /*cast MMType*/;
6452 if (UNTAG_Bool(REGB0
)) {
6454 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1228);
6456 fra
.me
.REG
[6] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7], fra
.me
.REG
[6]);
6457 /* syntax/icode_generation.nit:1229 */
6458 fra
.me
.REG
[4] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6459 /* syntax/icode_generation.nit:1230 */
6460 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
6461 /* syntax/icode_generation.nit:1231 */
6462 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6463 fra
.me
.REG
[4] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[2], fra
.me
.REG
[4]);
6464 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6465 /* syntax/icode_generation.nit:1232 */
6466 fra
.me
.REG
[4] = NIT_NULL
;
6469 stack_frame_head
= fra
.me
.prev
;
6470 return fra
.me
.REG
[4];
6472 static const char LOCATE_syntax___icode_generation___ANewExpr___generate_icode
[] = "icode_generation::ANewExpr::(icode_generation::AExpr::generate_icode)";
6473 val_t
syntax___icode_generation___ANewExpr___generate_icode(val_t p0
, val_t p1
){
6474 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
6477 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6478 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6480 fra
.me
.meth
= LOCATE_syntax___icode_generation___ANewExpr___generate_icode
;
6481 fra
.me
.has_broke
= 0;
6482 fra
.me
.REG_size
= 5;
6483 fra
.me
.nitni_local_ref_head
= NULL
;
6484 fra
.me
.REG
[0] = NIT_NULL
;
6485 fra
.me
.REG
[1] = NIT_NULL
;
6486 fra
.me
.REG
[2] = NIT_NULL
;
6487 fra
.me
.REG
[3] = NIT_NULL
;
6488 fra
.me
.REG
[4] = NIT_NULL
;
6491 /* syntax/icode_generation.nit:1237 */
6492 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6493 /* syntax/icode_generation.nit:1239 */
6494 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
6495 /* syntax/icode_generation.nit:1240 */
6496 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6497 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6498 REGB0
= TAG_Bool((fra
.me
.REG
[4]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___static_type___MMSignature
, ID_metamodel___static_type___MMSignature
)) /*cast MMSignature*/;
6499 if (UNTAG_Bool(REGB0
)) {
6501 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1240);
6503 CALL_syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[4]);
6504 /* syntax/icode_generation.nit:1241 */
6505 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6506 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6507 fra
.me
.REG
[3] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[4], fra
.me
.REG
[0], fra
.me
.REG
[3]);
6508 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6509 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
6512 stack_frame_head
= fra
.me
.prev
;
6513 return fra
.me
.REG
[2];
6515 static const char LOCATE_syntax___icode_generation___AProxyExpr___generate_icode
[] = "icode_generation::AProxyExpr::(icode_generation::AExpr::generate_icode)";
6516 val_t
syntax___icode_generation___AProxyExpr___generate_icode(val_t p0
, val_t p1
){
6517 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6519 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6520 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6522 fra
.me
.meth
= LOCATE_syntax___icode_generation___AProxyExpr___generate_icode
;
6523 fra
.me
.has_broke
= 0;
6524 fra
.me
.REG_size
= 2;
6525 fra
.me
.nitni_local_ref_head
= NULL
;
6526 fra
.me
.REG
[0] = NIT_NULL
;
6527 fra
.me
.REG
[1] = NIT_NULL
;
6530 /* syntax/icode_generation.nit:1248 */
6531 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6532 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6535 stack_frame_head
= fra
.me
.prev
;
6536 return fra
.me
.REG
[0];
6538 static const char LOCATE_syntax___icode_generation___AOnceExpr___generate_icode
[] = "icode_generation::AOnceExpr::(icode_generation::AExpr::generate_icode)";
6539 val_t
syntax___icode_generation___AOnceExpr___generate_icode(val_t p0
, val_t p1
){
6540 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
6542 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6543 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6545 fra
.me
.meth
= LOCATE_syntax___icode_generation___AOnceExpr___generate_icode
;
6546 fra
.me
.has_broke
= 0;
6547 fra
.me
.REG_size
= 5;
6548 fra
.me
.nitni_local_ref_head
= NULL
;
6549 fra
.me
.REG
[0] = NIT_NULL
;
6550 fra
.me
.REG
[1] = NIT_NULL
;
6551 fra
.me
.REG
[2] = NIT_NULL
;
6552 fra
.me
.REG
[3] = NIT_NULL
;
6553 fra
.me
.REG
[4] = NIT_NULL
;
6556 /* syntax/icode_generation.nit:1255 */
6557 fra
.me
.REG
[2] = NEW_IOnce_icode___icode_base___IOnce___init();
6558 /* syntax/icode_generation.nit:1256 */
6559 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6560 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
6561 /* syntax/icode_generation.nit:1257 */
6562 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6563 /* syntax/icode_generation.nit:1258 */
6564 fra
.me
.REG
[2] = CALL_icode___icode_base___IOnce___body(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6565 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6566 /* syntax/icode_generation.nit:1260 */
6567 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6568 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6569 /* syntax/icode_generation.nit:1261 */
6570 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
6571 /* syntax/icode_generation.nit:1263 */
6572 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6573 /* syntax/icode_generation.nit:1264 */
6576 stack_frame_head
= fra
.me
.prev
;
6577 return fra
.me
.REG
[3];
6579 static const char LOCATE_syntax___icode_generation___AClosureDef___generate_iclosuredef
[] = "icode_generation::AClosureDef::generate_iclosuredef";
6580 val_t
syntax___icode_generation___AClosureDef___generate_iclosuredef(val_t p0
, val_t p1
){
6581 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
6589 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6590 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6592 fra
.me
.meth
= LOCATE_syntax___icode_generation___AClosureDef___generate_iclosuredef
;
6593 fra
.me
.has_broke
= 0;
6594 fra
.me
.REG_size
= 7;
6595 fra
.me
.nitni_local_ref_head
= NULL
;
6596 fra
.me
.REG
[0] = NIT_NULL
;
6597 fra
.me
.REG
[1] = NIT_NULL
;
6598 fra
.me
.REG
[2] = NIT_NULL
;
6599 fra
.me
.REG
[3] = NIT_NULL
;
6600 fra
.me
.REG
[4] = NIT_NULL
;
6601 fra
.me
.REG
[5] = NIT_NULL
;
6602 fra
.me
.REG
[6] = NIT_NULL
;
6605 /* syntax/icode_generation.nit:1272 */
6606 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6607 /* syntax/icode_generation.nit:1275 */
6608 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
6609 /* syntax/icode_generation.nit:1276 */
6610 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6611 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6612 /* syntax/icode_generation.nit:1277 */
6614 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6615 /* ../lib/standard/kernel.nit:404 */
6617 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6618 if (UNTAG_Bool(REGB2
)) {
6620 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6622 /* ../lib/standard/kernel.nit:242 */
6623 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6624 /* ../lib/standard/kernel.nit:404 */
6625 if (UNTAG_Bool(REGB2
)) {
6626 /* syntax/icode_generation.nit:1277 */
6628 /* syntax/icode_generation.nit:1278 */
6629 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB2
);
6630 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6631 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
6632 /* ../lib/standard/kernel.nit:406 */
6634 /* ../lib/standard/kernel.nit:245 */
6635 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
6636 /* ../lib/standard/kernel.nit:406 */
6639 /* ../lib/standard/kernel.nit:404 */
6644 /* syntax/icode_generation.nit:1280 */
6645 fra
.me
.REG
[5] = NIT_NULL
;
6646 /* syntax/icode_generation.nit:1281 */
6647 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6648 /* syntax/icode_generation.nit:1282 */
6649 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6650 if (UNTAG_Bool(REGB0
)) {
6652 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6653 if (UNTAG_Bool(REGB1
)) {
6654 REGB1
= TAG_Bool(0);
6657 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
6661 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6662 if (UNTAG_Bool(REGB0
)) {
6663 /* syntax/icode_generation.nit:1283 */
6664 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6665 fra
.me
.REG
[5] = fra
.me
.REG
[4];
6667 /* syntax/icode_generation.nit:1286 */
6668 fra
.me
.REG
[5] = NEW_IClosureDef_icode___icode_base___IClosureDef___init(fra
.me
.REG
[3], fra
.me
.REG
[5]);
6669 /* syntax/icode_generation.nit:1287 */
6670 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6671 CALL_icode___icode_base___IRoutine___location__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
6672 /* syntax/icode_generation.nit:1290 */
6673 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6674 /* syntax/icode_generation.nit:1291 */
6675 fra
.me
.REG
[4] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6676 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6677 /* syntax/icode_generation.nit:1292 */
6678 fra
.me
.REG
[4] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6679 fra
.me
.REG
[6] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6680 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6681 if (UNTAG_Bool(REGB0
)) {
6682 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1292);
6684 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
6685 /* syntax/icode_generation.nit:1293 */
6686 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6687 fra
.me
.REG
[4] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6688 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6689 if (UNTAG_Bool(REGB0
)) {
6690 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1293);
6692 CALL_syntax___icode_generation___EscapableBlock___continue_value__eq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6693 /* syntax/icode_generation.nit:1296 */
6695 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AClosureDef___variables(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6696 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6697 if (UNTAG_Bool(REGB1
)) {
6698 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1296);
6700 /* ../lib/standard/collection/array.nit:24 */
6701 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6702 if (UNTAG_Bool(REGB1
)) {
6704 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6706 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6707 /* ../lib/standard/kernel.nit:404 */
6709 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6710 if (UNTAG_Bool(REGB2
)) {
6712 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6714 /* ../lib/standard/kernel.nit:242 */
6715 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6716 /* ../lib/standard/kernel.nit:404 */
6717 if (UNTAG_Bool(REGB2
)) {
6718 /* syntax/icode_generation.nit:1296 */
6720 /* syntax/icode_generation.nit:1297 */
6721 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AClosureDef___variables(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6722 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6723 if (UNTAG_Bool(REGB3
)) {
6724 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1297);
6726 /* ../lib/standard/collection/array.nit:279 */
6728 /* ../lib/standard/collection/array.nit:281 */
6730 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
6731 if (UNTAG_Bool(REGB5
)) {
6733 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6735 /* ../lib/standard/kernel.nit:243 */
6736 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
6737 /* ../lib/standard/collection/array.nit:281 */
6738 if (UNTAG_Bool(REGB4
)) {
6739 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6740 if (UNTAG_Bool(REGB4
)) {
6742 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 281);
6744 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6745 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
6746 if (UNTAG_Bool(REGB5
)) {
6748 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6750 /* ../lib/standard/kernel.nit:242 */
6751 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
6753 /* ../lib/standard/collection/array.nit:281 */
6754 REGB5
= TAG_Bool(0);
6757 if (UNTAG_Bool(REGB4
)) {
6759 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 281);
6761 /* ../lib/standard/collection/array.nit:282 */
6762 fra
.me
.REG
[4] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
6763 REGB4
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6764 if (UNTAG_Bool(REGB4
)) {
6765 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 282);
6767 /* ../lib/standard/collection/array.nit:725 */
6768 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB3
)];
6769 /* ../lib/standard/collection/array.nit:282 */
6772 /* syntax/icode_generation.nit:1297 */
6773 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6774 /* syntax/icode_generation.nit:1298 */
6775 fra
.me
.REG
[6] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6776 fra
.me
.REG
[6] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB2
);
6777 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[6]);
6778 /* ../lib/standard/kernel.nit:406 */
6780 /* ../lib/standard/kernel.nit:245 */
6781 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
6782 /* ../lib/standard/kernel.nit:406 */
6785 /* ../lib/standard/kernel.nit:404 */
6790 /* syntax/icode_generation.nit:1301 */
6791 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6792 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6793 /* syntax/icode_generation.nit:1304 */
6794 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6795 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6796 if (UNTAG_Bool(REGB0
)) {
6797 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6798 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6799 if (UNTAG_Bool(REGB0
)) {
6800 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1304);
6802 fra
.me
.REG
[6] = CALL_syntax___icode_generation___EscapableBlock___break_value(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6803 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6804 if (UNTAG_Bool(REGB0
)) {
6806 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6807 if (UNTAG_Bool(REGB1
)) {
6808 REGB1
= TAG_Bool(0);
6811 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
6816 REGB1
= TAG_Bool(0);
6819 if (UNTAG_Bool(REGB0
)) {
6820 /* syntax/icode_generation.nit:1305 */
6821 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6822 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6823 if (UNTAG_Bool(REGB0
)) {
6824 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1305);
6826 fra
.me
.REG
[6] = CALL_syntax___icode_generation___EscapableBlock___break_seq(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6827 REGB0
= TAG_Bool(fra
.me
.REG
[6]!=NIT_NULL
);
6828 if (UNTAG_Bool(REGB0
)) {
6830 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1305);
6832 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6834 /* syntax/icode_generation.nit:1308 */
6835 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6836 /* syntax/icode_generation.nit:1309 */
6837 ATTR_syntax___icode_generation___AClosureDef____iclosure_def(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
6838 /* syntax/icode_generation.nit:1310 */
6841 stack_frame_head
= fra
.me
.prev
;
6842 return fra
.me
.REG
[5];
6844 static const char LOCATE_syntax___icode_generation___AClosureCallExpr___generate_icode
[] = "icode_generation::AClosureCallExpr::(icode_generation::AExpr::generate_icode)";
6845 val_t
syntax___icode_generation___AClosureCallExpr___generate_icode(val_t p0
, val_t p1
){
6846 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
6851 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6852 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6854 fra
.me
.meth
= LOCATE_syntax___icode_generation___AClosureCallExpr___generate_icode
;
6855 fra
.me
.has_broke
= 0;
6856 fra
.me
.REG_size
= 9;
6857 fra
.me
.nitni_local_ref_head
= NULL
;
6858 fra
.me
.REG
[0] = NIT_NULL
;
6859 fra
.me
.REG
[1] = NIT_NULL
;
6860 fra
.me
.REG
[2] = NIT_NULL
;
6861 fra
.me
.REG
[3] = NIT_NULL
;
6862 fra
.me
.REG
[4] = NIT_NULL
;
6863 fra
.me
.REG
[5] = NIT_NULL
;
6864 fra
.me
.REG
[6] = NIT_NULL
;
6865 fra
.me
.REG
[7] = NIT_NULL
;
6866 fra
.me
.REG
[8] = NIT_NULL
;
6869 /* syntax/icode_generation.nit:1318 */
6870 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___init();
6871 /* syntax/icode_generation.nit:1319 */
6872 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6873 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6874 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6875 CALL_syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
6876 /* syntax/icode_generation.nit:1322 */
6877 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___closurevariables(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6878 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6879 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6880 /* syntax/icode_generation.nit:1323 */
6881 fra
.me
.REG
[3] = NEW_IClosCall_icode___icode_base___IClosCall___init(fra
.me
.REG
[4], fra
.me
.REG
[2]);
6882 /* syntax/icode_generation.nit:1324 */
6883 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6884 /* syntax/icode_generation.nit:1327 */
6885 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6886 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6888 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
6889 if (UNTAG_Bool(REGB2
)) {
6891 /* ../lib/standard/kernel.nit:237 */
6892 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
6893 /* syntax/icode_generation.nit:1327 */
6896 if (UNTAG_Bool(REGB2
)) {
6897 /* syntax/icode_generation.nit:1328 */
6898 fra
.me
.REG
[6] = NEW_ISeq_icode___icode_base___ISeq___init();
6899 /* syntax/icode_generation.nit:1329 */
6900 CALL_icode___icode_base___IClosCall___break_seq__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
6901 /* syntax/icode_generation.nit:1330 */
6902 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6903 /* syntax/icode_generation.nit:1331 */
6904 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6905 fra
.me
.REG
[6] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6906 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6907 if (UNTAG_Bool(REGB2
)) {
6908 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1331);
6910 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_expr(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6911 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6912 /* syntax/icode_generation.nit:1332 */
6913 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6915 /* syntax/icode_generation.nit:1336 */
6916 fra
.me
.REG
[6] = NIT_NULL
;
6917 /* syntax/icode_generation.nit:1337 */
6918 fra
.me
.REG
[7] = CALL_icode___icode_base___IClosureDecl___default(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6919 /* syntax/icode_generation.nit:1338 */
6920 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6921 if (UNTAG_Bool(REGB2
)) {
6923 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6924 if (UNTAG_Bool(REGB1
)) {
6925 REGB1
= TAG_Bool(0);
6928 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
6932 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6933 if (UNTAG_Bool(REGB2
)) {
6934 /* syntax/icode_generation.nit:1339 */
6935 fra
.me
.REG
[4] = NEW_IHasClos_icode___icode_base___IHasClos___init(fra
.me
.REG
[4]);
6936 fra
.me
.REG
[8] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6937 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6938 fra
.me
.REG
[8] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[8]);
6939 fra
.me
.REG
[8] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[8]);
6940 fra
.me
.REG
[6] = fra
.me
.REG
[8];
6941 /* syntax/icode_generation.nit:1340 */
6942 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6943 /* syntax/icode_generation.nit:1341 */
6944 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6945 if (UNTAG_Bool(REGB2
)) {
6946 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1341);
6948 fra
.me
.REG
[8] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6949 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[8]);
6951 /* syntax/icode_generation.nit:1345 */
6952 fra
.me
.REG
[8] = NIT_NULL
;
6953 /* syntax/icode_generation.nit:1346 */
6954 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6955 fra
.me
.REG
[0] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6956 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6957 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6958 /* syntax/icode_generation.nit:1347 */
6959 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6960 if (UNTAG_Bool(REGB2
)) {
6962 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6963 if (UNTAG_Bool(REGB1
)) {
6964 REGB1
= TAG_Bool(0);
6967 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
6971 if (UNTAG_Bool(REGB2
)) {
6972 /* syntax/icode_generation.nit:1348 */
6973 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6975 /* syntax/icode_generation.nit:1350 */
6976 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
6977 fra
.me
.REG
[8] = fra
.me
.REG
[3];
6979 /* syntax/icode_generation.nit:1354 */
6980 fra
.me
.REG
[3] = NIT_NULL
;
6981 /* syntax/icode_generation.nit:1355 */
6982 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6983 if (UNTAG_Bool(REGB2
)) {
6985 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6986 if (UNTAG_Bool(REGB1
)) {
6987 REGB1
= TAG_Bool(0);
6990 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
6994 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6995 if (UNTAG_Bool(REGB2
)) {
6996 /* syntax/icode_generation.nit:1356 */
6997 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6998 if (UNTAG_Bool(REGB2
)) {
7000 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
7001 if (UNTAG_Bool(REGB1
)) {
7002 REGB1
= TAG_Bool(0);
7005 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
7009 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
7010 if (UNTAG_Bool(REGB2
)) {
7012 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 1356);
7014 /* syntax/icode_generation.nit:1357 */
7015 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
7016 if (UNTAG_Bool(REGB2
)) {
7018 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
7019 if (UNTAG_Bool(REGB1
)) {
7020 REGB1
= TAG_Bool(0);
7023 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
7027 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
7028 if (UNTAG_Bool(REGB2
)) {
7029 /* syntax/icode_generation.nit:1358 */
7030 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
7031 if (UNTAG_Bool(REGB2
)) {
7033 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
7034 if (UNTAG_Bool(REGB1
)) {
7035 REGB1
= TAG_Bool(0);
7038 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
7042 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
7043 if (UNTAG_Bool(REGB2
)) {
7045 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 1358);
7047 /* syntax/icode_generation.nit:1359 */
7048 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
7049 fra
.me
.REG
[3] = fra
.me
.REG
[0];
7050 /* syntax/icode_generation.nit:1360 */
7051 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[8]);
7053 /* syntax/icode_generation.nit:1362 */
7054 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
7055 if (UNTAG_Bool(REGB2
)) {
7056 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1362);
7058 fra
.me
.REG
[6] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7059 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
7060 /* syntax/icode_generation.nit:1363 */
7061 fra
.me
.REG
[2] = CALL_icode___icode_tools___ICodeBuilder___inline_routine(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7], fra
.me
.REG
[2], NIT_NULL
);
7062 /* syntax/icode_generation.nit:1364 */
7063 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
7064 if (UNTAG_Bool(REGB2
)) {
7066 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
7067 if (UNTAG_Bool(REGB1
)) {
7068 REGB1
= TAG_Bool(0);
7071 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
7075 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
7076 if (UNTAG_Bool(REGB2
)) {
7077 /* syntax/icode_generation.nit:1365 */
7078 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7079 if (UNTAG_Bool(REGB2
)) {
7081 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7082 if (UNTAG_Bool(REGB1
)) {
7083 REGB1
= TAG_Bool(0);
7086 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7090 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
7091 if (UNTAG_Bool(REGB2
)) {
7093 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 1365);
7095 /* syntax/icode_generation.nit:1366 */
7096 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
7098 /* syntax/icode_generation.nit:1368 */
7099 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
7101 /* syntax/icode_generation.nit:1370 */
7102 fra
.me
.REG
[3] = fra
.me
.REG
[8];
7104 /* syntax/icode_generation.nit:1372 */
7107 stack_frame_head
= fra
.me
.prev
;
7108 return fra
.me
.REG
[3];
7110 static const char LOCATE_syntax___icode_generation___ADebugTypeExpr___generate_icode
[] = "icode_generation::ADebugTypeExpr::(icode_generation::AExpr::generate_icode)";
7111 val_t
syntax___icode_generation___ADebugTypeExpr___generate_icode(val_t p0
, val_t p1
){
7112 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7114 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7115 fra
.me
.file
= LOCATE_syntax___icode_generation
;
7117 fra
.me
.meth
= LOCATE_syntax___icode_generation___ADebugTypeExpr___generate_icode
;
7118 fra
.me
.has_broke
= 0;
7119 fra
.me
.REG_size
= 2;
7120 fra
.me
.nitni_local_ref_head
= NULL
;
7121 fra
.me
.REG
[0] = NIT_NULL
;
7122 fra
.me
.REG
[1] = NIT_NULL
;
7125 /* syntax/icode_generation.nit:1380 */
7126 fra
.me
.REG
[1] = NIT_NULL
;
7129 stack_frame_head
= fra
.me
.prev
;
7130 return fra
.me
.REG
[1];