1 /* This C file is generated by NIT to compile module ffi. */
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
;
8 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9 fra
.me
.file
= LOCATE_ffi
;
11 fra
.me
.meth
= LOCATE_ffi___MMSrcModule___compile_separate_module
;
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
;
22 fra
.me
.REG
[2] = fra
.me
.REG
[0];
23 fra
.me
.REG
[3] = fra
.me
.REG
[1];
25 CALL_SUPER_ffi___MMSrcModule___compile_separate_module(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
27 REGB0
= CALL_metamodel___abstractmetamodel___MMModule___is_extern_hybrid(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
28 if (UNTAG_Bool(REGB0
)) {
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]);
34 CALL_ffi___ffi_base___FFIVisited___accept_ffi_visitor(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
36 REGB0
= CALL_metamodel___abstractmetamodel___MMModule___uses_ffi(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
37 if (UNTAG_Bool(REGB0
)) {
39 CALL_ffi___FFIVisitor___compile(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
42 stack_frame_head
= fra
.me
.prev
;
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
;
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
;
78 fra
.me
.meth
= LOCATE_ffi___FFIVisitor___compile
;
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
;
93 fra
.me
.REG
[1] = fra
.me
.REG
[0];
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
)) {
100 nit_abort("Cast failed", NULL
, LOCATE_ffi
, 49);
104 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
106 fra
.me
.REG
[3] = BOX_NativeString("");
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]);
118 fra
.me
.REG
[3] = BOX_NativeString("._ffi");
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]);
129 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
131 fra
.me
.REG
[4] = BOX_NativeString("");
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]);
141 fra
.me
.REG
[4] = BOX_NativeString(".c");
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]);
152 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
154 fra
.me
.REG
[5] = BOX_NativeString("");
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]);
164 fra
.me
.REG
[0] = BOX_NativeString(".h");
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]);
175 fra
.me
.REG
[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
177 fra
.me
.REG
[5] = BOX_NativeString("/*\n\tExtern implementation of Nit module ");
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]);
190 fra
.me
.REG
[5] = BOX_NativeString("\n*/\n");
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]);
201 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
203 fra
.me
.REG
[6] = BOX_NativeString("");
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");
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]);
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("");
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("/");
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("");
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]);
261 CALL_standard___stream___OStream___write(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[0]);
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 <");
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");
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]);
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 ");
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");
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]);
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 ");
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");
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]);
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]);
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]);
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]);
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]);
354 if (!once_value_20
) {
355 fra
.me
.REG
[7] = BOX_NativeString("#endif\n");
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]);
364 CALL_standard___stream___IOS___close(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
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("");
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("/");
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("");
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];
401 CALL_standard___stream___OStream___write(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[0]);
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 \"");
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");
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]);
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]);
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]);
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]);
439 CALL_standard___stream___IOS___close(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
440 stack_frame_head
= fra
.me
.prev
;