new c_src
[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 val_t variable[23];
6 void **closurevariable = NULL;
7 trace.prev = tracehead; tracehead = &trace;
8 trace.file = LOCATE_compiling;
9 variable[0] = self;
10 variable[1] = param0;
11 variable[3] = variable[0];
12 variable[3] = CALL_abstractmetamodel___MMModule___mhe(variable[3])(variable[3]) /*MMModule::mhe*/;
13 variable[3] = CALL_partial_order___PartialOrderElement___greaters_and_self(variable[3])(variable[3]) /*PartialOrderElement::greaters_and_self*/;
14 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*Collection::iterator*/;
15 while (true) { /*for*/
16 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
17 if (!UNTAG_Bool(variable[4])) break; /*for*/
18 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/;
19 variable[5] = variable[4];
20 variable[6] = TAG_Bool(( variable[5] /*m*/==NIT_NULL) || VAL_ISA( variable[5] /*m*/, COLOR_MMSrcModule, ID_MMSrcModule)) /*cast MMSrcModule*/;
21 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);}
22 CALL_compiling_global___MMSrcModule___local_analysis( variable[5] /*m*/)( variable[5] /*m*/, variable[1] /*tc*/) /*MMSrcModule::local_analysis*/;
23 continue_1: while(0);
24 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
25 }
26 break_1: while(0);
27 variable[4] = variable[0];
28 variable[4] = CALL_compiling_global___MMSrcModule___global_analysis(variable[4])(variable[4], variable[1] /*tc*/) /*MMSrcModule::global_analysis*/;
29 variable[3] = variable[4];
30 variable[4] = CALL_compiling_base___ToolContext___compdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::compdir*/;
31 CALL_file___String___mkdir(variable[4])(variable[4]) /*String::mkdir*/;
32 variable[5] = NEW_Array_array___Array___init(); /*new Array[String]*/
33 variable[4] = variable[5];
34 variable[6] = NEW_ArraySet_array___ArraySet___init(); /*new ArraySet[String]*/
35 variable[5] = variable[6];
36 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("$CLIBDIR/nit_main.c"), TAG_Int(19)); /*new String*/
37 CALL_abstract_collection___SimpleCollection___add( variable[4] /*files*/)( variable[4] /*files*/, variable[6]) /*AbstractArray::add*/;
38 variable[6] = variable[0];
39 variable[6] = CALL_abstractmetamodel___MMModule___mhe(variable[6])(variable[6]) /*MMModule::mhe*/;
40 variable[6] = CALL_partial_order___PartialOrderElement___greaters_and_self(variable[6])(variable[6]) /*PartialOrderElement::greaters_and_self*/;
41 variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*Collection::iterator*/;
42 while (true) { /*for*/
43 variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
44 if (!UNTAG_Bool(variable[7])) break; /*for*/
45 variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/;
46 variable[8] = variable[7];
47 variable[9] = TAG_Bool(( variable[8] /*m*/==NIT_NULL) || VAL_ISA( variable[8] /*m*/, COLOR_MMSrcModule, ID_MMSrcModule)) /*cast MMSrcModule*/;
48 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);}
49 variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
50 variable[10] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
51 variable[11] = variable[10];
52 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
53 variable[12] = CALL_compiling_base___ToolContext___compdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::compdir*/;
54 variable[13] = variable[12];
55 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/;
56 variable[14] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
57 variable[15] = variable[14];
58 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
59 variable[16] = CALL_abstractmetamodel___MMModule___name( variable[8] /*m*/)( variable[8] /*m*/) /*MMModule::name*/;
60 variable[17] = variable[16];
61 variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/;
62 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[17]) /*AbstractArray::add*/;
63 variable[18] = NEW_String_string___String___with_native(BOX_NativeString("._sep.c"), TAG_Int(7)); /*new String*/
64 variable[19] = variable[18];
65 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[19]) /*AbstractArray::add*/;
66 variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
67 CALL_abstract_collection___SimpleCollection___add( variable[4] /*files*/)( variable[4] /*files*/, variable[9]) /*AbstractArray::add*/;
68 CALL_compiling___MMSrcModule___compile_separate_module( variable[8] /*m*/)( variable[8] /*m*/, variable[1] /*tc*/, variable[3] /*ga*/) /*MMSrcModule::compile_separate_module*/;
69 variable[10] = CALL_mmloader___MMModule___filename( variable[8] /*m*/)( variable[8] /*m*/) /*MMModule::filename*/;
70 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(".nit"), TAG_Int(4)); /*new String*/
71 variable[10] = CALL_file___String___strip_extension(variable[10])(variable[10], variable[11]) /*String::strip_extension*/;
72 variable[9] = variable[10];
73 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("_nit.h"), TAG_Int(6)); /*new String*/
74 variable[10] = CALL_string___String_____plus( variable[9] /*native_name*/)( variable[9] /*native_name*/, variable[10]) /*String::+*/;
75 variable[10] = CALL_file___String___file_exists(variable[10])(variable[10]) /*String::file_exists*/;
76 if (UNTAG_Bool(variable[10])) { /*if*/
77 variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
78 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("-I "), TAG_Int(3)); /*new String*/
79 variable[12] = variable[11];
80 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
81 variable[13] = CALL_file___String___dirname( variable[9] /*native_name*/)( variable[9] /*native_name*/) /*String::dirname*/;
82 variable[14] = variable[13];
83 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[14]) /*AbstractArray::add*/;
84 variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
85 variable[16] = variable[15];
86 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[16]) /*AbstractArray::add*/;
87 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
88 CALL_abstract_collection___SimpleCollection___add( variable[5] /*includes*/)( variable[5] /*includes*/, variable[10]) /*ArraySet::add*/;
89 }
90 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("_nit.c"), TAG_Int(6)); /*new String*/
91 CALL_abstract_collection___IndexedCollection___append( variable[9] /*native_name*/)( variable[9] /*native_name*/, variable[10]) /*String::append*/;
92 variable[10] = CALL_file___String___file_exists( variable[9] /*native_name*/)( variable[9] /*native_name*/) /*String::file_exists*/;
93 if (UNTAG_Bool(variable[10])) { /*if*/
94 CALL_abstract_collection___SimpleCollection___add( variable[4] /*files*/)( variable[4] /*files*/, variable[9] /*native_name*/) /*AbstractArray::add*/;
95 }
96 continue_2: while(0);
97 CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
98 }
99 break_2: while(0);
100 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
101 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
102 variable[8] = variable[7];
103 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
104 variable[9] = CALL_compiling_base___ToolContext___compdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::compdir*/;
105 variable[10] = variable[9];
106 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
107 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
108 variable[12] = variable[11];
109 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
110 variable[13] = variable[0];
111 variable[13] = CALL_abstractmetamodel___MMModule___name(variable[13])(variable[13]) /*MMModule::name*/;
112 variable[14] = variable[13];
113 variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
114 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[14]) /*AbstractArray::add*/;
115 variable[15] = NEW_String_string___String___with_native(BOX_NativeString("._tables.c"), TAG_Int(10)); /*new String*/
116 variable[16] = variable[15];
117 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[16]) /*AbstractArray::add*/;
118 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
119 CALL_abstract_collection___SimpleCollection___add( variable[4] /*files*/)( variable[4] /*files*/, variable[6]) /*AbstractArray::add*/;
120 variable[6] = variable[0];
121 CALL_compiling___MMSrcModule___compile_main(variable[6])(variable[6], variable[1] /*tc*/, variable[3] /*ga*/) /*MMSrcModule::compile_main*/;
122 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
123 variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
124 variable[9] = variable[8];
125 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
126 variable[10] = CALL_compiling_base___ToolContext___compdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::compdir*/;
127 variable[11] = variable[10];
128 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/;
129 variable[12] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
130 variable[13] = variable[12];
131 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
132 variable[14] = variable[0];
133 variable[14] = CALL_abstractmetamodel___MMModule___name(variable[14])(variable[14]) /*MMModule::name*/;
134 variable[15] = variable[14];
135 variable[15] = CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/;
136 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[15]) /*AbstractArray::add*/;
137 variable[16] = NEW_String_string___String___with_native(BOX_NativeString("._build.sh"), TAG_Int(10)); /*new String*/
138 variable[17] = variable[16];
139 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[17]) /*AbstractArray::add*/;
140 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
141 variable[6] = variable[7];
142 variable[8] = NEW_OFStream_file___OFStream___open( variable[6] /*fn*/); /*new OFStream*/
143 variable[7] = variable[8];
144 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("#!/bin/sh\n"), TAG_Int(10)); /*new String*/
145 CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
146 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
147 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*/
148 variable[10] = variable[9];
149 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
150 variable[11] = variable[0];
151 variable[11] = CALL_abstractmetamodel___MMModule___name(variable[11])(variable[11]) /*MMModule::name*/;
152 variable[12] = variable[11];
153 variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
154 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
155 variable[13] = NEW_String_string___String___with_native(BOX_NativeString(".\n"), TAG_Int(2)); /*new String*/
156 variable[14] = variable[13];
157 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
158 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
159 CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
160 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
161 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("CLIBDIR=\""), TAG_Int(9)); /*new String*/
162 variable[10] = variable[9];
163 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
164 variable[11] = CALL_compiling_base___ToolContext___clibdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::clibdir*/;
165 variable[12] = variable[11];
166 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
167 variable[13] = NEW_String_string___String___with_native(BOX_NativeString("\"\n"), TAG_Int(2)); /*new String*/
168 variable[14] = variable[13];
169 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
170 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
171 CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
172 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
173 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
174 variable[10] = variable[9];
175 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
176 variable[11] = CALL_compiling_base___ToolContext___bindir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::bindir*/;
177 variable[12] = variable[11];
178 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
179 variable[13] = NEW_String_string___String___with_native(BOX_NativeString("/gccx -d "), TAG_Int(9)); /*new String*/
180 variable[14] = variable[13];
181 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
182 variable[15] = CALL_compiling_base___ToolContext___compdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::compdir*/;
183 variable[16] = variable[15];
184 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
185 variable[17] = NEW_String_string___String___with_native(BOX_NativeString(" -I $CLIBDIR "), TAG_Int(13)); /*new String*/
186 variable[18] = variable[17];
187 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
188 variable[19] = NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/
189 variable[19] = CALL_string___Collection___join( variable[5] /*includes*/)( variable[5] /*includes*/, variable[19]) /*Collection::join*/;
190 variable[20] = variable[19];
191 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[20]) /*AbstractArray::add*/;
192 variable[21] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
193 variable[22] = variable[21];
194 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[22]) /*AbstractArray::add*/;
195 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
196 CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
197 variable[8] = CALL_compiling_base___ToolContext___output_file( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::output_file*/;
198 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::==*/)))))));
199 if (UNTAG_Bool(variable[8])) { /*if*/
200 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
201 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" -o "), TAG_Int(4)); /*new String*/
202 variable[10] = variable[9];
203 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
204 variable[11] = CALL_compiling_base___ToolContext___output_file( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::output_file*/;
205 variable[12] = variable[11];
206 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
207 variable[13] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
208 variable[14] = variable[13];
209 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
210 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
211 CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
212 } else { /*if*/
213 variable[8] = CALL_compiling_base___ToolContext___ext_prefix( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::ext_prefix*/;
214 variable[8] = CALL_abstract_collection___Collection___is_empty(variable[8])(variable[8]) /*AbstractArray::is_empty*/;
215 if (UNTAG_Bool(variable[8])) { /*if*/
216 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
217 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" -o "), TAG_Int(4)); /*new String*/
218 variable[10] = variable[9];
219 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
220 variable[11] = variable[0];
221 variable[11] = CALL_abstractmetamodel___MMModule___name(variable[11])(variable[11]) /*MMModule::name*/;
222 variable[12] = variable[11];
223 variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
224 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
225 variable[13] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
226 variable[14] = variable[13];
227 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
228 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
229 CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
230 } else { /*if*/
231 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
232 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" -o "), TAG_Int(4)); /*new String*/
233 variable[10] = variable[9];
234 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
235 variable[11] = variable[0];
236 variable[11] = CALL_abstractmetamodel___MMModule___name(variable[11])(variable[11]) /*MMModule::name*/;
237 variable[12] = variable[11];
238 variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
239 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
240 variable[13] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
241 variable[14] = variable[13];
242 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
243 variable[15] = CALL_compiling_base___ToolContext___ext_prefix( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::ext_prefix*/;
244 variable[16] = variable[15];
245 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
246 variable[17] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
247 variable[18] = variable[17];
248 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
249 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
250 CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
251 }
252 }
253 variable[8] = CALL_compiling_base___ToolContext___boost( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::boost*/;
254 if (UNTAG_Bool(variable[8])) { /*if*/
255 variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" -O"), TAG_Int(3)); /*new String*/
256 CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
257 }
258 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
259 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" \"$@\" \\\n "), TAG_Int(10)); /*new String*/
260 variable[10] = variable[9];
261 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
262 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("\\\n "), TAG_Int(4)); /*new String*/
263 variable[11] = CALL_string___Collection___join( variable[4] /*files*/)( variable[4] /*files*/, variable[11]) /*Collection::join*/;
264 variable[12] = variable[11];
265 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
266 variable[13] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
267 variable[14] = variable[13];
268 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
269 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
270 CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
271 CALL_stream___IOS___close( variable[7] /*f*/)( variable[7] /*f*/) /*OFStream::close*/;
272 variable[8] = CALL_compiling_base___ToolContext___no_cc( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::no_cc*/;
273 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[8])))) { /*if*/
274 variable[8] = variable[0];
275 variable[8] = (G_sys);
276 variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
277 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("sh "), TAG_Int(3)); /*new String*/
278 variable[11] = variable[10];
279 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
280 variable[12] = variable[6] /*fn*/;
281 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/;
282 variable[13] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
283 variable[14] = variable[13];
284 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
285 variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
286 CALL_exec___Sys___system(variable[8])(variable[8], variable[9]) /*Sys::system*/;
287 }
288 return_label0: while(false);
289 tracehead = trace.prev;
290 return;
291 }
292 void compiling___MMSrcModule___compile_main(val_t self, val_t param0, val_t param1) {
293 struct trace_t trace = {NULL, NULL, 80, LOCATE_compiling___MMSrcModule___compile_main};
294 val_t variable[17];
295 void **closurevariable = NULL;
296 trace.prev = tracehead; tracehead = &trace;
297 trace.file = LOCATE_compiling;
298 variable[0] = self;
299 variable[1] = param0;
300 variable[2] = param1;
301 variable[5] = variable[0];
302 variable[6] = NEW_CompilerVisitor_compiling_base___CompilerVisitor___init(variable[5]); /*new CompilerVisitor*/
303 variable[5] = variable[6];
304 variable[4] = variable[5];
305 CALL_compiling_base___CompilerVisitor___tc__eq( variable[4] /*v*/)( variable[4] /*v*/, variable[1] /*tc*/) /*CompilerVisitor::tc=*/;
306 CALL_compiling_global___CompilerVisitor___global_analysis__eq( variable[4] /*v*/)( variable[4] /*v*/, variable[2] /*ga*/) /*CompilerVisitor::global_analysis=*/;
307 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("#include <nit_common.h>"), TAG_Int(23)); /*new String*/
308 CALL_compiling_base___CompilerVisitor___add_decl( variable[4] /*v*/)( variable[4] /*v*/, variable[5]) /*CompilerVisitor::add_decl*/;
309 variable[5] = variable[0];
310 CALL_compiling_global___MMSrcModule___compile_tables_to_c(variable[5])(variable[5], variable[4] /*v*/) /*MMSrcModule::compile_tables_to_c*/;
311 variable[5] = variable[0];
312 CALL_compiling_global___MMSrcModule___compile_main_part(variable[5])(variable[5], variable[4] /*v*/) /*MMSrcModule::compile_main_part*/;
313 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
314 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
315 variable[8] = variable[7];
316 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
317 variable[9] = CALL_compiling_base___ToolContext___compdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::compdir*/;
318 variable[10] = variable[9];
319 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
320 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
321 variable[12] = variable[11];
322 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
323 variable[13] = variable[0];
324 variable[13] = CALL_abstractmetamodel___MMModule___name(variable[13])(variable[13]) /*MMModule::name*/;
325 variable[14] = variable[13];
326 variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
327 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[14]) /*AbstractArray::add*/;
328 variable[15] = NEW_String_string___String___with_native(BOX_NativeString("._tables.c"), TAG_Int(10)); /*new String*/
329 variable[16] = variable[15];
330 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[16]) /*AbstractArray::add*/;
331 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
332 variable[7] = NEW_OFStream_file___OFStream___open(variable[6]); /*new OFStream*/
333 variable[6] = variable[7];
334 variable[5] = variable[6];
335 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
336 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*/
337 variable[8] = variable[7];
338 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
339 variable[9] = variable[0];
340 variable[9] = CALL_abstractmetamodel___MMModule___name(variable[9])(variable[9]) /*MMModule::name*/;
341 variable[10] = variable[9];
342 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
343 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
344 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(". */\n"), TAG_Int(5)); /*new String*/
345 variable[12] = variable[11];
346 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
347 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
348 CALL_stream___OStream___write( variable[5] /*f*/)( variable[5] /*f*/, variable[6]) /*OFStream::write*/;
349 variable[6] = variable[0];
350 variable[6] = CALL_abstractmetamodel___MMModule___mhe(variable[6])(variable[6]) /*MMModule::mhe*/;
351 variable[6] = CALL_partial_order___PartialOrderElement___greaters_and_self(variable[6])(variable[6]) /*PartialOrderElement::greaters_and_self*/;
352 variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*Collection::iterator*/;
353 while (true) { /*for*/
354 variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
355 if (!UNTAG_Bool(variable[7])) break; /*for*/
356 variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/;
357 variable[8] = variable[7];
358 variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
359 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("#include \""), TAG_Int(10)); /*new String*/
360 variable[11] = variable[10];
361 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
362 variable[12] = CALL_abstractmetamodel___MMModule___name( variable[8] /*m*/)( variable[8] /*m*/) /*MMModule::name*/;
363 variable[13] = variable[12];
364 variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
365 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/;
366 variable[14] = NEW_String_string___String___with_native(BOX_NativeString("._sep.h\"\n"), TAG_Int(9)); /*new String*/
367 variable[15] = variable[14];
368 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
369 variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
370 CALL_stream___OStream___write( variable[5] /*f*/)( variable[5] /*f*/, variable[9]) /*OFStream::write*/;
371 continue_4: while(0);
372 CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
373 }
374 break_4: while(0);
375 variable[6] = CALL_string___Object___to_s( variable[4] /*v*/)( variable[4] /*v*/) /*CompilerVisitor::to_s*/;
376 CALL_stream___OStream___write( variable[5] /*f*/)( variable[5] /*f*/, variable[6]) /*OFStream::write*/;
377 CALL_stream___IOS___close( variable[5] /*f*/)( variable[5] /*f*/) /*OFStream::close*/;
378 return_label3: while(false);
379 tracehead = trace.prev;
380 return;
381 }
382 void compiling___MMSrcModule___compile_separate_module(val_t self, val_t param0, val_t param1) {
383 struct trace_t trace = {NULL, NULL, 98, LOCATE_compiling___MMSrcModule___compile_separate_module};
384 val_t variable[19];
385 void **closurevariable = NULL;
386 trace.prev = tracehead; tracehead = &trace;
387 trace.file = LOCATE_compiling;
388 variable[0] = self;
389 variable[1] = param0;
390 variable[2] = param1;
391 variable[5] = variable[0];
392 variable[6] = NEW_CompilerVisitor_compiling_base___CompilerVisitor___init(variable[5]); /*new CompilerVisitor*/
393 variable[5] = variable[6];
394 variable[4] = variable[5];
395 CALL_compiling_base___CompilerVisitor___tc__eq( variable[4] /*v*/)( variable[4] /*v*/, variable[1] /*tc*/) /*CompilerVisitor::tc=*/;
396 CALL_compiling_global___CompilerVisitor___global_analysis__eq( variable[4] /*v*/)( variable[4] /*v*/, variable[2] /*ga*/) /*CompilerVisitor::global_analysis=*/;
397 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("#include <nit_common.h>"), TAG_Int(23)); /*new String*/
398 CALL_compiling_base___CompilerVisitor___add_decl( variable[4] /*v*/)( variable[4] /*v*/, variable[5]) /*CompilerVisitor::add_decl*/;
399 variable[6] = variable[0];
400 variable[6] = CALL_mmloader___MMModule___filename(variable[6])(variable[6]) /*MMModule::filename*/;
401 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(".nit"), TAG_Int(4)); /*new String*/
402 variable[6] = CALL_file___String___strip_extension(variable[6])(variable[6], variable[7]) /*String::strip_extension*/;
403 variable[5] = variable[6];
404 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("_nit.h"), TAG_Int(6)); /*new String*/
405 CALL_abstract_collection___IndexedCollection___append( variable[5] /*native_name*/)( variable[5] /*native_name*/, variable[6]) /*String::append*/;
406 variable[6] = CALL_file___String___file_exists( variable[5] /*native_name*/)( variable[5] /*native_name*/) /*String::file_exists*/;
407 if (UNTAG_Bool(variable[6])) { /*if*/
408 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
409 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("#include <"), TAG_Int(10)); /*new String*/
410 variable[8] = variable[7];
411 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
412 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
413 variable[9] = CALL_file___String___basename( variable[5] /*native_name*/)( variable[5] /*native_name*/, variable[9]) /*String::basename*/;
414 variable[10] = variable[9];
415 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
416 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)); /*new String*/
417 variable[12] = variable[11];
418 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
419 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
420 CALL_compiling_base___CompilerVisitor___add_decl( variable[4] /*v*/)( variable[4] /*v*/, variable[6]) /*CompilerVisitor::add_decl*/;
421 }
422 variable[6] = variable[0];
423 CALL_compiling_global___MMSrcModule___declare_class_tables_to_c(variable[6])(variable[6], variable[4] /*v*/) /*MMSrcModule::declare_class_tables_to_c*/;
424 variable[6] = variable[0];
425 CALL_compiling_global___MMSrcModule___compile_mod_to_c(variable[6])(variable[6], variable[4] /*v*/) /*MMSrcModule::compile_mod_to_c*/;
426 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
427 variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
428 variable[9] = variable[8];
429 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
430 variable[10] = CALL_compiling_base___ToolContext___compdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::compdir*/;
431 variable[11] = variable[10];
432 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/;
433 variable[12] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
434 variable[13] = variable[12];
435 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
436 variable[14] = variable[0];
437 variable[14] = CALL_abstractmetamodel___MMModule___name(variable[14])(variable[14]) /*MMModule::name*/;
438 variable[15] = variable[14];
439 variable[15] = CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/;
440 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[15]) /*AbstractArray::add*/;
441 variable[16] = NEW_String_string___String___with_native(BOX_NativeString("._sep.h"), TAG_Int(7)); /*new String*/
442 variable[17] = variable[16];
443 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[17]) /*AbstractArray::add*/;
444 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
445 variable[8] = NEW_OFStream_file___OFStream___open(variable[7]); /*new OFStream*/
446 variable[7] = variable[8];
447 variable[6] = variable[7];
448 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
449 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*/
450 variable[9] = variable[8];
451 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
452 variable[10] = variable[0];
453 variable[10] = CALL_abstractmetamodel___MMModule___name(variable[10])(variable[10]) /*MMModule::name*/;
454 variable[11] = variable[10];
455 variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
456 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/;
457 variable[12] = NEW_String_string___String___with_native(BOX_NativeString(". */\n"), TAG_Int(5)); /*new String*/
458 variable[13] = variable[12];
459 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
460 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
461 CALL_stream___OStream___write( variable[6] /*f*/)( variable[6] /*f*/, variable[7]) /*OFStream::write*/;
462 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
463 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("#ifndef "), TAG_Int(8)); /*new String*/
464 variable[9] = variable[8];
465 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
466 variable[10] = variable[0];
467 variable[10] = CALL_abstractmetamodel___MMModule___name(variable[10])(variable[10]) /*MMModule::name*/;
468 variable[11] = variable[10];
469 variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
470 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/;
471 variable[12] = NEW_String_string___String___with_native(BOX_NativeString("_sep\n"), TAG_Int(5)); /*new String*/
472 variable[13] = variable[12];
473 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
474 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
475 CALL_stream___OStream___write( variable[6] /*f*/)( variable[6] /*f*/, variable[7]) /*OFStream::write*/;
476 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
477 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)); /*new String*/
478 variable[9] = variable[8];
479 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
480 variable[10] = variable[0];
481 variable[10] = CALL_abstractmetamodel___MMModule___name(variable[10])(variable[10]) /*MMModule::name*/;
482 variable[11] = variable[10];
483 variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
484 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/;
485 variable[12] = NEW_String_string___String___with_native(BOX_NativeString("_sep\n"), TAG_Int(5)); /*new String*/
486 variable[13] = variable[12];
487 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
488 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
489 CALL_stream___OStream___write( variable[6] /*f*/)( variable[6] /*f*/, variable[7]) /*OFStream::write*/;
490 variable[7] = variable[0];
491 variable[7] = CALL_abstractmetamodel___MMModule___mhe(variable[7])(variable[7]) /*MMModule::mhe*/;
492 variable[7] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[7])(variable[7]) /*PartialOrderElement::direct_greaters*/;
493 variable[7] = CALL_abstract_collection___Collection___iterator(variable[7])(variable[7]) /*AbstractArray::iterator*/;
494 while (true) { /*for*/
495 variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*ArrayIterator::is_ok*/;
496 if (!UNTAG_Bool(variable[8])) break; /*for*/
497 variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*ArrayIterator::item*/;
498 variable[9] = variable[8];
499 variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
500 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("#include \""), TAG_Int(10)); /*new String*/
501 variable[12] = variable[11];
502 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
503 variable[13] = CALL_abstractmetamodel___MMModule___name( variable[9] /*m*/)( variable[9] /*m*/) /*MMModule::name*/;
504 variable[14] = variable[13];
505 variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
506 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[14]) /*AbstractArray::add*/;
507 variable[15] = NEW_String_string___String___with_native(BOX_NativeString("._sep.h\"\n"), TAG_Int(9)); /*new String*/
508 variable[16] = variable[15];
509 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[16]) /*AbstractArray::add*/;
510 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
511 CALL_stream___OStream___write( variable[6] /*f*/)( variable[6] /*f*/, variable[10]) /*OFStream::write*/;
512 continue_6: while(0);
513 CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*ArrayIterator::next*/;
514 }
515 break_6: while(0);
516 variable[7] = CALL_compiling_base___CompilerVisitor___ctx( variable[4] /*v*/)( variable[4] /*v*/) /*CompilerVisitor::ctx*/;
517 variable[7] = CALL_compiling_base___CContext___decls(variable[7])(variable[7]) /*CContext::decls*/;
518 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
519 variable[7] = CALL_string___Collection___join(variable[7])(variable[7], variable[8]) /*Collection::join*/;
520 CALL_stream___OStream___write( variable[6] /*f*/)( variable[6] /*f*/, variable[7]) /*OFStream::write*/;
521 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("\n#endif\n"), TAG_Int(8)); /*new String*/
522 CALL_stream___OStream___write( variable[6] /*f*/)( variable[6] /*f*/, variable[7]) /*OFStream::write*/;
523 CALL_stream___IOS___close( variable[6] /*f*/)( variable[6] /*f*/) /*OFStream::close*/;
524 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
525 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
526 variable[10] = variable[9];
527 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
528 variable[11] = CALL_compiling_base___ToolContext___compdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::compdir*/;
529 variable[12] = variable[11];
530 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
531 variable[13] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
532 variable[14] = variable[13];
533 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
534 variable[15] = variable[0];
535 variable[15] = CALL_abstractmetamodel___MMModule___name(variable[15])(variable[15]) /*MMModule::name*/;
536 variable[16] = variable[15];
537 variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/;
538 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
539 variable[17] = NEW_String_string___String___with_native(BOX_NativeString("._sep.c"), TAG_Int(7)); /*new String*/
540 variable[18] = variable[17];
541 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
542 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
543 variable[9] = NEW_OFStream_file___OFStream___open(variable[8]); /*new OFStream*/
544 variable[8] = variable[9];
545 variable[7] = variable[8];
546 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
547 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*/
548 variable[10] = variable[9];
549 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
550 variable[11] = variable[0];
551 variable[11] = CALL_abstractmetamodel___MMModule___name(variable[11])(variable[11]) /*MMModule::name*/;
552 variable[12] = variable[11];
553 variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
554 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
555 variable[13] = NEW_String_string___String___with_native(BOX_NativeString(". */\n"), TAG_Int(5)); /*new String*/
556 variable[14] = variable[13];
557 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
558 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
559 CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
560 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
561 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("#include \""), TAG_Int(10)); /*new String*/
562 variable[10] = variable[9];
563 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
564 variable[11] = variable[0];
565 variable[11] = CALL_abstractmetamodel___MMModule___name(variable[11])(variable[11]) /*MMModule::name*/;
566 variable[12] = variable[11];
567 variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
568 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
569 variable[13] = NEW_String_string___String___with_native(BOX_NativeString("._sep.h\"\n"), TAG_Int(9)); /*new String*/
570 variable[14] = variable[13];
571 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
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 variable[8] = CALL_compiling_base___CompilerVisitor___ctx( variable[4] /*v*/)( variable[4] /*v*/) /*CompilerVisitor::ctx*/;
575 variable[8] = CALL_compiling_base___CContext___instrs(variable[8])(variable[8]) /*CContext::instrs*/;
576 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
577 variable[8] = CALL_string___Collection___join(variable[8])(variable[8], variable[9]) /*Collection::join*/;
578 CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
579 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
580 CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
581 CALL_stream___IOS___close( variable[7] /*f*/)( variable[7] /*f*/) /*OFStream::close*/;
582 return_label5: while(false);
583 tracehead = trace.prev;
584 return;
585 }