c_src: regenerate with soft nullable handling
[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 void compiling___MMSrcModule___compile_prog_to_c(val_t self, val_t param0) {
4 struct trace_t trace = {NULL, NULL, 26, LOCATE_compiling___MMSrcModule___compile_prog_to_c};
5 static val_t once_value_2 = NIT_NULL; /* Once value for string variable[6]*/
6 static val_t once_value_4 = NIT_NULL; /* Once value for string variable[10]*/
7 static val_t once_value_5 = NIT_NULL; /* Once value for string variable[10]*/
8 static val_t once_value_6 = NIT_NULL; /* Once value for string variable[10]*/
9 static val_t once_value_7 = NIT_NULL; /* Once value for string variable[11]*/
10 static val_t once_value_8 = NIT_NULL; /* Once value for string variable[10]*/
11 static val_t once_value_9 = NIT_NULL; /* Once value for string variable[11]*/
12 static val_t once_value_10 = NIT_NULL; /* Once value for string variable[11]*/
13 static val_t once_value_11 = NIT_NULL; /* Once value for string variable[10]*/
14 static val_t once_value_12 = NIT_NULL; /* Once value for string variable[7]*/
15 static val_t once_value_13 = NIT_NULL; /* Once value for string variable[7]*/
16 static val_t once_value_14 = NIT_NULL; /* Once value for string variable[7]*/
17 static val_t once_value_15 = NIT_NULL; /* Once value for string variable[8]*/
18 static val_t once_value_16 = NIT_NULL; /* Once value for string variable[8]*/
19 static val_t once_value_17 = NIT_NULL; /* Once value for string variable[8]*/
20 static val_t once_value_18 = NIT_NULL; /* Once value for string variable[8]*/
21 static val_t once_value_19 = NIT_NULL; /* Once value for string variable[9]*/
22 static val_t once_value_20 = NIT_NULL; /* Once value for string variable[9]*/
23 static val_t once_value_21 = NIT_NULL; /* Once value for string variable[9]*/
24 static val_t once_value_22 = NIT_NULL; /* Once value for string variable[9]*/
25 static val_t once_value_23 = NIT_NULL; /* Once value for string variable[9]*/
26 static val_t once_value_24 = NIT_NULL; /* Once value for string variable[9]*/
27 static val_t once_value_25 = NIT_NULL; /* Once value for string variable[9]*/
28 static val_t once_value_26 = NIT_NULL; /* Once value for string variable[9]*/
29 static val_t once_value_27 = NIT_NULL; /* Once value for string variable[9]*/
30 static val_t once_value_28 = NIT_NULL; /* Once value for string variable[9]*/
31 static val_t once_value_29 = NIT_NULL; /* Once value for string variable[9]*/
32 static val_t once_value_30 = NIT_NULL; /* Once value for string variable[9]*/
33 static val_t once_value_31 = NIT_NULL; /* Once value for string variable[9]*/
34 static val_t once_value_32 = NIT_NULL; /* Once value for string variable[9]*/
35 static val_t once_value_33 = NIT_NULL; /* Once value for string variable[9]*/
36 static val_t once_value_34 = NIT_NULL; /* Once value for string variable[9]*/
37 static val_t once_value_35 = NIT_NULL; /* Once value for string variable[8]*/
38 static val_t once_value_36 = NIT_NULL; /* Once value for string variable[9]*/
39 static val_t once_value_37 = NIT_NULL; /* Once value for string variable[9]*/
40 static val_t once_value_38 = NIT_NULL; /* Once value for string variable[9]*/
41 static val_t once_value_39 = NIT_NULL; /* Once value for string variable[10]*/
42 static val_t once_value_40 = NIT_NULL; /* Once value for string variable[10]*/
43 val_t variable[12];
44 struct WBT_ **closurevariable = NULL;
45 trace.prev = tracehead; tracehead = &trace;
46 trace.file = LOCATE_compiling;
47 /* Register variable[0]: Local variable */
48 variable[0] = self;
49 /* Register variable[1]: Local variable */
50 variable[1] = param0;
51 /* Register variable[2]: Method return value and escape marker */
52 /* Register variable[3]: Result */
53 variable[3] = CALL_abstractmetamodel___MMModule___mhe(variable[0])(variable[0]) /*MMModule::mhe*/;
54 /* Register variable[3]: Result */
55 variable[3] = CALL_partial_order___PartialOrderElement___greaters_and_self(variable[3])(variable[3]) /*PartialOrderElement::greaters_and_self*/;
56 /* Register variable[3]: For iterator */
57 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*Collection::iterator*/;
58 while (true) { /*for*/
59 /* Register variable[4]: For 'is_ok' result */
60 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
61 if (!UNTAG_Bool(variable[4])) break; /*for*/
62 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/ /* Ensure var: For item*/;
63 /* Register variable[5]: Local variable */
64 variable[5] = variable[4];
65 /* Register variable[6]: Result */
66 variable[6] = TAG_Bool(( variable[5] /*m*/==NIT_NULL) || VAL_ISA( variable[5] /*m*/, COLOR_MMSrcModule, ID_MMSrcModule)) /*cast MMSrcModule*/;
67 if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling___MMSrcModule___compile_prog_to_c, LOCATE_compiling, 32); nit_exit(1);}
68 CALL_compiling_global___MMSrcModule___local_analysis( variable[5] /*m*/)( variable[5] /*m*/, variable[1] /*tc*/) /*MMSrcModule::local_analysis*/;
69 continue_1: while(0);
70 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
71 }
72 break_1: while(0);
73 /* Register variable[3]: Local variable */
74 /* Register variable[4]: Result */
75 variable[4] = CALL_compiling_global___MMSrcModule___global_analysis(variable[0])(variable[0], variable[1] /*tc*/) /*MMSrcModule::global_analysis*/;
76 variable[3] = variable[4];
77 /* Register variable[4]: Result */
78 variable[4] = CALL_compiling_base___ToolContext___compdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::compdir*/;
79 CALL_file___String___mkdir(variable[4])(variable[4]) /*String::mkdir*/;
80 /* Register variable[4]: Local variable */
81 /* Register variable[5]: Result */
82 variable[5] = NEW_Array_array___Array___init() /*new Array[String]*/;
83 variable[4] = variable[5];
84 /* Register variable[5]: Local variable */
85 /* Register variable[6]: Result */
86 variable[6] = NEW_ArraySet_array___ArraySet___init() /*new ArraySet[String]*/;
87 variable[5] = variable[6];
88 /* Register variable[6]: Once String constant */
89 if (once_value_2 != NIT_NULL) variable[6] = once_value_2;
90 else {
91 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("$CLIBDIR/nit_main.c"), TAG_Int(19)) /*new String*/;
92 once_value_2 = variable[6];
93 }
94 /* Register variable[6]: Result */
95 CALL_abstract_collection___SimpleCollection___add( variable[4] /*files*/)( variable[4] /*files*/, variable[6]) /*AbstractArray::add*/;
96 /* Register variable[6]: Result */
97 variable[6] = CALL_abstractmetamodel___MMModule___mhe(variable[0])(variable[0]) /*MMModule::mhe*/;
98 /* Register variable[6]: Result */
99 variable[6] = CALL_partial_order___PartialOrderElement___greaters_and_self(variable[6])(variable[6]) /*PartialOrderElement::greaters_and_self*/;
100 /* Register variable[6]: For iterator */
101 variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*Collection::iterator*/;
102 while (true) { /*for*/
103 /* Register variable[7]: For 'is_ok' result */
104 variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
105 if (!UNTAG_Bool(variable[7])) break; /*for*/
106 variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/ /* Ensure var: For item*/;
107 /* Register variable[8]: Local variable */
108 variable[8] = variable[7];
109 /* Register variable[9]: Result */
110 variable[9] = TAG_Bool(( variable[8] /*m*/==NIT_NULL) || VAL_ISA( variable[8] /*m*/, COLOR_MMSrcModule, ID_MMSrcModule)) /*cast MMSrcModule*/;
111 if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling___MMSrcModule___compile_prog_to_c, LOCATE_compiling, 44); nit_exit(1);}
112 variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
113 /* Register variable[10]: Once String constant */
114 if (once_value_4 != NIT_NULL) variable[10] = once_value_4;
115 else {
116 variable[10] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
117 once_value_4 = variable[10];
118 }
119 /* Register variable[10]: Result */
120 /* Ensure var variable[10]: super-string element*/
121 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
122 /* Register variable[10]: Result */
123 variable[10] = CALL_compiling_base___ToolContext___compdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::compdir*/;
124 /* Ensure var variable[10]: super-string element*/
125 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
126 /* Register variable[10]: Once String constant */
127 if (once_value_5 != NIT_NULL) variable[10] = once_value_5;
128 else {
129 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)) /*new String*/;
130 once_value_5 = variable[10];
131 }
132 /* Register variable[10]: Result */
133 /* Ensure var variable[10]: super-string element*/
134 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
135 /* Register variable[10]: Result */
136 variable[10] = CALL_abstractmetamodel___MMModule___name( variable[8] /*m*/)( variable[8] /*m*/) /*MMModule::name*/;
137 /* Ensure var variable[10]: super-string element*/
138 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/) /*AbstractArray::add*/;
139 /* Register variable[10]: Once String constant */
140 if (once_value_6 != NIT_NULL) variable[10] = once_value_6;
141 else {
142 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("._sep.c"), TAG_Int(7)) /*new String*/;
143 once_value_6 = variable[10];
144 }
145 /* Register variable[10]: Result */
146 /* Ensure var variable[10]: super-string element*/
147 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
148 /* Register variable[9]: Result */
149 variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
150 CALL_abstract_collection___SimpleCollection___add( variable[4] /*files*/)( variable[4] /*files*/, variable[9]) /*AbstractArray::add*/;
151 CALL_compiling___MMSrcModule___compile_separate_module( variable[8] /*m*/)( variable[8] /*m*/, variable[1] /*tc*/, variable[3] /*ga*/) /*MMSrcModule::compile_separate_module*/;
152 /* Register variable[9]: Local variable */
153 /* Register variable[10]: Result */
154 variable[10] = CALL_abstractmetamodel___MMModule___filename( variable[8] /*m*/)( variable[8] /*m*/) /*MMModule::filename*/;
155 /* Register variable[11]: Once String constant */
156 if (once_value_7 != NIT_NULL) variable[11] = once_value_7;
157 else {
158 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(".nit"), TAG_Int(4)) /*new String*/;
159 once_value_7 = variable[11];
160 }
161 /* Register variable[11]: Result */
162 /* Register variable[10]: Result */
163 variable[10] = CALL_file___String___strip_extension(variable[10])(variable[10], variable[11]) /*String::strip_extension*/;
164 variable[9] = variable[10];
165 /* Register variable[10]: Once String constant */
166 if (once_value_8 != NIT_NULL) variable[10] = once_value_8;
167 else {
168 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("_nit.h"), TAG_Int(6)) /*new String*/;
169 once_value_8 = variable[10];
170 }
171 /* Register variable[10]: Result */
172 /* Register variable[10]: Result */
173 variable[10] = CALL_string___String_____plus( variable[9] /*native_name*/)( variable[9] /*native_name*/, variable[10]) /*String::+*/;
174 /* Register variable[10]: Result */
175 variable[10] = CALL_file___String___file_exists(variable[10])(variable[10]) /*String::file_exists*/;
176 if (UNTAG_Bool(variable[10])) { /*if*/
177 variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
178 /* Register variable[11]: Once String constant */
179 if (once_value_9 != NIT_NULL) variable[11] = once_value_9;
180 else {
181 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("-I "), TAG_Int(3)) /*new String*/;
182 once_value_9 = variable[11];
183 }
184 /* Register variable[11]: Result */
185 /* Ensure var variable[11]: super-string element*/
186 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
187 /* Register variable[11]: Result */
188 variable[11] = CALL_file___String___dirname( variable[9] /*native_name*/)( variable[9] /*native_name*/) /*String::dirname*/;
189 /* Ensure var variable[11]: super-string element*/
190 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
191 /* Register variable[11]: Once String constant */
192 if (once_value_10 != NIT_NULL) variable[11] = once_value_10;
193 else {
194 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
195 once_value_10 = variable[11];
196 }
197 /* Register variable[11]: Result */
198 /* Ensure var variable[11]: super-string element*/
199 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
200 /* Register variable[10]: Result */
201 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
202 CALL_abstract_collection___SimpleCollection___add( variable[5] /*includes*/)( variable[5] /*includes*/, variable[10]) /*ArraySet::add*/;
203 }
204 /* Register variable[10]: Once String constant */
205 if (once_value_11 != NIT_NULL) variable[10] = once_value_11;
206 else {
207 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("_nit.c"), TAG_Int(6)) /*new String*/;
208 once_value_11 = variable[10];
209 }
210 /* Register variable[10]: Result */
211 variable[9] = CALL_string___String_____plus(variable[9])(variable[9], variable[10]) /*String::+*/ /*native_name*/;
212 /* Register variable[10]: Result */
213 variable[10] = CALL_file___String___file_exists( variable[9] /*native_name*/)( variable[9] /*native_name*/) /*String::file_exists*/;
214 if (UNTAG_Bool(variable[10])) { /*if*/
215 CALL_abstract_collection___SimpleCollection___add( variable[4] /*files*/)( variable[4] /*files*/, variable[9] /*native_name*/) /*AbstractArray::add*/;
216 }
217 continue_3: while(0);
218 CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
219 }
220 break_3: while(0);
221 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
222 /* Register variable[7]: Once String constant */
223 if (once_value_12 != NIT_NULL) variable[7] = once_value_12;
224 else {
225 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
226 once_value_12 = variable[7];
227 }
228 /* Register variable[7]: Result */
229 /* Ensure var variable[7]: super-string element*/
230 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
231 /* Register variable[7]: Result */
232 variable[7] = CALL_compiling_base___ToolContext___compdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::compdir*/;
233 /* Ensure var variable[7]: super-string element*/
234 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
235 /* Register variable[7]: Once String constant */
236 if (once_value_13 != NIT_NULL) variable[7] = once_value_13;
237 else {
238 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)) /*new String*/;
239 once_value_13 = variable[7];
240 }
241 /* Register variable[7]: Result */
242 /* Ensure var variable[7]: super-string element*/
243 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
244 /* Register variable[7]: Result */
245 variable[7] = CALL_abstractmetamodel___MMModule___name(variable[0])(variable[0]) /*MMModule::name*/;
246 /* Ensure var variable[7]: super-string element*/
247 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
248 /* Register variable[7]: Once String constant */
249 if (once_value_14 != NIT_NULL) variable[7] = once_value_14;
250 else {
251 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("._tables.c"), TAG_Int(10)) /*new String*/;
252 once_value_14 = variable[7];
253 }
254 /* Register variable[7]: Result */
255 /* Ensure var variable[7]: super-string element*/
256 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
257 /* Register variable[6]: Result */
258 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
259 CALL_abstract_collection___SimpleCollection___add( variable[4] /*files*/)( variable[4] /*files*/, variable[6]) /*AbstractArray::add*/;
260 CALL_compiling___MMSrcModule___compile_main(variable[0])(variable[0], variable[1] /*tc*/, variable[3] /*ga*/) /*MMSrcModule::compile_main*/;
261 /* Register variable[6]: Local variable */
262 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
263 /* Register variable[8]: Once String constant */
264 if (once_value_15 != NIT_NULL) variable[8] = once_value_15;
265 else {
266 variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
267 once_value_15 = variable[8];
268 }
269 /* Register variable[8]: Result */
270 /* Ensure var variable[8]: super-string element*/
271 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
272 /* Register variable[8]: Result */
273 variable[8] = CALL_compiling_base___ToolContext___compdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::compdir*/;
274 /* Ensure var variable[8]: super-string element*/
275 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
276 /* Register variable[8]: Once String constant */
277 if (once_value_16 != NIT_NULL) variable[8] = once_value_16;
278 else {
279 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)) /*new String*/;
280 once_value_16 = variable[8];
281 }
282 /* Register variable[8]: Result */
283 /* Ensure var variable[8]: super-string element*/
284 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
285 /* Register variable[8]: Result */
286 variable[8] = CALL_abstractmetamodel___MMModule___name(variable[0])(variable[0]) /*MMModule::name*/;
287 /* Ensure var variable[8]: super-string element*/
288 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/;
289 /* Register variable[8]: Once String constant */
290 if (once_value_17 != NIT_NULL) variable[8] = once_value_17;
291 else {
292 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("._build.sh"), TAG_Int(10)) /*new String*/;
293 once_value_17 = variable[8];
294 }
295 /* Register variable[8]: Result */
296 /* Ensure var variable[8]: super-string element*/
297 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
298 /* Register variable[7]: Result */
299 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
300 variable[6] = variable[7];
301 /* Register variable[7]: Local variable */
302 /* Register variable[8]: Result */
303 variable[8] = NEW_OFStream_file___OFStream___open( variable[6] /*fn*/) /*new OFStream*/;
304 variable[7] = variable[8];
305 /* Register variable[8]: Once String constant */
306 if (once_value_18 != NIT_NULL) variable[8] = once_value_18;
307 else {
308 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("#!/bin/sh\n"), TAG_Int(10)) /*new String*/;
309 once_value_18 = variable[8];
310 }
311 /* Register variable[8]: Result */
312 CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
313 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
314 /* Register variable[9]: Once String constant */
315 if (once_value_19 != NIT_NULL) variable[9] = once_value_19;
316 else {
317 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("# This shell script is generated by NIT to compile the program "), TAG_Int(63)) /*new String*/;
318 once_value_19 = variable[9];
319 }
320 /* Register variable[9]: Result */
321 /* Ensure var variable[9]: super-string element*/
322 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
323 /* Register variable[9]: Result */
324 variable[9] = CALL_abstractmetamodel___MMModule___name(variable[0])(variable[0]) /*MMModule::name*/;
325 /* Ensure var variable[9]: super-string element*/
326 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/;
327 /* Register variable[9]: Once String constant */
328 if (once_value_20 != NIT_NULL) variable[9] = once_value_20;
329 else {
330 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(".\n"), TAG_Int(2)) /*new String*/;
331 once_value_20 = variable[9];
332 }
333 /* Register variable[9]: Result */
334 /* Ensure var variable[9]: super-string element*/
335 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
336 /* Register variable[8]: Result */
337 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
338 CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
339 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
340 /* Register variable[9]: Once String constant */
341 if (once_value_21 != NIT_NULL) variable[9] = once_value_21;
342 else {
343 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("CLIBDIR=\""), TAG_Int(9)) /*new String*/;
344 once_value_21 = variable[9];
345 }
346 /* Register variable[9]: Result */
347 /* Ensure var variable[9]: super-string element*/
348 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
349 /* Register variable[9]: Result */
350 variable[9] = CALL_compiling_base___ToolContext___clibdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::clibdir*/;
351 /* Ensure var variable[9]: super-string element*/
352 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
353 /* Register variable[9]: Once String constant */
354 if (once_value_22 != NIT_NULL) variable[9] = once_value_22;
355 else {
356 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("\"\n"), TAG_Int(2)) /*new String*/;
357 once_value_22 = variable[9];
358 }
359 /* Register variable[9]: Result */
360 /* Ensure var variable[9]: super-string element*/
361 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
362 /* Register variable[8]: Result */
363 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
364 CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
365 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
366 /* Register variable[9]: Once String constant */
367 if (once_value_23 != NIT_NULL) variable[9] = once_value_23;
368 else {
369 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
370 once_value_23 = variable[9];
371 }
372 /* Register variable[9]: Result */
373 /* Ensure var variable[9]: super-string element*/
374 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
375 /* Register variable[9]: Result */
376 variable[9] = CALL_compiling_base___ToolContext___bindir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::bindir*/;
377 /* Ensure var variable[9]: super-string element*/
378 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
379 /* Register variable[9]: Once String constant */
380 if (once_value_24 != NIT_NULL) variable[9] = once_value_24;
381 else {
382 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("/gccx -d "), TAG_Int(9)) /*new String*/;
383 once_value_24 = variable[9];
384 }
385 /* Register variable[9]: Result */
386 /* Ensure var variable[9]: super-string element*/
387 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
388 /* Register variable[9]: Result */
389 variable[9] = CALL_compiling_base___ToolContext___compdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::compdir*/;
390 /* Ensure var variable[9]: super-string element*/
391 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
392 /* Register variable[9]: Once String constant */
393 if (once_value_25 != NIT_NULL) variable[9] = once_value_25;
394 else {
395 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" -I $CLIBDIR "), TAG_Int(13)) /*new String*/;
396 once_value_25 = variable[9];
397 }
398 /* Register variable[9]: Result */
399 /* Ensure var variable[9]: super-string element*/
400 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
401 /* Register variable[9]: Once String constant */
402 if (once_value_26 != NIT_NULL) variable[9] = once_value_26;
403 else {
404 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)) /*new String*/;
405 once_value_26 = variable[9];
406 }
407 /* Register variable[9]: Result */
408 /* Register variable[9]: Result */
409 variable[9] = CALL_string___Collection___join( variable[5] /*includes*/)( variable[5] /*includes*/, variable[9]) /*Collection::join*/;
410 /* Ensure var variable[9]: super-string element*/
411 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
412 /* Register variable[9]: Once String constant */
413 if (once_value_27 != NIT_NULL) variable[9] = once_value_27;
414 else {
415 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
416 once_value_27 = variable[9];
417 }
418 /* Register variable[9]: Result */
419 /* Ensure var variable[9]: super-string element*/
420 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
421 /* Register variable[8]: Result */
422 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
423 CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
424 /* Register variable[8]: Result */
425 variable[8] = CALL_compiling_base___ToolContext___output_file( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::output_file*/;
426 /* Register variable[8]: Result */
427 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] == NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8], NIT_NULL /*null*/) /*Object::==*/)))))));
428 if (UNTAG_Bool(variable[8])) { /*if*/
429 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
430 /* Register variable[9]: Once String constant */
431 if (once_value_28 != NIT_NULL) variable[9] = once_value_28;
432 else {
433 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" -o "), TAG_Int(4)) /*new String*/;
434 once_value_28 = variable[9];
435 }
436 /* Register variable[9]: Result */
437 /* Ensure var variable[9]: super-string element*/
438 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
439 /* Register variable[9]: Result */
440 variable[9] = CALL_compiling_base___ToolContext___output_file( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::output_file*/;
441 /* Ensure var variable[9]: super-string element*/
442 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
443 /* Register variable[9]: Once String constant */
444 if (once_value_29 != NIT_NULL) variable[9] = once_value_29;
445 else {
446 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
447 once_value_29 = variable[9];
448 }
449 /* Register variable[9]: Result */
450 /* Ensure var variable[9]: super-string element*/
451 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
452 /* Register variable[8]: Result */
453 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
454 CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
455 } else { /*if*/
456 /* Register variable[8]: Result */
457 variable[8] = CALL_compiling_base___ToolContext___ext_prefix( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::ext_prefix*/;
458 /* Register variable[8]: Result */
459 variable[8] = CALL_abstract_collection___Collection___is_empty(variable[8])(variable[8]) /*AbstractArrayRead::is_empty*/;
460 if (UNTAG_Bool(variable[8])) { /*if*/
461 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
462 /* Register variable[9]: Once String constant */
463 if (once_value_30 != NIT_NULL) variable[9] = once_value_30;
464 else {
465 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" -o "), TAG_Int(4)) /*new String*/;
466 once_value_30 = variable[9];
467 }
468 /* Register variable[9]: Result */
469 /* Ensure var variable[9]: super-string element*/
470 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
471 /* Register variable[9]: Result */
472 variable[9] = CALL_abstractmetamodel___MMModule___name(variable[0])(variable[0]) /*MMModule::name*/;
473 /* Ensure var variable[9]: super-string element*/
474 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/;
475 /* Register variable[9]: Once String constant */
476 if (once_value_31 != NIT_NULL) variable[9] = once_value_31;
477 else {
478 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
479 once_value_31 = variable[9];
480 }
481 /* Register variable[9]: Result */
482 /* Ensure var variable[9]: super-string element*/
483 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
484 /* Register variable[8]: Result */
485 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
486 CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
487 } else { /*if*/
488 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
489 /* Register variable[9]: Once String constant */
490 if (once_value_32 != NIT_NULL) variable[9] = once_value_32;
491 else {
492 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" -o "), TAG_Int(4)) /*new String*/;
493 once_value_32 = variable[9];
494 }
495 /* Register variable[9]: Result */
496 /* Ensure var variable[9]: super-string element*/
497 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
498 /* Register variable[9]: Result */
499 variable[9] = CALL_abstractmetamodel___MMModule___name(variable[0])(variable[0]) /*MMModule::name*/;
500 /* Ensure var variable[9]: super-string element*/
501 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/;
502 /* Register variable[9]: Once String constant */
503 if (once_value_33 != NIT_NULL) variable[9] = once_value_33;
504 else {
505 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)) /*new String*/;
506 once_value_33 = variable[9];
507 }
508 /* Register variable[9]: Result */
509 /* Ensure var variable[9]: super-string element*/
510 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
511 /* Register variable[9]: Result */
512 variable[9] = CALL_compiling_base___ToolContext___ext_prefix( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::ext_prefix*/;
513 /* Ensure var variable[9]: super-string element*/
514 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
515 /* Register variable[9]: Once String constant */
516 if (once_value_34 != NIT_NULL) variable[9] = once_value_34;
517 else {
518 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
519 once_value_34 = variable[9];
520 }
521 /* Register variable[9]: Result */
522 /* Ensure var variable[9]: super-string element*/
523 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
524 /* Register variable[8]: Result */
525 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
526 CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
527 }
528 }
529 /* Register variable[8]: Result */
530 variable[8] = CALL_compiling_base___ToolContext___boost( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::boost*/;
531 if (UNTAG_Bool(variable[8])) { /*if*/
532 /* Register variable[8]: Once String constant */
533 if (once_value_35 != NIT_NULL) variable[8] = once_value_35;
534 else {
535 variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" -O"), TAG_Int(3)) /*new String*/;
536 once_value_35 = variable[8];
537 }
538 /* Register variable[8]: Result */
539 CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
540 }
541 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
542 /* Register variable[9]: Once String constant */
543 if (once_value_36 != NIT_NULL) variable[9] = once_value_36;
544 else {
545 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" \"$@\" \\\n "), TAG_Int(10)) /*new String*/;
546 once_value_36 = variable[9];
547 }
548 /* Register variable[9]: Result */
549 /* Ensure var variable[9]: super-string element*/
550 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
551 /* Register variable[9]: Once String constant */
552 if (once_value_37 != NIT_NULL) variable[9] = once_value_37;
553 else {
554 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("\\\n "), TAG_Int(4)) /*new String*/;
555 once_value_37 = variable[9];
556 }
557 /* Register variable[9]: Result */
558 /* Register variable[9]: Result */
559 variable[9] = CALL_string___Collection___join( variable[4] /*files*/)( variable[4] /*files*/, variable[9]) /*Collection::join*/;
560 /* Ensure var variable[9]: super-string element*/
561 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
562 /* Register variable[9]: Once String constant */
563 if (once_value_38 != NIT_NULL) variable[9] = once_value_38;
564 else {
565 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)) /*new String*/;
566 once_value_38 = variable[9];
567 }
568 /* Register variable[9]: Result */
569 /* Ensure var variable[9]: super-string element*/
570 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
571 /* Register variable[8]: Result */
572 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
573 CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
574 CALL_stream___IOS___close( variable[7] /*f*/)( variable[7] /*f*/) /*OFStream::close*/;
575 /* Register variable[8]: Result */
576 variable[8] = CALL_compiling_base___ToolContext___no_cc( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::no_cc*/;
577 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[8])))) { /*if*/
578 /* Register variable[8]: Result */
579 variable[8] = (G_sys);
580 variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
581 /* Register variable[10]: Once String constant */
582 if (once_value_39 != NIT_NULL) variable[10] = once_value_39;
583 else {
584 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("sh "), TAG_Int(3)) /*new String*/;
585 once_value_39 = variable[10];
586 }
587 /* Register variable[10]: Result */
588 /* Ensure var variable[10]: super-string element*/
589 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
590 variable[10] = variable[6] /*fn*/ /* Ensure var: super-string element*/;
591 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
592 /* Register variable[10]: Once String constant */
593 if (once_value_40 != NIT_NULL) variable[10] = once_value_40;
594 else {
595 variable[10] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
596 once_value_40 = variable[10];
597 }
598 /* Register variable[10]: Result */
599 /* Ensure var variable[10]: super-string element*/
600 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
601 /* Register variable[9]: Result */
602 variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
603 CALL_exec___Sys___system(variable[8])(variable[8], variable[9]) /*Sys::system*/;
604 }
605 return_label0: while(false);
606 tracehead = trace.prev;
607 return;
608 }
609 void compiling___MMSrcModule___compile_main(val_t self, val_t param0, val_t param1) {
610 struct trace_t trace = {NULL, NULL, 80, LOCATE_compiling___MMSrcModule___compile_main};
611 static val_t once_value_42 = NIT_NULL; /* Once value for string variable[5]*/
612 static val_t once_value_43 = NIT_NULL; /* Once value for string variable[7]*/
613 static val_t once_value_44 = NIT_NULL; /* Once value for string variable[7]*/
614 static val_t once_value_45 = NIT_NULL; /* Once value for string variable[7]*/
615 static val_t once_value_46 = NIT_NULL; /* Once value for string variable[7]*/
616 static val_t once_value_47 = NIT_NULL; /* Once value for string variable[7]*/
617 static val_t once_value_49 = NIT_NULL; /* Once value for string variable[10]*/
618 static val_t once_value_50 = NIT_NULL; /* Once value for string variable[10]*/
619 val_t variable[11];
620 struct WBT_ **closurevariable = NULL;
621 trace.prev = tracehead; tracehead = &trace;
622 trace.file = LOCATE_compiling;
623 /* Register variable[0]: Local variable */
624 variable[0] = self;
625 /* Register variable[1]: Local variable */
626 variable[1] = param0;
627 /* Register variable[2]: Local variable */
628 variable[2] = param1;
629 /* Register variable[3]: Method return value and escape marker */
630 /* Register variable[4]: Local variable */
631 /* Register variable[5]: Result */
632 variable[5] = NEW_GlobalCompilerVisitor_compiling_global___GlobalCompilerVisitor___init(variable[0], variable[1] /*tc*/, variable[2] /*ga*/) /*new GlobalCompilerVisitor*/;
633 variable[4] = variable[5];
634 /* Register variable[5]: Once String constant */
635 if (once_value_42 != NIT_NULL) variable[5] = once_value_42;
636 else {
637 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("#include <nit_common.h>"), TAG_Int(23)) /*new String*/;
638 once_value_42 = variable[5];
639 }
640 /* Register variable[5]: Result */
641 CALL_compiling_base___CompilerVisitor___add_decl( variable[4] /*v*/)( variable[4] /*v*/, variable[5]) /*CompilerVisitor::add_decl*/;
642 CALL_compiling_global___MMSrcModule___compile_tables_to_c(variable[0])(variable[0], variable[4] /*v*/) /*MMSrcModule::compile_tables_to_c*/;
643 CALL_compiling_global___MMSrcModule___compile_main_part(variable[0])(variable[0], variable[4] /*v*/) /*MMSrcModule::compile_main_part*/;
644 /* Register variable[5]: Local variable */
645 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
646 /* Register variable[7]: Once String constant */
647 if (once_value_43 != NIT_NULL) variable[7] = once_value_43;
648 else {
649 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
650 once_value_43 = variable[7];
651 }
652 /* Register variable[7]: Result */
653 /* Ensure var variable[7]: super-string element*/
654 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
655 /* Register variable[7]: Result */
656 variable[7] = CALL_compiling_base___ToolContext___compdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::compdir*/;
657 /* Ensure var variable[7]: super-string element*/
658 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
659 /* Register variable[7]: Once String constant */
660 if (once_value_44 != NIT_NULL) variable[7] = once_value_44;
661 else {
662 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)) /*new String*/;
663 once_value_44 = variable[7];
664 }
665 /* Register variable[7]: Result */
666 /* Ensure var variable[7]: super-string element*/
667 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
668 /* Register variable[7]: Result */
669 variable[7] = CALL_abstractmetamodel___MMModule___name(variable[0])(variable[0]) /*MMModule::name*/;
670 /* Ensure var variable[7]: super-string element*/
671 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
672 /* Register variable[7]: Once String constant */
673 if (once_value_45 != NIT_NULL) variable[7] = once_value_45;
674 else {
675 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("._tables.c"), TAG_Int(10)) /*new String*/;
676 once_value_45 = variable[7];
677 }
678 /* Register variable[7]: Result */
679 /* Ensure var variable[7]: super-string element*/
680 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
681 /* Register variable[6]: Result */
682 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
683 /* Register variable[6]: Result */
684 variable[6] = NEW_OFStream_file___OFStream___open(variable[6]) /*new OFStream*/;
685 variable[5] = variable[6];
686 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
687 /* Register variable[7]: Once String constant */
688 if (once_value_46 != NIT_NULL) variable[7] = once_value_46;
689 else {
690 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("/* This C file is generated by NIT to compile program "), TAG_Int(54)) /*new String*/;
691 once_value_46 = variable[7];
692 }
693 /* Register variable[7]: Result */
694 /* Ensure var variable[7]: super-string element*/
695 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
696 /* Register variable[7]: Result */
697 variable[7] = CALL_abstractmetamodel___MMModule___name(variable[0])(variable[0]) /*MMModule::name*/;
698 /* Ensure var variable[7]: super-string element*/
699 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
700 /* Register variable[7]: Once String constant */
701 if (once_value_47 != NIT_NULL) variable[7] = once_value_47;
702 else {
703 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(". */\n"), TAG_Int(5)) /*new String*/;
704 once_value_47 = variable[7];
705 }
706 /* Register variable[7]: Result */
707 /* Ensure var variable[7]: super-string element*/
708 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
709 /* Register variable[6]: Result */
710 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
711 CALL_stream___OStream___write( variable[5] /*f*/)( variable[5] /*f*/, variable[6]) /*OFStream::write*/;
712 /* Register variable[6]: Result */
713 variable[6] = CALL_abstractmetamodel___MMModule___mhe(variable[0])(variable[0]) /*MMModule::mhe*/;
714 /* Register variable[6]: Result */
715 variable[6] = CALL_partial_order___PartialOrderElement___greaters_and_self(variable[6])(variable[6]) /*PartialOrderElement::greaters_and_self*/;
716 /* Register variable[6]: For iterator */
717 variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*Collection::iterator*/;
718 while (true) { /*for*/
719 /* Register variable[7]: For 'is_ok' result */
720 variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
721 if (!UNTAG_Bool(variable[7])) break; /*for*/
722 variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/ /* Ensure var: For item*/;
723 /* Register variable[8]: Local variable */
724 variable[8] = variable[7];
725 variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
726 /* Register variable[10]: Once String constant */
727 if (once_value_49 != NIT_NULL) variable[10] = once_value_49;
728 else {
729 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("#include \""), TAG_Int(10)) /*new String*/;
730 once_value_49 = variable[10];
731 }
732 /* Register variable[10]: Result */
733 /* Ensure var variable[10]: super-string element*/
734 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
735 /* Register variable[10]: Result */
736 variable[10] = CALL_abstractmetamodel___MMModule___name( variable[8] /*m*/)( variable[8] /*m*/) /*MMModule::name*/;
737 /* Ensure var variable[10]: super-string element*/
738 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/) /*AbstractArray::add*/;
739 /* Register variable[10]: Once String constant */
740 if (once_value_50 != NIT_NULL) variable[10] = once_value_50;
741 else {
742 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("._sep.h\"\n"), TAG_Int(9)) /*new String*/;
743 once_value_50 = variable[10];
744 }
745 /* Register variable[10]: Result */
746 /* Ensure var variable[10]: super-string element*/
747 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
748 /* Register variable[9]: Result */
749 variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
750 CALL_stream___OStream___write( variable[5] /*f*/)( variable[5] /*f*/, variable[9]) /*OFStream::write*/;
751 continue_48: while(0);
752 CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
753 }
754 break_48: while(0);
755 /* Register variable[6]: Result */
756 variable[6] = CALL_string___Object___to_s( variable[4] /*v*/)( variable[4] /*v*/) /*CompilerVisitor::to_s*/;
757 CALL_stream___OStream___write( variable[5] /*f*/)( variable[5] /*f*/, variable[6]) /*OFStream::write*/;
758 CALL_stream___IOS___close( variable[5] /*f*/)( variable[5] /*f*/) /*OFStream::close*/;
759 return_label41: while(false);
760 tracehead = trace.prev;
761 return;
762 }
763 void compiling___MMSrcModule___compile_separate_module(val_t self, val_t param0, val_t param1) {
764 struct trace_t trace = {NULL, NULL, 96, LOCATE_compiling___MMSrcModule___compile_separate_module};
765 static val_t once_value_52 = NIT_NULL; /* Once value for string variable[5]*/
766 static val_t once_value_53 = NIT_NULL; /* Once value for string variable[7]*/
767 static val_t once_value_54 = NIT_NULL; /* Once value for string variable[6]*/
768 static val_t once_value_55 = NIT_NULL; /* Once value for string variable[7]*/
769 static val_t once_value_56 = NIT_NULL; /* Once value for string variable[7]*/
770 static val_t once_value_57 = NIT_NULL; /* Once value for string variable[7]*/
771 static val_t once_value_58 = NIT_NULL; /* Once value for string variable[8]*/
772 static val_t once_value_59 = NIT_NULL; /* Once value for string variable[8]*/
773 static val_t once_value_60 = NIT_NULL; /* Once value for string variable[8]*/
774 static val_t once_value_61 = NIT_NULL; /* Once value for string variable[8]*/
775 static val_t once_value_62 = NIT_NULL; /* Once value for string variable[8]*/
776 static val_t once_value_63 = NIT_NULL; /* Once value for string variable[8]*/
777 static val_t once_value_64 = NIT_NULL; /* Once value for string variable[8]*/
778 static val_t once_value_65 = NIT_NULL; /* Once value for string variable[8]*/
779 static val_t once_value_66 = NIT_NULL; /* Once value for string variable[8]*/
780 static val_t once_value_68 = NIT_NULL; /* Once value for string variable[11]*/
781 static val_t once_value_69 = NIT_NULL; /* Once value for string variable[11]*/
782 static val_t once_value_70 = NIT_NULL; /* Once value for string variable[8]*/
783 static val_t once_value_71 = NIT_NULL; /* Once value for string variable[7]*/
784 static val_t once_value_72 = NIT_NULL; /* Once value for string variable[9]*/
785 static val_t once_value_73 = NIT_NULL; /* Once value for string variable[9]*/
786 static val_t once_value_74 = NIT_NULL; /* Once value for string variable[9]*/
787 static val_t once_value_75 = NIT_NULL; /* Once value for string variable[9]*/
788 static val_t once_value_76 = NIT_NULL; /* Once value for string variable[9]*/
789 static val_t once_value_77 = NIT_NULL; /* Once value for string variable[9]*/
790 static val_t once_value_78 = NIT_NULL; /* Once value for string variable[9]*/
791 static val_t once_value_79 = NIT_NULL; /* Once value for string variable[9]*/
792 static val_t once_value_80 = NIT_NULL; /* Once value for string variable[8]*/
793 val_t variable[12];
794 struct WBT_ **closurevariable = NULL;
795 trace.prev = tracehead; tracehead = &trace;
796 trace.file = LOCATE_compiling;
797 /* Register variable[0]: Local variable */
798 variable[0] = self;
799 /* Register variable[1]: Local variable */
800 variable[1] = param0;
801 /* Register variable[2]: Local variable */
802 variable[2] = param1;
803 /* Register variable[3]: Method return value and escape marker */
804 /* Register variable[4]: Local variable */
805 /* Register variable[5]: Result */
806 variable[5] = NEW_GlobalCompilerVisitor_compiling_global___GlobalCompilerVisitor___init(variable[0], variable[1] /*tc*/, variable[2] /*ga*/) /*new GlobalCompilerVisitor*/;
807 variable[4] = variable[5];
808 /* Register variable[5]: Once String constant */
809 if (once_value_52 != NIT_NULL) variable[5] = once_value_52;
810 else {
811 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("#include <nit_common.h>"), TAG_Int(23)) /*new String*/;
812 once_value_52 = variable[5];
813 }
814 /* Register variable[5]: Result */
815 CALL_compiling_base___CompilerVisitor___add_decl( variable[4] /*v*/)( variable[4] /*v*/, variable[5]) /*CompilerVisitor::add_decl*/;
816 /* Register variable[5]: Local variable */
817 /* Register variable[6]: Result */
818 variable[6] = CALL_abstractmetamodel___MMModule___filename(variable[0])(variable[0]) /*MMModule::filename*/;
819 /* Register variable[7]: Once String constant */
820 if (once_value_53 != NIT_NULL) variable[7] = once_value_53;
821 else {
822 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(".nit"), TAG_Int(4)) /*new String*/;
823 once_value_53 = variable[7];
824 }
825 /* Register variable[7]: Result */
826 /* Register variable[6]: Result */
827 variable[6] = CALL_file___String___strip_extension(variable[6])(variable[6], variable[7]) /*String::strip_extension*/;
828 variable[5] = variable[6];
829 /* Register variable[6]: Once String constant */
830 if (once_value_54 != NIT_NULL) variable[6] = once_value_54;
831 else {
832 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("_nit.h"), TAG_Int(6)) /*new String*/;
833 once_value_54 = variable[6];
834 }
835 /* Register variable[6]: Result */
836 variable[5] = CALL_string___String_____plus(variable[5])(variable[5], variable[6]) /*String::+*/ /*native_name*/;
837 /* Register variable[6]: Result */
838 variable[6] = CALL_file___String___file_exists( variable[5] /*native_name*/)( variable[5] /*native_name*/) /*String::file_exists*/;
839 if (UNTAG_Bool(variable[6])) { /*if*/
840 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
841 /* Register variable[7]: Once String constant */
842 if (once_value_55 != NIT_NULL) variable[7] = once_value_55;
843 else {
844 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("#include <"), TAG_Int(10)) /*new String*/;
845 once_value_55 = variable[7];
846 }
847 /* Register variable[7]: Result */
848 /* Ensure var variable[7]: super-string element*/
849 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
850 /* Register variable[7]: Once String constant */
851 if (once_value_56 != NIT_NULL) variable[7] = once_value_56;
852 else {
853 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
854 once_value_56 = variable[7];
855 }
856 /* Register variable[7]: Result */
857 /* Register variable[7]: Result */
858 variable[7] = CALL_file___String___basename( variable[5] /*native_name*/)( variable[5] /*native_name*/, variable[7]) /*String::basename*/;
859 /* Ensure var variable[7]: super-string element*/
860 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
861 /* Register variable[7]: Once String constant */
862 if (once_value_57 != NIT_NULL) variable[7] = once_value_57;
863 else {
864 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)) /*new String*/;
865 once_value_57 = variable[7];
866 }
867 /* Register variable[7]: Result */
868 /* Ensure var variable[7]: super-string element*/
869 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
870 /* Register variable[6]: Result */
871 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
872 CALL_compiling_base___CompilerVisitor___add_decl( variable[4] /*v*/)( variable[4] /*v*/, variable[6]) /*CompilerVisitor::add_decl*/;
873 }
874 CALL_compiling_global___MMSrcModule___declare_class_tables_to_c(variable[0])(variable[0], variable[4] /*v*/) /*MMSrcModule::declare_class_tables_to_c*/;
875 CALL_compiling_global___MMSrcModule___compile_mod_to_c(variable[0])(variable[0], variable[4] /*v*/) /*MMSrcModule::compile_mod_to_c*/;
876 /* Register variable[6]: Local variable */
877 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
878 /* Register variable[8]: Once String constant */
879 if (once_value_58 != NIT_NULL) variable[8] = once_value_58;
880 else {
881 variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
882 once_value_58 = variable[8];
883 }
884 /* Register variable[8]: Result */
885 /* Ensure var variable[8]: super-string element*/
886 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
887 /* Register variable[8]: Result */
888 variable[8] = CALL_compiling_base___ToolContext___compdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::compdir*/;
889 /* Ensure var variable[8]: super-string element*/
890 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
891 /* Register variable[8]: Once String constant */
892 if (once_value_59 != NIT_NULL) variable[8] = once_value_59;
893 else {
894 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)) /*new String*/;
895 once_value_59 = variable[8];
896 }
897 /* Register variable[8]: Result */
898 /* Ensure var variable[8]: super-string element*/
899 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
900 /* Register variable[8]: Result */
901 variable[8] = CALL_abstractmetamodel___MMModule___name(variable[0])(variable[0]) /*MMModule::name*/;
902 /* Ensure var variable[8]: super-string element*/
903 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/;
904 /* Register variable[8]: Once String constant */
905 if (once_value_60 != NIT_NULL) variable[8] = once_value_60;
906 else {
907 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("._sep.h"), TAG_Int(7)) /*new String*/;
908 once_value_60 = variable[8];
909 }
910 /* Register variable[8]: Result */
911 /* Ensure var variable[8]: super-string element*/
912 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
913 /* Register variable[7]: Result */
914 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
915 /* Register variable[7]: Result */
916 variable[7] = NEW_OFStream_file___OFStream___open(variable[7]) /*new OFStream*/;
917 variable[6] = variable[7];
918 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
919 /* Register variable[8]: Once String constant */
920 if (once_value_61 != NIT_NULL) variable[8] = once_value_61;
921 else {
922 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("/* This C header file is generated by NIT to compile modules and programs that requires "), TAG_Int(88)) /*new String*/;
923 once_value_61 = variable[8];
924 }
925 /* Register variable[8]: Result */
926 /* Ensure var variable[8]: super-string element*/
927 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
928 /* Register variable[8]: Result */
929 variable[8] = CALL_abstractmetamodel___MMModule___name(variable[0])(variable[0]) /*MMModule::name*/;
930 /* Ensure var variable[8]: super-string element*/
931 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/;
932 /* Register variable[8]: Once String constant */
933 if (once_value_62 != NIT_NULL) variable[8] = once_value_62;
934 else {
935 variable[8] = NEW_String_string___String___with_native(BOX_NativeString(". */\n"), TAG_Int(5)) /*new String*/;
936 once_value_62 = variable[8];
937 }
938 /* Register variable[8]: Result */
939 /* Ensure var variable[8]: super-string element*/
940 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
941 /* Register variable[7]: Result */
942 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
943 CALL_stream___OStream___write( variable[6] /*f*/)( variable[6] /*f*/, variable[7]) /*OFStream::write*/;
944 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
945 /* Register variable[8]: Once String constant */
946 if (once_value_63 != NIT_NULL) variable[8] = once_value_63;
947 else {
948 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("#ifndef "), TAG_Int(8)) /*new String*/;
949 once_value_63 = variable[8];
950 }
951 /* Register variable[8]: Result */
952 /* Ensure var variable[8]: super-string element*/
953 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
954 /* Register variable[8]: Result */
955 variable[8] = CALL_abstractmetamodel___MMModule___name(variable[0])(variable[0]) /*MMModule::name*/;
956 /* Ensure var variable[8]: super-string element*/
957 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/;
958 /* Register variable[8]: Once String constant */
959 if (once_value_64 != NIT_NULL) variable[8] = once_value_64;
960 else {
961 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("_sep\n"), TAG_Int(5)) /*new String*/;
962 once_value_64 = variable[8];
963 }
964 /* Register variable[8]: Result */
965 /* Ensure var variable[8]: super-string element*/
966 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
967 /* Register variable[7]: Result */
968 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
969 CALL_stream___OStream___write( variable[6] /*f*/)( variable[6] /*f*/, variable[7]) /*OFStream::write*/;
970 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
971 /* Register variable[8]: Once String constant */
972 if (once_value_65 != NIT_NULL) variable[8] = once_value_65;
973 else {
974 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)) /*new String*/;
975 once_value_65 = variable[8];
976 }
977 /* Register variable[8]: Result */
978 /* Ensure var variable[8]: super-string element*/
979 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
980 /* Register variable[8]: Result */
981 variable[8] = CALL_abstractmetamodel___MMModule___name(variable[0])(variable[0]) /*MMModule::name*/;
982 /* Ensure var variable[8]: super-string element*/
983 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/;
984 /* Register variable[8]: Once String constant */
985 if (once_value_66 != NIT_NULL) variable[8] = once_value_66;
986 else {
987 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("_sep\n"), TAG_Int(5)) /*new String*/;
988 once_value_66 = variable[8];
989 }
990 /* Register variable[8]: Result */
991 /* Ensure var variable[8]: super-string element*/
992 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
993 /* Register variable[7]: Result */
994 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
995 CALL_stream___OStream___write( variable[6] /*f*/)( variable[6] /*f*/, variable[7]) /*OFStream::write*/;
996 /* Register variable[7]: Result */
997 variable[7] = CALL_abstractmetamodel___MMModule___mhe(variable[0])(variable[0]) /*MMModule::mhe*/;
998 /* Register variable[7]: Result */
999 variable[7] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[7])(variable[7]) /*PartialOrderElement::direct_greaters*/;
1000 /* Register variable[7]: For iterator */
1001 variable[7] = CALL_abstract_collection___Collection___iterator(variable[7])(variable[7]) /*AbstractArrayRead::iterator*/;
1002 while (true) { /*for*/
1003 /* Register variable[8]: For 'is_ok' result */
1004 variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*ArrayIterator::is_ok*/;
1005 if (!UNTAG_Bool(variable[8])) break; /*for*/
1006 variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
1007 /* Register variable[9]: Local variable */
1008 variable[9] = variable[8];
1009 variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
1010 /* Register variable[11]: Once String constant */
1011 if (once_value_68 != NIT_NULL) variable[11] = once_value_68;
1012 else {
1013 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("#include \""), TAG_Int(10)) /*new String*/;
1014 once_value_68 = variable[11];
1015 }
1016 /* Register variable[11]: Result */
1017 /* Ensure var variable[11]: super-string element*/
1018 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
1019 /* Register variable[11]: Result */
1020 variable[11] = CALL_abstractmetamodel___MMModule___name( variable[9] /*m*/)( variable[9] /*m*/) /*MMModule::name*/;
1021 /* Ensure var variable[11]: super-string element*/
1022 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/) /*AbstractArray::add*/;
1023 /* Register variable[11]: Once String constant */
1024 if (once_value_69 != NIT_NULL) variable[11] = once_value_69;
1025 else {
1026 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("._sep.h\"\n"), TAG_Int(9)) /*new String*/;
1027 once_value_69 = variable[11];
1028 }
1029 /* Register variable[11]: Result */
1030 /* Ensure var variable[11]: super-string element*/
1031 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
1032 /* Register variable[10]: Result */
1033 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
1034 CALL_stream___OStream___write( variable[6] /*f*/)( variable[6] /*f*/, variable[10]) /*OFStream::write*/;
1035 continue_67: while(0);
1036 CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*ArrayIterator::next*/;
1037 }
1038 break_67: while(0);
1039 /* Register variable[7]: Result */
1040 variable[7] = CALL_compiling_base___CompilerVisitor___ctx( variable[4] /*v*/)( variable[4] /*v*/) /*CompilerVisitor::ctx*/;
1041 /* Register variable[7]: Result */
1042 variable[7] = CALL_compiling_base___CContext___decls(variable[7])(variable[7]) /*CContext::decls*/;
1043 /* Register variable[8]: Once String constant */
1044 if (once_value_70 != NIT_NULL) variable[8] = once_value_70;
1045 else {
1046 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)) /*new String*/;
1047 once_value_70 = variable[8];
1048 }
1049 /* Register variable[8]: Result */
1050 /* Register variable[7]: Result */
1051 variable[7] = CALL_string___Collection___join(variable[7])(variable[7], variable[8]) /*Collection::join*/;
1052 CALL_stream___OStream___write( variable[6] /*f*/)( variable[6] /*f*/, variable[7]) /*OFStream::write*/;
1053 /* Register variable[7]: Once String constant */
1054 if (once_value_71 != NIT_NULL) variable[7] = once_value_71;
1055 else {
1056 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("\n#endif\n"), TAG_Int(8)) /*new String*/;
1057 once_value_71 = variable[7];
1058 }
1059 /* Register variable[7]: Result */
1060 CALL_stream___OStream___write( variable[6] /*f*/)( variable[6] /*f*/, variable[7]) /*OFStream::write*/;
1061 CALL_stream___IOS___close( variable[6] /*f*/)( variable[6] /*f*/) /*OFStream::close*/;
1062 /* Register variable[7]: Local variable */
1063 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
1064 /* Register variable[9]: Once String constant */
1065 if (once_value_72 != NIT_NULL) variable[9] = once_value_72;
1066 else {
1067 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
1068 once_value_72 = variable[9];
1069 }
1070 /* Register variable[9]: Result */
1071 /* Ensure var variable[9]: super-string element*/
1072 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
1073 /* Register variable[9]: Result */
1074 variable[9] = CALL_compiling_base___ToolContext___compdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::compdir*/;
1075 /* Ensure var variable[9]: super-string element*/
1076 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
1077 /* Register variable[9]: Once String constant */
1078 if (once_value_73 != NIT_NULL) variable[9] = once_value_73;
1079 else {
1080 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)) /*new String*/;
1081 once_value_73 = variable[9];
1082 }
1083 /* Register variable[9]: Result */
1084 /* Ensure var variable[9]: super-string element*/
1085 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
1086 /* Register variable[9]: Result */
1087 variable[9] = CALL_abstractmetamodel___MMModule___name(variable[0])(variable[0]) /*MMModule::name*/;
1088 /* Ensure var variable[9]: super-string element*/
1089 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/;
1090 /* Register variable[9]: Once String constant */
1091 if (once_value_74 != NIT_NULL) variable[9] = once_value_74;
1092 else {
1093 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("._sep.c"), TAG_Int(7)) /*new String*/;
1094 once_value_74 = variable[9];
1095 }
1096 /* Register variable[9]: Result */
1097 /* Ensure var variable[9]: super-string element*/
1098 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
1099 /* Register variable[8]: Result */
1100 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
1101 /* Register variable[8]: Result */
1102 variable[8] = NEW_OFStream_file___OFStream___open(variable[8]) /*new OFStream*/;
1103 variable[7] = variable[8];
1104 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
1105 /* Register variable[9]: Once String constant */
1106 if (once_value_75 != NIT_NULL) variable[9] = once_value_75;
1107 else {
1108 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("/* This C file is generated by NIT to compile module "), TAG_Int(53)) /*new String*/;
1109 once_value_75 = variable[9];
1110 }
1111 /* Register variable[9]: Result */
1112 /* Ensure var variable[9]: super-string element*/
1113 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
1114 /* Register variable[9]: Result */
1115 variable[9] = CALL_abstractmetamodel___MMModule___name(variable[0])(variable[0]) /*MMModule::name*/;
1116 /* Ensure var variable[9]: super-string element*/
1117 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/;
1118 /* Register variable[9]: Once String constant */
1119 if (once_value_76 != NIT_NULL) variable[9] = once_value_76;
1120 else {
1121 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(". */\n"), TAG_Int(5)) /*new String*/;
1122 once_value_76 = variable[9];
1123 }
1124 /* Register variable[9]: Result */
1125 /* Ensure var variable[9]: super-string element*/
1126 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
1127 /* Register variable[8]: Result */
1128 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
1129 CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
1130 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
1131 /* Register variable[9]: Once String constant */
1132 if (once_value_77 != NIT_NULL) variable[9] = once_value_77;
1133 else {
1134 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("#include \""), TAG_Int(10)) /*new String*/;
1135 once_value_77 = variable[9];
1136 }
1137 /* Register variable[9]: Result */
1138 /* Ensure var variable[9]: super-string element*/
1139 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
1140 /* Register variable[9]: Result */
1141 variable[9] = CALL_abstractmetamodel___MMModule___name(variable[0])(variable[0]) /*MMModule::name*/;
1142 /* Ensure var variable[9]: super-string element*/
1143 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/;
1144 /* Register variable[9]: Once String constant */
1145 if (once_value_78 != NIT_NULL) variable[9] = once_value_78;
1146 else {
1147 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("._sep.h\"\n"), TAG_Int(9)) /*new String*/;
1148 once_value_78 = variable[9];
1149 }
1150 /* Register variable[9]: Result */
1151 /* Ensure var variable[9]: super-string element*/
1152 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
1153 /* Register variable[8]: Result */
1154 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
1155 CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
1156 /* Register variable[8]: Result */
1157 variable[8] = CALL_compiling_base___CompilerVisitor___ctx( variable[4] /*v*/)( variable[4] /*v*/) /*CompilerVisitor::ctx*/;
1158 /* Register variable[8]: Result */
1159 variable[8] = CALL_compiling_base___CContext___instrs(variable[8])(variable[8]) /*CContext::instrs*/;
1160 /* Register variable[9]: Once String constant */
1161 if (once_value_79 != NIT_NULL) variable[9] = once_value_79;
1162 else {
1163 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)) /*new String*/;
1164 once_value_79 = variable[9];
1165 }
1166 /* Register variable[9]: Result */
1167 /* Register variable[8]: Result */
1168 variable[8] = CALL_string___Collection___join(variable[8])(variable[8], variable[9]) /*Collection::join*/;
1169 CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
1170 /* Register variable[8]: Once String constant */
1171 if (once_value_80 != NIT_NULL) variable[8] = once_value_80;
1172 else {
1173 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)) /*new String*/;
1174 once_value_80 = variable[8];
1175 }
1176 /* Register variable[8]: Result */
1177 CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
1178 CALL_stream___IOS___close( variable[7] /*f*/)( variable[7] /*f*/) /*OFStream::close*/;
1179 return_label51: while(false);
1180 tracehead = trace.prev;
1181 return;
1182 }