1 /* This C file is generated by NIT to compile module compiling. */
2 #include "compiling._sep.h"
3 val_t
compiling___Program___output_format(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_compiling
;
10 fra
.me
.meth
= LOCATE_compiling___Program___output_format
;
13 fra
.me
.REG
[0] = NIT_NULL
;
15 /* ./compiling//compiling.nit:28 */
16 REGB0
= TAG_Bool(ATTR_compiling___Program____output_format(fra
.me
.REG
[0])!=NIT_NULL
);
17 if (UNTAG_Bool(REGB0
)) {
19 nit_abort("Uninitialized attribute %s", "_output_format", LOCATE_compiling
, 28);
21 fra
.me
.REG
[0] = ATTR_compiling___Program____output_format(fra
.me
.REG
[0]);
22 stack_frame_head
= fra
.me
.prev
;
25 void compiling___Program___output_format__eq(val_t p0
, val_t p1
){
26 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
28 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
29 fra
.me
.file
= LOCATE_compiling
;
31 fra
.me
.meth
= LOCATE_compiling___Program___output_format__eq
;
34 fra
.me
.REG
[0] = NIT_NULL
;
35 fra
.me
.REG
[1] = NIT_NULL
;
38 /* ./compiling//compiling.nit:28 */
39 ATTR_compiling___Program____output_format(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
40 stack_frame_head
= fra
.me
.prev
;
43 void compiling___Program___compile_prog(val_t p0
){
44 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
48 static val_t once_value_1
; /* Once value */
49 static val_t once_value_3
; /* Once value */
50 static val_t once_value_4
; /* Once value */
51 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
52 fra
.me
.file
= LOCATE_compiling
;
54 fra
.me
.meth
= LOCATE_compiling___Program___compile_prog
;
57 fra
.me
.REG
[0] = NIT_NULL
;
58 fra
.me
.REG
[1] = NIT_NULL
;
59 fra
.me
.REG
[2] = NIT_NULL
;
61 /* ./compiling//compiling.nit:34 */
62 fra
.me
.REG
[1] = CALL_compiling___Program___output_format(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
64 fra
.me
.REG
[2] = BOX_NativeString("none");
66 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
67 once_value_1
= fra
.me
.REG
[2];
68 register_static_object(&once_value_1
);
69 } else fra
.me
.REG
[2] = once_value_1
;
70 fra
.me
.REG
[2] = fra
.me
.REG
[2];
71 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[2]));
72 if (UNTAG_Bool(REGB0
)) {
74 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
77 if (UNTAG_Bool(REGB0
)) {
79 CALL_program___Program___with_each_iroutines(fra
.me
.REG
[0])(fra
.me
.REG
[0], (&(fra
.me
)), ((fun_t
)OC_compiling___Program___compile_prog_2
));
80 /* ./compiling//compiling.nit:40 */
81 fra
.me
.REG
[2] = CALL_compiling___Program___output_format(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
83 fra
.me
.REG
[1] = BOX_NativeString("C");
85 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
86 once_value_3
= fra
.me
.REG
[1];
87 register_static_object(&once_value_3
);
88 } else fra
.me
.REG
[1] = once_value_3
;
89 fra
.me
.REG
[1] = fra
.me
.REG
[1];
90 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[1]));
91 if (UNTAG_Bool(REGB0
)) {
93 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
96 if (UNTAG_Bool(REGB0
)) {
97 /* ./compiling//compiling.nit:41 */
98 CALL_compiling___Program___compile_prog_to_c(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
100 /* ./compiling//compiling.nit:42 */
101 fra
.me
.REG
[1] = CALL_compiling___Program___output_format(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
103 fra
.me
.REG
[2] = BOX_NativeString("icode");
105 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
106 once_value_4
= fra
.me
.REG
[2];
107 register_static_object(&once_value_4
);
108 } else fra
.me
.REG
[2] = once_value_4
;
109 fra
.me
.REG
[2] = fra
.me
.REG
[2];
110 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[2]));
111 if (UNTAG_Bool(REGB0
)) {
113 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
116 if (UNTAG_Bool(REGB0
)) {
117 /* ./compiling//compiling.nit:43 */
118 CALL_compiling___icode_generator___Program___generate_icode_files(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
122 stack_frame_head
= fra
.me
.prev
;
125 void OC_compiling___Program___compile_prog_2(struct stack_frame_t
*closctx
, val_t p0
, val_t p1
){
126 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
128 /* ./compiling//compiling.nit:38 */
129 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
130 fra
.me
.file
= LOCATE_compiling
;
132 fra
.me
.meth
= LOCATE_compiling___Program___compile_prog
;
133 fra
.me
.has_broke
= 0;
135 fra
.me
.REG
[0] = NIT_NULL
;
136 fra
.me
.REG
[1] = NIT_NULL
;
139 CALL_analysis___IRoutine___optimize(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
140 stack_frame_head
= fra
.me
.prev
;
143 void compiling___Program___compile_prog_to_c(val_t p0
){
144 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
147 static val_t once_value_1
; /* Once value */
148 static val_t once_value_2
; /* Once value */
149 static val_t once_value_3
; /* Once value */
150 static val_t once_value_4
; /* Once value */
151 static val_t once_value_6
; /* Once value */
152 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
153 fra
.me
.file
= LOCATE_compiling
;
155 fra
.me
.meth
= LOCATE_compiling___Program___compile_prog_to_c
;
156 fra
.me
.has_broke
= 0;
158 fra
.me
.REG
[0] = NIT_NULL
;
159 fra
.me
.REG
[1] = NIT_NULL
;
160 fra
.me
.REG
[2] = NIT_NULL
;
161 fra
.me
.REG
[3] = NIT_NULL
;
163 /* ./compiling//compiling.nit:53 */
164 fra
.me
.REG
[1] = NEW_CProgram_compiling___compiling_base___CProgram___init(fra
.me
.REG
[0]);
165 /* ./compiling//compiling.nit:55 */
166 fra
.me
.REG
[2] = CALL_compiling___compiling_base___CProgram___compdir(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
167 CALL_standard___file___String___mkdir(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
168 /* ./compiling//compiling.nit:57 */
169 fra
.me
.REG
[2] = CALL_compiling___compiling_base___CProgram___files(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
171 fra
.me
.REG
[3] = BOX_NativeString("$CLIBDIR/nit_main.c");
173 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
174 once_value_1
= fra
.me
.REG
[3];
175 register_static_object(&once_value_1
);
176 } else fra
.me
.REG
[3] = once_value_1
;
177 fra
.me
.REG
[3] = fra
.me
.REG
[3];
178 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
179 /* ./compiling//compiling.nit:58 */
180 fra
.me
.REG
[3] = CALL_compiling___compiling_base___CProgram___files(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
182 fra
.me
.REG
[2] = BOX_NativeString("$CLIBDIR/gc.c");
184 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
185 once_value_2
= fra
.me
.REG
[2];
186 register_static_object(&once_value_2
);
187 } else fra
.me
.REG
[2] = once_value_2
;
188 fra
.me
.REG
[2] = fra
.me
.REG
[2];
189 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
190 /* ./compiling//compiling.nit:59 */
191 fra
.me
.REG
[2] = CALL_compiling___compiling_base___CProgram___files(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
193 fra
.me
.REG
[3] = BOX_NativeString("$CLIBDIR/gc_static_objects_list.c");
195 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
196 once_value_3
= fra
.me
.REG
[3];
197 register_static_object(&once_value_3
);
198 } else fra
.me
.REG
[3] = once_value_3
;
199 fra
.me
.REG
[3] = fra
.me
.REG
[3];
200 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
201 /* ./compiling//compiling.nit:61 */
202 fra
.me
.REG
[3] = CALL_program___Program___tc(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
204 fra
.me
.REG
[2] = BOX_NativeString("Generating C code");
206 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
207 once_value_4
= fra
.me
.REG
[2];
208 register_static_object(&once_value_4
);
209 } else fra
.me
.REG
[2] = once_value_4
;
210 fra
.me
.REG
[2] = fra
.me
.REG
[2];
212 CALL_mmloader___ToolContext___info(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], REGB0
);
213 /* ./compiling//compiling.nit:62 */
214 fra
.me
.REG
[2] = CALL_program___Program___main_module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
215 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
216 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
217 if (UNTAG_Bool(REGB0
)) {
218 nit_abort("Reciever is null", NULL
, LOCATE_compiling
, 62);
220 fra
.me
.REG
[2] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
221 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[2])(fra
.me
.REG
[2], (&(fra
.me
)), ((fun_t
)OC_compiling___Program___compile_prog_to_c_5
));
222 /* ./compiling//compiling.nit:64 */
223 fra
.me
.REG
[2] = CALL_program___Program___tc(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
225 fra
.me
.REG
[3] = BOX_NativeString("Generating main, tables and makefile ...");
227 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
228 once_value_6
= fra
.me
.REG
[3];
229 register_static_object(&once_value_6
);
230 } else fra
.me
.REG
[3] = once_value_6
;
231 fra
.me
.REG
[3] = fra
.me
.REG
[3];
233 CALL_mmloader___ToolContext___info(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], REGB0
);
234 /* ./compiling//compiling.nit:65 */
235 CALL_compiling___Program___compile_main(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
236 /* ./compiling//compiling.nit:67 */
237 CALL_compiling___compiling_base___CProgram___generate_build_file(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
238 /* ./compiling//compiling.nit:69 */
239 fra
.me
.REG
[0] = CALL_program___Program___tc(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
240 REGB0
= CALL_compiling___compiling_base___ToolContext___no_cc(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
241 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
242 if (UNTAG_Bool(REGB0
)) {
243 CALL_compiling___compiling_base___CProgram___run_c_compiler(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
245 stack_frame_head
= fra
.me
.prev
;
248 void OC_compiling___Program___compile_prog_to_c_5(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
249 struct {struct stack_frame_t me
;} fra
;
252 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
253 fra
.me
.file
= LOCATE_compiling
;
255 fra
.me
.meth
= LOCATE_compiling___Program___compile_prog_to_c
;
256 fra
.me
.has_broke
= 0;
258 fra
.me
.REG
[0] = NIT_NULL
;
259 fra
.me
.closure_ctx
= closctx_param
;
260 fra
.me
.closure_funs
= CREG
;
263 CALL_compiling___MMModule___compile_separate_module(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[1]);
264 stack_frame_head
= fra
.me
.prev
;
267 void compiling___Program___compile_main(val_t p0
, val_t p1
){
268 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
271 static val_t once_value_1
; /* Once value */
272 static val_t once_value_2
; /* Once value */
273 static val_t once_value_3
; /* Once value */
274 static val_t once_value_4
; /* Once value */
275 static val_t once_value_5
; /* Once value */
276 static val_t once_value_6
; /* Once value */
277 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
278 fra
.me
.file
= LOCATE_compiling
;
280 fra
.me
.meth
= LOCATE_compiling___Program___compile_main
;
281 fra
.me
.has_broke
= 0;
283 fra
.me
.REG
[0] = NIT_NULL
;
284 fra
.me
.REG
[1] = NIT_NULL
;
285 fra
.me
.REG
[2] = NIT_NULL
;
286 fra
.me
.REG
[3] = NIT_NULL
;
287 fra
.me
.REG
[4] = NIT_NULL
;
288 fra
.me
.REG
[5] = NIT_NULL
;
291 /* ./compiling//compiling.nit:75 */
292 fra
.me
.REG
[2] = CALL_program___Program___main_module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
293 fra
.me
.REG
[2] = NEW_CompilerVisitor_compiling___compiling_base___CompilerVisitor___init(fra
.me
.REG
[2], fra
.me
.REG
[1]);
294 /* ./compiling//compiling.nit:76 */
296 fra
.me
.REG
[3] = BOX_NativeString("#include <nit_common.h>");
298 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
299 once_value_1
= fra
.me
.REG
[3];
300 register_static_object(&once_value_1
);
301 } else fra
.me
.REG
[3] = once_value_1
;
302 fra
.me
.REG
[3] = fra
.me
.REG
[3];
303 CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
304 /* ./compiling//compiling.nit:77 */
305 CALL_compiling___compiling_global___Program___compile_tables_to_c(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
306 /* ./compiling//compiling.nit:78 */
307 CALL_compiling___compiling_global___Program___compile_main_part(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
308 /* ./compiling//compiling.nit:79 */
310 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
312 fra
.me
.REG
[4] = BOX_NativeString("");
314 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
315 once_value_2
= fra
.me
.REG
[4];
316 register_static_object(&once_value_2
);
317 } else fra
.me
.REG
[4] = once_value_2
;
318 fra
.me
.REG
[4] = fra
.me
.REG
[4];
319 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
320 fra
.me
.REG
[4] = CALL_compiling___compiling_base___CProgram___compdir(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
321 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
323 fra
.me
.REG
[4] = BOX_NativeString("/");
325 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
326 once_value_3
= fra
.me
.REG
[4];
327 register_static_object(&once_value_3
);
328 } else fra
.me
.REG
[4] = once_value_3
;
329 fra
.me
.REG
[4] = fra
.me
.REG
[4];
330 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
331 fra
.me
.REG
[4] = CALL_program___Program___main_module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
332 fra
.me
.REG
[4] = CALL_compiling___compiling_base___MMModule___cname(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
333 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
335 fra
.me
.REG
[4] = BOX_NativeString("._tables.c");
337 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
338 once_value_4
= fra
.me
.REG
[4];
339 register_static_object(&once_value_4
);
340 } else fra
.me
.REG
[4] = once_value_4
;
341 fra
.me
.REG
[4] = fra
.me
.REG
[4];
342 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
343 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
344 /* ./compiling//compiling.nit:80 */
345 fra
.me
.REG
[4] = CALL_compiling___compiling_base___CProgram___files(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
346 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
347 /* ./compiling//compiling.nit:81 */
348 fra
.me
.REG
[3] = NEW_OFStream_standard___file___OFStream___open(fra
.me
.REG
[3]);
349 /* ./compiling//compiling.nit:82 */
351 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
353 fra
.me
.REG
[5] = BOX_NativeString("/* This C file is generated by NIT to compile program ");
355 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
356 once_value_5
= fra
.me
.REG
[5];
357 register_static_object(&once_value_5
);
358 } else fra
.me
.REG
[5] = once_value_5
;
359 fra
.me
.REG
[5] = fra
.me
.REG
[5];
360 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
361 fra
.me
.REG
[5] = CALL_program___Program___main_module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
362 fra
.me
.REG
[5] = CALL_compiling___compiling_base___MMModule___cname(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
363 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
365 fra
.me
.REG
[5] = BOX_NativeString(". */\n");
367 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
368 once_value_6
= fra
.me
.REG
[5];
369 register_static_object(&once_value_6
);
370 } else fra
.me
.REG
[5] = once_value_6
;
371 fra
.me
.REG
[5] = fra
.me
.REG
[5];
372 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
373 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
374 CALL_standard___stream___OStream___write(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
375 /* ./compiling//compiling.nit:83 */
376 fra
.me
.REG
[0] = CALL_program___Program___main_module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
377 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
378 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
379 if (UNTAG_Bool(REGB0
)) {
380 nit_abort("Reciever is null", NULL
, LOCATE_compiling
, 83);
382 fra
.me
.REG
[0] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
383 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[0])(fra
.me
.REG
[0], (&(fra
.me
)), ((fun_t
)OC_compiling___Program___compile_main_7
));
384 /* ./compiling//compiling.nit:86 */
385 fra
.me
.REG
[1] = CALL_compiling___compiling_base___CompilerVisitor___header_writer(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
386 CALL_compiling___compiling_writer___Writer___write_to_stream(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
387 /* ./compiling//compiling.nit:87 */
388 fra
.me
.REG
[2] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
389 CALL_compiling___compiling_writer___Writer___write_to_stream(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
390 /* ./compiling//compiling.nit:88 */
391 CALL_standard___stream___IOS___close(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
392 stack_frame_head
= fra
.me
.prev
;
395 void OC_compiling___Program___compile_main_7(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
396 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
400 static val_t once_value_8
; /* Once value */
401 static val_t once_value_9
; /* Once value */
402 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
403 fra
.me
.file
= LOCATE_compiling
;
405 fra
.me
.meth
= LOCATE_compiling___Program___compile_main
;
406 fra
.me
.has_broke
= 0;
408 fra
.me
.REG
[0] = NIT_NULL
;
409 fra
.me
.REG
[1] = NIT_NULL
;
410 fra
.me
.REG
[2] = NIT_NULL
;
411 fra
.me
.closure_ctx
= closctx_param
;
412 fra
.me
.closure_funs
= CREG
;
415 /* ./compiling//compiling.nit:84 */
417 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
419 fra
.me
.REG
[2] = BOX_NativeString("#include \"");
421 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
422 once_value_8
= fra
.me
.REG
[2];
423 register_static_object(&once_value_8
);
424 } else fra
.me
.REG
[2] = once_value_8
;
425 fra
.me
.REG
[2] = fra
.me
.REG
[2];
426 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
427 fra
.me
.REG
[0] = CALL_compiling___compiling_base___CProgram___module_header_name(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
428 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
430 fra
.me
.REG
[0] = BOX_NativeString("\"\n");
432 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
433 once_value_9
= fra
.me
.REG
[0];
434 register_static_object(&once_value_9
);
435 } else fra
.me
.REG
[0] = once_value_9
;
436 fra
.me
.REG
[0] = fra
.me
.REG
[0];
437 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
438 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
439 CALL_standard___stream___OStream___write(closctx
->REG
[3])(closctx
->REG
[3], fra
.me
.REG
[1]);
440 stack_frame_head
= fra
.me
.prev
;
443 void compiling___MMModule___compile_separate_module(val_t p0
, val_t p1
){
444 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
449 static val_t once_value_1
; /* Once value */
450 static val_t once_value_2
; /* Once value */
451 static val_t once_value_3
; /* Once value */
452 static val_t once_value_4
; /* Once value */
453 static val_t once_value_5
; /* Once value */
454 static val_t once_value_6
; /* Once value */
455 static val_t once_value_7
; /* Once value */
456 static val_t once_value_8
; /* Once value */
457 static val_t once_value_9
; /* Once value */
458 static val_t once_value_10
; /* Once value */
459 static val_t once_value_11
; /* Once value */
460 static val_t once_value_12
; /* Once value */
461 static val_t once_value_13
; /* Once value */
462 static val_t once_value_14
; /* Once value */
463 static val_t once_value_15
; /* Once value */
464 static val_t once_value_16
; /* Once value */
465 static val_t once_value_17
; /* Once value */
466 static val_t once_value_18
; /* Once value */
467 static val_t once_value_19
; /* Once value */
468 static val_t once_value_20
; /* Once value */
469 static val_t once_value_21
; /* Once value */
470 static val_t once_value_22
; /* Once value */
471 static val_t once_value_23
; /* Once value */
472 static val_t once_value_24
; /* Once value */
473 static val_t once_value_26
; /* Once value */
474 static val_t once_value_27
; /* Once value */
475 static val_t once_value_28
; /* Once value */
476 static val_t once_value_29
; /* Once value */
477 static val_t once_value_30
; /* Once value */
478 static val_t once_value_31
; /* Once value */
479 static val_t once_value_32
; /* Once value */
480 static val_t once_value_33
; /* Once value */
481 static val_t once_value_34
; /* Once value */
482 static val_t once_value_35
; /* Once value */
483 static val_t once_value_36
; /* Once value */
484 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
485 fra
.me
.file
= LOCATE_compiling
;
487 fra
.me
.meth
= LOCATE_compiling___MMModule___compile_separate_module
;
488 fra
.me
.has_broke
= 0;
489 fra
.me
.REG_size
= 10;
490 fra
.me
.REG
[0] = NIT_NULL
;
491 fra
.me
.REG
[1] = NIT_NULL
;
492 fra
.me
.REG
[2] = NIT_NULL
;
493 fra
.me
.REG
[3] = NIT_NULL
;
494 fra
.me
.REG
[4] = NIT_NULL
;
495 fra
.me
.REG
[5] = NIT_NULL
;
496 fra
.me
.REG
[6] = NIT_NULL
;
497 fra
.me
.REG
[7] = NIT_NULL
;
498 fra
.me
.REG
[8] = NIT_NULL
;
499 fra
.me
.REG
[9] = NIT_NULL
;
502 /* ./compiling//compiling.nit:96 */
503 fra
.me
.REG
[2] = CALL_compiling___compiling_base___CProgram___program(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
504 fra
.me
.REG
[2] = CALL_program___Program___tc(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
505 /* ./compiling//compiling.nit:97 */
507 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
509 fra
.me
.REG
[4] = BOX_NativeString("Generating C code for module: ");
511 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
512 once_value_1
= fra
.me
.REG
[4];
513 register_static_object(&once_value_1
);
514 } else fra
.me
.REG
[4] = once_value_1
;
515 fra
.me
.REG
[4] = fra
.me
.REG
[4];
516 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
517 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMModule___full_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
518 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
519 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
521 fra
.me
.REG
[4] = BOX_NativeString("");
523 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
524 once_value_2
= fra
.me
.REG
[4];
525 register_static_object(&once_value_2
);
526 } else fra
.me
.REG
[4] = once_value_2
;
527 fra
.me
.REG
[4] = fra
.me
.REG
[4];
528 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
529 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
531 CALL_mmloader___ToolContext___info(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], REGB0
);
532 /* ./compiling//compiling.nit:98 */
533 fra
.me
.REG
[3] = NEW_CompilerVisitor_compiling___compiling_base___CompilerVisitor___init(fra
.me
.REG
[0], fra
.me
.REG
[1]);
534 /* ./compiling//compiling.nit:99 */
536 fra
.me
.REG
[2] = BOX_NativeString("#include <nit_common.h>");
538 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
539 once_value_3
= fra
.me
.REG
[2];
540 register_static_object(&once_value_3
);
541 } else fra
.me
.REG
[2] = once_value_3
;
542 fra
.me
.REG
[2] = fra
.me
.REG
[2];
543 CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
544 /* ./compiling//compiling.nit:101 */
545 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMModule___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
546 fra
.me
.REG
[2] = CALL_location___Location___file(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
547 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
548 if (UNTAG_Bool(REGB0
)) {
549 nit_abort("Reciever is null", NULL
, LOCATE_compiling
, 101);
551 fra
.me
.REG
[2] = CALL_location___SourceFile___filename(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
553 fra
.me
.REG
[4] = BOX_NativeString(".nit");
555 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
556 once_value_4
= fra
.me
.REG
[4];
557 register_static_object(&once_value_4
);
558 } else fra
.me
.REG
[4] = once_value_4
;
559 fra
.me
.REG
[4] = fra
.me
.REG
[4];
560 fra
.me
.REG
[4] = CALL_standard___file___String___strip_extension(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
561 /* ./compiling//compiling.nit:102 */
563 fra
.me
.REG
[2] = BOX_NativeString("_nit.h");
565 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
566 once_value_5
= fra
.me
.REG
[2];
567 register_static_object(&once_value_5
);
568 } else fra
.me
.REG
[2] = once_value_5
;
569 fra
.me
.REG
[2] = fra
.me
.REG
[2];
570 fra
.me
.REG
[2] = CALL_standard___string___String_____plus(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
571 /* ./compiling//compiling.nit:103 */
572 REGB0
= CALL_standard___file___String___file_exists(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
573 if (UNTAG_Bool(REGB0
)) {
574 /* ./compiling//compiling.nit:104 */
576 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
578 fra
.me
.REG
[6] = BOX_NativeString("#include <");
580 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
581 once_value_6
= fra
.me
.REG
[6];
582 register_static_object(&once_value_6
);
583 } else fra
.me
.REG
[6] = once_value_6
;
584 fra
.me
.REG
[6] = fra
.me
.REG
[6];
585 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
587 fra
.me
.REG
[6] = BOX_NativeString("");
589 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
590 once_value_7
= fra
.me
.REG
[6];
591 register_static_object(&once_value_7
);
592 } else fra
.me
.REG
[6] = once_value_7
;
593 fra
.me
.REG
[6] = fra
.me
.REG
[6];
594 fra
.me
.REG
[6] = CALL_standard___file___String___basename(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
595 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
597 fra
.me
.REG
[6] = BOX_NativeString(">");
599 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
600 once_value_8
= fra
.me
.REG
[6];
601 register_static_object(&once_value_8
);
602 } else fra
.me
.REG
[6] = once_value_8
;
603 fra
.me
.REG
[6] = fra
.me
.REG
[6];
604 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
605 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
606 CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
607 /* ./compiling//compiling.nit:105 */
608 fra
.me
.REG
[5] = CALL_compiling___compiling_base___CProgram___include_dirs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
610 fra
.me
.REG
[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
612 fra
.me
.REG
[2] = BOX_NativeString("-I ");
614 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
615 once_value_9
= fra
.me
.REG
[2];
616 register_static_object(&once_value_9
);
617 } else fra
.me
.REG
[2] = once_value_9
;
618 fra
.me
.REG
[2] = fra
.me
.REG
[2];
619 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[2]);
620 fra
.me
.REG
[2] = CALL_standard___file___String___dirname(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
621 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[2]);
622 if (!once_value_10
) {
623 fra
.me
.REG
[2] = BOX_NativeString("");
625 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
626 once_value_10
= fra
.me
.REG
[2];
627 register_static_object(&once_value_10
);
628 } else fra
.me
.REG
[2] = once_value_10
;
629 fra
.me
.REG
[2] = fra
.me
.REG
[2];
630 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[2]);
631 fra
.me
.REG
[6] = CALL_standard___string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
632 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
634 /* ./compiling//compiling.nit:107 */
635 if (!once_value_11
) {
636 fra
.me
.REG
[6] = BOX_NativeString("_nit.c");
638 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
639 once_value_11
= fra
.me
.REG
[6];
640 register_static_object(&once_value_11
);
641 } else fra
.me
.REG
[6] = once_value_11
;
642 fra
.me
.REG
[6] = fra
.me
.REG
[6];
643 fra
.me
.REG
[6] = CALL_standard___string___String_____plus(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
644 /* ./compiling//compiling.nit:108 */
645 REGB0
= CALL_standard___file___String___file_exists(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
646 if (UNTAG_Bool(REGB0
)) {
647 fra
.me
.REG
[4] = CALL_compiling___compiling_base___CProgram___files(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
648 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
650 /* ./compiling//compiling.nit:110 */
651 CALL_compiling___compiling_global___MMModule___declare_class_tables_to_c(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
652 /* ./compiling//compiling.nit:111 */
653 CALL_compiling___compiling_global___MMModule___compile_mod_to_c(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
654 /* ./compiling//compiling.nit:113 */
655 fra
.me
.REG
[6] = CALL_compiling___compiling_base___CProgram___module_header_name(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
656 /* ./compiling//compiling.nit:114 */
658 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
659 if (!once_value_12
) {
660 fra
.me
.REG
[5] = BOX_NativeString("");
662 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
663 once_value_12
= fra
.me
.REG
[5];
664 register_static_object(&once_value_12
);
665 } else fra
.me
.REG
[5] = once_value_12
;
666 fra
.me
.REG
[5] = fra
.me
.REG
[5];
667 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
668 fra
.me
.REG
[5] = CALL_compiling___compiling_base___CProgram___compdir(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
669 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
670 if (!once_value_13
) {
671 fra
.me
.REG
[5] = BOX_NativeString("/");
673 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
674 once_value_13
= fra
.me
.REG
[5];
675 register_static_object(&once_value_13
);
676 } else fra
.me
.REG
[5] = once_value_13
;
677 fra
.me
.REG
[5] = fra
.me
.REG
[5];
678 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
679 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
680 if (!once_value_14
) {
681 fra
.me
.REG
[5] = BOX_NativeString("");
683 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
684 once_value_14
= fra
.me
.REG
[5];
685 register_static_object(&once_value_14
);
686 } else fra
.me
.REG
[5] = once_value_14
;
687 fra
.me
.REG
[5] = fra
.me
.REG
[5];
688 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
689 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
690 fra
.me
.REG
[4] = NEW_OFStream_standard___file___OFStream___open(fra
.me
.REG
[4]);
691 /* ./compiling//compiling.nit:115 */
693 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
694 if (!once_value_15
) {
695 fra
.me
.REG
[2] = BOX_NativeString("/* This C header file is generated by NIT to compile modules and programs that requires ");
697 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
698 once_value_15
= fra
.me
.REG
[2];
699 register_static_object(&once_value_15
);
700 } else fra
.me
.REG
[2] = once_value_15
;
701 fra
.me
.REG
[2] = fra
.me
.REG
[2];
702 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
703 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMModule___full_name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
704 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
705 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
706 if (!once_value_16
) {
707 fra
.me
.REG
[2] = BOX_NativeString(". */\n");
709 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
710 once_value_16
= fra
.me
.REG
[2];
711 register_static_object(&once_value_16
);
712 } else fra
.me
.REG
[2] = once_value_16
;
713 fra
.me
.REG
[2] = fra
.me
.REG
[2];
714 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
715 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
716 CALL_standard___stream___OStream___write(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
717 /* ./compiling//compiling.nit:116 */
719 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
720 if (!once_value_17
) {
721 fra
.me
.REG
[2] = BOX_NativeString("#ifndef ");
723 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
724 once_value_17
= fra
.me
.REG
[2];
725 register_static_object(&once_value_17
);
726 } else fra
.me
.REG
[2] = once_value_17
;
727 fra
.me
.REG
[2] = fra
.me
.REG
[2];
728 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
729 fra
.me
.REG
[2] = CALL_compiling___compiling_base___MMModule___cname(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
730 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
731 if (!once_value_18
) {
732 fra
.me
.REG
[2] = BOX_NativeString("");
734 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
735 once_value_18
= fra
.me
.REG
[2];
736 register_static_object(&once_value_18
);
737 } else fra
.me
.REG
[2] = once_value_18
;
738 fra
.me
.REG
[2] = fra
.me
.REG
[2];
739 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
740 fra
.me
.REG
[2] = CALL_compiling___compiling_base___CProgram___get_file_ending(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
741 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
742 if (!once_value_19
) {
743 fra
.me
.REG
[2] = BOX_NativeString("\n");
745 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
746 once_value_19
= fra
.me
.REG
[2];
747 register_static_object(&once_value_19
);
748 } else fra
.me
.REG
[2] = once_value_19
;
749 fra
.me
.REG
[2] = fra
.me
.REG
[2];
750 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
751 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
752 CALL_standard___stream___OStream___write(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
753 /* ./compiling//compiling.nit:117 */
755 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
756 if (!once_value_20
) {
757 fra
.me
.REG
[2] = BOX_NativeString("#define ");
759 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
760 once_value_20
= fra
.me
.REG
[2];
761 register_static_object(&once_value_20
);
762 } else fra
.me
.REG
[2] = once_value_20
;
763 fra
.me
.REG
[2] = fra
.me
.REG
[2];
764 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
765 fra
.me
.REG
[2] = CALL_compiling___compiling_base___MMModule___cname(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
766 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
767 if (!once_value_21
) {
768 fra
.me
.REG
[2] = BOX_NativeString("");
770 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
771 once_value_21
= fra
.me
.REG
[2];
772 register_static_object(&once_value_21
);
773 } else fra
.me
.REG
[2] = once_value_21
;
774 fra
.me
.REG
[2] = fra
.me
.REG
[2];
775 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
776 fra
.me
.REG
[2] = CALL_compiling___compiling_base___CProgram___get_file_ending(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
777 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
778 if (!once_value_22
) {
779 fra
.me
.REG
[2] = BOX_NativeString("\n");
781 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
782 once_value_22
= fra
.me
.REG
[2];
783 register_static_object(&once_value_22
);
784 } else fra
.me
.REG
[2] = once_value_22
;
785 fra
.me
.REG
[2] = fra
.me
.REG
[2];
786 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
787 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
788 CALL_standard___stream___OStream___write(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
789 /* ./compiling//compiling.nit:118 */
790 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
791 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
792 if (UNTAG_Bool(REGB0
)) {
793 nit_abort("Reciever is null", NULL
, LOCATE_compiling
, 118);
795 fra
.me
.REG
[5] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
796 /* ./../lib/standard//collection//array.nit:232 */
798 /* ./../lib/standard//collection//array.nit:233 */
799 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
800 if (UNTAG_Bool(REGB1
)) {
802 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 233);
804 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
805 /* ./../lib/standard//collection//array.nit:234 */
806 fra
.me
.REG
[2] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[5]);
807 /* ./../lib/standard//collection//array.nit:235 */
809 /* ./../lib/standard//collection//array.nit:23 */
810 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
811 if (UNTAG_Bool(REGB1
)) {
813 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 23);
815 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
816 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
817 if (UNTAG_Bool(REGB2
)) {
819 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
821 /* ./../lib/standard//kernel.nit:215 */
822 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
823 /* ./../lib/standard//collection//array.nit:235 */
824 if (UNTAG_Bool(REGB1
)) {
825 /* ./../lib/standard//collection//array.nit:236 */
826 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
827 if (UNTAG_Bool(REGB1
)) {
828 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 236);
830 /* ./../lib/standard//collection//array.nit:652 */
831 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[2])->val
[UNTAG_Int(REGB0
)];
832 /* ./compiling//compiling.nit:118 */
834 fra
.me
.REG
[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
835 if (!once_value_23
) {
836 fra
.me
.REG
[9] = BOX_NativeString("#include \"");
838 fra
.me
.REG
[9] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[9], REGB1
);
839 once_value_23
= fra
.me
.REG
[9];
840 register_static_object(&once_value_23
);
841 } else fra
.me
.REG
[9] = once_value_23
;
842 fra
.me
.REG
[9] = fra
.me
.REG
[9];
843 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
844 fra
.me
.REG
[7] = CALL_compiling___compiling_base___CProgram___module_header_name(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
845 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
846 if (!once_value_24
) {
847 fra
.me
.REG
[7] = BOX_NativeString("\"\n");
849 fra
.me
.REG
[7] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[7], REGB1
);
850 once_value_24
= fra
.me
.REG
[7];
851 register_static_object(&once_value_24
);
852 } else fra
.me
.REG
[7] = once_value_24
;
853 fra
.me
.REG
[7] = fra
.me
.REG
[7];
854 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
855 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
856 CALL_standard___stream___OStream___write(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[8]);
857 /* ./../lib/standard//collection//array.nit:237 */
859 /* ./../lib/standard//kernel.nit:218 */
860 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
861 /* ./../lib/standard//collection//array.nit:237 */
864 /* ./../lib/standard//collection//array.nit:235 */
869 /* ./compiling//compiling.nit:119 */
870 fra
.me
.REG
[2] = CALL_compiling___compiling_base___CompilerVisitor___header_writer(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
871 CALL_compiling___compiling_writer___Writer___write_to_stream(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
872 /* ./compiling//compiling.nit:120 */
873 if (!once_value_26
) {
874 fra
.me
.REG
[2] = BOX_NativeString("#endif\n");
876 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
877 once_value_26
= fra
.me
.REG
[2];
878 register_static_object(&once_value_26
);
879 } else fra
.me
.REG
[2] = once_value_26
;
880 fra
.me
.REG
[2] = fra
.me
.REG
[2];
881 CALL_standard___stream___OStream___write(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
882 /* ./compiling//compiling.nit:121 */
883 CALL_standard___stream___IOS___close(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
884 /* ./compiling//compiling.nit:123 */
886 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
887 if (!once_value_27
) {
888 fra
.me
.REG
[5] = BOX_NativeString("");
890 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
891 once_value_27
= fra
.me
.REG
[5];
892 register_static_object(&once_value_27
);
893 } else fra
.me
.REG
[5] = once_value_27
;
894 fra
.me
.REG
[5] = fra
.me
.REG
[5];
895 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
896 fra
.me
.REG
[5] = CALL_compiling___compiling_base___CProgram___compdir(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
897 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
898 if (!once_value_28
) {
899 fra
.me
.REG
[5] = BOX_NativeString("/");
901 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
902 once_value_28
= fra
.me
.REG
[5];
903 register_static_object(&once_value_28
);
904 } else fra
.me
.REG
[5] = once_value_28
;
905 fra
.me
.REG
[5] = fra
.me
.REG
[5];
906 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
907 fra
.me
.REG
[5] = CALL_compiling___compiling_base___MMModule___cname(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
908 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
909 if (!once_value_29
) {
910 fra
.me
.REG
[5] = BOX_NativeString(".");
912 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
913 once_value_29
= fra
.me
.REG
[5];
914 register_static_object(&once_value_29
);
915 } else fra
.me
.REG
[5] = once_value_29
;
916 fra
.me
.REG
[5] = fra
.me
.REG
[5];
917 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
918 fra
.me
.REG
[5] = CALL_compiling___compiling_base___CProgram___get_file_ending(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
919 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
920 if (!once_value_30
) {
921 fra
.me
.REG
[5] = BOX_NativeString(".c");
923 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
924 once_value_30
= fra
.me
.REG
[5];
925 register_static_object(&once_value_30
);
926 } else fra
.me
.REG
[5] = once_value_30
;
927 fra
.me
.REG
[5] = fra
.me
.REG
[5];
928 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
929 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
930 /* ./compiling//compiling.nit:124 */
931 fra
.me
.REG
[1] = CALL_compiling___compiling_base___CProgram___files(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
932 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
933 /* ./compiling//compiling.nit:125 */
935 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
936 if (!once_value_31
) {
937 fra
.me
.REG
[5] = BOX_NativeString("");
939 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
940 once_value_31
= fra
.me
.REG
[5];
941 register_static_object(&once_value_31
);
942 } else fra
.me
.REG
[5] = once_value_31
;
943 fra
.me
.REG
[5] = fra
.me
.REG
[5];
944 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
945 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
946 if (!once_value_32
) {
947 fra
.me
.REG
[2] = BOX_NativeString("");
949 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
950 once_value_32
= fra
.me
.REG
[2];
951 register_static_object(&once_value_32
);
952 } else fra
.me
.REG
[2] = once_value_32
;
953 fra
.me
.REG
[2] = fra
.me
.REG
[2];
954 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
955 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
956 fra
.me
.REG
[1] = NEW_OFStream_standard___file___OFStream___open(fra
.me
.REG
[1]);
957 fra
.me
.REG
[4] = fra
.me
.REG
[1];
958 /* ./compiling//compiling.nit:126 */
960 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
961 if (!once_value_33
) {
962 fra
.me
.REG
[2] = BOX_NativeString("/* This C file is generated by NIT to compile module ");
964 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
965 once_value_33
= fra
.me
.REG
[2];
966 register_static_object(&once_value_33
);
967 } else fra
.me
.REG
[2] = once_value_33
;
968 fra
.me
.REG
[2] = fra
.me
.REG
[2];
969 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
970 fra
.me
.REG
[0] = CALL_compiling___compiling_base___MMModule___cname(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
971 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
972 if (!once_value_34
) {
973 fra
.me
.REG
[0] = BOX_NativeString(". */\n");
975 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
976 once_value_34
= fra
.me
.REG
[0];
977 register_static_object(&once_value_34
);
978 } else fra
.me
.REG
[0] = once_value_34
;
979 fra
.me
.REG
[0] = fra
.me
.REG
[0];
980 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
981 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
982 CALL_standard___stream___OStream___write(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
983 /* ./compiling//compiling.nit:127 */
985 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
986 if (!once_value_35
) {
987 fra
.me
.REG
[0] = BOX_NativeString("#include \"");
989 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
990 once_value_35
= fra
.me
.REG
[0];
991 register_static_object(&once_value_35
);
992 } else fra
.me
.REG
[0] = once_value_35
;
993 fra
.me
.REG
[0] = fra
.me
.REG
[0];
994 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
995 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
996 if (!once_value_36
) {
997 fra
.me
.REG
[6] = BOX_NativeString("\"\n");
999 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB0
);
1000 once_value_36
= fra
.me
.REG
[6];
1001 register_static_object(&once_value_36
);
1002 } else fra
.me
.REG
[6] = once_value_36
;
1003 fra
.me
.REG
[6] = fra
.me
.REG
[6];
1004 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
1005 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1006 CALL_standard___stream___OStream___write(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
1007 /* ./compiling//compiling.nit:128 */
1008 fra
.me
.REG
[3] = CALL_compiling___compiling_base___CompilerVisitor___top_writer(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1009 CALL_compiling___compiling_writer___Writer___write_to_stream(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1010 /* ./compiling//compiling.nit:129 */
1011 CALL_standard___stream___IOS___close(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1012 stack_frame_head
= fra
.me
.prev
;