1 /* This C file is generated by NIT to compile module program. */
2 #include "program._sep.h"
3 static const char LOCATE_program___ToolContext___global
[] = "program::ToolContext::global";
4 val_t
program___ToolContext___global(val_t p0
){
5 struct {struct stack_frame_t me
;} fra
;
8 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9 fra
.me
.file
= LOCATE_program
;
11 fra
.me
.meth
= LOCATE_program___ToolContext___global
;
14 fra
.me
.nitni_local_ref_head
= NULL
;
15 fra
.me
.REG
[0] = NIT_NULL
;
18 REGB0
= TAG_Bool(ATTR_program___ToolContext____global(fra
.me
.REG
[0])!=NIT_NULL
);
19 if (UNTAG_Bool(REGB0
)) {
21 nit_abort("Uninitialized attribute %s", "_global", LOCATE_program
, 26);
23 REGB0
= ATTR_program___ToolContext____global(fra
.me
.REG
[0]);
24 stack_frame_head
= fra
.me
.prev
;
27 static const char LOCATE_program___ToolContext___global__eq
[] = "program::ToolContext::global=";
28 void program___ToolContext___global__eq(val_t p0
, val_t p1
){
29 struct {struct stack_frame_t me
;} fra
;
32 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
33 fra
.me
.file
= LOCATE_program
;
35 fra
.me
.meth
= LOCATE_program___ToolContext___global__eq
;
38 fra
.me
.nitni_local_ref_head
= NULL
;
39 fra
.me
.REG
[0] = NIT_NULL
;
43 ATTR_program___ToolContext____global(fra
.me
.REG
[0]) = REGB0
;
44 stack_frame_head
= fra
.me
.prev
;
47 static const char LOCATE_program___ToolContext___use_SFT_optimization__eq
[] = "program::ToolContext::use_SFT_optimization=";
48 void program___ToolContext___use_SFT_optimization__eq(val_t p0
, val_t p1
){
49 struct {struct stack_frame_t me
;} fra
;
52 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
53 fra
.me
.file
= LOCATE_program
;
55 fra
.me
.meth
= LOCATE_program___ToolContext___use_SFT_optimization__eq
;
58 fra
.me
.nitni_local_ref_head
= NULL
;
59 fra
.me
.REG
[0] = NIT_NULL
;
63 ATTR_program___ToolContext____use_SFT_optimization(fra
.me
.REG
[0]) = REGB0
;
64 stack_frame_head
= fra
.me
.prev
;
67 static const char LOCATE_program___ToolContext___use_SFT_optimization
[] = "program::ToolContext::use_SFT_optimization";
68 val_t
program___ToolContext___use_SFT_optimization(val_t p0
){
69 struct {struct stack_frame_t me
;} fra
;
73 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
74 fra
.me
.file
= LOCATE_program
;
76 fra
.me
.meth
= LOCATE_program___ToolContext___use_SFT_optimization
;
79 fra
.me
.nitni_local_ref_head
= NULL
;
80 fra
.me
.REG
[0] = NIT_NULL
;
83 REGB0
= CALL_program___ToolContext___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
84 if (UNTAG_Bool(REGB0
)) {
85 REGB0
= TAG_Bool(ATTR_program___ToolContext____use_SFT_optimization(fra
.me
.REG
[0])!=NIT_NULL
);
86 if (UNTAG_Bool(REGB0
)) {
88 nit_abort("Uninitialized attribute %s", "_use_SFT_optimization", LOCATE_program
, 31);
90 REGB0
= ATTR_program___ToolContext____use_SFT_optimization(fra
.me
.REG
[0]);
97 stack_frame_head
= fra
.me
.prev
;
100 static const char LOCATE_program___Program___tc
[] = "program::Program::tc";
101 val_t
program___Program___tc(val_t p0
){
102 struct {struct stack_frame_t me
;} fra
;
105 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
106 fra
.me
.file
= LOCATE_program
;
108 fra
.me
.meth
= LOCATE_program___Program___tc
;
109 fra
.me
.has_broke
= 0;
111 fra
.me
.nitni_local_ref_head
= NULL
;
112 fra
.me
.REG
[0] = NIT_NULL
;
115 REGB0
= TAG_Bool(ATTR_program___Program____tc(fra
.me
.REG
[0])!=NIT_NULL
);
116 if (UNTAG_Bool(REGB0
)) {
118 nit_abort("Uninitialized attribute %s", "_tc", LOCATE_program
, 37);
120 fra
.me
.REG
[0] = ATTR_program___Program____tc(fra
.me
.REG
[0]);
121 stack_frame_head
= fra
.me
.prev
;
122 return fra
.me
.REG
[0];
124 static const char LOCATE_program___Program___main_module
[] = "program::Program::main_module";
125 val_t
program___Program___main_module(val_t p0
){
126 struct {struct stack_frame_t me
;} fra
;
129 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
130 fra
.me
.file
= LOCATE_program
;
132 fra
.me
.meth
= LOCATE_program___Program___main_module
;
133 fra
.me
.has_broke
= 0;
135 fra
.me
.nitni_local_ref_head
= NULL
;
136 fra
.me
.REG
[0] = NIT_NULL
;
139 REGB0
= TAG_Bool(ATTR_program___Program____main_module(fra
.me
.REG
[0])!=NIT_NULL
);
140 if (UNTAG_Bool(REGB0
)) {
142 nit_abort("Uninitialized attribute %s", "_main_module", LOCATE_program
, 41);
144 fra
.me
.REG
[0] = ATTR_program___Program____main_module(fra
.me
.REG
[0]);
145 stack_frame_head
= fra
.me
.prev
;
146 return fra
.me
.REG
[0];
148 static const char LOCATE_program___Program___main_method
[] = "program::Program::main_method";
149 val_t
program___Program___main_method(val_t p0
){
150 struct {struct stack_frame_t me
;} fra
;
152 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
153 fra
.me
.file
= LOCATE_program
;
155 fra
.me
.meth
= LOCATE_program___Program___main_method
;
156 fra
.me
.has_broke
= 0;
158 fra
.me
.nitni_local_ref_head
= NULL
;
159 fra
.me
.REG
[0] = NIT_NULL
;
162 fra
.me
.REG
[0] = ATTR_program___Program____main_method(fra
.me
.REG
[0]);
163 stack_frame_head
= fra
.me
.prev
;
164 return fra
.me
.REG
[0];
166 static const char LOCATE_program___Program___main_class
[] = "program::Program::main_class";
167 val_t
program___Program___main_class(val_t p0
){
168 struct {struct stack_frame_t me
;} fra
;
170 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
171 fra
.me
.file
= LOCATE_program
;
173 fra
.me
.meth
= LOCATE_program___Program___main_class
;
174 fra
.me
.has_broke
= 0;
176 fra
.me
.nitni_local_ref_head
= NULL
;
177 fra
.me
.REG
[0] = NIT_NULL
;
180 fra
.me
.REG
[0] = ATTR_program___Program____main_class(fra
.me
.REG
[0]);
181 stack_frame_head
= fra
.me
.prev
;
182 return fra
.me
.REG
[0];
184 static const char LOCATE_program___Program___finish_processing_classes
[] = "program::Program::finish_processing_classes";
185 void program___Program___finish_processing_classes(val_t p0
){
186 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
191 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
192 fra
.me
.file
= LOCATE_program
;
194 fra
.me
.meth
= LOCATE_program___Program___finish_processing_classes
;
195 fra
.me
.has_broke
= 0;
197 fra
.me
.nitni_local_ref_head
= NULL
;
198 fra
.me
.REG
[0] = NIT_NULL
;
199 fra
.me
.REG
[1] = NIT_NULL
;
200 fra
.me
.REG
[2] = NIT_NULL
;
203 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___init();
205 fra
.me
.REG
[0] = CALL_program___Program___main_module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
206 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
207 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[0])(fra
.me
.REG
[0], (&(fra
.me
)), ((fun_t
)OC_program___Program___finish_processing_classes_1
));
208 /* ../lib/standard/collection/array.nit:270 */
210 /* ../lib/standard/collection/array.nit:271 */
211 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
212 if (UNTAG_Bool(REGB1
)) {
214 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 271);
216 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1]);
217 /* ../lib/standard/collection/array.nit:272 */
218 fra
.me
.REG
[0] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[1]);
219 /* ../lib/standard/collection/array.nit:273 */
221 /* ../lib/standard/collection/array.nit:24 */
222 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
223 if (UNTAG_Bool(REGB1
)) {
225 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
227 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1]);
228 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
229 if (UNTAG_Bool(REGB2
)) {
231 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
233 /* ../lib/standard/kernel.nit:242 */
234 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
235 /* ../lib/standard/collection/array.nit:273 */
236 if (UNTAG_Bool(REGB1
)) {
237 /* ../lib/standard/collection/array.nit:274 */
238 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
239 if (UNTAG_Bool(REGB1
)) {
240 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 274);
242 /* ../lib/standard/collection/array.nit:725 */
243 fra
.me
.REG
[2] = ((Nit_NativeArray
)fra
.me
.REG
[0])->val
[UNTAG_Int(REGB0
)];
245 CALL_metamodel___inheritance___MMLocalClass___compute_ancestors(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
246 /* ../lib/standard/collection/array.nit:275 */
248 /* ../lib/standard/kernel.nit:245 */
249 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
250 /* ../lib/standard/collection/array.nit:275 */
253 /* ../lib/standard/collection/array.nit:273 */
258 stack_frame_head
= fra
.me
.prev
;
261 void OC_program___Program___finish_processing_classes_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
262 struct {struct stack_frame_t me
;} fra
;
265 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
266 fra
.me
.file
= LOCATE_program
;
268 fra
.me
.meth
= LOCATE_program___Program___finish_processing_classes
;
269 fra
.me
.has_broke
= 0;
271 fra
.me
.nitni_local_ref_head
= NULL
;
272 fra
.me
.REG
[0] = NIT_NULL
;
273 fra
.me
.closure_ctx
= closctx_param
;
274 fra
.me
.closure_funs
= CREG
;
278 CALL_metamodel___inheritance___MMLocalClass___compute_super_classes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
280 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
281 stack_frame_head
= fra
.me
.prev
;
284 static const char LOCATE_program___Program___compute_main_method
[] = "program::Program::compute_main_method";
285 void program___Program___compute_main_method(val_t p0
){
286 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
289 static val_t once_value_1
; /* Once value */
290 static val_t once_value_2
; /* Once value */
291 static val_t once_value_4
; /* Once value */
292 static val_t once_value_5
; /* Once value */
293 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
294 fra
.me
.file
= LOCATE_program
;
296 fra
.me
.meth
= LOCATE_program___Program___compute_main_method
;
297 fra
.me
.has_broke
= 0;
299 fra
.me
.nitni_local_ref_head
= NULL
;
300 fra
.me
.REG
[0] = NIT_NULL
;
301 fra
.me
.REG
[1] = NIT_NULL
;
302 fra
.me
.REG
[2] = NIT_NULL
;
307 fra
.me
.REG
[1] = BOX_NativeString("Sys");
309 fra
.me
.REG
[1] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
310 once_value_2
= fra
.me
.REG
[1];
311 register_static_object(&once_value_2
);
312 } else fra
.me
.REG
[1] = once_value_2
;
313 fra
.me
.REG
[1] = fra
.me
.REG
[1];
314 fra
.me
.REG
[1] = CALL_symbol___String___to_symbol(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
315 once_value_1
= fra
.me
.REG
[1];
316 register_static_object(&once_value_1
);
317 } else fra
.me
.REG
[1] = once_value_1
;
318 fra
.me
.REG
[1] = fra
.me
.REG
[1];
320 fra
.me
.REG
[2] = CALL_program___Program___main_module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
321 REGB0
= CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
322 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
323 if (UNTAG_Bool(REGB0
)) {
327 fra
.me
.REG
[2] = CALL_program___Program___main_module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
328 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
332 fra
.me
.REG
[2] = BOX_NativeString("main");
334 fra
.me
.REG
[2] = CALL_standard___string___NativeString___to_s_with_length(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
335 once_value_5
= fra
.me
.REG
[2];
336 register_static_object(&once_value_5
);
337 } else fra
.me
.REG
[2] = once_value_5
;
338 fra
.me
.REG
[2] = fra
.me
.REG
[2];
339 fra
.me
.REG
[2] = CALL_symbol___String___to_symbol(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
340 once_value_4
= fra
.me
.REG
[2];
341 register_static_object(&once_value_4
);
342 } else fra
.me
.REG
[2] = once_value_4
;
343 fra
.me
.REG
[2] = fra
.me
.REG
[2];
345 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
346 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
347 if (UNTAG_Bool(REGB0
)) {
351 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
352 ATTR_program___Program____main_method(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
354 ATTR_program___Program____main_class(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
356 stack_frame_head
= fra
.me
.prev
;
359 static const char LOCATE_program___Program___generate_allocation_iroutines
[] = "program::Program::generate_allocation_iroutines";
360 void program___Program___generate_allocation_iroutines(val_t p0
){
361 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
363 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
364 fra
.me
.file
= LOCATE_program
;
366 fra
.me
.meth
= LOCATE_program___Program___generate_allocation_iroutines
;
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
;
372 fra
.me
.REG
[2] = NIT_NULL
;
373 fra
.me
.REG
[3] = NIT_NULL
;
374 fra
.me
.REG
[4] = NIT_NULL
;
375 fra
.me
.REG
[5] = NIT_NULL
;
376 fra
.me
.REG
[6] = NIT_NULL
;
379 fra
.me
.REG
[1] = fra
.me
.REG
[0];
381 fra
.me
.REG
[2] = CALL_program___Program___main_module(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
382 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
383 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[2])(fra
.me
.REG
[2], (&(fra
.me
)), ((fun_t
)OC_program___Program___generate_allocation_iroutines_1
));
384 stack_frame_head
= fra
.me
.prev
;
387 void OC_program___Program___generate_allocation_iroutines_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
388 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
394 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
395 fra
.me
.file
= LOCATE_program
;
397 fra
.me
.meth
= LOCATE_program___Program___generate_allocation_iroutines
;
398 fra
.me
.has_broke
= 0;
400 fra
.me
.nitni_local_ref_head
= NULL
;
401 fra
.me
.REG
[0] = NIT_NULL
;
402 fra
.me
.REG
[1] = NIT_NULL
;
403 fra
.me
.REG
[2] = NIT_NULL
;
404 fra
.me
.REG
[3] = NIT_NULL
;
405 fra
.me
.closure_ctx
= closctx_param
;
406 fra
.me
.closure_funs
= CREG
;
409 closctx
->REG
[2] = fra
.me
.REG
[0];
411 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(closctx
->REG
[2])(closctx
->REG
[2]);
412 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
413 if (UNTAG_Bool(REGB0
)) {
416 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(closctx
->REG
[2])(closctx
->REG
[2]);
417 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
420 if (UNTAG_Bool(REGB0
)) {
424 fra
.me
.REG
[0] = CALL_primitive_info___MMLocalClass___primitive_info(closctx
->REG
[2])(closctx
->REG
[2]);
426 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
427 if (UNTAG_Bool(REGB0
)) {
429 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
430 if (UNTAG_Bool(REGB1
)) {
434 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
438 if (UNTAG_Bool(REGB0
)) {
440 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMLocalClass___get_type(closctx
->REG
[2])(closctx
->REG
[2]);
441 fra
.me
.REG
[0] = NEW_IRegister_icode___icode_base___IRegister___init(fra
.me
.REG
[0]);
442 closctx
->REG
[3] = fra
.me
.REG
[0];
445 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
446 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[3]);
447 closctx
->REG
[4] = fra
.me
.REG
[0];
449 fra
.me
.REG
[0] = NEW_IRoutine_icode___icode_base___IRoutine___init(closctx
->REG
[4], NIT_NULL
);
451 fra
.me
.REG
[1] = CALL_program___Program___main_module(closctx
->REG
[1])(closctx
->REG
[1]);
452 fra
.me
.REG
[1] = NEW_ICodeBuilder_icode___icode_builder___ICodeBuilder___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
453 closctx
->REG
[5] = fra
.me
.REG
[1];
455 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(closctx
->REG
[2])(closctx
->REG
[2]);
456 fra
.me
.REG
[1] = CALL_metamodel___partial_order___PartialOrderElement___linear_extension(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
457 fra
.me
.REG
[1] = CALL_standard___collection___array___AbstractArrayRead___reversed(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
458 /* ../lib/standard/collection/array.nit:270 */
460 /* ../lib/standard/collection/array.nit:271 */
461 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
462 if (UNTAG_Bool(REGB1
)) {
464 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 271);
466 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1]);
467 /* ../lib/standard/collection/array.nit:272 */
468 fra
.me
.REG
[2] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[1]);
469 /* ../lib/standard/collection/array.nit:273 */
471 /* ../lib/standard/collection/array.nit:24 */
472 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
473 if (UNTAG_Bool(REGB1
)) {
475 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
477 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1]);
478 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
479 if (UNTAG_Bool(REGB2
)) {
481 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
483 /* ../lib/standard/kernel.nit:242 */
484 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
485 /* ../lib/standard/collection/array.nit:273 */
486 if (UNTAG_Bool(REGB1
)) {
487 /* ../lib/standard/collection/array.nit:274 */
488 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
489 if (UNTAG_Bool(REGB1
)) {
490 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 274);
492 /* ../lib/standard/collection/array.nit:725 */
493 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[2])->val
[UNTAG_Int(REGB0
)];
495 closctx
->REG
[6] = fra
.me
.REG
[3];
497 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(closctx
->REG
[6])(closctx
->REG
[6]);
498 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[3])(fra
.me
.REG
[3], closctx
, ((fun_t
)OC_program___Program___generate_allocation_iroutines_3
));
499 /* ../lib/standard/collection/array.nit:275 */
501 /* ../lib/standard/kernel.nit:245 */
502 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
503 /* ../lib/standard/collection/array.nit:275 */
506 /* ../lib/standard/collection/array.nit:273 */
511 /* program.nit:110 */
512 CALL_program___MMLocalClass___init_var_iroutine__eq(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
513 /* program.nit:114 */
514 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMLocalClass___get_type(closctx
->REG
[2])(closctx
->REG
[2]);
515 fra
.me
.REG
[0] = NEW_IRegister_icode___icode_base___IRegister___init(fra
.me
.REG
[0]);
516 closctx
->REG
[5] = fra
.me
.REG
[0];
517 /* program.nit:115 */
519 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
520 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[5]);
521 /* program.nit:116 */
522 fra
.me
.REG
[0] = NEW_IRoutine_icode___icode_base___IRoutine___init(fra
.me
.REG
[0], NIT_NULL
);
523 /* program.nit:117 */
524 fra
.me
.REG
[2] = CALL_program___Program___main_module(closctx
->REG
[1])(closctx
->REG
[1]);
525 fra
.me
.REG
[2] = NEW_ICodeBuilder_icode___icode_builder___ICodeBuilder___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
526 closctx
->REG
[3] = fra
.me
.REG
[2];
527 /* program.nit:118 */
528 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(closctx
->REG
[2])(closctx
->REG
[2]);
529 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[2])(fra
.me
.REG
[2], closctx
, ((fun_t
)OC_program___Program___generate_allocation_iroutines_6
));
530 /* program.nit:127 */
531 CALL_program___MMLocalClass___checknew_iroutine__eq(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
532 /* program.nit:130 */
533 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(closctx
->REG
[2])(closctx
->REG
[2]);
534 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
, ((fun_t
)OC_program___Program___generate_allocation_iroutines_8
));
537 stack_frame_head
= fra
.me
.prev
;
540 void OC_program___Program___generate_allocation_iroutines_3(struct stack_frame_t
*closctx
, val_t p0
){
541 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
545 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
546 fra
.me
.file
= LOCATE_program
;
548 fra
.me
.meth
= LOCATE_program___Program___generate_allocation_iroutines
;
549 fra
.me
.has_broke
= 0;
551 fra
.me
.nitni_local_ref_head
= NULL
;
552 fra
.me
.REG
[0] = NIT_NULL
;
553 fra
.me
.REG
[1] = NIT_NULL
;
556 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
557 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],closctx
->REG
[6]));
558 if (UNTAG_Bool(REGB0
)) {
560 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], closctx
->REG
[6]);
563 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
564 if (UNTAG_Bool(REGB0
)) {
568 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
569 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___abstractmetamodel___MMAttribute
, ID_metamodel___abstractmetamodel___MMAttribute
)) /*cast MMAttribute*/;
570 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
571 if (UNTAG_Bool(REGB0
)) {
575 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
577 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
578 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
579 if (UNTAG_Bool(REGB0
)) {
580 nit_abort("Reciever is null", NULL
, LOCATE_program
, 99);
582 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
583 /* program.nit:100 */
584 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_metamodel___abstractmetamodel___MMAttribute
, ID_metamodel___abstractmetamodel___MMAttribute
)) /*cast MMAttribute*/;
585 if (UNTAG_Bool(REGB0
)) {
586 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
587 if (UNTAG_Bool(REGB0
)) {
589 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
590 if (UNTAG_Bool(REGB1
)) {
594 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
598 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
603 if (UNTAG_Bool(REGB0
)) {
604 /* program.nit:101 */
605 fra
.me
.REG
[1] = CALL_icode___icode_base___MMAttribute___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
606 /* program.nit:102 */
607 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
608 if (UNTAG_Bool(REGB0
)) {
610 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
611 if (UNTAG_Bool(REGB1
)) {
615 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
619 if (UNTAG_Bool(REGB0
)) {
622 /* program.nit:104 */
623 fra
.me
.REG
[1] = CALL_icode___icode_tools___ICodeBuilder___inline_routine(closctx
->REG
[5])(closctx
->REG
[5], fra
.me
.REG
[1], closctx
->REG
[4], NIT_NULL
);
624 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*/;
625 if (UNTAG_Bool(REGB0
)) {
627 nit_abort("Cast failed", NULL
, LOCATE_program
, 104);
629 /* program.nit:105 */
630 fra
.me
.REG
[1] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra
.me
.REG
[0], closctx
->REG
[3], fra
.me
.REG
[1]);
631 CALL_icode___icode_builder___ICodeBuilder___stmt(closctx
->REG
[5])(closctx
->REG
[5], fra
.me
.REG
[1]);
634 stack_frame_head
= fra
.me
.prev
;
637 void OC_program___Program___generate_allocation_iroutines_6(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
638 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
643 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
644 fra
.me
.file
= LOCATE_program
;
646 fra
.me
.meth
= LOCATE_program___Program___generate_allocation_iroutines
;
647 fra
.me
.has_broke
= 0;
649 fra
.me
.nitni_local_ref_head
= NULL
;
650 fra
.me
.REG
[0] = NIT_NULL
;
651 fra
.me
.REG
[1] = NIT_NULL
;
652 fra
.me
.closure_ctx
= closctx_param
;
653 fra
.me
.closure_funs
= CREG
;
656 /* program.nit:119 */
657 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
658 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___abstractmetamodel___MMAttribute
, ID_metamodel___abstractmetamodel___MMAttribute
)) /*cast MMAttribute*/;
659 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
660 if (UNTAG_Bool(REGB0
)) {
663 /* program.nit:120 */
664 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
665 /* program.nit:121 */
666 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
667 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
668 if (UNTAG_Bool(REGB0
)) {
669 nit_abort("Reciever is null", NULL
, LOCATE_program
, 121);
671 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
672 /* program.nit:122 */
673 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_metamodel___abstractmetamodel___MMAttribute
, ID_metamodel___abstractmetamodel___MMAttribute
)) /*cast MMAttribute*/;
674 if (UNTAG_Bool(REGB0
)) {
675 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
676 if (UNTAG_Bool(REGB0
)) {
678 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
679 if (UNTAG_Bool(REGB1
)) {
683 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
687 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
692 if (UNTAG_Bool(REGB0
)) {
693 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
694 if (UNTAG_Bool(REGB0
)) {
695 nit_abort("Reciever is null", NULL
, LOCATE_program
, 122);
697 REGB0
= CALL_metamodel___static_type___MMType___is_nullable(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
698 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
703 if (UNTAG_Bool(REGB0
)) {
704 /* program.nit:123 */
705 CALL_icode___icode_builder___ICodeBuilder___add_attr_check(closctx
->REG
[3])(closctx
->REG
[3], fra
.me
.REG
[0], closctx
->REG
[5]);
708 stack_frame_head
= fra
.me
.prev
;
711 void OC_program___Program___generate_allocation_iroutines_8(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
712 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
719 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
720 fra
.me
.file
= LOCATE_program
;
722 fra
.me
.meth
= LOCATE_program___Program___generate_allocation_iroutines
;
723 fra
.me
.has_broke
= 0;
725 fra
.me
.nitni_local_ref_head
= NULL
;
726 fra
.me
.REG
[0] = NIT_NULL
;
727 fra
.me
.REG
[1] = NIT_NULL
;
728 fra
.me
.REG
[2] = NIT_NULL
;
729 fra
.me
.REG
[3] = NIT_NULL
;
730 fra
.me
.REG
[4] = NIT_NULL
;
731 fra
.me
.REG
[5] = NIT_NULL
;
732 fra
.me
.closure_ctx
= closctx_param
;
733 fra
.me
.closure_funs
= CREG
;
736 /* program.nit:132 */
737 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[2]);
738 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
739 if (UNTAG_Bool(REGB0
)) {
742 /* program.nit:133 */
743 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
744 /* program.nit:134 */
745 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
746 if (UNTAG_Bool(REGB0
)) {
748 nit_abort("Assert failed", NULL
, LOCATE_program
, 134);
750 /* program.nit:136 */
751 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalClass___get_type(closctx
->REG
[2])(closctx
->REG
[2]);
752 fra
.me
.REG
[1] = NEW_IRegister_icode___icode_base___IRegister___init(fra
.me
.REG
[1]);
753 /* program.nit:137 */
754 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___init();
755 /* program.nit:138 */
757 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
758 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
759 if (UNTAG_Bool(REGB1
)) {
760 nit_abort("Reciever is null", NULL
, LOCATE_program
, 138);
762 REGB1
= CALL_metamodel___static_type___MMSignature___arity(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
763 /* ../lib/standard/kernel.nit:404 */
765 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
766 if (UNTAG_Bool(REGB2
)) {
768 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
770 /* ../lib/standard/kernel.nit:242 */
771 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
772 /* ../lib/standard/kernel.nit:404 */
773 if (UNTAG_Bool(REGB2
)) {
774 /* program.nit:138 */
776 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
777 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
778 if (UNTAG_Bool(REGB3
)) {
779 nit_abort("Reciever is null", NULL
, LOCATE_program
, 138);
781 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMSignature_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB2
);
782 fra
.me
.REG
[3] = NEW_IRegister_icode___icode_base___IRegister___init(fra
.me
.REG
[3]);
783 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
784 /* ../lib/standard/kernel.nit:406 */
786 /* ../lib/standard/kernel.nit:245 */
787 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
788 /* ../lib/standard/kernel.nit:406 */
791 /* ../lib/standard/kernel.nit:404 */
796 /* program.nit:139 */
797 fra
.me
.REG
[3] = NEW_IRoutine_icode___icode_base___IRoutine___init(fra
.me
.REG
[2], fra
.me
.REG
[1]);
798 /* program.nit:140 */
799 fra
.me
.REG
[4] = CALL_icode___icode_base___MMMethod___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
800 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
801 if (UNTAG_Bool(REGB0
)) {
802 nit_abort("Reciever is null", NULL
, LOCATE_program
, 140);
804 fra
.me
.REG
[4] = CALL_icode___icode_base___IRoutine___location(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
805 CALL_icode___icode_base___IRoutine___location__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
806 /* program.nit:141 */
807 fra
.me
.REG
[4] = CALL_program___Program___main_module(closctx
->REG
[1])(closctx
->REG
[1]);
808 fra
.me
.REG
[4] = NEW_ICodeBuilder_icode___icode_builder___ICodeBuilder___init(fra
.me
.REG
[4], fra
.me
.REG
[3]);
809 /* program.nit:143 */
810 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalClass___get_type(closctx
->REG
[2])(closctx
->REG
[2]);
811 fra
.me
.REG
[5] = NEW_IAllocateInstance_icode___icode_base___IAllocateInstance___init(fra
.me
.REG
[5]);
812 /* program.nit:144 */
813 CALL_icode___icode_base___ICode___result__eq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
814 /* program.nit:145 */
815 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
816 /* program.nit:146 */
818 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
819 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
820 /* program.nit:147 */
821 CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
822 /* program.nit:149 */
823 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalClass___get_type(closctx
->REG
[2])(closctx
->REG
[2]);
824 fra
.me
.REG
[2] = NEW_IInitAttributes_icode___icode_base___IInitAttributes___init(fra
.me
.REG
[2], fra
.me
.REG
[1]);
825 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
826 /* program.nit:150 */
827 fra
.me
.REG
[5] = NEW_IStaticCall_icode___icode_base___IStaticCall___init(fra
.me
.REG
[0], fra
.me
.REG
[5]);
828 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
829 /* program.nit:151 */
830 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalClass___get_type(closctx
->REG
[2])(closctx
->REG
[2]);
831 fra
.me
.REG
[1] = NEW_ICheckInstance_icode___icode_base___ICheckInstance___init(fra
.me
.REG
[5], fra
.me
.REG
[1]);
832 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
833 /* program.nit:153 */
834 fra
.me
.REG
[1] = CALL_program___MMLocalClass___new_instance_iroutine(closctx
->REG
[2])(closctx
->REG
[2]);
835 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[3]);
837 stack_frame_head
= fra
.me
.prev
;
840 static const char LOCATE_program___Program___with_each_iroutines
[] = "program::Program::with_each_iroutines";
841 void program___Program___with_each_iroutines(val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
842 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
846 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
847 fra
.me
.file
= LOCATE_program
;
849 fra
.me
.meth
= LOCATE_program___Program___with_each_iroutines
;
850 fra
.me
.has_broke
= 0;
852 fra
.me
.nitni_local_ref_head
= NULL
;
853 fra
.me
.REG
[0] = NIT_NULL
;
854 fra
.me
.REG
[1] = NIT_NULL
;
855 fra
.me
.REG
[2] = NIT_NULL
;
856 fra
.me
.closure_ctx
= closctx_param
;
857 fra
.me
.closure_funs
= CREG
;
860 /* program.nit:164 */
861 fra
.me
.REG
[1] = CALL_program___Program___main_module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
862 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
863 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
864 if (UNTAG_Bool(REGB0
)) {
865 nit_abort("Reciever is null", NULL
, LOCATE_program
, 164);
867 fra
.me
.REG
[1] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
868 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[1])(fra
.me
.REG
[1], (&(fra
.me
)), ((fun_t
)OC_program___Program___with_each_iroutines_1
));
869 switch ((&(fra
.me
))->has_broke
) {
871 case 1: (&(fra
.me
))->has_broke
= 0; goto label9
;
874 stack_frame_head
= fra
.me
.prev
;
877 void OC_program___Program___with_each_iroutines_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
878 struct {struct stack_frame_t me
;} fra
;
881 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
882 fra
.me
.file
= LOCATE_program
;
884 fra
.me
.meth
= LOCATE_program___Program___with_each_iroutines
;
885 fra
.me
.has_broke
= 0;
887 fra
.me
.nitni_local_ref_head
= NULL
;
888 fra
.me
.REG
[0] = NIT_NULL
;
889 fra
.me
.closure_ctx
= closctx_param
;
890 fra
.me
.closure_funs
= CREG
;
893 closctx
->REG
[1] = fra
.me
.REG
[0];
894 /* program.nit:165 */
895 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(closctx
->REG
[1])(closctx
->REG
[1]);
896 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
, ((fun_t
)OC_program___Program___with_each_iroutines_2
));
897 switch (closctx
->has_broke
) {
899 default: goto label8
;
902 stack_frame_head
= fra
.me
.prev
;
905 void OC_program___Program___with_each_iroutines_2(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
906 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
911 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
912 fra
.me
.file
= LOCATE_program
;
914 fra
.me
.meth
= LOCATE_program___Program___with_each_iroutines
;
915 fra
.me
.has_broke
= 0;
917 fra
.me
.nitni_local_ref_head
= NULL
;
918 fra
.me
.REG
[0] = NIT_NULL
;
919 fra
.me
.REG
[1] = NIT_NULL
;
920 fra
.me
.closure_ctx
= closctx_param
;
921 fra
.me
.closure_funs
= CREG
;
924 /* program.nit:166 */
925 closctx
->REG
[2] = NIT_NULL
;
926 /* program.nit:169 */
927 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___local_local_properties(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
928 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[1])(fra
.me
.REG
[1], closctx
, ((fun_t
)OC_program___Program___with_each_iroutines_3
));
929 switch (closctx
->has_broke
) {
931 default: goto label5
;
933 /* program.nit:180 */
934 fra
.me
.REG
[1] = CALL_program___MMLocalClass___init_var_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
935 closctx
->REG
[2] = fra
.me
.REG
[1];
936 /* program.nit:181 */
937 REGB0
= TAG_Bool(closctx
->REG
[2]==NIT_NULL
);
938 if (UNTAG_Bool(REGB0
)) {
940 REGB1
= TAG_Bool(closctx
->REG
[2]==NIT_NULL
);
941 if (UNTAG_Bool(REGB1
)) {
945 REGB1
= CALL_standard___kernel___Object_____eqeq(closctx
->REG
[2])(closctx
->REG
[2], NIT_NULL
);
949 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
950 if (UNTAG_Bool(REGB0
)) {
951 /* program.nit:182 */
952 ((void (*)(struct stack_frame_t
*, val_t
, val_t
))(closctx
->closure_funs
[0]))(closctx
->closure_ctx
, closctx
->REG
[2], closctx
->REG
[1]);
953 if (closctx
->closure_ctx
->has_broke
) {
954 closctx
->has_broke
= 1;
958 /* program.nit:184 */
959 fra
.me
.REG
[1] = CALL_program___MMLocalClass___checknew_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
960 closctx
->REG
[2] = fra
.me
.REG
[1];
961 /* program.nit:185 */
962 REGB0
= TAG_Bool(closctx
->REG
[2]==NIT_NULL
);
963 if (UNTAG_Bool(REGB0
)) {
965 REGB1
= TAG_Bool(closctx
->REG
[2]==NIT_NULL
);
966 if (UNTAG_Bool(REGB1
)) {
970 REGB1
= CALL_standard___kernel___Object_____eqeq(closctx
->REG
[2])(closctx
->REG
[2], NIT_NULL
);
974 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
975 if (UNTAG_Bool(REGB0
)) {
976 /* program.nit:186 */
977 ((void (*)(struct stack_frame_t
*, val_t
, val_t
))(closctx
->closure_funs
[0]))(closctx
->closure_ctx
, closctx
->REG
[2], closctx
->REG
[1]);
978 if (closctx
->closure_ctx
->has_broke
) {
979 closctx
->has_broke
= 1;
983 /* program.nit:188 */
984 fra
.me
.REG
[0] = CALL_program___MMLocalClass___new_instance_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
985 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___MapRead___values(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
986 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
, ((fun_t
)OC_program___Program___with_each_iroutines_6
));
987 switch (closctx
->has_broke
) {
989 default: goto label5
;
992 stack_frame_head
= fra
.me
.prev
;
995 void OC_program___Program___with_each_iroutines_3(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
996 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1001 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1002 fra
.me
.file
= LOCATE_program
;
1004 fra
.me
.meth
= LOCATE_program___Program___with_each_iroutines
;
1005 fra
.me
.has_broke
= 0;
1006 fra
.me
.REG_size
= 2;
1007 fra
.me
.nitni_local_ref_head
= NULL
;
1008 fra
.me
.REG
[0] = NIT_NULL
;
1009 fra
.me
.REG
[1] = NIT_NULL
;
1010 fra
.me
.closure_ctx
= closctx_param
;
1011 fra
.me
.closure_funs
= CREG
;
1013 CREG
[0] = clos_fun0
;
1014 /* program.nit:170 */
1015 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_metamodel___abstractmetamodel___MMAttribute
, ID_metamodel___abstractmetamodel___MMAttribute
)) /*cast MMAttribute*/;
1016 if (UNTAG_Bool(REGB0
)) {
1017 /* program.nit:171 */
1018 fra
.me
.REG
[1] = CALL_icode___icode_base___MMAttribute___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1019 closctx
->REG
[2] = fra
.me
.REG
[1];
1021 /* program.nit:172 */
1022 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
1023 if (UNTAG_Bool(REGB0
)) {
1024 /* program.nit:173 */
1025 fra
.me
.REG
[0] = CALL_icode___icode_base___MMMethod___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1026 closctx
->REG
[2] = fra
.me
.REG
[0];
1029 /* program.nit:175 */
1030 REGB0
= TAG_Bool(closctx
->REG
[2]==NIT_NULL
);
1031 if (UNTAG_Bool(REGB0
)) {
1033 REGB1
= TAG_Bool(closctx
->REG
[2]==NIT_NULL
);
1034 if (UNTAG_Bool(REGB1
)) {
1035 REGB1
= TAG_Bool(0);
1038 REGB1
= CALL_standard___kernel___Object_____eqeq(closctx
->REG
[2])(closctx
->REG
[2], NIT_NULL
);
1042 if (UNTAG_Bool(REGB0
)) {
1045 /* program.nit:176 */
1046 ((void (*)(struct stack_frame_t
*, val_t
, val_t
))(closctx
->closure_funs
[0]))(closctx
->closure_ctx
, closctx
->REG
[2], closctx
->REG
[1]);
1047 if (closctx
->closure_ctx
->has_broke
) {
1048 closctx
->has_broke
= 1;
1052 stack_frame_head
= fra
.me
.prev
;
1055 void OC_program___Program___with_each_iroutines_6(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
1056 struct {struct stack_frame_t me
;} fra
;
1059 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1060 fra
.me
.file
= LOCATE_program
;
1062 fra
.me
.meth
= LOCATE_program___Program___with_each_iroutines
;
1063 fra
.me
.has_broke
= 0;
1064 fra
.me
.REG_size
= 1;
1065 fra
.me
.nitni_local_ref_head
= NULL
;
1066 fra
.me
.REG
[0] = NIT_NULL
;
1067 fra
.me
.closure_ctx
= closctx_param
;
1068 fra
.me
.closure_funs
= CREG
;
1070 CREG
[0] = clos_fun0
;
1071 /* program.nit:189 */
1072 ((void (*)(struct stack_frame_t
*, val_t
, val_t
))(closctx
->closure_funs
[0]))(closctx
->closure_ctx
, fra
.me
.REG
[0], closctx
->REG
[1]);
1073 if (closctx
->closure_ctx
->has_broke
) {
1074 closctx
->has_broke
= 1;
1078 stack_frame_head
= fra
.me
.prev
;
1081 static const char LOCATE_program___Program___with_each_methods
[] = "program::Program::with_each_methods";
1082 void program___Program___with_each_methods(val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
1083 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1087 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1088 fra
.me
.file
= LOCATE_program
;
1090 fra
.me
.meth
= LOCATE_program___Program___with_each_methods
;
1091 fra
.me
.has_broke
= 0;
1092 fra
.me
.REG_size
= 2;
1093 fra
.me
.nitni_local_ref_head
= NULL
;
1094 fra
.me
.REG
[0] = NIT_NULL
;
1095 fra
.me
.REG
[1] = NIT_NULL
;
1096 fra
.me
.closure_ctx
= closctx_param
;
1097 fra
.me
.closure_funs
= CREG
;
1099 CREG
[0] = clos_fun0
;
1100 /* program.nit:200 */
1101 fra
.me
.REG
[1] = CALL_program___Program___main_module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1102 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1103 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1104 if (UNTAG_Bool(REGB0
)) {
1105 nit_abort("Reciever is null", NULL
, LOCATE_program
, 200);
1107 fra
.me
.REG
[1] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1108 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[1])(fra
.me
.REG
[1], (&(fra
.me
)), ((fun_t
)OC_program___Program___with_each_methods_1
));
1109 switch ((&(fra
.me
))->has_broke
) {
1111 case 1: (&(fra
.me
))->has_broke
= 0; goto label7
;
1114 stack_frame_head
= fra
.me
.prev
;
1117 void OC_program___Program___with_each_methods_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
1118 struct {struct stack_frame_t me
;} fra
;
1121 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1122 fra
.me
.file
= LOCATE_program
;
1124 fra
.me
.meth
= LOCATE_program___Program___with_each_methods
;
1125 fra
.me
.has_broke
= 0;
1126 fra
.me
.REG_size
= 1;
1127 fra
.me
.nitni_local_ref_head
= NULL
;
1128 fra
.me
.REG
[0] = NIT_NULL
;
1129 fra
.me
.closure_ctx
= closctx_param
;
1130 fra
.me
.closure_funs
= CREG
;
1132 CREG
[0] = clos_fun0
;
1133 /* program.nit:201 */
1134 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1135 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
, ((fun_t
)OC_program___Program___with_each_methods_2
));
1136 switch (closctx
->has_broke
) {
1138 default: goto label6
;
1141 stack_frame_head
= fra
.me
.prev
;
1144 void OC_program___Program___with_each_methods_2(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
1145 struct {struct stack_frame_t me
;} fra
;
1148 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1149 fra
.me
.file
= LOCATE_program
;
1151 fra
.me
.meth
= LOCATE_program___Program___with_each_methods
;
1152 fra
.me
.has_broke
= 0;
1153 fra
.me
.REG_size
= 1;
1154 fra
.me
.nitni_local_ref_head
= NULL
;
1155 fra
.me
.REG
[0] = NIT_NULL
;
1156 fra
.me
.closure_ctx
= closctx_param
;
1157 fra
.me
.closure_funs
= CREG
;
1159 CREG
[0] = clos_fun0
;
1160 /* program.nit:203 */
1161 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___local_local_properties(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1162 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
, ((fun_t
)OC_program___Program___with_each_methods_3
));
1163 switch (closctx
->has_broke
) {
1165 default: goto label5
;
1168 stack_frame_head
= fra
.me
.prev
;
1171 void OC_program___Program___with_each_methods_3(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
1172 struct {struct stack_frame_t me
;} fra
;
1176 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1177 fra
.me
.file
= LOCATE_program
;
1179 fra
.me
.meth
= LOCATE_program___Program___with_each_methods
;
1180 fra
.me
.has_broke
= 0;
1181 fra
.me
.REG_size
= 1;
1182 fra
.me
.nitni_local_ref_head
= NULL
;
1183 fra
.me
.REG
[0] = NIT_NULL
;
1184 fra
.me
.closure_ctx
= closctx_param
;
1185 fra
.me
.closure_funs
= CREG
;
1187 CREG
[0] = clos_fun0
;
1188 /* program.nit:204 */
1189 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
1190 if (UNTAG_Bool(REGB0
)) {
1191 /* program.nit:205 */
1192 ((void (*)(struct stack_frame_t
*, val_t
))(closctx
->closure_funs
[0]))(closctx
->closure_ctx
, fra
.me
.REG
[0]);
1193 if (closctx
->closure_ctx
->has_broke
) {
1194 closctx
->has_broke
= 1;
1199 stack_frame_head
= fra
.me
.prev
;
1202 static const char LOCATE_program___Program___with_each_live_local_classes
[] = "program::Program::with_each_live_local_classes";
1203 void program___Program___with_each_live_local_classes(val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
1204 struct {struct stack_frame_t me
;} fra
;
1207 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1208 fra
.me
.file
= LOCATE_program
;
1210 fra
.me
.meth
= LOCATE_program___Program___with_each_live_local_classes
;
1211 fra
.me
.has_broke
= 0;
1212 fra
.me
.REG_size
= 1;
1213 fra
.me
.nitni_local_ref_head
= NULL
;
1214 fra
.me
.REG
[0] = NIT_NULL
;
1215 fra
.me
.closure_ctx
= closctx_param
;
1216 fra
.me
.closure_funs
= CREG
;
1218 CREG
[0] = clos_fun0
;
1219 /* program.nit:217 */
1220 fra
.me
.REG
[0] = CALL_program___Program___main_module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1221 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1222 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[0])(fra
.me
.REG
[0], (&(fra
.me
)), ((fun_t
)OC_program___Program___with_each_live_local_classes_1
));
1223 switch ((&(fra
.me
))->has_broke
) {
1225 case 1: (&(fra
.me
))->has_broke
= 0; goto label3
;
1228 stack_frame_head
= fra
.me
.prev
;
1231 void OC_program___Program___with_each_live_local_classes_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
1232 struct {struct stack_frame_t me
;} fra
;
1235 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1236 fra
.me
.file
= LOCATE_program
;
1238 fra
.me
.meth
= LOCATE_program___Program___with_each_live_local_classes
;
1239 fra
.me
.has_broke
= 0;
1240 fra
.me
.REG_size
= 1;
1241 fra
.me
.nitni_local_ref_head
= NULL
;
1242 fra
.me
.REG
[0] = NIT_NULL
;
1243 fra
.me
.closure_ctx
= closctx_param
;
1244 fra
.me
.closure_funs
= CREG
;
1246 CREG
[0] = clos_fun0
;
1247 /* program.nit:218 */
1248 ((void (*)(struct stack_frame_t
*, val_t
))(closctx
->closure_funs
[0]))(closctx
->closure_ctx
, fra
.me
.REG
[0]);
1249 if (closctx
->closure_ctx
->has_broke
) {
1250 closctx
->has_broke
= 1;
1254 stack_frame_head
= fra
.me
.prev
;
1257 static const char LOCATE_program___Program___init
[] = "program::Program::init";
1258 void program___Program___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
1259 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_program___Program
].i
;
1260 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1262 if (init_table
[itpos0
]) return;
1263 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1264 fra
.me
.file
= LOCATE_program
;
1266 fra
.me
.meth
= LOCATE_program___Program___init
;
1267 fra
.me
.has_broke
= 0;
1268 fra
.me
.REG_size
= 3;
1269 fra
.me
.nitni_local_ref_head
= NULL
;
1270 fra
.me
.REG
[0] = NIT_NULL
;
1271 fra
.me
.REG
[1] = NIT_NULL
;
1272 fra
.me
.REG
[2] = NIT_NULL
;
1276 /* program.nit:223 */
1277 ATTR_program___Program____main_module(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1278 /* program.nit:224 */
1279 ATTR_program___Program____tc(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
1280 /* program.nit:225 */
1281 CALL_program___Program___finish_processing_classes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1282 stack_frame_head
= fra
.me
.prev
;
1283 init_table
[itpos0
] = 1;
1286 static const char LOCATE_program___MMLocalClass___init_var_iroutine
[] = "program::MMLocalClass::init_var_iroutine";
1287 val_t
program___MMLocalClass___init_var_iroutine(val_t p0
){
1288 struct {struct stack_frame_t me
;} fra
;
1290 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1291 fra
.me
.file
= LOCATE_program
;
1293 fra
.me
.meth
= LOCATE_program___MMLocalClass___init_var_iroutine
;
1294 fra
.me
.has_broke
= 0;
1295 fra
.me
.REG_size
= 1;
1296 fra
.me
.nitni_local_ref_head
= NULL
;
1297 fra
.me
.REG
[0] = NIT_NULL
;
1299 /* program.nit:230 */
1300 fra
.me
.REG
[0] = ATTR_program___MMLocalClass____init_var_iroutine(fra
.me
.REG
[0]);
1301 stack_frame_head
= fra
.me
.prev
;
1302 return fra
.me
.REG
[0];
1304 static const char LOCATE_program___MMLocalClass___init_var_iroutine__eq
[] = "program::MMLocalClass::init_var_iroutine=";
1305 void program___MMLocalClass___init_var_iroutine__eq(val_t p0
, val_t p1
){
1306 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1308 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1309 fra
.me
.file
= LOCATE_program
;
1311 fra
.me
.meth
= LOCATE_program___MMLocalClass___init_var_iroutine__eq
;
1312 fra
.me
.has_broke
= 0;
1313 fra
.me
.REG_size
= 2;
1314 fra
.me
.nitni_local_ref_head
= NULL
;
1315 fra
.me
.REG
[0] = NIT_NULL
;
1316 fra
.me
.REG
[1] = NIT_NULL
;
1319 /* program.nit:230 */
1320 ATTR_program___MMLocalClass____init_var_iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1321 stack_frame_head
= fra
.me
.prev
;
1324 static const char LOCATE_program___MMLocalClass___checknew_iroutine
[] = "program::MMLocalClass::checknew_iroutine";
1325 val_t
program___MMLocalClass___checknew_iroutine(val_t p0
){
1326 struct {struct stack_frame_t me
;} fra
;
1328 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1329 fra
.me
.file
= LOCATE_program
;
1331 fra
.me
.meth
= LOCATE_program___MMLocalClass___checknew_iroutine
;
1332 fra
.me
.has_broke
= 0;
1333 fra
.me
.REG_size
= 1;
1334 fra
.me
.nitni_local_ref_head
= NULL
;
1335 fra
.me
.REG
[0] = NIT_NULL
;
1337 /* program.nit:232 */
1338 fra
.me
.REG
[0] = ATTR_program___MMLocalClass____checknew_iroutine(fra
.me
.REG
[0]);
1339 stack_frame_head
= fra
.me
.prev
;
1340 return fra
.me
.REG
[0];
1342 static const char LOCATE_program___MMLocalClass___checknew_iroutine__eq
[] = "program::MMLocalClass::checknew_iroutine=";
1343 void program___MMLocalClass___checknew_iroutine__eq(val_t p0
, val_t p1
){
1344 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1346 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1347 fra
.me
.file
= LOCATE_program
;
1349 fra
.me
.meth
= LOCATE_program___MMLocalClass___checknew_iroutine__eq
;
1350 fra
.me
.has_broke
= 0;
1351 fra
.me
.REG_size
= 2;
1352 fra
.me
.nitni_local_ref_head
= NULL
;
1353 fra
.me
.REG
[0] = NIT_NULL
;
1354 fra
.me
.REG
[1] = NIT_NULL
;
1357 /* program.nit:232 */
1358 ATTR_program___MMLocalClass____checknew_iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1359 stack_frame_head
= fra
.me
.prev
;
1362 static const char LOCATE_program___MMLocalClass___new_instance_iroutine
[] = "program::MMLocalClass::new_instance_iroutine";
1363 val_t
program___MMLocalClass___new_instance_iroutine(val_t p0
){
1364 struct {struct stack_frame_t me
;} fra
;
1367 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1368 fra
.me
.file
= LOCATE_program
;
1370 fra
.me
.meth
= LOCATE_program___MMLocalClass___new_instance_iroutine
;
1371 fra
.me
.has_broke
= 0;
1372 fra
.me
.REG_size
= 1;
1373 fra
.me
.nitni_local_ref_head
= NULL
;
1374 fra
.me
.REG
[0] = NIT_NULL
;
1376 /* program.nit:234 */
1377 REGB0
= TAG_Bool(ATTR_program___MMLocalClass____new_instance_iroutine(fra
.me
.REG
[0])!=NIT_NULL
);
1378 if (UNTAG_Bool(REGB0
)) {
1380 nit_abort("Uninitialized attribute %s", "_new_instance_iroutine", LOCATE_program
, 234);
1382 fra
.me
.REG
[0] = ATTR_program___MMLocalClass____new_instance_iroutine(fra
.me
.REG
[0]);
1383 stack_frame_head
= fra
.me
.prev
;
1384 return fra
.me
.REG
[0];