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_prod___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_prod___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] = NEW_String_standard___string___String___with_native(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] = NEW_String_standard___string___String___with_native(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:278 */
559 /* ../lib/standard/collection/array.nit:280 */
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:236 */
567 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
568 /* ../lib/standard/collection/array.nit:280 */
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
, 280);
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:235 */
582 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
584 /* ../lib/standard/collection/array.nit:280 */
588 if (UNTAG_Bool(REGB3
)) {
590 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
592 /* ../lib/standard/collection/array.nit:281 */
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
, 281);
598 /* ../lib/standard/collection/array.nit:724 */
599 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB2
)];
600 /* ../lib/standard/collection/array.nit:281 */
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:238 */
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:238 */
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:278 */
645 /* ../lib/standard/collection/array.nit:280 */
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:236 */
653 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
654 /* ../lib/standard/collection/array.nit:280 */
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
, 280);
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:235 */
668 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
670 /* ../lib/standard/collection/array.nit:280 */
674 if (UNTAG_Bool(REGB3
)) {
676 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
678 /* ../lib/standard/collection/array.nit:281 */
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
, 281);
684 /* ../lib/standard/collection/array.nit:724 */
685 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB2
)];
686 /* ../lib/standard/collection/array.nit:281 */
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:238 */
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:238 */
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:235 */
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:280 */
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:236 */
761 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)>=UNTAG_Int(REGB2
));
762 /* ../lib/standard/collection/array.nit:280 */
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
, 280);
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:235 */
776 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
778 /* ../lib/standard/collection/array.nit:280 */
782 if (UNTAG_Bool(REGB2
)) {
784 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
786 /* ../lib/standard/collection/array.nit:281 */
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
, 281);
792 /* ../lib/standard/collection/array.nit:724 */
793 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB1
)];
794 /* ../lib/standard/collection/array.nit:281 */
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:235 */
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:278 */
832 /* ../lib/standard/collection/array.nit:280 */
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:236 */
840 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
841 /* ../lib/standard/collection/array.nit:280 */
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
, 280);
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:235 */
855 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
857 /* ../lib/standard/collection/array.nit:280 */
861 if (UNTAG_Bool(REGB3
)) {
863 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
865 /* ../lib/standard/collection/array.nit:281 */
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
, 281);
871 /* ../lib/standard/collection/array.nit:724 */
872 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB2
)];
873 /* ../lib/standard/collection/array.nit:281 */
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:230 */
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:238 */
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_prod___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_prod___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:240 */
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:269 */
1647 /* ../lib/standard/collection/array.nit:270 */
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
, 270);
1653 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1654 /* ../lib/standard/collection/array.nit:271 */
1655 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
1656 /* ../lib/standard/collection/array.nit:272 */
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:235 */
1671 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB2
));
1672 /* ../lib/standard/collection/array.nit:272 */
1673 if (UNTAG_Bool(REGB2
)) {
1674 /* ../lib/standard/collection/array.nit:273 */
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
, 273);
1679 /* ../lib/standard/collection/array.nit:724 */
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:350 */
1708 /* ../lib/standard/kernel.nit:355 */
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:235 */
1716 REGB4
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
1717 /* ../lib/standard/kernel.nit:355 */
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:357 */
1726 /* ../lib/standard/kernel.nit:238 */
1727 REGB4
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB4
));
1728 /* ../lib/standard/kernel.nit:357 */
1731 /* ../lib/standard/kernel.nit:355 */
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:274 */
1746 /* ../lib/standard/kernel.nit:238 */
1747 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
1748 /* ../lib/standard/collection/array.nit:274 */
1751 /* ../lib/standard/collection/array.nit:272 */
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:350 */
1760 /* ../lib/standard/kernel.nit:355 */
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:235 */
1768 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB0
));
1769 /* ../lib/standard/kernel.nit:355 */
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:240 */
1776 REGB4
= TAG_Int(UNTAG_Int(REGB3
)-UNTAG_Int(REGB1
));
1777 /* ../lib/standard/collection/array.nit:280 */
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:236 */
1785 REGB5
= TAG_Bool(UNTAG_Int(REGB4
)>=UNTAG_Int(REGB5
));
1786 /* ../lib/standard/collection/array.nit:280 */
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
, 280);
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:235 */
1800 REGB5
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB5
));
1802 /* ../lib/standard/collection/array.nit:280 */
1803 REGB6
= TAG_Bool(0);
1806 if (UNTAG_Bool(REGB5
)) {
1808 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
1810 /* ../lib/standard/collection/array.nit:281 */
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
, 281);
1816 /* ../lib/standard/collection/array.nit:724 */
1817 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB4
)];
1818 /* ../lib/standard/collection/array.nit:281 */
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:357 */
1827 /* ../lib/standard/kernel.nit:238 */
1828 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
1829 /* ../lib/standard/kernel.nit:357 */
1832 /* ../lib/standard/kernel.nit:355 */
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_prod::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
;
1893 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1894 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1896 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IVisitor___visit
;
1897 fra
.me
.has_broke
= 0;
1898 fra
.me
.REG_size
= 2;
1899 fra
.me
.nitni_local_ref_head
= NULL
;
1900 fra
.me
.REG
[0] = NIT_NULL
;
1901 fra
.me
.REG
[1] = NIT_NULL
;
1904 /* syntax/icode_generation.nit:288 */
1905 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1906 if (UNTAG_Bool(REGB0
)) {
1907 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 288);
1909 CALL_syntax___icode_generation___ANode___accept_icode_generation(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1910 stack_frame_head
= fra
.me
.prev
;
1913 static const char LOCATE_syntax___icode_generation___A2IVisitor___init
[] = "icode_generation::A2IVisitor::init";
1914 void syntax___icode_generation___A2IVisitor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
1915 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_syntax___icode_generation___A2IVisitor
].i
;
1916 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1918 if (init_table
[itpos1
]) return;
1919 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1920 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1922 fra
.me
.meth
= LOCATE_syntax___icode_generation___A2IVisitor___init
;
1923 fra
.me
.has_broke
= 0;
1924 fra
.me
.REG_size
= 3;
1925 fra
.me
.nitni_local_ref_head
= NULL
;
1926 fra
.me
.REG
[0] = NIT_NULL
;
1927 fra
.me
.REG
[1] = NIT_NULL
;
1928 fra
.me
.REG
[2] = NIT_NULL
;
1932 /* syntax/icode_generation.nit:289 */
1933 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], init_table
);
1934 stack_frame_head
= fra
.me
.prev
;
1935 init_table
[itpos1
] = 1;
1938 static const char LOCATE_syntax___icode_generation___ANode___accept_icode_generation
[] = "icode_generation::ANode::accept_icode_generation";
1939 void syntax___icode_generation___ANode___accept_icode_generation(val_t p0
, val_t p1
){
1940 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1942 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1943 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1945 fra
.me
.meth
= LOCATE_syntax___icode_generation___ANode___accept_icode_generation
;
1946 fra
.me
.has_broke
= 0;
1947 fra
.me
.REG_size
= 2;
1948 fra
.me
.nitni_local_ref_head
= NULL
;
1949 fra
.me
.REG
[0] = NIT_NULL
;
1950 fra
.me
.REG
[1] = NIT_NULL
;
1953 /* syntax/icode_generation.nit:296 */
1954 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1955 stack_frame_head
= fra
.me
.prev
;
1958 static const char LOCATE_syntax___icode_generation___AAttrPropdef___accept_icode_generation
[] = "icode_generation::AAttrPropdef::(icode_generation::ANode::accept_icode_generation)";
1959 void syntax___icode_generation___AAttrPropdef___accept_icode_generation(val_t p0
, val_t p1
){
1960 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
1964 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1965 fra
.me
.file
= LOCATE_syntax___icode_generation
;
1967 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAttrPropdef___accept_icode_generation
;
1968 fra
.me
.has_broke
= 0;
1969 fra
.me
.REG_size
= 6;
1970 fra
.me
.nitni_local_ref_head
= NULL
;
1971 fra
.me
.REG
[0] = NIT_NULL
;
1972 fra
.me
.REG
[1] = NIT_NULL
;
1973 fra
.me
.REG
[2] = NIT_NULL
;
1974 fra
.me
.REG
[3] = NIT_NULL
;
1975 fra
.me
.REG
[4] = NIT_NULL
;
1976 fra
.me
.REG
[5] = NIT_NULL
;
1979 /* syntax/icode_generation.nit:300 */
1980 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1981 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1982 /* syntax/icode_generation.nit:302 */
1983 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IVisitor___icode_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1984 /* syntax/icode_generation.nit:303 */
1985 fra
.me
.REG
[4] = CALL_syntax___syntax_base___APropdef___self_var(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1986 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1987 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1988 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1989 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1990 fra
.me
.REG
[5] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1991 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
1992 /* syntax/icode_generation.nit:304 */
1993 CALL_SUPER_syntax___icode_generation___AAttrPropdef___accept_icode_generation(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1994 /* syntax/icode_generation.nit:305 */
1995 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1996 /* syntax/icode_generation.nit:306 */
1997 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1998 if (UNTAG_Bool(REGB0
)) {
2000 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2001 if (UNTAG_Bool(REGB1
)) {
2002 REGB1
= TAG_Bool(0);
2005 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2009 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2010 if (UNTAG_Bool(REGB0
)) {
2011 /* syntax/icode_generation.nit:307 */
2012 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2013 fra
.me
.REG
[1] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2014 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*/;
2015 if (UNTAG_Bool(REGB0
)) {
2017 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 307);
2019 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
2020 fra
.me
.REG
[2] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2021 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
2023 stack_frame_head
= fra
.me
.prev
;
2026 static const char LOCATE_syntax___icode_generation___AMethPropdef___accept_icode_generation
[] = "icode_generation::AMethPropdef::(icode_generation::ANode::accept_icode_generation)";
2027 void syntax___icode_generation___AMethPropdef___accept_icode_generation(val_t p0
, val_t p1
){
2028 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2030 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2031 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2033 fra
.me
.meth
= LOCATE_syntax___icode_generation___AMethPropdef___accept_icode_generation
;
2034 fra
.me
.has_broke
= 0;
2035 fra
.me
.REG_size
= 4;
2036 fra
.me
.nitni_local_ref_head
= NULL
;
2037 fra
.me
.REG
[0] = NIT_NULL
;
2038 fra
.me
.REG
[1] = NIT_NULL
;
2039 fra
.me
.REG
[2] = NIT_NULL
;
2040 fra
.me
.REG
[3] = NIT_NULL
;
2043 /* syntax/icode_generation.nit:313 */
2044 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2045 fra
.me
.REG
[3] = fra
.me
.REG
[1];
2046 /* syntax/icode_generation.nit:315 */
2047 CALL_SUPER_syntax___icode_generation___AMethPropdef___accept_icode_generation(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2048 /* syntax/icode_generation.nit:316 */
2049 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IVisitor___icode_ctx(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2050 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AMethPropdef___method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2051 CALL_syntax___icode_generation___AMethPropdef___fill_iroutine(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[1]);
2052 stack_frame_head
= fra
.me
.prev
;
2055 static const char LOCATE_syntax___icode_generation___AMethPropdef___fill_iroutine
[] = "icode_generation::AMethPropdef::fill_iroutine";
2056 void syntax___icode_generation___AMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2057 struct {struct stack_frame_t me
;} fra
;
2059 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2060 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2062 fra
.me
.meth
= LOCATE_syntax___icode_generation___AMethPropdef___fill_iroutine
;
2063 fra
.me
.has_broke
= 0;
2064 fra
.me
.REG_size
= 0;
2065 fra
.me
.nitni_local_ref_head
= NULL
;
2066 /* syntax/icode_generation.nit:319 */
2067 nit_abort("Deferred method called", NULL
, LOCATE_syntax___icode_generation
, 319);
2068 stack_frame_head
= fra
.me
.prev
;
2071 static const char LOCATE_syntax___icode_generation___ASignature___fill_iroutine_parameters
[] = "icode_generation::ASignature::fill_iroutine_parameters";
2072 void syntax___icode_generation___ASignature___fill_iroutine_parameters(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
){
2073 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
2079 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2080 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2082 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASignature___fill_iroutine_parameters
;
2083 fra
.me
.has_broke
= 0;
2084 fra
.me
.REG_size
= 7;
2085 fra
.me
.nitni_local_ref_head
= NULL
;
2086 fra
.me
.REG
[0] = NIT_NULL
;
2087 fra
.me
.REG
[1] = NIT_NULL
;
2088 fra
.me
.REG
[2] = NIT_NULL
;
2089 fra
.me
.REG
[3] = NIT_NULL
;
2090 fra
.me
.REG
[4] = NIT_NULL
;
2091 fra
.me
.REG
[5] = NIT_NULL
;
2092 fra
.me
.REG
[6] = NIT_NULL
;
2098 /* syntax/icode_generation.nit:324 */
2099 fra
.me
.REG
[5] = fra
.me
.REG
[0];
2100 /* syntax/icode_generation.nit:326 */
2101 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ASignature___n_params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2102 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
));
2103 /* syntax/icode_generation.nit:335 */
2105 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASignature___n_closure_decls(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2106 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2107 /* ../lib/standard/kernel.nit:355 */
2109 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2110 if (UNTAG_Bool(REGB2
)) {
2112 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2114 /* ../lib/standard/kernel.nit:235 */
2115 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
2116 /* ../lib/standard/kernel.nit:355 */
2117 if (UNTAG_Bool(REGB2
)) {
2118 /* syntax/icode_generation.nit:335 */
2120 /* syntax/icode_generation.nit:336 */
2121 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASignature___n_closure_decls(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2122 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB2
);
2123 /* syntax/icode_generation.nit:337 */
2124 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___closurevariables(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2125 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2126 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2127 if (UNTAG_Bool(REGB3
)) {
2128 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 337);
2130 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB2
);
2131 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3], fra
.me
.REG
[2]);
2132 /* ../lib/standard/kernel.nit:357 */
2134 /* ../lib/standard/kernel.nit:238 */
2135 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
2136 /* ../lib/standard/kernel.nit:357 */
2139 /* ../lib/standard/kernel.nit:355 */
2144 stack_frame_head
= fra
.me
.prev
;
2147 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
){
2148 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2152 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2153 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2155 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASignature___fill_iroutine_parameters
;
2156 fra
.me
.has_broke
= 0;
2157 fra
.me
.REG_size
= 4;
2158 fra
.me
.nitni_local_ref_head
= NULL
;
2159 fra
.me
.REG
[0] = NIT_NULL
;
2160 fra
.me
.REG
[1] = NIT_NULL
;
2161 fra
.me
.REG
[2] = NIT_NULL
;
2162 fra
.me
.REG
[3] = NIT_NULL
;
2163 fra
.me
.closure_ctx
= closctx_param
;
2164 fra
.me
.closure_funs
= CREG
;
2166 CREG
[0] = clos_fun0
;
2167 /* syntax/icode_generation.nit:327 */
2168 fra
.me
.REG
[1] = CALL_syntax___syntax_base___AParam___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2169 fra
.me
.REG
[1] = CALL_syntax___icode_generation___A2IContext___variable(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[1]);
2170 /* syntax/icode_generation.nit:328 */
2171 REGB0
= CALL_syntax___syntax_base___AParam___position(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2172 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature_____bra(closctx
->REG
[2])(closctx
->REG
[2], REGB0
);
2173 /* syntax/icode_generation.nit:329 */
2174 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AParam___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2175 fra
.me
.REG
[3] = CALL_syntax___syntax_base___Variable___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2176 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*/;
2177 if (UNTAG_Bool(REGB0
)) {
2179 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 329);
2181 /* syntax/icode_generation.nit:330 */
2182 REGB0
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2183 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2184 if (UNTAG_Bool(REGB0
)) {
2185 /* syntax/icode_generation.nit:331 */
2186 REGB0
= CALL_syntax___syntax_base___AParam___position(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2187 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(closctx
->REG
[3])(closctx
->REG
[3], REGB0
);
2188 CALL_icode___icode_builder___ICodeBuilder___add_type_cast(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3]);
2190 /* syntax/icode_generation.nit:333 */
2191 REGB0
= CALL_syntax___syntax_base___AParam___position(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2192 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(closctx
->REG
[3])(closctx
->REG
[3], REGB0
);
2193 fra
.me
.REG
[0] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2194 CALL_icode___icode_builder___ICodeBuilder___stmt(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
2195 stack_frame_head
= fra
.me
.prev
;
2198 static const char LOCATE_syntax___icode_generation___AClosureDecl___accept_icode_generation
[] = "icode_generation::AClosureDecl::(icode_generation::ANode::accept_icode_generation)";
2199 void syntax___icode_generation___AClosureDecl___accept_icode_generation(val_t p0
, val_t p1
){
2200 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
2204 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2205 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2207 fra
.me
.meth
= LOCATE_syntax___icode_generation___AClosureDecl___accept_icode_generation
;
2208 fra
.me
.has_broke
= 0;
2209 fra
.me
.REG_size
= 8;
2210 fra
.me
.nitni_local_ref_head
= NULL
;
2211 fra
.me
.REG
[0] = NIT_NULL
;
2212 fra
.me
.REG
[1] = NIT_NULL
;
2213 fra
.me
.REG
[2] = NIT_NULL
;
2214 fra
.me
.REG
[3] = NIT_NULL
;
2215 fra
.me
.REG
[4] = NIT_NULL
;
2216 fra
.me
.REG
[5] = NIT_NULL
;
2217 fra
.me
.REG
[6] = NIT_NULL
;
2218 fra
.me
.REG
[7] = NIT_NULL
;
2221 /* syntax/icode_generation.nit:343 */
2222 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2223 /* syntax/icode_generation.nit:345 */
2224 fra
.me
.REG
[1] = CALL_syntax___icode_generation___A2IVisitor___icode_ctx(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2225 /* syntax/icode_generation.nit:346 */
2226 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2227 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2228 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2229 fra
.me
.REG
[3] = CALL_icode___icode_builder___MMSignature___generate_empty_iclosuredef(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
2230 /* syntax/icode_generation.nit:347 */
2231 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2232 /* syntax/icode_generation.nit:348 */
2233 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2234 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
2235 /* syntax/icode_generation.nit:349 */
2236 fra
.me
.REG
[5] = CALL_syntax___typing___AClosureDecl___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2237 fra
.me
.REG
[6] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2238 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2239 if (UNTAG_Bool(REGB0
)) {
2240 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 349);
2242 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2243 /* syntax/icode_generation.nit:350 */
2244 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDecl___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2245 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2246 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2247 if (UNTAG_Bool(REGB0
)) {
2248 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 350);
2250 CALL_syntax___icode_generation___EscapableBlock___continue_value__eq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
2251 /* syntax/icode_generation.nit:351 */
2252 fra
.me
.REG
[5] = CALL_syntax___typing___AClosureDecl___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2253 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___return_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2254 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2255 if (UNTAG_Bool(REGB0
)) {
2256 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 351);
2258 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
2259 /* syntax/icode_generation.nit:352 */
2260 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDecl___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2261 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2262 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2263 if (UNTAG_Bool(REGB0
)) {
2264 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 352);
2266 CALL_syntax___icode_generation___EscapableBlock___break_value__eq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
2267 /* syntax/icode_generation.nit:353 */
2268 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AClosureDecl___n_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2269 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2270 fra
.me
.REG
[6] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2271 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2272 fra
.me
.REG
[7] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2273 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
);
2274 /* syntax/icode_generation.nit:355 */
2275 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2276 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2277 if (UNTAG_Bool(REGB0
)) {
2279 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2280 if (UNTAG_Bool(REGB1
)) {
2281 REGB1
= TAG_Bool(0);
2284 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
2288 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2289 if (UNTAG_Bool(REGB0
)) {
2290 /* syntax/icode_generation.nit:356 */
2291 fra
.me
.REG
[7] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2292 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
2293 /* syntax/icode_generation.nit:357 */
2294 fra
.me
.REG
[7] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2295 fra
.me
.REG
[7] = CALL_icode___icode_base___IRoutine___closure_decls(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
2296 REGB0
= CALL_syntax___syntax_base___AClosureDecl___position(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2297 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2298 if (UNTAG_Bool(REGB1
)) {
2299 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 357);
2301 fra
.me
.REG
[7] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], REGB0
);
2302 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
2303 if (UNTAG_Bool(REGB0
)) {
2304 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 357);
2306 CALL_icode___icode_base___IClosureDecl___default__eq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
2307 /* syntax/icode_generation.nit:360 */
2308 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AClosureDecl___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2309 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2310 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2311 if (UNTAG_Bool(REGB0
)) {
2312 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2313 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2314 if (UNTAG_Bool(REGB0
)) {
2316 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2317 if (UNTAG_Bool(REGB1
)) {
2318 REGB1
= TAG_Bool(0);
2321 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2326 REGB1
= TAG_Bool(0);
2329 if (UNTAG_Bool(REGB0
)) {
2330 /* syntax/icode_generation.nit:361 */
2331 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___return_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2332 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
2333 if (UNTAG_Bool(REGB0
)) {
2335 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 361);
2337 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2340 /* syntax/icode_generation.nit:364 */
2341 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2342 stack_frame_head
= fra
.me
.prev
;
2345 static const char LOCATE_syntax___icode_generation___AConcreteMethPropdef___fill_iroutine
[] = "icode_generation::AConcreteMethPropdef::(icode_generation::AMethPropdef::fill_iroutine)";
2346 void syntax___icode_generation___AConcreteMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2347 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
2352 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2353 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2355 fra
.me
.meth
= LOCATE_syntax___icode_generation___AConcreteMethPropdef___fill_iroutine
;
2356 fra
.me
.has_broke
= 0;
2357 fra
.me
.REG_size
= 6;
2358 fra
.me
.nitni_local_ref_head
= NULL
;
2359 fra
.me
.REG
[0] = NIT_NULL
;
2360 fra
.me
.REG
[1] = NIT_NULL
;
2361 fra
.me
.REG
[2] = NIT_NULL
;
2362 fra
.me
.REG
[3] = NIT_NULL
;
2363 fra
.me
.REG
[4] = NIT_NULL
;
2364 fra
.me
.REG
[5] = NIT_NULL
;
2368 /* syntax/icode_generation.nit:371 */
2369 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2370 fra
.me
.REG
[3] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2371 fra
.me
.REG
[3] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2372 /* syntax/icode_generation.nit:372 */
2373 fra
.me
.REG
[4] = CALL_syntax___syntax_base___APropdef___self_var(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2374 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2375 /* syntax/icode_generation.nit:373 */
2377 /* ../lib/standard/collection/array.nit:278 */
2378 fra
.me
.REG
[5] = fra
.me
.REG
[3];
2379 /* ../lib/standard/collection/array.nit:280 */
2381 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2382 if (UNTAG_Bool(REGB2
)) {
2384 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2386 /* ../lib/standard/kernel.nit:236 */
2387 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
2388 /* ../lib/standard/collection/array.nit:280 */
2389 if (UNTAG_Bool(REGB1
)) {
2390 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
2391 if (UNTAG_Bool(REGB1
)) {
2393 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
2395 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
2396 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2397 if (UNTAG_Bool(REGB2
)) {
2399 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2401 /* ../lib/standard/kernel.nit:235 */
2402 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
2404 /* ../lib/standard/collection/array.nit:280 */
2405 REGB2
= TAG_Bool(0);
2408 if (UNTAG_Bool(REGB1
)) {
2410 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
2412 /* ../lib/standard/collection/array.nit:281 */
2413 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
2414 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2415 if (UNTAG_Bool(REGB1
)) {
2416 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
2418 /* ../lib/standard/collection/array.nit:724 */
2419 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
2420 /* ../lib/standard/collection/array.nit:281 */
2423 /* syntax/icode_generation.nit:373 */
2424 fra
.me
.REG
[5] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2425 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
2426 /* syntax/icode_generation.nit:374 */
2427 CALL_syntax___icode_generation___A2IContext___selfreg__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2428 /* syntax/icode_generation.nit:375 */
2429 CALL_standard___collection___abstract_collection___Sequence___shift(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2430 /* syntax/icode_generation.nit:377 */
2431 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2432 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2433 /* syntax/icode_generation.nit:378 */
2434 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2435 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2436 if (UNTAG_Bool(REGB0
)) {
2437 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 378);
2439 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2440 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
2441 /* syntax/icode_generation.nit:379 */
2442 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2443 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2444 if (UNTAG_Bool(REGB0
)) {
2446 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2447 if (UNTAG_Bool(REGB1
)) {
2448 REGB1
= TAG_Bool(0);
2451 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
2455 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2456 if (UNTAG_Bool(REGB0
)) {
2457 /* syntax/icode_generation.nit:380 */
2458 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2459 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2460 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___closure_decls(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2461 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2462 if (UNTAG_Bool(REGB0
)) {
2463 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 380);
2465 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]);
2467 /* syntax/icode_generation.nit:383 */
2468 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_parser___parser_nodes___AConcreteInitPropdef
, ID_parser___parser_nodes___AConcreteInitPropdef
)) /*cast AConcreteInitPropdef*/;
2469 if (UNTAG_Bool(REGB0
)) {
2470 /* syntax/icode_generation.nit:384 */
2471 CALL_syntax___icode_generation___A2IContext___invoke_super_init_calls_after(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2473 /* syntax/icode_generation.nit:387 */
2474 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AConcreteMethPropdef___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2475 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2476 if (UNTAG_Bool(REGB0
)) {
2478 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2479 if (UNTAG_Bool(REGB1
)) {
2480 REGB1
= TAG_Bool(0);
2483 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
2487 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2488 if (UNTAG_Bool(REGB0
)) {
2489 /* syntax/icode_generation.nit:388 */
2490 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AConcreteMethPropdef___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2491 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2493 /* syntax/icode_generation.nit:390 */
2494 CALL_syntax___icode_generation___A2IContext___selfreg__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
2495 stack_frame_head
= fra
.me
.prev
;
2498 static const char LOCATE_syntax___icode_generation___AExternPropdef___fill_iroutine
[] = "icode_generation::AExternPropdef::(icode_generation::AMethPropdef::fill_iroutine)";
2499 void syntax___icode_generation___AExternPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2500 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2503 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2504 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2506 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExternPropdef___fill_iroutine
;
2507 fra
.me
.has_broke
= 0;
2508 fra
.me
.REG_size
= 3;
2509 fra
.me
.nitni_local_ref_head
= NULL
;
2510 fra
.me
.REG
[0] = NIT_NULL
;
2511 fra
.me
.REG
[1] = NIT_NULL
;
2512 fra
.me
.REG
[2] = NIT_NULL
;
2516 /* syntax/icode_generation.nit:398 */
2517 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_syntax___syntax_base___MMMethSrcMethod
, ID_syntax___syntax_base___MMMethSrcMethod
)) /*cast MMMethSrcMethod*/;
2518 if (UNTAG_Bool(REGB0
)) {
2520 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 398);
2522 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMMethod___explicit_imports(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2523 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
));
2524 stack_frame_head
= fra
.me
.prev
;
2527 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
){
2528 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2532 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2533 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2535 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExternPropdef___fill_iroutine
;
2536 fra
.me
.has_broke
= 0;
2537 fra
.me
.REG_size
= 3;
2538 fra
.me
.nitni_local_ref_head
= NULL
;
2539 fra
.me
.REG
[0] = NIT_NULL
;
2540 fra
.me
.REG
[1] = NIT_NULL
;
2541 fra
.me
.REG
[2] = NIT_NULL
;
2542 fra
.me
.closure_ctx
= closctx_param
;
2543 fra
.me
.closure_funs
= CREG
;
2545 CREG
[0] = clos_fun0
;
2546 /* syntax/icode_generation.nit:400 */
2547 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMExplicitImport___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2548 /* syntax/icode_generation.nit:402 */
2549 REGB0
= CALL_syntax___syntax_base___MMLocalProperty___is_init(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2550 if (UNTAG_Bool(REGB0
)) {
2551 /* syntax/icode_generation.nit:403 */
2552 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2553 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
2554 if (UNTAG_Bool(REGB0
)) {
2555 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 403);
2557 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2558 fra
.me
.REG
[2] = NEW_List_standard___collection___list___List___init();
2559 fra
.me
.REG
[2] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
2561 /* syntax/icode_generation.nit:405 */
2562 fra
.me
.REG
[1] = NEW_List_standard___collection___list___List___init();
2563 fra
.me
.REG
[1] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2564 fra
.me
.REG
[2] = fra
.me
.REG
[1];
2566 /* syntax/icode_generation.nit:407 */
2567 REGB0
= TAG_Bool(1);
2568 CALL_icode___icode_base___IAbsCall___is_explicit_from_extern__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
2569 /* syntax/icode_generation.nit:408 */
2570 CALL_icode___icode_builder___ICodeBuilder___stmt(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[2]);
2571 stack_frame_head
= fra
.me
.prev
;
2574 static const char LOCATE_syntax___icode_generation___AExternInitPropdef___fill_iroutine
[] = "icode_generation::AExternInitPropdef::(icode_generation::AMethPropdef::fill_iroutine)";
2575 void syntax___icode_generation___AExternInitPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2576 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
2581 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2582 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2584 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExternInitPropdef___fill_iroutine
;
2585 fra
.me
.has_broke
= 0;
2586 fra
.me
.REG_size
= 8;
2587 fra
.me
.nitni_local_ref_head
= NULL
;
2588 fra
.me
.REG
[0] = NIT_NULL
;
2589 fra
.me
.REG
[1] = NIT_NULL
;
2590 fra
.me
.REG
[2] = NIT_NULL
;
2591 fra
.me
.REG
[3] = NIT_NULL
;
2592 fra
.me
.REG
[4] = NIT_NULL
;
2593 fra
.me
.REG
[5] = NIT_NULL
;
2594 fra
.me
.REG
[6] = NIT_NULL
;
2595 fra
.me
.REG
[7] = NIT_NULL
;
2599 /* syntax/icode_generation.nit:414 */
2600 fra
.me
.REG
[3] = fra
.me
.REG
[1];
2601 fra
.me
.REG
[4] = fra
.me
.REG
[2];
2602 /* syntax/icode_generation.nit:416 */
2603 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2604 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2605 /* syntax/icode_generation.nit:417 */
2606 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2607 /* syntax/icode_generation.nit:418 */
2608 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2609 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2610 if (UNTAG_Bool(REGB1
)) {
2611 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 418);
2613 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2615 /* ../lib/standard/kernel.nit:238 */
2616 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
2617 /* syntax/icode_generation.nit:418 */
2618 REGB1
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB2
));
2619 if (UNTAG_Bool(REGB1
)) {
2621 /* ../lib/standard/kernel.nit:230 */
2622 REGB2
= TAG_Bool((REGB0
)==(REGB2
));
2623 /* syntax/icode_generation.nit:418 */
2626 if (UNTAG_Bool(REGB1
)) {
2628 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 418);
2630 /* syntax/icode_generation.nit:419 */
2631 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2632 if (UNTAG_Bool(REGB1
)) {
2633 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 419);
2635 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___recv(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2636 /* syntax/icode_generation.nit:420 */
2637 fra
.me
.REG
[7] = NEW_IRegister_icode___icode_base___IRegister___init(fra
.me
.REG
[6]);
2638 fra
.me
.REG
[5] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2639 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]);
2640 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[7], fra
.me
.REG
[6]);
2641 /* syntax/icode_generation.nit:422 */
2642 CALL_SUPER_syntax___icode_generation___AExternInitPropdef___fill_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
2643 stack_frame_head
= fra
.me
.prev
;
2646 static const char LOCATE_syntax___icode_generation___ADeferredMethPropdef___fill_iroutine
[] = "icode_generation::ADeferredMethPropdef::(icode_generation::AMethPropdef::fill_iroutine)";
2647 void syntax___icode_generation___ADeferredMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2648 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2651 static val_t once_value_1
; /* Once value */
2652 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2653 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2655 fra
.me
.meth
= LOCATE_syntax___icode_generation___ADeferredMethPropdef___fill_iroutine
;
2656 fra
.me
.has_broke
= 0;
2657 fra
.me
.REG_size
= 3;
2658 fra
.me
.nitni_local_ref_head
= NULL
;
2659 fra
.me
.REG
[0] = NIT_NULL
;
2660 fra
.me
.REG
[1] = NIT_NULL
;
2661 fra
.me
.REG
[2] = NIT_NULL
;
2665 /* syntax/icode_generation.nit:429 */
2667 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
2668 if (!once_value_1
) {
2669 fra
.me
.REG
[0] = BOX_NativeString("Deferred method called");
2670 REGB0
= TAG_Int(22);
2671 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
2672 once_value_1
= fra
.me
.REG
[0];
2673 register_static_object(&once_value_1
);
2674 } else fra
.me
.REG
[0] = once_value_1
;
2675 fra
.me
.REG
[0] = fra
.me
.REG
[0];
2676 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2677 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2678 stack_frame_head
= fra
.me
.prev
;
2681 static const char LOCATE_syntax___icode_generation___AExternMethPropdef___fill_iroutine
[] = "icode_generation::AExternMethPropdef::(icode_generation::AMethPropdef::fill_iroutine)";
2682 void syntax___icode_generation___AExternMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2683 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
2687 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2688 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2690 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExternMethPropdef___fill_iroutine
;
2691 fra
.me
.has_broke
= 0;
2692 fra
.me
.REG_size
= 8;
2693 fra
.me
.nitni_local_ref_head
= NULL
;
2694 fra
.me
.REG
[0] = NIT_NULL
;
2695 fra
.me
.REG
[1] = NIT_NULL
;
2696 fra
.me
.REG
[2] = NIT_NULL
;
2697 fra
.me
.REG
[3] = NIT_NULL
;
2698 fra
.me
.REG
[4] = NIT_NULL
;
2699 fra
.me
.REG
[5] = NIT_NULL
;
2700 fra
.me
.REG
[6] = NIT_NULL
;
2701 fra
.me
.REG
[7] = NIT_NULL
;
2705 /* syntax/icode_generation.nit:434 */
2706 fra
.me
.REG
[3] = fra
.me
.REG
[1];
2707 fra
.me
.REG
[4] = fra
.me
.REG
[2];
2708 /* syntax/icode_generation.nit:436 */
2709 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2710 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2711 /* syntax/icode_generation.nit:437 */
2712 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2713 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2714 if (UNTAG_Bool(REGB0
)) {
2715 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 437);
2717 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
2718 /* syntax/icode_generation.nit:438 */
2719 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2720 if (UNTAG_Bool(REGB0
)) {
2722 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2723 if (UNTAG_Bool(REGB1
)) {
2724 REGB1
= TAG_Bool(0);
2727 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
2731 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2732 if (UNTAG_Bool(REGB0
)) {
2733 /* syntax/icode_generation.nit:439 */
2734 fra
.me
.REG
[7] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2735 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]);
2736 CALL_icode___icode_builder___ICodeBuilder___add_return_value(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
2738 /* syntax/icode_generation.nit:441 */
2739 fra
.me
.REG
[5] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[4], fra
.me
.REG
[5]);
2740 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
2742 /* syntax/icode_generation.nit:444 */
2743 CALL_SUPER_syntax___icode_generation___AExternMethPropdef___fill_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
2744 stack_frame_head
= fra
.me
.prev
;
2747 static const char LOCATE_syntax___icode_generation___AInternMethPropdef___fill_iroutine
[] = "icode_generation::AInternMethPropdef::(icode_generation::AMethPropdef::fill_iroutine)";
2748 void syntax___icode_generation___AInternMethPropdef___fill_iroutine(val_t p0
, val_t p1
, val_t p2
){
2749 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2753 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2754 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2756 fra
.me
.meth
= LOCATE_syntax___icode_generation___AInternMethPropdef___fill_iroutine
;
2757 fra
.me
.has_broke
= 0;
2758 fra
.me
.REG_size
= 5;
2759 fra
.me
.nitni_local_ref_head
= NULL
;
2760 fra
.me
.REG
[0] = NIT_NULL
;
2761 fra
.me
.REG
[1] = NIT_NULL
;
2762 fra
.me
.REG
[2] = NIT_NULL
;
2763 fra
.me
.REG
[3] = NIT_NULL
;
2764 fra
.me
.REG
[4] = NIT_NULL
;
2768 /* syntax/icode_generation.nit:451 */
2769 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2770 fra
.me
.REG
[0] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2771 /* syntax/icode_generation.nit:452 */
2772 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2773 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2774 if (UNTAG_Bool(REGB0
)) {
2775 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 452);
2777 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2778 /* syntax/icode_generation.nit:453 */
2779 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2780 if (UNTAG_Bool(REGB0
)) {
2782 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2783 if (UNTAG_Bool(REGB1
)) {
2784 REGB1
= TAG_Bool(0);
2787 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2791 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2792 if (UNTAG_Bool(REGB0
)) {
2793 /* syntax/icode_generation.nit:454 */
2794 fra
.me
.REG
[4] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2795 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]);
2796 CALL_icode___icode_builder___ICodeBuilder___add_return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2798 /* syntax/icode_generation.nit:456 */
2799 fra
.me
.REG
[0] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
2800 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2802 stack_frame_head
= fra
.me
.prev
;
2805 static const char LOCATE_syntax___icode_generation___AExpr___accept_icode_generation
[] = "icode_generation::AExpr::(icode_generation::ANode::accept_icode_generation)";
2806 void syntax___icode_generation___AExpr___accept_icode_generation(val_t p0
, val_t p1
){
2807 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2809 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2810 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2812 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExpr___accept_icode_generation
;
2813 fra
.me
.has_broke
= 0;
2814 fra
.me
.REG_size
= 2;
2815 fra
.me
.nitni_local_ref_head
= NULL
;
2816 fra
.me
.REG
[0] = NIT_NULL
;
2817 fra
.me
.REG
[1] = NIT_NULL
;
2820 stack_frame_head
= fra
.me
.prev
;
2823 static const char LOCATE_syntax___icode_generation___AExpr___generate_icode
[] = "icode_generation::AExpr::generate_icode";
2824 val_t
syntax___icode_generation___AExpr___generate_icode(val_t p0
, val_t p1
){
2825 struct {struct stack_frame_t me
;} fra
;
2827 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2828 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2830 fra
.me
.meth
= LOCATE_syntax___icode_generation___AExpr___generate_icode
;
2831 fra
.me
.has_broke
= 0;
2832 fra
.me
.REG_size
= 0;
2833 fra
.me
.nitni_local_ref_head
= NULL
;
2834 /* syntax/icode_generation.nit:466 */
2835 nit_abort("Deferred method called", NULL
, LOCATE_syntax___icode_generation
, 466);
2836 stack_frame_head
= fra
.me
.prev
;
2839 static const char LOCATE_syntax___icode_generation___AVardeclExpr___generate_icode
[] = "icode_generation::AVardeclExpr::(icode_generation::AExpr::generate_icode)";
2840 val_t
syntax___icode_generation___AVardeclExpr___generate_icode(val_t p0
, val_t p1
){
2841 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2845 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2846 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2848 fra
.me
.meth
= LOCATE_syntax___icode_generation___AVardeclExpr___generate_icode
;
2849 fra
.me
.has_broke
= 0;
2850 fra
.me
.REG_size
= 3;
2851 fra
.me
.nitni_local_ref_head
= NULL
;
2852 fra
.me
.REG
[0] = NIT_NULL
;
2853 fra
.me
.REG
[1] = NIT_NULL
;
2854 fra
.me
.REG
[2] = NIT_NULL
;
2857 /* syntax/icode_generation.nit:474 */
2858 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AVardeclExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2859 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2860 /* syntax/icode_generation.nit:475 */
2861 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AVardeclExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2862 /* syntax/icode_generation.nit:476 */
2863 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2864 if (UNTAG_Bool(REGB0
)) {
2866 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2867 if (UNTAG_Bool(REGB1
)) {
2868 REGB1
= TAG_Bool(0);
2871 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
2875 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2876 if (UNTAG_Bool(REGB0
)) {
2877 /* syntax/icode_generation.nit:477 */
2878 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2879 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
2881 /* syntax/icode_generation.nit:479 */
2882 fra
.me
.REG
[0] = NIT_NULL
;
2885 stack_frame_head
= fra
.me
.prev
;
2886 return fra
.me
.REG
[0];
2888 static const char LOCATE_syntax___icode_generation___ABlockExpr___generate_icode
[] = "icode_generation::ABlockExpr::(icode_generation::AExpr::generate_icode)";
2889 val_t
syntax___icode_generation___ABlockExpr___generate_icode(val_t p0
, val_t p1
){
2890 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
2892 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2893 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2895 fra
.me
.meth
= LOCATE_syntax___icode_generation___ABlockExpr___generate_icode
;
2896 fra
.me
.has_broke
= 0;
2897 fra
.me
.REG_size
= 2;
2898 fra
.me
.nitni_local_ref_head
= NULL
;
2899 fra
.me
.REG
[0] = NIT_NULL
;
2900 fra
.me
.REG
[1] = NIT_NULL
;
2903 /* syntax/icode_generation.nit:486 */
2904 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ABlockExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2905 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
));
2906 /* syntax/icode_generation.nit:487 */
2907 fra
.me
.REG
[1] = NIT_NULL
;
2910 stack_frame_head
= fra
.me
.prev
;
2911 return fra
.me
.REG
[1];
2913 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
){
2914 struct {struct stack_frame_t me
;} fra
;
2917 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2918 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2920 fra
.me
.meth
= LOCATE_syntax___icode_generation___ABlockExpr___generate_icode
;
2921 fra
.me
.has_broke
= 0;
2922 fra
.me
.REG_size
= 1;
2923 fra
.me
.nitni_local_ref_head
= NULL
;
2924 fra
.me
.REG
[0] = NIT_NULL
;
2925 fra
.me
.closure_ctx
= closctx_param
;
2926 fra
.me
.closure_funs
= CREG
;
2928 CREG
[0] = clos_fun0
;
2929 CALL_syntax___icode_generation___A2IContext___generate_stmt(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
2930 stack_frame_head
= fra
.me
.prev
;
2933 static const char LOCATE_syntax___icode_generation___ADoExpr___generate_icode
[] = "icode_generation::ADoExpr::(icode_generation::AExpr::generate_icode)";
2934 val_t
syntax___icode_generation___ADoExpr___generate_icode(val_t p0
, val_t p1
){
2935 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2938 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2939 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2941 fra
.me
.meth
= LOCATE_syntax___icode_generation___ADoExpr___generate_icode
;
2942 fra
.me
.has_broke
= 0;
2943 fra
.me
.REG_size
= 5;
2944 fra
.me
.nitni_local_ref_head
= NULL
;
2945 fra
.me
.REG
[0] = NIT_NULL
;
2946 fra
.me
.REG
[1] = NIT_NULL
;
2947 fra
.me
.REG
[2] = NIT_NULL
;
2948 fra
.me
.REG
[3] = NIT_NULL
;
2949 fra
.me
.REG
[4] = NIT_NULL
;
2952 /* syntax/icode_generation.nit:494 */
2953 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2954 /* syntax/icode_generation.nit:495 */
2955 fra
.me
.REG
[3] = NEW_ISeq_icode___icode_base___ISeq___init();
2956 /* syntax/icode_generation.nit:496 */
2957 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2958 /* syntax/icode_generation.nit:497 */
2959 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2960 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2961 if (UNTAG_Bool(REGB0
)) {
2962 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 497);
2964 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
2965 /* syntax/icode_generation.nit:498 */
2966 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2967 /* syntax/icode_generation.nit:500 */
2968 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ADoExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2969 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2970 /* syntax/icode_generation.nit:502 */
2971 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
2972 /* syntax/icode_generation.nit:503 */
2973 fra
.me
.REG
[2] = NIT_NULL
;
2976 stack_frame_head
= fra
.me
.prev
;
2977 return fra
.me
.REG
[2];
2979 static const char LOCATE_syntax___icode_generation___AReturnExpr___generate_icode
[] = "icode_generation::AReturnExpr::(icode_generation::AExpr::generate_icode)";
2980 val_t
syntax___icode_generation___AReturnExpr___generate_icode(val_t p0
, val_t p1
){
2981 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2985 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2986 fra
.me
.file
= LOCATE_syntax___icode_generation
;
2988 fra
.me
.meth
= LOCATE_syntax___icode_generation___AReturnExpr___generate_icode
;
2989 fra
.me
.has_broke
= 0;
2990 fra
.me
.REG_size
= 4;
2991 fra
.me
.nitni_local_ref_head
= NULL
;
2992 fra
.me
.REG
[0] = NIT_NULL
;
2993 fra
.me
.REG
[1] = NIT_NULL
;
2994 fra
.me
.REG
[2] = NIT_NULL
;
2995 fra
.me
.REG
[3] = NIT_NULL
;
2998 /* syntax/icode_generation.nit:508 */
2999 fra
.me
.REG
[2] = fra
.me
.REG
[0];
3000 /* syntax/icode_generation.nit:510 */
3001 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AReturnExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3002 /* syntax/icode_generation.nit:511 */
3003 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3004 if (UNTAG_Bool(REGB0
)) {
3006 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3007 if (UNTAG_Bool(REGB1
)) {
3008 REGB1
= TAG_Bool(0);
3011 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3015 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3016 if (UNTAG_Bool(REGB0
)) {
3017 /* syntax/icode_generation.nit:512 */
3018 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___return_value(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3019 REGB0
= TAG_Bool(fra
.me
.REG
[3]!=NIT_NULL
);
3020 if (UNTAG_Bool(REGB0
)) {
3022 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 512);
3024 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3025 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
3027 /* syntax/icode_generation.nit:514 */
3028 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___return_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3029 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
3030 if (UNTAG_Bool(REGB0
)) {
3032 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 514);
3034 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3035 /* syntax/icode_generation.nit:515 */
3036 fra
.me
.REG
[2] = NIT_NULL
;
3039 stack_frame_head
= fra
.me
.prev
;
3040 return fra
.me
.REG
[2];
3042 static const char LOCATE_syntax___icode_generation___ABreakExpr___generate_icode
[] = "icode_generation::ABreakExpr::(icode_generation::AExpr::generate_icode)";
3043 val_t
syntax___icode_generation___ABreakExpr___generate_icode(val_t p0
, val_t p1
){
3044 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3048 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3049 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3051 fra
.me
.meth
= LOCATE_syntax___icode_generation___ABreakExpr___generate_icode
;
3052 fra
.me
.has_broke
= 0;
3053 fra
.me
.REG_size
= 5;
3054 fra
.me
.nitni_local_ref_head
= NULL
;
3055 fra
.me
.REG
[0] = NIT_NULL
;
3056 fra
.me
.REG
[1] = NIT_NULL
;
3057 fra
.me
.REG
[2] = NIT_NULL
;
3058 fra
.me
.REG
[3] = NIT_NULL
;
3059 fra
.me
.REG
[4] = NIT_NULL
;
3062 /* syntax/icode_generation.nit:520 */
3063 fra
.me
.REG
[2] = fra
.me
.REG
[0];
3064 /* syntax/icode_generation.nit:522 */
3065 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ABreakExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3066 /* syntax/icode_generation.nit:523 */
3067 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3068 if (UNTAG_Bool(REGB0
)) {
3070 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3071 if (UNTAG_Bool(REGB1
)) {
3072 REGB1
= TAG_Bool(0);
3075 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3079 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3080 if (UNTAG_Bool(REGB0
)) {
3081 /* syntax/icode_generation.nit:524 */
3082 fra
.me
.REG
[4] = CALL_syntax___scope___AEscapeExpr___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3083 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3084 if (UNTAG_Bool(REGB0
)) {
3085 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 524);
3087 fra
.me
.REG
[4] = CALL_syntax___icode_generation___EscapableBlock___break_value(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3088 REGB0
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
3089 if (UNTAG_Bool(REGB0
)) {
3091 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 524);
3093 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3094 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[3]);
3096 /* syntax/icode_generation.nit:526 */
3097 fra
.me
.REG
[2] = CALL_syntax___scope___AEscapeExpr___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3098 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3099 if (UNTAG_Bool(REGB0
)) {
3100 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 526);
3102 fra
.me
.REG
[2] = CALL_syntax___icode_generation___EscapableBlock___break_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3103 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
3104 if (UNTAG_Bool(REGB0
)) {
3106 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 526);
3108 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3109 /* syntax/icode_generation.nit:527 */
3110 fra
.me
.REG
[2] = NIT_NULL
;
3113 stack_frame_head
= fra
.me
.prev
;
3114 return fra
.me
.REG
[2];
3116 static const char LOCATE_syntax___icode_generation___AContinueExpr___generate_icode
[] = "icode_generation::AContinueExpr::(icode_generation::AExpr::generate_icode)";
3117 val_t
syntax___icode_generation___AContinueExpr___generate_icode(val_t p0
, val_t p1
){
3118 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3122 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3123 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3125 fra
.me
.meth
= LOCATE_syntax___icode_generation___AContinueExpr___generate_icode
;
3126 fra
.me
.has_broke
= 0;
3127 fra
.me
.REG_size
= 5;
3128 fra
.me
.nitni_local_ref_head
= NULL
;
3129 fra
.me
.REG
[0] = NIT_NULL
;
3130 fra
.me
.REG
[1] = NIT_NULL
;
3131 fra
.me
.REG
[2] = NIT_NULL
;
3132 fra
.me
.REG
[3] = NIT_NULL
;
3133 fra
.me
.REG
[4] = NIT_NULL
;
3136 /* syntax/icode_generation.nit:532 */
3137 fra
.me
.REG
[2] = fra
.me
.REG
[0];
3138 /* syntax/icode_generation.nit:534 */
3139 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AContinueExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3140 /* syntax/icode_generation.nit:535 */
3141 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3142 if (UNTAG_Bool(REGB0
)) {
3144 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3145 if (UNTAG_Bool(REGB1
)) {
3146 REGB1
= TAG_Bool(0);
3149 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3153 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3154 if (UNTAG_Bool(REGB0
)) {
3155 /* syntax/icode_generation.nit:536 */
3156 fra
.me
.REG
[4] = CALL_syntax___scope___AEscapeExpr___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3157 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3158 if (UNTAG_Bool(REGB0
)) {
3159 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 536);
3161 fra
.me
.REG
[4] = CALL_syntax___icode_generation___EscapableBlock___continue_value(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3162 REGB0
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
3163 if (UNTAG_Bool(REGB0
)) {
3165 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 536);
3167 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3168 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[3]);
3170 /* syntax/icode_generation.nit:538 */
3171 fra
.me
.REG
[2] = CALL_syntax___scope___AEscapeExpr___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3172 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3173 if (UNTAG_Bool(REGB0
)) {
3174 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 538);
3176 fra
.me
.REG
[2] = CALL_syntax___icode_generation___EscapableBlock___continue_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3177 REGB0
= TAG_Bool(fra
.me
.REG
[2]!=NIT_NULL
);
3178 if (UNTAG_Bool(REGB0
)) {
3180 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 538);
3182 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3183 /* syntax/icode_generation.nit:539 */
3184 fra
.me
.REG
[2] = NIT_NULL
;
3187 stack_frame_head
= fra
.me
.prev
;
3188 return fra
.me
.REG
[2];
3190 static const char LOCATE_syntax___icode_generation___AAbortExpr___generate_icode
[] = "icode_generation::AAbortExpr::(icode_generation::AExpr::generate_icode)";
3191 val_t
syntax___icode_generation___AAbortExpr___generate_icode(val_t p0
, val_t p1
){
3192 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3195 static val_t once_value_1
; /* Once value */
3196 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3197 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3199 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAbortExpr___generate_icode
;
3200 fra
.me
.has_broke
= 0;
3201 fra
.me
.REG_size
= 3;
3202 fra
.me
.nitni_local_ref_head
= NULL
;
3203 fra
.me
.REG
[0] = NIT_NULL
;
3204 fra
.me
.REG
[1] = NIT_NULL
;
3205 fra
.me
.REG
[2] = NIT_NULL
;
3208 /* syntax/icode_generation.nit:546 */
3210 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3211 if (!once_value_1
) {
3212 fra
.me
.REG
[2] = BOX_NativeString("Aborted");
3214 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
3215 once_value_1
= fra
.me
.REG
[2];
3216 register_static_object(&once_value_1
);
3217 } else fra
.me
.REG
[2] = once_value_1
;
3218 fra
.me
.REG
[2] = fra
.me
.REG
[2];
3219 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
3220 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3221 /* syntax/icode_generation.nit:547 */
3222 fra
.me
.REG
[0] = NIT_NULL
;
3225 stack_frame_head
= fra
.me
.prev
;
3226 return fra
.me
.REG
[0];
3228 static const char LOCATE_syntax___icode_generation___AIfExpr___generate_icode
[] = "icode_generation::AIfExpr::(icode_generation::AExpr::generate_icode)";
3229 val_t
syntax___icode_generation___AIfExpr___generate_icode(val_t p0
, val_t p1
){
3230 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3234 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3235 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3237 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIfExpr___generate_icode
;
3238 fra
.me
.has_broke
= 0;
3239 fra
.me
.REG_size
= 5;
3240 fra
.me
.nitni_local_ref_head
= NULL
;
3241 fra
.me
.REG
[0] = NIT_NULL
;
3242 fra
.me
.REG
[1] = NIT_NULL
;
3243 fra
.me
.REG
[2] = NIT_NULL
;
3244 fra
.me
.REG
[3] = NIT_NULL
;
3245 fra
.me
.REG
[4] = NIT_NULL
;
3248 /* syntax/icode_generation.nit:554 */
3249 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3250 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3251 fra
.me
.REG
[2] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[2]);
3252 /* syntax/icode_generation.nit:555 */
3253 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3254 /* syntax/icode_generation.nit:556 */
3255 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3256 /* syntax/icode_generation.nit:558 */
3257 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3258 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3259 if (UNTAG_Bool(REGB0
)) {
3261 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3262 if (UNTAG_Bool(REGB1
)) {
3263 REGB1
= TAG_Bool(0);
3266 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3270 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3271 if (UNTAG_Bool(REGB0
)) {
3272 /* syntax/icode_generation.nit:559 */
3273 fra
.me
.REG
[4] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3274 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3275 /* syntax/icode_generation.nit:560 */
3276 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3277 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3279 /* syntax/icode_generation.nit:563 */
3280 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3281 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3282 if (UNTAG_Bool(REGB0
)) {
3284 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3285 if (UNTAG_Bool(REGB1
)) {
3286 REGB1
= TAG_Bool(0);
3289 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
3293 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3294 if (UNTAG_Bool(REGB0
)) {
3295 /* syntax/icode_generation.nit:564 */
3296 fra
.me
.REG
[2] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3297 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3298 /* syntax/icode_generation.nit:565 */
3299 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AIfExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3300 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3302 /* syntax/icode_generation.nit:568 */
3303 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3304 /* syntax/icode_generation.nit:569 */
3305 fra
.me
.REG
[3] = NIT_NULL
;
3308 stack_frame_head
= fra
.me
.prev
;
3309 return fra
.me
.REG
[3];
3311 static const char LOCATE_syntax___icode_generation___AWhileExpr___generate_icode
[] = "icode_generation::AWhileExpr::(icode_generation::AExpr::generate_icode)";
3312 val_t
syntax___icode_generation___AWhileExpr___generate_icode(val_t p0
, val_t p1
){
3313 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3317 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3318 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3320 fra
.me
.meth
= LOCATE_syntax___icode_generation___AWhileExpr___generate_icode
;
3321 fra
.me
.has_broke
= 0;
3322 fra
.me
.REG_size
= 7;
3323 fra
.me
.nitni_local_ref_head
= NULL
;
3324 fra
.me
.REG
[0] = NIT_NULL
;
3325 fra
.me
.REG
[1] = NIT_NULL
;
3326 fra
.me
.REG
[2] = NIT_NULL
;
3327 fra
.me
.REG
[3] = NIT_NULL
;
3328 fra
.me
.REG
[4] = NIT_NULL
;
3329 fra
.me
.REG
[5] = NIT_NULL
;
3330 fra
.me
.REG
[6] = NIT_NULL
;
3333 /* syntax/icode_generation.nit:576 */
3334 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3335 /* syntax/icode_generation.nit:577 */
3336 fra
.me
.REG
[3] = NEW_ILoop_icode___icode_base___ILoop___init();
3337 /* syntax/icode_generation.nit:578 */
3338 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3339 /* syntax/icode_generation.nit:579 */
3340 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3341 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3342 if (UNTAG_Bool(REGB0
)) {
3343 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 579);
3345 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3346 /* syntax/icode_generation.nit:580 */
3347 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3348 /* syntax/icode_generation.nit:583 */
3349 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AWhileExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3350 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3351 fra
.me
.REG
[4] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[4]);
3352 /* syntax/icode_generation.nit:584 */
3353 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3354 /* syntax/icode_generation.nit:587 */
3355 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3356 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
3357 if (UNTAG_Bool(REGB0
)) {
3359 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
3360 if (UNTAG_Bool(REGB1
)) {
3361 REGB1
= TAG_Bool(0);
3364 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
3368 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3369 if (UNTAG_Bool(REGB0
)) {
3370 /* syntax/icode_generation.nit:588 */
3371 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3372 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
3373 /* syntax/icode_generation.nit:589 */
3374 fra
.me
.REG
[5] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3375 fra
.me
.REG
[6] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3376 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
3377 if (UNTAG_Bool(REGB0
)) {
3378 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 589);
3380 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3381 /* syntax/icode_generation.nit:590 */
3382 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AWhileExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3383 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3385 /* syntax/icode_generation.nit:594 */
3386 fra
.me
.REG
[4] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3387 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3388 /* syntax/icode_generation.nit:595 */
3389 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3390 /* syntax/icode_generation.nit:597 */
3391 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3392 /* syntax/icode_generation.nit:598 */
3393 fra
.me
.REG
[2] = NIT_NULL
;
3396 stack_frame_head
= fra
.me
.prev
;
3397 return fra
.me
.REG
[2];
3399 static const char LOCATE_syntax___icode_generation___ALoopExpr___generate_icode
[] = "icode_generation::ALoopExpr::(icode_generation::AExpr::generate_icode)";
3400 val_t
syntax___icode_generation___ALoopExpr___generate_icode(val_t p0
, val_t p1
){
3401 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3405 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3406 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3408 fra
.me
.meth
= LOCATE_syntax___icode_generation___ALoopExpr___generate_icode
;
3409 fra
.me
.has_broke
= 0;
3410 fra
.me
.REG_size
= 5;
3411 fra
.me
.nitni_local_ref_head
= NULL
;
3412 fra
.me
.REG
[0] = NIT_NULL
;
3413 fra
.me
.REG
[1] = NIT_NULL
;
3414 fra
.me
.REG
[2] = NIT_NULL
;
3415 fra
.me
.REG
[3] = NIT_NULL
;
3416 fra
.me
.REG
[4] = NIT_NULL
;
3419 /* syntax/icode_generation.nit:605 */
3420 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3421 /* syntax/icode_generation.nit:606 */
3422 fra
.me
.REG
[3] = NEW_ILoop_icode___icode_base___ILoop___init();
3423 /* syntax/icode_generation.nit:607 */
3424 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3425 /* syntax/icode_generation.nit:608 */
3426 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3427 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3428 if (UNTAG_Bool(REGB0
)) {
3429 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 608);
3431 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3432 /* syntax/icode_generation.nit:609 */
3433 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3434 /* syntax/icode_generation.nit:612 */
3435 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3436 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3437 if (UNTAG_Bool(REGB0
)) {
3439 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3440 if (UNTAG_Bool(REGB1
)) {
3441 REGB1
= TAG_Bool(0);
3444 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
3448 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3449 if (UNTAG_Bool(REGB0
)) {
3450 /* syntax/icode_generation.nit:613 */
3451 fra
.me
.REG
[3] = NEW_ISeq_icode___icode_base___ISeq___init();
3452 /* syntax/icode_generation.nit:614 */
3453 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3454 /* syntax/icode_generation.nit:615 */
3455 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3456 /* syntax/icode_generation.nit:616 */
3457 fra
.me
.REG
[4] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3458 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3459 if (UNTAG_Bool(REGB0
)) {
3460 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 616);
3462 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3463 /* syntax/icode_generation.nit:617 */
3464 fra
.me
.REG
[0] = CALL_parser___parser_nodes___ALoopExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3465 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3467 /* syntax/icode_generation.nit:620 */
3468 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3469 /* syntax/icode_generation.nit:621 */
3470 fra
.me
.REG
[2] = NIT_NULL
;
3473 stack_frame_head
= fra
.me
.prev
;
3474 return fra
.me
.REG
[2];
3476 static const char LOCATE_syntax___icode_generation___AForExpr___generate_icode
[] = "icode_generation::AForExpr::(icode_generation::AExpr::generate_icode)";
3477 val_t
syntax___icode_generation___AForExpr___generate_icode(val_t p0
, val_t p1
){
3478 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
3486 static val_t once_value_1
; /* Once value */
3487 static val_t once_value_2
; /* Once value */
3488 static val_t once_value_3
; /* Once value */
3489 static val_t once_value_4
; /* Once value */
3490 static val_t once_value_5
; /* Once value */
3491 static val_t once_value_6
; /* Once value */
3492 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3493 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3495 fra
.me
.meth
= LOCATE_syntax___icode_generation___AForExpr___generate_icode
;
3496 fra
.me
.has_broke
= 0;
3497 fra
.me
.REG_size
= 9;
3498 fra
.me
.nitni_local_ref_head
= NULL
;
3499 fra
.me
.REG
[0] = NIT_NULL
;
3500 fra
.me
.REG
[1] = NIT_NULL
;
3501 fra
.me
.REG
[2] = NIT_NULL
;
3502 fra
.me
.REG
[3] = NIT_NULL
;
3503 fra
.me
.REG
[4] = NIT_NULL
;
3504 fra
.me
.REG
[5] = NIT_NULL
;
3505 fra
.me
.REG
[6] = NIT_NULL
;
3506 fra
.me
.REG
[7] = NIT_NULL
;
3507 fra
.me
.REG
[8] = NIT_NULL
;
3510 /* syntax/icode_generation.nit:628 */
3511 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3512 /* syntax/icode_generation.nit:629 */
3513 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3514 /* syntax/icode_generation.nit:630 */
3515 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3516 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3517 /* syntax/icode_generation.nit:634 */
3518 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_parser___parser_nodes___ARangeExpr
, ID_parser___parser_nodes___ARangeExpr
)) /*cast ARangeExpr*/;
3519 if (UNTAG_Bool(REGB0
)) {
3520 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3521 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_range(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
3522 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[5]));
3523 if (UNTAG_Bool(REGB0
)) {
3525 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
3529 REGB1
= TAG_Bool(0);
3532 if (UNTAG_Bool(REGB0
)) {
3533 /* syntax/icode_generation.nit:639 */
3535 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3536 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3537 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3538 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3539 fra
.me
.REG
[6] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3540 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3541 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3542 /* syntax/icode_generation.nit:640 */
3543 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_parser___parser_nodes___ACrangeExpr
, ID_parser___parser_nodes___ACrangeExpr
)) /*cast ACrangeExpr*/;
3544 if (UNTAG_Bool(REGB0
)) {
3545 /* syntax/icode_generation.nit:641 */
3546 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3547 if (!once_value_1
) {
3548 if (!once_value_2
) {
3549 fra
.me
.REG
[7] = BOX_NativeString("enumerate_to");
3550 REGB0
= TAG_Int(12);
3551 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB0
);
3552 once_value_2
= fra
.me
.REG
[7];
3553 register_static_object(&once_value_2
);
3554 } else fra
.me
.REG
[7] = once_value_2
;
3555 fra
.me
.REG
[7] = fra
.me
.REG
[7];
3556 fra
.me
.REG
[7] = CALL_symbol___String___to_symbol(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3557 once_value_1
= fra
.me
.REG
[7];
3558 register_static_object(&once_value_1
);
3559 } else fra
.me
.REG
[7] = once_value_1
;
3560 fra
.me
.REG
[7] = fra
.me
.REG
[7];
3561 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]);
3563 /* syntax/icode_generation.nit:643 */
3564 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_parser___parser_nodes___AOrangeExpr
, ID_parser___parser_nodes___AOrangeExpr
)) /*cast AOrangeExpr*/;
3565 if (UNTAG_Bool(REGB0
)) {
3567 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 643);
3569 /* syntax/icode_generation.nit:644 */
3570 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3571 if (!once_value_3
) {
3572 if (!once_value_4
) {
3573 fra
.me
.REG
[6] = BOX_NativeString("enumerate_before");
3574 REGB0
= TAG_Int(16);
3575 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
3576 once_value_4
= fra
.me
.REG
[6];
3577 register_static_object(&once_value_4
);
3578 } else fra
.me
.REG
[6] = once_value_4
;
3579 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3580 fra
.me
.REG
[6] = CALL_symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
3581 once_value_3
= fra
.me
.REG
[6];
3582 register_static_object(&once_value_3
);
3583 } else fra
.me
.REG
[6] = once_value_3
;
3584 fra
.me
.REG
[6] = fra
.me
.REG
[6];
3585 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]);
3586 fra
.me
.REG
[7] = fra
.me
.REG
[6];
3589 /* syntax/icode_generation.nit:650 */
3590 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3591 if (!once_value_5
) {
3592 if (!once_value_6
) {
3593 fra
.me
.REG
[4] = BOX_NativeString("iterate");
3595 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3596 once_value_6
= fra
.me
.REG
[4];
3597 register_static_object(&once_value_6
);
3598 } else fra
.me
.REG
[4] = once_value_6
;
3599 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3600 fra
.me
.REG
[4] = CALL_symbol___String___to_symbol(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3601 once_value_5
= fra
.me
.REG
[4];
3602 register_static_object(&once_value_5
);
3603 } else fra
.me
.REG
[4] = once_value_5
;
3604 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3605 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]);
3606 fra
.me
.REG
[7] = fra
.me
.REG
[4];
3607 /* syntax/icode_generation.nit:651 */
3609 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3610 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AForExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3611 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3612 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
3613 fra
.me
.REG
[5] = fra
.me
.REG
[4];
3615 /* syntax/icode_generation.nit:655 */
3616 REGB0
= TAG_Bool(fra
.me
.REG
[7]==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___MMLocalProperty___signature(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
3621 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3622 if (UNTAG_Bool(REGB0
)) {
3623 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 655);
3625 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3626 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3627 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
3628 if (UNTAG_Bool(REGB0
)) {
3629 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 655);
3631 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3632 fra
.me
.REG
[4] = CALL_icode___icode_builder___MMSignature___generate_empty_iclosuredef(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
3633 /* syntax/icode_generation.nit:656 */
3634 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3635 /* syntax/icode_generation.nit:658 */
3636 fra
.me
.REG
[6] = NEW_ISeq_icode___icode_base___ISeq___init();
3637 /* syntax/icode_generation.nit:659 */
3638 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3639 /* syntax/icode_generation.nit:660 */
3640 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3641 /* syntax/icode_generation.nit:661 */
3642 fra
.me
.REG
[2] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3643 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3644 if (UNTAG_Bool(REGB0
)) {
3645 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 661);
3647 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
3648 /* syntax/icode_generation.nit:662 */
3649 fra
.me
.REG
[2] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3650 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3651 if (UNTAG_Bool(REGB0
)) {
3652 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 662);
3654 CALL_syntax___icode_generation___EscapableBlock___break_value__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
3655 /* syntax/icode_generation.nit:664 */
3656 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3657 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3658 /* syntax/icode_generation.nit:665 */
3659 fra
.me
.REG
[2] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3660 fra
.me
.REG
[8] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3661 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3662 if (UNTAG_Bool(REGB0
)) {
3663 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 665);
3665 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[8]);
3666 /* syntax/icode_generation.nit:666 */
3667 fra
.me
.REG
[8] = CALL_syntax___typing___AAbsControl___escapable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3668 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
3669 if (UNTAG_Bool(REGB0
)) {
3670 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 666);
3672 CALL_syntax___icode_generation___EscapableBlock___continue_value__eq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
3673 /* syntax/icode_generation.nit:667 */
3675 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AForExpr___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3676 /* ../lib/standard/collection/array.nit:24 */
3677 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8])!=NIT_NULL
);
3678 if (UNTAG_Bool(REGB1
)) {
3680 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
3682 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8]);
3683 /* ../lib/standard/kernel.nit:355 */
3685 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
3686 if (UNTAG_Bool(REGB2
)) {
3688 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
3690 /* ../lib/standard/kernel.nit:235 */
3691 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
3692 /* ../lib/standard/kernel.nit:355 */
3693 if (UNTAG_Bool(REGB2
)) {
3694 /* syntax/icode_generation.nit:667 */
3696 /* syntax/icode_generation.nit:668 */
3697 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AForExpr___variables(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3698 /* ../lib/standard/collection/array.nit:278 */
3700 /* ../lib/standard/collection/array.nit:280 */
3702 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
3703 if (UNTAG_Bool(REGB5
)) {
3705 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
3707 /* ../lib/standard/kernel.nit:236 */
3708 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
3709 /* ../lib/standard/collection/array.nit:280 */
3710 if (UNTAG_Bool(REGB4
)) {
3711 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8])!=NIT_NULL
);
3712 if (UNTAG_Bool(REGB4
)) {
3714 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
3716 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8]);
3717 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
3718 if (UNTAG_Bool(REGB5
)) {
3720 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
3722 /* ../lib/standard/kernel.nit:235 */
3723 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
3725 /* ../lib/standard/collection/array.nit:280 */
3726 REGB5
= TAG_Bool(0);
3729 if (UNTAG_Bool(REGB4
)) {
3731 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
3733 /* ../lib/standard/collection/array.nit:281 */
3734 fra
.me
.REG
[8] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[8]);
3735 REGB4
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
3736 if (UNTAG_Bool(REGB4
)) {
3737 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
3739 /* ../lib/standard/collection/array.nit:724 */
3740 fra
.me
.REG
[8] = ((Nit_NativeArray
)fra
.me
.REG
[8])->val
[UNTAG_Int(REGB3
)];
3741 /* ../lib/standard/collection/array.nit:281 */
3744 /* syntax/icode_generation.nit:668 */
3745 fra
.me
.REG
[8] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[8]);
3746 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3747 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB2
);
3748 fra
.me
.REG
[2] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[8], fra
.me
.REG
[2]);
3749 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3750 /* ../lib/standard/kernel.nit:357 */
3752 /* ../lib/standard/kernel.nit:238 */
3753 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
3754 /* ../lib/standard/kernel.nit:357 */
3757 /* ../lib/standard/kernel.nit:355 */
3762 /* syntax/icode_generation.nit:670 */
3763 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AForExpr___n_block(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3764 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3765 /* syntax/icode_generation.nit:673 */
3766 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
3767 /* syntax/icode_generation.nit:674 */
3769 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3770 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
3771 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]);
3772 /* syntax/icode_generation.nit:676 */
3773 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3774 /* syntax/icode_generation.nit:677 */
3775 fra
.me
.REG
[3] = NIT_NULL
;
3778 stack_frame_head
= fra
.me
.prev
;
3779 return fra
.me
.REG
[3];
3781 static const char LOCATE_syntax___icode_generation___AAssertExpr___generate_icode
[] = "icode_generation::AAssertExpr::(icode_generation::AExpr::generate_icode)";
3782 val_t
syntax___icode_generation___AAssertExpr___generate_icode(val_t p0
, val_t p1
){
3783 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
3787 static val_t once_value_1
; /* Once value */
3788 static val_t once_value_2
; /* Once value */
3789 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3790 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3792 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAssertExpr___generate_icode
;
3793 fra
.me
.has_broke
= 0;
3794 fra
.me
.REG_size
= 5;
3795 fra
.me
.nitni_local_ref_head
= NULL
;
3796 fra
.me
.REG
[0] = NIT_NULL
;
3797 fra
.me
.REG
[1] = NIT_NULL
;
3798 fra
.me
.REG
[2] = NIT_NULL
;
3799 fra
.me
.REG
[3] = NIT_NULL
;
3800 fra
.me
.REG
[4] = NIT_NULL
;
3803 /* syntax/icode_generation.nit:684 */
3804 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3805 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3806 /* syntax/icode_generation.nit:685 */
3807 fra
.me
.REG
[2] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[2]);
3808 /* syntax/icode_generation.nit:686 */
3809 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3810 /* syntax/icode_generation.nit:687 */
3811 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3812 /* syntax/icode_generation.nit:688 */
3813 fra
.me
.REG
[2] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3814 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3815 /* syntax/icode_generation.nit:689 */
3816 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssertExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3817 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3818 /* syntax/icode_generation.nit:690 */
3819 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAssertExpr___n_id(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3820 /* syntax/icode_generation.nit:691 */
3821 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3822 if (UNTAG_Bool(REGB0
)) {
3824 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3825 if (UNTAG_Bool(REGB1
)) {
3826 REGB1
= TAG_Bool(0);
3829 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
3833 if (UNTAG_Bool(REGB0
)) {
3834 /* syntax/icode_generation.nit:692 */
3836 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3837 if (!once_value_1
) {
3838 fra
.me
.REG
[4] = BOX_NativeString("Assert failed");
3839 REGB0
= TAG_Int(13);
3840 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3841 once_value_1
= fra
.me
.REG
[4];
3842 register_static_object(&once_value_1
);
3843 } else fra
.me
.REG
[4] = once_value_1
;
3844 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3845 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3846 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3848 /* syntax/icode_generation.nit:694 */
3850 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3851 if (!once_value_2
) {
3852 fra
.me
.REG
[4] = BOX_NativeString("Assert '%s' failed");
3853 REGB0
= TAG_Int(18);
3854 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
3855 once_value_2
= fra
.me
.REG
[4];
3856 register_static_object(&once_value_2
);
3857 } else fra
.me
.REG
[4] = once_value_2
;
3858 fra
.me
.REG
[4] = fra
.me
.REG
[4];
3859 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
3860 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3861 if (UNTAG_Bool(REGB0
)) {
3862 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 694);
3864 fra
.me
.REG
[0] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3865 fra
.me
.REG
[0] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3866 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
3867 CALL_icode___icode_builder___ICodeBuilder___add_abort(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3869 /* syntax/icode_generation.nit:696 */
3870 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3871 /* syntax/icode_generation.nit:697 */
3872 fra
.me
.REG
[3] = NIT_NULL
;
3875 stack_frame_head
= fra
.me
.prev
;
3876 return fra
.me
.REG
[3];
3878 static const char LOCATE_syntax___icode_generation___AVarExpr___generate_icode
[] = "icode_generation::AVarExpr::(icode_generation::AExpr::generate_icode)";
3879 val_t
syntax___icode_generation___AVarExpr___generate_icode(val_t p0
, val_t p1
){
3880 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3882 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3883 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3885 fra
.me
.meth
= LOCATE_syntax___icode_generation___AVarExpr___generate_icode
;
3886 fra
.me
.has_broke
= 0;
3887 fra
.me
.REG_size
= 2;
3888 fra
.me
.nitni_local_ref_head
= NULL
;
3889 fra
.me
.REG
[0] = NIT_NULL
;
3890 fra
.me
.REG
[1] = NIT_NULL
;
3893 /* syntax/icode_generation.nit:704 */
3894 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3895 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3898 stack_frame_head
= fra
.me
.prev
;
3899 return fra
.me
.REG
[0];
3901 static const char LOCATE_syntax___icode_generation___AVarAssignExpr___generate_icode
[] = "icode_generation::AVarAssignExpr::(icode_generation::AExpr::generate_icode)";
3902 val_t
syntax___icode_generation___AVarAssignExpr___generate_icode(val_t p0
, val_t p1
){
3903 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
3905 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3906 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3908 fra
.me
.meth
= LOCATE_syntax___icode_generation___AVarAssignExpr___generate_icode
;
3909 fra
.me
.has_broke
= 0;
3910 fra
.me
.REG_size
= 3;
3911 fra
.me
.nitni_local_ref_head
= NULL
;
3912 fra
.me
.REG
[0] = NIT_NULL
;
3913 fra
.me
.REG
[1] = NIT_NULL
;
3914 fra
.me
.REG
[2] = NIT_NULL
;
3917 /* syntax/icode_generation.nit:711 */
3918 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3919 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
3920 /* syntax/icode_generation.nit:712 */
3921 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3922 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3923 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
3924 /* syntax/icode_generation.nit:713 */
3925 fra
.me
.REG
[2] = NIT_NULL
;
3928 stack_frame_head
= fra
.me
.prev
;
3929 return fra
.me
.REG
[2];
3931 static const char LOCATE_syntax___icode_generation___AVarReassignExpr___generate_icode
[] = "icode_generation::AVarReassignExpr::(icode_generation::AExpr::generate_icode)";
3932 val_t
syntax___icode_generation___AVarReassignExpr___generate_icode(val_t p0
, val_t p1
){
3933 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
3936 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3937 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3939 fra
.me
.meth
= LOCATE_syntax___icode_generation___AVarReassignExpr___generate_icode
;
3940 fra
.me
.has_broke
= 0;
3941 fra
.me
.REG_size
= 7;
3942 fra
.me
.nitni_local_ref_head
= NULL
;
3943 fra
.me
.REG
[0] = NIT_NULL
;
3944 fra
.me
.REG
[1] = NIT_NULL
;
3945 fra
.me
.REG
[2] = NIT_NULL
;
3946 fra
.me
.REG
[3] = NIT_NULL
;
3947 fra
.me
.REG
[4] = NIT_NULL
;
3948 fra
.me
.REG
[5] = NIT_NULL
;
3949 fra
.me
.REG
[6] = NIT_NULL
;
3952 /* syntax/icode_generation.nit:718 */
3953 fra
.me
.REG
[2] = fra
.me
.REG
[0];
3954 /* syntax/icode_generation.nit:720 */
3955 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AVarFormExpr___variable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3956 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
3957 /* syntax/icode_generation.nit:721 */
3958 fra
.me
.REG
[4] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3959 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
3960 /* syntax/icode_generation.nit:722 */
3961 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3963 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
3964 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
3965 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
3966 fra
.me
.REG
[6] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[6]);
3967 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3968 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3969 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3970 if (UNTAG_Bool(REGB0
)) {
3971 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 722);
3973 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3974 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*/;
3975 if (UNTAG_Bool(REGB0
)) {
3977 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 722);
3979 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]);
3980 /* syntax/icode_generation.nit:723 */
3981 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
3982 /* syntax/icode_generation.nit:724 */
3983 fra
.me
.REG
[2] = NIT_NULL
;
3986 stack_frame_head
= fra
.me
.prev
;
3987 return fra
.me
.REG
[2];
3989 static const char LOCATE_syntax___icode_generation___ASelfExpr___generate_icode
[] = "icode_generation::ASelfExpr::(icode_generation::AExpr::generate_icode)";
3990 val_t
syntax___icode_generation___ASelfExpr___generate_icode(val_t p0
, val_t p1
){
3991 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
3993 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3994 fra
.me
.file
= LOCATE_syntax___icode_generation
;
3996 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASelfExpr___generate_icode
;
3997 fra
.me
.has_broke
= 0;
3998 fra
.me
.REG_size
= 2;
3999 fra
.me
.nitni_local_ref_head
= NULL
;
4000 fra
.me
.REG
[0] = NIT_NULL
;
4001 fra
.me
.REG
[1] = NIT_NULL
;
4004 /* syntax/icode_generation.nit:731 */
4005 fra
.me
.REG
[0] = CALL_syntax___syntax_base___ASelfExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4006 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4009 stack_frame_head
= fra
.me
.prev
;
4010 return fra
.me
.REG
[0];
4012 static const char LOCATE_syntax___icode_generation___AIfexprExpr___generate_icode
[] = "icode_generation::AIfexprExpr::(icode_generation::AExpr::generate_icode)";
4013 val_t
syntax___icode_generation___AIfexprExpr___generate_icode(val_t p0
, val_t p1
){
4014 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
4016 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4017 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4019 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIfexprExpr___generate_icode
;
4020 fra
.me
.has_broke
= 0;
4021 fra
.me
.REG_size
= 6;
4022 fra
.me
.nitni_local_ref_head
= NULL
;
4023 fra
.me
.REG
[0] = NIT_NULL
;
4024 fra
.me
.REG
[1] = NIT_NULL
;
4025 fra
.me
.REG
[2] = NIT_NULL
;
4026 fra
.me
.REG
[3] = NIT_NULL
;
4027 fra
.me
.REG
[4] = NIT_NULL
;
4028 fra
.me
.REG
[5] = NIT_NULL
;
4031 /* syntax/icode_generation.nit:739 */
4032 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIfexprExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4033 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4034 fra
.me
.REG
[2] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[2]);
4035 /* syntax/icode_generation.nit:740 */
4036 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4037 /* syntax/icode_generation.nit:741 */
4038 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4039 /* syntax/icode_generation.nit:744 */
4040 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4041 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4042 /* syntax/icode_generation.nit:747 */
4043 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4044 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4045 /* syntax/icode_generation.nit:748 */
4046 fra
.me
.REG
[5] = CALL_parser___parser_nodes___AIfexprExpr___n_then(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4047 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4048 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[5]);
4049 /* syntax/icode_generation.nit:751 */
4050 fra
.me
.REG
[2] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4051 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4052 /* syntax/icode_generation.nit:752 */
4053 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AIfexprExpr___n_else(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4054 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4055 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[0]);
4056 /* syntax/icode_generation.nit:754 */
4057 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4058 /* syntax/icode_generation.nit:755 */
4061 stack_frame_head
= fra
.me
.prev
;
4062 return fra
.me
.REG
[4];
4064 static const char LOCATE_syntax___icode_generation___AEeExpr___generate_icode
[] = "icode_generation::AEeExpr::(icode_generation::AExpr::generate_icode)";
4065 val_t
syntax___icode_generation___AEeExpr___generate_icode(val_t p0
, val_t p1
){
4066 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
4068 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4069 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4071 fra
.me
.meth
= LOCATE_syntax___icode_generation___AEeExpr___generate_icode
;
4072 fra
.me
.has_broke
= 0;
4073 fra
.me
.REG_size
= 4;
4074 fra
.me
.nitni_local_ref_head
= NULL
;
4075 fra
.me
.REG
[0] = NIT_NULL
;
4076 fra
.me
.REG
[1] = NIT_NULL
;
4077 fra
.me
.REG
[2] = NIT_NULL
;
4078 fra
.me
.REG
[3] = NIT_NULL
;
4081 /* syntax/icode_generation.nit:762 */
4082 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AEeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4083 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4084 /* syntax/icode_generation.nit:763 */
4085 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AEeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4086 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4087 /* syntax/icode_generation.nit:764 */
4088 fra
.me
.REG
[3] = NEW_IIs_icode___icode_base___IIs___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
4089 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4090 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]);
4093 stack_frame_head
= fra
.me
.prev
;
4094 return fra
.me
.REG
[0];
4096 static const char LOCATE_syntax___icode_generation___AOrExpr___generate_icode
[] = "icode_generation::AOrExpr::(icode_generation::AExpr::generate_icode)";
4097 val_t
syntax___icode_generation___AOrExpr___generate_icode(val_t p0
, val_t p1
){
4098 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
4100 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4101 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4103 fra
.me
.meth
= LOCATE_syntax___icode_generation___AOrExpr___generate_icode
;
4104 fra
.me
.has_broke
= 0;
4105 fra
.me
.REG_size
= 6;
4106 fra
.me
.nitni_local_ref_head
= NULL
;
4107 fra
.me
.REG
[0] = NIT_NULL
;
4108 fra
.me
.REG
[1] = NIT_NULL
;
4109 fra
.me
.REG
[2] = NIT_NULL
;
4110 fra
.me
.REG
[3] = NIT_NULL
;
4111 fra
.me
.REG
[4] = NIT_NULL
;
4112 fra
.me
.REG
[5] = NIT_NULL
;
4115 /* syntax/icode_generation.nit:772 */
4116 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4117 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4118 /* syntax/icode_generation.nit:775 */
4119 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AOrExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4120 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4121 fra
.me
.REG
[3] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[3]);
4122 /* syntax/icode_generation.nit:776 */
4123 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4124 /* syntax/icode_generation.nit:777 */
4125 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4126 /* syntax/icode_generation.nit:778 */
4127 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4128 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4129 /* syntax/icode_generation.nit:779 */
4130 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___lit_true_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4131 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[5]);
4132 /* syntax/icode_generation.nit:782 */
4133 fra
.me
.REG
[3] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4134 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4135 /* syntax/icode_generation.nit:783 */
4136 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AOrExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4137 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4138 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4139 /* syntax/icode_generation.nit:785 */
4140 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4141 /* syntax/icode_generation.nit:786 */
4144 stack_frame_head
= fra
.me
.prev
;
4145 return fra
.me
.REG
[2];
4147 static const char LOCATE_syntax___icode_generation___AAndExpr___generate_icode
[] = "icode_generation::AAndExpr::(icode_generation::AExpr::generate_icode)";
4148 val_t
syntax___icode_generation___AAndExpr___generate_icode(val_t p0
, val_t p1
){
4149 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
4151 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4152 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4154 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAndExpr___generate_icode
;
4155 fra
.me
.has_broke
= 0;
4156 fra
.me
.REG_size
= 6;
4157 fra
.me
.nitni_local_ref_head
= NULL
;
4158 fra
.me
.REG
[0] = NIT_NULL
;
4159 fra
.me
.REG
[1] = NIT_NULL
;
4160 fra
.me
.REG
[2] = NIT_NULL
;
4161 fra
.me
.REG
[3] = NIT_NULL
;
4162 fra
.me
.REG
[4] = NIT_NULL
;
4163 fra
.me
.REG
[5] = NIT_NULL
;
4166 /* syntax/icode_generation.nit:794 */
4167 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4168 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4169 /* syntax/icode_generation.nit:797 */
4170 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAndExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4171 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4172 fra
.me
.REG
[3] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[3]);
4173 /* syntax/icode_generation.nit:798 */
4174 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4175 /* syntax/icode_generation.nit:799 */
4176 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4177 /* syntax/icode_generation.nit:800 */
4178 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4179 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4180 /* syntax/icode_generation.nit:801 */
4181 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___lit_false_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4182 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[5]);
4183 /* syntax/icode_generation.nit:804 */
4184 fra
.me
.REG
[3] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
4185 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4186 /* syntax/icode_generation.nit:805 */
4187 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AAndExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4188 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4189 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4190 /* syntax/icode_generation.nit:807 */
4191 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4192 /* syntax/icode_generation.nit:808 */
4195 stack_frame_head
= fra
.me
.prev
;
4196 return fra
.me
.REG
[2];
4198 static const char LOCATE_syntax___icode_generation___ANotExpr___generate_icode
[] = "icode_generation::ANotExpr::(icode_generation::AExpr::generate_icode)";
4199 val_t
syntax___icode_generation___ANotExpr___generate_icode(val_t p0
, val_t p1
){
4200 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4202 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4203 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4205 fra
.me
.meth
= LOCATE_syntax___icode_generation___ANotExpr___generate_icode
;
4206 fra
.me
.has_broke
= 0;
4207 fra
.me
.REG_size
= 3;
4208 fra
.me
.nitni_local_ref_head
= NULL
;
4209 fra
.me
.REG
[0] = NIT_NULL
;
4210 fra
.me
.REG
[1] = NIT_NULL
;
4211 fra
.me
.REG
[2] = NIT_NULL
;
4214 /* syntax/icode_generation.nit:815 */
4215 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ANotExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4216 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4217 /* syntax/icode_generation.nit:816 */
4218 fra
.me
.REG
[2] = NEW_INot_icode___icode_base___INot___init(fra
.me
.REG
[2]);
4219 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4220 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]);
4223 stack_frame_head
= fra
.me
.prev
;
4224 return fra
.me
.REG
[0];
4226 static const char LOCATE_syntax___icode_generation___AOrElseExpr___generate_icode
[] = "icode_generation::AOrElseExpr::(icode_generation::AExpr::generate_icode)";
4227 val_t
syntax___icode_generation___AOrElseExpr___generate_icode(val_t p0
, val_t p1
){
4228 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
4230 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4231 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4233 fra
.me
.meth
= LOCATE_syntax___icode_generation___AOrElseExpr___generate_icode
;
4234 fra
.me
.has_broke
= 0;
4235 fra
.me
.REG_size
= 7;
4236 fra
.me
.nitni_local_ref_head
= NULL
;
4237 fra
.me
.REG
[0] = NIT_NULL
;
4238 fra
.me
.REG
[1] = NIT_NULL
;
4239 fra
.me
.REG
[2] = NIT_NULL
;
4240 fra
.me
.REG
[3] = NIT_NULL
;
4241 fra
.me
.REG
[4] = NIT_NULL
;
4242 fra
.me
.REG
[5] = NIT_NULL
;
4243 fra
.me
.REG
[6] = NIT_NULL
;
4246 /* syntax/icode_generation.nit:824 */
4247 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AOrElseExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4248 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4249 /* syntax/icode_generation.nit:827 */
4250 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4251 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4252 /* syntax/icode_generation.nit:830 */
4253 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___lit_null_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4254 /* syntax/icode_generation.nit:831 */
4255 fra
.me
.REG
[4] = NEW_IIs_icode___icode_base___IIs___init(fra
.me
.REG
[2], fra
.me
.REG
[4]);
4256 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4257 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMModule___type_bool(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4258 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]);
4259 /* syntax/icode_generation.nit:832 */
4260 fra
.me
.REG
[5] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[5]);
4261 /* syntax/icode_generation.nit:833 */
4262 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4263 /* syntax/icode_generation.nit:834 */
4264 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4265 /* syntax/icode_generation.nit:837 */
4266 fra
.me
.REG
[6] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4267 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
4268 /* syntax/icode_generation.nit:838 */
4269 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AOrElseExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4270 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
4271 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
4272 /* syntax/icode_generation.nit:841 */
4273 fra
.me
.REG
[5] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
4274 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
4275 /* syntax/icode_generation.nit:842 */
4276 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
4277 /* syntax/icode_generation.nit:844 */
4278 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4279 /* syntax/icode_generation.nit:846 */
4282 stack_frame_head
= fra
.me
.prev
;
4283 return fra
.me
.REG
[3];
4285 static const char LOCATE_syntax___icode_generation___AIsaExpr___generate_icode
[] = "icode_generation::AIsaExpr::(icode_generation::AExpr::generate_icode)";
4286 val_t
syntax___icode_generation___AIsaExpr___generate_icode(val_t p0
, val_t p1
){
4287 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
4290 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4291 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4293 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIsaExpr___generate_icode
;
4294 fra
.me
.has_broke
= 0;
4295 fra
.me
.REG_size
= 5;
4296 fra
.me
.nitni_local_ref_head
= NULL
;
4297 fra
.me
.REG
[0] = NIT_NULL
;
4298 fra
.me
.REG
[1] = NIT_NULL
;
4299 fra
.me
.REG
[2] = NIT_NULL
;
4300 fra
.me
.REG
[3] = NIT_NULL
;
4301 fra
.me
.REG
[4] = NIT_NULL
;
4304 /* syntax/icode_generation.nit:851 */
4305 fra
.me
.REG
[2] = fra
.me
.REG
[0];
4306 /* syntax/icode_generation.nit:853 */
4307 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AIsaExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4308 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4309 /* syntax/icode_generation.nit:854 */
4310 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___selfreg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4311 REGB0
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
4312 if (UNTAG_Bool(REGB0
)) {
4314 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 854);
4316 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AIsaExpr___n_type(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4317 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AType___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4318 fra
.me
.REG
[0] = NEW_ITypeCheck_icode___icode_base___ITypeCheck___init(fra
.me
.REG
[4], fra
.me
.REG
[3], fra
.me
.REG
[0]);
4319 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4320 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]);
4323 stack_frame_head
= fra
.me
.prev
;
4324 return fra
.me
.REG
[2];
4326 static const char LOCATE_syntax___icode_generation___AAsCastExpr___generate_icode
[] = "icode_generation::AAsCastExpr::(icode_generation::AExpr::generate_icode)";
4327 val_t
syntax___icode_generation___AAsCastExpr___generate_icode(val_t p0
, val_t p1
){
4328 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4330 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4331 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4333 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAsCastExpr___generate_icode
;
4334 fra
.me
.has_broke
= 0;
4335 fra
.me
.REG_size
= 3;
4336 fra
.me
.nitni_local_ref_head
= NULL
;
4337 fra
.me
.REG
[0] = NIT_NULL
;
4338 fra
.me
.REG
[1] = NIT_NULL
;
4339 fra
.me
.REG
[2] = NIT_NULL
;
4342 /* syntax/icode_generation.nit:861 */
4343 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsCastExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4344 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4345 /* syntax/icode_generation.nit:862 */
4346 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4347 CALL_icode___icode_builder___ICodeBuilder___add_type_cast(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4348 /* syntax/icode_generation.nit:863 */
4351 stack_frame_head
= fra
.me
.prev
;
4352 return fra
.me
.REG
[2];
4354 static const char LOCATE_syntax___icode_generation___AAsNotnullExpr___generate_icode
[] = "icode_generation::AAsNotnullExpr::(icode_generation::AExpr::generate_icode)";
4355 val_t
syntax___icode_generation___AAsNotnullExpr___generate_icode(val_t p0
, val_t p1
){
4356 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4358 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4359 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4361 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAsNotnullExpr___generate_icode
;
4362 fra
.me
.has_broke
= 0;
4363 fra
.me
.REG_size
= 3;
4364 fra
.me
.nitni_local_ref_head
= NULL
;
4365 fra
.me
.REG
[0] = NIT_NULL
;
4366 fra
.me
.REG
[1] = NIT_NULL
;
4367 fra
.me
.REG
[2] = NIT_NULL
;
4370 /* syntax/icode_generation.nit:870 */
4371 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAsNotnullExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4372 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
4373 /* syntax/icode_generation.nit:871 */
4374 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4375 CALL_icode___icode_builder___ICodeBuilder___add_type_cast(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
4376 /* syntax/icode_generation.nit:872 */
4379 stack_frame_head
= fra
.me
.prev
;
4380 return fra
.me
.REG
[2];
4382 static const char LOCATE_syntax___icode_generation___ATrueExpr___generate_icode
[] = "icode_generation::ATrueExpr::(icode_generation::AExpr::generate_icode)";
4383 val_t
syntax___icode_generation___ATrueExpr___generate_icode(val_t p0
, val_t p1
){
4384 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4386 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4387 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4389 fra
.me
.meth
= LOCATE_syntax___icode_generation___ATrueExpr___generate_icode
;
4390 fra
.me
.has_broke
= 0;
4391 fra
.me
.REG_size
= 2;
4392 fra
.me
.nitni_local_ref_head
= NULL
;
4393 fra
.me
.REG
[0] = NIT_NULL
;
4394 fra
.me
.REG
[1] = NIT_NULL
;
4397 /* syntax/icode_generation.nit:879 */
4398 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___lit_true_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4401 stack_frame_head
= fra
.me
.prev
;
4402 return fra
.me
.REG
[1];
4404 static const char LOCATE_syntax___icode_generation___AFalseExpr___generate_icode
[] = "icode_generation::AFalseExpr::(icode_generation::AExpr::generate_icode)";
4405 val_t
syntax___icode_generation___AFalseExpr___generate_icode(val_t p0
, val_t p1
){
4406 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4408 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4409 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4411 fra
.me
.meth
= LOCATE_syntax___icode_generation___AFalseExpr___generate_icode
;
4412 fra
.me
.has_broke
= 0;
4413 fra
.me
.REG_size
= 2;
4414 fra
.me
.nitni_local_ref_head
= NULL
;
4415 fra
.me
.REG
[0] = NIT_NULL
;
4416 fra
.me
.REG
[1] = NIT_NULL
;
4419 /* syntax/icode_generation.nit:886 */
4420 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___lit_false_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4423 stack_frame_head
= fra
.me
.prev
;
4424 return fra
.me
.REG
[1];
4426 static const char LOCATE_syntax___icode_generation___AIntExpr___generate_icode
[] = "icode_generation::AIntExpr::(icode_generation::AExpr::generate_icode)";
4427 val_t
syntax___icode_generation___AIntExpr___generate_icode(val_t p0
, val_t p1
){
4428 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4430 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4431 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4433 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIntExpr___generate_icode
;
4434 fra
.me
.has_broke
= 0;
4435 fra
.me
.REG_size
= 3;
4436 fra
.me
.nitni_local_ref_head
= NULL
;
4437 fra
.me
.REG
[0] = NIT_NULL
;
4438 fra
.me
.REG
[1] = NIT_NULL
;
4439 fra
.me
.REG
[2] = NIT_NULL
;
4442 /* syntax/icode_generation.nit:893 */
4443 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AIntExpr___n_number(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4444 fra
.me
.REG
[2] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4445 fra
.me
.REG
[2] = NEW_IIntValue_icode___icode_base___IIntValue___init(fra
.me
.REG
[2]);
4446 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4447 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]);
4450 stack_frame_head
= fra
.me
.prev
;
4451 return fra
.me
.REG
[0];
4453 static const char LOCATE_syntax___icode_generation___AFloatExpr___generate_icode
[] = "icode_generation::AFloatExpr::(icode_generation::AExpr::generate_icode)";
4454 val_t
syntax___icode_generation___AFloatExpr___generate_icode(val_t p0
, val_t p1
){
4455 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4457 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4458 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4460 fra
.me
.meth
= LOCATE_syntax___icode_generation___AFloatExpr___generate_icode
;
4461 fra
.me
.has_broke
= 0;
4462 fra
.me
.REG_size
= 3;
4463 fra
.me
.nitni_local_ref_head
= NULL
;
4464 fra
.me
.REG
[0] = NIT_NULL
;
4465 fra
.me
.REG
[1] = NIT_NULL
;
4466 fra
.me
.REG
[2] = NIT_NULL
;
4469 /* syntax/icode_generation.nit:900 */
4470 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AFloatExpr___n_float(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4471 fra
.me
.REG
[2] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4472 fra
.me
.REG
[2] = NEW_IFloatValue_icode___icode_base___IFloatValue___init(fra
.me
.REG
[2]);
4473 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4474 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]);
4477 stack_frame_head
= fra
.me
.prev
;
4478 return fra
.me
.REG
[0];
4480 static const char LOCATE_syntax___icode_generation___ACharExpr___generate_icode
[] = "icode_generation::ACharExpr::(icode_generation::AExpr::generate_icode)";
4481 val_t
syntax___icode_generation___ACharExpr___generate_icode(val_t p0
, val_t p1
){
4482 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4484 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4485 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4487 fra
.me
.meth
= LOCATE_syntax___icode_generation___ACharExpr___generate_icode
;
4488 fra
.me
.has_broke
= 0;
4489 fra
.me
.REG_size
= 3;
4490 fra
.me
.nitni_local_ref_head
= NULL
;
4491 fra
.me
.REG
[0] = NIT_NULL
;
4492 fra
.me
.REG
[1] = NIT_NULL
;
4493 fra
.me
.REG
[2] = NIT_NULL
;
4496 /* syntax/icode_generation.nit:907 */
4497 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ACharExpr___n_char(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4498 fra
.me
.REG
[2] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4499 fra
.me
.REG
[2] = NEW_ICharValue_icode___icode_base___ICharValue___init(fra
.me
.REG
[2]);
4500 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4501 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]);
4504 stack_frame_head
= fra
.me
.prev
;
4505 return fra
.me
.REG
[0];
4507 static const char LOCATE_syntax___icode_generation___AStringFormExpr___generate_icode
[] = "icode_generation::AStringFormExpr::(icode_generation::AExpr::generate_icode)";
4508 val_t
syntax___icode_generation___AStringFormExpr___generate_icode(val_t p0
, val_t p1
){
4509 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
4512 static val_t once_value_1
; /* Once value */
4513 static val_t once_value_2
; /* Once value */
4514 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4515 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4517 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStringFormExpr___generate_icode
;
4518 fra
.me
.has_broke
= 0;
4519 fra
.me
.REG_size
= 9;
4520 fra
.me
.nitni_local_ref_head
= NULL
;
4521 fra
.me
.REG
[0] = NIT_NULL
;
4522 fra
.me
.REG
[1] = NIT_NULL
;
4523 fra
.me
.REG
[2] = NIT_NULL
;
4524 fra
.me
.REG
[3] = NIT_NULL
;
4525 fra
.me
.REG
[4] = NIT_NULL
;
4526 fra
.me
.REG
[5] = NIT_NULL
;
4527 fra
.me
.REG
[6] = NIT_NULL
;
4528 fra
.me
.REG
[7] = NIT_NULL
;
4529 fra
.me
.REG
[8] = NIT_NULL
;
4532 /* syntax/icode_generation.nit:912 */
4533 fra
.me
.REG
[2] = fra
.me
.REG
[0];
4534 /* syntax/icode_generation.nit:914 */
4535 CALL_syntax___icode_generation___AStringFormExpr___compute_string_infos(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4536 /* syntax/icode_generation.nit:915 */
4537 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4538 /* syntax/icode_generation.nit:916 */
4539 fra
.me
.REG
[4] = NEW_IOnce_icode___icode_base___IOnce___init();
4540 /* syntax/icode_generation.nit:917 */
4541 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4542 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]);
4543 /* syntax/icode_generation.nit:918 */
4544 fra
.me
.REG
[4] = CALL_icode___icode_base___IOnce___body(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4545 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
4546 /* syntax/icode_generation.nit:919 */
4547 fra
.me
.REG
[4] = ATTR_syntax___icode_generation___AStringFormExpr____cstring(fra
.me
.REG
[2]);
4548 REGB0
= TAG_Bool(fra
.me
.REG
[4]!=NIT_NULL
);
4549 if (UNTAG_Bool(REGB0
)) {
4551 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 919);
4553 fra
.me
.REG
[4] = NEW_IStringValue_icode___icode_base___IStringValue___init(fra
.me
.REG
[4]);
4554 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4555 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_nativestring(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4556 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]);
4557 /* syntax/icode_generation.nit:920 */
4558 fra
.me
.REG
[4] = ATTR_syntax___icode_generation___AStringFormExpr____cstring_length(fra
.me
.REG
[2]);
4559 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
4560 if (UNTAG_Bool(REGB0
)) {
4561 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 920);
4563 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
4564 fra
.me
.REG
[4] = NEW_IIntValue_icode___icode_base___IIntValue___init(fra
.me
.REG
[4]);
4565 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4566 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
4567 fra
.me
.REG
[6] = CALL_icode___icode_builder___ICodeBuilder___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[6]);
4568 /* syntax/icode_generation.nit:921 */
4569 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4570 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4571 if (!once_value_1
) {
4572 if (!once_value_2
) {
4573 fra
.me
.REG
[8] = BOX_NativeString("with_native");
4574 REGB0
= TAG_Int(11);
4575 fra
.me
.REG
[8] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[8], REGB0
);
4576 once_value_2
= fra
.me
.REG
[8];
4577 register_static_object(&once_value_2
);
4578 } else fra
.me
.REG
[8] = once_value_2
;
4579 fra
.me
.REG
[8] = fra
.me
.REG
[8];
4580 fra
.me
.REG
[8] = CALL_symbol___String___to_symbol(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
4581 once_value_1
= fra
.me
.REG
[8];
4582 register_static_object(&once_value_1
);
4583 } else fra
.me
.REG
[8] = once_value_1
;
4584 fra
.me
.REG
[8] = fra
.me
.REG
[8];
4585 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_method(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[7], fra
.me
.REG
[8]);
4586 /* syntax/icode_generation.nit:922 */
4587 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4589 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
4590 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
4591 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
4592 fra
.me
.REG
[4] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[7], fra
.me
.REG
[8], fra
.me
.REG
[4]);
4593 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4594 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]);
4595 /* syntax/icode_generation.nit:923 */
4596 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[2]);
4597 /* syntax/icode_generation.nit:924 */
4598 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
4599 /* syntax/icode_generation.nit:925 */
4602 stack_frame_head
= fra
.me
.prev
;
4603 return fra
.me
.REG
[5];
4605 static const char LOCATE_syntax___icode_generation___AStringFormExpr___string_text
[] = "icode_generation::AStringFormExpr::string_text";
4606 val_t
syntax___icode_generation___AStringFormExpr___string_text(val_t p0
){
4607 struct {struct stack_frame_t me
;} fra
;
4609 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4610 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4612 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStringFormExpr___string_text
;
4613 fra
.me
.has_broke
= 0;
4614 fra
.me
.REG_size
= 0;
4615 fra
.me
.nitni_local_ref_head
= NULL
;
4616 /* syntax/icode_generation.nit:928 */
4617 nit_abort("Deferred method called", NULL
, LOCATE_syntax___icode_generation
, 928);
4618 stack_frame_head
= fra
.me
.prev
;
4621 static const char LOCATE_syntax___icode_generation___AStringFormExpr___compute_string_infos
[] = "icode_generation::AStringFormExpr::compute_string_infos";
4622 void syntax___icode_generation___AStringFormExpr___compute_string_infos(val_t p0
){
4623 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
4631 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4632 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4634 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStringFormExpr___compute_string_infos
;
4635 fra
.me
.has_broke
= 0;
4636 fra
.me
.REG_size
= 3;
4637 fra
.me
.nitni_local_ref_head
= NULL
;
4638 fra
.me
.REG
[0] = NIT_NULL
;
4639 fra
.me
.REG
[1] = NIT_NULL
;
4640 fra
.me
.REG
[2] = NIT_NULL
;
4642 /* syntax/icode_generation.nit:940 */
4643 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AStringFormExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4644 fra
.me
.REG
[1] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4645 /* ../lib/standard/collection/array.nit:24 */
4646 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
4647 if (UNTAG_Bool(REGB0
)) {
4649 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4651 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1]);
4652 /* syntax/icode_generation.nit:941 */
4654 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
4655 if (UNTAG_Bool(REGB2
)) {
4657 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4659 /* ../lib/standard/kernel.nit:236 */
4660 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
4661 /* syntax/icode_generation.nit:941 */
4662 if (UNTAG_Bool(REGB1
)) {
4664 REGB1
= CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB1
);
4666 REGB0
= CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
4667 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB0
));
4668 if (UNTAG_Bool(REGB2
)) {
4670 /* ../lib/standard/kernel.nit:381 */
4671 REGB0
= TAG_Bool((REGB1
)==(REGB0
));
4672 /* syntax/icode_generation.nit:941 */
4676 REGB0
= TAG_Bool(0);
4679 if (UNTAG_Bool(REGB2
)) {
4680 /* syntax/icode_generation.nit:942 */
4682 /* ../lib/standard/collection/array.nit:24 */
4683 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
4684 if (UNTAG_Bool(REGB0
)) {
4686 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4688 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1]);
4689 /* syntax/icode_generation.nit:942 */
4691 /* ../lib/standard/kernel.nit:240 */
4692 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
4693 /* syntax/icode_generation.nit:942 */
4694 fra
.me
.REG
[2] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB2
, REGB1
);
4695 fra
.me
.REG
[1] = fra
.me
.REG
[2];
4697 /* syntax/icode_generation.nit:944 */
4699 /* ../lib/standard/collection/array.nit:24 */
4700 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
4701 if (UNTAG_Bool(REGB2
)) {
4703 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4705 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1]);
4706 /* syntax/icode_generation.nit:944 */
4708 /* ../lib/standard/kernel.nit:240 */
4709 REGB0
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB0
));
4710 /* syntax/icode_generation.nit:944 */
4711 fra
.me
.REG
[2] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB1
, REGB0
);
4712 fra
.me
.REG
[1] = fra
.me
.REG
[2];
4714 /* syntax/icode_generation.nit:946 */
4715 fra
.me
.REG
[2] = NEW_Buffer_standard___string___Buffer___init();
4716 /* syntax/icode_generation.nit:947 */
4718 /* syntax/icode_generation.nit:948 */
4720 /* syntax/icode_generation.nit:949 */
4722 /* ../lib/standard/collection/array.nit:24 */
4723 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
4724 if (UNTAG_Bool(REGB2
)) {
4726 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4728 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1]);
4729 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
4730 if (UNTAG_Bool(REGB3
)) {
4732 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
4734 /* ../lib/standard/kernel.nit:235 */
4735 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
4736 /* syntax/icode_generation.nit:949 */
4737 if (UNTAG_Bool(REGB2
)) {
4738 /* syntax/icode_generation.nit:950 */
4739 REGB2
= CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB1
);
4740 /* syntax/icode_generation.nit:951 */
4741 REGB3
= TAG_Char('\\');
4742 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB3
));
4743 if (UNTAG_Bool(REGB4
)) {
4745 /* ../lib/standard/kernel.nit:381 */
4746 REGB3
= TAG_Bool((REGB2
)==(REGB3
));
4747 /* syntax/icode_generation.nit:951 */
4750 if (UNTAG_Bool(REGB4
)) {
4751 /* syntax/icode_generation.nit:952 */
4753 /* ../lib/standard/kernel.nit:238 */
4754 REGB4
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB4
));
4755 /* syntax/icode_generation.nit:952 */
4757 /* syntax/icode_generation.nit:953 */
4758 REGB4
= CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB1
);
4759 /* syntax/icode_generation.nit:954 */
4760 REGB3
= TAG_Char('{');
4761 REGB5
= TAG_Bool(IS_EQUAL_OO(REGB4
,REGB3
));
4762 if (UNTAG_Bool(REGB5
)) {
4764 /* ../lib/standard/kernel.nit:381 */
4765 REGB3
= TAG_Bool((REGB4
)==(REGB3
));
4766 /* syntax/icode_generation.nit:954 */
4769 REGB5
= TAG_Bool(!UNTAG_Bool(REGB5
));
4770 if (UNTAG_Bool(REGB5
)) {
4771 REGB5
= TAG_Char('}');
4772 REGB3
= TAG_Bool(IS_EQUAL_OO(REGB4
,REGB5
));
4773 if (UNTAG_Bool(REGB3
)) {
4775 /* ../lib/standard/kernel.nit:381 */
4776 REGB5
= TAG_Bool((REGB4
)==(REGB5
));
4777 /* syntax/icode_generation.nit:954 */
4780 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
4782 REGB5
= TAG_Bool(0);
4785 if (UNTAG_Bool(REGB3
)) {
4786 /* syntax/icode_generation.nit:955 */
4787 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB2
);
4789 /* syntax/icode_generation.nit:957 */
4792 /* syntax/icode_generation.nit:958 */
4793 REGB4
= TAG_Char('"');
4794 REGB3
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB4
));
4795 if (UNTAG_Bool(REGB3
)) {
4797 /* ../lib/standard/kernel.nit:381 */
4798 REGB4
= TAG_Bool((REGB2
)==(REGB4
));
4799 /* syntax/icode_generation.nit:958 */
4802 if (UNTAG_Bool(REGB3
)) {
4803 /* syntax/icode_generation.nit:959 */
4804 REGB3
= TAG_Char('\\');
4805 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB3
);
4807 /* syntax/icode_generation.nit:960 */
4808 REGB3
= TAG_Char('\n');
4809 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB3
));
4810 if (UNTAG_Bool(REGB4
)) {
4812 /* ../lib/standard/kernel.nit:381 */
4813 REGB3
= TAG_Bool((REGB2
)==(REGB3
));
4814 /* syntax/icode_generation.nit:960 */
4817 if (UNTAG_Bool(REGB4
)) {
4818 /* syntax/icode_generation.nit:961 */
4819 REGB4
= TAG_Char('\\');
4820 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB4
);
4821 /* syntax/icode_generation.nit:962 */
4822 REGB4
= TAG_Char('n');
4827 /* syntax/icode_generation.nit:964 */
4829 /* ../lib/standard/kernel.nit:238 */
4830 REGB4
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB4
));
4831 /* syntax/icode_generation.nit:964 */
4833 /* syntax/icode_generation.nit:965 */
4834 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB2
);
4835 /* syntax/icode_generation.nit:966 */
4837 /* ../lib/standard/kernel.nit:238 */
4838 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
4839 /* syntax/icode_generation.nit:966 */
4842 /* syntax/icode_generation.nit:949 */
4847 /* syntax/icode_generation.nit:968 */
4848 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
4849 ATTR_syntax___icode_generation___AStringFormExpr____cstring(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
4850 /* syntax/icode_generation.nit:969 */
4851 ATTR_syntax___icode_generation___AStringFormExpr____cstring_length(fra
.me
.REG
[0]) = REGB0
;
4852 stack_frame_head
= fra
.me
.prev
;
4855 static const char LOCATE_syntax___icode_generation___AStringExpr___string_text
[] = "icode_generation::AStringExpr::(icode_generation::AStringFormExpr::string_text)";
4856 val_t
syntax___icode_generation___AStringExpr___string_text(val_t p0
){
4857 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4862 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4863 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4865 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStringExpr___string_text
;
4866 fra
.me
.has_broke
= 0;
4867 fra
.me
.REG_size
= 2;
4868 fra
.me
.nitni_local_ref_head
= NULL
;
4869 fra
.me
.REG
[0] = NIT_NULL
;
4870 fra
.me
.REG
[1] = NIT_NULL
;
4872 /* syntax/icode_generation.nit:974 */
4873 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AStringFormExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4874 fra
.me
.REG
[1] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4876 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AStringFormExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4877 fra
.me
.REG
[0] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4878 /* ../lib/standard/collection/array.nit:24 */
4879 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4880 if (UNTAG_Bool(REGB1
)) {
4882 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4884 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4885 /* syntax/icode_generation.nit:974 */
4887 /* ../lib/standard/kernel.nit:240 */
4888 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4889 /* syntax/icode_generation.nit:974 */
4890 fra
.me
.REG
[1] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4893 stack_frame_head
= fra
.me
.prev
;
4894 return fra
.me
.REG
[1];
4896 static const char LOCATE_syntax___icode_generation___AStartStringExpr___string_text
[] = "icode_generation::AStartStringExpr::(icode_generation::AStringFormExpr::string_text)";
4897 val_t
syntax___icode_generation___AStartStringExpr___string_text(val_t p0
){
4898 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4903 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4904 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4906 fra
.me
.meth
= LOCATE_syntax___icode_generation___AStartStringExpr___string_text
;
4907 fra
.me
.has_broke
= 0;
4908 fra
.me
.REG_size
= 2;
4909 fra
.me
.nitni_local_ref_head
= NULL
;
4910 fra
.me
.REG
[0] = NIT_NULL
;
4911 fra
.me
.REG
[1] = NIT_NULL
;
4913 /* syntax/icode_generation.nit:977 */
4914 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AStringFormExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4915 fra
.me
.REG
[1] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4917 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AStringFormExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4918 fra
.me
.REG
[0] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4919 /* ../lib/standard/collection/array.nit:24 */
4920 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4921 if (UNTAG_Bool(REGB1
)) {
4923 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4925 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4926 /* syntax/icode_generation.nit:977 */
4928 /* ../lib/standard/kernel.nit:240 */
4929 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4930 /* syntax/icode_generation.nit:977 */
4931 fra
.me
.REG
[1] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4934 stack_frame_head
= fra
.me
.prev
;
4935 return fra
.me
.REG
[1];
4937 static const char LOCATE_syntax___icode_generation___AMidStringExpr___string_text
[] = "icode_generation::AMidStringExpr::(icode_generation::AStringFormExpr::string_text)";
4938 val_t
syntax___icode_generation___AMidStringExpr___string_text(val_t p0
){
4939 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4944 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4945 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4947 fra
.me
.meth
= LOCATE_syntax___icode_generation___AMidStringExpr___string_text
;
4948 fra
.me
.has_broke
= 0;
4949 fra
.me
.REG_size
= 2;
4950 fra
.me
.nitni_local_ref_head
= NULL
;
4951 fra
.me
.REG
[0] = NIT_NULL
;
4952 fra
.me
.REG
[1] = NIT_NULL
;
4954 /* syntax/icode_generation.nit:980 */
4955 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AStringFormExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4956 fra
.me
.REG
[1] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4958 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AStringFormExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4959 fra
.me
.REG
[0] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4960 /* ../lib/standard/collection/array.nit:24 */
4961 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
4962 if (UNTAG_Bool(REGB1
)) {
4964 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
4966 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
4967 /* syntax/icode_generation.nit:980 */
4969 /* ../lib/standard/kernel.nit:240 */
4970 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
4971 /* syntax/icode_generation.nit:980 */
4972 fra
.me
.REG
[1] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
4975 stack_frame_head
= fra
.me
.prev
;
4976 return fra
.me
.REG
[1];
4978 static const char LOCATE_syntax___icode_generation___AEndStringExpr___string_text
[] = "icode_generation::AEndStringExpr::(icode_generation::AStringFormExpr::string_text)";
4979 val_t
syntax___icode_generation___AEndStringExpr___string_text(val_t p0
){
4980 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
4985 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
4986 fra
.me
.file
= LOCATE_syntax___icode_generation
;
4988 fra
.me
.meth
= LOCATE_syntax___icode_generation___AEndStringExpr___string_text
;
4989 fra
.me
.has_broke
= 0;
4990 fra
.me
.REG_size
= 2;
4991 fra
.me
.nitni_local_ref_head
= NULL
;
4992 fra
.me
.REG
[0] = NIT_NULL
;
4993 fra
.me
.REG
[1] = NIT_NULL
;
4995 /* syntax/icode_generation.nit:983 */
4996 fra
.me
.REG
[1] = CALL_parser___parser_nodes___AStringFormExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
4997 fra
.me
.REG
[1] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
4999 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AStringFormExpr___n_string(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5000 fra
.me
.REG
[0] = CALL_parser___parser_nodes___Token___text(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5001 /* ../lib/standard/collection/array.nit:24 */
5002 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
5003 if (UNTAG_Bool(REGB1
)) {
5005 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
5007 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
5008 /* syntax/icode_generation.nit:983 */
5010 /* ../lib/standard/kernel.nit:240 */
5011 REGB2
= TAG_Int(UNTAG_Int(REGB1
)-UNTAG_Int(REGB2
));
5012 /* syntax/icode_generation.nit:983 */
5013 fra
.me
.REG
[1] = CALL_standard___string___AbstractString___substring(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
, REGB2
);
5016 stack_frame_head
= fra
.me
.prev
;
5017 return fra
.me
.REG
[1];
5019 static const char LOCATE_syntax___icode_generation___ASuperstringExpr___generate_icode
[] = "icode_generation::ASuperstringExpr::(icode_generation::AExpr::generate_icode)";
5020 val_t
syntax___icode_generation___ASuperstringExpr___generate_icode(val_t p0
, val_t p1
){
5021 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
5024 static val_t once_value_1
; /* Once value */
5025 static val_t once_value_2
; /* Once value */
5026 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5027 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5029 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASuperstringExpr___generate_icode
;
5030 fra
.me
.has_broke
= 0;
5031 fra
.me
.REG_size
= 6;
5032 fra
.me
.nitni_local_ref_head
= NULL
;
5033 fra
.me
.REG
[0] = NIT_NULL
;
5034 fra
.me
.REG
[1] = NIT_NULL
;
5035 fra
.me
.REG
[2] = NIT_NULL
;
5036 fra
.me
.REG
[3] = NIT_NULL
;
5037 fra
.me
.REG
[4] = NIT_NULL
;
5038 fra
.me
.REG
[5] = NIT_NULL
;
5041 /* syntax/icode_generation.nit:989 */
5042 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASuperstringExpr___atype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5043 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5044 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5045 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
);
5046 /* syntax/icode_generation.nit:990 */
5047 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5048 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5049 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_object(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5050 if (!once_value_1
) {
5051 if (!once_value_2
) {
5052 fra
.me
.REG
[5] = BOX_NativeString("to_s");
5054 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
5055 once_value_2
= fra
.me
.REG
[5];
5056 register_static_object(&once_value_2
);
5057 } else fra
.me
.REG
[5] = once_value_2
;
5058 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5059 fra
.me
.REG
[5] = CALL_symbol___String___to_symbol(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
5060 once_value_1
= fra
.me
.REG
[5];
5061 register_static_object(&once_value_1
);
5062 } else fra
.me
.REG
[5] = once_value_1
;
5063 fra
.me
.REG
[5] = fra
.me
.REG
[5];
5064 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]);
5065 /* syntax/icode_generation.nit:991 */
5066 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASuperstringExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5067 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
));
5068 /* syntax/icode_generation.nit:998 */
5070 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5071 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
5072 fra
.me
.REG
[4] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5073 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5074 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]);
5077 stack_frame_head
= fra
.me
.prev
;
5078 return fra
.me
.REG
[0];
5080 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
){
5081 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5086 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5087 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5089 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASuperstringExpr___generate_icode
;
5090 fra
.me
.has_broke
= 0;
5091 fra
.me
.REG_size
= 3;
5092 fra
.me
.nitni_local_ref_head
= NULL
;
5093 fra
.me
.REG
[0] = NIT_NULL
;
5094 fra
.me
.REG
[1] = NIT_NULL
;
5095 fra
.me
.REG
[2] = NIT_NULL
;
5096 fra
.me
.closure_ctx
= closctx_param
;
5097 fra
.me
.closure_funs
= CREG
;
5099 CREG
[0] = clos_fun0
;
5100 /* syntax/icode_generation.nit:992 */
5101 fra
.me
.REG
[1] = CALL_syntax___icode_generation___A2IContext___generate_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
5102 /* syntax/icode_generation.nit:993 */
5103 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5104 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(closctx
->REG
[0])(closctx
->REG
[0]);
5105 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[0],fra
.me
.REG
[2]));
5106 if (UNTAG_Bool(REGB0
)) {
5108 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
5111 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5112 if (UNTAG_Bool(REGB0
)) {
5113 /* syntax/icode_generation.nit:994 */
5115 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5116 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
5117 fra
.me
.REG
[2] = NEW_ICall_icode___icode_base___ICall___init(closctx
->REG
[5], fra
.me
.REG
[2]);
5118 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(closctx
->REG
[0])(closctx
->REG
[0]);
5119 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
5120 fra
.me
.REG
[1] = fra
.me
.REG
[0];
5122 /* syntax/icode_generation.nit:996 */
5123 CALL_syntax___icode_generation___A2IContext___add_call_array_add(closctx
->REG
[1])(closctx
->REG
[1], closctx
->REG
[2], fra
.me
.REG
[1]);
5124 stack_frame_head
= fra
.me
.prev
;
5127 static const char LOCATE_syntax___icode_generation___ANullExpr___generate_icode
[] = "icode_generation::ANullExpr::(icode_generation::AExpr::generate_icode)";
5128 val_t
syntax___icode_generation___ANullExpr___generate_icode(val_t p0
, val_t p1
){
5129 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
5131 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5132 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5134 fra
.me
.meth
= LOCATE_syntax___icode_generation___ANullExpr___generate_icode
;
5135 fra
.me
.has_broke
= 0;
5136 fra
.me
.REG_size
= 2;
5137 fra
.me
.nitni_local_ref_head
= NULL
;
5138 fra
.me
.REG
[0] = NIT_NULL
;
5139 fra
.me
.REG
[1] = NIT_NULL
;
5142 /* syntax/icode_generation.nit:1005 */
5143 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___lit_null_reg(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5146 stack_frame_head
= fra
.me
.prev
;
5147 return fra
.me
.REG
[1];
5149 static const char LOCATE_syntax___icode_generation___AArrayExpr___generate_icode
[] = "icode_generation::AArrayExpr::(icode_generation::AExpr::generate_icode)";
5150 val_t
syntax___icode_generation___AArrayExpr___generate_icode(val_t p0
, val_t p1
){
5151 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
5154 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5155 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5157 fra
.me
.meth
= LOCATE_syntax___icode_generation___AArrayExpr___generate_icode
;
5158 fra
.me
.has_broke
= 0;
5159 fra
.me
.REG_size
= 3;
5160 fra
.me
.nitni_local_ref_head
= NULL
;
5161 fra
.me
.REG
[0] = NIT_NULL
;
5162 fra
.me
.REG
[1] = NIT_NULL
;
5163 fra
.me
.REG
[2] = NIT_NULL
;
5166 /* syntax/icode_generation.nit:1012 */
5167 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AArrayExpr___n_exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5168 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AExprs___n_exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5169 /* syntax/icode_generation.nit:1013 */
5170 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5171 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5172 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
);
5173 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
));
5174 /* syntax/icode_generation.nit:1018 */
5177 stack_frame_head
= fra
.me
.prev
;
5178 return fra
.me
.REG
[0];
5180 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
){
5181 struct {struct stack_frame_t me
;} fra
;
5184 /* syntax/icode_generation.nit:1014 */
5185 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5186 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5188 fra
.me
.meth
= LOCATE_syntax___icode_generation___AArrayExpr___generate_icode
;
5189 fra
.me
.has_broke
= 0;
5190 fra
.me
.REG_size
= 1;
5191 fra
.me
.nitni_local_ref_head
= NULL
;
5192 fra
.me
.REG
[0] = NIT_NULL
;
5193 fra
.me
.closure_ctx
= closctx_param
;
5194 fra
.me
.closure_funs
= CREG
;
5196 CREG
[0] = clos_fun0
;
5197 /* syntax/icode_generation.nit:1015 */
5198 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
5199 /* syntax/icode_generation.nit:1016 */
5200 CALL_syntax___icode_generation___A2IContext___add_call_array_add(closctx
->REG
[1])(closctx
->REG
[1], closctx
->REG
[0], fra
.me
.REG
[0]);
5201 stack_frame_head
= fra
.me
.prev
;
5204 static const char LOCATE_syntax___icode_generation___ACrangeExpr___generate_icode
[] = "icode_generation::ACrangeExpr::(icode_generation::AExpr::generate_icode)";
5205 val_t
syntax___icode_generation___ACrangeExpr___generate_icode(val_t p0
, val_t p1
){
5206 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5209 static val_t once_value_1
; /* Once value */
5210 static val_t once_value_2
; /* Once value */
5211 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5212 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5214 fra
.me
.meth
= LOCATE_syntax___icode_generation___ACrangeExpr___generate_icode
;
5215 fra
.me
.has_broke
= 0;
5216 fra
.me
.REG_size
= 7;
5217 fra
.me
.nitni_local_ref_head
= NULL
;
5218 fra
.me
.REG
[0] = NIT_NULL
;
5219 fra
.me
.REG
[1] = NIT_NULL
;
5220 fra
.me
.REG
[2] = NIT_NULL
;
5221 fra
.me
.REG
[3] = NIT_NULL
;
5222 fra
.me
.REG
[4] = NIT_NULL
;
5223 fra
.me
.REG
[5] = NIT_NULL
;
5224 fra
.me
.REG
[6] = NIT_NULL
;
5227 /* syntax/icode_generation.nit:1025 */
5228 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5229 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5230 /* syntax/icode_generation.nit:1026 */
5231 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5232 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5233 /* syntax/icode_generation.nit:1027 */
5234 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5235 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5236 if (!once_value_1
) {
5237 if (!once_value_2
) {
5238 fra
.me
.REG
[6] = BOX_NativeString("init");
5240 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
5241 once_value_2
= fra
.me
.REG
[6];
5242 register_static_object(&once_value_2
);
5243 } else fra
.me
.REG
[6] = once_value_2
;
5244 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5245 fra
.me
.REG
[6] = CALL_symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5246 once_value_1
= fra
.me
.REG
[6];
5247 register_static_object(&once_value_1
);
5248 } else fra
.me
.REG
[6] = once_value_1
;
5249 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5250 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]);
5251 /* syntax/icode_generation.nit:1028 */
5252 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5254 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5255 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
5256 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5257 fra
.me
.REG
[4] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[5], fra
.me
.REG
[6], fra
.me
.REG
[4]);
5258 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5259 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]);
5262 stack_frame_head
= fra
.me
.prev
;
5263 return fra
.me
.REG
[0];
5265 static const char LOCATE_syntax___icode_generation___AOrangeExpr___generate_icode
[] = "icode_generation::AOrangeExpr::(icode_generation::AExpr::generate_icode)";
5266 val_t
syntax___icode_generation___AOrangeExpr___generate_icode(val_t p0
, val_t p1
){
5267 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5270 static val_t once_value_1
; /* Once value */
5271 static val_t once_value_2
; /* Once value */
5272 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5273 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5275 fra
.me
.meth
= LOCATE_syntax___icode_generation___AOrangeExpr___generate_icode
;
5276 fra
.me
.has_broke
= 0;
5277 fra
.me
.REG_size
= 7;
5278 fra
.me
.nitni_local_ref_head
= NULL
;
5279 fra
.me
.REG
[0] = NIT_NULL
;
5280 fra
.me
.REG
[1] = NIT_NULL
;
5281 fra
.me
.REG
[2] = NIT_NULL
;
5282 fra
.me
.REG
[3] = NIT_NULL
;
5283 fra
.me
.REG
[4] = NIT_NULL
;
5284 fra
.me
.REG
[5] = NIT_NULL
;
5285 fra
.me
.REG
[6] = NIT_NULL
;
5288 /* syntax/icode_generation.nit:1035 */
5289 fra
.me
.REG
[2] = CALL_parser___parser_nodes___ARangeExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5290 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5291 /* syntax/icode_generation.nit:1036 */
5292 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ARangeExpr___n_expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5293 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5294 /* syntax/icode_generation.nit:1037 */
5295 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5296 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5297 if (!once_value_1
) {
5298 if (!once_value_2
) {
5299 fra
.me
.REG
[6] = BOX_NativeString("without_last");
5300 REGB0
= TAG_Int(12);
5301 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
5302 once_value_2
= fra
.me
.REG
[6];
5303 register_static_object(&once_value_2
);
5304 } else fra
.me
.REG
[6] = once_value_2
;
5305 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5306 fra
.me
.REG
[6] = CALL_symbol___String___to_symbol(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
5307 once_value_1
= fra
.me
.REG
[6];
5308 register_static_object(&once_value_1
);
5309 } else fra
.me
.REG
[6] = once_value_1
;
5310 fra
.me
.REG
[6] = fra
.me
.REG
[6];
5311 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]);
5312 /* syntax/icode_generation.nit:1038 */
5313 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5315 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5316 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
5317 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
5318 fra
.me
.REG
[4] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[5], fra
.me
.REG
[6], fra
.me
.REG
[4]);
5319 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5320 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]);
5323 stack_frame_head
= fra
.me
.prev
;
5324 return fra
.me
.REG
[0];
5326 static const char LOCATE_syntax___icode_generation___ASuperExpr___generate_icode
[] = "icode_generation::ASuperExpr::(icode_generation::AExpr::generate_icode)";
5327 val_t
syntax___icode_generation___ASuperExpr___generate_icode(val_t p0
, val_t p1
){
5328 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
5334 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5335 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5337 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASuperExpr___generate_icode
;
5338 fra
.me
.has_broke
= 0;
5339 fra
.me
.REG_size
= 6;
5340 fra
.me
.nitni_local_ref_head
= NULL
;
5341 fra
.me
.REG
[0] = NIT_NULL
;
5342 fra
.me
.REG
[1] = NIT_NULL
;
5343 fra
.me
.REG
[2] = NIT_NULL
;
5344 fra
.me
.REG
[3] = NIT_NULL
;
5345 fra
.me
.REG
[4] = NIT_NULL
;
5346 fra
.me
.REG
[5] = NIT_NULL
;
5349 /* syntax/icode_generation.nit:1045 */
5350 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5351 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5352 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5354 /* ../lib/standard/kernel.nit:240 */
5355 REGB1
= TAG_Int(UNTAG_Int(REGB0
)-UNTAG_Int(REGB1
));
5356 /* syntax/icode_generation.nit:1046 */
5357 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASuperExpr___init_in_superclass(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5358 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5359 if (UNTAG_Bool(REGB0
)) {
5361 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5362 if (UNTAG_Bool(REGB2
)) {
5363 REGB2
= TAG_Bool(0);
5366 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
5370 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
5371 if (UNTAG_Bool(REGB0
)) {
5372 /* syntax/icode_generation.nit:1047 */
5373 fra
.me
.REG
[2] = CALL_syntax___syntax_base___ASuperExpr___init_in_superclass(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5374 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5375 if (UNTAG_Bool(REGB0
)) {
5376 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1047);
5378 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5379 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
5380 if (UNTAG_Bool(REGB0
)) {
5381 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1047);
5383 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
5386 /* syntax/icode_generation.nit:1049 */
5388 /* ../lib/standard/kernel.nit:238 */
5389 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
5390 /* syntax/icode_generation.nit:1049 */
5391 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5392 /* syntax/icode_generation.nit:1050 */
5393 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5394 fra
.me
.REG
[3] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5396 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
5397 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
5398 /* syntax/icode_generation.nit:1051 */
5399 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASuperExpr___n_args(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5400 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AExprs___n_exprs(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5401 /* syntax/icode_generation.nit:1052 */
5402 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5403 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
5404 if (UNTAG_Bool(REGB2
)) {
5406 /* ../lib/standard/kernel.nit:230 */
5407 REGB0
= TAG_Bool((REGB0
)==(REGB1
));
5408 /* syntax/icode_generation.nit:1052 */
5411 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
5412 if (UNTAG_Bool(REGB2
)) {
5413 /* syntax/icode_generation.nit:1053 */
5415 /* ../lib/standard/kernel.nit:355 */
5417 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
5418 if (UNTAG_Bool(REGB0
)) {
5420 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5422 /* ../lib/standard/kernel.nit:235 */
5423 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
5424 /* ../lib/standard/kernel.nit:355 */
5425 if (UNTAG_Bool(REGB0
)) {
5426 /* syntax/icode_generation.nit:1053 */
5428 /* syntax/icode_generation.nit:1054 */
5429 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5430 fra
.me
.REG
[4] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5432 /* ../lib/standard/kernel.nit:238 */
5433 REGB3
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB3
));
5434 /* syntax/icode_generation.nit:1054 */
5435 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB3
);
5436 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5437 /* ../lib/standard/kernel.nit:357 */
5439 /* ../lib/standard/kernel.nit:238 */
5440 REGB3
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB3
));
5441 /* ../lib/standard/kernel.nit:357 */
5444 /* ../lib/standard/kernel.nit:355 */
5450 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
));
5452 /* syntax/icode_generation.nit:1061 */
5453 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ASuperExpr___init_in_superclass(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5454 /* syntax/icode_generation.nit:1062 */
5455 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5456 if (UNTAG_Bool(REGB2
)) {
5458 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5459 if (UNTAG_Bool(REGB1
)) {
5460 REGB1
= TAG_Bool(0);
5463 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
5467 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
5468 if (UNTAG_Bool(REGB2
)) {
5469 /* syntax/icode_generation.nit:1063 */
5470 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5471 if (UNTAG_Bool(REGB2
)) {
5472 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1063);
5474 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5475 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5476 if (UNTAG_Bool(REGB2
)) {
5477 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1063);
5479 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
5480 /* syntax/icode_generation.nit:1064 */
5481 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5482 if (UNTAG_Bool(REGB2
)) {
5484 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5485 if (UNTAG_Bool(REGB1
)) {
5486 REGB1
= TAG_Bool(0);
5489 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
5493 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
5494 if (UNTAG_Bool(REGB2
)) {
5495 /* syntax/icode_generation.nit:1065 */
5496 fra
.me
.REG
[5] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5497 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]);
5500 /* syntax/icode_generation.nit:1067 */
5501 fra
.me
.REG
[5] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5502 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5503 /* syntax/icode_generation.nit:1068 */
5504 fra
.me
.REG
[4] = NIT_NULL
;
5508 /* syntax/icode_generation.nit:1071 */
5509 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5510 fra
.me
.REG
[3] = fra
.me
.REG
[0];
5511 /* syntax/icode_generation.nit:1072 */
5512 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
5513 if (UNTAG_Bool(REGB2
)) {
5514 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1072);
5516 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5517 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5518 if (UNTAG_Bool(REGB2
)) {
5519 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1072);
5521 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5522 /* syntax/icode_generation.nit:1073 */
5523 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5524 if (UNTAG_Bool(REGB2
)) {
5526 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
5527 if (UNTAG_Bool(REGB1
)) {
5528 REGB1
= TAG_Bool(0);
5531 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
5535 if (UNTAG_Bool(REGB2
)) {
5536 /* syntax/icode_generation.nit:1074 */
5537 fra
.me
.REG
[5] = NEW_ISuper_icode___icode_base___ISuper___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5538 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5539 /* syntax/icode_generation.nit:1075 */
5540 fra
.me
.REG
[4] = NIT_NULL
;
5543 /* syntax/icode_generation.nit:1077 */
5544 fra
.me
.REG
[2] = NEW_ISuper_icode___icode_base___ISuper___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5545 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]);
5546 fra
.me
.REG
[4] = fra
.me
.REG
[0];
5551 stack_frame_head
= fra
.me
.prev
;
5552 return fra
.me
.REG
[4];
5554 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
){
5555 struct {struct stack_frame_t me
;} fra
;
5558 /* syntax/icode_generation.nit:1057 */
5559 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5560 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5562 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASuperExpr___generate_icode
;
5563 fra
.me
.has_broke
= 0;
5564 fra
.me
.REG_size
= 1;
5565 fra
.me
.nitni_local_ref_head
= NULL
;
5566 fra
.me
.REG
[0] = NIT_NULL
;
5567 fra
.me
.closure_ctx
= closctx_param
;
5568 fra
.me
.closure_funs
= CREG
;
5570 CREG
[0] = clos_fun0
;
5571 /* syntax/icode_generation.nit:1058 */
5572 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
5573 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
5574 stack_frame_head
= fra
.me
.prev
;
5577 static const char LOCATE_syntax___icode_generation___AAttrExpr___generate_icode
[] = "icode_generation::AAttrExpr::(icode_generation::AExpr::generate_icode)";
5578 val_t
syntax___icode_generation___AAttrExpr___generate_icode(val_t p0
, val_t p1
){
5579 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5582 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5583 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5585 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAttrExpr___generate_icode
;
5586 fra
.me
.has_broke
= 0;
5587 fra
.me
.REG_size
= 4;
5588 fra
.me
.nitni_local_ref_head
= NULL
;
5589 fra
.me
.REG
[0] = NIT_NULL
;
5590 fra
.me
.REG
[1] = NIT_NULL
;
5591 fra
.me
.REG
[2] = NIT_NULL
;
5592 fra
.me
.REG
[3] = NIT_NULL
;
5595 /* syntax/icode_generation.nit:1086 */
5596 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5597 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5598 /* syntax/icode_generation.nit:1087 */
5599 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5600 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5601 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5602 if (UNTAG_Bool(REGB0
)) {
5603 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5605 /* syntax/icode_generation.nit:1088 */
5606 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5607 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]);
5610 stack_frame_head
= fra
.me
.prev
;
5611 return fra
.me
.REG
[2];
5613 static const char LOCATE_syntax___icode_generation___AAttrAssignExpr___generate_icode
[] = "icode_generation::AAttrAssignExpr::(icode_generation::AExpr::generate_icode)";
5614 val_t
syntax___icode_generation___AAttrAssignExpr___generate_icode(val_t p0
, val_t p1
){
5615 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5618 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5619 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5621 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAttrAssignExpr___generate_icode
;
5622 fra
.me
.has_broke
= 0;
5623 fra
.me
.REG_size
= 4;
5624 fra
.me
.nitni_local_ref_head
= NULL
;
5625 fra
.me
.REG
[0] = NIT_NULL
;
5626 fra
.me
.REG
[1] = NIT_NULL
;
5627 fra
.me
.REG
[2] = NIT_NULL
;
5628 fra
.me
.REG
[3] = NIT_NULL
;
5631 /* syntax/icode_generation.nit:1095 */
5632 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5633 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5634 /* syntax/icode_generation.nit:1096 */
5635 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5636 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5637 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5638 if (UNTAG_Bool(REGB0
)) {
5639 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5641 /* syntax/icode_generation.nit:1097 */
5642 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAssignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5643 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5644 /* syntax/icode_generation.nit:1098 */
5645 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5646 fra
.me
.REG
[3] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[3]);
5647 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5648 /* syntax/icode_generation.nit:1099 */
5649 fra
.me
.REG
[3] = NIT_NULL
;
5652 stack_frame_head
= fra
.me
.prev
;
5653 return fra
.me
.REG
[3];
5655 static const char LOCATE_syntax___icode_generation___AAttrReassignExpr___generate_icode
[] = "icode_generation::AAttrReassignExpr::(icode_generation::AExpr::generate_icode)";
5656 val_t
syntax___icode_generation___AAttrReassignExpr___generate_icode(val_t p0
, val_t p1
){
5657 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5660 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5661 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5663 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAttrReassignExpr___generate_icode
;
5664 fra
.me
.has_broke
= 0;
5665 fra
.me
.REG_size
= 7;
5666 fra
.me
.nitni_local_ref_head
= NULL
;
5667 fra
.me
.REG
[0] = NIT_NULL
;
5668 fra
.me
.REG
[1] = NIT_NULL
;
5669 fra
.me
.REG
[2] = NIT_NULL
;
5670 fra
.me
.REG
[3] = NIT_NULL
;
5671 fra
.me
.REG
[4] = NIT_NULL
;
5672 fra
.me
.REG
[5] = NIT_NULL
;
5673 fra
.me
.REG
[6] = NIT_NULL
;
5676 /* syntax/icode_generation.nit:1105 */
5677 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5678 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5679 /* syntax/icode_generation.nit:1106 */
5680 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5681 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5682 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5683 if (UNTAG_Bool(REGB0
)) {
5684 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5686 /* syntax/icode_generation.nit:1107 */
5687 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5688 fra
.me
.REG
[3] = NEW_IAttrRead_icode___icode_base___IAttrRead___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5689 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5690 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]);
5691 /* syntax/icode_generation.nit:1108 */
5692 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5693 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
5694 /* syntax/icode_generation.nit:1109 */
5695 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5697 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
5698 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
5699 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
5700 fra
.me
.REG
[6] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[5], fra
.me
.REG
[6]);
5701 fra
.me
.REG
[5] = CALL_syntax___syntax_base___AAttrFormExpr___attr_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5702 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]);
5703 /* syntax/icode_generation.nit:1110 */
5704 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5705 fra
.me
.REG
[5] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[5]);
5706 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5707 /* syntax/icode_generation.nit:1111 */
5708 fra
.me
.REG
[5] = NIT_NULL
;
5711 stack_frame_head
= fra
.me
.prev
;
5712 return fra
.me
.REG
[5];
5714 static const char LOCATE_syntax___icode_generation___AIssetAttrExpr___generate_icode
[] = "icode_generation::AIssetAttrExpr::(icode_generation::AExpr::generate_icode)";
5715 val_t
syntax___icode_generation___AIssetAttrExpr___generate_icode(val_t p0
, val_t p1
){
5716 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
5719 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5720 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5722 fra
.me
.meth
= LOCATE_syntax___icode_generation___AIssetAttrExpr___generate_icode
;
5723 fra
.me
.has_broke
= 0;
5724 fra
.me
.REG_size
= 4;
5725 fra
.me
.nitni_local_ref_head
= NULL
;
5726 fra
.me
.REG
[0] = NIT_NULL
;
5727 fra
.me
.REG
[1] = NIT_NULL
;
5728 fra
.me
.REG
[2] = NIT_NULL
;
5729 fra
.me
.REG
[3] = NIT_NULL
;
5732 /* syntax/icode_generation.nit:1118 */
5733 fra
.me
.REG
[2] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5734 fra
.me
.REG
[2] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5735 /* syntax/icode_generation.nit:1119 */
5736 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AAttrFormExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5737 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5738 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5739 if (UNTAG_Bool(REGB0
)) {
5740 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
5742 /* syntax/icode_generation.nit:1120 */
5743 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAttrFormExpr___prop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5744 fra
.me
.REG
[2] = NEW_IAttrIsset_icode___icode_base___IAttrIsset___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
5745 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5746 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]);
5749 stack_frame_head
= fra
.me
.prev
;
5750 return fra
.me
.REG
[0];
5752 static const char LOCATE_syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in
[] = "icode_generation::AAbsAbsSendExpr::generate_icode_for_arguments_in";
5753 void syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
5754 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
5767 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
5768 fra
.me
.file
= LOCATE_syntax___icode_generation
;
5770 fra
.me
.meth
= LOCATE_syntax___icode_generation___AAbsAbsSendExpr___generate_icode_for_arguments_in
;
5771 fra
.me
.has_broke
= 0;
5772 fra
.me
.REG_size
= 7;
5773 fra
.me
.nitni_local_ref_head
= NULL
;
5774 fra
.me
.REG
[0] = NIT_NULL
;
5775 fra
.me
.REG
[1] = NIT_NULL
;
5776 fra
.me
.REG
[2] = NIT_NULL
;
5777 fra
.me
.REG
[3] = NIT_NULL
;
5778 fra
.me
.REG
[4] = NIT_NULL
;
5779 fra
.me
.REG
[5] = NIT_NULL
;
5780 fra
.me
.REG
[6] = NIT_NULL
;
5785 /* syntax/icode_generation.nit:1128 */
5786 REGB0
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5787 /* syntax/icode_generation.nit:1129 */
5788 REGB1
= CALL_metamodel___vararg___MMSignature___vararg_rank(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
5789 /* syntax/icode_generation.nit:1130 */
5790 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
5791 /* ../lib/standard/collection/array.nit:24 */
5792 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
5793 if (UNTAG_Bool(REGB2
)) {
5795 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
5797 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
5798 /* syntax/icode_generation.nit:1132 */
5800 /* syntax/icode_generation.nit:1133 */
5802 /* ../lib/standard/kernel.nit:350 */
5804 /* ../lib/standard/kernel.nit:355 */
5806 REGB6
= TAG_Bool(VAL_ISA(REGB5
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4
), VTID_standard___kernel___Comparable___OTHER(REGB4
))) /*cast OTHER*/;
5807 if (UNTAG_Bool(REGB6
)) {
5809 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5811 /* ../lib/standard/kernel.nit:235 */
5812 REGB6
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB5
));
5813 /* ../lib/standard/kernel.nit:355 */
5814 if (UNTAG_Bool(REGB6
)) {
5815 /* syntax/icode_generation.nit:1133 */
5817 /* syntax/icode_generation.nit:1135 */
5818 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB6
);
5819 /* syntax/icode_generation.nit:1136 */
5820 REGB7
= TAG_Bool(IS_EQUAL_OO(REGB6
,REGB1
));
5821 if (UNTAG_Bool(REGB7
)) {
5823 /* ../lib/standard/kernel.nit:230 */
5824 REGB6
= TAG_Bool((REGB6
)==(REGB1
));
5825 /* syntax/icode_generation.nit:1136 */
5828 if (UNTAG_Bool(REGB7
)) {
5829 /* syntax/icode_generation.nit:1137 */
5830 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
5831 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
5832 /* ../lib/standard/kernel.nit:240 */
5833 REGB7
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB0
));
5834 /* syntax/icode_generation.nit:1137 */
5835 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
);
5836 /* syntax/icode_generation.nit:1138 */
5838 /* ../lib/standard/kernel.nit:240 */
5839 REGB6
= TAG_Int(UNTAG_Int(REGB2
)-UNTAG_Int(REGB0
));
5840 /* ../lib/standard/kernel.nit:344 */
5842 REGB8
= TAG_Bool(VAL_ISA(REGB6
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB7
), VTID_standard___kernel___Comparable___OTHER(REGB7
))) /*cast OTHER*/;
5843 if (UNTAG_Bool(REGB8
)) {
5845 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5847 /* ../lib/standard/kernel.nit:234 */
5848 REGB8
= TAG_Bool(UNTAG_Int(REGB7
)<=UNTAG_Int(REGB6
));
5849 /* ../lib/standard/kernel.nit:344 */
5850 if (UNTAG_Bool(REGB8
)) {
5851 /* ../lib/standard/collection/array.nit:278 */
5852 fra
.me
.REG
[5] = fra
.me
.REG
[0];
5854 /* ../lib/standard/collection/array.nit:280 */
5856 REGB10
= TAG_Bool(VAL_ISA(REGB9
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
5857 if (UNTAG_Bool(REGB10
)) {
5859 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5861 /* ../lib/standard/kernel.nit:236 */
5862 REGB9
= TAG_Bool(UNTAG_Int(REGB8
)>=UNTAG_Int(REGB9
));
5863 /* ../lib/standard/collection/array.nit:280 */
5864 if (UNTAG_Bool(REGB9
)) {
5865 REGB9
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
5866 if (UNTAG_Bool(REGB9
)) {
5868 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
5870 REGB9
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
5871 REGB10
= TAG_Bool(VAL_ISA(REGB9
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB8
), VTID_standard___kernel___Comparable___OTHER(REGB8
))) /*cast OTHER*/;
5872 if (UNTAG_Bool(REGB10
)) {
5874 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5876 /* ../lib/standard/kernel.nit:235 */
5877 REGB9
= TAG_Bool(UNTAG_Int(REGB8
)<UNTAG_Int(REGB9
));
5879 /* ../lib/standard/collection/array.nit:280 */
5880 REGB10
= TAG_Bool(0);
5883 if (UNTAG_Bool(REGB9
)) {
5885 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
5887 /* ../lib/standard/collection/array.nit:281 */
5888 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
5889 REGB9
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
5890 if (UNTAG_Bool(REGB9
)) {
5891 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
5893 /* ../lib/standard/collection/array.nit:724 */
5894 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB8
)];
5895 /* ../lib/standard/collection/array.nit:281 */
5898 /* syntax/icode_generation.nit:1140 */
5899 fra
.me
.REG
[6] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5900 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]);
5901 /* syntax/icode_generation.nit:1141 */
5903 /* ../lib/standard/kernel.nit:238 */
5904 REGB8
= TAG_Int(UNTAG_Int(REGB3
)+UNTAG_Int(REGB8
));
5905 /* syntax/icode_generation.nit:1141 */
5907 /* ../lib/standard/kernel.nit:346 */
5909 /* ../lib/standard/kernel.nit:238 */
5910 REGB8
= TAG_Int(UNTAG_Int(REGB7
)+UNTAG_Int(REGB8
));
5911 /* ../lib/standard/kernel.nit:346 */
5914 /* ../lib/standard/kernel.nit:344 */
5919 /* syntax/icode_generation.nit:1143 */
5920 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
5922 /* ../lib/standard/collection/array.nit:278 */
5923 fra
.me
.REG
[4] = fra
.me
.REG
[0];
5925 /* ../lib/standard/collection/array.nit:280 */
5927 REGB8
= TAG_Bool(VAL_ISA(REGB6
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB7
), VTID_standard___kernel___Comparable___OTHER(REGB7
))) /*cast OTHER*/;
5928 if (UNTAG_Bool(REGB8
)) {
5930 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5932 /* ../lib/standard/kernel.nit:236 */
5933 REGB6
= TAG_Bool(UNTAG_Int(REGB7
)>=UNTAG_Int(REGB6
));
5934 /* ../lib/standard/collection/array.nit:280 */
5935 if (UNTAG_Bool(REGB6
)) {
5936 REGB6
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
5937 if (UNTAG_Bool(REGB6
)) {
5939 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
5941 REGB6
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
5942 REGB8
= TAG_Bool(VAL_ISA(REGB6
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB7
), VTID_standard___kernel___Comparable___OTHER(REGB7
))) /*cast OTHER*/;
5943 if (UNTAG_Bool(REGB8
)) {
5945 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
5947 /* ../lib/standard/kernel.nit:235 */
5948 REGB6
= TAG_Bool(UNTAG_Int(REGB7
)<UNTAG_Int(REGB6
));
5950 /* ../lib/standard/collection/array.nit:280 */
5951 REGB8
= TAG_Bool(0);
5954 if (UNTAG_Bool(REGB6
)) {
5956 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
5958 /* ../lib/standard/collection/array.nit:281 */
5959 fra
.me
.REG
[4] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
5960 REGB6
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
5961 if (UNTAG_Bool(REGB6
)) {
5962 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
5964 /* ../lib/standard/collection/array.nit:724 */
5965 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB7
)];
5966 /* ../lib/standard/collection/array.nit:281 */
5969 /* syntax/icode_generation.nit:1145 */
5970 fra
.me
.REG
[5] = fra
.me
.REG
[4];
5971 /* syntax/icode_generation.nit:1146 */
5972 fra
.me
.REG
[5] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
5973 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
5974 /* syntax/icode_generation.nit:1147 */
5976 /* ../lib/standard/kernel.nit:238 */
5977 REGB7
= TAG_Int(UNTAG_Int(REGB3
)+UNTAG_Int(REGB7
));
5978 /* syntax/icode_generation.nit:1147 */
5981 /* ../lib/standard/kernel.nit:357 */
5983 /* ../lib/standard/kernel.nit:238 */
5984 REGB7
= TAG_Int(UNTAG_Int(REGB4
)+UNTAG_Int(REGB7
));
5985 /* ../lib/standard/kernel.nit:357 */
5988 /* ../lib/standard/kernel.nit:355 */
5993 stack_frame_head
= fra
.me
.prev
;
5996 static const char LOCATE_syntax___icode_generation___ASendExpr___generate_icode
[] = "icode_generation::ASendExpr::(icode_generation::AExpr::generate_icode)";
5997 val_t
syntax___icode_generation___ASendExpr___generate_icode(val_t p0
, val_t p1
){
5998 struct {struct stack_frame_t me
; val_t MORE_REG
[15];} fra
;
6005 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6006 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6008 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASendExpr___generate_icode
;
6009 fra
.me
.has_broke
= 0;
6010 fra
.me
.REG_size
= 16;
6011 fra
.me
.nitni_local_ref_head
= NULL
;
6012 fra
.me
.REG
[0] = NIT_NULL
;
6013 fra
.me
.REG
[1] = NIT_NULL
;
6014 fra
.me
.REG
[2] = NIT_NULL
;
6015 fra
.me
.REG
[3] = NIT_NULL
;
6016 fra
.me
.REG
[4] = NIT_NULL
;
6017 fra
.me
.REG
[5] = NIT_NULL
;
6018 fra
.me
.REG
[6] = NIT_NULL
;
6019 fra
.me
.REG
[7] = NIT_NULL
;
6020 fra
.me
.REG
[8] = NIT_NULL
;
6021 fra
.me
.REG
[9] = NIT_NULL
;
6022 fra
.me
.REG
[10] = NIT_NULL
;
6023 fra
.me
.REG
[11] = NIT_NULL
;
6024 fra
.me
.REG
[12] = NIT_NULL
;
6025 fra
.me
.REG
[13] = NIT_NULL
;
6026 fra
.me
.REG
[14] = NIT_NULL
;
6027 fra
.me
.REG
[15] = NIT_NULL
;
6030 /* syntax/icode_generation.nit:1154 */
6031 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6032 /* syntax/icode_generation.nit:1156 */
6033 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6034 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6035 /* syntax/icode_generation.nit:1157 */
6036 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___init();
6037 /* syntax/icode_generation.nit:1158 */
6038 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6039 /* syntax/icode_generation.nit:1159 */
6040 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6041 /* syntax/icode_generation.nit:1160 */
6042 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6043 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*/;
6044 if (UNTAG_Bool(REGB0
)) {
6046 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1160);
6048 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]);
6049 /* syntax/icode_generation.nit:1161 */
6050 fra
.me
.REG
[5] = NIT_NULL
;
6051 /* syntax/icode_generation.nit:1165 */
6052 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6053 /* syntax/icode_generation.nit:1166 */
6054 fra
.me
.REG
[6] = NIT_NULL
;
6055 /* syntax/icode_generation.nit:1167 */
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___closures(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6058 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6059 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6060 if (UNTAG_Bool(REGB0
)) {
6061 /* syntax/icode_generation.nit:1168 */
6062 fra
.me
.REG
[7] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6063 fra
.me
.REG
[7] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
6064 /* syntax/icode_generation.nit:1169 */
6065 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6066 if (UNTAG_Bool(REGB0
)) {
6068 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6069 if (UNTAG_Bool(REGB1
)) {
6070 REGB1
= TAG_Bool(0);
6073 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
6077 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6078 if (UNTAG_Bool(REGB0
)) {
6079 /* syntax/icode_generation.nit:1170 */
6080 fra
.me
.REG
[7] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
6081 fra
.me
.REG
[5] = fra
.me
.REG
[7];
6083 /* syntax/icode_generation.nit:1172 */
6084 fra
.me
.REG
[7] = NEW_ISeq_icode___icode_base___ISeq___init();
6085 /* syntax/icode_generation.nit:1173 */
6086 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
6087 /* syntax/icode_generation.nit:1174 */
6088 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
6089 /* syntax/icode_generation.nit:1175 */
6090 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___init();
6091 fra
.me
.REG
[6] = fra
.me
.REG
[8];
6092 /* syntax/icode_generation.nit:1176 */
6094 /* syntax/icode_generation.nit:1177 */
6095 fra
.me
.REG
[8] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6096 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6097 if (UNTAG_Bool(REGB0
)) {
6099 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6100 if (UNTAG_Bool(REGB1
)) {
6101 REGB1
= TAG_Bool(0);
6104 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
6108 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6109 if (UNTAG_Bool(REGB0
)) {
6110 fra
.me
.REG
[8] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6111 REGB0
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6112 if (UNTAG_Bool(REGB0
)) {
6113 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1177);
6115 /* ../lib/standard/collection/array.nit:24 */
6116 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8])!=NIT_NULL
);
6117 if (UNTAG_Bool(REGB0
)) {
6119 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6121 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[8]);
6123 /* syntax/icode_generation.nit:1178 */
6124 fra
.me
.REG
[8] = CALL_syntax___syntax_base___ASendExpr___closure_defs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6125 /* syntax/icode_generation.nit:1179 */
6126 fra
.me
.REG
[9] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6127 fra
.me
.REG
[9] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
6128 /* ../lib/standard/collection/array.nit:269 */
6130 /* ../lib/standard/collection/array.nit:270 */
6131 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
6132 if (UNTAG_Bool(REGB1
)) {
6134 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
6136 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9]);
6137 /* ../lib/standard/collection/array.nit:271 */
6138 fra
.me
.REG
[10] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[9]);
6139 /* ../lib/standard/collection/array.nit:272 */
6141 /* ../lib/standard/collection/array.nit:24 */
6142 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9])!=NIT_NULL
);
6143 if (UNTAG_Bool(REGB1
)) {
6145 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6147 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[9]);
6148 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6149 if (UNTAG_Bool(REGB2
)) {
6151 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6153 /* ../lib/standard/kernel.nit:235 */
6154 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6155 /* ../lib/standard/collection/array.nit:272 */
6156 if (UNTAG_Bool(REGB1
)) {
6157 /* ../lib/standard/collection/array.nit:273 */
6158 REGB1
= TAG_Bool(fra
.me
.REG
[10]==NIT_NULL
);
6159 if (UNTAG_Bool(REGB1
)) {
6160 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
6162 /* ../lib/standard/collection/array.nit:724 */
6163 fra
.me
.REG
[11] = ((Nit_NativeArray
)fra
.me
.REG
[10])->val
[UNTAG_Int(REGB0
)];
6164 /* syntax/icode_generation.nit:1180 */
6165 REGB1
= TAG_Bool(0);
6166 /* syntax/icode_generation.nit:1181 */
6167 fra
.me
.REG
[11] = CALL_metamodel___static_type___MMClosure___name(fra
.me
.REG
[11])(fra
.me
.REG
[11]);
6168 /* syntax/icode_generation.nit:1182 */
6169 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6170 if (UNTAG_Bool(REGB2
)) {
6172 REGB3
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6173 if (UNTAG_Bool(REGB3
)) {
6174 REGB3
= TAG_Bool(0);
6177 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
6181 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6182 if (UNTAG_Bool(REGB2
)) {
6183 /* syntax/icode_generation.nit:1183 */
6184 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
6185 if (UNTAG_Bool(REGB2
)) {
6186 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1183);
6188 /* ../lib/standard/collection/array.nit:266 */
6189 fra
.me
.REG
[12] = fra
.me
.REG
[8];
6190 /* ../lib/standard/collection/array.nit:269 */
6192 /* ../lib/standard/collection/array.nit:270 */
6193 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[12])!=NIT_NULL
);
6194 if (UNTAG_Bool(REGB3
)) {
6196 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
6198 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[12]);
6199 /* ../lib/standard/collection/array.nit:271 */
6200 fra
.me
.REG
[13] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[12]);
6201 /* ../lib/standard/collection/array.nit:272 */
6203 /* ../lib/standard/collection/array.nit:24 */
6204 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[12])!=NIT_NULL
);
6205 if (UNTAG_Bool(REGB3
)) {
6207 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6209 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[12]);
6210 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
6211 if (UNTAG_Bool(REGB4
)) {
6213 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6215 /* ../lib/standard/kernel.nit:235 */
6216 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
6217 /* ../lib/standard/collection/array.nit:272 */
6218 if (UNTAG_Bool(REGB3
)) {
6219 /* ../lib/standard/collection/array.nit:273 */
6220 REGB3
= TAG_Bool(fra
.me
.REG
[13]==NIT_NULL
);
6221 if (UNTAG_Bool(REGB3
)) {
6222 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
6224 /* ../lib/standard/collection/array.nit:724 */
6225 fra
.me
.REG
[14] = ((Nit_NativeArray
)fra
.me
.REG
[13])->val
[UNTAG_Int(REGB2
)];
6226 /* syntax/icode_generation.nit:1184 */
6227 fra
.me
.REG
[15] = CALL_parser___parser_nodes___AClosureDef___n_id(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
6228 fra
.me
.REG
[15] = CALL_syntax___typing___AClosureId___to_symbol(fra
.me
.REG
[15])(fra
.me
.REG
[15]);
6229 REGB3
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[15],fra
.me
.REG
[11]));
6230 if (UNTAG_Bool(REGB3
)) {
6232 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[11]);
6235 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
6236 if (UNTAG_Bool(REGB3
)) {
6239 /* syntax/icode_generation.nit:1185 */
6240 REGB3
= TAG_Bool(0);
6241 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB3
));
6242 if (UNTAG_Bool(REGB4
)) {
6244 /* ../lib/standard/kernel.nit:198 */
6245 REGB3
= TAG_Bool((REGB1
)==(REGB3
));
6246 /* syntax/icode_generation.nit:1185 */
6249 if (UNTAG_Bool(REGB4
)) {
6251 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 1185);
6253 /* syntax/icode_generation.nit:1186 */
6254 REGB4
= TAG_Bool(1);
6256 /* syntax/icode_generation.nit:1187 */
6257 fra
.me
.REG
[15] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
6258 REGB4
= TAG_Bool(fra
.me
.REG
[15]==NIT_NULL
);
6259 if (UNTAG_Bool(REGB4
)) {
6260 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1187);
6262 CALL_syntax___icode_generation___EscapableBlock___break_seq__eq(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[7]);
6263 /* syntax/icode_generation.nit:1188 */
6264 fra
.me
.REG
[15] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[14])(fra
.me
.REG
[14]);
6265 REGB4
= TAG_Bool(fra
.me
.REG
[15]==NIT_NULL
);
6266 if (UNTAG_Bool(REGB4
)) {
6267 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1188);
6269 CALL_syntax___icode_generation___EscapableBlock___break_value__eq(fra
.me
.REG
[15])(fra
.me
.REG
[15], fra
.me
.REG
[5]);
6270 /* syntax/icode_generation.nit:1189 */
6271 fra
.me
.REG
[14] = CALL_syntax___icode_generation___AClosureDef___generate_iclosuredef(fra
.me
.REG
[14])(fra
.me
.REG
[14], fra
.me
.REG
[1]);
6272 /* syntax/icode_generation.nit:1190 */
6273 REGB4
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6274 if (UNTAG_Bool(REGB4
)) {
6275 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1190);
6277 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[14]);
6279 /* ../lib/standard/collection/array.nit:274 */
6281 /* ../lib/standard/kernel.nit:238 */
6282 REGB4
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB4
));
6283 /* ../lib/standard/collection/array.nit:274 */
6286 /* ../lib/standard/collection/array.nit:272 */
6292 /* syntax/icode_generation.nit:1193 */
6293 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
6294 if (UNTAG_Bool(REGB1
)) {
6295 /* syntax/icode_generation.nit:1194 */
6296 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6297 if (UNTAG_Bool(REGB1
)) {
6298 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1194);
6300 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
6302 /* ../lib/standard/collection/array.nit:274 */
6304 /* ../lib/standard/kernel.nit:238 */
6305 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
6306 /* ../lib/standard/collection/array.nit:274 */
6309 /* ../lib/standard/collection/array.nit:272 */
6315 /* syntax/icode_generation.nit:1199 */
6316 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]);
6317 /* syntax/icode_generation.nit:1202 */
6318 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAbsAbsSendExpr___prop_signature(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6319 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMSignature___closures(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6320 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6321 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6322 if (UNTAG_Bool(REGB0
)) {
6323 /* syntax/icode_generation.nit:1203 */
6324 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6325 if (UNTAG_Bool(REGB0
)) {
6327 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6328 if (UNTAG_Bool(REGB1
)) {
6329 REGB1
= TAG_Bool(0);
6332 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
6336 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6337 if (UNTAG_Bool(REGB0
)) {
6338 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6339 if (UNTAG_Bool(REGB0
)) {
6341 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6342 if (UNTAG_Bool(REGB1
)) {
6343 REGB1
= TAG_Bool(0);
6346 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
6350 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6352 REGB1
= TAG_Bool(0);
6355 if (UNTAG_Bool(REGB0
)) {
6356 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5], fra
.me
.REG
[6]);
6358 /* syntax/icode_generation.nit:1204 */
6359 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6361 /* syntax/icode_generation.nit:1206 */
6362 fra
.me
.REG
[5] = fra
.me
.REG
[6];
6364 /* syntax/icode_generation.nit:1209 */
6365 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6366 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6367 if (UNTAG_Bool(REGB0
)) {
6368 /* syntax/icode_generation.nit:1210 */
6369 CALL_syntax___icode_generation___A2IContext___invoke_super_init_calls_after(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6371 /* syntax/icode_generation.nit:1212 */
6374 stack_frame_head
= fra
.me
.prev
;
6375 return fra
.me
.REG
[5];
6377 static const char LOCATE_syntax___icode_generation___ASendReassignExpr___generate_icode
[] = "icode_generation::ASendReassignExpr::(icode_generation::AExpr::generate_icode)";
6378 val_t
syntax___icode_generation___ASendReassignExpr___generate_icode(val_t p0
, val_t p1
){
6379 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
6382 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6383 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6385 fra
.me
.meth
= LOCATE_syntax___icode_generation___ASendReassignExpr___generate_icode
;
6386 fra
.me
.has_broke
= 0;
6387 fra
.me
.REG_size
= 8;
6388 fra
.me
.nitni_local_ref_head
= NULL
;
6389 fra
.me
.REG
[0] = NIT_NULL
;
6390 fra
.me
.REG
[1] = NIT_NULL
;
6391 fra
.me
.REG
[2] = NIT_NULL
;
6392 fra
.me
.REG
[3] = NIT_NULL
;
6393 fra
.me
.REG
[4] = NIT_NULL
;
6394 fra
.me
.REG
[5] = NIT_NULL
;
6395 fra
.me
.REG
[6] = NIT_NULL
;
6396 fra
.me
.REG
[7] = NIT_NULL
;
6399 /* syntax/icode_generation.nit:1217 */
6400 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6401 /* syntax/icode_generation.nit:1219 */
6402 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6403 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6404 /* syntax/icode_generation.nit:1220 */
6405 fra
.me
.REG
[4] = CALL_parser___parser_nodes___ASendExpr___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6406 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6407 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6408 if (UNTAG_Bool(REGB0
)) {
6409 CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6411 /* syntax/icode_generation.nit:1221 */
6412 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___init();
6413 /* syntax/icode_generation.nit:1222 */
6414 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
6415 /* syntax/icode_generation.nit:1223 */
6416 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ASendReassignExpr___read_prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6417 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6418 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*/;
6419 if (UNTAG_Bool(REGB0
)) {
6421 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1223);
6423 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]);
6424 /* syntax/icode_generation.nit:1225 */
6425 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ASendReassignExpr___read_prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6426 fra
.me
.REG
[3] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6427 fra
.me
.REG
[5] = CALL_syntax___syntax_base___ASendReassignExpr___read_prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6428 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6429 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
6430 if (UNTAG_Bool(REGB0
)) {
6431 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1225);
6433 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6434 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*/;
6435 if (UNTAG_Bool(REGB0
)) {
6437 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1225);
6439 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]);
6440 /* syntax/icode_generation.nit:1226 */
6441 fra
.me
.REG
[3] = CALL_parser___parser_nodes___AReassignFormExpr___n_value(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6442 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6443 /* syntax/icode_generation.nit:1227 */
6444 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6446 fra
.me
.REG
[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
6447 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[5]);
6448 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[3]);
6449 fra
.me
.REG
[7] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[6], fra
.me
.REG
[7]);
6450 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AReassignFormExpr___assign_method(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6451 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6452 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6453 if (UNTAG_Bool(REGB0
)) {
6454 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1227);
6456 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6457 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*/;
6458 if (UNTAG_Bool(REGB0
)) {
6460 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1227);
6462 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]);
6463 /* syntax/icode_generation.nit:1228 */
6464 fra
.me
.REG
[4] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6465 /* syntax/icode_generation.nit:1229 */
6466 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
6467 /* syntax/icode_generation.nit:1230 */
6468 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6469 fra
.me
.REG
[4] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[2], fra
.me
.REG
[4]);
6470 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6471 /* syntax/icode_generation.nit:1231 */
6472 fra
.me
.REG
[4] = NIT_NULL
;
6475 stack_frame_head
= fra
.me
.prev
;
6476 return fra
.me
.REG
[4];
6478 static const char LOCATE_syntax___icode_generation___ANewExpr___generate_icode
[] = "icode_generation::ANewExpr::(icode_generation::AExpr::generate_icode)";
6479 val_t
syntax___icode_generation___ANewExpr___generate_icode(val_t p0
, val_t p1
){
6480 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
6483 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6484 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6486 fra
.me
.meth
= LOCATE_syntax___icode_generation___ANewExpr___generate_icode
;
6487 fra
.me
.has_broke
= 0;
6488 fra
.me
.REG_size
= 5;
6489 fra
.me
.nitni_local_ref_head
= NULL
;
6490 fra
.me
.REG
[0] = NIT_NULL
;
6491 fra
.me
.REG
[1] = NIT_NULL
;
6492 fra
.me
.REG
[2] = NIT_NULL
;
6493 fra
.me
.REG
[3] = NIT_NULL
;
6494 fra
.me
.REG
[4] = NIT_NULL
;
6497 /* syntax/icode_generation.nit:1236 */
6498 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6499 /* syntax/icode_generation.nit:1238 */
6500 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
6501 /* syntax/icode_generation.nit:1239 */
6502 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6503 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6504 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*/;
6505 if (UNTAG_Bool(REGB0
)) {
6507 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1239);
6509 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]);
6510 /* syntax/icode_generation.nit:1240 */
6511 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6512 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AAbsSendExpr___prop(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6513 fra
.me
.REG
[3] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[4], fra
.me
.REG
[0], fra
.me
.REG
[3]);
6514 fra
.me
.REG
[2] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6515 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]);
6518 stack_frame_head
= fra
.me
.prev
;
6519 return fra
.me
.REG
[2];
6521 static const char LOCATE_syntax___icode_generation___AProxyExpr___generate_icode
[] = "icode_generation::AProxyExpr::(icode_generation::AExpr::generate_icode)";
6522 val_t
syntax___icode_generation___AProxyExpr___generate_icode(val_t p0
, val_t p1
){
6523 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
6525 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6526 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6528 fra
.me
.meth
= LOCATE_syntax___icode_generation___AProxyExpr___generate_icode
;
6529 fra
.me
.has_broke
= 0;
6530 fra
.me
.REG_size
= 2;
6531 fra
.me
.nitni_local_ref_head
= NULL
;
6532 fra
.me
.REG
[0] = NIT_NULL
;
6533 fra
.me
.REG
[1] = NIT_NULL
;
6536 /* syntax/icode_generation.nit:1247 */
6537 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6538 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6541 stack_frame_head
= fra
.me
.prev
;
6542 return fra
.me
.REG
[0];
6544 static const char LOCATE_syntax___icode_generation___AOnceExpr___generate_icode
[] = "icode_generation::AOnceExpr::(icode_generation::AExpr::generate_icode)";
6545 val_t
syntax___icode_generation___AOnceExpr___generate_icode(val_t p0
, val_t p1
){
6546 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
6548 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6549 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6551 fra
.me
.meth
= LOCATE_syntax___icode_generation___AOnceExpr___generate_icode
;
6552 fra
.me
.has_broke
= 0;
6553 fra
.me
.REG_size
= 5;
6554 fra
.me
.nitni_local_ref_head
= NULL
;
6555 fra
.me
.REG
[0] = NIT_NULL
;
6556 fra
.me
.REG
[1] = NIT_NULL
;
6557 fra
.me
.REG
[2] = NIT_NULL
;
6558 fra
.me
.REG
[3] = NIT_NULL
;
6559 fra
.me
.REG
[4] = NIT_NULL
;
6562 /* syntax/icode_generation.nit:1254 */
6563 fra
.me
.REG
[2] = NEW_IOnce_icode___icode_base___IOnce___init();
6564 /* syntax/icode_generation.nit:1255 */
6565 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AExpr___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6566 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]);
6567 /* syntax/icode_generation.nit:1256 */
6568 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6569 /* syntax/icode_generation.nit:1257 */
6570 fra
.me
.REG
[2] = CALL_icode___icode_base___IOnce___body(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6571 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
6572 /* syntax/icode_generation.nit:1259 */
6573 fra
.me
.REG
[0] = CALL_parser___parser_nodes___AProxyExpr___n_expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6574 fra
.me
.REG
[0] = CALL_syntax___icode_generation___A2IContext___generate_expr(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
6575 /* syntax/icode_generation.nit:1260 */
6576 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[0]);
6577 /* syntax/icode_generation.nit:1262 */
6578 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6579 /* syntax/icode_generation.nit:1263 */
6582 stack_frame_head
= fra
.me
.prev
;
6583 return fra
.me
.REG
[3];
6585 static const char LOCATE_syntax___icode_generation___AClosureDef___generate_iclosuredef
[] = "icode_generation::AClosureDef::generate_iclosuredef";
6586 val_t
syntax___icode_generation___AClosureDef___generate_iclosuredef(val_t p0
, val_t p1
){
6587 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
6595 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6596 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6598 fra
.me
.meth
= LOCATE_syntax___icode_generation___AClosureDef___generate_iclosuredef
;
6599 fra
.me
.has_broke
= 0;
6600 fra
.me
.REG_size
= 7;
6601 fra
.me
.nitni_local_ref_head
= NULL
;
6602 fra
.me
.REG
[0] = NIT_NULL
;
6603 fra
.me
.REG
[1] = NIT_NULL
;
6604 fra
.me
.REG
[2] = NIT_NULL
;
6605 fra
.me
.REG
[3] = NIT_NULL
;
6606 fra
.me
.REG
[4] = NIT_NULL
;
6607 fra
.me
.REG
[5] = NIT_NULL
;
6608 fra
.me
.REG
[6] = NIT_NULL
;
6611 /* syntax/icode_generation.nit:1271 */
6612 fra
.me
.REG
[2] = fra
.me
.REG
[0];
6613 /* syntax/icode_generation.nit:1274 */
6614 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
6615 /* syntax/icode_generation.nit:1275 */
6616 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6617 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6618 /* syntax/icode_generation.nit:1276 */
6620 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6621 /* ../lib/standard/kernel.nit:355 */
6623 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6624 if (UNTAG_Bool(REGB2
)) {
6626 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6628 /* ../lib/standard/kernel.nit:235 */
6629 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6630 /* ../lib/standard/kernel.nit:355 */
6631 if (UNTAG_Bool(REGB2
)) {
6632 /* syntax/icode_generation.nit:1276 */
6634 /* syntax/icode_generation.nit:1277 */
6635 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], REGB2
);
6636 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6637 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
6638 /* ../lib/standard/kernel.nit:357 */
6640 /* ../lib/standard/kernel.nit:238 */
6641 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
6642 /* ../lib/standard/kernel.nit:357 */
6645 /* ../lib/standard/kernel.nit:355 */
6650 /* syntax/icode_generation.nit:1279 */
6651 fra
.me
.REG
[5] = NIT_NULL
;
6652 /* syntax/icode_generation.nit:1280 */
6653 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6654 /* syntax/icode_generation.nit:1281 */
6655 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6656 if (UNTAG_Bool(REGB0
)) {
6658 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6659 if (UNTAG_Bool(REGB1
)) {
6660 REGB1
= TAG_Bool(0);
6663 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
6667 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
6668 if (UNTAG_Bool(REGB0
)) {
6669 /* syntax/icode_generation.nit:1282 */
6670 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6671 fra
.me
.REG
[5] = fra
.me
.REG
[4];
6673 /* syntax/icode_generation.nit:1285 */
6674 fra
.me
.REG
[5] = NEW_IClosureDef_icode___icode_base___IClosureDef___init(fra
.me
.REG
[3], fra
.me
.REG
[5]);
6675 /* syntax/icode_generation.nit:1286 */
6676 fra
.me
.REG
[3] = CALL_parser___parser_nodes___ANode___location(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6677 CALL_icode___icode_base___IRoutine___location__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
6678 /* syntax/icode_generation.nit:1289 */
6679 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6680 /* syntax/icode_generation.nit:1290 */
6681 fra
.me
.REG
[4] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6682 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6683 /* syntax/icode_generation.nit:1291 */
6684 fra
.me
.REG
[4] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6685 fra
.me
.REG
[6] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6686 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6687 if (UNTAG_Bool(REGB0
)) {
6688 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1291);
6690 CALL_syntax___icode_generation___EscapableBlock___continue_seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
6691 /* syntax/icode_generation.nit:1292 */
6692 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6693 fra
.me
.REG
[4] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6694 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6695 if (UNTAG_Bool(REGB0
)) {
6696 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1292);
6698 CALL_syntax___icode_generation___EscapableBlock___continue_value__eq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4]);
6699 /* syntax/icode_generation.nit:1295 */
6701 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AClosureDef___variables(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6702 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6703 if (UNTAG_Bool(REGB1
)) {
6704 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1295);
6706 /* ../lib/standard/collection/array.nit:24 */
6707 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6708 if (UNTAG_Bool(REGB1
)) {
6710 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
6712 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6713 /* ../lib/standard/kernel.nit:355 */
6715 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
6716 if (UNTAG_Bool(REGB2
)) {
6718 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6720 /* ../lib/standard/kernel.nit:235 */
6721 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
6722 /* ../lib/standard/kernel.nit:355 */
6723 if (UNTAG_Bool(REGB2
)) {
6724 /* syntax/icode_generation.nit:1295 */
6726 /* syntax/icode_generation.nit:1296 */
6727 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AClosureDef___variables(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6728 REGB3
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6729 if (UNTAG_Bool(REGB3
)) {
6730 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1296);
6732 /* ../lib/standard/collection/array.nit:278 */
6734 /* ../lib/standard/collection/array.nit:280 */
6736 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
6737 if (UNTAG_Bool(REGB5
)) {
6739 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6741 /* ../lib/standard/kernel.nit:236 */
6742 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
6743 /* ../lib/standard/collection/array.nit:280 */
6744 if (UNTAG_Bool(REGB4
)) {
6745 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
6746 if (UNTAG_Bool(REGB4
)) {
6748 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
6750 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
6751 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
6752 if (UNTAG_Bool(REGB5
)) {
6754 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
6756 /* ../lib/standard/kernel.nit:235 */
6757 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
6759 /* ../lib/standard/collection/array.nit:280 */
6760 REGB5
= TAG_Bool(0);
6763 if (UNTAG_Bool(REGB4
)) {
6765 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
6767 /* ../lib/standard/collection/array.nit:281 */
6768 fra
.me
.REG
[4] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
6769 REGB4
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
6770 if (UNTAG_Bool(REGB4
)) {
6771 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
6773 /* ../lib/standard/collection/array.nit:724 */
6774 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB3
)];
6775 /* ../lib/standard/collection/array.nit:281 */
6778 /* syntax/icode_generation.nit:1296 */
6779 fra
.me
.REG
[4] = CALL_syntax___icode_generation___A2IContext___variable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
6780 /* syntax/icode_generation.nit:1297 */
6781 fra
.me
.REG
[6] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
6782 fra
.me
.REG
[6] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[6])(fra
.me
.REG
[6], REGB2
);
6783 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4], fra
.me
.REG
[6]);
6784 /* ../lib/standard/kernel.nit:357 */
6786 /* ../lib/standard/kernel.nit:238 */
6787 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
6788 /* ../lib/standard/kernel.nit:357 */
6791 /* ../lib/standard/kernel.nit:355 */
6796 /* syntax/icode_generation.nit:1300 */
6797 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6798 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6799 /* syntax/icode_generation.nit:1303 */
6800 fra
.me
.REG
[6] = CALL_syntax___syntax_base___AClosureDef___closure(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6801 REGB0
= CALL_metamodel___static_type___MMClosure___is_break(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6802 if (UNTAG_Bool(REGB0
)) {
6803 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6804 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6805 if (UNTAG_Bool(REGB0
)) {
6806 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1303);
6808 fra
.me
.REG
[6] = CALL_syntax___icode_generation___EscapableBlock___break_value(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6809 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6810 if (UNTAG_Bool(REGB0
)) {
6812 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6813 if (UNTAG_Bool(REGB1
)) {
6814 REGB1
= TAG_Bool(0);
6817 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
6822 REGB1
= TAG_Bool(0);
6825 if (UNTAG_Bool(REGB0
)) {
6826 /* syntax/icode_generation.nit:1304 */
6827 fra
.me
.REG
[6] = CALL_syntax___typing___AClosureDef___escapable(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
6828 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6829 if (UNTAG_Bool(REGB0
)) {
6830 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1304);
6832 fra
.me
.REG
[6] = CALL_syntax___icode_generation___EscapableBlock___break_seq(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6833 REGB0
= TAG_Bool(fra
.me
.REG
[6]!=NIT_NULL
);
6834 if (UNTAG_Bool(REGB0
)) {
6836 nit_abort("Cast failed", NULL
, LOCATE_syntax___icode_generation
, 1304);
6838 CALL_icode___icode_builder___ICodeBuilder___add_escape(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6840 /* syntax/icode_generation.nit:1307 */
6841 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6842 /* syntax/icode_generation.nit:1308 */
6843 ATTR_syntax___icode_generation___AClosureDef____iclosure_def(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
6844 /* syntax/icode_generation.nit:1309 */
6847 stack_frame_head
= fra
.me
.prev
;
6848 return fra
.me
.REG
[5];
6850 static const char LOCATE_syntax___icode_generation___AClosureCallExpr___generate_icode
[] = "icode_generation::AClosureCallExpr::(icode_generation::AExpr::generate_icode)";
6851 val_t
syntax___icode_generation___AClosureCallExpr___generate_icode(val_t p0
, val_t p1
){
6852 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
6857 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
6858 fra
.me
.file
= LOCATE_syntax___icode_generation
;
6860 fra
.me
.meth
= LOCATE_syntax___icode_generation___AClosureCallExpr___generate_icode
;
6861 fra
.me
.has_broke
= 0;
6862 fra
.me
.REG_size
= 9;
6863 fra
.me
.nitni_local_ref_head
= NULL
;
6864 fra
.me
.REG
[0] = NIT_NULL
;
6865 fra
.me
.REG
[1] = NIT_NULL
;
6866 fra
.me
.REG
[2] = NIT_NULL
;
6867 fra
.me
.REG
[3] = NIT_NULL
;
6868 fra
.me
.REG
[4] = NIT_NULL
;
6869 fra
.me
.REG
[5] = NIT_NULL
;
6870 fra
.me
.REG
[6] = NIT_NULL
;
6871 fra
.me
.REG
[7] = NIT_NULL
;
6872 fra
.me
.REG
[8] = NIT_NULL
;
6875 /* syntax/icode_generation.nit:1317 */
6876 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___init();
6877 /* syntax/icode_generation.nit:1318 */
6878 fra
.me
.REG
[3] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6879 fra
.me
.REG
[3] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6880 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
6881 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]);
6882 /* syntax/icode_generation.nit:1321 */
6883 fra
.me
.REG
[3] = CALL_syntax___icode_generation___A2IContext___closurevariables(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6884 fra
.me
.REG
[4] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6885 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
6886 /* syntax/icode_generation.nit:1322 */
6887 fra
.me
.REG
[3] = NEW_IClosCall_icode___icode_base___IClosCall___init(fra
.me
.REG
[4], fra
.me
.REG
[2]);
6888 /* syntax/icode_generation.nit:1323 */
6889 fra
.me
.REG
[5] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6890 /* syntax/icode_generation.nit:1326 */
6891 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6892 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6894 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
6895 if (UNTAG_Bool(REGB2
)) {
6897 /* ../lib/standard/kernel.nit:230 */
6898 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
6899 /* syntax/icode_generation.nit:1326 */
6902 if (UNTAG_Bool(REGB2
)) {
6903 /* syntax/icode_generation.nit:1327 */
6904 fra
.me
.REG
[6] = NEW_ISeq_icode___icode_base___ISeq___init();
6905 /* syntax/icode_generation.nit:1328 */
6906 CALL_icode___icode_base___IClosCall___break_seq__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
6907 /* syntax/icode_generation.nit:1329 */
6908 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6909 /* syntax/icode_generation.nit:1330 */
6910 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureCallExpr___n_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6911 fra
.me
.REG
[6] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6912 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6913 if (UNTAG_Bool(REGB2
)) {
6914 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1330);
6916 fra
.me
.REG
[6] = CALL_parser___parser_nodes___AClosureDef___n_expr(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6917 CALL_syntax___icode_generation___A2IContext___generate_stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6918 /* syntax/icode_generation.nit:1331 */
6919 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
6921 /* syntax/icode_generation.nit:1335 */
6922 fra
.me
.REG
[6] = NIT_NULL
;
6923 /* syntax/icode_generation.nit:1336 */
6924 fra
.me
.REG
[7] = CALL_icode___icode_base___IClosureDecl___default(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
6925 /* syntax/icode_generation.nit:1337 */
6926 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6927 if (UNTAG_Bool(REGB2
)) {
6929 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6930 if (UNTAG_Bool(REGB1
)) {
6931 REGB1
= TAG_Bool(0);
6934 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
6938 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
6939 if (UNTAG_Bool(REGB2
)) {
6940 /* syntax/icode_generation.nit:1338 */
6941 fra
.me
.REG
[4] = NEW_IHasClos_icode___icode_base___IHasClos___init(fra
.me
.REG
[4]);
6942 fra
.me
.REG
[8] = CALL_syntax___icode_generation___A2IContext___visitor(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
6943 fra
.me
.REG
[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
6944 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]);
6945 fra
.me
.REG
[8] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[8]);
6946 fra
.me
.REG
[6] = fra
.me
.REG
[8];
6947 /* syntax/icode_generation.nit:1339 */
6948 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
6949 /* syntax/icode_generation.nit:1340 */
6950 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
6951 if (UNTAG_Bool(REGB2
)) {
6952 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1340);
6954 fra
.me
.REG
[8] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
6955 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[8]);
6957 /* syntax/icode_generation.nit:1344 */
6958 fra
.me
.REG
[8] = NIT_NULL
;
6959 /* syntax/icode_generation.nit:1345 */
6960 fra
.me
.REG
[0] = CALL_syntax___syntax_base___AClosureCallExpr___variable(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6961 fra
.me
.REG
[0] = CALL_syntax___syntax_base___ClosureVariable___closure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6962 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMClosure___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6963 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
6964 /* syntax/icode_generation.nit:1346 */
6965 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6966 if (UNTAG_Bool(REGB2
)) {
6968 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
6969 if (UNTAG_Bool(REGB1
)) {
6970 REGB1
= TAG_Bool(0);
6973 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
6977 if (UNTAG_Bool(REGB2
)) {
6978 /* syntax/icode_generation.nit:1347 */
6979 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
6981 /* syntax/icode_generation.nit:1349 */
6982 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]);
6983 fra
.me
.REG
[8] = fra
.me
.REG
[3];
6985 /* syntax/icode_generation.nit:1353 */
6986 fra
.me
.REG
[3] = NIT_NULL
;
6987 /* syntax/icode_generation.nit:1354 */
6988 REGB2
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6989 if (UNTAG_Bool(REGB2
)) {
6991 REGB1
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
6992 if (UNTAG_Bool(REGB1
)) {
6993 REGB1
= TAG_Bool(0);
6996 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
7000 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
7001 if (UNTAG_Bool(REGB2
)) {
7002 /* syntax/icode_generation.nit:1355 */
7003 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
7004 if (UNTAG_Bool(REGB2
)) {
7006 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
7007 if (UNTAG_Bool(REGB1
)) {
7008 REGB1
= TAG_Bool(0);
7011 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
7015 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
7016 if (UNTAG_Bool(REGB2
)) {
7018 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 1355);
7020 /* syntax/icode_generation.nit:1356 */
7021 REGB2
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
7022 if (UNTAG_Bool(REGB2
)) {
7024 REGB1
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
7025 if (UNTAG_Bool(REGB1
)) {
7026 REGB1
= TAG_Bool(0);
7029 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], NIT_NULL
);
7033 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
7034 if (UNTAG_Bool(REGB2
)) {
7035 /* syntax/icode_generation.nit:1357 */
7036 REGB2
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
7037 if (UNTAG_Bool(REGB2
)) {
7039 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
7040 if (UNTAG_Bool(REGB1
)) {
7041 REGB1
= TAG_Bool(0);
7044 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
7048 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
7049 if (UNTAG_Bool(REGB2
)) {
7051 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 1357);
7053 /* syntax/icode_generation.nit:1358 */
7054 fra
.me
.REG
[0] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
7055 fra
.me
.REG
[3] = fra
.me
.REG
[0];
7056 /* syntax/icode_generation.nit:1359 */
7057 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[8]);
7059 /* syntax/icode_generation.nit:1361 */
7060 REGB2
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
7061 if (UNTAG_Bool(REGB2
)) {
7062 nit_abort("Reciever is null", NULL
, LOCATE_syntax___icode_generation
, 1361);
7064 fra
.me
.REG
[6] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
7065 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
7066 /* syntax/icode_generation.nit:1362 */
7067 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
);
7068 /* syntax/icode_generation.nit:1363 */
7069 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
7070 if (UNTAG_Bool(REGB2
)) {
7072 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
7073 if (UNTAG_Bool(REGB1
)) {
7074 REGB1
= TAG_Bool(0);
7077 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
7081 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
7082 if (UNTAG_Bool(REGB2
)) {
7083 /* syntax/icode_generation.nit:1364 */
7084 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7085 if (UNTAG_Bool(REGB2
)) {
7087 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
7088 if (UNTAG_Bool(REGB1
)) {
7089 REGB1
= TAG_Bool(0);
7092 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
7096 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
7097 if (UNTAG_Bool(REGB2
)) {
7099 nit_abort("Assert failed", NULL
, LOCATE_syntax___icode_generation
, 1364);
7101 /* syntax/icode_generation.nit:1365 */
7102 CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3], fra
.me
.REG
[2]);
7104 /* syntax/icode_generation.nit:1367 */
7105 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
7107 /* syntax/icode_generation.nit:1369 */
7108 fra
.me
.REG
[3] = fra
.me
.REG
[8];
7110 /* syntax/icode_generation.nit:1371 */
7113 stack_frame_head
= fra
.me
.prev
;
7114 return fra
.me
.REG
[3];
7116 static const char LOCATE_syntax___icode_generation___ADebugTypeExpr___generate_icode
[] = "icode_generation::ADebugTypeExpr::(icode_generation::AExpr::generate_icode)";
7117 val_t
syntax___icode_generation___ADebugTypeExpr___generate_icode(val_t p0
, val_t p1
){
7118 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
7120 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7121 fra
.me
.file
= LOCATE_syntax___icode_generation
;
7123 fra
.me
.meth
= LOCATE_syntax___icode_generation___ADebugTypeExpr___generate_icode
;
7124 fra
.me
.has_broke
= 0;
7125 fra
.me
.REG_size
= 2;
7126 fra
.me
.nitni_local_ref_head
= NULL
;
7127 fra
.me
.REG
[0] = NIT_NULL
;
7128 fra
.me
.REG
[1] = NIT_NULL
;
7131 /* syntax/icode_generation.nit:1379 */
7132 fra
.me
.REG
[1] = NIT_NULL
;
7135 stack_frame_head
= fra
.me
.prev
;
7136 return fra
.me
.REG
[1];