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:27 */
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
, 27);
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:27 */
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:33 */
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_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_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:39 */
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_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_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
96 if (UNTAG_Bool(REGB0
)) {
97 /* ./compiling//compiling.nit:40 */
98 CALL_compiling___Program___compile_prog_to_c(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
100 /* ./compiling//compiling.nit:41 */
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_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_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
116 if (UNTAG_Bool(REGB0
)) {
117 /* ./compiling//compiling.nit:42 */
118 CALL_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:37 */
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:52 */
164 fra
.me
.REG
[1] = NEW_CProgram_compiling_base___CProgram___init(fra
.me
.REG
[0]);
165 /* ./compiling//compiling.nit:54 */
166 fra
.me
.REG
[2] = CALL_compiling_base___CProgram___compdir(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
167 CALL_file___String___mkdir(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
168 /* ./compiling//compiling.nit:56 */
169 fra
.me
.REG
[2] = CALL_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_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_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
179 /* ./compiling//compiling.nit:57 */
180 fra
.me
.REG
[3] = CALL_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_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_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
190 /* ./compiling//compiling.nit:58 */
191 fra
.me
.REG
[2] = CALL_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_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_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
201 /* ./compiling//compiling.nit:60 */
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_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:61 */
214 fra
.me
.REG
[2] = CALL_program___Program___main_module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
215 fra
.me
.REG
[2] = CALL_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
, 61);
220 fra
.me
.REG
[2] = CALL_partial_order___PartialOrderElement___greaters_and_self(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
221 CALL_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:63 */
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_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:64 */
235 CALL_compiling___Program___compile_main(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
236 /* ./compiling//compiling.nit:66 */
237 CALL_compiling_base___CProgram___generate_build_file(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
238 /* ./compiling//compiling.nit:68 */
239 fra
.me
.REG
[0] = CALL_program___Program___tc(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
240 REGB0
= CALL_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_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:74 */
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_base___CompilerVisitor___init(fra
.me
.REG
[2], fra
.me
.REG
[1]);
294 /* ./compiling//compiling.nit:75 */
296 fra
.me
.REG
[3] = BOX_NativeString("#include <nit_common.h>");
298 fra
.me
.REG
[3] = NEW_String_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_base___CompilerVisitor___add_decl(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
304 /* ./compiling//compiling.nit:76 */
305 CALL_compiling_global___Program___compile_tables_to_c(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
306 /* ./compiling//compiling.nit:77 */
307 CALL_compiling_global___Program___compile_main_part(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
308 /* ./compiling//compiling.nit:78 */
310 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
312 fra
.me
.REG
[4] = BOX_NativeString("");
314 fra
.me
.REG
[4] = NEW_String_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_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
320 fra
.me
.REG
[4] = CALL_compiling_base___CProgram___compdir(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
321 CALL_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_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_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_abstractmetamodel___MMModule___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
333 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
334 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
336 fra
.me
.REG
[4] = BOX_NativeString("._tables.c");
338 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
339 once_value_4
= fra
.me
.REG
[4];
340 register_static_object(&once_value_4
);
341 } else fra
.me
.REG
[4] = once_value_4
;
342 fra
.me
.REG
[4] = fra
.me
.REG
[4];
343 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
344 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
345 /* ./compiling//compiling.nit:79 */
346 fra
.me
.REG
[4] = CALL_compiling_base___CProgram___files(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
347 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
348 /* ./compiling//compiling.nit:80 */
349 fra
.me
.REG
[3] = NEW_OFStream_file___OFStream___open(fra
.me
.REG
[3]);
350 /* ./compiling//compiling.nit:81 */
352 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
354 fra
.me
.REG
[5] = BOX_NativeString("/* This C file is generated by NIT to compile program ");
356 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
357 once_value_5
= fra
.me
.REG
[5];
358 register_static_object(&once_value_5
);
359 } else fra
.me
.REG
[5] = once_value_5
;
360 fra
.me
.REG
[5] = fra
.me
.REG
[5];
361 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
362 fra
.me
.REG
[5] = CALL_program___Program___main_module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
363 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMModule___name(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
364 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
365 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
367 fra
.me
.REG
[5] = BOX_NativeString(". */\n");
369 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
370 once_value_6
= fra
.me
.REG
[5];
371 register_static_object(&once_value_6
);
372 } else fra
.me
.REG
[5] = once_value_6
;
373 fra
.me
.REG
[5] = fra
.me
.REG
[5];
374 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
375 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
376 CALL_stream___OStream___write(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
377 /* ./compiling//compiling.nit:82 */
378 fra
.me
.REG
[0] = CALL_program___Program___main_module(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
379 fra
.me
.REG
[0] = CALL_abstractmetamodel___MMModule___mhe(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
380 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
381 if (UNTAG_Bool(REGB0
)) {
382 nit_abort("Reciever is null", NULL
, LOCATE_compiling
, 82);
384 fra
.me
.REG
[0] = CALL_partial_order___PartialOrderElement___greaters_and_self(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
385 CALL_abstract_collection___Collection___iterate(fra
.me
.REG
[0])(fra
.me
.REG
[0], (&(fra
.me
)), ((fun_t
)OC_compiling___Program___compile_main_7
));
386 /* ./compiling//compiling.nit:85 */
387 fra
.me
.REG
[1] = CALL_compiling_base___CompilerVisitor___header_writer(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
388 CALL_compiling_writer___Writer___write_to_stream(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
389 /* ./compiling//compiling.nit:86 */
390 fra
.me
.REG
[2] = CALL_compiling_base___CompilerVisitor___writer(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
391 CALL_compiling_writer___Writer___write_to_stream(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
392 /* ./compiling//compiling.nit:87 */
393 CALL_stream___IOS___close(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
394 stack_frame_head
= fra
.me
.prev
;
397 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
){
398 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
402 static val_t once_value_8
; /* Once value */
403 static val_t once_value_9
; /* Once value */
404 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
405 fra
.me
.file
= LOCATE_compiling
;
407 fra
.me
.meth
= LOCATE_compiling___Program___compile_main
;
408 fra
.me
.has_broke
= 0;
410 fra
.me
.REG
[0] = NIT_NULL
;
411 fra
.me
.REG
[1] = NIT_NULL
;
412 fra
.me
.REG
[2] = NIT_NULL
;
413 fra
.me
.closure_ctx
= closctx_param
;
414 fra
.me
.closure_funs
= CREG
;
417 /* ./compiling//compiling.nit:83 */
419 fra
.me
.REG
[1] = NEW_Array_array___Array___with_capacity(REGB0
);
421 fra
.me
.REG
[2] = BOX_NativeString("#include \"");
423 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
424 once_value_8
= fra
.me
.REG
[2];
425 register_static_object(&once_value_8
);
426 } else fra
.me
.REG
[2] = once_value_8
;
427 fra
.me
.REG
[2] = fra
.me
.REG
[2];
428 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
429 fra
.me
.REG
[0] = CALL_compiling_base___CProgram___module_header_name(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
430 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
432 fra
.me
.REG
[0] = BOX_NativeString("\"\n");
434 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
435 once_value_9
= fra
.me
.REG
[0];
436 register_static_object(&once_value_9
);
437 } else fra
.me
.REG
[0] = once_value_9
;
438 fra
.me
.REG
[0] = fra
.me
.REG
[0];
439 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
440 fra
.me
.REG
[1] = CALL_string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
441 CALL_stream___OStream___write(closctx
->REG
[3])(closctx
->REG
[3], fra
.me
.REG
[1]);
442 stack_frame_head
= fra
.me
.prev
;
445 void compiling___MMModule___compile_separate_module(val_t p0
, val_t p1
){
446 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
450 static val_t once_value_1
; /* Once value */
451 static val_t once_value_2
; /* Once value */
452 static val_t once_value_3
; /* Once value */
453 static val_t once_value_4
; /* Once value */
454 static val_t once_value_5
; /* Once value */
455 static val_t once_value_6
; /* Once value */
456 static val_t once_value_7
; /* Once value */
457 static val_t once_value_8
; /* Once value */
458 static val_t once_value_9
; /* Once value */
459 static val_t once_value_10
; /* Once value */
460 static val_t once_value_11
; /* Once value */
461 static val_t once_value_12
; /* Once value */
462 static val_t once_value_13
; /* Once value */
463 static val_t once_value_14
; /* Once value */
464 static val_t once_value_15
; /* Once value */
465 static val_t once_value_16
; /* Once value */
466 static val_t once_value_17
; /* Once value */
467 static val_t once_value_18
; /* Once value */
468 static val_t once_value_19
; /* Once value */
469 static val_t once_value_20
; /* Once value */
470 static val_t once_value_21
; /* Once value */
471 static val_t once_value_22
; /* Once value */
472 static val_t once_value_23
; /* Once value */
473 static val_t once_value_24
; /* Once value */
474 static val_t once_value_26
; /* Once value */
475 static val_t once_value_27
; /* Once value */
476 static val_t once_value_28
; /* Once value */
477 static val_t once_value_29
; /* Once value */
478 static val_t once_value_30
; /* Once value */
479 static val_t once_value_31
; /* Once value */
480 static val_t once_value_32
; /* Once value */
481 static val_t once_value_33
; /* Once value */
482 static val_t once_value_34
; /* Once value */
483 static val_t once_value_35
; /* Once value */
484 static val_t once_value_36
; /* Once value */
485 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
486 fra
.me
.file
= LOCATE_compiling
;
488 fra
.me
.meth
= LOCATE_compiling___MMModule___compile_separate_module
;
489 fra
.me
.has_broke
= 0;
490 fra
.me
.REG_size
= 10;
491 fra
.me
.REG
[0] = NIT_NULL
;
492 fra
.me
.REG
[1] = NIT_NULL
;
493 fra
.me
.REG
[2] = NIT_NULL
;
494 fra
.me
.REG
[3] = NIT_NULL
;
495 fra
.me
.REG
[4] = NIT_NULL
;
496 fra
.me
.REG
[5] = NIT_NULL
;
497 fra
.me
.REG
[6] = NIT_NULL
;
498 fra
.me
.REG
[7] = NIT_NULL
;
499 fra
.me
.REG
[8] = NIT_NULL
;
500 fra
.me
.REG
[9] = NIT_NULL
;
503 /* ./compiling//compiling.nit:95 */
504 fra
.me
.REG
[2] = CALL_compiling_base___CProgram___program(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
505 fra
.me
.REG
[2] = CALL_program___Program___tc(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
506 /* ./compiling//compiling.nit:96 */
508 fra
.me
.REG
[3] = NEW_Array_array___Array___with_capacity(REGB0
);
510 fra
.me
.REG
[4] = BOX_NativeString("Generating C code for module: ");
512 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
513 once_value_1
= fra
.me
.REG
[4];
514 register_static_object(&once_value_1
);
515 } else fra
.me
.REG
[4] = once_value_1
;
516 fra
.me
.REG
[4] = fra
.me
.REG
[4];
517 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
518 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMModule___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
519 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
520 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
522 fra
.me
.REG
[4] = BOX_NativeString("");
524 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
525 once_value_2
= fra
.me
.REG
[4];
526 register_static_object(&once_value_2
);
527 } else fra
.me
.REG
[4] = once_value_2
;
528 fra
.me
.REG
[4] = fra
.me
.REG
[4];
529 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
530 fra
.me
.REG
[3] = CALL_string___Object___to_s(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
532 CALL_mmloader___ToolContext___info(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], REGB0
);
533 /* ./compiling//compiling.nit:97 */
534 fra
.me
.REG
[3] = NEW_CompilerVisitor_compiling_base___CompilerVisitor___init(fra
.me
.REG
[0], fra
.me
.REG
[1]);
535 /* ./compiling//compiling.nit:98 */
537 fra
.me
.REG
[2] = BOX_NativeString("#include <nit_common.h>");
539 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
540 once_value_3
= fra
.me
.REG
[2];
541 register_static_object(&once_value_3
);
542 } else fra
.me
.REG
[2] = once_value_3
;
543 fra
.me
.REG
[2] = fra
.me
.REG
[2];
544 CALL_compiling_base___CompilerVisitor___add_decl(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
545 /* ./compiling//compiling.nit:100 */
546 fra
.me
.REG
[2] = CALL_abstractmetamodel___MMModule___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
547 fra
.me
.REG
[2] = CALL_location___Location___file(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
549 fra
.me
.REG
[4] = BOX_NativeString(".nit");
551 fra
.me
.REG
[4] = NEW_String_string___String___with_native(fra
.me
.REG
[4], REGB0
);
552 once_value_4
= fra
.me
.REG
[4];
553 register_static_object(&once_value_4
);
554 } else fra
.me
.REG
[4] = once_value_4
;
555 fra
.me
.REG
[4] = fra
.me
.REG
[4];
556 fra
.me
.REG
[4] = CALL_file___String___strip_extension(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
557 /* ./compiling//compiling.nit:101 */
559 fra
.me
.REG
[2] = BOX_NativeString("_nit.h");
561 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
562 once_value_5
= fra
.me
.REG
[2];
563 register_static_object(&once_value_5
);
564 } else fra
.me
.REG
[2] = once_value_5
;
565 fra
.me
.REG
[2] = fra
.me
.REG
[2];
566 fra
.me
.REG
[2] = CALL_string___String_____plus(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
567 /* ./compiling//compiling.nit:102 */
568 REGB0
= CALL_file___String___file_exists(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
569 if (UNTAG_Bool(REGB0
)) {
570 /* ./compiling//compiling.nit:103 */
572 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB0
);
574 fra
.me
.REG
[6] = BOX_NativeString("#include <");
576 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
577 once_value_6
= fra
.me
.REG
[6];
578 register_static_object(&once_value_6
);
579 } else fra
.me
.REG
[6] = once_value_6
;
580 fra
.me
.REG
[6] = fra
.me
.REG
[6];
581 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
583 fra
.me
.REG
[6] = BOX_NativeString("");
585 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
586 once_value_7
= fra
.me
.REG
[6];
587 register_static_object(&once_value_7
);
588 } else fra
.me
.REG
[6] = once_value_7
;
589 fra
.me
.REG
[6] = fra
.me
.REG
[6];
590 fra
.me
.REG
[6] = CALL_file___String___basename(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
591 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
593 fra
.me
.REG
[6] = BOX_NativeString(">");
595 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
596 once_value_8
= fra
.me
.REG
[6];
597 register_static_object(&once_value_8
);
598 } else fra
.me
.REG
[6] = once_value_8
;
599 fra
.me
.REG
[6] = fra
.me
.REG
[6];
600 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
601 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
602 CALL_compiling_base___CompilerVisitor___add_decl(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[5]);
603 /* ./compiling//compiling.nit:104 */
604 fra
.me
.REG
[5] = CALL_compiling_base___CProgram___include_dirs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
606 fra
.me
.REG
[6] = NEW_Array_array___Array___with_capacity(REGB0
);
608 fra
.me
.REG
[2] = BOX_NativeString("-I ");
610 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
611 once_value_9
= fra
.me
.REG
[2];
612 register_static_object(&once_value_9
);
613 } else fra
.me
.REG
[2] = once_value_9
;
614 fra
.me
.REG
[2] = fra
.me
.REG
[2];
615 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[2]);
616 fra
.me
.REG
[2] = CALL_file___String___dirname(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
617 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[2]);
618 if (!once_value_10
) {
619 fra
.me
.REG
[2] = BOX_NativeString("");
621 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
622 once_value_10
= fra
.me
.REG
[2];
623 register_static_object(&once_value_10
);
624 } else fra
.me
.REG
[2] = once_value_10
;
625 fra
.me
.REG
[2] = fra
.me
.REG
[2];
626 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[2]);
627 fra
.me
.REG
[6] = CALL_string___Object___to_s(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
628 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[6]);
630 /* ./compiling//compiling.nit:106 */
631 if (!once_value_11
) {
632 fra
.me
.REG
[6] = BOX_NativeString("_nit.c");
634 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
635 once_value_11
= fra
.me
.REG
[6];
636 register_static_object(&once_value_11
);
637 } else fra
.me
.REG
[6] = once_value_11
;
638 fra
.me
.REG
[6] = fra
.me
.REG
[6];
639 fra
.me
.REG
[6] = CALL_string___String_____plus(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
640 /* ./compiling//compiling.nit:107 */
641 REGB0
= CALL_file___String___file_exists(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
642 if (UNTAG_Bool(REGB0
)) {
643 fra
.me
.REG
[4] = CALL_compiling_base___CProgram___files(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
644 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
646 /* ./compiling//compiling.nit:109 */
647 CALL_compiling_global___MMModule___declare_class_tables_to_c(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
648 /* ./compiling//compiling.nit:110 */
649 CALL_compiling_global___MMModule___compile_mod_to_c(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
650 /* ./compiling//compiling.nit:112 */
651 fra
.me
.REG
[6] = CALL_compiling_base___CProgram___module_header_name(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
652 /* ./compiling//compiling.nit:113 */
654 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
655 if (!once_value_12
) {
656 fra
.me
.REG
[5] = BOX_NativeString("");
658 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
659 once_value_12
= fra
.me
.REG
[5];
660 register_static_object(&once_value_12
);
661 } else fra
.me
.REG
[5] = once_value_12
;
662 fra
.me
.REG
[5] = fra
.me
.REG
[5];
663 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
664 fra
.me
.REG
[5] = CALL_compiling_base___CProgram___compdir(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
665 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
666 if (!once_value_13
) {
667 fra
.me
.REG
[5] = BOX_NativeString("/");
669 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
670 once_value_13
= fra
.me
.REG
[5];
671 register_static_object(&once_value_13
);
672 } else fra
.me
.REG
[5] = once_value_13
;
673 fra
.me
.REG
[5] = fra
.me
.REG
[5];
674 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
675 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
676 if (!once_value_14
) {
677 fra
.me
.REG
[5] = BOX_NativeString("");
679 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
680 once_value_14
= fra
.me
.REG
[5];
681 register_static_object(&once_value_14
);
682 } else fra
.me
.REG
[5] = once_value_14
;
683 fra
.me
.REG
[5] = fra
.me
.REG
[5];
684 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
685 fra
.me
.REG
[4] = CALL_string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
686 fra
.me
.REG
[4] = NEW_OFStream_file___OFStream___open(fra
.me
.REG
[4]);
687 /* ./compiling//compiling.nit:114 */
689 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB0
);
690 if (!once_value_15
) {
691 fra
.me
.REG
[2] = BOX_NativeString("/* This C header file is generated by NIT to compile modules and programs that requires ");
693 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
694 once_value_15
= fra
.me
.REG
[2];
695 register_static_object(&once_value_15
);
696 } else fra
.me
.REG
[2] = once_value_15
;
697 fra
.me
.REG
[2] = fra
.me
.REG
[2];
698 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
699 fra
.me
.REG
[2] = CALL_abstractmetamodel___MMModule___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
700 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
701 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
702 if (!once_value_16
) {
703 fra
.me
.REG
[2] = BOX_NativeString(". */\n");
705 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
706 once_value_16
= fra
.me
.REG
[2];
707 register_static_object(&once_value_16
);
708 } else fra
.me
.REG
[2] = once_value_16
;
709 fra
.me
.REG
[2] = fra
.me
.REG
[2];
710 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
711 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
712 CALL_stream___OStream___write(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
713 /* ./compiling//compiling.nit:115 */
715 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB0
);
716 if (!once_value_17
) {
717 fra
.me
.REG
[2] = BOX_NativeString("#ifndef ");
719 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
720 once_value_17
= fra
.me
.REG
[2];
721 register_static_object(&once_value_17
);
722 } else fra
.me
.REG
[2] = once_value_17
;
723 fra
.me
.REG
[2] = fra
.me
.REG
[2];
724 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
725 fra
.me
.REG
[2] = CALL_abstractmetamodel___MMModule___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
726 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
727 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
728 if (!once_value_18
) {
729 fra
.me
.REG
[2] = BOX_NativeString("");
731 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
732 once_value_18
= fra
.me
.REG
[2];
733 register_static_object(&once_value_18
);
734 } else fra
.me
.REG
[2] = once_value_18
;
735 fra
.me
.REG
[2] = fra
.me
.REG
[2];
736 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
737 fra
.me
.REG
[2] = CALL_compiling_base___CProgram___get_file_ending(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
738 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
739 if (!once_value_19
) {
740 fra
.me
.REG
[2] = BOX_NativeString("\n");
742 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
743 once_value_19
= fra
.me
.REG
[2];
744 register_static_object(&once_value_19
);
745 } else fra
.me
.REG
[2] = once_value_19
;
746 fra
.me
.REG
[2] = fra
.me
.REG
[2];
747 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
748 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
749 CALL_stream___OStream___write(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
750 /* ./compiling//compiling.nit:116 */
752 fra
.me
.REG
[5] = NEW_Array_array___Array___with_capacity(REGB0
);
753 if (!once_value_20
) {
754 fra
.me
.REG
[2] = BOX_NativeString("#define ");
756 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
757 once_value_20
= fra
.me
.REG
[2];
758 register_static_object(&once_value_20
);
759 } else fra
.me
.REG
[2] = once_value_20
;
760 fra
.me
.REG
[2] = fra
.me
.REG
[2];
761 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
762 fra
.me
.REG
[2] = CALL_abstractmetamodel___MMModule___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
763 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
764 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
765 if (!once_value_21
) {
766 fra
.me
.REG
[2] = BOX_NativeString("");
768 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
769 once_value_21
= fra
.me
.REG
[2];
770 register_static_object(&once_value_21
);
771 } else fra
.me
.REG
[2] = once_value_21
;
772 fra
.me
.REG
[2] = fra
.me
.REG
[2];
773 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
774 fra
.me
.REG
[2] = CALL_compiling_base___CProgram___get_file_ending(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
775 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
776 if (!once_value_22
) {
777 fra
.me
.REG
[2] = BOX_NativeString("\n");
779 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
780 once_value_22
= fra
.me
.REG
[2];
781 register_static_object(&once_value_22
);
782 } else fra
.me
.REG
[2] = once_value_22
;
783 fra
.me
.REG
[2] = fra
.me
.REG
[2];
784 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
785 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
786 CALL_stream___OStream___write(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
787 /* ./compiling//compiling.nit:117 */
788 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMModule___mhe(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
789 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
790 if (UNTAG_Bool(REGB0
)) {
791 nit_abort("Reciever is null", NULL
, LOCATE_compiling
, 117);
793 fra
.me
.REG
[5] = CALL_partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
794 /* ./../lib/standard//collection//array.nit:234 */
796 /* ./../lib/standard//collection//array.nit:235 */
797 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
798 if (UNTAG_Bool(REGB1
)) {
800 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
802 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5]);
803 /* ./../lib/standard//collection//array.nit:236 */
804 fra
.me
.REG
[2] = ATTR_array___Array____items(fra
.me
.REG
[5]);
805 /* ./../lib/standard//collection//array.nit:237 */
807 /* ./../lib/standard//collection//array.nit:23 */
808 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
809 if (UNTAG_Bool(REGB1
)) {
811 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
813 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[5]);
814 /* ./../lib/standard//kernel.nit:212 */
815 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
816 /* ./../lib/standard//collection//array.nit:237 */
817 if (UNTAG_Bool(REGB1
)) {
818 /* ./../lib/standard//collection//array.nit:238 */
819 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
820 if (UNTAG_Bool(REGB1
)) {
821 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
823 /* ./../lib/standard//collection//array.nit:654 */
824 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[2])->val
[UNTAG_Int(REGB0
)];
825 /* ./compiling//compiling.nit:117 */
827 fra
.me
.REG
[8] = NEW_Array_array___Array___with_capacity(REGB1
);
828 if (!once_value_23
) {
829 fra
.me
.REG
[9] = BOX_NativeString("#include \"");
831 fra
.me
.REG
[9] = NEW_String_string___String___with_native(fra
.me
.REG
[9], REGB1
);
832 once_value_23
= fra
.me
.REG
[9];
833 register_static_object(&once_value_23
);
834 } else fra
.me
.REG
[9] = once_value_23
;
835 fra
.me
.REG
[9] = fra
.me
.REG
[9];
836 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[9]);
837 fra
.me
.REG
[7] = CALL_compiling_base___CProgram___module_header_name(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
838 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
839 if (!once_value_24
) {
840 fra
.me
.REG
[7] = BOX_NativeString("\"\n");
842 fra
.me
.REG
[7] = NEW_String_string___String___with_native(fra
.me
.REG
[7], REGB1
);
843 once_value_24
= fra
.me
.REG
[7];
844 register_static_object(&once_value_24
);
845 } else fra
.me
.REG
[7] = once_value_24
;
846 fra
.me
.REG
[7] = fra
.me
.REG
[7];
847 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7]);
848 fra
.me
.REG
[8] = CALL_string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
849 CALL_stream___OStream___write(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[8]);
850 /* ./../lib/standard//collection//array.nit:239 */
852 /* ./../lib/standard//kernel.nit:215 */
853 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
854 /* ./../lib/standard//collection//array.nit:239 */
857 /* ./../lib/standard//collection//array.nit:237 */
862 /* ./compiling//compiling.nit:118 */
863 fra
.me
.REG
[2] = CALL_compiling_base___CompilerVisitor___header_writer(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
864 CALL_compiling_writer___Writer___write_to_stream(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
865 /* ./compiling//compiling.nit:119 */
866 if (!once_value_26
) {
867 fra
.me
.REG
[2] = BOX_NativeString("#endif\n");
869 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
870 once_value_26
= fra
.me
.REG
[2];
871 register_static_object(&once_value_26
);
872 } else fra
.me
.REG
[2] = once_value_26
;
873 fra
.me
.REG
[2] = fra
.me
.REG
[2];
874 CALL_stream___OStream___write(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
875 /* ./compiling//compiling.nit:120 */
876 CALL_stream___IOS___close(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
877 /* ./compiling//compiling.nit:122 */
879 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
880 if (!once_value_27
) {
881 fra
.me
.REG
[5] = BOX_NativeString("");
883 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
884 once_value_27
= fra
.me
.REG
[5];
885 register_static_object(&once_value_27
);
886 } else fra
.me
.REG
[5] = once_value_27
;
887 fra
.me
.REG
[5] = fra
.me
.REG
[5];
888 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
889 fra
.me
.REG
[5] = CALL_compiling_base___CProgram___compdir(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
890 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
891 if (!once_value_28
) {
892 fra
.me
.REG
[5] = BOX_NativeString("/");
894 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
895 once_value_28
= fra
.me
.REG
[5];
896 register_static_object(&once_value_28
);
897 } else fra
.me
.REG
[5] = once_value_28
;
898 fra
.me
.REG
[5] = fra
.me
.REG
[5];
899 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
900 fra
.me
.REG
[5] = CALL_abstractmetamodel___MMModule___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
901 fra
.me
.REG
[5] = CALL_string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
902 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
903 if (!once_value_29
) {
904 fra
.me
.REG
[5] = BOX_NativeString(".");
906 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
907 once_value_29
= fra
.me
.REG
[5];
908 register_static_object(&once_value_29
);
909 } else fra
.me
.REG
[5] = once_value_29
;
910 fra
.me
.REG
[5] = fra
.me
.REG
[5];
911 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
912 fra
.me
.REG
[5] = CALL_compiling_base___CProgram___get_file_ending(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
913 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
914 if (!once_value_30
) {
915 fra
.me
.REG
[5] = BOX_NativeString(".c");
917 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
918 once_value_30
= fra
.me
.REG
[5];
919 register_static_object(&once_value_30
);
920 } else fra
.me
.REG
[5] = once_value_30
;
921 fra
.me
.REG
[5] = fra
.me
.REG
[5];
922 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
923 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
924 /* ./compiling//compiling.nit:123 */
925 fra
.me
.REG
[1] = CALL_compiling_base___CProgram___files(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
926 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
927 /* ./compiling//compiling.nit:124 */
929 fra
.me
.REG
[1] = NEW_Array_array___Array___with_capacity(REGB0
);
930 if (!once_value_31
) {
931 fra
.me
.REG
[5] = BOX_NativeString("");
933 fra
.me
.REG
[5] = NEW_String_string___String___with_native(fra
.me
.REG
[5], REGB0
);
934 once_value_31
= fra
.me
.REG
[5];
935 register_static_object(&once_value_31
);
936 } else fra
.me
.REG
[5] = once_value_31
;
937 fra
.me
.REG
[5] = fra
.me
.REG
[5];
938 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[5]);
939 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
940 if (!once_value_32
) {
941 fra
.me
.REG
[2] = BOX_NativeString("");
943 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
944 once_value_32
= fra
.me
.REG
[2];
945 register_static_object(&once_value_32
);
946 } else fra
.me
.REG
[2] = once_value_32
;
947 fra
.me
.REG
[2] = fra
.me
.REG
[2];
948 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
949 fra
.me
.REG
[1] = CALL_string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
950 fra
.me
.REG
[1] = NEW_OFStream_file___OFStream___open(fra
.me
.REG
[1]);
951 fra
.me
.REG
[4] = fra
.me
.REG
[1];
952 /* ./compiling//compiling.nit:125 */
954 fra
.me
.REG
[1] = NEW_Array_array___Array___with_capacity(REGB0
);
955 if (!once_value_33
) {
956 fra
.me
.REG
[2] = BOX_NativeString("/* This C file is generated by NIT to compile module ");
958 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
959 once_value_33
= fra
.me
.REG
[2];
960 register_static_object(&once_value_33
);
961 } else fra
.me
.REG
[2] = once_value_33
;
962 fra
.me
.REG
[2] = fra
.me
.REG
[2];
963 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
964 fra
.me
.REG
[0] = CALL_abstractmetamodel___MMModule___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
965 fra
.me
.REG
[0] = CALL_string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
966 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
967 if (!once_value_34
) {
968 fra
.me
.REG
[0] = BOX_NativeString(". */\n");
970 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
971 once_value_34
= fra
.me
.REG
[0];
972 register_static_object(&once_value_34
);
973 } else fra
.me
.REG
[0] = once_value_34
;
974 fra
.me
.REG
[0] = fra
.me
.REG
[0];
975 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
976 fra
.me
.REG
[1] = CALL_string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
977 CALL_stream___OStream___write(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
978 /* ./compiling//compiling.nit:126 */
980 fra
.me
.REG
[1] = NEW_Array_array___Array___with_capacity(REGB0
);
981 if (!once_value_35
) {
982 fra
.me
.REG
[0] = BOX_NativeString("#include \"");
984 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
985 once_value_35
= fra
.me
.REG
[0];
986 register_static_object(&once_value_35
);
987 } else fra
.me
.REG
[0] = once_value_35
;
988 fra
.me
.REG
[0] = fra
.me
.REG
[0];
989 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
990 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
991 if (!once_value_36
) {
992 fra
.me
.REG
[6] = BOX_NativeString("\"\n");
994 fra
.me
.REG
[6] = NEW_String_string___String___with_native(fra
.me
.REG
[6], REGB0
);
995 once_value_36
= fra
.me
.REG
[6];
996 register_static_object(&once_value_36
);
997 } else fra
.me
.REG
[6] = once_value_36
;
998 fra
.me
.REG
[6] = fra
.me
.REG
[6];
999 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
1000 fra
.me
.REG
[1] = CALL_string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1001 CALL_stream___OStream___write(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
1002 /* ./compiling//compiling.nit:127 */
1003 fra
.me
.REG
[3] = CALL_compiling_base___CompilerVisitor___top_writer(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1004 CALL_compiling_writer___Writer___write_to_stream(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1005 /* ./compiling//compiling.nit:128 */
1006 CALL_stream___IOS___close(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1007 stack_frame_head
= fra
.me
.prev
;