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