3bdb16e8cbcb0fe2883450b76dddc1bb9554bfdb
[nit.git] / c_src / compiling_global._sep.c
1 /* This C file is generated by NIT to compile module compiling_global. */
2 #include "compiling_global._sep.h"
3 val_t compiling_global___ColorContext___color(val_t self, val_t param0) {
4 struct trace_t trace = {NULL, NULL, 28, LOCATE_compiling_global___ColorContext___color};
5 val_t variable[4];
6 void **closurevariable = NULL;
7 trace.prev = tracehead; tracehead = &trace;
8 trace.file = LOCATE_compiling_global;
9 variable[0] = self;
10 variable[1] = param0;
11 variable[3] = variable[0];
12 variable[3] = ATTR_compiling_global___ColorContext____colors(variable[3]) /*ColorContext::_colors*/;
13 variable[3] = CALL_abstract_collection___Map_____bra(variable[3])(variable[3], variable[1] /*e*/) /*CoupleMap::[]*/;
14 variable[2] = variable[3];
15 goto return_label0;
16 return_label0: while(false);
17 tracehead = trace.prev;
18 return variable[2];
19 }
20 val_t compiling_global___ColorContext___has_color(val_t self, val_t param0) {
21 struct trace_t trace = {NULL, NULL, 34, LOCATE_compiling_global___ColorContext___has_color};
22 val_t variable[5];
23 void **closurevariable = NULL;
24 trace.prev = tracehead; tracehead = &trace;
25 trace.file = LOCATE_compiling_global;
26 variable[0] = self;
27 variable[1] = param0;
28 variable[3] = variable[0];
29 variable[3] = ATTR_compiling_global___ColorContext____colors(variable[3]) /*ColorContext::_colors*/;
30 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
31 variable[4] = variable[3];
32 if (UNTAG_Bool(variable[4])) { /* and */
33 variable[4] = variable[0];
34 variable[4] = ATTR_compiling_global___ColorContext____colors(variable[4]) /*ColorContext::_colors*/;
35 variable[4] = CALL_abstract_collection___Map___has_key(variable[4])(variable[4], variable[1] /*e*/) /*CoupleMap::has_key*/;
36 }
37 variable[3] = variable[4];
38 variable[2] = variable[3];
39 goto return_label1;
40 return_label1: while(false);
41 tracehead = trace.prev;
42 return variable[2];
43 }
44 void compiling_global___ColorContext___color__eq(val_t self, val_t param0, val_t param1) {
45 struct trace_t trace = {NULL, NULL, 40, LOCATE_compiling_global___ColorContext___color__eq};
46 val_t variable[10];
47 void **closurevariable = NULL;
48 trace.prev = tracehead; tracehead = &trace;
49 trace.file = LOCATE_compiling_global;
50 variable[0] = self;
51 variable[1] = param0;
52 variable[2] = param1;
53 variable[4] = variable[0];
54 variable[4] = ATTR_compiling_global___ColorContext____colors(variable[4]) /*ColorContext::_colors*/;
55 variable[4] = TAG_Bool((variable[4] == NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], NIT_NULL /*null*/) /*Object::==*/)))));
56 if (UNTAG_Bool(variable[4])) { /*if*/
57 variable[4] = variable[0];
58 variable[5] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[TableElt, Int]*/
59 ATTR_compiling_global___ColorContext____colors(variable[4]) /*ColorContext::_colors*/ = variable[5];
60 }
61 variable[4] = variable[0];
62 variable[4] = ATTR_compiling_global___ColorContext____colors(variable[4]) /*ColorContext::_colors*/;
63 CALL_abstract_collection___Map_____braeq(variable[4])(variable[4], variable[1] /*e*/, variable[2] /*c*/) /*HashMap::[]=*/;
64 variable[4] = variable[2] /*c*/;
65 variable[5] = CALL_compiling_global___TableElt___length( variable[1] /*e*/)( variable[1] /*e*/) /*TableElt::length*/;
66 variable[6] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[5]); /*new Range[Int]*/
67 variable[5] = variable[6];
68 variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*Range::iterator*/;
69 while (true) { /*for*/
70 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
71 if (!UNTAG_Bool(variable[6])) break; /*for*/
72 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/;
73 variable[7] = variable[6];
74 variable[8] = variable[0];
75 variable[8] = ATTR_compiling_global___ColorContext____colors(variable[8]) /*ColorContext::_colors*/;
76 variable[9] = CALL_compiling_global___TableElt___item( variable[1] /*e*/)( variable[1] /*e*/, variable[7] /*i*/) /*TableElt::item*/;
77 CALL_abstract_collection___Map_____braeq(variable[8])(variable[8], variable[9], variable[4] /*idx*/) /*HashMap::[]=*/;
78 variable[8] = TAG_Int(UNTAG_Int( variable[4] /*idx*/)+UNTAG_Int( TAG_Int(1)));
79 variable[4] = variable[8] /*idx=*/;
80 continue_3: while(0);
81 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
82 }
83 break_3: while(0);
84 return_label2: while(false);
85 tracehead = trace.prev;
86 return;
87 }
88 void compiling_global___ColorContext___init(val_t self, int* init_table) {
89 struct trace_t trace = {NULL, NULL, 0, LOCATE_compiling_global___ColorContext___init};
90 val_t *variable = NULL;
91 void **closurevariable = NULL;
92 trace.prev = tracehead; tracehead = &trace;
93 trace.file = LOCATE_compiling_global;
94 tracehead = trace.prev;
95 return;
96 }
97 val_t compiling_global___GlobalAnalysis___compiled_classes(val_t self) {
98 struct trace_t trace = {NULL, NULL, 56, LOCATE_compiling_global___GlobalAnalysis___compiled_classes};
99 val_t *variable = NULL;
100 void **closurevariable = NULL;
101 trace.prev = tracehead; tracehead = &trace;
102 trace.file = LOCATE_compiling_global;
103 tracehead = trace.prev;
104 return ATTR_compiling_global___GlobalAnalysis____compiled_classes( self) /*GlobalAnalysis::_compiled_classes*/;
105 }
106 val_t compiling_global___GlobalAnalysis___module(val_t self) {
107 struct trace_t trace = {NULL, NULL, 59, LOCATE_compiling_global___GlobalAnalysis___module};
108 val_t *variable = NULL;
109 void **closurevariable = NULL;
110 trace.prev = tracehead; tracehead = &trace;
111 trace.file = LOCATE_compiling_global;
112 tracehead = trace.prev;
113 return ATTR_compiling_global___GlobalAnalysis____module( self) /*GlobalAnalysis::_module*/;
114 }
115 val_t compiling_global___GlobalAnalysis___max_class_table_length(val_t self) {
116 struct trace_t trace = {NULL, NULL, 62, LOCATE_compiling_global___GlobalAnalysis___max_class_table_length};
117 val_t *variable = NULL;
118 void **closurevariable = NULL;
119 trace.prev = tracehead; tracehead = &trace;
120 trace.file = LOCATE_compiling_global;
121 tracehead = trace.prev;
122 return ATTR_compiling_global___GlobalAnalysis____max_class_table_length( self) /*GlobalAnalysis::_max_class_table_length*/;
123 }
124 void compiling_global___GlobalAnalysis___max_class_table_length__eq(val_t self, val_t param0) {
125 struct trace_t trace = {NULL, NULL, 62, LOCATE_compiling_global___GlobalAnalysis___max_class_table_length__eq};
126 val_t *variable = NULL;
127 void **closurevariable = NULL;
128 trace.prev = tracehead; tracehead = &trace;
129 trace.file = LOCATE_compiling_global;
130 ATTR_compiling_global___GlobalAnalysis____max_class_table_length( self) /*GlobalAnalysis::_max_class_table_length*/ = param0;
131 tracehead = trace.prev;
132 return;
133 }
134 void compiling_global___GlobalAnalysis___init(val_t self, val_t param0, int* init_table) {
135 struct trace_t trace = {NULL, NULL, 65, LOCATE_compiling_global___GlobalAnalysis___init};
136 val_t variable[5];
137 void **closurevariable = NULL;
138 trace.prev = tracehead; tracehead = &trace;
139 trace.file = LOCATE_compiling_global;
140 variable[0] = self;
141 variable[1] = param0;
142 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_GlobalAnalysis].i]) return;
143 variable[3] = variable[0];
144 variable[4] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[MMGlobalClass, CompiledClass]*/
145 ATTR_compiling_global___GlobalAnalysis____compiled_classes(variable[3]) /*GlobalAnalysis::_compiled_classes*/ = variable[4];
146 variable[3] = variable[0];
147 ATTR_compiling_global___GlobalAnalysis____module(variable[3]) /*GlobalAnalysis::_module*/ = variable[1] /*module*/;
148 return_label4: while(false);
149 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_GlobalAnalysis].i] = 1;
150 tracehead = trace.prev;
151 return;
152 }
153 val_t compiling_global___CompilerVisitor___global_analysis(val_t self) {
154 struct trace_t trace = {NULL, NULL, 73, LOCATE_compiling_global___CompilerVisitor___global_analysis};
155 val_t *variable = NULL;
156 void **closurevariable = NULL;
157 trace.prev = tracehead; tracehead = &trace;
158 trace.file = LOCATE_compiling_global;
159 tracehead = trace.prev;
160 return ATTR_compiling_global___CompilerVisitor____global_analysis( self) /*CompilerVisitor::_global_analysis*/;
161 }
162 void compiling_global___CompilerVisitor___global_analysis__eq(val_t self, val_t param0) {
163 struct trace_t trace = {NULL, NULL, 73, LOCATE_compiling_global___CompilerVisitor___global_analysis__eq};
164 val_t *variable = NULL;
165 void **closurevariable = NULL;
166 trace.prev = tracehead; tracehead = &trace;
167 trace.file = LOCATE_compiling_global;
168 ATTR_compiling_global___CompilerVisitor____global_analysis( self) /*CompilerVisitor::_global_analysis*/ = param0;
169 tracehead = trace.prev;
170 return;
171 }
172 val_t compiling_global___CompiledClass___local_class(val_t self) {
173 struct trace_t trace = {NULL, NULL, 80, LOCATE_compiling_global___CompiledClass___local_class};
174 val_t *variable = NULL;
175 void **closurevariable = NULL;
176 trace.prev = tracehead; tracehead = &trace;
177 trace.file = LOCATE_compiling_global;
178 tracehead = trace.prev;
179 return ATTR_compiling_global___CompiledClass____local_class( self) /*CompiledClass::_local_class*/;
180 }
181 val_t compiling_global___CompiledClass___id(val_t self) {
182 struct trace_t trace = {NULL, NULL, 83, LOCATE_compiling_global___CompiledClass___id};
183 val_t *variable = NULL;
184 void **closurevariable = NULL;
185 trace.prev = tracehead; tracehead = &trace;
186 trace.file = LOCATE_compiling_global;
187 tracehead = trace.prev;
188 return ATTR_compiling_global___CompiledClass____id( self) /*CompiledClass::_id*/;
189 }
190 void compiling_global___CompiledClass___id__eq(val_t self, val_t param0) {
191 struct trace_t trace = {NULL, NULL, 83, LOCATE_compiling_global___CompiledClass___id__eq};
192 val_t *variable = NULL;
193 void **closurevariable = NULL;
194 trace.prev = tracehead; tracehead = &trace;
195 trace.file = LOCATE_compiling_global;
196 ATTR_compiling_global___CompiledClass____id( self) /*CompiledClass::_id*/ = param0;
197 tracehead = trace.prev;
198 return;
199 }
200 val_t compiling_global___CompiledClass___class_table(val_t self) {
201 struct trace_t trace = {NULL, NULL, 86, LOCATE_compiling_global___CompiledClass___class_table};
202 val_t *variable = NULL;
203 void **closurevariable = NULL;
204 trace.prev = tracehead; tracehead = &trace;
205 trace.file = LOCATE_compiling_global;
206 tracehead = trace.prev;
207 return ATTR_compiling_global___CompiledClass____class_table( self) /*CompiledClass::_class_table*/;
208 }
209 void compiling_global___CompiledClass___class_table__eq(val_t self, val_t param0) {
210 struct trace_t trace = {NULL, NULL, 86, LOCATE_compiling_global___CompiledClass___class_table__eq};
211 val_t *variable = NULL;
212 void **closurevariable = NULL;
213 trace.prev = tracehead; tracehead = &trace;
214 trace.file = LOCATE_compiling_global;
215 ATTR_compiling_global___CompiledClass____class_table( self) /*CompiledClass::_class_table*/ = param0;
216 tracehead = trace.prev;
217 return;
218 }
219 val_t compiling_global___CompiledClass___instance_table(val_t self) {
220 struct trace_t trace = {NULL, NULL, 89, LOCATE_compiling_global___CompiledClass___instance_table};
221 val_t *variable = NULL;
222 void **closurevariable = NULL;
223 trace.prev = tracehead; tracehead = &trace;
224 trace.file = LOCATE_compiling_global;
225 tracehead = trace.prev;
226 return ATTR_compiling_global___CompiledClass____instance_table( self) /*CompiledClass::_instance_table*/;
227 }
228 void compiling_global___CompiledClass___instance_table__eq(val_t self, val_t param0) {
229 struct trace_t trace = {NULL, NULL, 89, LOCATE_compiling_global___CompiledClass___instance_table__eq};
230 val_t *variable = NULL;
231 void **closurevariable = NULL;
232 trace.prev = tracehead; tracehead = &trace;
233 trace.file = LOCATE_compiling_global;
234 ATTR_compiling_global___CompiledClass____instance_table( self) /*CompiledClass::_instance_table*/ = param0;
235 tracehead = trace.prev;
236 return;
237 }
238 val_t compiling_global___CompiledClass___class_layout(val_t self) {
239 struct trace_t trace = {NULL, NULL, 92, LOCATE_compiling_global___CompiledClass___class_layout};
240 val_t *variable = NULL;
241 void **closurevariable = NULL;
242 trace.prev = tracehead; tracehead = &trace;
243 trace.file = LOCATE_compiling_global;
244 tracehead = trace.prev;
245 return ATTR_compiling_global___CompiledClass____class_layout( self) /*CompiledClass::_class_layout*/;
246 }
247 void compiling_global___CompiledClass___class_layout__eq(val_t self, val_t param0) {
248 struct trace_t trace = {NULL, NULL, 92, LOCATE_compiling_global___CompiledClass___class_layout__eq};
249 val_t *variable = NULL;
250 void **closurevariable = NULL;
251 trace.prev = tracehead; tracehead = &trace;
252 trace.file = LOCATE_compiling_global;
253 ATTR_compiling_global___CompiledClass____class_layout( self) /*CompiledClass::_class_layout*/ = param0;
254 tracehead = trace.prev;
255 return;
256 }
257 val_t compiling_global___CompiledClass___instance_layout(val_t self) {
258 struct trace_t trace = {NULL, NULL, 95, LOCATE_compiling_global___CompiledClass___instance_layout};
259 val_t *variable = NULL;
260 void **closurevariable = NULL;
261 trace.prev = tracehead; tracehead = &trace;
262 trace.file = LOCATE_compiling_global;
263 tracehead = trace.prev;
264 return ATTR_compiling_global___CompiledClass____instance_layout( self) /*CompiledClass::_instance_layout*/;
265 }
266 void compiling_global___CompiledClass___instance_layout__eq(val_t self, val_t param0) {
267 struct trace_t trace = {NULL, NULL, 95, LOCATE_compiling_global___CompiledClass___instance_layout__eq};
268 val_t *variable = NULL;
269 void **closurevariable = NULL;
270 trace.prev = tracehead; tracehead = &trace;
271 trace.file = LOCATE_compiling_global;
272 ATTR_compiling_global___CompiledClass____instance_layout( self) /*CompiledClass::_instance_layout*/ = param0;
273 tracehead = trace.prev;
274 return;
275 }
276 void compiling_global___CompiledClass___init(val_t self, val_t param0, int* init_table) {
277 struct trace_t trace = {NULL, NULL, 98, LOCATE_compiling_global___CompiledClass___init};
278 val_t variable[4];
279 void **closurevariable = NULL;
280 trace.prev = tracehead; tracehead = &trace;
281 trace.file = LOCATE_compiling_global;
282 variable[0] = self;
283 variable[1] = param0;
284 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_CompiledClass].i]) return;
285 variable[3] = variable[0];
286 ATTR_compiling_global___CompiledClass____local_class(variable[3]) /*CompiledClass::_local_class*/ = variable[1] /*c*/;
287 return_label5: while(false);
288 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_CompiledClass].i] = 1;
289 tracehead = trace.prev;
290 return;
291 }
292 val_t compiling_global___MMSrcLocalClass___class_color_pos(val_t self) {
293 struct trace_t trace = {NULL, NULL, 102, LOCATE_compiling_global___MMSrcLocalClass___class_color_pos};
294 val_t *variable = NULL;
295 void **closurevariable = NULL;
296 trace.prev = tracehead; tracehead = &trace;
297 trace.file = LOCATE_compiling_global;
298 tracehead = trace.prev;
299 return ATTR_compiling_global___MMSrcLocalClass____class_color_pos( self) /*MMSrcLocalClass::_class_color_pos*/;
300 }
301 val_t compiling_global___MMSrcLocalClass___class_layout(val_t self) {
302 struct trace_t trace = {NULL, NULL, 105, LOCATE_compiling_global___MMSrcLocalClass___class_layout};
303 val_t *variable = NULL;
304 void **closurevariable = NULL;
305 trace.prev = tracehead; tracehead = &trace;
306 trace.file = LOCATE_compiling_global;
307 tracehead = trace.prev;
308 return ATTR_compiling_global___MMSrcLocalClass____class_layout( self) /*MMSrcLocalClass::_class_layout*/;
309 }
310 val_t compiling_global___MMSrcLocalClass___instance_layout(val_t self) {
311 struct trace_t trace = {NULL, NULL, 108, LOCATE_compiling_global___MMSrcLocalClass___instance_layout};
312 val_t *variable = NULL;
313 void **closurevariable = NULL;
314 trace.prev = tracehead; tracehead = &trace;
315 trace.file = LOCATE_compiling_global;
316 tracehead = trace.prev;
317 return ATTR_compiling_global___MMSrcLocalClass____instance_layout( self) /*MMSrcLocalClass::_instance_layout*/;
318 }
319 void compiling_global___MMSrcLocalClass___build_layout_in(val_t self, val_t param0, val_t param1) {
320 struct trace_t trace = {NULL, NULL, 111, LOCATE_compiling_global___MMSrcLocalClass___build_layout_in};
321 val_t variable[12];
322 void **closurevariable = NULL;
323 trace.prev = tracehead; tracehead = &trace;
324 trace.file = LOCATE_compiling_global;
325 variable[0] = self;
326 variable[1] = param0;
327 variable[2] = param1;
328 variable[5] = NEW_Array_array___Array___init(); /*new Array[TableElt]*/
329 variable[4] = variable[5];
330 variable[5] = variable[0];
331 ATTR_compiling_global___MMSrcLocalClass____class_layout(variable[5]) /*MMSrcLocalClass::_class_layout*/ = variable[4] /*clt*/;
332 variable[6] = NEW_Array_array___Array___init(); /*new Array[TableElt]*/
333 variable[5] = variable[6];
334 variable[6] = variable[0];
335 ATTR_compiling_global___MMSrcLocalClass____instance_layout(variable[6]) /*MMSrcLocalClass::_instance_layout*/ = variable[5] /*ilt*/;
336 variable[6] = variable[0];
337 variable[6] = CALL_abstractmetamodel___MMLocalClass___global(variable[6])(variable[6]) /*MMLocalClass::global*/;
338 variable[6] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[6])(variable[6]) /*MMGlobalClass::intro*/;
339 variable[7] = variable[0];
340 variable[6] = TAG_Bool((variable[6] == variable[7]) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6],variable[7])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6], variable[7]) /*Object::==*/)))));
341 if (UNTAG_Bool(variable[6])) { /*if*/
342 variable[6] = variable[0];
343 variable[7] = NEW_TableEltClassId_compiling_global___AbsTableEltClass___init(variable[6]); /*new TableEltClassId*/
344 variable[6] = variable[7];
345 CALL_abstract_collection___SimpleCollection___add( variable[2] /*module_table*/)( variable[2] /*module_table*/, variable[6]) /*AbstractArray::add*/;
346 variable[6] = variable[0];
347 variable[7] = variable[0];
348 variable[8] = NEW_TableEltClassColor_compiling_global___AbsTableEltClass___init(variable[7]); /*new TableEltClassColor*/
349 variable[7] = variable[8];
350 ATTR_compiling_global___MMSrcLocalClass____class_color_pos(variable[6]) /*MMSrcLocalClass::_class_color_pos*/ = variable[7];
351 variable[6] = variable[0];
352 variable[6] = ATTR_compiling_global___MMSrcLocalClass____class_color_pos(variable[6]) /*MMSrcLocalClass::_class_color_pos*/;
353 CALL_abstract_collection___SimpleCollection___add( variable[2] /*module_table*/)( variable[2] /*module_table*/, variable[6]) /*AbstractArray::add*/;
354 variable[6] = variable[0];
355 variable[7] = NEW_TableEltClassInitTable_compiling_global___AbsTableEltClass___init(variable[6]); /*new TableEltClassInitTable*/
356 variable[6] = variable[7];
357 CALL_abstract_collection___SimpleCollection___add( variable[4] /*clt*/)( variable[4] /*clt*/, variable[6]) /*AbstractArray::add*/;
358 }
359 variable[6] = variable[0];
360 variable[6] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(variable[6])(variable[6]) /*MMSrcLocalClass::src_local_properties*/;
361 variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*Map::iterator*/;
362 while (true) { /*for*/
363 variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
364 if (!UNTAG_Bool(variable[7])) break; /*for*/
365 variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/;
366 variable[8] = variable[7];
367 variable[10] = CALL_abstractmetamodel___MMLocalProperty___global( variable[8] /*p*/)( variable[8] /*p*/) /*MMLocalProperty::global*/;
368 variable[9] = variable[10];
369 variable[10] = CALL_abstractmetamodel___MMGlobalProperty___intro( variable[9] /*pg*/)( variable[9] /*pg*/) /*MMGlobalProperty::intro*/;
370 variable[10] = TAG_Bool((variable[10] == variable[8] /*p*/) || ((variable[10] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[10])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[10], variable[8] /*p*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[10])(variable[10], variable[8] /*p*/) /*Object::==*/)))));
371 if (UNTAG_Bool(variable[10])) { /*if*/
372 variable[10] = TAG_Bool(( variable[8] /*p*/==NIT_NULL) || VAL_ISA( variable[8] /*p*/, COLOR_MMSrcAttribute, ID_MMSrcAttribute)) /*cast MMSrcAttribute*/;
373 if (UNTAG_Bool(variable[10])) { /*if*/
374 variable[10] = NEW_TableEltAttr_compiling_global___TableEltProp___init( variable[8] /*p*/); /*new TableEltAttr*/
375 CALL_abstract_collection___SimpleCollection___add( variable[5] /*ilt*/)( variable[5] /*ilt*/, variable[10]) /*AbstractArray::add*/;
376 } else { /*if*/
377 variable[10] = TAG_Bool(( variable[8] /*p*/==NIT_NULL) || VAL_ISA( variable[8] /*p*/, COLOR_MMSrcMethod, ID_MMSrcMethod)) /*cast MMSrcMethod*/;
378 if (UNTAG_Bool(variable[10])) { /*if*/
379 variable[10] = NEW_TableEltMeth_compiling_global___TableEltProp___init( variable[8] /*p*/); /*new TableEltMeth*/
380 CALL_abstract_collection___SimpleCollection___add( variable[4] /*clt*/)( variable[4] /*clt*/, variable[10]) /*AbstractArray::add*/;
381 }
382 }
383 }
384 variable[10] = TAG_Bool(( variable[8] /*p*/==NIT_NULL) || VAL_ISA( variable[8] /*p*/, COLOR_MMSrcMethod, ID_MMSrcMethod)) /*cast MMSrcMethod*/;
385 variable[11] = variable[10];
386 if (UNTAG_Bool(variable[11])) { /* and */
387 variable[11] = CALL_abstractmetamodel___MMLocalProperty___need_super( variable[8] /*p*/)( variable[8] /*p*/) /*MMLocalProperty::need_super*/;
388 }
389 variable[10] = variable[11];
390 if (UNTAG_Bool(variable[10])) { /*if*/
391 variable[10] = NEW_TableEltSuper_compiling_global___TableEltProp___init( variable[8] /*p*/); /*new TableEltSuper*/
392 CALL_abstract_collection___SimpleCollection___add( variable[4] /*clt*/)( variable[4] /*clt*/, variable[10]) /*AbstractArray::add*/;
393 }
394 continue_7: while(0);
395 CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
396 }
397 break_7: while(0);
398 variable[6] = CALL_abstract_collection___Collection___is_empty( variable[5] /*ilt*/)( variable[5] /*ilt*/) /*AbstractArray::is_empty*/;
399 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/
400 variable[7] = NEW_ModuleTableEltGroup_compiling_global___AbsTableElt___init(); /*new ModuleTableEltGroup*/
401 variable[6] = variable[7];
402 variable[7] = CALL_compiling_global___ModuleTableEltGroup___elements( variable[6] /*teg*/)( variable[6] /*teg*/) /*ModuleTableEltGroup::elements*/;
403 CALL_abstract_collection___IndexedCollection___append(variable[7])(variable[7], variable[5] /*ilt*/) /*IndexedCollection::append*/;
404 CALL_abstract_collection___SimpleCollection___add( variable[2] /*module_table*/)( variable[2] /*module_table*/, variable[6] /*teg*/) /*AbstractArray::add*/;
405 }
406 variable[6] = CALL_abstract_collection___Collection___is_empty( variable[4] /*clt*/)( variable[4] /*clt*/) /*AbstractArray::is_empty*/;
407 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/
408 variable[7] = NEW_ModuleTableEltGroup_compiling_global___AbsTableElt___init(); /*new ModuleTableEltGroup*/
409 variable[6] = variable[7];
410 variable[7] = CALL_compiling_global___ModuleTableEltGroup___elements( variable[6] /*teg*/)( variable[6] /*teg*/) /*ModuleTableEltGroup::elements*/;
411 CALL_abstract_collection___IndexedCollection___append(variable[7])(variable[7], variable[4] /*clt*/) /*IndexedCollection::append*/;
412 CALL_abstract_collection___SimpleCollection___add( variable[2] /*module_table*/)( variable[2] /*module_table*/, variable[6] /*teg*/) /*AbstractArray::add*/;
413 }
414 return_label6: while(false);
415 tracehead = trace.prev;
416 return;
417 }
418 void compiling_global___MMSrcModule___local_analysis(val_t self, val_t param0) {
419 struct trace_t trace = {NULL, NULL, 157, LOCATE_compiling_global___MMSrcModule___local_analysis};
420 val_t variable[7];
421 void **closurevariable = NULL;
422 trace.prev = tracehead; tracehead = &trace;
423 trace.file = LOCATE_compiling_global;
424 variable[0] = self;
425 variable[1] = param0;
426 variable[4] = NEW_Array_array___Array___init(); /*new Array[ModuleTableElt]*/
427 variable[3] = variable[4];
428 variable[4] = variable[0];
429 ATTR_compiling_global___MMSrcModule____local_table(variable[4]) /*MMSrcModule::_local_table*/ = variable[3] /*lt*/;
430 variable[4] = variable[0];
431 variable[4] = CALL_syntax_base___MMSrcModule___src_local_classes(variable[4])(variable[4]) /*MMSrcModule::src_local_classes*/;
432 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Map::iterator*/;
433 while (true) { /*for*/
434 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
435 if (!UNTAG_Bool(variable[5])) break; /*for*/
436 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
437 variable[6] = variable[5];
438 CALL_compiling_global___MMSrcLocalClass___build_layout_in( variable[6] /*c*/)( variable[6] /*c*/, variable[1] /*tc*/, variable[3] /*lt*/) /*MMSrcLocalClass::build_layout_in*/;
439 continue_9: while(0);
440 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
441 }
442 break_9: while(0);
443 return_label8: while(false);
444 tracehead = trace.prev;
445 return;
446 }
447 val_t compiling_global___MMSrcModule___global_analysis(val_t self, val_t param0) {
448 struct trace_t trace = {NULL, NULL, 167, LOCATE_compiling_global___MMSrcModule___global_analysis};
449 val_t variable[25];
450 void **closurevariable = NULL;
451 trace.prev = tracehead; tracehead = &trace;
452 trace.file = LOCATE_compiling_global;
453 variable[0] = self;
454 variable[1] = param0;
455 variable[4] = variable[0];
456 variable[5] = NEW_GlobalAnalysis_compiling_global___GlobalAnalysis___init(variable[4]); /*new GlobalAnalysis*/
457 variable[4] = variable[5];
458 variable[3] = variable[4];
459 variable[5] = NEW_Array_array___Array___init(); /*new Array[MMLocalClass]*/
460 variable[4] = variable[5];
461 variable[6] = NEW_HashSet_hash___HashSet___init(); /*new HashSet[MMGlobalProperty]*/
462 variable[5] = variable[6];
463 variable[7] = NEW_Array_array___Array___init(); /*new Array[TableElt]*/
464 variable[6] = variable[7];
465 variable[8] = NEW_Array_array___Array___init(); /*new Array[TableElt]*/
466 variable[7] = variable[8];
467 variable[8] = NEW_TableEltClassSelfId_compiling_global___AbsTableElt___init(); /*new TableEltClassSelfId*/
468 CALL_abstract_collection___SimpleCollection___add( variable[6] /*ctab*/)( variable[6] /*ctab*/, variable[8]) /*AbstractArray::add*/;
469 variable[8] = NEW_TableEltVftPointer_compiling_global___AbsTableElt___init(); /*new TableEltVftPointer*/
470 CALL_abstract_collection___SimpleCollection___add( variable[7] /*itab*/)( variable[7] /*itab*/, variable[8]) /*AbstractArray::add*/;
471 variable[9] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
472 variable[8] = variable[9];
473 variable[9] = TAG_Int(3);
474 variable[11] = NEW_Array_array___Array___init(); /*new Array[MMLocalClass]*/
475 variable[10] = variable[11];
476 variable[11] = variable[0];
477 variable[11] = CALL_abstractmetamodel___MMModule___local_classes(variable[11])(variable[11]) /*MMModule::local_classes*/;
478 variable[11] = CALL_abstract_collection___Collection___iterator(variable[11])(variable[11]) /*AbstractArray::iterator*/;
479 while (true) { /*for*/
480 variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*ArrayIterator::is_ok*/;
481 if (!UNTAG_Bool(variable[12])) break; /*for*/
482 variable[12] = CALL_abstract_collection___Iterator___item(variable[11])(variable[11]) /*ArrayIterator::item*/;
483 variable[13] = variable[12];
484 CALL_inheritance___MMLocalClass___compute_super_classes( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::compute_super_classes*/;
485 CALL_abstract_collection___SimpleCollection___add( variable[10] /*classes*/)( variable[10] /*classes*/, variable[13] /*c*/) /*AbstractArray::add*/;
486 continue_11: while(0);
487 CALL_abstract_collection___Iterator___next(variable[11])(variable[11]) /*ArrayIterator::next*/;
488 }
489 break_11: while(0);
490 variable[11] = NEW_ClassSorter_compiling_global___ClassSorter___init(); /*new ClassSorter*/
491 CALL_sorter___AbstractSorter___sort(variable[11])(variable[11], variable[10] /*classes*/) /*AbstractSorter::sort*/;
492 variable[11] = CALL_abstract_collection___Collection___iterator( variable[10] /*classes*/)( variable[10] /*classes*/) /*AbstractArray::iterator*/;
493 while (true) { /*for*/
494 variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*ArrayIterator::is_ok*/;
495 if (!UNTAG_Bool(variable[12])) break; /*for*/
496 variable[12] = CALL_abstract_collection___Iterator___item(variable[11])(variable[11]) /*ArrayIterator::item*/;
497 variable[13] = variable[12];
498 CALL_inheritance___MMLocalClass___compute_ancestors( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::compute_ancestors*/;
499 CALL_inheritance___MMLocalClass___inherit_global_properties( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::inherit_global_properties*/;
500 variable[15] = NEW_CompiledClass_compiling_global___CompiledClass___init( variable[13] /*c*/); /*new CompiledClass*/
501 variable[14] = variable[15];
502 variable[15] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[3] /*ga*/)( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
503 variable[16] = CALL_abstractmetamodel___MMLocalClass___global( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::global*/;
504 CALL_abstract_collection___Map_____braeq(variable[15])(variable[15], variable[16], variable[14] /*cc*/) /*HashMap::[]=*/;
505 variable[16] = CALL_abstractmetamodel___MMLocalClass___global( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::global*/;
506 variable[15] = variable[16];
507 variable[17] = CALL_abstractmetamodel___MMGlobalClass___module( variable[15] /*gc*/)( variable[15] /*gc*/) /*MMGlobalClass::module*/;
508 variable[16] = variable[17];
509 variable[17] = CALL_compiling_base___MMLocalClass___primitive_info( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::primitive_info*/;
510 variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[17] == NIT_NULL /*null*/) || ((variable[17] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[17])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[17], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[17])(variable[17], NIT_NULL /*null*/) /*Object::==*/)))))));
511 if (UNTAG_Bool(variable[17])) { /*if*/
512 CALL_compiling_global___CompiledClass___id__eq( variable[14] /*cc*/)( variable[14] /*cc*/, variable[8] /*pclassid*/) /*CompiledClass::id=*/;
513 variable[17] = TAG_Int(UNTAG_Int( variable[8] /*pclassid*/)-UNTAG_Int( TAG_Int(4)));
514 variable[8] = variable[17] /*pclassid=*/;
515 } else { /*if*/
516 CALL_compiling_global___CompiledClass___id__eq( variable[14] /*cc*/)( variable[14] /*cc*/, variable[9] /*classid*/) /*CompiledClass::id=*/;
517 variable[17] = TAG_Int(UNTAG_Int( variable[9] /*classid*/)+UNTAG_Int( TAG_Int(4)));
518 variable[9] = variable[17] /*classid=*/;
519 }
520 variable[17] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::cshe*/;
521 variable[17] = CALL_partial_order___PartialOrderElement___direct_smallers(variable[17])(variable[17]) /*PartialOrderElement::direct_smallers*/;
522 variable[17] = CALL_abstract_collection___Collection___is_empty(variable[17])(variable[17]) /*AbstractArray::is_empty*/;
523 if (UNTAG_Bool(variable[17])) { /*if*/
524 CALL_abstract_collection___SimpleCollection___add( variable[4] /*smallest_classes*/)( variable[4] /*smallest_classes*/, variable[13] /*c*/) /*AbstractArray::add*/;
525 }
526 variable[18] = CALL_abstractmetamodel___MMLocalClass___global( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::global*/;
527 variable[18] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[18])(variable[18]) /*MMGlobalClass::intro*/;
528 variable[17] = variable[18];
529 variable[18] = TAG_Bool(( variable[17] /*bc*/==NIT_NULL) || VAL_ISA( variable[17] /*bc*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
530 if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMSrcModule___global_analysis, LOCATE_compiling_global, 219); nit_exit(1);}
531 variable[18] = CALL_compiling_global___MMSrcLocalClass___class_color_pos( variable[17] /*bc*/)( variable[17] /*bc*/) /*MMSrcLocalClass::class_color_pos*/;
532 CALL_abstract_collection___SimpleCollection___add( variable[6] /*ctab*/)( variable[6] /*ctab*/, variable[18]) /*AbstractArray::add*/;
533 continue_12: while(0);
534 CALL_abstract_collection___Iterator___next(variable[11])(variable[11]) /*ArrayIterator::next*/;
535 }
536 break_12: while(0);
537 variable[12] = NEW_HashSet_hash___HashSet___init(); /*new HashSet[MMLocalClass]*/
538 variable[11] = variable[12];
539 variable[13] = NEW_HashSet_hash___HashSet___init(); /*new HashSet[MMLocalClass]*/
540 variable[12] = variable[13];
541 variable[13] = CALL_abstract_collection___Collection___iterator( variable[4] /*smallest_classes*/)( variable[4] /*smallest_classes*/) /*AbstractArray::iterator*/;
542 while (true) { /*for*/
543 variable[14] = CALL_abstract_collection___Iterator___is_ok(variable[13])(variable[13]) /*ArrayIterator::is_ok*/;
544 if (!UNTAG_Bool(variable[14])) break; /*for*/
545 variable[14] = CALL_abstract_collection___Iterator___item(variable[13])(variable[13]) /*ArrayIterator::item*/;
546 variable[15] = variable[14];
547 while (true) { /*while*/
548 variable[16] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[15] /*c*/)( variable[15] /*c*/) /*MMLocalClass::cshe*/;
549 variable[16] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[16])(variable[16]) /*PartialOrderElement::direct_greaters*/;
550 variable[16] = CALL_abstract_collection___Collection___length(variable[16])(variable[16]) /*AbstractArray::length*/;
551 variable[16] = TAG_Bool((variable[16])==( TAG_Int(1)));
552 if (!UNTAG_Bool(variable[16])) break; /* while*/
553 variable[16] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[15] /*c*/)( variable[15] /*c*/) /*MMLocalClass::cshe*/;
554 variable[16] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[16])(variable[16]) /*PartialOrderElement::direct_greaters*/;
555 variable[16] = CALL_abstract_collection___Collection___first(variable[16])(variable[16]) /*IndexedCollection::first*/;
556 variable[15] = variable[16] /*c=*/;
557 continue_14: while(0);
558 }
559 break_14: while(0);
560 CALL_abstract_collection___SimpleCollection___add( variable[11] /*crown_classes*/)( variable[11] /*crown_classes*/, variable[15] /*c*/) /*HashSet::add*/;
561 variable[16] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[15] /*c*/)( variable[15] /*c*/) /*MMLocalClass::cshe*/;
562 variable[16] = CALL_partial_order___PartialOrderElement___greaters_and_self(variable[16])(variable[16]) /*PartialOrderElement::greaters_and_self*/;
563 CALL_abstract_collection___SimpleCollection___add_all( variable[12] /*core_classes*/)( variable[12] /*core_classes*/, variable[16]) /*SimpleCollection::add_all*/;
564 continue_13: while(0);
565 CALL_abstract_collection___Iterator___next(variable[13])(variable[13]) /*ArrayIterator::next*/;
566 }
567 break_13: while(0);
568 variable[13] = variable[0];
569 CALL_compiling_global___MMSrcModule___colorize(variable[13])(variable[13], variable[3] /*ga*/, variable[6] /*ctab*/, variable[11] /*crown_classes*/, TAG_Int(0)) /*MMSrcModule::colorize*/;
570 variable[13] = TAG_Int(0);
571 variable[14] = CALL_abstract_collection___Collection___iterator( variable[10] /*classes*/)( variable[10] /*classes*/) /*AbstractArray::iterator*/;
572 while (true) { /*for*/
573 variable[15] = CALL_abstract_collection___Iterator___is_ok(variable[14])(variable[14]) /*ArrayIterator::is_ok*/;
574 if (!UNTAG_Bool(variable[15])) break; /*for*/
575 variable[15] = CALL_abstract_collection___Iterator___item(variable[14])(variable[14]) /*ArrayIterator::item*/;
576 variable[16] = variable[15];
577 variable[18] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[3] /*ga*/)( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
578 variable[19] = CALL_abstractmetamodel___MMLocalClass___global( variable[16] /*c*/)( variable[16] /*c*/) /*MMLocalClass::global*/;
579 variable[18] = CALL_abstract_collection___Map_____bra(variable[18])(variable[18], variable[19]) /*CoupleMap::[]*/;
580 variable[17] = variable[18];
581 variable[18] = CALL_abstract_collection___Collection___has( variable[12] /*core_classes*/)( variable[12] /*core_classes*/, variable[16] /*c*/) /*HashSet::has*/;
582 if (UNTAG_Bool(variable[18])) { /*if*/
583 variable[18] = variable[0];
584 variable[18] = CALL_compiling_global___MMSrcModule___build_tables(variable[18])(variable[18], variable[3] /*ga*/, variable[16] /*c*/, variable[6] /*ctab*/) /*MMSrcModule::build_tables*/;
585 CALL_compiling_global___CompiledClass___class_table__eq( variable[17] /*cc*/)( variable[17] /*cc*/, variable[18]) /*CompiledClass::class_table=*/;
586 variable[18] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
587 variable[18] = CALL_abstract_collection___Collection___length(variable[18])(variable[18]) /*AbstractArray::length*/;
588 variable[18] = TAG_Bool(UNTAG_Int( variable[13] /*maxcolor*/)<UNTAG_Int(variable[18]));
589 if (UNTAG_Bool(variable[18])) { /*if*/
590 variable[18] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
591 variable[18] = CALL_abstract_collection___Collection___length(variable[18])(variable[18]) /*AbstractArray::length*/;
592 variable[13] = variable[18] /*maxcolor=*/;
593 }
594 } else { /*if*/
595 variable[19] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[16] /*c*/)( variable[16] /*c*/) /*MMLocalClass::cshe*/;
596 variable[19] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[19])(variable[19]) /*PartialOrderElement::direct_greaters*/;
597 variable[19] = CALL_abstract_collection___Collection___first(variable[19])(variable[19]) /*IndexedCollection::first*/;
598 variable[18] = variable[19];
599 variable[20] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[3] /*ga*/)( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
600 variable[21] = CALL_abstractmetamodel___MMLocalClass___global( variable[18] /*sc*/)( variable[18] /*sc*/) /*MMLocalClass::global*/;
601 variable[20] = CALL_abstract_collection___Map_____bra(variable[20])(variable[20], variable[21]) /*CoupleMap::[]*/;
602 variable[19] = variable[20];
603 variable[20] = CALL_compiling_global___CompiledClass___class_table( variable[19] /*scc*/)( variable[19] /*scc*/) /*CompiledClass::class_table*/;
604 variable[20] = CALL_array___Collection___to_a(variable[20])(variable[20]) /*Collection::to_a*/;
605 CALL_compiling_global___CompiledClass___class_table__eq( variable[17] /*cc*/)( variable[17] /*cc*/, variable[20]) /*CompiledClass::class_table=*/;
606 variable[21] = CALL_abstractmetamodel___MMLocalClass___global( variable[16] /*c*/)( variable[16] /*c*/) /*MMLocalClass::global*/;
607 variable[21] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[21])(variable[21]) /*MMGlobalClass::intro*/;
608 variable[20] = variable[21];
609 variable[21] = TAG_Bool(( variable[20] /*bc*/==NIT_NULL) || VAL_ISA( variable[20] /*bc*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
610 if (!UNTAG_Bool(variable[21])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMSrcModule___global_analysis, LOCATE_compiling_global, 252); nit_exit(1);}
611 variable[22] = CALL_compiling_global___MMSrcLocalClass___class_color_pos( variable[20] /*bc*/)( variable[20] /*bc*/) /*MMSrcLocalClass::class_color_pos*/;
612 variable[21] = variable[22];
613 variable[23] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
614 variable[23] = CALL_abstract_collection___Collection___length(variable[23])(variable[23]) /*AbstractArray::length*/;
615 variable[22] = variable[23];
616 CALL_compiling_global___ColorContext___color__eq( variable[3] /*ga*/)( variable[3] /*ga*/, variable[21] /*colpos*/, variable[22] /*colposcolor*/) /*ColorContext::color=*/;
617 variable[23] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
618 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[21] /*colpos*/) /*AbstractArray::add*/;
619 variable[23] = TAG_Bool(UNTAG_Int( variable[13] /*maxcolor*/)<UNTAG_Int( variable[22] /*colposcolor*/));
620 if (UNTAG_Bool(variable[23])) { /*if*/
621 variable[13] = variable[22] /*colposcolor*/ /*maxcolor=*/;
622 }
623 }
624 continue_15: while(0);
625 CALL_abstract_collection___Iterator___next(variable[14])(variable[14]) /*ArrayIterator::next*/;
626 }
627 break_15: while(0);
628 variable[14] = TAG_Int(UNTAG_Int( variable[13] /*maxcolor*/)+UNTAG_Int( TAG_Int(1)));
629 CALL_compiling_global___GlobalAnalysis___max_class_table_length__eq( variable[3] /*ga*/)( variable[3] /*ga*/, variable[14]) /*GlobalAnalysis::max_class_table_length=*/;
630 variable[14] = CALL_abstract_collection___Collection___iterator( variable[10] /*classes*/)( variable[10] /*classes*/) /*AbstractArray::iterator*/;
631 while (true) { /*for*/
632 variable[15] = CALL_abstract_collection___Iterator___is_ok(variable[14])(variable[14]) /*ArrayIterator::is_ok*/;
633 if (!UNTAG_Bool(variable[15])) break; /*for*/
634 variable[15] = CALL_abstract_collection___Iterator___item(variable[14])(variable[14]) /*ArrayIterator::item*/;
635 variable[16] = variable[15];
636 variable[18] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[3] /*ga*/)( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
637 variable[19] = CALL_abstractmetamodel___MMLocalClass___global( variable[16] /*c*/)( variable[16] /*c*/) /*MMLocalClass::global*/;
638 variable[18] = CALL_abstract_collection___Map_____bra(variable[18])(variable[18], variable[19]) /*CoupleMap::[]*/;
639 variable[17] = variable[18];
640 variable[19] = NEW_TableEltComposite_compiling_global___TableEltComposite___init( variable[17] /*cc*/); /*new TableEltComposite*/
641 variable[18] = variable[19];
642 variable[20] = NEW_TableEltComposite_compiling_global___TableEltComposite___init( variable[17] /*cc*/); /*new TableEltComposite*/
643 variable[19] = variable[20];
644 variable[20] = CALL_abstractmetamodel___MMLocalClass___crhe( variable[16] /*c*/)( variable[16] /*c*/) /*MMLocalClass::crhe*/;
645 variable[20] = CALL_partial_order___PartialOrderElement___greaters_and_self(variable[20])(variable[20]) /*PartialOrderElement::greaters_and_self*/;
646 variable[20] = CALL_abstract_collection___Collection___iterator(variable[20])(variable[20]) /*Collection::iterator*/;
647 while (true) { /*for*/
648 variable[21] = CALL_abstract_collection___Iterator___is_ok(variable[20])(variable[20]) /*Iterator::is_ok*/;
649 if (!UNTAG_Bool(variable[21])) break; /*for*/
650 variable[21] = CALL_abstract_collection___Iterator___item(variable[20])(variable[20]) /*Iterator::item*/;
651 variable[22] = variable[21];
652 variable[23] = TAG_Bool(( variable[22] /*sc*/==NIT_NULL) || VAL_ISA( variable[22] /*sc*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
653 if (UNTAG_Bool(variable[23])) { /*if*/
654 variable[23] = CALL_compiling_global___MMSrcLocalClass___class_layout( variable[22] /*sc*/)( variable[22] /*sc*/) /*MMSrcLocalClass::class_layout*/;
655 CALL_compiling_global___TableEltComposite___add( variable[18] /*cte*/)( variable[18] /*cte*/, variable[22] /*sc*/, variable[23]) /*TableEltComposite::add*/;
656 variable[23] = CALL_compiling_global___MMSrcLocalClass___instance_layout( variable[22] /*sc*/)( variable[22] /*sc*/) /*MMSrcLocalClass::instance_layout*/;
657 CALL_compiling_global___TableEltComposite___add( variable[19] /*ite*/)( variable[19] /*ite*/, variable[22] /*sc*/, variable[23]) /*TableEltComposite::add*/;
658 }
659 CALL_compiling_global___CompiledClass___class_layout__eq( variable[17] /*cc*/)( variable[17] /*cc*/, variable[18] /*cte*/) /*CompiledClass::class_layout=*/;
660 CALL_compiling_global___CompiledClass___instance_layout__eq( variable[17] /*cc*/)( variable[17] /*cc*/, variable[19] /*ite*/) /*CompiledClass::instance_layout=*/;
661 continue_17: while(0);
662 CALL_abstract_collection___Iterator___next(variable[20])(variable[20]) /*Iterator::next*/;
663 }
664 break_17: while(0);
665 variable[20] = CALL_abstract_collection___Collection___has( variable[12] /*core_classes*/)( variable[12] /*core_classes*/, variable[16] /*c*/) /*HashSet::has*/;
666 if (UNTAG_Bool(variable[20])) { /*if*/
667 variable[20] = CALL_compiling_global___TableElt___length( variable[18] /*cte*/)( variable[18] /*cte*/) /*TableEltComposite::length*/;
668 variable[20] = TAG_Bool(UNTAG_Int(variable[20])>UNTAG_Int( TAG_Int(0)));
669 if (UNTAG_Bool(variable[20])) { /*if*/
670 CALL_abstract_collection___SimpleCollection___add( variable[6] /*ctab*/)( variable[6] /*ctab*/, variable[18] /*cte*/) /*AbstractArray::add*/;
671 }
672 variable[20] = CALL_compiling_global___TableElt___length( variable[19] /*ite*/)( variable[19] /*ite*/) /*TableEltComposite::length*/;
673 variable[20] = TAG_Bool(UNTAG_Int(variable[20])>UNTAG_Int( TAG_Int(0)));
674 if (UNTAG_Bool(variable[20])) { /*if*/
675 CALL_abstract_collection___SimpleCollection___add( variable[7] /*itab*/)( variable[7] /*itab*/, variable[19] /*ite*/) /*AbstractArray::add*/;
676 }
677 }
678 continue_16: while(0);
679 CALL_abstract_collection___Iterator___next(variable[14])(variable[14]) /*ArrayIterator::next*/;
680 }
681 break_16: while(0);
682 variable[14] = variable[0];
683 variable[15] = TAG_Int(UNTAG_Int( variable[13] /*maxcolor*/)+UNTAG_Int( TAG_Int(1)));
684 CALL_compiling_global___MMSrcModule___colorize(variable[14])(variable[14], variable[3] /*ga*/, variable[6] /*ctab*/, variable[11] /*crown_classes*/, variable[15]) /*MMSrcModule::colorize*/;
685 variable[14] = variable[0];
686 CALL_compiling_global___MMSrcModule___colorize(variable[14])(variable[14], variable[3] /*ga*/, variable[7] /*itab*/, variable[11] /*crown_classes*/, TAG_Int(0)) /*MMSrcModule::colorize*/;
687 CALL_compiling_global___GlobalAnalysis___max_class_table_length__eq( variable[3] /*ga*/)( variable[3] /*ga*/, TAG_Int(0)) /*GlobalAnalysis::max_class_table_length=*/;
688 variable[14] = CALL_abstract_collection___Collection___iterator( variable[10] /*classes*/)( variable[10] /*classes*/) /*AbstractArray::iterator*/;
689 while (true) { /*for*/
690 variable[15] = CALL_abstract_collection___Iterator___is_ok(variable[14])(variable[14]) /*ArrayIterator::is_ok*/;
691 if (!UNTAG_Bool(variable[15])) break; /*for*/
692 variable[15] = CALL_abstract_collection___Iterator___item(variable[14])(variable[14]) /*ArrayIterator::item*/;
693 variable[16] = variable[15];
694 variable[18] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[3] /*ga*/)( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
695 variable[19] = CALL_abstractmetamodel___MMLocalClass___global( variable[16] /*c*/)( variable[16] /*c*/) /*MMLocalClass::global*/;
696 variable[18] = CALL_abstract_collection___Map_____bra(variable[18])(variable[18], variable[19]) /*CoupleMap::[]*/;
697 variable[17] = variable[18];
698 variable[18] = CALL_abstract_collection___Collection___has( variable[12] /*core_classes*/)( variable[12] /*core_classes*/, variable[16] /*c*/) /*HashSet::has*/;
699 if (UNTAG_Bool(variable[18])) { /*if*/
700 variable[18] = variable[0];
701 variable[18] = CALL_compiling_global___MMSrcModule___build_tables(variable[18])(variable[18], variable[3] /*ga*/, variable[16] /*c*/, variable[6] /*ctab*/) /*MMSrcModule::build_tables*/;
702 CALL_compiling_global___CompiledClass___class_table__eq( variable[17] /*cc*/)( variable[17] /*cc*/, variable[18]) /*CompiledClass::class_table=*/;
703 variable[18] = variable[0];
704 variable[18] = CALL_compiling_global___MMSrcModule___build_tables(variable[18])(variable[18], variable[3] /*ga*/, variable[16] /*c*/, variable[7] /*itab*/) /*MMSrcModule::build_tables*/;
705 CALL_compiling_global___CompiledClass___instance_table__eq( variable[17] /*cc*/)( variable[17] /*cc*/, variable[18]) /*CompiledClass::instance_table=*/;
706 } else { /*if*/
707 variable[19] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[16] /*c*/)( variable[16] /*c*/) /*MMLocalClass::cshe*/;
708 variable[19] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[19])(variable[19]) /*PartialOrderElement::direct_greaters*/;
709 variable[19] = CALL_abstract_collection___Collection___first(variable[19])(variable[19]) /*IndexedCollection::first*/;
710 variable[18] = variable[19];
711 variable[20] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[3] /*ga*/)( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
712 variable[21] = CALL_abstractmetamodel___MMLocalClass___global( variable[18] /*sc*/)( variable[18] /*sc*/) /*MMLocalClass::global*/;
713 variable[20] = CALL_abstract_collection___Map_____bra(variable[20])(variable[20], variable[21]) /*CoupleMap::[]*/;
714 variable[19] = variable[20];
715 variable[20] = CALL_compiling_global___CompiledClass___class_table( variable[19] /*scc*/)( variable[19] /*scc*/) /*CompiledClass::class_table*/;
716 variable[20] = CALL_array___Collection___to_a(variable[20])(variable[20]) /*Collection::to_a*/;
717 CALL_compiling_global___CompiledClass___class_table__eq( variable[17] /*cc*/)( variable[17] /*cc*/, variable[20]) /*CompiledClass::class_table=*/;
718 variable[21] = CALL_abstractmetamodel___MMLocalClass___global( variable[16] /*c*/)( variable[16] /*c*/) /*MMLocalClass::global*/;
719 variable[21] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[21])(variable[21]) /*MMGlobalClass::intro*/;
720 variable[20] = variable[21];
721 variable[21] = TAG_Bool(( variable[20] /*bc*/==NIT_NULL) || VAL_ISA( variable[20] /*bc*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
722 if (!UNTAG_Bool(variable[21])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMSrcModule___global_analysis, LOCATE_compiling_global, 304); nit_exit(1);}
723 variable[22] = CALL_compiling_global___MMSrcLocalClass___class_color_pos( variable[20] /*bc*/)( variable[20] /*bc*/) /*MMSrcLocalClass::class_color_pos*/;
724 variable[21] = variable[22];
725 variable[22] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
726 variable[23] = CALL_compiling_global___ColorContext___color( variable[3] /*ga*/)( variable[3] /*ga*/, variable[21] /*colpos*/) /*ColorContext::color*/;
727 CALL_abstract_collection___Map_____braeq(variable[22])(variable[22], variable[23], variable[21] /*colpos*/) /*Array::[]=*/;
728 while (true) { /*while*/
729 variable[22] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
730 variable[22] = CALL_abstract_collection___Collection___length(variable[22])(variable[22]) /*AbstractArray::length*/;
731 variable[22] = TAG_Bool(UNTAG_Int(variable[22])<=UNTAG_Int( variable[13] /*maxcolor*/));
732 if (!UNTAG_Bool(variable[22])) break; /* while*/
733 variable[22] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
734 CALL_abstract_collection___SimpleCollection___add(variable[22])(variable[22], NIT_NULL /*null*/) /*AbstractArray::add*/;
735 continue_19: while(0);
736 }
737 break_19: while(0);
738 variable[22] = variable[0];
739 variable[23] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
740 variable[24] = CALL_compiling_global___CompiledClass___class_layout( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_layout*/;
741 CALL_compiling_global___MMSrcModule___append_to_table(variable[22])(variable[22], variable[3] /*ga*/, variable[23], variable[24]) /*MMSrcModule::append_to_table*/;
742 variable[22] = CALL_compiling_global___CompiledClass___instance_table( variable[19] /*scc*/)( variable[19] /*scc*/) /*CompiledClass::instance_table*/;
743 variable[22] = CALL_array___Collection___to_a(variable[22])(variable[22]) /*Collection::to_a*/;
744 CALL_compiling_global___CompiledClass___instance_table__eq( variable[17] /*cc*/)( variable[17] /*cc*/, variable[22]) /*CompiledClass::instance_table=*/;
745 variable[22] = variable[0];
746 variable[23] = CALL_compiling_global___CompiledClass___instance_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::instance_table*/;
747 variable[24] = CALL_compiling_global___CompiledClass___instance_layout( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::instance_layout*/;
748 CALL_compiling_global___MMSrcModule___append_to_table(variable[22])(variable[22], variable[3] /*ga*/, variable[23], variable[24]) /*MMSrcModule::append_to_table*/;
749 }
750 continue_18: while(0);
751 CALL_abstract_collection___Iterator___next(variable[14])(variable[14]) /*ArrayIterator::next*/;
752 }
753 break_18: while(0);
754 variable[2] = variable[3] /*ga*/;
755 goto return_label10;
756 return_label10: while(false);
757 tracehead = trace.prev;
758 return variable[2];
759 }
760 void compiling_global___MMSrcModule___append_to_table(val_t self, val_t param0, val_t param1, val_t param2) {
761 struct trace_t trace = {NULL, NULL, 319, LOCATE_compiling_global___MMSrcModule___append_to_table};
762 val_t variable[10];
763 void **closurevariable = NULL;
764 trace.prev = tracehead; tracehead = &trace;
765 trace.file = LOCATE_compiling_global;
766 variable[0] = self;
767 variable[1] = param0;
768 variable[2] = param1;
769 variable[3] = param2;
770 variable[5] = CALL_compiling_global___TableElt___length( variable[3] /*cmp*/)( variable[3] /*cmp*/) /*TableEltComposite::length*/;
771 variable[6] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[5]); /*new Range[Int]*/
772 variable[5] = variable[6];
773 variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*Range::iterator*/;
774 while (true) { /*for*/
775 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
776 if (!UNTAG_Bool(variable[6])) break; /*for*/
777 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/;
778 variable[7] = variable[6];
779 variable[9] = CALL_compiling_global___TableElt___item( variable[3] /*cmp*/)( variable[3] /*cmp*/, variable[7] /*j*/) /*TableEltComposite::item*/;
780 variable[8] = variable[9];
781 variable[9] = CALL_abstract_collection___Collection___length( variable[2] /*table*/)( variable[2] /*table*/) /*AbstractArray::length*/;
782 CALL_compiling_global___ColorContext___color__eq( variable[1] /*cc*/)( variable[1] /*cc*/, variable[8] /*e*/, variable[9]) /*ColorContext::color=*/;
783 CALL_abstract_collection___SimpleCollection___add( variable[2] /*table*/)( variable[2] /*table*/, variable[8] /*e*/) /*AbstractArray::add*/;
784 continue_21: while(0);
785 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
786 }
787 break_21: while(0);
788 return_label20: while(false);
789 tracehead = trace.prev;
790 return;
791 }
792 val_t compiling_global___MMSrcModule___build_tables(val_t self, val_t param0, val_t param1, val_t param2) {
793 struct trace_t trace = {NULL, NULL, 328, LOCATE_compiling_global___MMSrcModule___build_tables};
794 val_t variable[14];
795 void **closurevariable = NULL;
796 trace.prev = tracehead; tracehead = &trace;
797 trace.file = LOCATE_compiling_global;
798 variable[0] = self;
799 variable[1] = param0;
800 variable[2] = param1;
801 variable[3] = param2;
802 variable[6] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[Int, TableElt]*/
803 variable[5] = variable[6];
804 variable[6] = TAG_Int(0);
805 variable[7] = CALL_abstract_collection___Collection___iterator( variable[3] /*elts*/)( variable[3] /*elts*/) /*AbstractArray::iterator*/;
806 while (true) { /*for*/
807 variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*ArrayIterator::is_ok*/;
808 if (!UNTAG_Bool(variable[8])) break; /*for*/
809 variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*ArrayIterator::item*/;
810 variable[9] = variable[8];
811 variable[10] = CALL_compiling_global___TableElt___is_related_to( variable[9] /*e*/)( variable[9] /*e*/, variable[2] /*c*/) /*TableElt::is_related_to*/;
812 if (UNTAG_Bool(variable[10])) { /*if*/
813 variable[11] = CALL_compiling_global___ColorContext___color( variable[1] /*ga*/)( variable[1] /*ga*/, variable[9] /*e*/) /*ColorContext::color*/;
814 variable[10] = variable[11];
815 variable[12] = CALL_compiling_global___TableElt___length( variable[9] /*e*/)( variable[9] /*e*/) /*TableElt::length*/;
816 variable[12] = TAG_Int(UNTAG_Int( variable[10] /*col*/)+UNTAG_Int(variable[12]));
817 variable[11] = variable[12];
818 CALL_abstract_collection___Map_____braeq( variable[5] /*tab*/)( variable[5] /*tab*/, variable[10] /*col*/, variable[9] /*e*/) /*HashMap::[]=*/;
819 variable[12] = TAG_Bool(UNTAG_Int( variable[6] /*len*/)<UNTAG_Int( variable[11] /*l*/));
820 if (UNTAG_Bool(variable[12])) { /*if*/
821 variable[6] = variable[11] /*l*/ /*len=*/;
822 }
823 }
824 continue_23: while(0);
825 CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*ArrayIterator::next*/;
826 }
827 break_23: while(0);
828 variable[8] = NEW_Array_array___Array___init(); /*new Array[TableElt]*/
829 variable[7] = variable[8];
830 variable[8] = TAG_Int(0);
831 while (true) { /*while*/
832 variable[9] = TAG_Bool(UNTAG_Int( variable[8] /*i*/)<UNTAG_Int( variable[6] /*len*/));
833 if (!UNTAG_Bool(variable[9])) break; /* while*/
834 variable[9] = CALL_abstract_collection___Map___has_key( variable[5] /*tab*/)( variable[5] /*tab*/, variable[8] /*i*/) /*CoupleMap::has_key*/;
835 if (UNTAG_Bool(variable[9])) { /*if*/
836 variable[10] = CALL_abstract_collection___Map_____bra( variable[5] /*tab*/)( variable[5] /*tab*/, variable[8] /*i*/) /*CoupleMap::[]*/;
837 variable[9] = variable[10];
838 variable[10] = CALL_compiling_global___TableElt___length( variable[9] /*e*/)( variable[9] /*e*/) /*TableElt::length*/;
839 variable[11] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[10]); /*new Range[Int]*/
840 variable[10] = variable[11];
841 variable[10] = CALL_abstract_collection___Collection___iterator(variable[10])(variable[10]) /*Range::iterator*/;
842 while (true) { /*for*/
843 variable[11] = CALL_abstract_collection___Iterator___is_ok(variable[10])(variable[10]) /*Iterator::is_ok*/;
844 if (!UNTAG_Bool(variable[11])) break; /*for*/
845 variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*Iterator::item*/;
846 variable[12] = variable[11];
847 variable[13] = CALL_compiling_global___TableElt___item( variable[9] /*e*/)( variable[9] /*e*/, variable[12] /*j*/) /*TableElt::item*/;
848 CALL_abstract_collection___Map_____braeq( variable[7] /*res*/)( variable[7] /*res*/, variable[8] /*i*/, variable[13]) /*Array::[]=*/;
849 variable[13] = TAG_Int(UNTAG_Int( variable[8] /*i*/)+UNTAG_Int( TAG_Int(1)));
850 variable[8] = variable[13] /*i=*/;
851 continue_25: while(0);
852 CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*Iterator::next*/;
853 }
854 break_25: while(0);
855 } else { /*if*/
856 CALL_abstract_collection___Map_____braeq( variable[7] /*res*/)( variable[7] /*res*/, variable[8] /*i*/, NIT_NULL /*null*/) /*Array::[]=*/;
857 variable[9] = TAG_Int(UNTAG_Int( variable[8] /*i*/)+UNTAG_Int( TAG_Int(1)));
858 variable[8] = variable[9] /*i=*/;
859 }
860 continue_24: while(0);
861 }
862 break_24: while(0);
863 variable[4] = variable[7] /*res*/;
864 goto return_label22;
865 return_label22: while(false);
866 tracehead = trace.prev;
867 return variable[4];
868 }
869 void compiling_global___MMSrcModule___colorize(val_t self, val_t param0, val_t param1, val_t param2, val_t param3) {
870 struct trace_t trace = {NULL, NULL, 359, LOCATE_compiling_global___MMSrcModule___colorize};
871 val_t variable[21];
872 void **closurevariable = NULL;
873 trace.prev = tracehead; tracehead = &trace;
874 trace.file = LOCATE_compiling_global;
875 variable[0] = self;
876 variable[1] = param0;
877 variable[2] = param1;
878 variable[3] = param2;
879 variable[4] = param3;
880 variable[7] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[Int, Array[TableElt]]*/
881 variable[6] = variable[7];
882 variable[8] = NEW_Array_array___Array___init(); /*new Array[MMLocalClass]*/
883 variable[7] = variable[8];
884 variable[8] = CALL_abstract_collection___Collection___iterator( variable[2] /*elts*/)( variable[2] /*elts*/) /*AbstractArray::iterator*/;
885 while (true) { /*for*/
886 variable[9] = CALL_abstract_collection___Iterator___is_ok(variable[8])(variable[8]) /*ArrayIterator::is_ok*/;
887 if (!UNTAG_Bool(variable[9])) break; /*for*/
888 variable[9] = CALL_abstract_collection___Iterator___item(variable[8])(variable[8]) /*ArrayIterator::item*/;
889 variable[10] = variable[9];
890 variable[12] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
891 variable[11] = variable[12];
892 variable[13] = CALL_compiling_global___TableElt___length( variable[10] /*e*/)( variable[10] /*e*/) /*TableElt::length*/;
893 variable[12] = variable[13];
894 variable[13] = CALL_compiling_global___ColorContext___has_color( variable[1] /*ga*/)( variable[1] /*ga*/, variable[10] /*e*/) /*ColorContext::has_color*/;
895 if (UNTAG_Bool(variable[13])) { /*if*/
896 variable[13] = CALL_compiling_global___ColorContext___color( variable[1] /*ga*/)( variable[1] /*ga*/, variable[10] /*e*/) /*ColorContext::color*/;
897 variable[11] = variable[13] /*color=*/;
898 } else { /*if*/
899 CALL_abstract_collection___RemovableCollection___clear( variable[7] /*rel_classes*/)( variable[7] /*rel_classes*/) /*AbstractArray::clear*/;
900 variable[13] = CALL_abstract_collection___Collection___iterator( variable[3] /*classes*/)( variable[3] /*classes*/) /*Collection::iterator*/;
901 while (true) { /*for*/
902 variable[14] = CALL_abstract_collection___Iterator___is_ok(variable[13])(variable[13]) /*Iterator::is_ok*/;
903 if (!UNTAG_Bool(variable[14])) break; /*for*/
904 variable[14] = CALL_abstract_collection___Iterator___item(variable[13])(variable[13]) /*Iterator::item*/;
905 variable[15] = variable[14];
906 variable[16] = CALL_compiling_global___TableElt___is_related_to( variable[10] /*e*/)( variable[10] /*e*/, variable[15] /*c*/) /*TableElt::is_related_to*/;
907 if (UNTAG_Bool(variable[16])) { /*if*/
908 CALL_abstract_collection___SimpleCollection___add( variable[7] /*rel_classes*/)( variable[7] /*rel_classes*/, variable[15] /*c*/) /*AbstractArray::add*/;
909 }
910 continue_28: while(0);
911 CALL_abstract_collection___Iterator___next(variable[13])(variable[13]) /*Iterator::next*/;
912 }
913 break_28: while(0);
914 variable[13] = variable[4] /*startcolor*/;
915 while (true) { /*while*/
916 variable[14] = TAG_Bool(( variable[13] /*trycolor*/)!=( variable[11] /*color*/));
917 if (!UNTAG_Bool(variable[14])) break; /* while*/
918 variable[11] = variable[13] /*trycolor*/ /*color=*/;
919 variable[14] = CALL_abstract_collection___Collection___iterator( variable[7] /*rel_classes*/)( variable[7] /*rel_classes*/) /*AbstractArray::iterator*/;
920 while (true) { /*for*/
921 variable[15] = CALL_abstract_collection___Iterator___is_ok(variable[14])(variable[14]) /*ArrayIterator::is_ok*/;
922 if (!UNTAG_Bool(variable[15])) break; /*for*/
923 variable[15] = CALL_abstract_collection___Iterator___item(variable[14])(variable[14]) /*ArrayIterator::item*/;
924 variable[16] = variable[15];
925 variable[17] = TAG_Int(0);
926 while (true) { /*while*/
927 variable[18] = TAG_Bool(UNTAG_Int( variable[17] /*idx*/)<UNTAG_Int( variable[12] /*len*/));
928 if (!UNTAG_Bool(variable[18])) break; /* while*/
929 variable[18] = TAG_Int(UNTAG_Int( variable[13] /*trycolor*/)+UNTAG_Int( variable[17] /*idx*/));
930 variable[18] = CALL_abstract_collection___Map___has_key( variable[6] /*colors*/)( variable[6] /*colors*/, variable[18]) /*CoupleMap::has_key*/;
931 variable[19] = variable[18];
932 if (UNTAG_Bool(variable[19])) { /* and */
933 variable[19] = variable[0];
934 variable[20] = TAG_Int(UNTAG_Int( variable[13] /*trycolor*/)+UNTAG_Int( variable[17] /*idx*/));
935 variable[20] = CALL_abstract_collection___Map_____bra( variable[6] /*colors*/)( variable[6] /*colors*/, variable[20]) /*CoupleMap::[]*/;
936 variable[19] = CALL_compiling_global___MMSrcModule___free_color(variable[19])(variable[19], variable[20], variable[16] /*c*/) /*MMSrcModule::free_color*/;
937 variable[19] = TAG_Bool(!UNTAG_Bool(variable[19]));
938 }
939 variable[18] = variable[19];
940 if (UNTAG_Bool(variable[18])) { /*if*/
941 variable[18] = TAG_Int(UNTAG_Int( variable[13] /*trycolor*/)+UNTAG_Int( variable[17] /*idx*/));
942 variable[18] = TAG_Int(UNTAG_Int(variable[18])+UNTAG_Int( TAG_Int(1)));
943 variable[13] = variable[18] /*trycolor=*/;
944 variable[17] = TAG_Int(0) /*idx=*/;
945 } else { /*if*/
946 variable[18] = TAG_Int(UNTAG_Int( variable[17] /*idx*/)+UNTAG_Int( TAG_Int(1)));
947 variable[17] = variable[18] /*idx=*/;
948 }
949 continue_31: while(0);
950 }
951 break_31: while(0);
952 continue_30: while(0);
953 CALL_abstract_collection___Iterator___next(variable[14])(variable[14]) /*ArrayIterator::next*/;
954 }
955 break_30: while(0);
956 continue_29: while(0);
957 }
958 break_29: while(0);
959 CALL_compiling_global___ColorContext___color__eq( variable[1] /*ga*/)( variable[1] /*ga*/, variable[10] /*e*/, variable[11] /*color*/) /*ColorContext::color=*/;
960 }
961 variable[13] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[12] /*len*/); /*new Range[Int]*/
962 variable[13] = CALL_abstract_collection___Collection___iterator(variable[13])(variable[13]) /*Range::iterator*/;
963 while (true) { /*for*/
964 variable[14] = CALL_abstract_collection___Iterator___is_ok(variable[13])(variable[13]) /*Iterator::is_ok*/;
965 if (!UNTAG_Bool(variable[14])) break; /*for*/
966 variable[14] = CALL_abstract_collection___Iterator___item(variable[13])(variable[13]) /*Iterator::item*/;
967 variable[15] = variable[14];
968 variable[16] = TAG_Int(UNTAG_Int( variable[11] /*color*/)+UNTAG_Int( variable[15] /*idx*/));
969 variable[16] = CALL_abstract_collection___Map___has_key( variable[6] /*colors*/)( variable[6] /*colors*/, variable[16]) /*CoupleMap::has_key*/;
970 if (UNTAG_Bool(variable[16])) { /*if*/
971 variable[16] = TAG_Int(UNTAG_Int( variable[11] /*color*/)+UNTAG_Int( variable[15] /*idx*/));
972 variable[16] = CALL_abstract_collection___Map_____bra( variable[6] /*colors*/)( variable[6] /*colors*/, variable[16]) /*CoupleMap::[]*/;
973 CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16], variable[10] /*e*/) /*AbstractArray::add*/;
974 } else { /*if*/
975 variable[16] = TAG_Int(UNTAG_Int( variable[11] /*color*/)+UNTAG_Int( variable[15] /*idx*/));
976 variable[17] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[TableElt]*/
977 CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[10] /*e*/) /*AbstractArray::add*/;
978 CALL_abstract_collection___Map_____braeq( variable[6] /*colors*/)( variable[6] /*colors*/, variable[16], variable[17]) /*HashMap::[]=*/;
979 }
980 continue_32: while(0);
981 CALL_abstract_collection___Iterator___next(variable[13])(variable[13]) /*Iterator::next*/;
982 }
983 break_32: while(0);
984 continue_27: while(0);
985 CALL_abstract_collection___Iterator___next(variable[8])(variable[8]) /*ArrayIterator::next*/;
986 }
987 break_27: while(0);
988 return_label26: while(false);
989 tracehead = trace.prev;
990 return;
991 }
992 val_t compiling_global___MMSrcModule___free_color(val_t self, val_t param0, val_t param1) {
993 struct trace_t trace = {NULL, NULL, 403, LOCATE_compiling_global___MMSrcModule___free_color};
994 val_t variable[8];
995 void **closurevariable = NULL;
996 trace.prev = tracehead; tracehead = &trace;
997 trace.file = LOCATE_compiling_global;
998 variable[0] = self;
999 variable[1] = param0;
1000 variable[2] = param1;
1001 variable[4] = CALL_abstract_collection___Collection___iterator( variable[1] /*es*/)( variable[1] /*es*/) /*AbstractArray::iterator*/;
1002 while (true) { /*for*/
1003 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
1004 if (!UNTAG_Bool(variable[5])) break; /*for*/
1005 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
1006 variable[6] = variable[5];
1007 variable[7] = CALL_compiling_global___TableElt___is_related_to( variable[6] /*e2*/)( variable[6] /*e2*/, variable[2] /*c*/) /*TableElt::is_related_to*/;
1008 if (UNTAG_Bool(variable[7])) { /*if*/
1009 variable[3] = TAG_Bool(false);
1010 goto return_label33;
1011 }
1012 continue_34: while(0);
1013 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
1014 }
1015 break_34: while(0);
1016 variable[3] = TAG_Bool(true);
1017 goto return_label33;
1018 return_label33: while(false);
1019 tracehead = trace.prev;
1020 return variable[3];
1021 }
1022 void compiling_global___MMSrcModule___compile_tables_to_c(val_t self, val_t param0) {
1023 struct trace_t trace = {NULL, NULL, 413, LOCATE_compiling_global___MMSrcModule___compile_tables_to_c};
1024 val_t variable[13];
1025 void **closurevariable = NULL;
1026 trace.prev = tracehead; tracehead = &trace;
1027 trace.file = LOCATE_compiling_global;
1028 variable[0] = self;
1029 variable[1] = param0;
1030 variable[3] = variable[0];
1031 variable[3] = CALL_abstractmetamodel___MMModule___mhe(variable[3])(variable[3]) /*MMModule::mhe*/;
1032 variable[3] = CALL_partial_order___PartialOrderElement___greaters_and_self(variable[3])(variable[3]) /*PartialOrderElement::greaters_and_self*/;
1033 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*Collection::iterator*/;
1034 while (true) { /*for*/
1035 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
1036 if (!UNTAG_Bool(variable[4])) break; /*for*/
1037 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/;
1038 variable[5] = variable[4];
1039 variable[6] = TAG_Bool(( variable[5] /*m*/==NIT_NULL) || VAL_ISA( variable[5] /*m*/, COLOR_MMSrcModule, ID_MMSrcModule)) /*cast MMSrcModule*/;
1040 if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMSrcModule___compile_tables_to_c, LOCATE_compiling_global, 417); nit_exit(1);}
1041 CALL_compiling_global___MMSrcModule___compile_local_table_to_c( variable[5] /*m*/)( variable[5] /*m*/, variable[1] /*v*/) /*MMSrcModule::compile_local_table_to_c*/;
1042 continue_36: while(0);
1043 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
1044 }
1045 break_36: while(0);
1046 variable[3] = variable[0];
1047 variable[3] = CALL_abstractmetamodel___MMModule___local_classes(variable[3])(variable[3]) /*MMModule::local_classes*/;
1048 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArray::iterator*/;
1049 while (true) { /*for*/
1050 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
1051 if (!UNTAG_Bool(variable[4])) break; /*for*/
1052 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
1053 variable[5] = variable[4];
1054 CALL_compiling_global___MMLocalClass___compile_tables_to_c( variable[5] /*c*/)( variable[5] /*c*/, variable[1] /*v*/) /*MMLocalClass::compile_tables_to_c*/;
1055 continue_37: while(0);
1056 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
1057 }
1058 break_37: while(0);
1059 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("classtable_t TAG2VFT[4] = {NULL"), TAG_Int(31)); /*new String*/
1060 variable[3] = variable[4];
1061 variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
1062 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Int"), TAG_Int(3)); /*new String*/
1063 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
1064 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Char"), TAG_Int(4)); /*new String*/
1065 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
1066 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Bool"), TAG_Int(4)); /*new String*/
1067 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[7]) /*AbstractArray::add*/;
1068 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArray::iterator*/;
1069 while (true) { /*for*/
1070 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
1071 if (!UNTAG_Bool(variable[5])) break; /*for*/
1072 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
1073 variable[6] = variable[5];
1074 variable[7] = variable[0];
1075 variable[8] = CALL_symbol___String___to_symbol( variable[6] /*t*/)( variable[6] /*t*/) /*String::to_symbol*/;
1076 variable[7] = CALL_abstractmetamodel___MMModule___has_global_class_named(variable[7])(variable[7], variable[8]) /*MMModule::has_global_class_named*/;
1077 if (UNTAG_Bool(variable[7])) { /*if*/
1078 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
1079 variable[8] = NEW_String_string___String___with_native(BOX_NativeString(", (const classtable_t)VFT_"), TAG_Int(26)); /*new String*/
1080 variable[9] = variable[8];
1081 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
1082 variable[10] = variable[6] /*t*/;
1083 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
1084 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1085 variable[12] = variable[11];
1086 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
1087 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
1088 CALL_abstract_collection___IndexedCollection___append( variable[3] /*s*/)( variable[3] /*s*/, variable[7]) /*String::append*/;
1089 } else { /*if*/
1090 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(", NULL"), TAG_Int(6)); /*new String*/
1091 CALL_abstract_collection___IndexedCollection___append( variable[3] /*s*/)( variable[3] /*s*/, variable[7]) /*String::append*/;
1092 }
1093 continue_38: while(0);
1094 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
1095 }
1096 break_38: while(0);
1097 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("};"), TAG_Int(2)); /*new String*/
1098 CALL_abstract_collection___IndexedCollection___append( variable[3] /*s*/)( variable[3] /*s*/, variable[4]) /*String::append*/;
1099 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3] /*s*/) /*CompilerVisitor::add_instr*/;
1100 return_label35: while(false);
1101 tracehead = trace.prev;
1102 return;
1103 }
1104 void compiling_global___MMSrcModule___declare_class_tables_to_c(val_t self, val_t param0) {
1105 struct trace_t trace = {NULL, NULL, 436, LOCATE_compiling_global___MMSrcModule___declare_class_tables_to_c};
1106 val_t variable[8];
1107 void **closurevariable = NULL;
1108 trace.prev = tracehead; tracehead = &trace;
1109 trace.file = LOCATE_compiling_global;
1110 variable[0] = self;
1111 variable[1] = param0;
1112 variable[3] = variable[0];
1113 variable[3] = CALL_abstractmetamodel___MMModule___local_classes(variable[3])(variable[3]) /*MMModule::local_classes*/;
1114 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArray::iterator*/;
1115 while (true) { /*for*/
1116 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
1117 if (!UNTAG_Bool(variable[4])) break; /*for*/
1118 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
1119 variable[5] = variable[4];
1120 variable[6] = CALL_abstractmetamodel___MMLocalClass___global( variable[5] /*c*/)( variable[5] /*c*/) /*MMLocalClass::global*/;
1121 variable[6] = CALL_abstractmetamodel___MMGlobalClass___module(variable[6])(variable[6]) /*MMGlobalClass::module*/;
1122 variable[7] = variable[0];
1123 variable[6] = TAG_Bool((variable[6] == variable[7]) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6],variable[7])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6], variable[7]) /*Object::==*/)))));
1124 if (UNTAG_Bool(variable[6])) { /*if*/
1125 CALL_compiling_global___MMLocalClass___declare_tables_to_c( variable[5] /*c*/)( variable[5] /*c*/, variable[1] /*v*/) /*MMLocalClass::declare_tables_to_c*/;
1126 }
1127 continue_40: while(0);
1128 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
1129 }
1130 break_40: while(0);
1131 return_label39: while(false);
1132 tracehead = trace.prev;
1133 return;
1134 }
1135 void compiling_global___MMSrcModule___compile_main_part(val_t self, val_t param0) {
1136 struct trace_t trace = {NULL, NULL, 446, LOCATE_compiling_global___MMSrcModule___compile_main_part};
1137 static val_t once_value_42; static int once_bool_42; /* Once value for variable[4]*/
1138 static val_t once_value_43; static int once_bool_43; /* Once value for variable[6]*/
1139 val_t variable[13];
1140 void **closurevariable = NULL;
1141 trace.prev = tracehead; tracehead = &trace;
1142 trace.file = LOCATE_compiling_global;
1143 variable[0] = self;
1144 variable[1] = param0;
1145 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("int main(int argc, char **argv) {"), TAG_Int(33)); /*new String*/
1146 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
1147 CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
1148 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("prepare_signals();"), TAG_Int(18)); /*new String*/
1149 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
1150 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("glob_argc = argc; glob_argv = argv;"), TAG_Int(35)); /*new String*/
1151 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
1152 if (once_bool_42) variable[4] = once_value_42;
1153 else {
1154 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Sys"), TAG_Int(3)); /*new String*/
1155 variable[4] = CALL_symbol___String___to_symbol(variable[4])(variable[4]) /*String::to_symbol*/;
1156 once_value_42 = variable[4];
1157 once_bool_42 = true;
1158 }
1159 variable[3] = variable[4];
1160 variable[4] = variable[0];
1161 variable[4] = CALL_abstractmetamodel___MMModule___has_global_class_named(variable[4])(variable[4], variable[3] /*sysname*/) /*MMModule::has_global_class_named*/;
1162 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[4])))) { /*if*/
1163 variable[4] = variable[0];
1164 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("No main"), TAG_Int(7)); /*new String*/
1165 CALL_file___Object___print(variable[4])(variable[4], variable[5]) /*Object::print*/;
1166 } else { /*if*/
1167 variable[5] = variable[0];
1168 variable[5] = CALL_abstractmetamodel___MMModule___class_by_name(variable[5])(variable[5], variable[3] /*sysname*/) /*MMModule::class_by_name*/;
1169 variable[4] = variable[5];
1170 if (once_bool_43) variable[6] = once_value_43;
1171 else {
1172 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("main"), TAG_Int(4)); /*new String*/
1173 variable[6] = CALL_symbol___String___to_symbol(variable[6])(variable[6]) /*String::to_symbol*/;
1174 once_value_43 = variable[6];
1175 once_bool_43 = true;
1176 }
1177 variable[6] = CALL_abstractmetamodel___MMLocalClass___select_method( variable[4] /*sys*/)( variable[4] /*sys*/, variable[6]) /*MMLocalClass::select_method*/;
1178 variable[5] = variable[6];
1179 variable[6] = TAG_Bool(( variable[5] /*mainm*/ == NIT_NULL /*null*/) || (( variable[5] /*mainm*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*mainm*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*mainm*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*mainm*/)( variable[5] /*mainm*/, NIT_NULL /*null*/) /*Object::==*/)))));
1180 if (UNTAG_Bool(variable[6])) { /*if*/
1181 variable[6] = variable[0];
1182 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("No main"), TAG_Int(7)); /*new String*/
1183 CALL_file___Object___print(variable[6])(variable[6], variable[7]) /*Object::print*/;
1184 } else { /*if*/
1185 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("G_sys = NEW_Sys();"), TAG_Int(18)); /*new String*/
1186 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
1187 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
1188 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1189 variable[8] = variable[7];
1190 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
1191 variable[9] = CALL_compiling_base___MMLocalProperty___cname( variable[5] /*mainm*/)( variable[5] /*mainm*/) /*MMLocalProperty::cname*/;
1192 variable[10] = variable[9];
1193 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
1194 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("(G_sys);"), TAG_Int(8)); /*new String*/
1195 variable[12] = variable[11];
1196 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
1197 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
1198 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
1199 }
1200 }
1201 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("return 0;"), TAG_Int(9)); /*new String*/
1202 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
1203 CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
1204 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
1205 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
1206 return_label41: while(false);
1207 tracehead = trace.prev;
1208 return;
1209 }
1210 void compiling_global___MMSrcModule___compile_mod_to_c(val_t self, val_t param0) {
1211 struct trace_t trace = {NULL, NULL, 473, LOCATE_compiling_global___MMSrcModule___compile_mod_to_c};
1212 val_t variable[26];
1213 void **closurevariable = NULL;
1214 trace.prev = tracehead; tracehead = &trace;
1215 trace.file = LOCATE_compiling_global;
1216 variable[0] = self;
1217 variable[1] = param0;
1218 variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
1219 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("extern const char *LOCATE_"), TAG_Int(26)); /*new String*/
1220 variable[5] = variable[4];
1221 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
1222 variable[6] = variable[0];
1223 variable[6] = CALL_abstractmetamodel___MMModule___name(variable[6])(variable[6]) /*MMModule::name*/;
1224 variable[7] = variable[6];
1225 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
1226 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
1227 variable[8] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
1228 variable[9] = variable[8];
1229 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
1230 variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
1231 CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_decl*/;
1232 variable[3] = CALL_compiling_base___CompilerVisitor___tc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::tc*/;
1233 variable[3] = CALL_compiling_base___ToolContext___global(variable[3])(variable[3]) /*ToolContext::global*/;
1234 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/
1235 variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
1236 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("extern const int SFT_"), TAG_Int(21)); /*new String*/
1237 variable[5] = variable[4];
1238 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
1239 variable[6] = variable[0];
1240 variable[6] = CALL_abstractmetamodel___MMModule___name(variable[6])(variable[6]) /*MMModule::name*/;
1241 variable[7] = variable[6];
1242 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
1243 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
1244 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("[];"), TAG_Int(3)); /*new String*/
1245 variable[9] = variable[8];
1246 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
1247 variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
1248 CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_decl*/;
1249 }
1250 variable[3] = TAG_Int(0);
1251 variable[4] = variable[0];
1252 variable[4] = ATTR_compiling_global___MMSrcModule____local_table(variable[4]) /*MMSrcModule::_local_table*/;
1253 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArray::iterator*/;
1254 while (true) { /*for*/
1255 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
1256 if (!UNTAG_Bool(variable[5])) break; /*for*/
1257 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
1258 variable[6] = variable[5];
1259 /*variable[7] is variable value*/
1260 variable[8] = CALL_compiling_base___CompilerVisitor___tc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::tc*/;
1261 variable[8] = CALL_compiling_base___ToolContext___global(variable[8])(variable[8]) /*ToolContext::global*/;
1262 if (UNTAG_Bool(variable[8])) { /*if*/
1263 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
1264 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1265 variable[10] = variable[9];
1266 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
1267 variable[11] = CALL_compiling_global___CompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
1268 variable[11] = CALL_compiling_global___ModuleTableElt___value( variable[6] /*e*/)( variable[6] /*e*/, variable[11]) /*ModuleTableElt::value*/;
1269 variable[12] = variable[11];
1270 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
1271 variable[13] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1272 variable[14] = variable[13];
1273 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
1274 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
1275 variable[7] = variable[8] /*value=*/;
1276 } else { /*if*/
1277 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
1278 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("SFT_"), TAG_Int(4)); /*new String*/
1279 variable[10] = variable[9];
1280 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
1281 variable[11] = variable[0];
1282 variable[11] = CALL_abstractmetamodel___MMModule___name(variable[11])(variable[11]) /*MMModule::name*/;
1283 variable[12] = variable[11];
1284 variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
1285 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
1286 variable[13] = NEW_String_string___String___with_native(BOX_NativeString("["), TAG_Int(1)); /*new String*/
1287 variable[14] = variable[13];
1288 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
1289 variable[15] = variable[3] /*i*/;
1290 variable[15] = CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/;
1291 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[15]) /*AbstractArray::add*/;
1292 variable[16] = NEW_String_string___String___with_native(BOX_NativeString("]"), TAG_Int(1)); /*new String*/
1293 variable[17] = variable[16];
1294 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[17]) /*AbstractArray::add*/;
1295 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
1296 variable[7] = variable[8] /*value=*/;
1297 variable[8] = TAG_Int(UNTAG_Int( variable[3] /*i*/)+UNTAG_Int( TAG_Int(1)));
1298 variable[3] = variable[8] /*i=*/;
1299 }
1300 CALL_compiling_global___AbsTableElt___compile_macros( variable[6] /*e*/)( variable[6] /*e*/, variable[1] /*v*/, variable[7] /*value*/) /*AbsTableElt::compile_macros*/;
1301 continue_45: while(0);
1302 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
1303 }
1304 break_45: while(0);
1305 variable[4] = variable[0];
1306 variable[4] = CALL_syntax_base___MMSrcModule___src_local_classes(variable[4])(variable[4]) /*MMSrcModule::src_local_classes*/;
1307 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Map::iterator*/;
1308 while (true) { /*for*/
1309 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
1310 if (!UNTAG_Bool(variable[5])) break; /*for*/
1311 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
1312 variable[6] = variable[5];
1313 variable[7] = CALL_abstractmetamodel___MMLocalClass___global_properties( variable[6] /*c*/)( variable[6] /*c*/) /*MMLocalClass::global_properties*/;
1314 variable[7] = CALL_abstract_collection___Collection___iterator(variable[7])(variable[7]) /*Collection::iterator*/;
1315 while (true) { /*for*/
1316 variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*Iterator::is_ok*/;
1317 if (!UNTAG_Bool(variable[8])) break; /*for*/
1318 variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*Iterator::item*/;
1319 variable[9] = variable[8];
1320 variable[11] = CALL_abstractmetamodel___MMLocalClass_____bra( variable[6] /*c*/)( variable[6] /*c*/, variable[9] /*pg*/) /*MMLocalClass::[]*/;
1321 variable[10] = variable[11];
1322 variable[11] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[10] /*p*/)( variable[10] /*p*/) /*MMLocalProperty::local_class*/;
1323 variable[11] = TAG_Bool((variable[11] == variable[6] /*c*/) || ((variable[11] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[11])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[11], variable[6] /*c*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[11])(variable[11], variable[6] /*c*/) /*Object::==*/)))));
1324 if (UNTAG_Bool(variable[11])) { /*if*/
1325 CALL_compiling_methods___MMLocalProperty___compile_property_to_c( variable[10] /*p*/)( variable[10] /*p*/, variable[1] /*v*/) /*MMLocalProperty::compile_property_to_c*/;
1326 }
1327 variable[11] = CALL_abstractmetamodel___MMGlobalProperty___is_init_for( variable[9] /*pg*/)( variable[9] /*pg*/, variable[6] /*c*/) /*MMGlobalProperty::is_init_for*/;
1328 if (UNTAG_Bool(variable[11])) { /*if*/
1329 variable[12] = NEW_Array_array___Array___init(); /*new Array[String]*/
1330 variable[11] = variable[12];
1331 variable[12] = CALL_static_type___MMLocalProperty___signature( variable[10] /*p*/)( variable[10] /*p*/) /*MMLocalProperty::signature*/;
1332 variable[12] = CALL_static_type___MMSignature___arity(variable[12])(variable[12]) /*MMSignature::arity*/;
1333 variable[13] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[12]); /*new Range[Int]*/
1334 variable[12] = variable[13];
1335 variable[12] = CALL_abstract_collection___Collection___iterator(variable[12])(variable[12]) /*Range::iterator*/;
1336 while (true) { /*for*/
1337 variable[13] = CALL_abstract_collection___Iterator___is_ok(variable[12])(variable[12]) /*Iterator::is_ok*/;
1338 if (!UNTAG_Bool(variable[13])) break; /*for*/
1339 variable[13] = CALL_abstract_collection___Iterator___item(variable[12])(variable[12]) /*Iterator::item*/;
1340 variable[14] = variable[13];
1341 variable[15] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
1342 variable[16] = NEW_String_string___String___with_native(BOX_NativeString("val_t p"), TAG_Int(7)); /*new String*/
1343 variable[17] = variable[16];
1344 CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[17]) /*AbstractArray::add*/;
1345 variable[18] = variable[14] /*i*/;
1346 variable[18] = CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/;
1347 CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[18]) /*AbstractArray::add*/;
1348 variable[19] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1349 variable[20] = variable[19];
1350 CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[20]) /*AbstractArray::add*/;
1351 variable[15] = CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/;
1352 CALL_abstract_collection___SimpleCollection___add( variable[11] /*params*/)( variable[11] /*params*/, variable[15]) /*AbstractArray::add*/;
1353 continue_48: while(0);
1354 CALL_abstract_collection___Iterator___next(variable[12])(variable[12]) /*Iterator::next*/;
1355 }
1356 break_48: while(0);
1357 variable[12] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
1358 variable[13] = NEW_String_string___String___with_native(BOX_NativeString("val_t NEW_"), TAG_Int(10)); /*new String*/
1359 variable[14] = variable[13];
1360 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[14]) /*AbstractArray::add*/;
1361 variable[15] = variable[6] /*c*/;
1362 variable[15] = CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/;
1363 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[15]) /*AbstractArray::add*/;
1364 variable[16] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
1365 variable[17] = variable[16];
1366 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[17]) /*AbstractArray::add*/;
1367 variable[18] = CALL_abstractmetamodel___MMLocalProperty___global( variable[10] /*p*/)( variable[10] /*p*/) /*MMLocalProperty::global*/;
1368 variable[18] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[18])(variable[18]) /*MMGlobalProperty::intro*/;
1369 variable[18] = CALL_compiling_base___MMLocalProperty___cname(variable[18])(variable[18]) /*MMLocalProperty::cname*/;
1370 variable[19] = variable[18];
1371 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[19]) /*AbstractArray::add*/;
1372 variable[20] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
1373 variable[21] = variable[20];
1374 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[21]) /*AbstractArray::add*/;
1375 variable[22] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
1376 variable[22] = CALL_string___Collection___join( variable[11] /*params*/)( variable[11] /*params*/, variable[22]) /*Collection::join*/;
1377 variable[23] = variable[22];
1378 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[23]) /*AbstractArray::add*/;
1379 variable[24] = NEW_String_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)); /*new String*/
1380 variable[25] = variable[24];
1381 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[25]) /*AbstractArray::add*/;
1382 variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
1383 CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_decl*/;
1384 }
1385 continue_47: while(0);
1386 CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*Iterator::next*/;
1387 }
1388 break_47: while(0);
1389 continue_46: while(0);
1390 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
1391 }
1392 break_46: while(0);
1393 return_label44: while(false);
1394 tracehead = trace.prev;
1395 return;
1396 }
1397 void compiling_global___MMSrcModule___compile_local_table_to_c(val_t self, val_t param0) {
1398 struct trace_t trace = {NULL, NULL, 509, LOCATE_compiling_global___MMSrcModule___compile_local_table_to_c};
1399 val_t variable[14];
1400 void **closurevariable = NULL;
1401 trace.prev = tracehead; tracehead = &trace;
1402 trace.file = LOCATE_compiling_global;
1403 variable[0] = self;
1404 variable[1] = param0;
1405 variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
1406 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("const char *LOCATE_"), TAG_Int(19)); /*new String*/
1407 variable[5] = variable[4];
1408 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
1409 variable[6] = variable[0];
1410 variable[6] = CALL_abstractmetamodel___MMModule___name(variable[6])(variable[6]) /*MMModule::name*/;
1411 variable[7] = variable[6];
1412 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
1413 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
1414 variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" = \""), TAG_Int(4)); /*new String*/
1415 variable[9] = variable[8];
1416 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
1417 variable[10] = variable[0];
1418 variable[10] = CALL_mmloader___MMModule___filename(variable[10])(variable[10]) /*MMModule::filename*/;
1419 variable[11] = variable[10];
1420 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[11]) /*AbstractArray::add*/;
1421 variable[12] = NEW_String_string___String___with_native(BOX_NativeString("\";"), TAG_Int(2)); /*new String*/
1422 variable[13] = variable[12];
1423 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[13]) /*AbstractArray::add*/;
1424 variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
1425 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
1426 variable[3] = CALL_compiling_base___CompilerVisitor___tc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::tc*/;
1427 variable[3] = CALL_compiling_base___ToolContext___global(variable[3])(variable[3]) /*ToolContext::global*/;
1428 variable[4] = variable[3];
1429 if (!UNTAG_Bool(variable[4])) { /* or */
1430 variable[4] = variable[0];
1431 variable[4] = ATTR_compiling_global___MMSrcModule____local_table(variable[4]) /*MMSrcModule::_local_table*/;
1432 variable[4] = CALL_abstract_collection___Collection___is_empty(variable[4])(variable[4]) /*AbstractArray::is_empty*/;
1433 }
1434 variable[3] = variable[4];
1435 if (UNTAG_Bool(variable[3])) { /*if*/
1436 goto return_label49;
1437 }
1438 variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
1439 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("const int SFT_"), TAG_Int(14)); /*new String*/
1440 variable[5] = variable[4];
1441 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
1442 variable[6] = variable[0];
1443 variable[6] = CALL_abstractmetamodel___MMModule___name(variable[6])(variable[6]) /*MMModule::name*/;
1444 variable[7] = variable[6];
1445 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
1446 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
1447 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("["), TAG_Int(1)); /*new String*/
1448 variable[9] = variable[8];
1449 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
1450 variable[10] = variable[0];
1451 variable[10] = ATTR_compiling_global___MMSrcModule____local_table(variable[10]) /*MMSrcModule::_local_table*/;
1452 variable[10] = CALL_abstract_collection___Collection___length(variable[10])(variable[10]) /*AbstractArray::length*/;
1453 variable[11] = variable[10];
1454 variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
1455 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[11]) /*AbstractArray::add*/;
1456 variable[12] = NEW_String_string___String___with_native(BOX_NativeString("] = {"), TAG_Int(5)); /*new String*/
1457 variable[13] = variable[12];
1458 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[13]) /*AbstractArray::add*/;
1459 variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
1460 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
1461 CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
1462 variable[3] = variable[0];
1463 variable[3] = ATTR_compiling_global___MMSrcModule____local_table(variable[3]) /*MMSrcModule::_local_table*/;
1464 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArray::iterator*/;
1465 while (true) { /*for*/
1466 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
1467 if (!UNTAG_Bool(variable[4])) break; /*for*/
1468 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
1469 variable[5] = variable[4];
1470 variable[6] = CALL_compiling_global___CompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
1471 variable[6] = CALL_compiling_global___ModuleTableElt___value( variable[5] /*e*/)( variable[5] /*e*/, variable[6]) /*ModuleTableElt::value*/;
1472 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(","), TAG_Int(1)); /*new String*/
1473 variable[6] = CALL_string___String_____plus(variable[6])(variable[6], variable[7]) /*String::+*/;
1474 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
1475 continue_50: while(0);
1476 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
1477 }
1478 break_50: while(0);
1479 CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
1480 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("};"), TAG_Int(2)); /*new String*/
1481 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
1482 return_label49: while(false);
1483 tracehead = trace.prev;
1484 return;
1485 }
1486 void compiling_global___AbsTableElt___compile_macros(val_t self, val_t param0, val_t param1) {
1487 struct trace_t trace = {NULL, NULL, 532, LOCATE_compiling_global___AbsTableElt___compile_macros};
1488 val_t *variable = NULL;
1489 void **closurevariable = NULL;
1490 trace.prev = tracehead; tracehead = &trace;
1491 trace.file = LOCATE_compiling_global;
1492 fprintf(stderr, "Deferred method called");
1493 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 532);
1494 nit_exit(1);
1495 tracehead = trace.prev;
1496 return;
1497 }
1498 void compiling_global___AbsTableElt___init(val_t self, int* init_table) {
1499 struct trace_t trace = {NULL, NULL, 0, LOCATE_compiling_global___AbsTableElt___init};
1500 val_t *variable = NULL;
1501 void **closurevariable = NULL;
1502 trace.prev = tracehead; tracehead = &trace;
1503 trace.file = LOCATE_compiling_global;
1504 tracehead = trace.prev;
1505 return;
1506 }
1507 val_t compiling_global___TableElt___is_related_to(val_t self, val_t param0) {
1508 struct trace_t trace = {NULL, NULL, 540, LOCATE_compiling_global___TableElt___is_related_to};
1509 val_t *variable = NULL;
1510 void **closurevariable = NULL;
1511 trace.prev = tracehead; tracehead = &trace;
1512 trace.file = LOCATE_compiling_global;
1513 fprintf(stderr, "Deferred method called");
1514 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 540);
1515 nit_exit(1);
1516 tracehead = trace.prev;
1517 return NIT_NULL;
1518 }
1519 val_t compiling_global___TableElt___length(val_t self) {
1520 struct trace_t trace = {NULL, NULL, 543, LOCATE_compiling_global___TableElt___length};
1521 val_t variable[2];
1522 void **closurevariable = NULL;
1523 trace.prev = tracehead; tracehead = &trace;
1524 trace.file = LOCATE_compiling_global;
1525 variable[0] = self;
1526 variable[1] = TAG_Int(1);
1527 goto return_label51;
1528 return_label51: while(false);
1529 tracehead = trace.prev;
1530 return variable[1];
1531 }
1532 val_t compiling_global___TableElt___item(val_t self, val_t param0) {
1533 struct trace_t trace = {NULL, NULL, 546, LOCATE_compiling_global___TableElt___item};
1534 val_t variable[4];
1535 void **closurevariable = NULL;
1536 trace.prev = tracehead; tracehead = &trace;
1537 trace.file = LOCATE_compiling_global;
1538 variable[0] = self;
1539 variable[1] = param0;
1540 variable[3] = variable[0];
1541 variable[2] = variable[3];
1542 goto return_label52;
1543 return_label52: while(false);
1544 tracehead = trace.prev;
1545 return variable[2];
1546 }
1547 val_t compiling_global___TableElt___compile_to_c(val_t self, val_t param0, val_t param1) {
1548 struct trace_t trace = {NULL, NULL, 549, LOCATE_compiling_global___TableElt___compile_to_c};
1549 val_t *variable = NULL;
1550 void **closurevariable = NULL;
1551 trace.prev = tracehead; tracehead = &trace;
1552 trace.file = LOCATE_compiling_global;
1553 fprintf(stderr, "Deferred method called");
1554 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 549);
1555 nit_exit(1);
1556 tracehead = trace.prev;
1557 return NIT_NULL;
1558 }
1559 val_t compiling_global___ModuleTableElt___value(val_t self, val_t param0) {
1560 struct trace_t trace = {NULL, NULL, 557, LOCATE_compiling_global___ModuleTableElt___value};
1561 val_t *variable = NULL;
1562 void **closurevariable = NULL;
1563 trace.prev = tracehead; tracehead = &trace;
1564 trace.file = LOCATE_compiling_global;
1565 fprintf(stderr, "Deferred method called");
1566 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 557);
1567 nit_exit(1);
1568 tracehead = trace.prev;
1569 return NIT_NULL;
1570 }
1571 void compiling_global___ModuleTableEltGroup___compile_macros(val_t self, val_t param0, val_t param1) {
1572 struct trace_t trace = {NULL, NULL, 567, LOCATE_compiling_global___ModuleTableEltGroup___compile_macros};
1573 val_t variable[17];
1574 void **closurevariable = NULL;
1575 trace.prev = tracehead; tracehead = &trace;
1576 trace.file = LOCATE_compiling_global;
1577 variable[0] = self;
1578 variable[1] = param0;
1579 variable[2] = param1;
1580 variable[4] = TAG_Int(0);
1581 variable[5] = variable[0];
1582 variable[5] = ATTR_compiling_global___ModuleTableEltGroup____elements(variable[5]) /*ModuleTableEltGroup::_elements*/;
1583 variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*AbstractArray::iterator*/;
1584 while (true) { /*for*/
1585 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
1586 if (!UNTAG_Bool(variable[6])) break; /*for*/
1587 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
1588 variable[7] = variable[6];
1589 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
1590 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1591 variable[10] = variable[9];
1592 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
1593 variable[11] = variable[2] /*value*/;
1594 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[11]) /*AbstractArray::add*/;
1595 variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" + "), TAG_Int(3)); /*new String*/
1596 variable[13] = variable[12];
1597 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
1598 variable[14] = variable[4] /*i*/;
1599 variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
1600 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
1601 variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1602 variable[16] = variable[15];
1603 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
1604 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
1605 CALL_compiling_global___AbsTableElt___compile_macros( variable[7] /*e*/)( variable[7] /*e*/, variable[1] /*v*/, variable[8]) /*AbsTableElt::compile_macros*/;
1606 variable[4] = TAG_Int(UNTAG_Int(variable[4])+UNTAG_Int( TAG_Int(1))) /*i*/;
1607 continue_54: while(0);
1608 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
1609 }
1610 break_54: while(0);
1611 return_label53: while(false);
1612 tracehead = trace.prev;
1613 return;
1614 }
1615 val_t compiling_global___ModuleTableEltGroup___value(val_t self, val_t param0) {
1616 struct trace_t trace = {NULL, NULL, 566, LOCATE_compiling_global___ModuleTableEltGroup___value};
1617 val_t variable[10];
1618 void **closurevariable = NULL;
1619 trace.prev = tracehead; tracehead = &trace;
1620 trace.file = LOCATE_compiling_global;
1621 variable[0] = self;
1622 variable[1] = param0;
1623 variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
1624 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1625 variable[5] = variable[4];
1626 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
1627 variable[6] = variable[0];
1628 variable[6] = ATTR_compiling_global___ModuleTableEltGroup____elements(variable[6]) /*ModuleTableEltGroup::_elements*/;
1629 variable[6] = CALL_abstract_collection___Collection___first(variable[6])(variable[6]) /*IndexedCollection::first*/;
1630 variable[6] = CALL_compiling_global___ColorContext___color( variable[1] /*ga*/)( variable[1] /*ga*/, variable[6]) /*ColorContext::color*/;
1631 variable[7] = variable[6];
1632 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
1633 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
1634 variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" /* Group of ? */"), TAG_Int(17)); /*new String*/
1635 variable[9] = variable[8];
1636 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
1637 variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
1638 variable[2] = variable[3];
1639 goto return_label55;
1640 return_label55: while(false);
1641 tracehead = trace.prev;
1642 return variable[2];
1643 }
1644 val_t compiling_global___ModuleTableEltGroup___elements(val_t self) {
1645 struct trace_t trace = {NULL, NULL, 564, LOCATE_compiling_global___ModuleTableEltGroup___elements};
1646 val_t *variable = NULL;
1647 void **closurevariable = NULL;
1648 trace.prev = tracehead; tracehead = &trace;
1649 trace.file = LOCATE_compiling_global;
1650 tracehead = trace.prev;
1651 return ATTR_compiling_global___ModuleTableEltGroup____elements( self) /*ModuleTableEltGroup::_elements*/;
1652 }
1653 void compiling_global___TableEltProp___init(val_t self, val_t param0, int* init_table) {
1654 struct trace_t trace = {NULL, NULL, 582, LOCATE_compiling_global___TableEltProp___init};
1655 val_t variable[4];
1656 void **closurevariable = NULL;
1657 trace.prev = tracehead; tracehead = &trace;
1658 trace.file = LOCATE_compiling_global;
1659 variable[0] = self;
1660 variable[1] = param0;
1661 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltProp].i]) return;
1662 variable[3] = variable[0];
1663 ATTR_compiling_global___TableEltProp____property(variable[3]) /*TableEltProp::_property*/ = variable[1] /*p*/;
1664 return_label56: while(false);
1665 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltProp].i] = 1;
1666 tracehead = trace.prev;
1667 return;
1668 }
1669 void compiling_global___TableEltMeth___compile_macros(val_t self, val_t param0, val_t param1) {
1670 struct trace_t trace = {NULL, NULL, 591, LOCATE_compiling_global___TableEltMeth___compile_macros};
1671 val_t variable[19];
1672 void **closurevariable = NULL;
1673 trace.prev = tracehead; tracehead = &trace;
1674 trace.file = LOCATE_compiling_global;
1675 variable[0] = self;
1676 variable[1] = param0;
1677 variable[2] = param1;
1678 variable[5] = variable[0];
1679 variable[5] = ATTR_compiling_global___TableEltProp____property(variable[5]) /*TableEltProp::_property*/;
1680 variable[5] = CALL_abstractmetamodel___MMLocalProperty___global(variable[5])(variable[5]) /*MMLocalProperty::global*/;
1681 variable[4] = variable[5];
1682 variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
1683 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)); /*new String*/
1684 variable[7] = variable[6];
1685 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
1686 variable[8] = CALL_compiling_base___MMGlobalProperty___meth_call( variable[4] /*pg*/)( variable[4] /*pg*/) /*MMGlobalProperty::meth_call*/;
1687 variable[9] = variable[8];
1688 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
1689 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("(recv) (("), TAG_Int(9)); /*new String*/
1690 variable[11] = variable[10];
1691 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
1692 variable[12] = CALL_abstractmetamodel___MMGlobalProperty___intro( variable[4] /*pg*/)( variable[4] /*pg*/) /*MMGlobalProperty::intro*/;
1693 variable[12] = CALL_compiling_base___MMLocalProperty___cname(variable[12])(variable[12]) /*MMLocalProperty::cname*/;
1694 variable[13] = variable[12];
1695 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[13]) /*AbstractArray::add*/;
1696 variable[14] = NEW_String_string___String___with_native(BOX_NativeString("_t)CALL((recv), ("), TAG_Int(17)); /*new String*/
1697 variable[15] = variable[14];
1698 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[15]) /*AbstractArray::add*/;
1699 variable[16] = variable[2] /*value*/;
1700 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[16]) /*AbstractArray::add*/;
1701 variable[17] = NEW_String_string___String___with_native(BOX_NativeString(")))"), TAG_Int(3)); /*new String*/
1702 variable[18] = variable[17];
1703 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[18]) /*AbstractArray::add*/;
1704 variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
1705 CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_decl*/;
1706 return_label57: while(false);
1707 tracehead = trace.prev;
1708 return;
1709 }
1710 val_t compiling_global___TableEltMeth___compile_to_c(val_t self, val_t param0, val_t param1) {
1711 struct trace_t trace = {NULL, NULL, 597, LOCATE_compiling_global___TableEltMeth___compile_to_c};
1712 val_t variable[6];
1713 void **closurevariable = NULL;
1714 trace.prev = tracehead; tracehead = &trace;
1715 trace.file = LOCATE_compiling_global;
1716 variable[0] = self;
1717 variable[1] = param0;
1718 variable[2] = param1;
1719 variable[5] = variable[0];
1720 variable[5] = ATTR_compiling_global___TableEltProp____property(variable[5]) /*TableEltProp::_property*/;
1721 variable[5] = CALL_abstractmetamodel___MMLocalProperty___global(variable[5])(variable[5]) /*MMLocalProperty::global*/;
1722 variable[5] = CALL_abstractmetamodel___MMLocalClass_____bra( variable[2] /*c*/)( variable[2] /*c*/, variable[5]) /*MMLocalClass::[]*/;
1723 variable[4] = variable[5];
1724 variable[5] = CALL_compiling_base___MMLocalProperty___cname( variable[4] /*p*/)( variable[4] /*p*/) /*MMLocalProperty::cname*/;
1725 variable[3] = variable[5];
1726 goto return_label58;
1727 return_label58: while(false);
1728 tracehead = trace.prev;
1729 return variable[3];
1730 }
1731 void compiling_global___TableEltSuper___compile_macros(val_t self, val_t param0, val_t param1) {
1732 struct trace_t trace = {NULL, NULL, 607, LOCATE_compiling_global___TableEltSuper___compile_macros};
1733 val_t variable[19];
1734 void **closurevariable = NULL;
1735 trace.prev = tracehead; tracehead = &trace;
1736 trace.file = LOCATE_compiling_global;
1737 variable[0] = self;
1738 variable[1] = param0;
1739 variable[2] = param1;
1740 variable[5] = variable[0];
1741 variable[5] = ATTR_compiling_global___TableEltProp____property(variable[5]) /*TableEltProp::_property*/;
1742 variable[4] = variable[5];
1743 variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
1744 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)); /*new String*/
1745 variable[7] = variable[6];
1746 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
1747 variable[8] = CALL_compiling_base___MMLocalProperty___super_meth_call( variable[4] /*p*/)( variable[4] /*p*/) /*MMLocalProperty::super_meth_call*/;
1748 variable[9] = variable[8];
1749 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
1750 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("(recv) (("), TAG_Int(9)); /*new String*/
1751 variable[11] = variable[10];
1752 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
1753 variable[12] = CALL_compiling_base___MMLocalProperty___cname( variable[4] /*p*/)( variable[4] /*p*/) /*MMLocalProperty::cname*/;
1754 variable[13] = variable[12];
1755 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[13]) /*AbstractArray::add*/;
1756 variable[14] = NEW_String_string___String___with_native(BOX_NativeString("_t)CALL((recv), ("), TAG_Int(17)); /*new String*/
1757 variable[15] = variable[14];
1758 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[15]) /*AbstractArray::add*/;
1759 variable[16] = variable[2] /*value*/;
1760 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[16]) /*AbstractArray::add*/;
1761 variable[17] = NEW_String_string___String___with_native(BOX_NativeString(")))"), TAG_Int(3)); /*new String*/
1762 variable[18] = variable[17];
1763 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[18]) /*AbstractArray::add*/;
1764 variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
1765 CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_decl*/;
1766 return_label59: while(false);
1767 tracehead = trace.prev;
1768 return;
1769 }
1770 val_t compiling_global___TableEltSuper___compile_to_c(val_t self, val_t param0, val_t param1) {
1771 struct trace_t trace = {NULL, NULL, 613, LOCATE_compiling_global___TableEltSuper___compile_to_c};
1772 val_t variable[13];
1773 void **closurevariable = NULL;
1774 trace.prev = tracehead; tracehead = &trace;
1775 trace.file = LOCATE_compiling_global;
1776 variable[0] = self;
1777 variable[1] = param0;
1778 variable[2] = param1;
1779 variable[5] = variable[0];
1780 variable[5] = ATTR_compiling_global___TableEltProp____property(variable[5]) /*TableEltProp::_property*/;
1781 variable[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[5])(variable[5]) /*MMLocalProperty::local_class*/;
1782 variable[4] = variable[5];
1783 variable[6] = variable[0];
1784 variable[6] = ATTR_compiling_global___TableEltProp____property(variable[6]) /*TableEltProp::_property*/;
1785 variable[6] = CALL_abstractmetamodel___MMLocalProperty___global(variable[6])(variable[6]) /*MMLocalProperty::global*/;
1786 variable[5] = variable[6];
1787 variable[7] = CALL_abstractmetamodel___MMLocalClass___che( variable[2] /*c*/)( variable[2] /*c*/) /*MMLocalClass::che*/;
1788 variable[7] = CALL_partial_order___PartialOrderElement___linear_extension(variable[7])(variable[7]) /*PartialOrderElement::linear_extension*/;
1789 variable[6] = variable[7];
1790 variable[7] = TAG_Bool(false);
1791 variable[8] = CALL_abstract_collection___Collection___iterator( variable[6] /*lin*/)( variable[6] /*lin*/) /*AbstractArray::iterator*/;
1792 while (true) { /*for*/
1793 variable[9] = CALL_abstract_collection___Iterator___is_ok(variable[8])(variable[8]) /*ArrayIterator::is_ok*/;
1794 if (!UNTAG_Bool(variable[9])) break; /*for*/
1795 variable[9] = CALL_abstract_collection___Iterator___item(variable[8])(variable[8]) /*ArrayIterator::item*/;
1796 variable[10] = variable[9];
1797 variable[11] = TAG_Bool(( variable[10] /*s*/ == variable[4] /*pc*/) || (( variable[10] /*s*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*s*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*s*/, variable[4] /*pc*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*s*/)( variable[10] /*s*/, variable[4] /*pc*/) /*Object::==*/)))));
1798 if (UNTAG_Bool(variable[11])) { /*if*/
1799 variable[7] = TAG_Bool(true) /*found=*/;
1800 } else { /*if*/
1801 variable[11] = variable[7] /*found*/;
1802 if (UNTAG_Bool(variable[11])) { /* and */
1803 variable[11] = CALL_abstractmetamodel___MMLocalClass___che( variable[2] /*c*/)( variable[2] /*c*/) /*MMLocalClass::che*/;
1804 variable[11] = CALL_partial_order___PartialOrderElement_____l(variable[11])(variable[11], variable[10] /*s*/) /*PartialOrderElement::<*/;
1805 }
1806 if (UNTAG_Bool(variable[11])) { /*if*/
1807 variable[12] = CALL_abstractmetamodel___MMLocalClass_____bra( variable[10] /*s*/)( variable[10] /*s*/, variable[5] /*g*/) /*MMLocalClass::[]*/;
1808 variable[11] = variable[12];
1809 variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*p*/ == NIT_NULL /*null*/) || (( variable[11] /*p*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*p*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*p*/)( variable[11] /*p*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1810 if (UNTAG_Bool(variable[12])) { /*if*/
1811 variable[12] = CALL_compiling_base___MMLocalProperty___cname( variable[11] /*p*/)( variable[11] /*p*/) /*MMLocalProperty::cname*/;
1812 variable[3] = variable[12];
1813 goto return_label60;
1814 }
1815 }
1816 }
1817 continue_61: while(0);
1818 CALL_abstract_collection___Iterator___next(variable[8])(variable[8]) /*ArrayIterator::next*/;
1819 }
1820 break_61: while(0);
1821 if (!UNTAG_Bool( TAG_Bool(false))) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___TableEltSuper___compile_to_c, LOCATE_compiling_global, 631); nit_exit(1);}
1822 variable[3] = NIT_NULL /*null*/;
1823 goto return_label60;
1824 return_label60: while(false);
1825 tracehead = trace.prev;
1826 return variable[3];
1827 }
1828 void compiling_global___TableEltAttr___compile_macros(val_t self, val_t param0, val_t param1) {
1829 struct trace_t trace = {NULL, NULL, 639, LOCATE_compiling_global___TableEltAttr___compile_macros};
1830 val_t variable[15];
1831 void **closurevariable = NULL;
1832 trace.prev = tracehead; tracehead = &trace;
1833 trace.file = LOCATE_compiling_global;
1834 variable[0] = self;
1835 variable[1] = param0;
1836 variable[2] = param1;
1837 variable[5] = variable[0];
1838 variable[5] = ATTR_compiling_global___TableEltProp____property(variable[5]) /*TableEltProp::_property*/;
1839 variable[5] = CALL_abstractmetamodel___MMLocalProperty___global(variable[5])(variable[5]) /*MMLocalProperty::global*/;
1840 variable[4] = variable[5];
1841 variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
1842 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)); /*new String*/
1843 variable[7] = variable[6];
1844 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
1845 variable[8] = CALL_compiling_base___MMGlobalProperty___attr_access( variable[4] /*pg*/)( variable[4] /*pg*/) /*MMGlobalProperty::attr_access*/;
1846 variable[9] = variable[8];
1847 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
1848 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("(recv) ATTR(recv, ("), TAG_Int(19)); /*new String*/
1849 variable[11] = variable[10];
1850 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
1851 variable[12] = variable[2] /*value*/;
1852 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[12]) /*AbstractArray::add*/;
1853 variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
1854 variable[14] = variable[13];
1855 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[14]) /*AbstractArray::add*/;
1856 variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
1857 CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_decl*/;
1858 return_label62: while(false);
1859 tracehead = trace.prev;
1860 return;
1861 }
1862 val_t compiling_global___TableEltAttr___compile_to_c(val_t self, val_t param0, val_t param1) {
1863 struct trace_t trace = {NULL, NULL, 645, LOCATE_compiling_global___TableEltAttr___compile_to_c};
1864 val_t variable[19];
1865 void **closurevariable = NULL;
1866 trace.prev = tracehead; tracehead = &trace;
1867 trace.file = LOCATE_compiling_global;
1868 variable[0] = self;
1869 variable[1] = param0;
1870 variable[2] = param1;
1871 variable[5] = CALL_compiling_global___CompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
1872 variable[4] = variable[5];
1873 variable[6] = variable[0];
1874 variable[6] = ATTR_compiling_global___TableEltProp____property(variable[6]) /*TableEltProp::_property*/;
1875 variable[6] = CALL_abstractmetamodel___MMLocalProperty___global(variable[6])(variable[6]) /*MMLocalProperty::global*/;
1876 variable[6] = CALL_abstractmetamodel___MMLocalClass_____bra( variable[2] /*c*/)( variable[2] /*c*/, variable[6]) /*MMLocalClass::[]*/;
1877 variable[5] = variable[6];
1878 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
1879 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("/* "), TAG_Int(3)); /*new String*/
1880 variable[8] = variable[7];
1881 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
1882 variable[9] = variable[0];
1883 variable[9] = CALL_compiling_global___ColorContext___color( variable[4] /*ga*/)( variable[4] /*ga*/, variable[9]) /*ColorContext::color*/;
1884 variable[10] = variable[9];
1885 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
1886 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
1887 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(": Attribute "), TAG_Int(12)); /*new String*/
1888 variable[12] = variable[11];
1889 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
1890 variable[13] = variable[2] /*c*/;
1891 variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
1892 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[13]) /*AbstractArray::add*/;
1893 variable[14] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
1894 variable[15] = variable[14];
1895 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[15]) /*AbstractArray::add*/;
1896 variable[16] = variable[5] /*p*/;
1897 variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/;
1898 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[16]) /*AbstractArray::add*/;
1899 variable[17] = NEW_String_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/
1900 variable[18] = variable[17];
1901 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[18]) /*AbstractArray::add*/;
1902 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
1903 variable[3] = variable[6];
1904 goto return_label63;
1905 return_label63: while(false);
1906 tracehead = trace.prev;
1907 return variable[3];
1908 }
1909 void compiling_global___AbsTableEltClass___compile_macros(val_t self, val_t param0, val_t param1) {
1910 struct trace_t trace = {NULL, NULL, 667, LOCATE_compiling_global___AbsTableEltClass___compile_macros};
1911 val_t variable[14];
1912 void **closurevariable = NULL;
1913 trace.prev = tracehead; tracehead = &trace;
1914 trace.file = LOCATE_compiling_global;
1915 variable[0] = self;
1916 variable[1] = param0;
1917 variable[2] = param1;
1918 variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
1919 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)); /*new String*/
1920 variable[6] = variable[5];
1921 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
1922 variable[7] = variable[0];
1923 variable[7] = CALL_compiling_global___AbsTableEltClass___symbol(variable[7])(variable[7]) /*AbsTableEltClass::symbol*/;
1924 variable[8] = variable[7];
1925 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
1926 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" ("), TAG_Int(2)); /*new String*/
1927 variable[10] = variable[9];
1928 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
1929 variable[11] = variable[2] /*value*/;
1930 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[11]) /*AbstractArray::add*/;
1931 variable[12] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
1932 variable[13] = variable[12];
1933 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[13]) /*AbstractArray::add*/;
1934 variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
1935 CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_decl*/;
1936 return_label64: while(false);
1937 tracehead = trace.prev;
1938 return;
1939 }
1940 void compiling_global___AbsTableEltClass___init(val_t self, val_t param0, int* init_table) {
1941 struct trace_t trace = {NULL, NULL, 659, LOCATE_compiling_global___AbsTableEltClass___init};
1942 val_t variable[4];
1943 void **closurevariable = NULL;
1944 trace.prev = tracehead; tracehead = &trace;
1945 trace.file = LOCATE_compiling_global;
1946 variable[0] = self;
1947 variable[1] = param0;
1948 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AbsTableEltClass].i]) return;
1949 variable[3] = variable[0];
1950 ATTR_compiling_global___AbsTableEltClass____local_class(variable[3]) /*AbsTableEltClass::_local_class*/ = variable[1] /*c*/;
1951 return_label65: while(false);
1952 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AbsTableEltClass].i] = 1;
1953 tracehead = trace.prev;
1954 return;
1955 }
1956 val_t compiling_global___AbsTableEltClass___symbol(val_t self) {
1957 struct trace_t trace = {NULL, NULL, 664, LOCATE_compiling_global___AbsTableEltClass___symbol};
1958 val_t *variable = NULL;
1959 void **closurevariable = NULL;
1960 trace.prev = tracehead; tracehead = &trace;
1961 trace.file = LOCATE_compiling_global;
1962 fprintf(stderr, "Deferred method called");
1963 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 664);
1964 nit_exit(1);
1965 tracehead = trace.prev;
1966 return NIT_NULL;
1967 }
1968 val_t compiling_global___TableEltClass___is_related_to(val_t self, val_t param0) {
1969 struct trace_t trace = {NULL, NULL, 677, LOCATE_compiling_global___TableEltClass___is_related_to};
1970 val_t variable[6];
1971 void **closurevariable = NULL;
1972 trace.prev = tracehead; tracehead = &trace;
1973 trace.file = LOCATE_compiling_global;
1974 variable[0] = self;
1975 variable[1] = param0;
1976 variable[4] = CALL_abstractmetamodel___MMLocalClass___module( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::module*/;
1977 variable[5] = variable[0];
1978 variable[5] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[5]) /*AbsTableEltClass::_local_class*/;
1979 variable[5] = CALL_abstractmetamodel___MMLocalClass___global(variable[5])(variable[5]) /*MMLocalClass::global*/;
1980 variable[4] = CALL_abstractmetamodel___MMModule_____bra(variable[4])(variable[4], variable[5]) /*MMModule::[]*/;
1981 variable[3] = variable[4];
1982 variable[4] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::cshe*/;
1983 variable[4] = CALL_partial_order___PartialOrderElement_____leq(variable[4])(variable[4], variable[3] /*bc*/) /*PartialOrderElement::<=*/;
1984 variable[2] = variable[4];
1985 goto return_label66;
1986 return_label66: while(false);
1987 tracehead = trace.prev;
1988 return variable[2];
1989 }
1990 val_t compiling_global___TableEltClassId___value(val_t self, val_t param0) {
1991 struct trace_t trace = {NULL, NULL, 690, LOCATE_compiling_global___TableEltClassId___value};
1992 val_t variable[14];
1993 void **closurevariable = NULL;
1994 trace.prev = tracehead; tracehead = &trace;
1995 trace.file = LOCATE_compiling_global;
1996 variable[0] = self;
1997 variable[1] = param0;
1998 variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
1999 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
2000 variable[5] = variable[4];
2001 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
2002 variable[6] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[1] /*ga*/)( variable[1] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
2003 variable[7] = variable[0];
2004 variable[7] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[7]) /*AbsTableEltClass::_local_class*/;
2005 variable[7] = CALL_abstractmetamodel___MMLocalClass___global(variable[7])(variable[7]) /*MMLocalClass::global*/;
2006 variable[6] = CALL_abstract_collection___Map_____bra(variable[6])(variable[6], variable[7]) /*CoupleMap::[]*/;
2007 variable[6] = CALL_compiling_global___CompiledClass___id(variable[6])(variable[6]) /*CompiledClass::id*/;
2008 variable[7] = variable[6];
2009 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
2010 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
2011 variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" /* Id of "), TAG_Int(10)); /*new String*/
2012 variable[9] = variable[8];
2013 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
2014 variable[10] = variable[0];
2015 variable[10] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[10]) /*AbsTableEltClass::_local_class*/;
2016 variable[11] = variable[10];
2017 variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
2018 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[11]) /*AbstractArray::add*/;
2019 variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/
2020 variable[13] = variable[12];
2021 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[13]) /*AbstractArray::add*/;
2022 variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
2023 variable[2] = variable[3];
2024 goto return_label67;
2025 return_label67: while(false);
2026 tracehead = trace.prev;
2027 return variable[2];
2028 }
2029 val_t compiling_global___TableEltClassId___symbol(val_t self) {
2030 struct trace_t trace = {NULL, NULL, 688, LOCATE_compiling_global___TableEltClassId___symbol};
2031 val_t variable[3];
2032 void **closurevariable = NULL;
2033 trace.prev = tracehead; tracehead = &trace;
2034 trace.file = LOCATE_compiling_global;
2035 variable[0] = self;
2036 variable[2] = variable[0];
2037 variable[2] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[2]) /*AbsTableEltClass::_local_class*/;
2038 variable[2] = CALL_abstractmetamodel___MMLocalClass___global(variable[2])(variable[2]) /*MMLocalClass::global*/;
2039 variable[2] = CALL_compiling_base___MMGlobalClass___id_id(variable[2])(variable[2]) /*MMGlobalClass::id_id*/;
2040 variable[1] = variable[2];
2041 goto return_label68;
2042 return_label68: while(false);
2043 tracehead = trace.prev;
2044 return variable[1];
2045 }
2046 val_t compiling_global___TableEltClassInitTable___compile_to_c(val_t self, val_t param0, val_t param1) {
2047 struct trace_t trace = {NULL, NULL, 701, LOCATE_compiling_global___TableEltClassInitTable___compile_to_c};
2048 val_t variable[25];
2049 void **closurevariable = NULL;
2050 trace.prev = tracehead; tracehead = &trace;
2051 trace.file = LOCATE_compiling_global;
2052 variable[0] = self;
2053 variable[1] = param0;
2054 variable[2] = param1;
2055 variable[5] = CALL_compiling_global___CompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
2056 variable[4] = variable[5];
2057 variable[6] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[4] /*ga*/)( variable[4] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
2058 variable[7] = variable[0];
2059 variable[7] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[7]) /*AbsTableEltClass::_local_class*/;
2060 variable[7] = CALL_abstractmetamodel___MMLocalClass___global(variable[7])(variable[7]) /*MMLocalClass::global*/;
2061 variable[6] = CALL_abstract_collection___Map_____bra(variable[6])(variable[6], variable[7]) /*CoupleMap::[]*/;
2062 variable[5] = variable[6];
2063 variable[7] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[2] /*c*/)( variable[2] /*c*/) /*MMLocalClass::cshe*/;
2064 variable[7] = CALL_partial_order___PartialOrderElement___reverse_linear_extension(variable[7])(variable[7]) /*PartialOrderElement::reverse_linear_extension*/;
2065 variable[6] = variable[7];
2066 variable[7] = TAG_Int(0);
2067 while (true) { /*while*/
2068 variable[8] = variable[6] /*linext*/;
2069 variable[9] = variable[7] /*i*/;
2070 variable[11] = TAG_Bool(UNTAG_Int( variable[9] /*index*/)>=UNTAG_Int( TAG_Int(0)));
2071 variable[12] = variable[11];
2072 if (UNTAG_Bool(variable[12])) { /* and */
2073 variable[12] = variable[8];
2074 variable[12] = ATTR_array___AbstractArray____length(variable[12]) /*AbstractArray::_length*/;
2075 variable[12] = TAG_Bool(UNTAG_Int( variable[9] /*index*/)<UNTAG_Int(variable[12]));
2076 }
2077 variable[11] = variable[12];
2078 if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_global, 229); nit_exit(1);}
2079 variable[11] = variable[8];
2080 variable[11] = ATTR_array___Array____items(variable[11]) /*Array::_items*/;
2081 variable[11] = UNBOX_NativeArray(variable[11])[UNTAG_Int( variable[9] /*index*/)];
2082 variable[10] = variable[11];
2083 goto return_label71;
2084 return_label71: while(false);
2085 variable[8] = variable[10];
2086 variable[8] = CALL_abstractmetamodel___MMLocalClass___global(variable[8])(variable[8]) /*MMLocalClass::global*/;
2087 variable[9] = variable[0];
2088 variable[9] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[9]) /*AbsTableEltClass::_local_class*/;
2089 variable[9] = CALL_abstractmetamodel___MMLocalClass___global(variable[9])(variable[9]) /*MMLocalClass::global*/;
2090 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] == variable[9]) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8],variable[9])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8], variable[9]) /*Object::==*/)))))));
2091 if (!UNTAG_Bool(variable[8])) break; /* while*/
2092 variable[7] = TAG_Int(UNTAG_Int(variable[7])+UNTAG_Int( TAG_Int(1))) /*i*/;
2093 continue_70: while(0);
2094 }
2095 break_70: while(0);
2096 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[String]*/
2097 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
2098 variable[10] = variable[9];
2099 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
2100 variable[11] = variable[7] /*i*/;
2101 variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
2102 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[11]) /*AbstractArray::add*/;
2103 variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" /* "), TAG_Int(4)); /*new String*/
2104 variable[13] = variable[12];
2105 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
2106 variable[14] = variable[0];
2107 variable[14] = CALL_compiling_global___ColorContext___color( variable[4] /*ga*/)( variable[4] /*ga*/, variable[14]) /*ColorContext::color*/;
2108 variable[15] = variable[14];
2109 variable[15] = CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/;
2110 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[15]) /*AbstractArray::add*/;
2111 variable[16] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
2112 variable[17] = variable[16];
2113 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[17]) /*AbstractArray::add*/;
2114 variable[18] = variable[2] /*c*/;
2115 variable[18] = CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/;
2116 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
2117 variable[19] = NEW_String_string___String___with_native(BOX_NativeString(" < "), TAG_Int(3)); /*new String*/
2118 variable[20] = variable[19];
2119 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[20]) /*AbstractArray::add*/;
2120 variable[21] = CALL_compiling_global___CompiledClass___local_class( variable[5] /*cc*/)( variable[5] /*cc*/) /*CompiledClass::local_class*/;
2121 variable[22] = variable[21];
2122 variable[22] = CALL_string___Object___to_s(variable[22])(variable[22]) /*Object::to_s*/;
2123 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[22]) /*AbstractArray::add*/;
2124 variable[23] = NEW_String_string___String___with_native(BOX_NativeString(": superclass init_table position */"), TAG_Int(35)); /*new String*/
2125 variable[24] = variable[23];
2126 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[24]) /*AbstractArray::add*/;
2127 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
2128 variable[3] = variable[8];
2129 goto return_label69;
2130 return_label69: while(false);
2131 tracehead = trace.prev;
2132 return variable[3];
2133 }
2134 val_t compiling_global___TableEltClassInitTable___symbol(val_t self) {
2135 struct trace_t trace = {NULL, NULL, 699, LOCATE_compiling_global___TableEltClassInitTable___symbol};
2136 val_t variable[3];
2137 void **closurevariable = NULL;
2138 trace.prev = tracehead; tracehead = &trace;
2139 trace.file = LOCATE_compiling_global;
2140 variable[0] = self;
2141 variable[2] = variable[0];
2142 variable[2] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[2]) /*AbsTableEltClass::_local_class*/;
2143 variable[2] = CALL_abstractmetamodel___MMLocalClass___global(variable[2])(variable[2]) /*MMLocalClass::global*/;
2144 variable[2] = CALL_compiling_base___MMGlobalClass___init_table_pos_id(variable[2])(variable[2]) /*MMGlobalClass::init_table_pos_id*/;
2145 variable[1] = variable[2];
2146 goto return_label72;
2147 return_label72: while(false);
2148 tracehead = trace.prev;
2149 return variable[1];
2150 }
2151 val_t compiling_global___TableEltClassColor___compile_to_c(val_t self, val_t param0, val_t param1) {
2152 struct trace_t trace = {NULL, NULL, 728, LOCATE_compiling_global___TableEltClassColor___compile_to_c};
2153 val_t variable[24];
2154 void **closurevariable = NULL;
2155 trace.prev = tracehead; tracehead = &trace;
2156 trace.file = LOCATE_compiling_global;
2157 variable[0] = self;
2158 variable[1] = param0;
2159 variable[2] = param1;
2160 variable[5] = CALL_compiling_global___CompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
2161 variable[4] = variable[5];
2162 variable[6] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[4] /*ga*/)( variable[4] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
2163 variable[7] = variable[0];
2164 variable[7] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[7]) /*AbsTableEltClass::_local_class*/;
2165 variable[7] = CALL_abstractmetamodel___MMLocalClass___global(variable[7])(variable[7]) /*MMLocalClass::global*/;
2166 variable[6] = CALL_abstract_collection___Map_____bra(variable[6])(variable[6], variable[7]) /*CoupleMap::[]*/;
2167 variable[5] = variable[6];
2168 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[String]*/
2169 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
2170 variable[8] = variable[7];
2171 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
2172 variable[9] = CALL_compiling_global___CompiledClass___id( variable[5] /*cc*/)( variable[5] /*cc*/) /*CompiledClass::id*/;
2173 variable[10] = variable[9];
2174 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
2175 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
2176 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" /* "), TAG_Int(4)); /*new String*/
2177 variable[12] = variable[11];
2178 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
2179 variable[13] = variable[0];
2180 variable[13] = CALL_compiling_global___ColorContext___color( variable[4] /*ga*/)( variable[4] /*ga*/, variable[13]) /*ColorContext::color*/;
2181 variable[14] = variable[13];
2182 variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
2183 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[14]) /*AbstractArray::add*/;
2184 variable[15] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
2185 variable[16] = variable[15];
2186 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[16]) /*AbstractArray::add*/;
2187 variable[17] = variable[2] /*c*/;
2188 variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/;
2189 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[17]) /*AbstractArray::add*/;
2190 variable[18] = NEW_String_string___String___with_native(BOX_NativeString(" < "), TAG_Int(3)); /*new String*/
2191 variable[19] = variable[18];
2192 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[19]) /*AbstractArray::add*/;
2193 variable[20] = CALL_compiling_global___CompiledClass___local_class( variable[5] /*cc*/)( variable[5] /*cc*/) /*CompiledClass::local_class*/;
2194 variable[21] = variable[20];
2195 variable[21] = CALL_string___Object___to_s(variable[21])(variable[21]) /*Object::to_s*/;
2196 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[21]) /*AbstractArray::add*/;
2197 variable[22] = NEW_String_string___String___with_native(BOX_NativeString(": superclass typecheck marker */"), TAG_Int(32)); /*new String*/
2198 variable[23] = variable[22];
2199 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[23]) /*AbstractArray::add*/;
2200 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
2201 variable[3] = variable[6];
2202 goto return_label73;
2203 return_label73: while(false);
2204 tracehead = trace.prev;
2205 return variable[3];
2206 }
2207 val_t compiling_global___TableEltClassColor___symbol(val_t self) {
2208 struct trace_t trace = {NULL, NULL, 721, LOCATE_compiling_global___TableEltClassColor___symbol};
2209 val_t variable[3];
2210 void **closurevariable = NULL;
2211 trace.prev = tracehead; tracehead = &trace;
2212 trace.file = LOCATE_compiling_global;
2213 variable[0] = self;
2214 variable[2] = variable[0];
2215 variable[2] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[2]) /*AbsTableEltClass::_local_class*/;
2216 variable[2] = CALL_abstractmetamodel___MMLocalClass___global(variable[2])(variable[2]) /*MMLocalClass::global*/;
2217 variable[2] = CALL_compiling_base___MMGlobalClass___color_id(variable[2])(variable[2]) /*MMGlobalClass::color_id*/;
2218 variable[1] = variable[2];
2219 goto return_label74;
2220 return_label74: while(false);
2221 tracehead = trace.prev;
2222 return variable[1];
2223 }
2224 val_t compiling_global___TableEltClassColor___value(val_t self, val_t param0) {
2225 struct trace_t trace = {NULL, NULL, 723, LOCATE_compiling_global___TableEltClassColor___value};
2226 val_t variable[14];
2227 void **closurevariable = NULL;
2228 trace.prev = tracehead; tracehead = &trace;
2229 trace.file = LOCATE_compiling_global;
2230 variable[0] = self;
2231 variable[1] = param0;
2232 variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
2233 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
2234 variable[5] = variable[4];
2235 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
2236 variable[6] = variable[0];
2237 variable[6] = CALL_compiling_global___ColorContext___color( variable[1] /*ga*/)( variable[1] /*ga*/, variable[6]) /*ColorContext::color*/;
2238 variable[7] = variable[6];
2239 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
2240 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
2241 variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" /* Color of "), TAG_Int(13)); /*new String*/
2242 variable[9] = variable[8];
2243 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
2244 variable[10] = variable[0];
2245 variable[10] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[10]) /*AbsTableEltClass::_local_class*/;
2246 variable[11] = variable[10];
2247 variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
2248 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[11]) /*AbstractArray::add*/;
2249 variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/
2250 variable[13] = variable[12];
2251 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[13]) /*AbstractArray::add*/;
2252 variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
2253 variable[2] = variable[3];
2254 goto return_label75;
2255 return_label75: while(false);
2256 tracehead = trace.prev;
2257 return variable[2];
2258 }
2259 val_t compiling_global___TableEltComposite___is_related_to(val_t self, val_t param0) {
2260 struct trace_t trace = {NULL, NULL, 743, LOCATE_compiling_global___TableEltComposite___is_related_to};
2261 val_t variable[5];
2262 void **closurevariable = NULL;
2263 trace.prev = tracehead; tracehead = &trace;
2264 trace.file = LOCATE_compiling_global;
2265 variable[0] = self;
2266 variable[1] = param0;
2267 variable[3] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::cshe*/;
2268 variable[4] = variable[0];
2269 variable[4] = ATTR_compiling_global___TableEltComposite____cc(variable[4]) /*TableEltComposite::_cc*/;
2270 variable[4] = CALL_compiling_global___CompiledClass___local_class(variable[4])(variable[4]) /*CompiledClass::local_class*/;
2271 variable[3] = CALL_partial_order___PartialOrderElement_____leq(variable[3])(variable[3], variable[4]) /*PartialOrderElement::<=*/;
2272 variable[2] = variable[3];
2273 goto return_label76;
2274 return_label76: while(false);
2275 tracehead = trace.prev;
2276 return variable[2];
2277 }
2278 val_t compiling_global___TableEltComposite___length(val_t self) {
2279 struct trace_t trace = {NULL, NULL, 742, LOCATE_compiling_global___TableEltComposite___length};
2280 val_t variable[3];
2281 void **closurevariable = NULL;
2282 trace.prev = tracehead; tracehead = &trace;
2283 trace.file = LOCATE_compiling_global;
2284 variable[0] = self;
2285 variable[2] = variable[0];
2286 variable[2] = ATTR_compiling_global___TableEltComposite____table(variable[2]) /*TableEltComposite::_table*/;
2287 variable[2] = CALL_abstract_collection___Collection___length(variable[2])(variable[2]) /*AbstractArray::length*/;
2288 variable[1] = variable[2];
2289 goto return_label77;
2290 return_label77: while(false);
2291 tracehead = trace.prev;
2292 return variable[1];
2293 }
2294 val_t compiling_global___TableEltComposite___item(val_t self, val_t param0) {
2295 struct trace_t trace = {NULL, NULL, 751, LOCATE_compiling_global___TableEltComposite___item};
2296 val_t variable[9];
2297 void **closurevariable = NULL;
2298 trace.prev = tracehead; tracehead = &trace;
2299 trace.file = LOCATE_compiling_global;
2300 variable[0] = self;
2301 variable[1] = param0;
2302 variable[3] = variable[0];
2303 variable[3] = ATTR_compiling_global___TableEltComposite____table(variable[3]) /*TableEltComposite::_table*/;
2304 variable[4] = variable[3];
2305 variable[5] = variable[1] /*i*/;
2306 variable[7] = TAG_Bool(UNTAG_Int( variable[5] /*index*/)>=UNTAG_Int( TAG_Int(0)));
2307 variable[8] = variable[7];
2308 if (UNTAG_Bool(variable[8])) { /* and */
2309 variable[8] = variable[4];
2310 variable[8] = ATTR_array___AbstractArray____length(variable[8]) /*AbstractArray::_length*/;
2311 variable[8] = TAG_Bool(UNTAG_Int( variable[5] /*index*/)<UNTAG_Int(variable[8]));
2312 }
2313 variable[7] = variable[8];
2314 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_global, 229); nit_exit(1);}
2315 variable[7] = variable[4];
2316 variable[7] = ATTR_array___Array____items(variable[7]) /*Array::_items*/;
2317 variable[7] = UNBOX_NativeArray(variable[7])[UNTAG_Int( variable[5] /*index*/)];
2318 variable[6] = variable[7];
2319 goto return_label79;
2320 return_label79: while(false);
2321 variable[3] = variable[6];
2322 variable[2] = variable[3];
2323 goto return_label78;
2324 return_label78: while(false);
2325 tracehead = trace.prev;
2326 return variable[2];
2327 }
2328 val_t compiling_global___TableEltComposite___compile_to_c(val_t self, val_t param0, val_t param1) {
2329 struct trace_t trace = {NULL, NULL, 753, LOCATE_compiling_global___TableEltComposite___compile_to_c};
2330 val_t variable[4];
2331 void **closurevariable = NULL;
2332 trace.prev = tracehead; tracehead = &trace;
2333 trace.file = LOCATE_compiling_global;
2334 variable[0] = self;
2335 variable[1] = param0;
2336 variable[2] = param1;
2337 fprintf(stderr, "Aborted"); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___TableEltComposite___compile_to_c, LOCATE_compiling_global, 753); nit_exit(1);
2338 return_label80: while(false);
2339 tracehead = trace.prev;
2340 return variable[3];
2341 }
2342 void compiling_global___TableEltComposite___add(val_t self, val_t param0, val_t param1) {
2343 struct trace_t trace = {NULL, NULL, 745, LOCATE_compiling_global___TableEltComposite___add};
2344 val_t variable[6];
2345 void **closurevariable = NULL;
2346 trace.prev = tracehead; tracehead = &trace;
2347 trace.file = LOCATE_compiling_global;
2348 variable[0] = self;
2349 variable[1] = param0;
2350 variable[2] = param1;
2351 variable[4] = variable[0];
2352 variable[4] = ATTR_compiling_global___TableEltComposite____offsets(variable[4]) /*TableEltComposite::_offsets*/;
2353 variable[5] = variable[0];
2354 variable[5] = ATTR_compiling_global___TableEltComposite____table(variable[5]) /*TableEltComposite::_table*/;
2355 variable[5] = CALL_abstract_collection___Collection___length(variable[5])(variable[5]) /*AbstractArray::length*/;
2356 CALL_abstract_collection___Map_____braeq(variable[4])(variable[4], variable[1] /*c*/, variable[5]) /*HashMap::[]=*/;
2357 variable[4] = variable[0];
2358 variable[4] = ATTR_compiling_global___TableEltComposite____table(variable[4]) /*TableEltComposite::_table*/;
2359 CALL_abstract_collection___IndexedCollection___append(variable[4])(variable[4], variable[2] /*tab*/) /*IndexedCollection::append*/;
2360 return_label81: while(false);
2361 tracehead = trace.prev;
2362 return;
2363 }
2364 void compiling_global___TableEltComposite___init(val_t self, val_t param0, int* init_table) {
2365 struct trace_t trace = {NULL, NULL, 755, LOCATE_compiling_global___TableEltComposite___init};
2366 val_t variable[5];
2367 void **closurevariable = NULL;
2368 trace.prev = tracehead; tracehead = &trace;
2369 trace.file = LOCATE_compiling_global;
2370 variable[0] = self;
2371 variable[1] = param0;
2372 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltComposite].i]) return;
2373 variable[3] = variable[0];
2374 ATTR_compiling_global___TableEltComposite____cc(variable[3]) /*TableEltComposite::_cc*/ = variable[1] /*cc*/;
2375 variable[3] = variable[0];
2376 variable[4] = NEW_Array_array___Array___init(); /*new Array[TableElt]*/
2377 ATTR_compiling_global___TableEltComposite____table(variable[3]) /*TableEltComposite::_table*/ = variable[4];
2378 variable[3] = variable[0];
2379 variable[4] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[MMLocalClass, Int]*/
2380 ATTR_compiling_global___TableEltComposite____offsets(variable[3]) /*TableEltComposite::_offsets*/ = variable[4];
2381 return_label82: while(false);
2382 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltComposite].i] = 1;
2383 tracehead = trace.prev;
2384 return;
2385 }
2386 val_t compiling_global___TableEltClassSelfId___is_related_to(val_t self, val_t param0) {
2387 struct trace_t trace = {NULL, NULL, 766, LOCATE_compiling_global___TableEltClassSelfId___is_related_to};
2388 val_t variable[3];
2389 void **closurevariable = NULL;
2390 trace.prev = tracehead; tracehead = &trace;
2391 trace.file = LOCATE_compiling_global;
2392 variable[0] = self;
2393 variable[1] = param0;
2394 variable[2] = TAG_Bool(true);
2395 goto return_label83;
2396 return_label83: while(false);
2397 tracehead = trace.prev;
2398 return variable[2];
2399 }
2400 val_t compiling_global___TableEltClassSelfId___compile_to_c(val_t self, val_t param0, val_t param1) {
2401 struct trace_t trace = {NULL, NULL, 767, LOCATE_compiling_global___TableEltClassSelfId___compile_to_c};
2402 val_t variable[16];
2403 void **closurevariable = NULL;
2404 trace.prev = tracehead; tracehead = &trace;
2405 trace.file = LOCATE_compiling_global;
2406 variable[0] = self;
2407 variable[1] = param0;
2408 variable[2] = param1;
2409 variable[5] = CALL_compiling_global___CompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
2410 variable[4] = variable[5];
2411 variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
2412 variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
2413 variable[7] = variable[6];
2414 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
2415 variable[8] = CALL_compiling_global___CompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
2416 variable[8] = CALL_compiling_global___GlobalAnalysis___compiled_classes(variable[8])(variable[8]) /*GlobalAnalysis::compiled_classes*/;
2417 variable[9] = CALL_abstractmetamodel___MMLocalClass___global( variable[2] /*c*/)( variable[2] /*c*/) /*MMLocalClass::global*/;
2418 variable[8] = CALL_abstract_collection___Map_____bra(variable[8])(variable[8], variable[9]) /*CoupleMap::[]*/;
2419 variable[8] = CALL_compiling_global___CompiledClass___id(variable[8])(variable[8]) /*CompiledClass::id*/;
2420 variable[9] = variable[8];
2421 variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
2422 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
2423 variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" /* "), TAG_Int(4)); /*new String*/
2424 variable[11] = variable[10];
2425 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
2426 variable[12] = variable[0];
2427 variable[12] = CALL_compiling_global___ColorContext___color( variable[4] /*ga*/)( variable[4] /*ga*/, variable[12]) /*ColorContext::color*/;
2428 variable[13] = variable[12];
2429 variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
2430 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[13]) /*AbstractArray::add*/;
2431 variable[14] = NEW_String_string___String___with_native(BOX_NativeString(": Identity */"), TAG_Int(13)); /*new String*/
2432 variable[15] = variable[14];
2433 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[15]) /*AbstractArray::add*/;
2434 variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
2435 variable[3] = variable[5];
2436 goto return_label84;
2437 return_label84: while(false);
2438 tracehead = trace.prev;
2439 return variable[3];
2440 }
2441 val_t compiling_global___TableEltVftPointer___is_related_to(val_t self, val_t param0) {
2442 struct trace_t trace = {NULL, NULL, 777, LOCATE_compiling_global___TableEltVftPointer___is_related_to};
2443 val_t variable[3];
2444 void **closurevariable = NULL;
2445 trace.prev = tracehead; tracehead = &trace;
2446 trace.file = LOCATE_compiling_global;
2447 variable[0] = self;
2448 variable[1] = param0;
2449 variable[2] = TAG_Bool(true);
2450 goto return_label85;
2451 return_label85: while(false);
2452 tracehead = trace.prev;
2453 return variable[2];
2454 }
2455 val_t compiling_global___TableEltVftPointer___compile_to_c(val_t self, val_t param0, val_t param1) {
2456 struct trace_t trace = {NULL, NULL, 778, LOCATE_compiling_global___TableEltVftPointer___compile_to_c};
2457 val_t variable[12];
2458 void **closurevariable = NULL;
2459 trace.prev = tracehead; tracehead = &trace;
2460 trace.file = LOCATE_compiling_global;
2461 variable[0] = self;
2462 variable[1] = param0;
2463 variable[2] = param1;
2464 variable[5] = CALL_compiling_global___CompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
2465 variable[4] = variable[5];
2466 variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
2467 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("/* "), TAG_Int(3)); /*new String*/
2468 variable[7] = variable[6];
2469 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
2470 variable[8] = variable[0];
2471 variable[8] = CALL_compiling_global___ColorContext___color( variable[4] /*ga*/)( variable[4] /*ga*/, variable[8]) /*ColorContext::color*/;
2472 variable[9] = variable[8];
2473 variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
2474 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
2475 variable[10] = NEW_String_string___String___with_native(BOX_NativeString(": Pointer to the classtable */"), TAG_Int(30)); /*new String*/
2476 variable[11] = variable[10];
2477 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
2478 variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
2479 variable[3] = variable[5];
2480 goto return_label86;
2481 return_label86: while(false);
2482 tracehead = trace.prev;
2483 return variable[3];
2484 }
2485 val_t compiling_global___ClassSorter___compare(val_t self, val_t param0, val_t param1) {
2486 struct trace_t trace = {NULL, NULL, 791, LOCATE_compiling_global___ClassSorter___compare};
2487 val_t variable[5];
2488 void **closurevariable = NULL;
2489 trace.prev = tracehead; tracehead = &trace;
2490 trace.file = LOCATE_compiling_global;
2491 variable[0] = self;
2492 variable[1] = param0;
2493 variable[2] = param1;
2494 variable[4] = CALL_compiling_global___MMLocalClass___compare( variable[1] /*a*/)( variable[1] /*a*/, variable[2] /*b*/) /*MMLocalClass::compare*/;
2495 variable[3] = variable[4];
2496 goto return_label87;
2497 return_label87: while(false);
2498 tracehead = trace.prev;
2499 return variable[3];
2500 }
2501 void compiling_global___ClassSorter___init(val_t self, int* init_table) {
2502 struct trace_t trace = {NULL, NULL, 792, LOCATE_compiling_global___ClassSorter___init};
2503 val_t variable[2];
2504 void **closurevariable = NULL;
2505 trace.prev = tracehead; tracehead = &trace;
2506 trace.file = LOCATE_compiling_global;
2507 variable[0] = self;
2508 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassSorter].i]) return;
2509 return_label88: while(false);
2510 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassSorter].i] = 1;
2511 tracehead = trace.prev;
2512 return;
2513 }
2514 val_t compiling_global___MMLocalClass___compare(val_t self, val_t param0) {
2515 struct trace_t trace = {NULL, NULL, 796, LOCATE_compiling_global___MMLocalClass___compare};
2516 val_t variable[8];
2517 void **closurevariable = NULL;
2518 trace.prev = tracehead; tracehead = &trace;
2519 trace.file = LOCATE_compiling_global;
2520 variable[0] = self;
2521 variable[1] = param0;
2522 variable[4] = variable[0];
2523 variable[3] = variable[4];
2524 variable[4] = TAG_Bool(( variable[3] /*a*/ == variable[1] /*b*/) || (( variable[3] /*a*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*a*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*a*/, variable[1] /*b*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*a*/)( variable[3] /*a*/, variable[1] /*b*/) /*Object::==*/)))));
2525 if (UNTAG_Bool(variable[4])) { /*if*/
2526 variable[2] = TAG_Int(0);
2527 goto return_label89;
2528 } else { /*if*/
2529 variable[4] = CALL_abstractmetamodel___MMLocalClass___module( variable[3] /*a*/)( variable[3] /*a*/) /*MMLocalClass::module*/;
2530 variable[4] = CALL_abstractmetamodel___MMModule___mhe(variable[4])(variable[4]) /*MMModule::mhe*/;
2531 variable[5] = CALL_abstractmetamodel___MMLocalClass___module( variable[1] /*b*/)( variable[1] /*b*/) /*MMLocalClass::module*/;
2532 variable[4] = CALL_partial_order___PartialOrderElement_____l(variable[4])(variable[4], variable[5]) /*PartialOrderElement::<*/;
2533 if (UNTAG_Bool(variable[4])) { /*if*/
2534 variable[2] = TAG_Int(1);
2535 goto return_label89;
2536 } else { /*if*/
2537 variable[4] = CALL_abstractmetamodel___MMLocalClass___module( variable[1] /*b*/)( variable[1] /*b*/) /*MMLocalClass::module*/;
2538 variable[4] = CALL_abstractmetamodel___MMModule___mhe(variable[4])(variable[4]) /*MMModule::mhe*/;
2539 variable[5] = CALL_abstractmetamodel___MMLocalClass___module( variable[3] /*a*/)( variable[3] /*a*/) /*MMLocalClass::module*/;
2540 variable[4] = CALL_partial_order___PartialOrderElement_____l(variable[4])(variable[4], variable[5]) /*PartialOrderElement::<*/;
2541 if (UNTAG_Bool(variable[4])) { /*if*/
2542 variable[4] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
2543 variable[2] = variable[4];
2544 goto return_label89;
2545 }
2546 }
2547 }
2548 variable[5] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[3] /*a*/)( variable[3] /*a*/) /*MMLocalClass::cshe*/;
2549 variable[5] = CALL_partial_order___PartialOrderElement___rank(variable[5])(variable[5]) /*PartialOrderElement::rank*/;
2550 variable[4] = variable[5];
2551 variable[6] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[1] /*b*/)( variable[1] /*b*/) /*MMLocalClass::cshe*/;
2552 variable[6] = CALL_partial_order___PartialOrderElement___rank(variable[6])(variable[6]) /*PartialOrderElement::rank*/;
2553 variable[5] = variable[6];
2554 variable[6] = TAG_Bool(UNTAG_Int( variable[4] /*ar*/)>UNTAG_Int( variable[5] /*br*/));
2555 if (UNTAG_Bool(variable[6])) { /*if*/
2556 variable[2] = TAG_Int(1);
2557 goto return_label89;
2558 } else { /*if*/
2559 variable[6] = TAG_Bool(UNTAG_Int( variable[5] /*br*/)>UNTAG_Int( variable[4] /*ar*/));
2560 if (UNTAG_Bool(variable[6])) { /*if*/
2561 variable[6] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
2562 variable[2] = variable[6];
2563 goto return_label89;
2564 } else { /*if*/
2565 variable[6] = CALL_abstractmetamodel___MMLocalClass___name( variable[1] /*b*/)( variable[1] /*b*/) /*MMLocalClass::name*/;
2566 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Symbol::to_s*/;
2567 variable[7] = CALL_abstractmetamodel___MMLocalClass___name( variable[3] /*a*/)( variable[3] /*a*/) /*MMLocalClass::name*/;
2568 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Symbol::to_s*/;
2569 variable[6] = CALL_kernel___Comparable_____leqg(variable[6])(variable[6], variable[7]) /*Comparable::<=>*/;
2570 variable[2] = variable[6];
2571 goto return_label89;
2572 }
2573 }
2574 return_label89: while(false);
2575 tracehead = trace.prev;
2576 return variable[2];
2577 }
2578 void compiling_global___MMLocalClass___declare_tables_to_c(val_t self, val_t param0) {
2579 struct trace_t trace = {NULL, NULL, 818, LOCATE_compiling_global___MMLocalClass___declare_tables_to_c};
2580 val_t variable[16];
2581 void **closurevariable = NULL;
2582 trace.prev = tracehead; tracehead = &trace;
2583 trace.file = LOCATE_compiling_global;
2584 variable[0] = self;
2585 variable[1] = param0;
2586 variable[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
2587 CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_decl*/;
2588 variable[4] = variable[0];
2589 variable[4] = CALL_compiling_base___MMLocalClass___primitive_info(variable[4])(variable[4]) /*MMLocalClass::primitive_info*/;
2590 variable[3] = variable[4];
2591 variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
2592 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("extern const classtable_elt_t VFT_"), TAG_Int(34)); /*new String*/
2593 variable[6] = variable[5];
2594 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
2595 variable[7] = variable[0];
2596 variable[7] = CALL_abstractmetamodel___MMLocalClass___name(variable[7])(variable[7]) /*MMLocalClass::name*/;
2597 variable[8] = variable[7];
2598 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
2599 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
2600 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("[];"), TAG_Int(3)); /*new String*/
2601 variable[10] = variable[9];
2602 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
2603 variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
2604 CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_decl*/;
2605 variable[4] = TAG_Bool(( variable[3] /*pi*/ == NIT_NULL /*null*/) || (( variable[3] /*pi*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*pi*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*pi*/)( variable[3] /*pi*/, NIT_NULL /*null*/) /*Object::==*/)))));
2606 if (UNTAG_Bool(variable[4])) { /*if*/
2607 } else { /*if*/
2608 variable[4] = CALL_compiling_base___PrimitiveInfo___tagged( variable[3] /*pi*/)( variable[3] /*pi*/) /*PrimitiveInfo::tagged*/;
2609 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[4])))) { /*if*/
2610 variable[5] = CALL_compiling_base___PrimitiveInfo___cname( variable[3] /*pi*/)( variable[3] /*pi*/) /*PrimitiveInfo::cname*/;
2611 variable[4] = variable[5];
2612 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
2613 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("struct TBOX_"), TAG_Int(12)); /*new String*/
2614 variable[8] = variable[7];
2615 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
2616 variable[9] = variable[0];
2617 variable[9] = CALL_abstractmetamodel___MMLocalClass___name(variable[9])(variable[9]) /*MMLocalClass::name*/;
2618 variable[10] = variable[9];
2619 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
2620 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
2621 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
2622 variable[12] = variable[11];
2623 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
2624 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
2625 variable[5] = variable[6];
2626 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
2627 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
2628 variable[8] = variable[7];
2629 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
2630 variable[9] = variable[5] /*tbox*/;
2631 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[9]) /*AbstractArray::add*/;
2632 variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" { const classtable_elt_t * vft; "), TAG_Int(33)); /*new String*/
2633 variable[11] = variable[10];
2634 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[11]) /*AbstractArray::add*/;
2635 variable[12] = variable[4] /*t*/;
2636 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
2637 variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" val;};"), TAG_Int(7)); /*new String*/
2638 variable[14] = variable[13];
2639 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[14]) /*AbstractArray::add*/;
2640 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
2641 CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_decl*/;
2642 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
2643 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("val_t BOX_"), TAG_Int(10)); /*new String*/
2644 variable[8] = variable[7];
2645 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
2646 variable[9] = variable[0];
2647 variable[9] = CALL_abstractmetamodel___MMLocalClass___name(variable[9])(variable[9]) /*MMLocalClass::name*/;
2648 variable[10] = variable[9];
2649 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
2650 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
2651 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
2652 variable[12] = variable[11];
2653 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
2654 variable[13] = variable[4] /*t*/;
2655 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[13]) /*AbstractArray::add*/;
2656 variable[14] = NEW_String_string___String___with_native(BOX_NativeString(" val);"), TAG_Int(6)); /*new String*/
2657 variable[15] = variable[14];
2658 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[15]) /*AbstractArray::add*/;
2659 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
2660 CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_decl*/;
2661 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
2662 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("#define UNBOX_"), TAG_Int(14)); /*new String*/
2663 variable[8] = variable[7];
2664 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
2665 variable[9] = variable[0];
2666 variable[9] = CALL_abstractmetamodel___MMLocalClass___name(variable[9])(variable[9]) /*MMLocalClass::name*/;
2667 variable[10] = variable[9];
2668 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
2669 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
2670 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("(x) ((("), TAG_Int(7)); /*new String*/
2671 variable[12] = variable[11];
2672 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
2673 variable[13] = variable[5] /*tbox*/;
2674 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[13]) /*AbstractArray::add*/;
2675 variable[14] = NEW_String_string___String___with_native(BOX_NativeString(" *)(VAL2OBJ(x)))->val)"), TAG_Int(22)); /*new String*/
2676 variable[15] = variable[14];
2677 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[15]) /*AbstractArray::add*/;
2678 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
2679 CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_decl*/;
2680 }
2681 }
2682 return_label90: while(false);
2683 tracehead = trace.prev;
2684 return;
2685 }
2686 void compiling_global___MMLocalClass___compile_tables_to_c(val_t self, val_t param0) {
2687 struct trace_t trace = {NULL, NULL, 835, LOCATE_compiling_global___MMLocalClass___compile_tables_to_c};
2688 val_t variable[36];
2689 void **closurevariable = NULL;
2690 trace.prev = tracehead; tracehead = &trace;
2691 trace.file = LOCATE_compiling_global;
2692 variable[0] = self;
2693 variable[1] = param0;
2694 variable[4] = CALL_compiling_global___CompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
2695 variable[4] = CALL_compiling_global___GlobalAnalysis___compiled_classes(variable[4])(variable[4]) /*GlobalAnalysis::compiled_classes*/;
2696 variable[5] = variable[0];
2697 variable[5] = CALL_abstractmetamodel___MMLocalClass___global(variable[5])(variable[5]) /*MMLocalClass::global*/;
2698 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[5]) /*CoupleMap::[]*/;
2699 variable[3] = variable[4];
2700 variable[5] = CALL_compiling_global___CompiledClass___class_table( variable[3] /*cc*/)( variable[3] /*cc*/) /*CompiledClass::class_table*/;
2701 variable[4] = variable[5];
2702 variable[6] = CALL_abstract_collection___Collection___length( variable[4] /*ctab*/)( variable[4] /*ctab*/) /*AbstractArray::length*/;
2703 variable[5] = variable[6];
2704 variable[6] = CALL_compiling_global___CompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
2705 variable[6] = CALL_compiling_global___GlobalAnalysis___max_class_table_length(variable[6])(variable[6]) /*GlobalAnalysis::max_class_table_length*/;
2706 variable[7] = CALL_abstract_collection___Collection___length( variable[4] /*ctab*/)( variable[4] /*ctab*/) /*AbstractArray::length*/;
2707 variable[6] = TAG_Bool(UNTAG_Int(variable[6])>UNTAG_Int(variable[7]));
2708 if (UNTAG_Bool(variable[6])) { /*if*/
2709 variable[6] = CALL_compiling_global___CompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
2710 variable[6] = CALL_compiling_global___GlobalAnalysis___max_class_table_length(variable[6])(variable[6]) /*GlobalAnalysis::max_class_table_length*/;
2711 variable[5] = variable[6] /*clen=*/;
2712 }
2713 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
2714 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("const classtable_elt_t VFT_"), TAG_Int(27)); /*new String*/
2715 variable[8] = variable[7];
2716 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
2717 variable[9] = variable[0];
2718 variable[9] = CALL_abstractmetamodel___MMLocalClass___name(variable[9])(variable[9]) /*MMLocalClass::name*/;
2719 variable[10] = variable[9];
2720 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
2721 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
2722 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("["), TAG_Int(1)); /*new String*/
2723 variable[12] = variable[11];
2724 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
2725 variable[13] = variable[5] /*clen*/;
2726 variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
2727 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[13]) /*AbstractArray::add*/;
2728 variable[14] = NEW_String_string___String___with_native(BOX_NativeString("] = {"), TAG_Int(5)); /*new String*/
2729 variable[15] = variable[14];
2730 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[15]) /*AbstractArray::add*/;
2731 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
2732 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
2733 CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
2734 variable[6] = CALL_abstract_collection___Collection___iterator( variable[4] /*ctab*/)( variable[4] /*ctab*/) /*AbstractArray::iterator*/;
2735 while (true) { /*for*/
2736 variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
2737 if (!UNTAG_Bool(variable[7])) break; /*for*/
2738 variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/;
2739 variable[8] = variable[7];
2740 variable[9] = TAG_Bool(( variable[8] /*e*/ == NIT_NULL /*null*/) || (( variable[8] /*e*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*e*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*e*/)( variable[8] /*e*/, NIT_NULL /*null*/) /*Object::==*/)))));
2741 if (UNTAG_Bool(variable[9])) { /*if*/
2742 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("{0} /* Class Hole :( */,"), TAG_Int(24)); /*new String*/
2743 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
2744 } else { /*if*/
2745 variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
2746 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("{(bigint) "), TAG_Int(10)); /*new String*/
2747 variable[11] = variable[10];
2748 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
2749 variable[12] = variable[0];
2750 variable[12] = CALL_compiling_global___TableElt___compile_to_c( variable[8] /*e*/)( variable[8] /*e*/, variable[1] /*v*/, variable[12]) /*TableElt::compile_to_c*/;
2751 variable[13] = variable[12];
2752 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/;
2753 variable[14] = NEW_String_string___String___with_native(BOX_NativeString("},"), TAG_Int(2)); /*new String*/
2754 variable[15] = variable[14];
2755 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
2756 variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
2757 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
2758 }
2759 continue_92: while(0);
2760 CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
2761 }
2762 break_92: while(0);
2763 variable[6] = CALL_abstract_collection___Collection___length( variable[4] /*ctab*/)( variable[4] /*ctab*/) /*AbstractArray::length*/;
2764 variable[6] = TAG_Bool(UNTAG_Int( variable[5] /*clen*/)>UNTAG_Int(variable[6]));
2765 if (UNTAG_Bool(variable[6])) { /*if*/
2766 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("{0},"), TAG_Int(4)); /*new String*/
2767 variable[7] = CALL_abstract_collection___Collection___length( variable[4] /*ctab*/)( variable[4] /*ctab*/) /*AbstractArray::length*/;
2768 variable[7] = TAG_Int(UNTAG_Int( variable[5] /*clen*/)-UNTAG_Int(variable[7]));
2769 variable[6] = CALL_string___String_____star(variable[6])(variable[6], variable[7]) /*String::**/;
2770 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
2771 }
2772 CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
2773 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("};"), TAG_Int(2)); /*new String*/
2774 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
2775 variable[7] = CALL_compiling_global___CompiledClass___instance_table( variable[3] /*cc*/)( variable[3] /*cc*/) /*CompiledClass::instance_table*/;
2776 variable[6] = variable[7];
2777 variable[7] = CALL_abstract_collection___Collection___iterator( variable[6] /*itab*/)( variable[6] /*itab*/) /*AbstractArray::iterator*/;
2778 while (true) { /*for*/
2779 variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*ArrayIterator::is_ok*/;
2780 if (!UNTAG_Bool(variable[8])) break; /*for*/
2781 variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*ArrayIterator::item*/;
2782 variable[9] = variable[8];
2783 variable[10] = TAG_Bool(( variable[9] /*e*/ == NIT_NULL /*null*/) || (( variable[9] /*e*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*e*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*e*/)( variable[9] /*e*/, NIT_NULL /*null*/) /*Object::==*/)))));
2784 if (UNTAG_Bool(variable[10])) { /*if*/
2785 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("/* Instance Hole :( */"), TAG_Int(22)); /*new String*/
2786 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
2787 } else { /*if*/
2788 variable[10] = variable[0];
2789 variable[10] = CALL_compiling_global___TableElt___compile_to_c( variable[9] /*e*/)( variable[9] /*e*/, variable[1] /*v*/, variable[10]) /*TableElt::compile_to_c*/;
2790 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
2791 }
2792 continue_93: while(0);
2793 CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*ArrayIterator::next*/;
2794 }
2795 break_93: while(0);
2796 variable[8] = variable[0];
2797 variable[8] = CALL_compiling_base___MMLocalClass___primitive_info(variable[8])(variable[8]) /*MMLocalClass::primitive_info*/;
2798 variable[7] = variable[8];
2799 variable[8] = TAG_Bool(( variable[7] /*pi*/ == NIT_NULL /*null*/) || (( variable[7] /*pi*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*pi*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*pi*/)( variable[7] /*pi*/, NIT_NULL /*null*/) /*Object::==*/)))));
2800 if (UNTAG_Bool(variable[8])) { /*if*/
2801 variable[8] = NEW_CFunctionContext_compiling_methods___CFunctionContext___init( variable[1] /*v*/); /*new CFunctionContext*/
2802 CALL_compiling_methods___CompilerVisitor___cfc__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::cfc=*/;
2803 variable[8] = NEW_NitMethodContext_compiling_methods___NitMethodContext___init( NIT_NULL /*null*/); /*new NitMethodContext*/
2804 CALL_compiling_methods___CompilerVisitor___nmc__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::nmc=*/;
2805 variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
2806 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("val_t NEW_"), TAG_Int(10)); /*new String*/
2807 variable[11] = variable[10];
2808 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
2809 variable[12] = variable[0];
2810 variable[12] = CALL_abstractmetamodel___MMLocalClass___name(variable[12])(variable[12]) /*MMLocalClass::name*/;
2811 variable[13] = variable[12];
2812 variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
2813 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/;
2814 variable[14] = NEW_String_string___String___with_native(BOX_NativeString("(void)"), TAG_Int(6)); /*new String*/
2815 variable[15] = variable[14];
2816 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
2817 variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
2818 variable[8] = variable[9];
2819 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" {"), TAG_Int(2)); /*new String*/
2820 variable[9] = CALL_string___String_____plus( variable[8] /*s*/)( variable[8] /*s*/, variable[9]) /*String::+*/;
2821 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
2822 CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
2823 variable[10] = CALL_compiling_base___CompilerVisitor___ctx( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::ctx*/;
2824 variable[9] = variable[10];
2825 variable[10] = NEW_CContext_compiling_base___CContext___init(); /*new CContext*/
2826 CALL_compiling_base___CompilerVisitor___ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::ctx=*/;
2827 variable[11] = NEW_ParamVariable_syntax_base___ParamVariable___init( NIT_NULL /*null*/, NIT_NULL /*null*/); /*new ParamVariable*/
2828 variable[10] = variable[11];
2829 variable[12] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
2830 variable[12] = CALL_compiling_methods___CFunctionContext___register_variable(variable[12])(variable[12], variable[10] /*self_var*/) /*CFunctionContext::register_variable*/;
2831 variable[11] = variable[12];
2832 variable[12] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
2833 variable[13] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[ParamVariable]*/
2834 CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[10] /*self_var*/) /*AbstractArray::add*/;
2835 CALL_compiling_methods___NitMethodContext___method_params__eq(variable[12])(variable[12], variable[13]) /*NitMethodContext::method_params=*/;
2836 variable[12] = NEW_String_string___String___with_native(BOX_NativeString("obj_t obj;"), TAG_Int(10)); /*new String*/
2837 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/;
2838 variable[12] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
2839 variable[13] = NEW_String_string___String___with_native(BOX_NativeString("obj = alloc(sizeof(val_t) * "), TAG_Int(28)); /*new String*/
2840 variable[14] = variable[13];
2841 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[14]) /*AbstractArray::add*/;
2842 variable[15] = CALL_abstract_collection___Collection___length( variable[6] /*itab*/)( variable[6] /*itab*/) /*AbstractArray::length*/;
2843 variable[16] = variable[15];
2844 variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/;
2845 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[16]) /*AbstractArray::add*/;
2846 variable[17] = NEW_String_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)); /*new String*/
2847 variable[18] = variable[17];
2848 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[18]) /*AbstractArray::add*/;
2849 variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
2850 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/;
2851 variable[12] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
2852 variable[13] = NEW_String_string___String___with_native(BOX_NativeString("obj->vft = (classtable_elt_t*)VFT_"), TAG_Int(34)); /*new String*/
2853 variable[14] = variable[13];
2854 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[14]) /*AbstractArray::add*/;
2855 variable[15] = variable[0];
2856 variable[15] = CALL_abstractmetamodel___MMLocalClass___name(variable[15])(variable[15]) /*MMLocalClass::name*/;
2857 variable[16] = variable[15];
2858 variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/;
2859 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[16]) /*AbstractArray::add*/;
2860 variable[17] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
2861 variable[18] = variable[17];
2862 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[18]) /*AbstractArray::add*/;
2863 variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
2864 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/;
2865 variable[12] = NEW_String_string___String___with_native(BOX_NativeString("OBJ2VAL(obj)"), TAG_Int(12)); /*new String*/
2866 CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/, variable[11] /*self_var_cname*/, variable[12]) /*CompilerVisitor::add_assignment*/;
2867 variable[12] = variable[0];
2868 variable[12] = CALL_abstractmetamodel___MMLocalClass___global_properties(variable[12])(variable[12]) /*MMLocalClass::global_properties*/;
2869 variable[12] = CALL_abstract_collection___Collection___iterator(variable[12])(variable[12]) /*Collection::iterator*/;
2870 while (true) { /*for*/
2871 variable[13] = CALL_abstract_collection___Iterator___is_ok(variable[12])(variable[12]) /*Iterator::is_ok*/;
2872 if (!UNTAG_Bool(variable[13])) break; /*for*/
2873 variable[13] = CALL_abstract_collection___Iterator___item(variable[12])(variable[12]) /*Iterator::item*/;
2874 variable[14] = variable[13];
2875 variable[16] = variable[0];
2876 variable[16] = CALL_abstractmetamodel___MMLocalClass_____bra(variable[16])(variable[16], variable[14] /*g*/) /*MMLocalClass::[]*/;
2877 variable[15] = variable[16];
2878 variable[17] = CALL_static_type___MMLocalProperty___signature( variable[15] /*p*/)( variable[15] /*p*/) /*MMLocalProperty::signature*/;
2879 variable[17] = CALL_static_type___MMSignature___return_type(variable[17])(variable[17]) /*MMSignature::return_type*/;
2880 variable[16] = variable[17];
2881 variable[17] = TAG_Bool(( variable[15] /*p*/==NIT_NULL) || VAL_ISA( variable[15] /*p*/, COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
2882 variable[18] = variable[17];
2883 if (UNTAG_Bool(variable[18])) { /* and */
2884 variable[18] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*t*/ == NIT_NULL /*null*/) || (( variable[16] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[16] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[16] /*t*/)( variable[16] /*t*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2885 }
2886 variable[17] = variable[18];
2887 if (UNTAG_Bool(variable[17])) { /*if*/
2888 variable[17] = TAG_Bool(( variable[15] /*p*/==NIT_NULL) || VAL_ISA( variable[15] /*p*/, COLOR_MMSrcAttribute, ID_MMSrcAttribute)) /*cast MMSrcAttribute*/;
2889 if (!UNTAG_Bool(variable[17])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMLocalClass___compile_tables_to_c, LOCATE_compiling_global, 892); nit_exit(1);}
2890 variable[18] = CALL_syntax_base___MMLocalProperty___node( variable[15] /*p*/)( variable[15] /*p*/) /*MMSrcAttribute::node*/;
2891 variable[17] = variable[18];
2892 variable[18] = TAG_Bool(( variable[17] /*np*/==NIT_NULL) || VAL_ISA( variable[17] /*np*/, COLOR_AAttrPropdef, ID_AAttrPropdef)) /*cast AAttrPropdef*/;
2893 if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMLocalClass___compile_tables_to_c, LOCATE_compiling_global, 894); nit_exit(1);}
2894 variable[19] = CALL_parser_nodes___AAttrPropdef___n_expr( variable[17] /*np*/)( variable[17] /*np*/) /*AAttrPropdef::n_expr*/;
2895 variable[18] = variable[19];
2896 variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[18] /*ne*/ == NIT_NULL /*null*/) || (( variable[18] /*ne*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[18] /*ne*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[18] /*ne*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[18] /*ne*/)( variable[18] /*ne*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2897 if (UNTAG_Bool(variable[19])) { /*if*/
2898 variable[20] = CALL_compiling_methods___PExpr___compile_expr( variable[18] /*ne*/)( variable[18] /*ne*/, variable[1] /*v*/) /*PExpr::compile_expr*/;
2899 variable[19] = variable[20];
2900 variable[20] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
2901 variable[21] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
2902 variable[22] = variable[21];
2903 CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20], variable[22]) /*AbstractArray::add*/;
2904 variable[23] = CALL_abstractmetamodel___MMLocalProperty___global( variable[15] /*p*/)( variable[15] /*p*/) /*MMLocalProperty::global*/;
2905 variable[23] = CALL_compiling_base___MMGlobalProperty___attr_access(variable[23])(variable[23]) /*MMGlobalProperty::attr_access*/;
2906 variable[24] = variable[23];
2907 CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20], variable[24]) /*AbstractArray::add*/;
2908 variable[25] = NEW_String_string___String___with_native(BOX_NativeString("(obj) = "), TAG_Int(8)); /*new String*/
2909 variable[26] = variable[25];
2910 CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20], variable[26]) /*AbstractArray::add*/;
2911 variable[27] = variable[19] /*e*/;
2912 CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20], variable[27]) /*AbstractArray::add*/;
2913 variable[28] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
2914 variable[29] = variable[28];
2915 CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20], variable[29]) /*AbstractArray::add*/;
2916 variable[20] = CALL_string___Object___to_s(variable[20])(variable[20]) /*Object::to_s*/;
2917 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[20]) /*CompilerVisitor::add_instr*/;
2918 } else { /*if*/
2919 variable[20] = CALL_static_type___MMType___local_class( variable[16] /*t*/)( variable[16] /*t*/) /*MMType::local_class*/;
2920 variable[20] = CALL_compiling_base___MMLocalClass___primitive_info(variable[20])(variable[20]) /*MMLocalClass::primitive_info*/;
2921 variable[19] = variable[20];
2922 variable[20] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[19] /*pi*/ == NIT_NULL /*null*/) || (( variable[19] /*pi*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[19] /*pi*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[19] /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[19] /*pi*/)( variable[19] /*pi*/, NIT_NULL /*null*/) /*Object::==*/)))))));
2923 variable[21] = variable[20];
2924 if (UNTAG_Bool(variable[21])) { /* and */
2925 variable[21] = CALL_compiling_base___PrimitiveInfo___tagged( variable[19] /*pi*/)( variable[19] /*pi*/) /*PrimitiveInfo::tagged*/;
2926 }
2927 variable[20] = variable[21];
2928 if (UNTAG_Bool(variable[20])) { /*if*/
2929 variable[21] = CALL_compiling_base___MMType___default_cvalue( variable[16] /*t*/)( variable[16] /*t*/) /*MMType::default_cvalue*/;
2930 variable[20] = variable[21];
2931 variable[21] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
2932 variable[22] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
2933 variable[23] = variable[22];
2934 CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[23]) /*AbstractArray::add*/;
2935 variable[24] = CALL_abstractmetamodel___MMLocalProperty___global( variable[15] /*p*/)( variable[15] /*p*/) /*MMLocalProperty::global*/;
2936 variable[24] = CALL_compiling_base___MMGlobalProperty___attr_access(variable[24])(variable[24]) /*MMGlobalProperty::attr_access*/;
2937 variable[25] = variable[24];
2938 CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[25]) /*AbstractArray::add*/;
2939 variable[26] = NEW_String_string___String___with_native(BOX_NativeString("(obj) = "), TAG_Int(8)); /*new String*/
2940 variable[27] = variable[26];
2941 CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[27]) /*AbstractArray::add*/;
2942 variable[28] = variable[20] /*default*/;
2943 CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[28]) /*AbstractArray::add*/;
2944 variable[29] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
2945 variable[30] = variable[29];
2946 CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[30]) /*AbstractArray::add*/;
2947 variable[21] = CALL_string___Object___to_s(variable[21])(variable[21]) /*Object::to_s*/;
2948 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[21]) /*CompilerVisitor::add_instr*/;
2949 }
2950 }
2951 }
2952 continue_94: while(0);
2953 CALL_abstract_collection___Iterator___next(variable[12])(variable[12]) /*Iterator::next*/;
2954 }
2955 break_94: while(0);
2956 variable[12] = NEW_String_string___String___with_native(BOX_NativeString("return OBJ2VAL(obj);"), TAG_Int(20)); /*new String*/
2957 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/;
2958 variable[12] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
2959 CALL_compiling_methods___CFunctionContext___generate_var_decls(variable[12])(variable[12]) /*CFunctionContext::generate_var_decls*/;
2960 variable[12] = CALL_compiling_base___CompilerVisitor___ctx( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::ctx*/;
2961 CALL_compiling_base___CContext___append( variable[9] /*ctx_old*/)( variable[9] /*ctx_old*/, variable[12]) /*CContext::append*/;
2962 CALL_compiling_base___CompilerVisitor___ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[9] /*ctx_old*/) /*CompilerVisitor::ctx=*/;
2963 CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
2964 variable[12] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
2965 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/;
2966 variable[13] = variable[0];
2967 variable[13] = CALL_abstractmetamodel___MMLocalClass___cshe(variable[13])(variable[13]) /*MMLocalClass::cshe*/;
2968 variable[13] = CALL_partial_order___PartialOrderElement___greaters(variable[13])(variable[13]) /*PartialOrderElement::greaters*/;
2969 variable[13] = CALL_abstract_collection___Collection___length(variable[13])(variable[13]) /*Collection::length*/;
2970 variable[13] = TAG_Int(UNTAG_Int(variable[13])+UNTAG_Int( TAG_Int(1)));
2971 variable[12] = variable[13];
2972 variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
2973 variable[15] = NEW_String_string___String___with_native(BOX_NativeString("int init_table["), TAG_Int(15)); /*new String*/
2974 variable[16] = variable[15];
2975 CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[16]) /*AbstractArray::add*/;
2976 variable[17] = variable[12] /*init_table_size*/;
2977 variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/;
2978 CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[17]) /*AbstractArray::add*/;
2979 variable[18] = NEW_String_string___String___with_native(BOX_NativeString("] = {0"), TAG_Int(6)); /*new String*/
2980 variable[19] = variable[18];
2981 CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[19]) /*AbstractArray::add*/;
2982 variable[20] = NEW_String_string___String___with_native(BOX_NativeString(", 0"), TAG_Int(3)); /*new String*/
2983 variable[21] = TAG_Int(UNTAG_Int( variable[12] /*init_table_size*/)-UNTAG_Int( TAG_Int(1)));
2984 variable[20] = CALL_string___String_____star(variable[20])(variable[20], variable[21]) /*String::**/;
2985 variable[21] = variable[20];
2986 CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[21]) /*AbstractArray::add*/;
2987 variable[22] = NEW_String_string___String___with_native(BOX_NativeString("};"), TAG_Int(2)); /*new String*/
2988 variable[23] = variable[22];
2989 CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[23]) /*AbstractArray::add*/;
2990 variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
2991 variable[13] = variable[14];
2992 variable[14] = variable[0];
2993 variable[14] = CALL_abstractmetamodel___MMLocalClass___global_properties(variable[14])(variable[14]) /*MMLocalClass::global_properties*/;
2994 variable[14] = CALL_abstract_collection___Collection___iterator(variable[14])(variable[14]) /*Collection::iterator*/;
2995 while (true) { /*for*/
2996 variable[15] = CALL_abstract_collection___Iterator___is_ok(variable[14])(variable[14]) /*Iterator::is_ok*/;
2997 if (!UNTAG_Bool(variable[15])) break; /*for*/
2998 variable[15] = CALL_abstract_collection___Iterator___item(variable[14])(variable[14]) /*Iterator::item*/;
2999 variable[16] = variable[15];
3000 variable[18] = variable[0];
3001 variable[18] = CALL_abstractmetamodel___MMLocalClass_____bra(variable[18])(variable[18], variable[16] /*g*/) /*MMLocalClass::[]*/;
3002 variable[17] = variable[18];
3003 variable[18] = CALL_abstractmetamodel___MMLocalProperty___global( variable[17] /*p*/)( variable[17] /*p*/) /*MMLocalProperty::global*/;
3004 variable[19] = variable[0];
3005 variable[18] = CALL_abstractmetamodel___MMGlobalProperty___is_init_for(variable[18])(variable[18], variable[19]) /*MMGlobalProperty::is_init_for*/;
3006 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[18])))) { /*if*/
3007 goto continue_95;
3008 }
3009 variable[19] = NEW_Array_array___Array___init(); /*new Array[String]*/
3010 variable[18] = variable[19];
3011 variable[20] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
3012 variable[21] = NEW_String_string___String___with_native(BOX_NativeString("self"), TAG_Int(4)); /*new String*/
3013 CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20], variable[21]) /*AbstractArray::add*/;
3014 variable[19] = variable[20];
3015 variable[20] = CALL_static_type___MMLocalProperty___signature( variable[17] /*p*/)( variable[17] /*p*/) /*MMLocalProperty::signature*/;
3016 variable[20] = CALL_static_type___MMSignature___arity(variable[20])(variable[20]) /*MMSignature::arity*/;
3017 variable[21] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[20]); /*new Range[Int]*/
3018 variable[20] = variable[21];
3019 variable[20] = CALL_abstract_collection___Collection___iterator(variable[20])(variable[20]) /*Range::iterator*/;
3020 while (true) { /*for*/
3021 variable[21] = CALL_abstract_collection___Iterator___is_ok(variable[20])(variable[20]) /*Iterator::is_ok*/;
3022 if (!UNTAG_Bool(variable[21])) break; /*for*/
3023 variable[21] = CALL_abstract_collection___Iterator___item(variable[20])(variable[20]) /*Iterator::item*/;
3024 variable[22] = variable[21];
3025 variable[23] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
3026 variable[24] = NEW_String_string___String___with_native(BOX_NativeString("val_t p"), TAG_Int(7)); /*new String*/
3027 variable[25] = variable[24];
3028 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[25]) /*AbstractArray::add*/;
3029 variable[26] = variable[22] /*i*/;
3030 variable[26] = CALL_string___Object___to_s(variable[26])(variable[26]) /*Object::to_s*/;
3031 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[26]) /*AbstractArray::add*/;
3032 variable[27] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
3033 variable[28] = variable[27];
3034 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[28]) /*AbstractArray::add*/;
3035 variable[23] = CALL_string___Object___to_s(variable[23])(variable[23]) /*Object::to_s*/;
3036 CALL_abstract_collection___SimpleCollection___add( variable[18] /*params*/)( variable[18] /*params*/, variable[23]) /*AbstractArray::add*/;
3037 variable[23] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
3038 variable[24] = NEW_String_string___String___with_native(BOX_NativeString("p"), TAG_Int(1)); /*new String*/
3039 variable[25] = variable[24];
3040 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[25]) /*AbstractArray::add*/;
3041 variable[26] = variable[22] /*i*/;
3042 variable[26] = CALL_string___Object___to_s(variable[26])(variable[26]) /*Object::to_s*/;
3043 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[26]) /*AbstractArray::add*/;
3044 variable[27] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
3045 variable[28] = variable[27];
3046 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[28]) /*AbstractArray::add*/;
3047 variable[23] = CALL_string___Object___to_s(variable[23])(variable[23]) /*Object::to_s*/;
3048 CALL_abstract_collection___SimpleCollection___add( variable[19] /*args*/)( variable[19] /*args*/, variable[23]) /*AbstractArray::add*/;
3049 continue_96: while(0);
3050 CALL_abstract_collection___Iterator___next(variable[20])(variable[20]) /*Iterator::next*/;
3051 }
3052 break_96: while(0);
3053 variable[20] = NEW_String_string___String___with_native(BOX_NativeString("init_table"), TAG_Int(10)); /*new String*/
3054 CALL_abstract_collection___SimpleCollection___add( variable[19] /*args*/)( variable[19] /*args*/, variable[20]) /*AbstractArray::add*/;
3055 variable[21] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
3056 variable[22] = NEW_String_string___String___with_native(BOX_NativeString("val_t NEW_"), TAG_Int(10)); /*new String*/
3057 variable[23] = variable[22];
3058 CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[23]) /*AbstractArray::add*/;
3059 variable[24] = variable[0];
3060 variable[25] = variable[24];
3061 variable[25] = CALL_string___Object___to_s(variable[25])(variable[25]) /*Object::to_s*/;
3062 CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[25]) /*AbstractArray::add*/;
3063 variable[26] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
3064 variable[27] = variable[26];
3065 CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[27]) /*AbstractArray::add*/;
3066 variable[28] = CALL_abstractmetamodel___MMLocalProperty___global( variable[17] /*p*/)( variable[17] /*p*/) /*MMLocalProperty::global*/;
3067 variable[28] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[28])(variable[28]) /*MMGlobalProperty::intro*/;
3068 variable[28] = CALL_compiling_base___MMLocalProperty___cname(variable[28])(variable[28]) /*MMLocalProperty::cname*/;
3069 variable[29] = variable[28];
3070 CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[29]) /*AbstractArray::add*/;
3071 variable[30] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
3072 variable[31] = variable[30];
3073 CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[31]) /*AbstractArray::add*/;
3074 variable[32] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
3075 variable[32] = CALL_string___Collection___join( variable[18] /*params*/)( variable[18] /*params*/, variable[32]) /*Collection::join*/;
3076 variable[33] = variable[32];
3077 CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[33]) /*AbstractArray::add*/;
3078 variable[34] = NEW_String_string___String___with_native(BOX_NativeString(") {"), TAG_Int(3)); /*new String*/
3079 variable[35] = variable[34];
3080 CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[35]) /*AbstractArray::add*/;
3081 variable[21] = CALL_string___Object___to_s(variable[21])(variable[21]) /*Object::to_s*/;
3082 variable[20] = variable[21];
3083 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[20] /*s*/) /*CompilerVisitor::add_instr*/;
3084 CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
3085 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[13] /*init_table_decl*/) /*CompilerVisitor::add_instr*/;
3086 variable[21] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
3087 variable[22] = NEW_String_string___String___with_native(BOX_NativeString("val_t self = NEW_"), TAG_Int(17)); /*new String*/
3088 variable[23] = variable[22];
3089 CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[23]) /*AbstractArray::add*/;
3090 variable[24] = variable[0];
3091 variable[24] = CALL_abstractmetamodel___MMLocalClass___name(variable[24])(variable[24]) /*MMLocalClass::name*/;
3092 variable[25] = variable[24];
3093 variable[25] = CALL_string___Object___to_s(variable[25])(variable[25]) /*Object::to_s*/;
3094 CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[25]) /*AbstractArray::add*/;
3095 variable[26] = NEW_String_string___String___with_native(BOX_NativeString("();"), TAG_Int(3)); /*new String*/
3096 variable[27] = variable[26];
3097 CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[27]) /*AbstractArray::add*/;
3098 variable[21] = CALL_string___Object___to_s(variable[21])(variable[21]) /*Object::to_s*/;
3099 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[21]) /*CompilerVisitor::add_instr*/;
3100 variable[21] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
3101 variable[22] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
3102 variable[23] = variable[22];
3103 CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[23]) /*AbstractArray::add*/;
3104 variable[24] = CALL_compiling_base___MMLocalProperty___cname( variable[17] /*p*/)( variable[17] /*p*/) /*MMLocalProperty::cname*/;
3105 variable[25] = variable[24];
3106 CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[25]) /*AbstractArray::add*/;
3107 variable[26] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
3108 variable[27] = variable[26];
3109 CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[27]) /*AbstractArray::add*/;
3110 variable[28] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
3111 variable[28] = CALL_string___Collection___join( variable[19] /*args*/)( variable[19] /*args*/, variable[28]) /*Collection::join*/;
3112 variable[29] = variable[28];
3113 CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[29]) /*AbstractArray::add*/;
3114 variable[30] = NEW_String_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)); /*new String*/
3115 variable[31] = variable[30];
3116 CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[31]) /*AbstractArray::add*/;
3117 variable[21] = CALL_string___Object___to_s(variable[21])(variable[21]) /*Object::to_s*/;
3118 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[21]) /*CompilerVisitor::add_instr*/;
3119 variable[21] = NEW_String_string___String___with_native(BOX_NativeString("return self;"), TAG_Int(12)); /*new String*/
3120 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[21]) /*CompilerVisitor::add_instr*/;
3121 CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
3122 variable[21] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
3123 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[21]) /*CompilerVisitor::add_instr*/;
3124 continue_95: while(0);
3125 CALL_abstract_collection___Iterator___next(variable[14])(variable[14]) /*Iterator::next*/;
3126 }
3127 break_95: while(0);
3128 } else { /*if*/
3129 variable[8] = CALL_compiling_base___PrimitiveInfo___tagged( variable[7] /*pi*/)( variable[7] /*pi*/) /*PrimitiveInfo::tagged*/;
3130 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[8])))) { /*if*/
3131 variable[9] = CALL_compiling_base___PrimitiveInfo___cname( variable[7] /*pi*/)( variable[7] /*pi*/) /*PrimitiveInfo::cname*/;
3132 variable[8] = variable[9];
3133 variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
3134 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("struct TBOX_"), TAG_Int(12)); /*new String*/
3135 variable[12] = variable[11];
3136 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
3137 variable[13] = variable[0];
3138 variable[13] = CALL_abstractmetamodel___MMLocalClass___name(variable[13])(variable[13]) /*MMLocalClass::name*/;
3139 variable[14] = variable[13];
3140 variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
3141 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[14]) /*AbstractArray::add*/;
3142 variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
3143 variable[16] = variable[15];
3144 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[16]) /*AbstractArray::add*/;
3145 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
3146 variable[9] = variable[10];
3147 variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
3148 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("val_t BOX_"), TAG_Int(10)); /*new String*/
3149 variable[12] = variable[11];
3150 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
3151 variable[13] = variable[0];
3152 variable[13] = CALL_abstractmetamodel___MMLocalClass___name(variable[13])(variable[13]) /*MMLocalClass::name*/;
3153 variable[14] = variable[13];
3154 variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
3155 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[14]) /*AbstractArray::add*/;
3156 variable[15] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
3157 variable[16] = variable[15];
3158 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[16]) /*AbstractArray::add*/;
3159 variable[17] = variable[8] /*t*/;
3160 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[17]) /*AbstractArray::add*/;
3161 variable[18] = NEW_String_string___String___with_native(BOX_NativeString(" val) {"), TAG_Int(7)); /*new String*/
3162 variable[19] = variable[18];
3163 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[19]) /*AbstractArray::add*/;
3164 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
3165 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
3166 CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
3167 variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
3168 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
3169 variable[12] = variable[11];
3170 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
3171 variable[13] = variable[9] /*tbox*/;
3172 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[13]) /*AbstractArray::add*/;
3173 variable[14] = NEW_String_string___String___with_native(BOX_NativeString(" *box = ("), TAG_Int(9)); /*new String*/
3174 variable[15] = variable[14];
3175 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[15]) /*AbstractArray::add*/;
3176 variable[16] = variable[9] /*tbox*/;
3177 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[16]) /*AbstractArray::add*/;
3178 variable[17] = NEW_String_string___String___with_native(BOX_NativeString("*)alloc(sizeof("), TAG_Int(15)); /*new String*/
3179 variable[18] = variable[17];
3180 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[18]) /*AbstractArray::add*/;
3181 variable[19] = variable[9] /*tbox*/;
3182 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[19]) /*AbstractArray::add*/;
3183 variable[20] = NEW_String_string___String___with_native(BOX_NativeString("));"), TAG_Int(3)); /*new String*/
3184 variable[21] = variable[20];
3185 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[21]) /*AbstractArray::add*/;
3186 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
3187 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
3188 variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
3189 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("box->vft = VFT_"), TAG_Int(15)); /*new String*/
3190 variable[12] = variable[11];
3191 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
3192 variable[13] = variable[0];
3193 variable[13] = CALL_abstractmetamodel___MMLocalClass___name(variable[13])(variable[13]) /*MMLocalClass::name*/;
3194 variable[14] = variable[13];
3195 variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
3196 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[14]) /*AbstractArray::add*/;
3197 variable[15] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
3198 variable[16] = variable[15];
3199 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[16]) /*AbstractArray::add*/;
3200 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
3201 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
3202 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("box->val = val;"), TAG_Int(15)); /*new String*/
3203 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
3204 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("return OBJ2VAL(box);"), TAG_Int(20)); /*new String*/
3205 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
3206 CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
3207 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
3208 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
3209 }
3210 }
3211 return_label91: while(false);
3212 tracehead = trace.prev;
3213 return;
3214 }