c_src: update to have intern args
[nit.git] / c_src / compiling._sep.c
1 /* This C file is generated by NIT to compile module compiling. */
2 #include "compiling._sep.h"
3 static const char LOCATE_compiling___Program___output_format[] = "compiling::Program::output_format";
4 val_t compiling___Program___output_format(val_t p0){
5 struct {struct stack_frame_t me;} fra;
6 val_t REGB0;
7 val_t tmp;
8 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9 fra.me.file = LOCATE_compiling;
10 fra.me.line = 28;
11 fra.me.meth = LOCATE_compiling___Program___output_format;
12 fra.me.has_broke = 0;
13 fra.me.REG_size = 1;
14 fra.me.nitni_local_ref_head = NULL;
15 fra.me.REG[0] = NIT_NULL;
16 fra.me.REG[0] = p0;
17 /* compiling/compiling.nit:28 */
18 REGB0 = TAG_Bool(ATTR_compiling___Program____output_format(fra.me.REG[0])!=NIT_NULL);
19 if (UNTAG_Bool(REGB0)) {
20 } else {
21 nit_abort("Uninitialized attribute %s", "_output_format", LOCATE_compiling, 28);
22 }
23 fra.me.REG[0] = ATTR_compiling___Program____output_format(fra.me.REG[0]);
24 stack_frame_head = fra.me.prev;
25 return fra.me.REG[0];
26 }
27 static const char LOCATE_compiling___Program___output_format__eq[] = "compiling::Program::output_format=";
28 void compiling___Program___output_format__eq(val_t p0, val_t p1){
29 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30 val_t tmp;
31 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32 fra.me.file = LOCATE_compiling;
33 fra.me.line = 28;
34 fra.me.meth = LOCATE_compiling___Program___output_format__eq;
35 fra.me.has_broke = 0;
36 fra.me.REG_size = 2;
37 fra.me.nitni_local_ref_head = NULL;
38 fra.me.REG[0] = NIT_NULL;
39 fra.me.REG[1] = NIT_NULL;
40 fra.me.REG[0] = p0;
41 fra.me.REG[1] = p1;
42 /* compiling/compiling.nit:28 */
43 ATTR_compiling___Program____output_format(fra.me.REG[0]) = fra.me.REG[1];
44 stack_frame_head = fra.me.prev;
45 return;
46 }
47 static const char LOCATE_compiling___Program___compile_prog[] = "compiling::Program::compile_prog";
48 void compiling___Program___compile_prog(val_t p0){
49 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
50 val_t REGB0;
51 val_t REGB1;
52 val_t tmp;
53 static val_t once_value_1; /* Once value */
54 static val_t once_value_3; /* Once value */
55 static val_t once_value_4; /* Once value */
56 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
57 fra.me.file = LOCATE_compiling;
58 fra.me.line = 31;
59 fra.me.meth = LOCATE_compiling___Program___compile_prog;
60 fra.me.has_broke = 0;
61 fra.me.REG_size = 3;
62 fra.me.nitni_local_ref_head = NULL;
63 fra.me.REG[0] = NIT_NULL;
64 fra.me.REG[1] = NIT_NULL;
65 fra.me.REG[2] = NIT_NULL;
66 fra.me.REG[0] = p0;
67 /* compiling/compiling.nit:34 */
68 fra.me.REG[1] = CALL_compiling___Program___output_format(fra.me.REG[0])(fra.me.REG[0]);
69 if (!once_value_1) {
70 fra.me.REG[2] = BOX_NativeString("none");
71 REGB0 = TAG_Int(4);
72 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
73 once_value_1 = fra.me.REG[2];
74 register_static_object(&once_value_1);
75 } else fra.me.REG[2] = once_value_1;
76 fra.me.REG[2] = fra.me.REG[2];
77 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[2]));
78 if (UNTAG_Bool(REGB0)) {
79 } else {
80 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
81 REGB0 = REGB1;
82 }
83 if (UNTAG_Bool(REGB0)) {
84 } else {
85 CALL_program___Program___with_each_iroutines(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_compiling___Program___compile_prog_2));
86 /* compiling/compiling.nit:40 */
87 fra.me.REG[2] = CALL_compiling___Program___output_format(fra.me.REG[0])(fra.me.REG[0]);
88 if (!once_value_3) {
89 fra.me.REG[1] = BOX_NativeString("C");
90 REGB0 = TAG_Int(1);
91 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
92 once_value_3 = fra.me.REG[1];
93 register_static_object(&once_value_3);
94 } else fra.me.REG[1] = once_value_3;
95 fra.me.REG[1] = fra.me.REG[1];
96 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[1]));
97 if (UNTAG_Bool(REGB0)) {
98 } else {
99 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
100 REGB0 = REGB1;
101 }
102 if (UNTAG_Bool(REGB0)) {
103 /* compiling/compiling.nit:41 */
104 CALL_compiling___Program___compile_prog_to_c(fra.me.REG[0])(fra.me.REG[0]);
105 } else {
106 /* compiling/compiling.nit:42 */
107 fra.me.REG[1] = CALL_compiling___Program___output_format(fra.me.REG[0])(fra.me.REG[0]);
108 if (!once_value_4) {
109 fra.me.REG[2] = BOX_NativeString("icode");
110 REGB0 = TAG_Int(5);
111 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
112 once_value_4 = fra.me.REG[2];
113 register_static_object(&once_value_4);
114 } else fra.me.REG[2] = once_value_4;
115 fra.me.REG[2] = fra.me.REG[2];
116 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[2]));
117 if (UNTAG_Bool(REGB0)) {
118 } else {
119 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
120 REGB0 = REGB1;
121 }
122 if (UNTAG_Bool(REGB0)) {
123 /* compiling/compiling.nit:43 */
124 CALL_compiling___icode_generator___Program___generate_icode_files(fra.me.REG[0])(fra.me.REG[0]);
125 }
126 }
127 }
128 stack_frame_head = fra.me.prev;
129 return;
130 }
131 void OC_compiling___Program___compile_prog_2(struct stack_frame_t *closctx, val_t p0, val_t p1){
132 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
133 val_t tmp;
134 /* compiling/compiling.nit:38 */
135 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
136 fra.me.file = LOCATE_compiling;
137 fra.me.line = 38;
138 fra.me.meth = LOCATE_compiling___Program___compile_prog;
139 fra.me.has_broke = 0;
140 fra.me.REG_size = 2;
141 fra.me.nitni_local_ref_head = NULL;
142 fra.me.REG[0] = NIT_NULL;
143 fra.me.REG[1] = NIT_NULL;
144 fra.me.REG[0] = p0;
145 fra.me.REG[1] = p1;
146 CALL_analysis___IRoutine___optimize(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
147 stack_frame_head = fra.me.prev;
148 return;
149 }
150 static const char LOCATE_compiling___Program___compile_prog_to_c[] = "compiling::Program::compile_prog_to_c";
151 void compiling___Program___compile_prog_to_c(val_t p0){
152 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
153 val_t REGB0;
154 val_t tmp;
155 static val_t once_value_1; /* Once value */
156 static val_t once_value_2; /* Once value */
157 static val_t once_value_3; /* Once value */
158 static val_t once_value_4; /* Once value */
159 static val_t once_value_6; /* Once value */
160 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
161 fra.me.file = LOCATE_compiling;
162 fra.me.line = 48;
163 fra.me.meth = LOCATE_compiling___Program___compile_prog_to_c;
164 fra.me.has_broke = 0;
165 fra.me.REG_size = 4;
166 fra.me.nitni_local_ref_head = NULL;
167 fra.me.REG[0] = NIT_NULL;
168 fra.me.REG[1] = NIT_NULL;
169 fra.me.REG[2] = NIT_NULL;
170 fra.me.REG[3] = NIT_NULL;
171 fra.me.REG[0] = p0;
172 /* compiling/compiling.nit:53 */
173 fra.me.REG[1] = NEW_CProgram_compiling___compiling_base___CProgram___init(fra.me.REG[0]);
174 /* compiling/compiling.nit:55 */
175 fra.me.REG[2] = CALL_compiling___compiling_base___CProgram___compdir(fra.me.REG[1])(fra.me.REG[1]);
176 CALL_standard___file___String___mkdir(fra.me.REG[2])(fra.me.REG[2]);
177 /* compiling/compiling.nit:57 */
178 fra.me.REG[2] = CALL_compiling___compiling_base___CProgram___files(fra.me.REG[1])(fra.me.REG[1]);
179 if (!once_value_1) {
180 fra.me.REG[3] = BOX_NativeString("$CLIBDIR/nit_main.c");
181 REGB0 = TAG_Int(19);
182 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
183 once_value_1 = fra.me.REG[3];
184 register_static_object(&once_value_1);
185 } else fra.me.REG[3] = once_value_1;
186 fra.me.REG[3] = fra.me.REG[3];
187 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
188 /* compiling/compiling.nit:58 */
189 fra.me.REG[3] = CALL_compiling___compiling_base___CProgram___files(fra.me.REG[1])(fra.me.REG[1]);
190 if (!once_value_2) {
191 fra.me.REG[2] = BOX_NativeString("$CLIBDIR/gc.c");
192 REGB0 = TAG_Int(13);
193 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
194 once_value_2 = fra.me.REG[2];
195 register_static_object(&once_value_2);
196 } else fra.me.REG[2] = once_value_2;
197 fra.me.REG[2] = fra.me.REG[2];
198 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
199 /* compiling/compiling.nit:59 */
200 fra.me.REG[2] = CALL_compiling___compiling_base___CProgram___files(fra.me.REG[1])(fra.me.REG[1]);
201 if (!once_value_3) {
202 fra.me.REG[3] = BOX_NativeString("$CLIBDIR/gc_static_objects_list.c");
203 REGB0 = TAG_Int(33);
204 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
205 once_value_3 = fra.me.REG[3];
206 register_static_object(&once_value_3);
207 } else fra.me.REG[3] = once_value_3;
208 fra.me.REG[3] = fra.me.REG[3];
209 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
210 /* compiling/compiling.nit:61 */
211 fra.me.REG[3] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
212 if (!once_value_4) {
213 fra.me.REG[2] = BOX_NativeString("Generating C code");
214 REGB0 = TAG_Int(17);
215 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
216 once_value_4 = fra.me.REG[2];
217 register_static_object(&once_value_4);
218 } else fra.me.REG[2] = once_value_4;
219 fra.me.REG[2] = fra.me.REG[2];
220 REGB0 = TAG_Int(1);
221 CALL_toolcontext___ToolContext___info(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], REGB0);
222 /* compiling/compiling.nit:62 */
223 fra.me.REG[2] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
224 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra.me.REG[2])(fra.me.REG[2]);
225 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
226 if (UNTAG_Bool(REGB0)) {
227 nit_abort("Reciever is null", NULL, LOCATE_compiling, 62);
228 }
229 fra.me.REG[2] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[2])(fra.me.REG[2]);
230 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));
231 /* compiling/compiling.nit:64 */
232 fra.me.REG[2] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
233 if (!once_value_6) {
234 fra.me.REG[3] = BOX_NativeString("Generating main, tables and makefile ...");
235 REGB0 = TAG_Int(40);
236 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
237 once_value_6 = fra.me.REG[3];
238 register_static_object(&once_value_6);
239 } else fra.me.REG[3] = once_value_6;
240 fra.me.REG[3] = fra.me.REG[3];
241 REGB0 = TAG_Int(1);
242 CALL_toolcontext___ToolContext___info(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], REGB0);
243 /* compiling/compiling.nit:65 */
244 CALL_compiling___Program___compile_main(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
245 /* compiling/compiling.nit:67 */
246 CALL_compiling___compiling_base___CProgram___generate_build_file(fra.me.REG[1])(fra.me.REG[1]);
247 /* compiling/compiling.nit:69 */
248 fra.me.REG[0] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
249 REGB0 = CALL_compiling___compiling_base___ToolContext___no_cc(fra.me.REG[0])(fra.me.REG[0]);
250 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
251 if (UNTAG_Bool(REGB0)) {
252 CALL_compiling___compiling_base___CProgram___run_c_compiler(fra.me.REG[1])(fra.me.REG[1]);
253 }
254 stack_frame_head = fra.me.prev;
255 return;
256 }
257 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){
258 struct {struct stack_frame_t me;} fra;
259 fun_t CREG[1];
260 val_t tmp;
261 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
262 fra.me.file = LOCATE_compiling;
263 fra.me.line = 0;
264 fra.me.meth = LOCATE_compiling___Program___compile_prog_to_c;
265 fra.me.has_broke = 0;
266 fra.me.REG_size = 1;
267 fra.me.nitni_local_ref_head = NULL;
268 fra.me.REG[0] = NIT_NULL;
269 fra.me.closure_ctx = closctx_param;
270 fra.me.closure_funs = CREG;
271 fra.me.REG[0] = p0;
272 CREG[0] = clos_fun0;
273 CALL_compiling___MMModule___compile_separate_module(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
274 stack_frame_head = fra.me.prev;
275 return;
276 }
277 static const char LOCATE_compiling___Program___compile_main[] = "compiling::Program::compile_main";
278 void compiling___Program___compile_main(val_t p0, val_t p1){
279 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
280 val_t REGB0;
281 val_t tmp;
282 static val_t once_value_1; /* Once value */
283 static val_t once_value_2; /* Once value */
284 static val_t once_value_3; /* Once value */
285 static val_t once_value_4; /* Once value */
286 static val_t once_value_5; /* Once value */
287 static val_t once_value_6; /* Once value */
288 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
289 fra.me.file = LOCATE_compiling;
290 fra.me.line = 72;
291 fra.me.meth = LOCATE_compiling___Program___compile_main;
292 fra.me.has_broke = 0;
293 fra.me.REG_size = 6;
294 fra.me.nitni_local_ref_head = NULL;
295 fra.me.REG[0] = NIT_NULL;
296 fra.me.REG[1] = NIT_NULL;
297 fra.me.REG[2] = NIT_NULL;
298 fra.me.REG[3] = NIT_NULL;
299 fra.me.REG[4] = NIT_NULL;
300 fra.me.REG[5] = NIT_NULL;
301 fra.me.REG[0] = p0;
302 fra.me.REG[1] = p1;
303 /* compiling/compiling.nit:75 */
304 fra.me.REG[2] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
305 fra.me.REG[2] = NEW_CompilerVisitor_compiling___compiling_base___CompilerVisitor___init(fra.me.REG[2], fra.me.REG[1]);
306 /* compiling/compiling.nit:76 */
307 if (!once_value_1) {
308 fra.me.REG[3] = BOX_NativeString("#include <nit_common.h>");
309 REGB0 = TAG_Int(23);
310 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
311 once_value_1 = fra.me.REG[3];
312 register_static_object(&once_value_1);
313 } else fra.me.REG[3] = once_value_1;
314 fra.me.REG[3] = fra.me.REG[3];
315 CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
316 /* compiling/compiling.nit:77 */
317 CALL_compiling___compiling_global___Program___compile_tables_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
318 /* compiling/compiling.nit:78 */
319 CALL_compiling___compiling_global___Program___compile_main_part(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
320 /* compiling/compiling.nit:79 */
321 REGB0 = TAG_Int(5);
322 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
323 if (!once_value_2) {
324 fra.me.REG[4] = BOX_NativeString("");
325 REGB0 = TAG_Int(0);
326 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
327 once_value_2 = fra.me.REG[4];
328 register_static_object(&once_value_2);
329 } else fra.me.REG[4] = once_value_2;
330 fra.me.REG[4] = fra.me.REG[4];
331 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
332 fra.me.REG[4] = CALL_compiling___compiling_base___CProgram___compdir(fra.me.REG[1])(fra.me.REG[1]);
333 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
334 if (!once_value_3) {
335 fra.me.REG[4] = BOX_NativeString("/");
336 REGB0 = TAG_Int(1);
337 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
338 once_value_3 = fra.me.REG[4];
339 register_static_object(&once_value_3);
340 } else fra.me.REG[4] = once_value_3;
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[4] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
344 fra.me.REG[4] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[4])(fra.me.REG[4]);
345 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
346 if (!once_value_4) {
347 fra.me.REG[4] = BOX_NativeString("._tables.c");
348 REGB0 = TAG_Int(10);
349 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
350 once_value_4 = fra.me.REG[4];
351 register_static_object(&once_value_4);
352 } else fra.me.REG[4] = once_value_4;
353 fra.me.REG[4] = fra.me.REG[4];
354 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
355 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
356 /* compiling/compiling.nit:80 */
357 fra.me.REG[4] = CALL_compiling___compiling_base___CProgram___files(fra.me.REG[1])(fra.me.REG[1]);
358 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
359 /* compiling/compiling.nit:81 */
360 fra.me.REG[3] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[3]);
361 /* compiling/compiling.nit:82 */
362 REGB0 = TAG_Int(3);
363 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
364 if (!once_value_5) {
365 fra.me.REG[5] = BOX_NativeString("/* This C file is generated by NIT to compile program ");
366 REGB0 = TAG_Int(54);
367 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
368 once_value_5 = fra.me.REG[5];
369 register_static_object(&once_value_5);
370 } else fra.me.REG[5] = once_value_5;
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[5] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
374 fra.me.REG[5] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[5])(fra.me.REG[5]);
375 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
376 if (!once_value_6) {
377 fra.me.REG[5] = BOX_NativeString(". */\n");
378 REGB0 = TAG_Int(5);
379 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
380 once_value_6 = fra.me.REG[5];
381 register_static_object(&once_value_6);
382 } else fra.me.REG[5] = once_value_6;
383 fra.me.REG[5] = fra.me.REG[5];
384 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
385 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
386 CALL_standard___stream___OStream___write(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
387 /* compiling/compiling.nit:83 */
388 fra.me.REG[0] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
389 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra.me.REG[0])(fra.me.REG[0]);
390 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
391 if (UNTAG_Bool(REGB0)) {
392 nit_abort("Reciever is null", NULL, LOCATE_compiling, 83);
393 }
394 fra.me.REG[0] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[0])(fra.me.REG[0]);
395 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));
396 /* compiling/compiling.nit:86 */
397 fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___header_writer(fra.me.REG[2])(fra.me.REG[2]);
398 CALL_compiling_writer___Writer___write_to_stream(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
399 /* compiling/compiling.nit:87 */
400 fra.me.REG[2] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[2])(fra.me.REG[2]);
401 CALL_compiling_writer___Writer___write_to_stream(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
402 /* compiling/compiling.nit:88 */
403 CALL_standard___stream___IOS___close(fra.me.REG[3])(fra.me.REG[3]);
404 stack_frame_head = fra.me.prev;
405 return;
406 }
407 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){
408 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
409 val_t REGB0;
410 fun_t CREG[1];
411 val_t tmp;
412 static val_t once_value_8; /* Once value */
413 static val_t once_value_9; /* Once value */
414 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
415 fra.me.file = LOCATE_compiling;
416 fra.me.line = 0;
417 fra.me.meth = LOCATE_compiling___Program___compile_main;
418 fra.me.has_broke = 0;
419 fra.me.REG_size = 3;
420 fra.me.nitni_local_ref_head = NULL;
421 fra.me.REG[0] = NIT_NULL;
422 fra.me.REG[1] = NIT_NULL;
423 fra.me.REG[2] = NIT_NULL;
424 fra.me.closure_ctx = closctx_param;
425 fra.me.closure_funs = CREG;
426 fra.me.REG[0] = p0;
427 CREG[0] = clos_fun0;
428 /* compiling/compiling.nit:84 */
429 REGB0 = TAG_Int(3);
430 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
431 if (!once_value_8) {
432 fra.me.REG[2] = BOX_NativeString("#include \"");
433 REGB0 = TAG_Int(10);
434 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
435 once_value_8 = fra.me.REG[2];
436 register_static_object(&once_value_8);
437 } else fra.me.REG[2] = once_value_8;
438 fra.me.REG[2] = fra.me.REG[2];
439 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
440 fra.me.REG[0] = CALL_compiling___compiling_base___CProgram___module_header_name(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
441 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
442 if (!once_value_9) {
443 fra.me.REG[0] = BOX_NativeString("\"\n");
444 REGB0 = TAG_Int(2);
445 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
446 once_value_9 = fra.me.REG[0];
447 register_static_object(&once_value_9);
448 } else fra.me.REG[0] = once_value_9;
449 fra.me.REG[0] = fra.me.REG[0];
450 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
451 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
452 CALL_standard___stream___OStream___write(closctx->REG[3])(closctx->REG[3], fra.me.REG[1]);
453 stack_frame_head = fra.me.prev;
454 return;
455 }
456 static const char LOCATE_compiling___MMModule___compile_separate_module[] = "compiling::MMModule::compile_separate_module";
457 void compiling___MMModule___compile_separate_module(val_t p0, val_t p1){
458 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
459 val_t REGB0;
460 val_t REGB1;
461 val_t REGB2;
462 val_t tmp;
463 static val_t once_value_1; /* Once value */
464 static val_t once_value_2; /* Once value */
465 static val_t once_value_3; /* Once value */
466 static val_t once_value_4; /* Once value */
467 static val_t once_value_5; /* Once value */
468 static val_t once_value_6; /* Once value */
469 static val_t once_value_7; /* Once value */
470 static val_t once_value_8; /* Once value */
471 static val_t once_value_9; /* Once value */
472 static val_t once_value_10; /* Once value */
473 static val_t once_value_11; /* Once value */
474 static val_t once_value_12; /* Once value */
475 static val_t once_value_13; /* Once value */
476 static val_t once_value_14; /* Once value */
477 static val_t once_value_15; /* Once value */
478 static val_t once_value_16; /* Once value */
479 static val_t once_value_17; /* Once value */
480 static val_t once_value_18; /* Once value */
481 static val_t once_value_19; /* Once value */
482 static val_t once_value_20; /* Once value */
483 static val_t once_value_21; /* Once value */
484 static val_t once_value_22; /* Once value */
485 static val_t once_value_23; /* Once value */
486 static val_t once_value_24; /* Once value */
487 static val_t once_value_25; /* Once value */
488 static val_t once_value_26; /* Once value */
489 static val_t once_value_27; /* Once value */
490 static val_t once_value_28; /* Once value */
491 static val_t once_value_29; /* Once value */
492 static val_t once_value_30; /* Once value */
493 static val_t once_value_31; /* Once value */
494 static val_t once_value_32; /* Once value */
495 static val_t once_value_33; /* Once value */
496 static val_t once_value_34; /* Once value */
497 static val_t once_value_35; /* Once value */
498 static val_t once_value_36; /* Once value */
499 static val_t once_value_37; /* Once value */
500 static val_t once_value_39; /* Once value */
501 static val_t once_value_40; /* Once value */
502 static val_t once_value_41; /* Once value */
503 static val_t once_value_42; /* Once value */
504 static val_t once_value_43; /* Once value */
505 static val_t once_value_44; /* Once value */
506 static val_t once_value_45; /* Once value */
507 static val_t once_value_46; /* Once value */
508 static val_t once_value_47; /* Once value */
509 static val_t once_value_48; /* Once value */
510 static val_t once_value_49; /* Once value */
511 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
512 fra.me.file = LOCATE_compiling;
513 fra.me.line = 93;
514 fra.me.meth = LOCATE_compiling___MMModule___compile_separate_module;
515 fra.me.has_broke = 0;
516 fra.me.REG_size = 10;
517 fra.me.nitni_local_ref_head = NULL;
518 fra.me.REG[0] = NIT_NULL;
519 fra.me.REG[1] = NIT_NULL;
520 fra.me.REG[2] = NIT_NULL;
521 fra.me.REG[3] = NIT_NULL;
522 fra.me.REG[4] = NIT_NULL;
523 fra.me.REG[5] = NIT_NULL;
524 fra.me.REG[6] = NIT_NULL;
525 fra.me.REG[7] = NIT_NULL;
526 fra.me.REG[8] = NIT_NULL;
527 fra.me.REG[9] = NIT_NULL;
528 fra.me.REG[0] = p0;
529 fra.me.REG[1] = p1;
530 /* compiling/compiling.nit:96 */
531 fra.me.REG[2] = CALL_compiling___compiling_base___CProgram___program(fra.me.REG[1])(fra.me.REG[1]);
532 fra.me.REG[2] = CALL_program___Program___tc(fra.me.REG[2])(fra.me.REG[2]);
533 /* compiling/compiling.nit:97 */
534 REGB0 = TAG_Int(3);
535 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
536 if (!once_value_1) {
537 fra.me.REG[4] = BOX_NativeString("Generating C code for module: ");
538 REGB0 = TAG_Int(30);
539 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
540 once_value_1 = fra.me.REG[4];
541 register_static_object(&once_value_1);
542 } else fra.me.REG[4] = once_value_1;
543 fra.me.REG[4] = fra.me.REG[4];
544 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
545 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMModule___full_name(fra.me.REG[0])(fra.me.REG[0]);
546 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
547 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
548 if (!once_value_2) {
549 fra.me.REG[4] = BOX_NativeString("");
550 REGB0 = TAG_Int(0);
551 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
552 once_value_2 = fra.me.REG[4];
553 register_static_object(&once_value_2);
554 } else fra.me.REG[4] = once_value_2;
555 fra.me.REG[4] = fra.me.REG[4];
556 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
557 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
558 REGB0 = TAG_Int(2);
559 CALL_toolcontext___ToolContext___info(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], REGB0);
560 /* compiling/compiling.nit:98 */
561 fra.me.REG[3] = NEW_CompilerVisitor_compiling___compiling_base___CompilerVisitor___init(fra.me.REG[0], fra.me.REG[1]);
562 /* compiling/compiling.nit:99 */
563 if (!once_value_3) {
564 fra.me.REG[2] = BOX_NativeString("#include <nit_common.h>");
565 REGB0 = TAG_Int(23);
566 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
567 once_value_3 = fra.me.REG[2];
568 register_static_object(&once_value_3);
569 } else fra.me.REG[2] = once_value_3;
570 fra.me.REG[2] = fra.me.REG[2];
571 CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
572 /* compiling/compiling.nit:101 */
573 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___is_extern_hybrid(fra.me.REG[0])(fra.me.REG[0]);
574 if (UNTAG_Bool(REGB0)) {
575 /* compiling/compiling.nit:104 */
576 REGB0 = TAG_Int(3);
577 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
578 if (!once_value_4) {
579 fra.me.REG[4] = BOX_NativeString("");
580 REGB0 = TAG_Int(0);
581 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
582 once_value_4 = fra.me.REG[4];
583 register_static_object(&once_value_4);
584 } else fra.me.REG[4] = once_value_4;
585 fra.me.REG[4] = fra.me.REG[4];
586 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
587 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMModule___name(fra.me.REG[0])(fra.me.REG[0]);
588 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
589 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
590 if (!once_value_5) {
591 fra.me.REG[4] = BOX_NativeString("._nitni.h");
592 REGB0 = TAG_Int(9);
593 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
594 once_value_5 = fra.me.REG[4];
595 register_static_object(&once_value_5);
596 } else fra.me.REG[4] = once_value_5;
597 fra.me.REG[4] = fra.me.REG[4];
598 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
599 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
600 /* compiling/compiling.nit:105 */
601 REGB0 = TAG_Int(3);
602 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
603 if (!once_value_6) {
604 fra.me.REG[5] = BOX_NativeString("#include \"");
605 REGB0 = TAG_Int(10);
606 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
607 once_value_6 = fra.me.REG[5];
608 register_static_object(&once_value_6);
609 } else fra.me.REG[5] = once_value_6;
610 fra.me.REG[5] = fra.me.REG[5];
611 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
612 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
613 if (!once_value_7) {
614 fra.me.REG[2] = BOX_NativeString("\"");
615 REGB0 = TAG_Int(1);
616 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
617 once_value_7 = fra.me.REG[2];
618 register_static_object(&once_value_7);
619 } else fra.me.REG[2] = once_value_7;
620 fra.me.REG[2] = fra.me.REG[2];
621 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
622 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
623 CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
624 /* compiling/compiling.nit:106 */
625 REGB0 = TAG_Int(3);
626 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
627 if (!once_value_8) {
628 fra.me.REG[2] = BOX_NativeString("");
629 REGB0 = TAG_Int(0);
630 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
631 once_value_8 = fra.me.REG[2];
632 register_static_object(&once_value_8);
633 } else fra.me.REG[2] = once_value_8;
634 fra.me.REG[2] = fra.me.REG[2];
635 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
636 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___name(fra.me.REG[0])(fra.me.REG[0]);
637 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
638 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
639 if (!once_value_9) {
640 fra.me.REG[2] = BOX_NativeString("._nitni.c");
641 REGB0 = TAG_Int(9);
642 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
643 once_value_9 = fra.me.REG[2];
644 register_static_object(&once_value_9);
645 } else fra.me.REG[2] = once_value_9;
646 fra.me.REG[2] = fra.me.REG[2];
647 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
648 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
649 /* compiling/compiling.nit:107 */
650 fra.me.REG[2] = CALL_compiling___compiling_base___CProgram___files(fra.me.REG[1])(fra.me.REG[1]);
651 REGB0 = TAG_Int(5);
652 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
653 if (!once_value_10) {
654 fra.me.REG[6] = BOX_NativeString("");
655 REGB0 = TAG_Int(0);
656 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
657 once_value_10 = fra.me.REG[6];
658 register_static_object(&once_value_10);
659 } else fra.me.REG[6] = once_value_10;
660 fra.me.REG[6] = fra.me.REG[6];
661 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
662 fra.me.REG[6] = CALL_compiling___compiling_base___CProgram___compdir(fra.me.REG[1])(fra.me.REG[1]);
663 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
664 if (!once_value_11) {
665 fra.me.REG[6] = BOX_NativeString("/");
666 REGB0 = TAG_Int(1);
667 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
668 once_value_11 = fra.me.REG[6];
669 register_static_object(&once_value_11);
670 } else fra.me.REG[6] = once_value_11;
671 fra.me.REG[6] = fra.me.REG[6];
672 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
673 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
674 if (!once_value_12) {
675 fra.me.REG[4] = BOX_NativeString("");
676 REGB0 = TAG_Int(0);
677 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
678 once_value_12 = fra.me.REG[4];
679 register_static_object(&once_value_12);
680 } else fra.me.REG[4] = once_value_12;
681 fra.me.REG[4] = fra.me.REG[4];
682 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
683 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
684 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
685 /* compiling/compiling.nit:110 */
686 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMModule___location(fra.me.REG[0])(fra.me.REG[0]);
687 fra.me.REG[5] = CALL_location___Location___file(fra.me.REG[5])(fra.me.REG[5]);
688 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
689 if (UNTAG_Bool(REGB0)) {
690 nit_abort("Reciever is null", NULL, LOCATE_compiling, 110);
691 }
692 fra.me.REG[5] = CALL_location___SourceFile___filename(fra.me.REG[5])(fra.me.REG[5]);
693 if (!once_value_13) {
694 fra.me.REG[2] = BOX_NativeString(".nit");
695 REGB0 = TAG_Int(4);
696 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
697 once_value_13 = fra.me.REG[2];
698 register_static_object(&once_value_13);
699 } else fra.me.REG[2] = once_value_13;
700 fra.me.REG[2] = fra.me.REG[2];
701 fra.me.REG[2] = CALL_standard___file___String___strip_extension(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
702 /* compiling/compiling.nit:111 */
703 if (!once_value_14) {
704 fra.me.REG[5] = BOX_NativeString(".nit.c");
705 REGB0 = TAG_Int(6);
706 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
707 once_value_14 = fra.me.REG[5];
708 register_static_object(&once_value_14);
709 } else fra.me.REG[5] = once_value_14;
710 fra.me.REG[5] = fra.me.REG[5];
711 fra.me.REG[5] = CALL_standard___string___String_____plus(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
712 /* compiling/compiling.nit:112 */
713 REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[5])(fra.me.REG[5]);
714 if (UNTAG_Bool(REGB0)) {
715 /* compiling/compiling.nit:113 */
716 fra.me.REG[4] = CALL_compiling___compiling_base___CProgram___files(fra.me.REG[1])(fra.me.REG[1]);
717 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
718 } else {
719 /* compiling/compiling.nit:115 */
720 if (!once_value_15) {
721 fra.me.REG[4] = BOX_NativeString("_nit.c");
722 REGB0 = TAG_Int(6);
723 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
724 once_value_15 = fra.me.REG[4];
725 register_static_object(&once_value_15);
726 } else fra.me.REG[4] = once_value_15;
727 fra.me.REG[4] = fra.me.REG[4];
728 fra.me.REG[4] = CALL_standard___string___String_____plus(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
729 fra.me.REG[5] = fra.me.REG[4];
730 /* compiling/compiling.nit:116 */
731 REGB0 = CALL_standard___file___String___file_exists(fra.me.REG[5])(fra.me.REG[5]);
732 if (UNTAG_Bool(REGB0)) {
733 fra.me.REG[4] = CALL_compiling___compiling_base___CProgram___files(fra.me.REG[1])(fra.me.REG[1]);
734 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
735 }
736 }
737 /* compiling/compiling.nit:118 */
738 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___uses_ffi(fra.me.REG[0])(fra.me.REG[0]);
739 if (UNTAG_Bool(REGB0)) {
740 /* compiling/compiling.nit:119 */
741 REGB0 = TAG_Int(3);
742 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
743 if (!once_value_16) {
744 fra.me.REG[4] = BOX_NativeString("");
745 REGB0 = TAG_Int(0);
746 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
747 once_value_16 = fra.me.REG[4];
748 register_static_object(&once_value_16);
749 } else fra.me.REG[4] = once_value_16;
750 fra.me.REG[4] = fra.me.REG[4];
751 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
752 fra.me.REG[4] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[0])(fra.me.REG[0]);
753 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
754 if (!once_value_17) {
755 fra.me.REG[4] = BOX_NativeString("._ffi.h");
756 REGB0 = TAG_Int(7);
757 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
758 once_value_17 = fra.me.REG[4];
759 register_static_object(&once_value_17);
760 } else fra.me.REG[4] = once_value_17;
761 fra.me.REG[4] = fra.me.REG[4];
762 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
763 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
764 /* compiling/compiling.nit:120 */
765 REGB0 = TAG_Int(3);
766 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
767 if (!once_value_18) {
768 fra.me.REG[2] = BOX_NativeString("#include \"");
769 REGB0 = TAG_Int(10);
770 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
771 once_value_18 = fra.me.REG[2];
772 register_static_object(&once_value_18);
773 } else fra.me.REG[2] = once_value_18;
774 fra.me.REG[2] = fra.me.REG[2];
775 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
776 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
777 if (!once_value_19) {
778 fra.me.REG[5] = BOX_NativeString("\"");
779 REGB0 = TAG_Int(1);
780 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
781 once_value_19 = fra.me.REG[5];
782 register_static_object(&once_value_19);
783 } else fra.me.REG[5] = once_value_19;
784 fra.me.REG[5] = fra.me.REG[5];
785 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
786 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
787 CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
788 /* compiling/compiling.nit:121 */
789 REGB0 = TAG_Int(3);
790 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
791 if (!once_value_20) {
792 fra.me.REG[5] = BOX_NativeString("");
793 REGB0 = TAG_Int(0);
794 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
795 once_value_20 = fra.me.REG[5];
796 register_static_object(&once_value_20);
797 } else fra.me.REG[5] = once_value_20;
798 fra.me.REG[5] = fra.me.REG[5];
799 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
800 fra.me.REG[5] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[0])(fra.me.REG[0]);
801 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
802 if (!once_value_21) {
803 fra.me.REG[5] = BOX_NativeString("._ffi.c");
804 REGB0 = TAG_Int(7);
805 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
806 once_value_21 = fra.me.REG[5];
807 register_static_object(&once_value_21);
808 } else fra.me.REG[5] = once_value_21;
809 fra.me.REG[5] = fra.me.REG[5];
810 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
811 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
812 /* compiling/compiling.nit:122 */
813 fra.me.REG[5] = CALL_compiling___compiling_base___CProgram___files(fra.me.REG[1])(fra.me.REG[1]);
814 REGB0 = TAG_Int(5);
815 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
816 if (!once_value_22) {
817 fra.me.REG[6] = BOX_NativeString("");
818 REGB0 = TAG_Int(0);
819 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
820 once_value_22 = fra.me.REG[6];
821 register_static_object(&once_value_22);
822 } else fra.me.REG[6] = once_value_22;
823 fra.me.REG[6] = fra.me.REG[6];
824 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
825 fra.me.REG[6] = CALL_compiling___compiling_base___CProgram___compdir(fra.me.REG[1])(fra.me.REG[1]);
826 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
827 if (!once_value_23) {
828 fra.me.REG[6] = BOX_NativeString("/");
829 REGB0 = TAG_Int(1);
830 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
831 once_value_23 = fra.me.REG[6];
832 register_static_object(&once_value_23);
833 } else fra.me.REG[6] = once_value_23;
834 fra.me.REG[6] = fra.me.REG[6];
835 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
836 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
837 if (!once_value_24) {
838 fra.me.REG[4] = BOX_NativeString("");
839 REGB0 = TAG_Int(0);
840 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
841 once_value_24 = fra.me.REG[4];
842 register_static_object(&once_value_24);
843 } else fra.me.REG[4] = once_value_24;
844 fra.me.REG[4] = fra.me.REG[4];
845 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
846 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
847 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
848 }
849 }
850 /* compiling/compiling.nit:126 */
851 CALL_compiling___compiling_global___MMModule___declare_class_tables_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
852 /* compiling/compiling.nit:127 */
853 CALL_compiling___compiling_global___MMModule___compile_mod_to_c(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
854 /* compiling/compiling.nit:129 */
855 fra.me.REG[2] = CALL_compiling___compiling_base___CProgram___module_header_name(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
856 /* compiling/compiling.nit:130 */
857 REGB0 = TAG_Int(5);
858 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
859 if (!once_value_25) {
860 fra.me.REG[4] = BOX_NativeString("");
861 REGB0 = TAG_Int(0);
862 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
863 once_value_25 = fra.me.REG[4];
864 register_static_object(&once_value_25);
865 } else fra.me.REG[4] = once_value_25;
866 fra.me.REG[4] = fra.me.REG[4];
867 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
868 fra.me.REG[4] = CALL_compiling___compiling_base___CProgram___compdir(fra.me.REG[1])(fra.me.REG[1]);
869 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
870 if (!once_value_26) {
871 fra.me.REG[4] = BOX_NativeString("/");
872 REGB0 = TAG_Int(1);
873 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
874 once_value_26 = fra.me.REG[4];
875 register_static_object(&once_value_26);
876 } else fra.me.REG[4] = once_value_26;
877 fra.me.REG[4] = fra.me.REG[4];
878 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
879 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
880 if (!once_value_27) {
881 fra.me.REG[4] = BOX_NativeString("");
882 REGB0 = TAG_Int(0);
883 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
884 once_value_27 = fra.me.REG[4];
885 register_static_object(&once_value_27);
886 } else fra.me.REG[4] = once_value_27;
887 fra.me.REG[4] = fra.me.REG[4];
888 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
889 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
890 fra.me.REG[5] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[5]);
891 /* compiling/compiling.nit:131 */
892 REGB0 = TAG_Int(3);
893 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
894 if (!once_value_28) {
895 fra.me.REG[6] = BOX_NativeString("/* This C header file is generated by NIT to compile modules and programs that requires ");
896 REGB0 = TAG_Int(88);
897 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
898 once_value_28 = fra.me.REG[6];
899 register_static_object(&once_value_28);
900 } else fra.me.REG[6] = once_value_28;
901 fra.me.REG[6] = fra.me.REG[6];
902 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
903 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMModule___full_name(fra.me.REG[0])(fra.me.REG[0]);
904 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
905 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
906 if (!once_value_29) {
907 fra.me.REG[6] = BOX_NativeString(". */\n");
908 REGB0 = TAG_Int(5);
909 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
910 once_value_29 = fra.me.REG[6];
911 register_static_object(&once_value_29);
912 } else fra.me.REG[6] = once_value_29;
913 fra.me.REG[6] = fra.me.REG[6];
914 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
915 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
916 CALL_standard___stream___OStream___write(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
917 /* compiling/compiling.nit:132 */
918 REGB0 = TAG_Int(5);
919 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
920 if (!once_value_30) {
921 fra.me.REG[6] = BOX_NativeString("#ifndef ");
922 REGB0 = TAG_Int(8);
923 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
924 once_value_30 = fra.me.REG[6];
925 register_static_object(&once_value_30);
926 } else fra.me.REG[6] = once_value_30;
927 fra.me.REG[6] = fra.me.REG[6];
928 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
929 fra.me.REG[6] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[0])(fra.me.REG[0]);
930 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
931 if (!once_value_31) {
932 fra.me.REG[6] = BOX_NativeString("");
933 REGB0 = TAG_Int(0);
934 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
935 once_value_31 = fra.me.REG[6];
936 register_static_object(&once_value_31);
937 } else fra.me.REG[6] = once_value_31;
938 fra.me.REG[6] = fra.me.REG[6];
939 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
940 fra.me.REG[6] = CALL_compiling___compiling_base___CProgram___get_file_ending(fra.me.REG[1])(fra.me.REG[1]);
941 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
942 if (!once_value_32) {
943 fra.me.REG[6] = BOX_NativeString("\n");
944 REGB0 = TAG_Int(1);
945 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
946 once_value_32 = fra.me.REG[6];
947 register_static_object(&once_value_32);
948 } else fra.me.REG[6] = once_value_32;
949 fra.me.REG[6] = fra.me.REG[6];
950 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
951 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
952 CALL_standard___stream___OStream___write(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
953 /* compiling/compiling.nit:133 */
954 REGB0 = TAG_Int(5);
955 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
956 if (!once_value_33) {
957 fra.me.REG[6] = BOX_NativeString("#define ");
958 REGB0 = TAG_Int(8);
959 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
960 once_value_33 = fra.me.REG[6];
961 register_static_object(&once_value_33);
962 } else fra.me.REG[6] = once_value_33;
963 fra.me.REG[6] = fra.me.REG[6];
964 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
965 fra.me.REG[6] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[0])(fra.me.REG[0]);
966 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
967 if (!once_value_34) {
968 fra.me.REG[6] = BOX_NativeString("");
969 REGB0 = TAG_Int(0);
970 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
971 once_value_34 = fra.me.REG[6];
972 register_static_object(&once_value_34);
973 } else fra.me.REG[6] = once_value_34;
974 fra.me.REG[6] = fra.me.REG[6];
975 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
976 fra.me.REG[6] = CALL_compiling___compiling_base___CProgram___get_file_ending(fra.me.REG[1])(fra.me.REG[1]);
977 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
978 if (!once_value_35) {
979 fra.me.REG[6] = BOX_NativeString("\n");
980 REGB0 = TAG_Int(1);
981 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
982 once_value_35 = fra.me.REG[6];
983 register_static_object(&once_value_35);
984 } else fra.me.REG[6] = once_value_35;
985 fra.me.REG[6] = fra.me.REG[6];
986 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
987 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
988 CALL_standard___stream___OStream___write(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
989 /* compiling/compiling.nit:134 */
990 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra.me.REG[0])(fra.me.REG[0]);
991 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
992 if (UNTAG_Bool(REGB0)) {
993 nit_abort("Reciever is null", NULL, LOCATE_compiling, 134);
994 }
995 fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[4])(fra.me.REG[4]);
996 /* ../lib/standard/collection/array.nit:269 */
997 REGB0 = TAG_Int(0);
998 /* ../lib/standard/collection/array.nit:270 */
999 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
1000 if (UNTAG_Bool(REGB1)) {
1001 } else {
1002 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1003 }
1004 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
1005 /* ../lib/standard/collection/array.nit:271 */
1006 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
1007 /* ../lib/standard/collection/array.nit:272 */
1008 while(1) {
1009 /* ../lib/standard/collection/array.nit:24 */
1010 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
1011 if (UNTAG_Bool(REGB1)) {
1012 } else {
1013 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1014 }
1015 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
1016 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1017 if (UNTAG_Bool(REGB2)) {
1018 } else {
1019 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1020 }
1021 /* ../lib/standard/kernel.nit:235 */
1022 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1023 /* ../lib/standard/collection/array.nit:272 */
1024 if (UNTAG_Bool(REGB1)) {
1025 /* ../lib/standard/collection/array.nit:273 */
1026 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
1027 if (UNTAG_Bool(REGB1)) {
1028 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1029 }
1030 /* ../lib/standard/collection/array.nit:724 */
1031 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
1032 /* compiling/compiling.nit:134 */
1033 REGB1 = TAG_Int(3);
1034 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
1035 if (!once_value_36) {
1036 fra.me.REG[9] = BOX_NativeString("#include \"");
1037 REGB1 = TAG_Int(10);
1038 fra.me.REG[9] = NEW_String_standard___string___String___with_native(fra.me.REG[9], REGB1);
1039 once_value_36 = fra.me.REG[9];
1040 register_static_object(&once_value_36);
1041 } else fra.me.REG[9] = once_value_36;
1042 fra.me.REG[9] = fra.me.REG[9];
1043 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
1044 fra.me.REG[7] = CALL_compiling___compiling_base___CProgram___module_header_name(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
1045 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
1046 if (!once_value_37) {
1047 fra.me.REG[7] = BOX_NativeString("\"\n");
1048 REGB1 = TAG_Int(2);
1049 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
1050 once_value_37 = fra.me.REG[7];
1051 register_static_object(&once_value_37);
1052 } else fra.me.REG[7] = once_value_37;
1053 fra.me.REG[7] = fra.me.REG[7];
1054 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
1055 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1056 CALL_standard___stream___OStream___write(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
1057 /* ../lib/standard/collection/array.nit:274 */
1058 REGB1 = TAG_Int(1);
1059 /* ../lib/standard/kernel.nit:238 */
1060 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1061 /* ../lib/standard/collection/array.nit:274 */
1062 REGB0 = REGB1;
1063 } else {
1064 /* ../lib/standard/collection/array.nit:272 */
1065 goto label38;
1066 }
1067 }
1068 label38: while(0);
1069 /* compiling/compiling.nit:135 */
1070 fra.me.REG[6] = CALL_compiling___compiling_base___CompilerVisitor___header_writer(fra.me.REG[3])(fra.me.REG[3]);
1071 CALL_compiling_writer___Writer___write_to_stream(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
1072 /* compiling/compiling.nit:136 */
1073 if (!once_value_39) {
1074 fra.me.REG[6] = BOX_NativeString("#endif\n");
1075 REGB0 = TAG_Int(7);
1076 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
1077 once_value_39 = fra.me.REG[6];
1078 register_static_object(&once_value_39);
1079 } else fra.me.REG[6] = once_value_39;
1080 fra.me.REG[6] = fra.me.REG[6];
1081 CALL_standard___stream___OStream___write(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1082 /* compiling/compiling.nit:137 */
1083 CALL_standard___stream___IOS___close(fra.me.REG[5])(fra.me.REG[5]);
1084 /* compiling/compiling.nit:139 */
1085 REGB0 = TAG_Int(7);
1086 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1087 if (!once_value_40) {
1088 fra.me.REG[4] = BOX_NativeString("");
1089 REGB0 = TAG_Int(0);
1090 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1091 once_value_40 = fra.me.REG[4];
1092 register_static_object(&once_value_40);
1093 } else fra.me.REG[4] = once_value_40;
1094 fra.me.REG[4] = fra.me.REG[4];
1095 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
1096 fra.me.REG[4] = CALL_compiling___compiling_base___CProgram___compdir(fra.me.REG[1])(fra.me.REG[1]);
1097 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
1098 if (!once_value_41) {
1099 fra.me.REG[4] = BOX_NativeString("/");
1100 REGB0 = TAG_Int(1);
1101 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1102 once_value_41 = fra.me.REG[4];
1103 register_static_object(&once_value_41);
1104 } else fra.me.REG[4] = once_value_41;
1105 fra.me.REG[4] = fra.me.REG[4];
1106 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
1107 fra.me.REG[4] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[0])(fra.me.REG[0]);
1108 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
1109 if (!once_value_42) {
1110 fra.me.REG[4] = BOX_NativeString(".");
1111 REGB0 = TAG_Int(1);
1112 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1113 once_value_42 = fra.me.REG[4];
1114 register_static_object(&once_value_42);
1115 } else fra.me.REG[4] = once_value_42;
1116 fra.me.REG[4] = fra.me.REG[4];
1117 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
1118 fra.me.REG[4] = CALL_compiling___compiling_base___CProgram___get_file_ending(fra.me.REG[1])(fra.me.REG[1]);
1119 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
1120 if (!once_value_43) {
1121 fra.me.REG[4] = BOX_NativeString(".c");
1122 REGB0 = TAG_Int(2);
1123 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1124 once_value_43 = fra.me.REG[4];
1125 register_static_object(&once_value_43);
1126 } else fra.me.REG[4] = once_value_43;
1127 fra.me.REG[4] = fra.me.REG[4];
1128 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
1129 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
1130 /* compiling/compiling.nit:140 */
1131 fra.me.REG[1] = CALL_compiling___compiling_base___CProgram___files(fra.me.REG[1])(fra.me.REG[1]);
1132 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
1133 /* compiling/compiling.nit:141 */
1134 REGB0 = TAG_Int(3);
1135 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1136 if (!once_value_44) {
1137 fra.me.REG[4] = BOX_NativeString("");
1138 REGB0 = TAG_Int(0);
1139 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
1140 once_value_44 = fra.me.REG[4];
1141 register_static_object(&once_value_44);
1142 } else fra.me.REG[4] = once_value_44;
1143 fra.me.REG[4] = fra.me.REG[4];
1144 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
1145 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
1146 if (!once_value_45) {
1147 fra.me.REG[6] = BOX_NativeString("");
1148 REGB0 = TAG_Int(0);
1149 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
1150 once_value_45 = fra.me.REG[6];
1151 register_static_object(&once_value_45);
1152 } else fra.me.REG[6] = once_value_45;
1153 fra.me.REG[6] = fra.me.REG[6];
1154 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
1155 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
1156 fra.me.REG[1] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[1]);
1157 fra.me.REG[5] = fra.me.REG[1];
1158 /* compiling/compiling.nit:142 */
1159 REGB0 = TAG_Int(3);
1160 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1161 if (!once_value_46) {
1162 fra.me.REG[6] = BOX_NativeString("/* This C file is generated by NIT to compile module ");
1163 REGB0 = TAG_Int(53);
1164 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
1165 once_value_46 = fra.me.REG[6];
1166 register_static_object(&once_value_46);
1167 } else fra.me.REG[6] = once_value_46;
1168 fra.me.REG[6] = fra.me.REG[6];
1169 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
1170 fra.me.REG[0] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[0])(fra.me.REG[0]);
1171 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1172 if (!once_value_47) {
1173 fra.me.REG[0] = BOX_NativeString(". */\n");
1174 REGB0 = TAG_Int(5);
1175 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
1176 once_value_47 = fra.me.REG[0];
1177 register_static_object(&once_value_47);
1178 } else fra.me.REG[0] = once_value_47;
1179 fra.me.REG[0] = fra.me.REG[0];
1180 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1181 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
1182 CALL_standard___stream___OStream___write(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
1183 /* compiling/compiling.nit:143 */
1184 REGB0 = TAG_Int(3);
1185 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1186 if (!once_value_48) {
1187 fra.me.REG[0] = BOX_NativeString("#include \"");
1188 REGB0 = TAG_Int(10);
1189 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
1190 once_value_48 = fra.me.REG[0];
1191 register_static_object(&once_value_48);
1192 } else fra.me.REG[0] = once_value_48;
1193 fra.me.REG[0] = fra.me.REG[0];
1194 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1195 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1196 if (!once_value_49) {
1197 fra.me.REG[2] = BOX_NativeString("\"\n");
1198 REGB0 = TAG_Int(2);
1199 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
1200 once_value_49 = fra.me.REG[2];
1201 register_static_object(&once_value_49);
1202 } else fra.me.REG[2] = once_value_49;
1203 fra.me.REG[2] = fra.me.REG[2];
1204 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1205 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
1206 CALL_standard___stream___OStream___write(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
1207 /* compiling/compiling.nit:144 */
1208 fra.me.REG[3] = CALL_compiling___compiling_base___CompilerVisitor___top_writer(fra.me.REG[3])(fra.me.REG[3]);
1209 CALL_compiling_writer___Writer___write_to_stream(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
1210 /* compiling/compiling.nit:145 */
1211 CALL_standard___stream___IOS___close(fra.me.REG[5])(fra.me.REG[5]);
1212 stack_frame_head = fra.me.prev;
1213 return;
1214 }