1 /* This C file is generated by NIT to compile module program. */
2 #include "program._sep.h"
3 val_t
program___Program___module(val_t p0
){
4 struct {struct stack_frame_t me
;} fra
;
7 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8 fra
.me
.file
= LOCATE_program
;
10 fra
.me
.meth
= LOCATE_program___Program___module
;
13 fra
.me
.REG
[0] = NIT_NULL
;
15 REGB0
= TAG_Bool(ATTR_program___Program____module(fra
.me
.REG
[0])!=NIT_NULL
);
16 /* ./program.nit:25 */
17 if (UNTAG_Bool(REGB0
)) {
19 fprintf(stderr
, "Uninitialized attribute %s", "_module");
20 fprintf(stderr
, " (%s:%d)\n", LOCATE_program
, 25);
23 fra
.me
.REG
[0] = ATTR_program___Program____module(fra
.me
.REG
[0]);
24 stack_frame_head
= fra
.me
.prev
;
27 val_t
program___Program___main_method(val_t p0
){
28 struct {struct stack_frame_t me
;} fra
;
30 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
31 fra
.me
.file
= LOCATE_program
;
33 fra
.me
.meth
= LOCATE_program___Program___main_method
;
36 fra
.me
.REG
[0] = NIT_NULL
;
38 fra
.me
.REG
[0] = ATTR_program___Program____main_method(fra
.me
.REG
[0]);
39 /* ./program.nit:28 */
40 stack_frame_head
= fra
.me
.prev
;
43 val_t
program___Program___main_class(val_t p0
){
44 struct {struct stack_frame_t me
;} fra
;
46 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
47 fra
.me
.file
= LOCATE_program
;
49 fra
.me
.meth
= LOCATE_program___Program___main_class
;
52 fra
.me
.REG
[0] = NIT_NULL
;
54 fra
.me
.REG
[0] = ATTR_program___Program____main_class(fra
.me
.REG
[0]);
55 /* ./program.nit:32 */
56 stack_frame_head
= fra
.me
.prev
;
59 void program___Program___compute_main_method(val_t p0
){
60 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
63 static val_t once_value_1
; /* Once value */
64 static val_t once_value_2
; /* Once value */
65 static val_t once_value_4
; /* Once value */
66 static val_t once_value_5
; /* Once value */
67 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
68 fra
.me
.file
= LOCATE_program
;
70 fra
.me
.meth
= LOCATE_program___Program___compute_main_method
;
73 fra
.me
.REG
[0] = NIT_NULL
;
74 fra
.me
.REG
[1] = NIT_NULL
;
75 fra
.me
.REG
[2] = NIT_NULL
;
77 /* ./program.nit:38 */
80 fra
.me
.REG
[1] = BOX_NativeString("Sys");
82 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
83 once_value_2
= fra
.me
.REG
[1];
84 register_static_object(&once_value_2
);
85 } else fra
.me
.REG
[1] = once_value_2
;
86 fra
.me
.REG
[1] = CALL_symbol___String___to_symbol(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
87 once_value_1
= fra
.me
.REG
[1];
88 register_static_object(&once_value_1
);
89 } else fra
.me
.REG
[1] = once_value_1
;
90 fra
.me
.REG
[2] = CALL_program___Program___module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
91 REGB0
= CALL_abstractmetamodel___MMModule___has_global_class_named(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
92 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
93 /* ./program.nit:39 */
94 if (UNTAG_Bool(REGB0
)) {
97 fra
.me
.REG
[2] = CALL_program___Program___module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
98 fra
.me
.REG
[1] = CALL_abstractmetamodel___MMModule___class_by_name(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
99 /* ./program.nit:43 */
102 fra
.me
.REG
[2] = BOX_NativeString("main");
104 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
105 once_value_5
= fra
.me
.REG
[2];
106 register_static_object(&once_value_5
);
107 } else fra
.me
.REG
[2] = once_value_5
;
108 fra
.me
.REG
[2] = CALL_symbol___String___to_symbol(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
109 once_value_4
= fra
.me
.REG
[2];
110 register_static_object(&once_value_4
);
111 } else fra
.me
.REG
[2] = once_value_4
;
112 REGB0
= CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
113 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
114 /* ./program.nit:44 */
115 if (UNTAG_Bool(REGB0
)) {
118 fra
.me
.REG
[2] = CALL_abstractmetamodel___MMLocalClass___select_method(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
119 /* ./program.nit:46 */
120 ATTR_program___Program____main_method(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
121 /* ./program.nit:47 */
122 ATTR_program___Program____main_class(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
124 stack_frame_head
= fra
.me
.prev
;
127 void program___Program___init(val_t p0
, val_t p1
, int* init_table
){
128 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_Program
].i
;
129 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
131 if (init_table
[itpos0
]) return;
132 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
133 fra
.me
.file
= LOCATE_program
;
135 fra
.me
.meth
= LOCATE_program___Program___init
;
136 fra
.me
.has_broke
= 0;
138 fra
.me
.REG
[0] = NIT_NULL
;
139 fra
.me
.REG
[1] = NIT_NULL
;
142 /* ./program.nit:51 */
143 ATTR_program___Program____module(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
144 stack_frame_head
= fra
.me
.prev
;
145 init_table
[itpos0
] = 1;