update c_src (now with ffi)
[nit.git] / c_src / ffi._sep.c
1 /* This C file is generated by NIT to compile module ffi. */
2 #include "ffi._sep.h"
3 static const char LOCATE_ffi___MMSrcModule___compile_separate_module[] = "ffi::MMSrcModule::(compiling::MMModule::compile_separate_module)";
4 void ffi___MMSrcModule___compile_separate_module(val_t p0, val_t p1){
5 struct {struct stack_frame_t me; val_t MORE_REG[3];} 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_ffi;
10 fra.me.line = 23;
11 fra.me.meth = LOCATE_ffi___MMSrcModule___compile_separate_module;
12 fra.me.has_broke = 0;
13 fra.me.REG_size = 4;
14 fra.me.nitni_local_ref_head = NULL;
15 fra.me.REG[0] = NIT_NULL;
16 fra.me.REG[1] = NIT_NULL;
17 fra.me.REG[2] = NIT_NULL;
18 fra.me.REG[3] = NIT_NULL;
19 fra.me.REG[0] = p0;
20 fra.me.REG[1] = p1;
21 /* ffi/ffi.nit:23 */
22 fra.me.REG[2] = fra.me.REG[0];
23 fra.me.REG[3] = fra.me.REG[1];
24 /* ffi/ffi.nit:25 */
25 CALL_SUPER_ffi___MMSrcModule___compile_separate_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
26 /* ffi/ffi.nit:27 */
27 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___is_extern_hybrid(fra.me.REG[2])(fra.me.REG[2]);
28 if (UNTAG_Bool(REGB0)) {
29 /* ffi/ffi.nit:28 */
30 fra.me.REG[3] = CALL_compiling___compiling_base___CProgram___program(fra.me.REG[3])(fra.me.REG[3]);
31 fra.me.REG[3] = CALL_program___Program___tc(fra.me.REG[3])(fra.me.REG[3]);
32 fra.me.REG[3] = NEW_FFIVisitor_ffi___ffi_base___FFIVisitor___init(fra.me.REG[3], fra.me.REG[2]);
33 /* ffi/ffi.nit:32 */
34 CALL_ffi___ffi_base___FFIVisited___accept_ffi_visitor(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
35 /* ffi/ffi.nit:35 */
36 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___uses_ffi(fra.me.REG[2])(fra.me.REG[2]);
37 if (UNTAG_Bool(REGB0)) {
38 /* ffi/ffi.nit:36 */
39 CALL_ffi___FFIVisitor___compile(fra.me.REG[3])(fra.me.REG[3]);
40 }
41 }
42 stack_frame_head = fra.me.prev;
43 return;
44 }
45 static const char LOCATE_ffi___FFIVisitor___compile[] = "ffi::FFIVisitor::compile";
46 void ffi___FFIVisitor___compile(val_t p0){
47 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
48 val_t REGB0;
49 val_t tmp;
50 static val_t once_value_1; /* Once value */
51 static val_t once_value_2; /* Once value */
52 static val_t once_value_3; /* Once value */
53 static val_t once_value_4; /* Once value */
54 static val_t once_value_5; /* Once value */
55 static val_t once_value_6; /* Once value */
56 static val_t once_value_7; /* Once value */
57 static val_t once_value_8; /* Once value */
58 static val_t once_value_9; /* Once value */
59 static val_t once_value_10; /* Once value */
60 static val_t once_value_11; /* Once value */
61 static val_t once_value_12; /* Once value */
62 static val_t once_value_13; /* Once value */
63 static val_t once_value_14; /* Once value */
64 static val_t once_value_15; /* Once value */
65 static val_t once_value_16; /* Once value */
66 static val_t once_value_17; /* Once value */
67 static val_t once_value_18; /* Once value */
68 static val_t once_value_19; /* Once value */
69 static val_t once_value_20; /* Once value */
70 static val_t once_value_21; /* Once value */
71 static val_t once_value_22; /* Once value */
72 static val_t once_value_23; /* Once value */
73 static val_t once_value_24; /* Once value */
74 static val_t once_value_25; /* Once value */
75 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
76 fra.me.file = LOCATE_ffi;
77 fra.me.line = 47;
78 fra.me.meth = LOCATE_ffi___FFIVisitor___compile;
79 fra.me.has_broke = 0;
80 fra.me.REG_size = 9;
81 fra.me.nitni_local_ref_head = NULL;
82 fra.me.REG[0] = NIT_NULL;
83 fra.me.REG[1] = NIT_NULL;
84 fra.me.REG[2] = NIT_NULL;
85 fra.me.REG[3] = NIT_NULL;
86 fra.me.REG[4] = NIT_NULL;
87 fra.me.REG[5] = NIT_NULL;
88 fra.me.REG[6] = NIT_NULL;
89 fra.me.REG[7] = NIT_NULL;
90 fra.me.REG[8] = NIT_NULL;
91 fra.me.REG[0] = p0;
92 /* ffi/ffi.nit:47 */
93 fra.me.REG[1] = fra.me.REG[0];
94 /* ffi/ffi.nit:49 */
95 fra.me.REG[2] = CALL_ffi___ffi_base___FFIVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
96 fra.me.REG[2] = CALL_compiling___compiling_base___ToolContext___compdir(fra.me.REG[2])(fra.me.REG[2]);
97 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_standard___string___String, ID_standard___string___String)) /*cast String*/;
98 if (UNTAG_Bool(REGB0)) {
99 } else {
100 nit_abort("Cast failed", NULL, LOCATE_ffi, 49);
101 }
102 /* ffi/ffi.nit:50 */
103 REGB0 = TAG_Int(3);
104 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
105 if (!once_value_1) {
106 fra.me.REG[3] = BOX_NativeString("");
107 REGB0 = TAG_Int(0);
108 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
109 once_value_1 = fra.me.REG[3];
110 register_static_object(&once_value_1);
111 } else fra.me.REG[3] = once_value_1;
112 fra.me.REG[3] = fra.me.REG[3];
113 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
114 fra.me.REG[3] = CALL_ffi___ffi_base___FFIVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
115 fra.me.REG[3] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[3])(fra.me.REG[3]);
116 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
117 if (!once_value_2) {
118 fra.me.REG[3] = BOX_NativeString("._ffi");
119 REGB0 = TAG_Int(5);
120 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
121 once_value_2 = fra.me.REG[3];
122 register_static_object(&once_value_2);
123 } else fra.me.REG[3] = once_value_2;
124 fra.me.REG[3] = fra.me.REG[3];
125 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
126 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
127 /* ffi/ffi.nit:51 */
128 REGB0 = TAG_Int(3);
129 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
130 if (!once_value_3) {
131 fra.me.REG[4] = BOX_NativeString("");
132 REGB0 = TAG_Int(0);
133 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
134 once_value_3 = fra.me.REG[4];
135 register_static_object(&once_value_3);
136 } else fra.me.REG[4] = once_value_3;
137 fra.me.REG[4] = fra.me.REG[4];
138 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
139 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
140 if (!once_value_4) {
141 fra.me.REG[4] = BOX_NativeString(".c");
142 REGB0 = TAG_Int(2);
143 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
144 once_value_4 = fra.me.REG[4];
145 register_static_object(&once_value_4);
146 } else fra.me.REG[4] = once_value_4;
147 fra.me.REG[4] = fra.me.REG[4];
148 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
149 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
150 /* ffi/ffi.nit:52 */
151 REGB0 = TAG_Int(3);
152 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
153 if (!once_value_5) {
154 fra.me.REG[5] = BOX_NativeString("");
155 REGB0 = TAG_Int(0);
156 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
157 once_value_5 = fra.me.REG[5];
158 register_static_object(&once_value_5);
159 } else fra.me.REG[5] = once_value_5;
160 fra.me.REG[5] = fra.me.REG[5];
161 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
162 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
163 if (!once_value_6) {
164 fra.me.REG[0] = BOX_NativeString(".h");
165 REGB0 = TAG_Int(2);
166 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
167 once_value_6 = fra.me.REG[0];
168 register_static_object(&once_value_6);
169 } else fra.me.REG[0] = once_value_6;
170 fra.me.REG[0] = fra.me.REG[0];
171 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
172 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
173 /* ffi/ffi.nit:55 */
174 REGB0 = TAG_Int(3);
175 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
176 if (!once_value_7) {
177 fra.me.REG[5] = BOX_NativeString("/*\n\tExtern implementation of Nit module ");
178 REGB0 = TAG_Int(40);
179 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
180 once_value_7 = fra.me.REG[5];
181 register_static_object(&once_value_7);
182 } else fra.me.REG[5] = once_value_7;
183 fra.me.REG[5] = fra.me.REG[5];
184 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
185 fra.me.REG[5] = CALL_ffi___ffi_base___FFIVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
186 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMModule___name(fra.me.REG[5])(fra.me.REG[5]);
187 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
188 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
189 if (!once_value_8) {
190 fra.me.REG[5] = BOX_NativeString("\n*/\n");
191 REGB0 = TAG_Int(4);
192 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
193 once_value_8 = fra.me.REG[5];
194 register_static_object(&once_value_8);
195 } else fra.me.REG[5] = once_value_8;
196 fra.me.REG[5] = fra.me.REG[5];
197 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
198 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
199 /* ffi/ffi.nit:58 */
200 REGB0 = TAG_Int(3);
201 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
202 if (!once_value_9) {
203 fra.me.REG[6] = BOX_NativeString("");
204 REGB0 = TAG_Int(0);
205 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
206 once_value_9 = fra.me.REG[6];
207 register_static_object(&once_value_9);
208 } else fra.me.REG[6] = once_value_9;
209 fra.me.REG[6] = fra.me.REG[6];
210 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
211 fra.me.REG[6] = CALL_ffi___ffi_base___FFIVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
212 fra.me.REG[6] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[6])(fra.me.REG[6]);
213 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
214 fra.me.REG[6] = CALL_standard___string___AbstractString___to_upper(fra.me.REG[6])(fra.me.REG[6]);
215 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
216 if (!once_value_10) {
217 fra.me.REG[6] = BOX_NativeString("_NIT_H");
218 REGB0 = TAG_Int(6);
219 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
220 once_value_10 = fra.me.REG[6];
221 register_static_object(&once_value_10);
222 } else fra.me.REG[6] = once_value_10;
223 fra.me.REG[6] = fra.me.REG[6];
224 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
225 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
226 /* ffi/ffi.nit:61 */
227 REGB0 = TAG_Int(5);
228 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
229 if (!once_value_11) {
230 fra.me.REG[7] = BOX_NativeString("");
231 REGB0 = TAG_Int(0);
232 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
233 once_value_11 = fra.me.REG[7];
234 register_static_object(&once_value_11);
235 } else fra.me.REG[7] = once_value_11;
236 fra.me.REG[7] = fra.me.REG[7];
237 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
238 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
239 if (!once_value_12) {
240 fra.me.REG[7] = BOX_NativeString("/");
241 REGB0 = TAG_Int(1);
242 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
243 once_value_12 = fra.me.REG[7];
244 register_static_object(&once_value_12);
245 } else fra.me.REG[7] = once_value_12;
246 fra.me.REG[7] = fra.me.REG[7];
247 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
248 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
249 if (!once_value_13) {
250 fra.me.REG[7] = BOX_NativeString("");
251 REGB0 = TAG_Int(0);
252 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
253 once_value_13 = fra.me.REG[7];
254 register_static_object(&once_value_13);
255 } else fra.me.REG[7] = once_value_13;
256 fra.me.REG[7] = fra.me.REG[7];
257 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
258 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
259 fra.me.REG[6] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[6]);
260 /* ffi/ffi.nit:62 */
261 CALL_standard___stream___OStream___write(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0]);
262 /* ffi/ffi.nit:63 */
263 REGB0 = TAG_Int(3);
264 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
265 if (!once_value_14) {
266 fra.me.REG[8] = BOX_NativeString("#include <");
267 REGB0 = TAG_Int(10);
268 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
269 once_value_14 = fra.me.REG[8];
270 register_static_object(&once_value_14);
271 } else fra.me.REG[8] = once_value_14;
272 fra.me.REG[8] = fra.me.REG[8];
273 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
274 fra.me.REG[8] = CALL_ffi___ffi_base___FFIVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
275 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMModule___name(fra.me.REG[8])(fra.me.REG[8]);
276 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
277 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
278 if (!once_value_15) {
279 fra.me.REG[8] = BOX_NativeString("._nitni.h>\n\n");
280 REGB0 = TAG_Int(12);
281 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
282 once_value_15 = fra.me.REG[8];
283 register_static_object(&once_value_15);
284 } else fra.me.REG[8] = once_value_15;
285 fra.me.REG[8] = fra.me.REG[8];
286 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
287 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
288 CALL_standard___stream___OStream___write(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
289 /* ffi/ffi.nit:64 */
290 REGB0 = TAG_Int(3);
291 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
292 if (!once_value_16) {
293 fra.me.REG[8] = BOX_NativeString("#ifndef ");
294 REGB0 = TAG_Int(8);
295 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
296 once_value_16 = fra.me.REG[8];
297 register_static_object(&once_value_16);
298 } else fra.me.REG[8] = once_value_16;
299 fra.me.REG[8] = fra.me.REG[8];
300 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
301 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]);
302 if (!once_value_17) {
303 fra.me.REG[8] = BOX_NativeString("\n");
304 REGB0 = TAG_Int(1);
305 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
306 once_value_17 = fra.me.REG[8];
307 register_static_object(&once_value_17);
308 } else fra.me.REG[8] = once_value_17;
309 fra.me.REG[8] = fra.me.REG[8];
310 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
311 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
312 CALL_standard___stream___OStream___write(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
313 /* ffi/ffi.nit:65 */
314 REGB0 = TAG_Int(3);
315 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
316 if (!once_value_18) {
317 fra.me.REG[8] = BOX_NativeString("#define ");
318 REGB0 = TAG_Int(8);
319 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
320 once_value_18 = fra.me.REG[8];
321 register_static_object(&once_value_18);
322 } else fra.me.REG[8] = once_value_18;
323 fra.me.REG[8] = fra.me.REG[8];
324 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
325 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]);
326 if (!once_value_19) {
327 fra.me.REG[5] = BOX_NativeString("\n\n");
328 REGB0 = TAG_Int(2);
329 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
330 once_value_19 = fra.me.REG[5];
331 register_static_object(&once_value_19);
332 } else fra.me.REG[5] = once_value_19;
333 fra.me.REG[5] = fra.me.REG[5];
334 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]);
335 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
336 CALL_standard___stream___OStream___write(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
337 /* ffi/ffi.nit:66 */
338 fra.me.REG[7] = CALL_ffi___ffi_base___FFIVisitor___compilation_unit(fra.me.REG[1])(fra.me.REG[1]);
339 fra.me.REG[7] = CALL_c_tools___CCompilationUnit___header_c_base(fra.me.REG[7])(fra.me.REG[7]);
340 CALL_compiling_writer___Writer___write_to_stream(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
341 /* ffi/ffi.nit:67 */
342 fra.me.REG[7] = CALL_ffi___ffi_base___FFIVisitor___compilation_unit(fra.me.REG[1])(fra.me.REG[1]);
343 fra.me.REG[7] = CALL_c_tools___CCompilationUnit___header_custom(fra.me.REG[7])(fra.me.REG[7]);
344 CALL_compiling_writer___Writer___write_to_stream(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
345 /* ffi/ffi.nit:68 */
346 fra.me.REG[7] = CALL_ffi___ffi_base___FFIVisitor___compilation_unit(fra.me.REG[1])(fra.me.REG[1]);
347 fra.me.REG[7] = CALL_c_tools___CCompilationUnit___header_c_types(fra.me.REG[7])(fra.me.REG[7]);
348 CALL_compiling_writer___Writer___write_to_stream(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
349 /* ffi/ffi.nit:69 */
350 fra.me.REG[7] = CALL_ffi___ffi_base___FFIVisitor___compilation_unit(fra.me.REG[1])(fra.me.REG[1]);
351 fra.me.REG[7] = CALL_c_tools___CCompilationUnit___header_decl(fra.me.REG[7])(fra.me.REG[7]);
352 CALL_compiling_writer___Writer___write_to_stream(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
353 /* ffi/ffi.nit:70 */
354 if (!once_value_20) {
355 fra.me.REG[7] = BOX_NativeString("#endif\n");
356 REGB0 = TAG_Int(7);
357 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
358 once_value_20 = fra.me.REG[7];
359 register_static_object(&once_value_20);
360 } else fra.me.REG[7] = once_value_20;
361 fra.me.REG[7] = fra.me.REG[7];
362 CALL_standard___stream___OStream___write(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
363 /* ffi/ffi.nit:71 */
364 CALL_standard___stream___IOS___close(fra.me.REG[6])(fra.me.REG[6]);
365 /* ffi/ffi.nit:74 */
366 REGB0 = TAG_Int(5);
367 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
368 if (!once_value_21) {
369 fra.me.REG[5] = BOX_NativeString("");
370 REGB0 = TAG_Int(0);
371 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
372 once_value_21 = fra.me.REG[5];
373 register_static_object(&once_value_21);
374 } else fra.me.REG[5] = once_value_21;
375 fra.me.REG[5] = fra.me.REG[5];
376 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]);
377 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]);
378 if (!once_value_22) {
379 fra.me.REG[2] = BOX_NativeString("/");
380 REGB0 = TAG_Int(1);
381 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
382 once_value_22 = fra.me.REG[2];
383 register_static_object(&once_value_22);
384 } else fra.me.REG[2] = once_value_22;
385 fra.me.REG[2] = fra.me.REG[2];
386 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]);
387 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
388 if (!once_value_23) {
389 fra.me.REG[3] = BOX_NativeString("");
390 REGB0 = TAG_Int(0);
391 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
392 once_value_23 = fra.me.REG[3];
393 register_static_object(&once_value_23);
394 } else fra.me.REG[3] = once_value_23;
395 fra.me.REG[3] = fra.me.REG[3];
396 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
397 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
398 fra.me.REG[7] = NEW_OFStream_standard___file___OFStream___open(fra.me.REG[7]);
399 fra.me.REG[6] = fra.me.REG[7];
400 /* ffi/ffi.nit:75 */
401 CALL_standard___stream___OStream___write(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0]);
402 /* ffi/ffi.nit:76 */
403 REGB0 = TAG_Int(3);
404 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
405 if (!once_value_24) {
406 fra.me.REG[7] = BOX_NativeString("#include \"");
407 REGB0 = TAG_Int(10);
408 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
409 once_value_24 = fra.me.REG[7];
410 register_static_object(&once_value_24);
411 } else fra.me.REG[7] = once_value_24;
412 fra.me.REG[7] = fra.me.REG[7];
413 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7]);
414 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
415 if (!once_value_25) {
416 fra.me.REG[4] = BOX_NativeString("\"\n");
417 REGB0 = TAG_Int(2);
418 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
419 once_value_25 = fra.me.REG[4];
420 register_static_object(&once_value_25);
421 } else fra.me.REG[4] = once_value_25;
422 fra.me.REG[4] = fra.me.REG[4];
423 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
424 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
425 CALL_standard___stream___OStream___write(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0]);
426 /* ffi/ffi.nit:77 */
427 fra.me.REG[0] = CALL_ffi___ffi_base___FFIVisitor___compilation_unit(fra.me.REG[1])(fra.me.REG[1]);
428 fra.me.REG[0] = CALL_c_tools___CCompilationUnit___body_decl(fra.me.REG[0])(fra.me.REG[0]);
429 CALL_compiling_writer___Writer___write_to_stream(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
430 /* ffi/ffi.nit:78 */
431 fra.me.REG[0] = CALL_ffi___ffi_base___FFIVisitor___compilation_unit(fra.me.REG[1])(fra.me.REG[1]);
432 fra.me.REG[0] = CALL_c_tools___CCompilationUnit___body_custom(fra.me.REG[0])(fra.me.REG[0]);
433 CALL_compiling_writer___Writer___write_to_stream(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
434 /* ffi/ffi.nit:79 */
435 fra.me.REG[1] = CALL_ffi___ffi_base___FFIVisitor___compilation_unit(fra.me.REG[1])(fra.me.REG[1]);
436 fra.me.REG[1] = CALL_c_tools___CCompilationUnit___body_impl(fra.me.REG[1])(fra.me.REG[1]);
437 CALL_compiling_writer___Writer___write_to_stream(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
438 /* ffi/ffi.nit:80 */
439 CALL_standard___stream___IOS___close(fra.me.REG[6])(fra.me.REG[6]);
440 stack_frame_head = fra.me.prev;
441 return;
442 }