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