compile: initialize local REGS to NIT_NULL
[nit.git] / c_src / compiling_global._sep.c
1 /* This C file is generated by NIT to compile module compiling_global. */
2 #include "compiling_global._sep.h"
3 val_t compiling_global___ColorContext___color(val_t self, val_t param0) {
4 struct trace_t trace = {NULL, NULL, 28, LOCATE_compiling_global___ColorContext___color};
5 val_t variable[4];
6 struct WBT_ **closurevariable = NULL;
7 trace.prev = tracehead; tracehead = &trace;
8 trace.file = LOCATE_compiling_global;
9 /* Register variable[0]: Local variable */
10 variable[0] = self;
11 /* Register variable[1]: Local variable */
12 variable[1] = param0;
13 /* Register variable[2]: Method return value and escape marker */
14 /* Register variable[3]: Result */
15 variable[3] = ATTR_compiling_global___ColorContext____colors(variable[0]) /*ColorContext::_colors*/;
16 /* Register variable[3]: Result */
17 variable[3] = CALL_abstract_collection___MapRead_____bra(variable[3])(variable[3], variable[1] /*e*/) /*CoupleMap::[]*/;
18 variable[2] = variable[3];
19 goto return_label0;
20 return_label0: while(false);
21 tracehead = trace.prev;
22 return variable[2];
23 }
24 val_t compiling_global___ColorContext___has_color(val_t self, val_t param0) {
25 struct trace_t trace = {NULL, NULL, 34, LOCATE_compiling_global___ColorContext___has_color};
26 val_t variable[4];
27 struct WBT_ **closurevariable = NULL;
28 trace.prev = tracehead; tracehead = &trace;
29 trace.file = LOCATE_compiling_global;
30 /* Register variable[0]: Local variable */
31 variable[0] = self;
32 /* Register variable[1]: Local variable */
33 variable[1] = param0;
34 /* Register variable[2]: Method return value and escape marker */
35 /* Register variable[3]: Result */
36 variable[3] = ATTR_compiling_global___ColorContext____colors(variable[0]) /*ColorContext::_colors*/;
37 /* Register variable[3]: Result */
38 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
39 /* Ensure var variable[3]: Left 'and' operand*/
40 if (UNTAG_Bool(variable[3])) { /* and */
41 /* Register variable[3]: Result */
42 variable[3] = ATTR_compiling_global___ColorContext____colors(variable[0]) /*ColorContext::_colors*/;
43 /* Register variable[3]: Result */
44 variable[3] = CALL_abstract_collection___MapRead___has_key(variable[3])(variable[3], variable[1] /*e*/) /*CoupleMap::has_key*/;
45 }
46 /* Register variable[3]: Result */
47 variable[2] = variable[3];
48 goto return_label1;
49 return_label1: while(false);
50 tracehead = trace.prev;
51 return variable[2];
52 }
53 void compiling_global___ColorContext___color__eq(val_t self, val_t param0, val_t param1) {
54 struct trace_t trace = {NULL, NULL, 40, LOCATE_compiling_global___ColorContext___color__eq};
55 val_t variable[10];
56 struct WBT_ **closurevariable = NULL;
57 trace.prev = tracehead; tracehead = &trace;
58 trace.file = LOCATE_compiling_global;
59 /* Register variable[0]: Local variable */
60 variable[0] = self;
61 /* Register variable[1]: Local variable */
62 variable[1] = param0;
63 /* Register variable[2]: Local variable */
64 variable[2] = param1;
65 /* Register variable[3]: Method return value and escape marker */
66 /* Register variable[4]: Result */
67 variable[4] = ATTR_compiling_global___ColorContext____colors(variable[0]) /*ColorContext::_colors*/;
68 /* Register variable[4]: Result */
69 variable[4] = TAG_Bool((variable[4] == NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], NIT_NULL /*null*/) /*Object::==*/)))));
70 if (UNTAG_Bool(variable[4])) { /*if*/
71 /* Register variable[4]: Result */
72 variable[4] = NEW_HashMap_hash___HashMap___init() /*new HashMap[TableElt, Int]*/;
73 ATTR_compiling_global___ColorContext____colors(variable[0]) /*ColorContext::_colors*/ = variable[4];
74 }
75 /* Register variable[4]: Result */
76 variable[4] = ATTR_compiling_global___ColorContext____colors(variable[0]) /*ColorContext::_colors*/;
77 CALL_abstract_collection___Map_____braeq(variable[4])(variable[4], variable[1] /*e*/, variable[2] /*c*/) /*HashMap::[]=*/;
78 /* Register variable[4]: Local variable */
79 variable[4] = variable[2] /*c*/;
80 /* Register variable[5]: Result */
81 variable[5] = CALL_compiling_global___TableElt___length( variable[1] /*e*/)( variable[1] /*e*/) /*TableElt::length*/;
82 /* Register variable[5]: Result */
83 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[5]) /*new Range[Int]*/;
84 /* Register variable[5]: For iterator */
85 variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*Range::iterator*/;
86 while (true) { /*for*/
87 /* Register variable[6]: For 'is_ok' result */
88 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
89 if (!UNTAG_Bool(variable[6])) break; /*for*/
90 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/ /* Ensure var: For item*/;
91 /* Register variable[7]: Local variable */
92 variable[7] = variable[6];
93 /* Register variable[8]: Result */
94 variable[8] = ATTR_compiling_global___ColorContext____colors(variable[0]) /*ColorContext::_colors*/;
95 /* Register variable[9]: Result */
96 variable[9] = CALL_compiling_global___TableElt___item( variable[1] /*e*/)( variable[1] /*e*/, variable[7] /*i*/) /*TableElt::item*/;
97 CALL_abstract_collection___Map_____braeq(variable[8])(variable[8], variable[9], variable[4] /*idx*/) /*HashMap::[]=*/;
98 /* Register variable[8]: Result */
99 variable[8] = TAG_Int(UNTAG_Int( variable[4] /*idx*/)+UNTAG_Int( TAG_Int(1)));
100 variable[4] = variable[8] /*idx=*/;
101 continue_3: while(0);
102 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
103 }
104 break_3: while(0);
105 return_label2: while(false);
106 tracehead = trace.prev;
107 return;
108 }
109 void compiling_global___ColorContext___init(val_t self, int* init_table) {
110 struct trace_t trace = {NULL, NULL, 0, LOCATE_compiling_global___ColorContext___init};
111 val_t *variable = NULL;
112 struct WBT_ **closurevariable = NULL;
113 trace.prev = tracehead; tracehead = &trace;
114 trace.file = LOCATE_compiling_global;
115 tracehead = trace.prev;
116 return;
117 }
118 val_t compiling_global___GlobalAnalysis___compiled_classes(val_t self) {
119 struct trace_t trace = {NULL, NULL, 56, LOCATE_compiling_global___GlobalAnalysis___compiled_classes};
120 val_t *variable = NULL;
121 struct WBT_ **closurevariable = NULL;
122 trace.prev = tracehead; tracehead = &trace;
123 trace.file = LOCATE_compiling_global;
124 tracehead = trace.prev;
125 return ATTR_compiling_global___GlobalAnalysis____compiled_classes( self) /*GlobalAnalysis::_compiled_classes*/;
126 }
127 val_t compiling_global___GlobalAnalysis___module(val_t self) {
128 struct trace_t trace = {NULL, NULL, 59, LOCATE_compiling_global___GlobalAnalysis___module};
129 val_t *variable = NULL;
130 struct WBT_ **closurevariable = NULL;
131 trace.prev = tracehead; tracehead = &trace;
132 trace.file = LOCATE_compiling_global;
133 tracehead = trace.prev;
134 return ATTR_compiling_global___GlobalAnalysis____module( self) /*GlobalAnalysis::_module*/;
135 }
136 val_t compiling_global___GlobalAnalysis___max_class_table_length(val_t self) {
137 struct trace_t trace = {NULL, NULL, 62, LOCATE_compiling_global___GlobalAnalysis___max_class_table_length};
138 val_t *variable = NULL;
139 struct WBT_ **closurevariable = NULL;
140 trace.prev = tracehead; tracehead = &trace;
141 trace.file = LOCATE_compiling_global;
142 tracehead = trace.prev;
143 return ATTR_compiling_global___GlobalAnalysis____max_class_table_length( self) /*GlobalAnalysis::_max_class_table_length*/;
144 }
145 void compiling_global___GlobalAnalysis___max_class_table_length__eq(val_t self, val_t param0) {
146 struct trace_t trace = {NULL, NULL, 62, LOCATE_compiling_global___GlobalAnalysis___max_class_table_length__eq};
147 val_t *variable = NULL;
148 struct WBT_ **closurevariable = NULL;
149 trace.prev = tracehead; tracehead = &trace;
150 trace.file = LOCATE_compiling_global;
151 ATTR_compiling_global___GlobalAnalysis____max_class_table_length( self) /*GlobalAnalysis::_max_class_table_length*/ = param0;
152 tracehead = trace.prev;
153 return;
154 }
155 void compiling_global___GlobalAnalysis___init(val_t self, val_t param0, int* init_table) {
156 struct trace_t trace = {NULL, NULL, 65, LOCATE_compiling_global___GlobalAnalysis___init};
157 val_t variable[3];
158 struct WBT_ **closurevariable = NULL;
159 trace.prev = tracehead; tracehead = &trace;
160 trace.file = LOCATE_compiling_global;
161 /* Register variable[0]: Local variable */
162 variable[0] = self;
163 /* Register variable[1]: Local variable */
164 variable[1] = param0;
165 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_GlobalAnalysis].i]) return;
166 /* Register variable[2]: Method return value and escape marker */
167 ATTR_compiling_global___GlobalAnalysis____module(variable[0]) /*GlobalAnalysis::_module*/ = variable[1] /*module*/;
168 return_label4: while(false);
169 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_GlobalAnalysis].i] = 1;
170 tracehead = trace.prev;
171 return;
172 }
173 val_t compiling_global___GlobalCompilerVisitor___global_analysis(val_t self) {
174 struct trace_t trace = {NULL, NULL, 73, LOCATE_compiling_global___GlobalCompilerVisitor___global_analysis};
175 val_t *variable = NULL;
176 struct WBT_ **closurevariable = NULL;
177 trace.prev = tracehead; tracehead = &trace;
178 trace.file = LOCATE_compiling_global;
179 tracehead = trace.prev;
180 return ATTR_compiling_global___GlobalCompilerVisitor____global_analysis( self) /*GlobalCompilerVisitor::_global_analysis*/;
181 }
182 void compiling_global___GlobalCompilerVisitor___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
183 struct trace_t trace = {NULL, NULL, 75, LOCATE_compiling_global___GlobalCompilerVisitor___init};
184 val_t variable[5];
185 struct WBT_ **closurevariable = NULL;
186 trace.prev = tracehead; tracehead = &trace;
187 trace.file = LOCATE_compiling_global;
188 /* Register variable[0]: Local variable */
189 variable[0] = self;
190 /* Register variable[1]: Local variable */
191 variable[1] = param0;
192 /* Register variable[2]: Local variable */
193 variable[2] = param1;
194 /* Register variable[3]: Local variable */
195 variable[3] = param2;
196 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_GlobalCompilerVisitor].i]) return;
197 /* Register variable[4]: Method return value and escape marker */
198 CALL_compiling_base___CompilerVisitor___init(variable[0])(variable[0], variable[1] /*m*/, variable[2] /*tc*/, init_table /*YYY*/) /*CompilerVisitor::init*/;
199 ATTR_compiling_global___GlobalCompilerVisitor____global_analysis(variable[0]) /*GlobalCompilerVisitor::_global_analysis*/ = variable[3] /*ga*/;
200 return_label5: while(false);
201 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_GlobalCompilerVisitor].i] = 1;
202 tracehead = trace.prev;
203 return;
204 }
205 val_t compiling_global___CompiledClass___local_class(val_t self) {
206 struct trace_t trace = {NULL, NULL, 85, LOCATE_compiling_global___CompiledClass___local_class};
207 val_t *variable = NULL;
208 struct WBT_ **closurevariable = NULL;
209 trace.prev = tracehead; tracehead = &trace;
210 trace.file = LOCATE_compiling_global;
211 tracehead = trace.prev;
212 return ATTR_compiling_global___CompiledClass____local_class( self) /*CompiledClass::_local_class*/;
213 }
214 val_t compiling_global___CompiledClass___id(val_t self) {
215 struct trace_t trace = {NULL, NULL, 88, LOCATE_compiling_global___CompiledClass___id};
216 val_t *variable = NULL;
217 struct WBT_ **closurevariable = NULL;
218 trace.prev = tracehead; tracehead = &trace;
219 trace.file = LOCATE_compiling_global;
220 tracehead = trace.prev;
221 return ATTR_compiling_global___CompiledClass____id( self) /*CompiledClass::_id*/;
222 }
223 void compiling_global___CompiledClass___id__eq(val_t self, val_t param0) {
224 struct trace_t trace = {NULL, NULL, 88, LOCATE_compiling_global___CompiledClass___id__eq};
225 val_t *variable = NULL;
226 struct WBT_ **closurevariable = NULL;
227 trace.prev = tracehead; tracehead = &trace;
228 trace.file = LOCATE_compiling_global;
229 ATTR_compiling_global___CompiledClass____id( self) /*CompiledClass::_id*/ = param0;
230 tracehead = trace.prev;
231 return;
232 }
233 val_t compiling_global___CompiledClass___class_table(val_t self) {
234 struct trace_t trace = {NULL, NULL, 91, LOCATE_compiling_global___CompiledClass___class_table};
235 val_t *variable = NULL;
236 struct WBT_ **closurevariable = NULL;
237 trace.prev = tracehead; tracehead = &trace;
238 trace.file = LOCATE_compiling_global;
239 tracehead = trace.prev;
240 return ATTR_compiling_global___CompiledClass____class_table( self) /*CompiledClass::_class_table*/;
241 }
242 val_t compiling_global___CompiledClass___instance_table(val_t self) {
243 struct trace_t trace = {NULL, NULL, 94, LOCATE_compiling_global___CompiledClass___instance_table};
244 val_t *variable = NULL;
245 struct WBT_ **closurevariable = NULL;
246 trace.prev = tracehead; tracehead = &trace;
247 trace.file = LOCATE_compiling_global;
248 tracehead = trace.prev;
249 return ATTR_compiling_global___CompiledClass____instance_table( self) /*CompiledClass::_instance_table*/;
250 }
251 val_t compiling_global___CompiledClass___class_layout(val_t self) {
252 struct trace_t trace = {NULL, NULL, 97, LOCATE_compiling_global___CompiledClass___class_layout};
253 val_t *variable = NULL;
254 struct WBT_ **closurevariable = NULL;
255 trace.prev = tracehead; tracehead = &trace;
256 trace.file = LOCATE_compiling_global;
257 tracehead = trace.prev;
258 return ATTR_compiling_global___CompiledClass____class_layout( self) /*CompiledClass::_class_layout*/;
259 }
260 val_t compiling_global___CompiledClass___instance_layout(val_t self) {
261 struct trace_t trace = {NULL, NULL, 100, LOCATE_compiling_global___CompiledClass___instance_layout};
262 val_t *variable = NULL;
263 struct WBT_ **closurevariable = NULL;
264 trace.prev = tracehead; tracehead = &trace;
265 trace.file = LOCATE_compiling_global;
266 tracehead = trace.prev;
267 return ATTR_compiling_global___CompiledClass____instance_layout( self) /*CompiledClass::_instance_layout*/;
268 }
269 void compiling_global___CompiledClass___init(val_t self, val_t param0, int* init_table) {
270 struct trace_t trace = {NULL, NULL, 103, LOCATE_compiling_global___CompiledClass___init};
271 val_t variable[3];
272 struct WBT_ **closurevariable = NULL;
273 trace.prev = tracehead; tracehead = &trace;
274 trace.file = LOCATE_compiling_global;
275 /* Register variable[0]: Local variable */
276 variable[0] = self;
277 /* Register variable[1]: Local variable */
278 variable[1] = param0;
279 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_CompiledClass].i]) return;
280 /* Register variable[2]: Method return value and escape marker */
281 ATTR_compiling_global___CompiledClass____local_class(variable[0]) /*CompiledClass::_local_class*/ = variable[1] /*c*/;
282 return_label6: while(false);
283 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_CompiledClass].i] = 1;
284 tracehead = trace.prev;
285 return;
286 }
287 val_t compiling_global___MMSrcLocalClass___class_color_pos(val_t self) {
288 struct trace_t trace = {NULL, NULL, 107, LOCATE_compiling_global___MMSrcLocalClass___class_color_pos};
289 val_t *variable = NULL;
290 struct WBT_ **closurevariable = NULL;
291 trace.prev = tracehead; tracehead = &trace;
292 trace.file = LOCATE_compiling_global;
293 tracehead = trace.prev;
294 return ATTR_compiling_global___MMSrcLocalClass____class_color_pos( self) /*MMSrcLocalClass::_class_color_pos*/;
295 }
296 val_t compiling_global___MMSrcLocalClass___class_layout(val_t self) {
297 struct trace_t trace = {NULL, NULL, 110, LOCATE_compiling_global___MMSrcLocalClass___class_layout};
298 val_t *variable = NULL;
299 struct WBT_ **closurevariable = NULL;
300 trace.prev = tracehead; tracehead = &trace;
301 trace.file = LOCATE_compiling_global;
302 tracehead = trace.prev;
303 return ATTR_compiling_global___MMSrcLocalClass____class_layout( self) /*MMSrcLocalClass::_class_layout*/;
304 }
305 val_t compiling_global___MMSrcLocalClass___instance_layout(val_t self) {
306 struct trace_t trace = {NULL, NULL, 113, LOCATE_compiling_global___MMSrcLocalClass___instance_layout};
307 val_t *variable = NULL;
308 struct WBT_ **closurevariable = NULL;
309 trace.prev = tracehead; tracehead = &trace;
310 trace.file = LOCATE_compiling_global;
311 tracehead = trace.prev;
312 return ATTR_compiling_global___MMSrcLocalClass____instance_layout( self) /*MMSrcLocalClass::_instance_layout*/;
313 }
314 void compiling_global___MMSrcLocalClass___build_layout_in(val_t self, val_t param0, val_t param1) {
315 struct trace_t trace = {NULL, NULL, 116, LOCATE_compiling_global___MMSrcLocalClass___build_layout_in};
316 val_t variable[11];
317 struct WBT_ **closurevariable = NULL;
318 trace.prev = tracehead; tracehead = &trace;
319 trace.file = LOCATE_compiling_global;
320 /* Register variable[0]: Local variable */
321 variable[0] = self;
322 /* Register variable[1]: Local variable */
323 variable[1] = param0;
324 /* Register variable[2]: Local variable */
325 variable[2] = param1;
326 /* Register variable[3]: Method return value and escape marker */
327 /* Register variable[4]: Local variable */
328 /* Register variable[5]: Result */
329 variable[5] = ATTR_compiling_global___MMSrcLocalClass____class_layout(variable[0]) /*MMSrcLocalClass::_class_layout*/;
330 variable[4] = variable[5];
331 /* Register variable[5]: Local variable */
332 /* Register variable[6]: Result */
333 variable[6] = ATTR_compiling_global___MMSrcLocalClass____instance_layout(variable[0]) /*MMSrcLocalClass::_instance_layout*/;
334 variable[5] = variable[6];
335 /* Register variable[6]: Result */
336 variable[6] = CALL_abstractmetamodel___MMLocalClass___global(variable[0])(variable[0]) /*MMLocalClass::global*/;
337 /* Register variable[6]: Result */
338 variable[6] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[6])(variable[6]) /*MMGlobalClass::intro*/;
339 /* Register variable[6]: Result */
340 variable[6] = TAG_Bool((variable[6] == variable[0]) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6],variable[0])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6], variable[0]) /*Object::==*/)))));
341 if (UNTAG_Bool(variable[6])) { /*if*/
342 /* Register variable[6]: Result */
343 variable[6] = NEW_TableEltClassId_compiling_global___AbsTableEltClass___init(variable[0]) /*new TableEltClassId*/;
344 CALL_abstract_collection___SimpleCollection___add( variable[2] /*module_table*/)( variable[2] /*module_table*/, variable[6]) /*AbstractArray::add*/;
345 /* Register variable[6]: Result */
346 variable[6] = NEW_TableEltClassColor_compiling_global___AbsTableEltClass___init(variable[0]) /*new TableEltClassColor*/;
347 ATTR_compiling_global___MMSrcLocalClass____class_color_pos(variable[0]) /*MMSrcLocalClass::_class_color_pos*/ = variable[6];
348 /* Register variable[6]: Result */
349 variable[6] = ATTR_compiling_global___MMSrcLocalClass____class_color_pos(variable[0]) /*MMSrcLocalClass::_class_color_pos*/;
350 CALL_abstract_collection___SimpleCollection___add( variable[2] /*module_table*/)( variable[2] /*module_table*/, variable[6]) /*AbstractArray::add*/;
351 /* Register variable[6]: Result */
352 variable[6] = NEW_TableEltClassInitTable_compiling_global___AbsTableEltClass___init(variable[0]) /*new TableEltClassInitTable*/;
353 CALL_abstract_collection___SimpleCollection___add( variable[4] /*clt*/)( variable[4] /*clt*/, variable[6]) /*AbstractArray::add*/;
354 }
355 /* Register variable[6]: Result */
356 variable[6] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(variable[0])(variable[0]) /*MMSrcLocalClass::src_local_properties*/;
357 /* Register variable[6]: For iterator */
358 variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*MapRead::iterator*/;
359 while (true) { /*for*/
360 /* Register variable[7]: For 'is_ok' result */
361 variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
362 if (!UNTAG_Bool(variable[7])) break; /*for*/
363 variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/ /* Ensure var: For item*/;
364 /* Register variable[8]: Local variable */
365 variable[8] = variable[7];
366 /* Register variable[9]: Local variable */
367 /* Register variable[10]: Result */
368 variable[10] = CALL_abstractmetamodel___MMLocalProperty___global( variable[8] /*p*/)( variable[8] /*p*/) /*MMLocalProperty::global*/;
369 variable[9] = variable[10];
370 /* Register variable[10]: Result */
371 variable[10] = CALL_abstractmetamodel___MMGlobalProperty___intro( variable[9] /*pg*/)( variable[9] /*pg*/) /*MMGlobalProperty::intro*/;
372 /* Register variable[10]: Result */
373 variable[10] = TAG_Bool((variable[10] == variable[8] /*p*/) || ((variable[10] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[10])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[10], variable[8] /*p*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[10])(variable[10], variable[8] /*p*/) /*Object::==*/)))));
374 if (UNTAG_Bool(variable[10])) { /*if*/
375 /* Register variable[10]: Result */
376 variable[10] = TAG_Bool(( variable[8] /*p*/==NIT_NULL) || VAL_ISA( variable[8] /*p*/, COLOR_MMSrcAttribute, ID_MMSrcAttribute)) /*cast MMSrcAttribute*/;
377 if (UNTAG_Bool(variable[10])) { /*if*/
378 /* Register variable[10]: Result */
379 variable[10] = NEW_TableEltAttr_compiling_global___TableEltProp___init( variable[8] /*p*/) /*new TableEltAttr*/;
380 CALL_abstract_collection___SimpleCollection___add( variable[5] /*ilt*/)( variable[5] /*ilt*/, variable[10]) /*AbstractArray::add*/;
381 } else { /*if*/
382 /* Register variable[10]: Result */
383 variable[10] = TAG_Bool(( variable[8] /*p*/==NIT_NULL) || VAL_ISA( variable[8] /*p*/, COLOR_MMSrcMethod, ID_MMSrcMethod)) /*cast MMSrcMethod*/;
384 if (UNTAG_Bool(variable[10])) { /*if*/
385 /* Register variable[10]: Result */
386 variable[10] = NEW_TableEltMeth_compiling_global___TableEltProp___init( variable[8] /*p*/) /*new TableEltMeth*/;
387 CALL_abstract_collection___SimpleCollection___add( variable[4] /*clt*/)( variable[4] /*clt*/, variable[10]) /*AbstractArray::add*/;
388 }
389 }
390 }
391 /* Register variable[10]: Result */
392 variable[10] = TAG_Bool(( variable[8] /*p*/==NIT_NULL) || VAL_ISA( variable[8] /*p*/, COLOR_MMSrcMethod, ID_MMSrcMethod)) /*cast MMSrcMethod*/;
393 /* Ensure var variable[10]: Left 'and' operand*/
394 if (UNTAG_Bool(variable[10])) { /* and */
395 /* Register variable[10]: Result */
396 variable[10] = CALL_abstractmetamodel___MMLocalProperty___need_super( variable[8] /*p*/)( variable[8] /*p*/) /*MMLocalProperty::need_super*/;
397 }
398 /* Register variable[10]: Result */
399 if (UNTAG_Bool(variable[10])) { /*if*/
400 /* Register variable[10]: Result */
401 variable[10] = NEW_TableEltSuper_compiling_global___TableEltProp___init( variable[8] /*p*/) /*new TableEltSuper*/;
402 CALL_abstract_collection___SimpleCollection___add( variable[4] /*clt*/)( variable[4] /*clt*/, variable[10]) /*AbstractArray::add*/;
403 }
404 continue_8: while(0);
405 CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
406 }
407 break_8: while(0);
408 /* Register variable[6]: Result */
409 variable[6] = CALL_abstract_collection___Collection___is_empty( variable[5] /*ilt*/)( variable[5] /*ilt*/) /*AbstractArrayRead::is_empty*/;
410 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/
411 /* Register variable[6]: Local variable */
412 /* Register variable[7]: Result */
413 variable[7] = NEW_ModuleTableEltGroup_compiling_global___AbsTableElt___init() /*new ModuleTableEltGroup*/;
414 variable[6] = variable[7];
415 /* Register variable[7]: Result */
416 variable[7] = CALL_compiling_global___ModuleTableEltGroup___elements( variable[6] /*teg*/)( variable[6] /*teg*/) /*ModuleTableEltGroup::elements*/;
417 CALL_abstract_collection___IndexedCollection___append(variable[7])(variable[7], variable[5] /*ilt*/) /*IndexedCollection::append*/;
418 CALL_abstract_collection___SimpleCollection___add( variable[2] /*module_table*/)( variable[2] /*module_table*/, variable[6] /*teg*/) /*AbstractArray::add*/;
419 }
420 /* Register variable[6]: Result */
421 variable[6] = CALL_abstract_collection___Collection___is_empty( variable[4] /*clt*/)( variable[4] /*clt*/) /*AbstractArrayRead::is_empty*/;
422 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/
423 /* Register variable[6]: Local variable */
424 /* Register variable[7]: Result */
425 variable[7] = NEW_ModuleTableEltGroup_compiling_global___AbsTableElt___init() /*new ModuleTableEltGroup*/;
426 variable[6] = variable[7];
427 /* Register variable[7]: Result */
428 variable[7] = CALL_compiling_global___ModuleTableEltGroup___elements( variable[6] /*teg*/)( variable[6] /*teg*/) /*ModuleTableEltGroup::elements*/;
429 CALL_abstract_collection___IndexedCollection___append(variable[7])(variable[7], variable[4] /*clt*/) /*IndexedCollection::append*/;
430 CALL_abstract_collection___SimpleCollection___add( variable[2] /*module_table*/)( variable[2] /*module_table*/, variable[6] /*teg*/) /*AbstractArray::add*/;
431 }
432 return_label7: while(false);
433 tracehead = trace.prev;
434 return;
435 }
436 void compiling_global___MMSrcModule___local_analysis(val_t self, val_t param0) {
437 struct trace_t trace = {NULL, NULL, 160, LOCATE_compiling_global___MMSrcModule___local_analysis};
438 val_t variable[7];
439 struct WBT_ **closurevariable = NULL;
440 trace.prev = tracehead; tracehead = &trace;
441 trace.file = LOCATE_compiling_global;
442 /* Register variable[0]: Local variable */
443 variable[0] = self;
444 /* Register variable[1]: Local variable */
445 variable[1] = param0;
446 /* Register variable[2]: Method return value and escape marker */
447 /* Register variable[3]: Result */
448 variable[3] = CALL_syntax_base___MMSrcModule___src_local_classes(variable[0])(variable[0]) /*MMSrcModule::src_local_classes*/;
449 /* Register variable[3]: For iterator */
450 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*MapRead::iterator*/;
451 while (true) { /*for*/
452 /* Register variable[4]: For 'is_ok' result */
453 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
454 if (!UNTAG_Bool(variable[4])) break; /*for*/
455 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/ /* Ensure var: For item*/;
456 /* Register variable[5]: Local variable */
457 variable[5] = variable[4];
458 /* Register variable[6]: Result */
459 variable[6] = ATTR_compiling_global___MMSrcModule____local_table(variable[0]) /*MMSrcModule::_local_table*/;
460 CALL_compiling_global___MMSrcLocalClass___build_layout_in( variable[5] /*c*/)( variable[5] /*c*/, variable[1] /*tc*/, variable[6]) /*MMSrcLocalClass::build_layout_in*/;
461 continue_10: while(0);
462 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
463 }
464 break_10: while(0);
465 return_label9: while(false);
466 tracehead = trace.prev;
467 return;
468 }
469 val_t compiling_global___MMSrcModule___global_analysis(val_t self, val_t param0) {
470 struct trace_t trace = {NULL, NULL, 168, LOCATE_compiling_global___MMSrcModule___global_analysis};
471 val_t variable[24];
472 struct WBT_ **closurevariable = NULL;
473 trace.prev = tracehead; tracehead = &trace;
474 trace.file = LOCATE_compiling_global;
475 /* Register variable[0]: Local variable */
476 variable[0] = self;
477 /* Register variable[1]: Local variable */
478 variable[1] = param0;
479 /* Register variable[2]: Method return value and escape marker */
480 /* Register variable[3]: Local variable */
481 /* Register variable[4]: Result */
482 variable[4] = NEW_GlobalAnalysis_compiling_global___GlobalAnalysis___init(variable[0]) /*new GlobalAnalysis*/;
483 variable[3] = variable[4];
484 /* Register variable[4]: Local variable */
485 /* Register variable[5]: Result */
486 variable[5] = NEW_Array_array___Array___init() /*new Array[MMLocalClass]*/;
487 variable[4] = variable[5];
488 /* Register variable[5]: Local variable */
489 /* Register variable[6]: Result */
490 variable[6] = NEW_HashSet_hash___HashSet___init() /*new HashSet[MMGlobalProperty]*/;
491 variable[5] = variable[6];
492 /* Register variable[6]: Local variable */
493 /* Register variable[7]: Result */
494 variable[7] = NEW_Array_array___Array___init() /*new Array[TableElt]*/;
495 variable[6] = variable[7];
496 /* Register variable[7]: Local variable */
497 /* Register variable[8]: Result */
498 variable[8] = NEW_Array_array___Array___init() /*new Array[TableElt]*/;
499 variable[7] = variable[8];
500 /* Register variable[8]: Result */
501 variable[8] = NEW_TableEltClassSelfId_compiling_global___AbsTableElt___init() /*new TableEltClassSelfId*/;
502 CALL_abstract_collection___SimpleCollection___add( variable[6] /*ctab*/)( variable[6] /*ctab*/, variable[8]) /*AbstractArray::add*/;
503 /* Register variable[8]: Result */
504 variable[8] = NEW_TableEltVftPointer_compiling_global___AbsTableElt___init() /*new TableEltVftPointer*/;
505 CALL_abstract_collection___SimpleCollection___add( variable[7] /*itab*/)( variable[7] /*itab*/, variable[8]) /*AbstractArray::add*/;
506 /* Register variable[8]: Local variable */
507 /* Register variable[9]: Result */
508 variable[9] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
509 variable[8] = variable[9];
510 /* Register variable[9]: Local variable */
511 variable[9] = TAG_Int(3);
512 /* Register variable[10]: Local variable */
513 /* Register variable[11]: Result */
514 variable[11] = NEW_Array_array___Array___init() /*new Array[MMLocalClass]*/;
515 variable[10] = variable[11];
516 /* Register variable[11]: Result */
517 variable[11] = CALL_abstractmetamodel___MMModule___local_classes(variable[0])(variable[0]) /*MMModule::local_classes*/;
518 /* Register variable[11]: For iterator */
519 variable[11] = CALL_abstract_collection___Collection___iterator(variable[11])(variable[11]) /*AbstractArrayRead::iterator*/;
520 while (true) { /*for*/
521 /* Register variable[12]: For 'is_ok' result */
522 variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*ArrayIterator::is_ok*/;
523 if (!UNTAG_Bool(variable[12])) break; /*for*/
524 variable[12] = CALL_abstract_collection___Iterator___item(variable[11])(variable[11]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
525 /* Register variable[13]: Local variable */
526 variable[13] = variable[12];
527 CALL_inheritance___MMLocalClass___compute_super_classes( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::compute_super_classes*/;
528 CALL_abstract_collection___SimpleCollection___add( variable[10] /*classes*/)( variable[10] /*classes*/, variable[13] /*c*/) /*AbstractArray::add*/;
529 continue_12: while(0);
530 CALL_abstract_collection___Iterator___next(variable[11])(variable[11]) /*ArrayIterator::next*/;
531 }
532 break_12: while(0);
533 /* Register variable[11]: Result */
534 variable[11] = NEW_ClassSorter_compiling_global___ClassSorter___init() /*new ClassSorter*/;
535 CALL_sorter___AbstractSorter___sort(variable[11])(variable[11], variable[10] /*classes*/) /*AbstractSorter::sort*/;
536 /* Register variable[11]: For iterator */
537 variable[11] = CALL_abstract_collection___Collection___iterator( variable[10] /*classes*/)( variable[10] /*classes*/) /*AbstractArrayRead::iterator*/;
538 while (true) { /*for*/
539 /* Register variable[12]: For 'is_ok' result */
540 variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*ArrayIterator::is_ok*/;
541 if (!UNTAG_Bool(variable[12])) break; /*for*/
542 variable[12] = CALL_abstract_collection___Iterator___item(variable[11])(variable[11]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
543 /* Register variable[13]: Local variable */
544 variable[13] = variable[12];
545 CALL_inheritance___MMLocalClass___compute_ancestors( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::compute_ancestors*/;
546 CALL_inheritance___MMLocalClass___inherit_global_properties( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::inherit_global_properties*/;
547 /* Register variable[14]: Local variable */
548 /* Register variable[15]: Result */
549 variable[15] = NEW_CompiledClass_compiling_global___CompiledClass___init( variable[13] /*c*/) /*new CompiledClass*/;
550 variable[14] = variable[15];
551 /* Register variable[15]: Result */
552 variable[15] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[3] /*ga*/)( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
553 /* Register variable[16]: Result */
554 variable[16] = CALL_abstractmetamodel___MMLocalClass___global( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::global*/;
555 CALL_abstract_collection___Map_____braeq(variable[15])(variable[15], variable[16], variable[14] /*cc*/) /*HashMap::[]=*/;
556 /* Register variable[15]: Local variable */
557 /* Register variable[16]: Result */
558 variable[16] = CALL_abstractmetamodel___MMLocalClass___global( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::global*/;
559 variable[15] = variable[16];
560 /* Register variable[16]: Local variable */
561 /* Register variable[17]: Result */
562 variable[17] = CALL_abstractmetamodel___MMGlobalClass___module( variable[15] /*gc*/)( variable[15] /*gc*/) /*MMGlobalClass::module*/;
563 variable[16] = variable[17];
564 /* Register variable[17]: Result */
565 variable[17] = CALL_compiling_base___MMLocalClass___primitive_info( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::primitive_info*/;
566 /* Register variable[17]: Result */
567 variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[17] == NIT_NULL /*null*/) || ((variable[17] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[17])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[17], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[17])(variable[17], NIT_NULL /*null*/) /*Object::==*/)))))));
568 if (UNTAG_Bool(variable[17])) { /*if*/
569 CALL_compiling_global___CompiledClass___id__eq( variable[14] /*cc*/)( variable[14] /*cc*/, variable[8] /*pclassid*/) /*CompiledClass::id=*/;
570 /* Register variable[17]: Result */
571 variable[17] = TAG_Int(UNTAG_Int( variable[8] /*pclassid*/)-UNTAG_Int( TAG_Int(4)));
572 variable[8] = variable[17] /*pclassid=*/;
573 } else { /*if*/
574 CALL_compiling_global___CompiledClass___id__eq( variable[14] /*cc*/)( variable[14] /*cc*/, variable[9] /*classid*/) /*CompiledClass::id=*/;
575 /* Register variable[17]: Result */
576 variable[17] = TAG_Int(UNTAG_Int( variable[9] /*classid*/)+UNTAG_Int( TAG_Int(4)));
577 variable[9] = variable[17] /*classid=*/;
578 }
579 /* Register variable[17]: Result */
580 variable[17] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::cshe*/;
581 /* Register variable[17]: Result */
582 variable[17] = CALL_partial_order___PartialOrderElement___direct_smallers(variable[17])(variable[17]) /*PartialOrderElement::direct_smallers*/;
583 /* Register variable[17]: Result */
584 variable[17] = CALL_abstract_collection___Collection___is_empty(variable[17])(variable[17]) /*AbstractArrayRead::is_empty*/;
585 if (UNTAG_Bool(variable[17])) { /*if*/
586 CALL_abstract_collection___SimpleCollection___add( variable[4] /*smallest_classes*/)( variable[4] /*smallest_classes*/, variable[13] /*c*/) /*AbstractArray::add*/;
587 }
588 /* Register variable[17]: Local variable */
589 /* Register variable[18]: Result */
590 variable[18] = CALL_abstractmetamodel___MMLocalClass___global( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::global*/;
591 /* Register variable[18]: Result */
592 variable[18] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[18])(variable[18]) /*MMGlobalClass::intro*/;
593 variable[17] = variable[18];
594 /* Register variable[18]: Result */
595 variable[18] = TAG_Bool(( variable[17] /*bc*/==NIT_NULL) || VAL_ISA( variable[17] /*bc*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
596 if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMSrcModule___global_analysis, LOCATE_compiling_global, 220); nit_exit(1);}
597 /* Register variable[18]: Result */
598 variable[18] = CALL_compiling_global___MMSrcLocalClass___class_color_pos( variable[17] /*bc*/)( variable[17] /*bc*/) /*MMSrcLocalClass::class_color_pos*/;
599 CALL_abstract_collection___SimpleCollection___add( variable[6] /*ctab*/)( variable[6] /*ctab*/, variable[18]) /*AbstractArray::add*/;
600 continue_13: while(0);
601 CALL_abstract_collection___Iterator___next(variable[11])(variable[11]) /*ArrayIterator::next*/;
602 }
603 break_13: while(0);
604 /* Register variable[11]: Local variable */
605 /* Register variable[12]: Result */
606 variable[12] = NEW_HashSet_hash___HashSet___init() /*new HashSet[MMLocalClass]*/;
607 variable[11] = variable[12];
608 /* Register variable[12]: Local variable */
609 /* Register variable[13]: Result */
610 variable[13] = NEW_HashSet_hash___HashSet___init() /*new HashSet[MMLocalClass]*/;
611 variable[12] = variable[13];
612 /* Register variable[13]: For iterator */
613 variable[13] = CALL_abstract_collection___Collection___iterator( variable[4] /*smallest_classes*/)( variable[4] /*smallest_classes*/) /*AbstractArrayRead::iterator*/;
614 while (true) { /*for*/
615 /* Register variable[14]: For 'is_ok' result */
616 variable[14] = CALL_abstract_collection___Iterator___is_ok(variable[13])(variable[13]) /*ArrayIterator::is_ok*/;
617 if (!UNTAG_Bool(variable[14])) break; /*for*/
618 variable[14] = CALL_abstract_collection___Iterator___item(variable[13])(variable[13]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
619 /* Register variable[15]: Local variable */
620 variable[15] = variable[14];
621 while (true) { /*while*/
622 /* Register variable[16]: Result */
623 variable[16] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[15] /*c*/)( variable[15] /*c*/) /*MMLocalClass::cshe*/;
624 /* Register variable[16]: Result */
625 variable[16] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[16])(variable[16]) /*PartialOrderElement::direct_greaters*/;
626 /* Register variable[16]: Result */
627 variable[16] = CALL_abstract_collection___Collection___length(variable[16])(variable[16]) /*AbstractArrayRead::length*/;
628 /* Register variable[16]: Result */
629 variable[16] = TAG_Bool((variable[16])==( TAG_Int(1)));
630 if (!UNTAG_Bool(variable[16])) break; /* while*/
631 /* Register variable[16]: Result */
632 variable[16] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[15] /*c*/)( variable[15] /*c*/) /*MMLocalClass::cshe*/;
633 /* Register variable[16]: Result */
634 variable[16] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[16])(variable[16]) /*PartialOrderElement::direct_greaters*/;
635 /* Register variable[16]: Result */
636 variable[16] = CALL_abstract_collection___Collection___first(variable[16])(variable[16]) /*IndexedCollectionRead::first*/;
637 variable[15] = variable[16] /*c=*/;
638 continue_15: while(0);
639 }
640 break_15: while(0);
641 CALL_abstract_collection___SimpleCollection___add( variable[11] /*crown_classes*/)( variable[11] /*crown_classes*/, variable[15] /*c*/) /*HashSet::add*/;
642 /* Register variable[16]: Result */
643 variable[16] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[15] /*c*/)( variable[15] /*c*/) /*MMLocalClass::cshe*/;
644 /* Register variable[16]: Result */
645 variable[16] = CALL_partial_order___PartialOrderElement___greaters_and_self(variable[16])(variable[16]) /*PartialOrderElement::greaters_and_self*/;
646 CALL_abstract_collection___SimpleCollection___add_all( variable[12] /*core_classes*/)( variable[12] /*core_classes*/, variable[16]) /*SimpleCollection::add_all*/;
647 continue_14: while(0);
648 CALL_abstract_collection___Iterator___next(variable[13])(variable[13]) /*ArrayIterator::next*/;
649 }
650 break_14: while(0);
651 CALL_compiling_global___MMSrcModule___colorize(variable[0])(variable[0], variable[3] /*ga*/, variable[6] /*ctab*/, variable[11] /*crown_classes*/, TAG_Int(0)) /*MMSrcModule::colorize*/;
652 /* Register variable[13]: Local variable */
653 variable[13] = TAG_Int(0);
654 /* Register variable[14]: For iterator */
655 variable[14] = CALL_abstract_collection___Collection___iterator( variable[10] /*classes*/)( variable[10] /*classes*/) /*AbstractArrayRead::iterator*/;
656 while (true) { /*for*/
657 /* Register variable[15]: For 'is_ok' result */
658 variable[15] = CALL_abstract_collection___Iterator___is_ok(variable[14])(variable[14]) /*ArrayIterator::is_ok*/;
659 if (!UNTAG_Bool(variable[15])) break; /*for*/
660 variable[15] = CALL_abstract_collection___Iterator___item(variable[14])(variable[14]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
661 /* Register variable[16]: Local variable */
662 variable[16] = variable[15];
663 /* Register variable[17]: Local variable */
664 /* Register variable[18]: Result */
665 variable[18] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[3] /*ga*/)( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
666 /* Register variable[19]: Result */
667 variable[19] = CALL_abstractmetamodel___MMLocalClass___global( variable[16] /*c*/)( variable[16] /*c*/) /*MMLocalClass::global*/;
668 /* Register variable[18]: Result */
669 variable[18] = CALL_abstract_collection___MapRead_____bra(variable[18])(variable[18], variable[19]) /*CoupleMap::[]*/;
670 variable[17] = variable[18];
671 /* Register variable[18]: Result */
672 variable[18] = CALL_abstract_collection___Collection___has( variable[12] /*core_classes*/)( variable[12] /*core_classes*/, variable[16] /*c*/) /*HashSet::has*/;
673 if (UNTAG_Bool(variable[18])) { /*if*/
674 /* Register variable[18]: Result */
675 variable[18] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
676 CALL_compiling_global___MMSrcModule___build_tables_in(variable[0])(variable[0], variable[18], variable[3] /*ga*/, variable[16] /*c*/, variable[6] /*ctab*/) /*MMSrcModule::build_tables_in*/;
677 /* Register variable[18]: Result */
678 variable[18] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
679 /* Register variable[18]: Result */
680 variable[18] = CALL_abstract_collection___Collection___length(variable[18])(variable[18]) /*AbstractArrayRead::length*/;
681 /* Register variable[18]: Result */
682 variable[18] = TAG_Bool(UNTAG_Int( variable[13] /*maxcolor*/)<UNTAG_Int(variable[18]));
683 if (UNTAG_Bool(variable[18])) { /*if*/
684 /* Register variable[18]: Result */
685 variable[18] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
686 /* Register variable[18]: Result */
687 variable[18] = CALL_abstract_collection___Collection___length(variable[18])(variable[18]) /*AbstractArrayRead::length*/;
688 variable[13] = variable[18] /*maxcolor=*/;
689 }
690 } else { /*if*/
691 /* Register variable[18]: Local variable */
692 /* Register variable[19]: Result */
693 variable[19] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[16] /*c*/)( variable[16] /*c*/) /*MMLocalClass::cshe*/;
694 /* Register variable[19]: Result */
695 variable[19] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[19])(variable[19]) /*PartialOrderElement::direct_greaters*/;
696 /* Register variable[19]: Result */
697 variable[19] = CALL_abstract_collection___Collection___first(variable[19])(variable[19]) /*IndexedCollectionRead::first*/;
698 variable[18] = variable[19];
699 /* Register variable[19]: Local variable */
700 /* Register variable[20]: Result */
701 variable[20] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[3] /*ga*/)( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
702 /* Register variable[21]: Result */
703 variable[21] = CALL_abstractmetamodel___MMLocalClass___global( variable[18] /*sc*/)( variable[18] /*sc*/) /*MMLocalClass::global*/;
704 /* Register variable[20]: Result */
705 variable[20] = CALL_abstract_collection___MapRead_____bra(variable[20])(variable[20], variable[21]) /*CoupleMap::[]*/;
706 variable[19] = variable[20];
707 /* Register variable[20]: Result */
708 variable[20] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
709 /* Register variable[20]: Result */
710 variable[20] = CALL_abstract_collection___Collection___is_empty(variable[20])(variable[20]) /*AbstractArrayRead::is_empty*/;
711 if (!UNTAG_Bool(variable[20])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMSrcModule___global_analysis, LOCATE_compiling_global, 251); nit_exit(1);}
712 /* Register variable[20]: Result */
713 variable[20] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
714 /* Register variable[21]: Result */
715 variable[21] = CALL_compiling_global___CompiledClass___class_table( variable[19] /*scc*/)( variable[19] /*scc*/) /*CompiledClass::class_table*/;
716 CALL_abstract_collection___SimpleCollection___add_all(variable[20])(variable[20], variable[21]) /*SimpleCollection::add_all*/;
717 /* Register variable[20]: Local variable */
718 /* Register variable[21]: Result */
719 variable[21] = CALL_abstractmetamodel___MMLocalClass___global( variable[16] /*c*/)( variable[16] /*c*/) /*MMLocalClass::global*/;
720 /* Register variable[21]: Result */
721 variable[21] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[21])(variable[21]) /*MMGlobalClass::intro*/;
722 variable[20] = variable[21];
723 /* Register variable[21]: Result */
724 variable[21] = TAG_Bool(( variable[20] /*bc*/==NIT_NULL) || VAL_ISA( variable[20] /*bc*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
725 if (!UNTAG_Bool(variable[21])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMSrcModule___global_analysis, LOCATE_compiling_global, 254); nit_exit(1);}
726 /* Register variable[21]: Local variable */
727 /* Register variable[22]: Result */
728 variable[22] = CALL_compiling_global___MMSrcLocalClass___class_color_pos( variable[20] /*bc*/)( variable[20] /*bc*/) /*MMSrcLocalClass::class_color_pos*/;
729 variable[21] = variable[22];
730 /* Register variable[22]: Local variable */
731 /* Register variable[23]: Result */
732 variable[23] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
733 /* Register variable[23]: Result */
734 variable[23] = CALL_abstract_collection___Collection___length(variable[23])(variable[23]) /*AbstractArrayRead::length*/;
735 variable[22] = variable[23];
736 CALL_compiling_global___ColorContext___color__eq( variable[3] /*ga*/)( variable[3] /*ga*/, variable[21] /*colpos*/, variable[22] /*colposcolor*/) /*ColorContext::color=*/;
737 /* Register variable[23]: Result */
738 variable[23] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
739 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[21] /*colpos*/) /*AbstractArray::add*/;
740 /* Register variable[23]: Result */
741 variable[23] = TAG_Bool(UNTAG_Int( variable[13] /*maxcolor*/)<UNTAG_Int( variable[22] /*colposcolor*/));
742 if (UNTAG_Bool(variable[23])) { /*if*/
743 variable[13] = variable[22] /*colposcolor*/ /*maxcolor=*/;
744 }
745 }
746 continue_16: while(0);
747 CALL_abstract_collection___Iterator___next(variable[14])(variable[14]) /*ArrayIterator::next*/;
748 }
749 break_16: while(0);
750 /* Register variable[14]: Result */
751 variable[14] = TAG_Int(UNTAG_Int( variable[13] /*maxcolor*/)+UNTAG_Int( TAG_Int(1)));
752 CALL_compiling_global___GlobalAnalysis___max_class_table_length__eq( variable[3] /*ga*/)( variable[3] /*ga*/, variable[14]) /*GlobalAnalysis::max_class_table_length=*/;
753 /* Register variable[14]: For iterator */
754 variable[14] = CALL_abstract_collection___Collection___iterator( variable[10] /*classes*/)( variable[10] /*classes*/) /*AbstractArrayRead::iterator*/;
755 while (true) { /*for*/
756 /* Register variable[15]: For 'is_ok' result */
757 variable[15] = CALL_abstract_collection___Iterator___is_ok(variable[14])(variable[14]) /*ArrayIterator::is_ok*/;
758 if (!UNTAG_Bool(variable[15])) break; /*for*/
759 variable[15] = CALL_abstract_collection___Iterator___item(variable[14])(variable[14]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
760 /* Register variable[16]: Local variable */
761 variable[16] = variable[15];
762 /* Register variable[17]: Local variable */
763 /* Register variable[18]: Result */
764 variable[18] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[3] /*ga*/)( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
765 /* Register variable[19]: Result */
766 variable[19] = CALL_abstractmetamodel___MMLocalClass___global( variable[16] /*c*/)( variable[16] /*c*/) /*MMLocalClass::global*/;
767 /* Register variable[18]: Result */
768 variable[18] = CALL_abstract_collection___MapRead_____bra(variable[18])(variable[18], variable[19]) /*CoupleMap::[]*/;
769 variable[17] = variable[18];
770 /* Register variable[18]: Local variable */
771 /* Register variable[19]: Result */
772 variable[19] = CALL_compiling_global___CompiledClass___class_layout( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_layout*/;
773 variable[18] = variable[19];
774 /* Register variable[19]: Local variable */
775 /* Register variable[20]: Result */
776 variable[20] = CALL_compiling_global___CompiledClass___instance_layout( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::instance_layout*/;
777 variable[19] = variable[20];
778 /* Register variable[20]: Result */
779 variable[20] = CALL_abstractmetamodel___MMLocalClass___crhe( variable[16] /*c*/)( variable[16] /*c*/) /*MMLocalClass::crhe*/;
780 /* Register variable[20]: Result */
781 variable[20] = CALL_partial_order___PartialOrderElement___greaters_and_self(variable[20])(variable[20]) /*PartialOrderElement::greaters_and_self*/;
782 /* Register variable[20]: For iterator */
783 variable[20] = CALL_abstract_collection___Collection___iterator(variable[20])(variable[20]) /*Collection::iterator*/;
784 while (true) { /*for*/
785 /* Register variable[21]: For 'is_ok' result */
786 variable[21] = CALL_abstract_collection___Iterator___is_ok(variable[20])(variable[20]) /*Iterator::is_ok*/;
787 if (!UNTAG_Bool(variable[21])) break; /*for*/
788 variable[21] = CALL_abstract_collection___Iterator___item(variable[20])(variable[20]) /*Iterator::item*/ /* Ensure var: For item*/;
789 /* Register variable[22]: Local variable */
790 variable[22] = variable[21];
791 /* Register variable[23]: Result */
792 variable[23] = TAG_Bool(( variable[22] /*sc*/==NIT_NULL) || VAL_ISA( variable[22] /*sc*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
793 if (UNTAG_Bool(variable[23])) { /*if*/
794 /* Register variable[23]: Result */
795 variable[23] = CALL_compiling_global___MMSrcLocalClass___class_layout( variable[22] /*sc*/)( variable[22] /*sc*/) /*MMSrcLocalClass::class_layout*/;
796 CALL_compiling_global___TableEltComposite___add( variable[18] /*cte*/)( variable[18] /*cte*/, variable[22] /*sc*/, variable[23]) /*TableEltComposite::add*/;
797 /* Register variable[23]: Result */
798 variable[23] = CALL_compiling_global___MMSrcLocalClass___instance_layout( variable[22] /*sc*/)( variable[22] /*sc*/) /*MMSrcLocalClass::instance_layout*/;
799 CALL_compiling_global___TableEltComposite___add( variable[19] /*ite*/)( variable[19] /*ite*/, variable[22] /*sc*/, variable[23]) /*TableEltComposite::add*/;
800 }
801 continue_18: while(0);
802 CALL_abstract_collection___Iterator___next(variable[20])(variable[20]) /*Iterator::next*/;
803 }
804 break_18: while(0);
805 /* Register variable[20]: Result */
806 variable[20] = CALL_abstract_collection___Collection___has( variable[12] /*core_classes*/)( variable[12] /*core_classes*/, variable[16] /*c*/) /*HashSet::has*/;
807 if (UNTAG_Bool(variable[20])) { /*if*/
808 /* Register variable[20]: Result */
809 variable[20] = CALL_compiling_global___TableElt___length( variable[18] /*cte*/)( variable[18] /*cte*/) /*TableEltComposite::length*/;
810 /* Register variable[20]: Result */
811 variable[20] = TAG_Bool(UNTAG_Int(variable[20])>UNTAG_Int( TAG_Int(0)));
812 if (UNTAG_Bool(variable[20])) { /*if*/
813 CALL_abstract_collection___SimpleCollection___add( variable[6] /*ctab*/)( variable[6] /*ctab*/, variable[18] /*cte*/) /*AbstractArray::add*/;
814 }
815 /* Register variable[20]: Result */
816 variable[20] = CALL_compiling_global___TableElt___length( variable[19] /*ite*/)( variable[19] /*ite*/) /*TableEltComposite::length*/;
817 /* Register variable[20]: Result */
818 variable[20] = TAG_Bool(UNTAG_Int(variable[20])>UNTAG_Int( TAG_Int(0)));
819 if (UNTAG_Bool(variable[20])) { /*if*/
820 CALL_abstract_collection___SimpleCollection___add( variable[7] /*itab*/)( variable[7] /*itab*/, variable[19] /*ite*/) /*AbstractArray::add*/;
821 }
822 }
823 continue_17: while(0);
824 CALL_abstract_collection___Iterator___next(variable[14])(variable[14]) /*ArrayIterator::next*/;
825 }
826 break_17: while(0);
827 /* Register variable[14]: Result */
828 variable[14] = TAG_Int(UNTAG_Int( variable[13] /*maxcolor*/)+UNTAG_Int( TAG_Int(1)));
829 CALL_compiling_global___MMSrcModule___colorize(variable[0])(variable[0], variable[3] /*ga*/, variable[6] /*ctab*/, variable[11] /*crown_classes*/, variable[14]) /*MMSrcModule::colorize*/;
830 CALL_compiling_global___MMSrcModule___colorize(variable[0])(variable[0], variable[3] /*ga*/, variable[7] /*itab*/, variable[11] /*crown_classes*/, TAG_Int(0)) /*MMSrcModule::colorize*/;
831 CALL_compiling_global___GlobalAnalysis___max_class_table_length__eq( variable[3] /*ga*/)( variable[3] /*ga*/, TAG_Int(0)) /*GlobalAnalysis::max_class_table_length=*/;
832 /* Register variable[14]: For iterator */
833 variable[14] = CALL_abstract_collection___Collection___iterator( variable[10] /*classes*/)( variable[10] /*classes*/) /*AbstractArrayRead::iterator*/;
834 while (true) { /*for*/
835 /* Register variable[15]: For 'is_ok' result */
836 variable[15] = CALL_abstract_collection___Iterator___is_ok(variable[14])(variable[14]) /*ArrayIterator::is_ok*/;
837 if (!UNTAG_Bool(variable[15])) break; /*for*/
838 variable[15] = CALL_abstract_collection___Iterator___item(variable[14])(variable[14]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
839 /* Register variable[16]: Local variable */
840 variable[16] = variable[15];
841 /* Register variable[17]: Local variable */
842 /* Register variable[18]: Result */
843 variable[18] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[3] /*ga*/)( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
844 /* Register variable[19]: Result */
845 variable[19] = CALL_abstractmetamodel___MMLocalClass___global( variable[16] /*c*/)( variable[16] /*c*/) /*MMLocalClass::global*/;
846 /* Register variable[18]: Result */
847 variable[18] = CALL_abstract_collection___MapRead_____bra(variable[18])(variable[18], variable[19]) /*CoupleMap::[]*/;
848 variable[17] = variable[18];
849 /* Register variable[18]: Result */
850 variable[18] = CALL_abstract_collection___Collection___has( variable[12] /*core_classes*/)( variable[12] /*core_classes*/, variable[16] /*c*/) /*HashSet::has*/;
851 if (UNTAG_Bool(variable[18])) { /*if*/
852 /* Register variable[18]: Result */
853 variable[18] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
854 CALL_compiling_global___MMSrcModule___build_tables_in(variable[0])(variable[0], variable[18], variable[3] /*ga*/, variable[16] /*c*/, variable[6] /*ctab*/) /*MMSrcModule::build_tables_in*/;
855 /* Register variable[18]: Result */
856 variable[18] = CALL_compiling_global___CompiledClass___instance_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::instance_table*/;
857 CALL_compiling_global___MMSrcModule___build_tables_in(variable[0])(variable[0], variable[18], variable[3] /*ga*/, variable[16] /*c*/, variable[7] /*itab*/) /*MMSrcModule::build_tables_in*/;
858 } else { /*if*/
859 /* Register variable[18]: Local variable */
860 /* Register variable[19]: Result */
861 variable[19] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[16] /*c*/)( variable[16] /*c*/) /*MMLocalClass::cshe*/;
862 /* Register variable[19]: Result */
863 variable[19] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[19])(variable[19]) /*PartialOrderElement::direct_greaters*/;
864 /* Register variable[19]: Result */
865 variable[19] = CALL_abstract_collection___Collection___first(variable[19])(variable[19]) /*IndexedCollectionRead::first*/;
866 variable[18] = variable[19];
867 /* Register variable[19]: Local variable */
868 /* Register variable[20]: Result */
869 variable[20] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[3] /*ga*/)( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
870 /* Register variable[21]: Result */
871 variable[21] = CALL_abstractmetamodel___MMLocalClass___global( variable[18] /*sc*/)( variable[18] /*sc*/) /*MMLocalClass::global*/;
872 /* Register variable[20]: Result */
873 variable[20] = CALL_abstract_collection___MapRead_____bra(variable[20])(variable[20], variable[21]) /*CoupleMap::[]*/;
874 variable[19] = variable[20];
875 /* Register variable[20]: Result */
876 variable[20] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
877 CALL_abstract_collection___RemovableCollection___clear(variable[20])(variable[20]) /*AbstractArray::clear*/;
878 /* Register variable[20]: Result */
879 variable[20] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
880 /* Register variable[21]: Result */
881 variable[21] = CALL_compiling_global___CompiledClass___class_table( variable[19] /*scc*/)( variable[19] /*scc*/) /*CompiledClass::class_table*/;
882 CALL_abstract_collection___SimpleCollection___add_all(variable[20])(variable[20], variable[21]) /*SimpleCollection::add_all*/;
883 /* Register variable[20]: Local variable */
884 /* Register variable[21]: Result */
885 variable[21] = CALL_abstractmetamodel___MMLocalClass___global( variable[16] /*c*/)( variable[16] /*c*/) /*MMLocalClass::global*/;
886 /* Register variable[21]: Result */
887 variable[21] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[21])(variable[21]) /*MMGlobalClass::intro*/;
888 variable[20] = variable[21];
889 /* Register variable[21]: Result */
890 variable[21] = TAG_Bool(( variable[20] /*bc*/==NIT_NULL) || VAL_ISA( variable[20] /*bc*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
891 if (!UNTAG_Bool(variable[21])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMSrcModule___global_analysis, LOCATE_compiling_global, 305); nit_exit(1);}
892 /* Register variable[21]: Local variable */
893 /* Register variable[22]: Result */
894 variable[22] = CALL_compiling_global___MMSrcLocalClass___class_color_pos( variable[20] /*bc*/)( variable[20] /*bc*/) /*MMSrcLocalClass::class_color_pos*/;
895 variable[21] = variable[22];
896 /* Register variable[22]: Result */
897 variable[22] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
898 /* Register variable[23]: Result */
899 variable[23] = CALL_compiling_global___ColorContext___color( variable[3] /*ga*/)( variable[3] /*ga*/, variable[21] /*colpos*/) /*ColorContext::color*/;
900 CALL_abstract_collection___Map_____braeq(variable[22])(variable[22], variable[23], variable[21] /*colpos*/) /*Array::[]=*/;
901 while (true) { /*while*/
902 /* Register variable[22]: Result */
903 variable[22] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
904 /* Register variable[22]: Result */
905 variable[22] = CALL_abstract_collection___Collection___length(variable[22])(variable[22]) /*AbstractArrayRead::length*/;
906 /* Register variable[22]: Result */
907 variable[22] = TAG_Bool(UNTAG_Int(variable[22])<=UNTAG_Int( variable[13] /*maxcolor*/));
908 if (!UNTAG_Bool(variable[22])) break; /* while*/
909 /* Register variable[22]: Result */
910 variable[22] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
911 CALL_abstract_collection___SimpleCollection___add(variable[22])(variable[22], NIT_NULL /*null*/) /*AbstractArray::add*/;
912 continue_20: while(0);
913 }
914 break_20: while(0);
915 /* Register variable[22]: Result */
916 variable[22] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
917 /* Register variable[23]: Result */
918 variable[23] = CALL_compiling_global___CompiledClass___class_layout( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_layout*/;
919 CALL_compiling_global___MMSrcModule___append_to_table(variable[0])(variable[0], variable[3] /*ga*/, variable[22], variable[23]) /*MMSrcModule::append_to_table*/;
920 /* Register variable[22]: Result */
921 variable[22] = CALL_compiling_global___CompiledClass___instance_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::instance_table*/;
922 /* Register variable[22]: Result */
923 variable[22] = CALL_abstract_collection___Collection___is_empty(variable[22])(variable[22]) /*AbstractArrayRead::is_empty*/;
924 if (!UNTAG_Bool(variable[22])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMSrcModule___global_analysis, LOCATE_compiling_global, 312); nit_exit(1);}
925 /* Register variable[22]: Result */
926 variable[22] = CALL_compiling_global___CompiledClass___instance_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::instance_table*/;
927 /* Register variable[23]: Result */
928 variable[23] = CALL_compiling_global___CompiledClass___instance_table( variable[19] /*scc*/)( variable[19] /*scc*/) /*CompiledClass::instance_table*/;
929 CALL_abstract_collection___SimpleCollection___add_all(variable[22])(variable[22], variable[23]) /*SimpleCollection::add_all*/;
930 /* Register variable[22]: Result */
931 variable[22] = CALL_compiling_global___CompiledClass___instance_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::instance_table*/;
932 /* Register variable[23]: Result */
933 variable[23] = CALL_compiling_global___CompiledClass___instance_layout( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::instance_layout*/;
934 CALL_compiling_global___MMSrcModule___append_to_table(variable[0])(variable[0], variable[3] /*ga*/, variable[22], variable[23]) /*MMSrcModule::append_to_table*/;
935 }
936 continue_19: while(0);
937 CALL_abstract_collection___Iterator___next(variable[14])(variable[14]) /*ArrayIterator::next*/;
938 }
939 break_19: while(0);
940 variable[2] = variable[3] /*ga*/;
941 goto return_label11;
942 return_label11: while(false);
943 tracehead = trace.prev;
944 return variable[2];
945 }
946 void compiling_global___MMSrcModule___append_to_table(val_t self, val_t param0, val_t param1, val_t param2) {
947 struct trace_t trace = {NULL, NULL, 321, LOCATE_compiling_global___MMSrcModule___append_to_table};
948 val_t variable[10];
949 struct WBT_ **closurevariable = NULL;
950 trace.prev = tracehead; tracehead = &trace;
951 trace.file = LOCATE_compiling_global;
952 /* Register variable[0]: Local variable */
953 variable[0] = self;
954 /* Register variable[1]: Local variable */
955 variable[1] = param0;
956 /* Register variable[2]: Local variable */
957 variable[2] = param1;
958 /* Register variable[3]: Local variable */
959 variable[3] = param2;
960 /* Register variable[4]: Method return value and escape marker */
961 /* Register variable[5]: Result */
962 variable[5] = CALL_compiling_global___TableElt___length( variable[3] /*cmp*/)( variable[3] /*cmp*/) /*TableEltComposite::length*/;
963 /* Register variable[5]: Result */
964 variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[5]) /*new Range[Int]*/;
965 /* Register variable[5]: For iterator */
966 variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*Range::iterator*/;
967 while (true) { /*for*/
968 /* Register variable[6]: For 'is_ok' result */
969 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
970 if (!UNTAG_Bool(variable[6])) break; /*for*/
971 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/ /* Ensure var: For item*/;
972 /* Register variable[7]: Local variable */
973 variable[7] = variable[6];
974 /* Register variable[8]: Local variable */
975 /* Register variable[9]: Result */
976 variable[9] = CALL_compiling_global___TableElt___item( variable[3] /*cmp*/)( variable[3] /*cmp*/, variable[7] /*j*/) /*TableEltComposite::item*/;
977 variable[8] = variable[9];
978 /* Register variable[9]: Result */
979 variable[9] = CALL_abstract_collection___Collection___length( variable[2] /*table*/)( variable[2] /*table*/) /*AbstractArrayRead::length*/;
980 CALL_compiling_global___ColorContext___color__eq( variable[1] /*cc*/)( variable[1] /*cc*/, variable[8] /*e*/, variable[9]) /*ColorContext::color=*/;
981 CALL_abstract_collection___SimpleCollection___add( variable[2] /*table*/)( variable[2] /*table*/, variable[8] /*e*/) /*AbstractArray::add*/;
982 continue_22: while(0);
983 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
984 }
985 break_22: while(0);
986 return_label21: while(false);
987 tracehead = trace.prev;
988 return;
989 }
990 void compiling_global___MMSrcModule___build_tables_in(val_t self, val_t param0, val_t param1, val_t param2, val_t param3) {
991 struct trace_t trace = {NULL, NULL, 330, LOCATE_compiling_global___MMSrcModule___build_tables_in};
992 val_t variable[14];
993 struct WBT_ **closurevariable = NULL;
994 trace.prev = tracehead; tracehead = &trace;
995 trace.file = LOCATE_compiling_global;
996 /* Register variable[0]: Local variable */
997 variable[0] = self;
998 /* Register variable[1]: Local variable */
999 variable[1] = param0;
1000 /* Register variable[2]: Local variable */
1001 variable[2] = param1;
1002 /* Register variable[3]: Local variable */
1003 variable[3] = param2;
1004 /* Register variable[4]: Local variable */
1005 variable[4] = param3;
1006 /* Register variable[5]: Method return value and escape marker */
1007 /* Register variable[6]: Local variable */
1008 /* Register variable[7]: Result */
1009 variable[7] = NEW_HashMap_hash___HashMap___init() /*new HashMap[Int, TableElt]*/;
1010 variable[6] = variable[7];
1011 /* Register variable[7]: Local variable */
1012 variable[7] = TAG_Int(0);
1013 /* Register variable[8]: For iterator */
1014 variable[8] = CALL_abstract_collection___Collection___iterator( variable[4] /*elts*/)( variable[4] /*elts*/) /*AbstractArrayRead::iterator*/;
1015 while (true) { /*for*/
1016 /* Register variable[9]: For 'is_ok' result */
1017 variable[9] = CALL_abstract_collection___Iterator___is_ok(variable[8])(variable[8]) /*ArrayIterator::is_ok*/;
1018 if (!UNTAG_Bool(variable[9])) break; /*for*/
1019 variable[9] = CALL_abstract_collection___Iterator___item(variable[8])(variable[8]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
1020 /* Register variable[10]: Local variable */
1021 variable[10] = variable[9];
1022 /* Register variable[11]: Result */
1023 variable[11] = CALL_compiling_global___TableElt___is_related_to( variable[10] /*e*/)( variable[10] /*e*/, variable[3] /*c*/) /*TableElt::is_related_to*/;
1024 if (UNTAG_Bool(variable[11])) { /*if*/
1025 /* Register variable[11]: Local variable */
1026 /* Register variable[12]: Result */
1027 variable[12] = CALL_compiling_global___ColorContext___color( variable[2] /*ga*/)( variable[2] /*ga*/, variable[10] /*e*/) /*ColorContext::color*/;
1028 variable[11] = variable[12];
1029 /* Register variable[12]: Local variable */
1030 /* Register variable[13]: Result */
1031 variable[13] = CALL_compiling_global___TableElt___length( variable[10] /*e*/)( variable[10] /*e*/) /*TableElt::length*/;
1032 /* Register variable[13]: Result */
1033 variable[13] = TAG_Int(UNTAG_Int( variable[11] /*col*/)+UNTAG_Int(variable[13]));
1034 variable[12] = variable[13];
1035 CALL_abstract_collection___Map_____braeq( variable[6] /*tab*/)( variable[6] /*tab*/, variable[11] /*col*/, variable[10] /*e*/) /*HashMap::[]=*/;
1036 /* Register variable[13]: Result */
1037 variable[13] = TAG_Bool(UNTAG_Int( variable[7] /*len*/)<UNTAG_Int( variable[12] /*l*/));
1038 if (UNTAG_Bool(variable[13])) { /*if*/
1039 variable[7] = variable[12] /*l*/ /*len=*/;
1040 }
1041 }
1042 continue_24: while(0);
1043 CALL_abstract_collection___Iterator___next(variable[8])(variable[8]) /*ArrayIterator::next*/;
1044 }
1045 break_24: while(0);
1046 /* Register variable[8]: Local variable */
1047 variable[8] = TAG_Int(0);
1048 while (true) { /*while*/
1049 /* Register variable[9]: Result */
1050 variable[9] = TAG_Bool(UNTAG_Int( variable[8] /*i*/)<UNTAG_Int( variable[7] /*len*/));
1051 if (!UNTAG_Bool(variable[9])) break; /* while*/
1052 /* Register variable[9]: Result */
1053 variable[9] = CALL_abstract_collection___MapRead___has_key( variable[6] /*tab*/)( variable[6] /*tab*/, variable[8] /*i*/) /*CoupleMap::has_key*/;
1054 if (UNTAG_Bool(variable[9])) { /*if*/
1055 /* Register variable[9]: Local variable */
1056 /* Register variable[10]: Result */
1057 variable[10] = CALL_abstract_collection___MapRead_____bra( variable[6] /*tab*/)( variable[6] /*tab*/, variable[8] /*i*/) /*CoupleMap::[]*/;
1058 variable[9] = variable[10];
1059 /* Register variable[10]: Result */
1060 variable[10] = CALL_compiling_global___TableElt___length( variable[9] /*e*/)( variable[9] /*e*/) /*TableElt::length*/;
1061 /* Register variable[10]: Result */
1062 variable[10] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[10]) /*new Range[Int]*/;
1063 /* Register variable[10]: For iterator */
1064 variable[10] = CALL_abstract_collection___Collection___iterator(variable[10])(variable[10]) /*Range::iterator*/;
1065 while (true) { /*for*/
1066 /* Register variable[11]: For 'is_ok' result */
1067 variable[11] = CALL_abstract_collection___Iterator___is_ok(variable[10])(variable[10]) /*Iterator::is_ok*/;
1068 if (!UNTAG_Bool(variable[11])) break; /*for*/
1069 variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*Iterator::item*/ /* Ensure var: For item*/;
1070 /* Register variable[12]: Local variable */
1071 variable[12] = variable[11];
1072 /* Register variable[13]: Result */
1073 variable[13] = CALL_compiling_global___TableElt___item( variable[9] /*e*/)( variable[9] /*e*/, variable[12] /*j*/) /*TableElt::item*/;
1074 CALL_abstract_collection___Map_____braeq( variable[1] /*table*/)( variable[1] /*table*/, variable[8] /*i*/, variable[13]) /*Array::[]=*/;
1075 /* Register variable[13]: Result */
1076 variable[13] = TAG_Int(UNTAG_Int( variable[8] /*i*/)+UNTAG_Int( TAG_Int(1)));
1077 variable[8] = variable[13] /*i=*/;
1078 continue_26: while(0);
1079 CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*Iterator::next*/;
1080 }
1081 break_26: while(0);
1082 } else { /*if*/
1083 CALL_abstract_collection___Map_____braeq( variable[1] /*table*/)( variable[1] /*table*/, variable[8] /*i*/, NIT_NULL /*null*/) /*Array::[]=*/;
1084 /* Register variable[9]: Result */
1085 variable[9] = TAG_Int(UNTAG_Int( variable[8] /*i*/)+UNTAG_Int( TAG_Int(1)));
1086 variable[8] = variable[9] /*i=*/;
1087 }
1088 continue_25: while(0);
1089 }
1090 break_25: while(0);
1091 return_label23: while(false);
1092 tracehead = trace.prev;
1093 return;
1094 }
1095 void compiling_global___MMSrcModule___colorize(val_t self, val_t param0, val_t param1, val_t param2, val_t param3) {
1096 struct trace_t trace = {NULL, NULL, 359, LOCATE_compiling_global___MMSrcModule___colorize};
1097 val_t variable[19];
1098 struct WBT_ **closurevariable = NULL;
1099 trace.prev = tracehead; tracehead = &trace;
1100 trace.file = LOCATE_compiling_global;
1101 /* Register variable[0]: Local variable */
1102 variable[0] = self;
1103 /* Register variable[1]: Local variable */
1104 variable[1] = param0;
1105 /* Register variable[2]: Local variable */
1106 variable[2] = param1;
1107 /* Register variable[3]: Local variable */
1108 variable[3] = param2;
1109 /* Register variable[4]: Local variable */
1110 variable[4] = param3;
1111 /* Register variable[5]: Method return value and escape marker */
1112 /* Register variable[6]: Local variable */
1113 /* Register variable[7]: Result */
1114 variable[7] = NEW_HashMap_hash___HashMap___init() /*new HashMap[Int, Array[TableElt]]*/;
1115 variable[6] = variable[7];
1116 /* Register variable[7]: Local variable */
1117 /* Register variable[8]: Result */
1118 variable[8] = NEW_Array_array___Array___init() /*new Array[MMLocalClass]*/;
1119 variable[7] = variable[8];
1120 /* Register variable[8]: For iterator */
1121 variable[8] = CALL_abstract_collection___Collection___iterator( variable[2] /*elts*/)( variable[2] /*elts*/) /*AbstractArrayRead::iterator*/;
1122 while (true) { /*for*/
1123 /* Register variable[9]: For 'is_ok' result */
1124 variable[9] = CALL_abstract_collection___Iterator___is_ok(variable[8])(variable[8]) /*ArrayIterator::is_ok*/;
1125 if (!UNTAG_Bool(variable[9])) break; /*for*/
1126 variable[9] = CALL_abstract_collection___Iterator___item(variable[8])(variable[8]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
1127 /* Register variable[10]: Local variable */
1128 variable[10] = variable[9];
1129 /* Register variable[11]: Local variable */
1130 /* Register variable[12]: Result */
1131 variable[12] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
1132 variable[11] = variable[12];
1133 /* Register variable[12]: Local variable */
1134 /* Register variable[13]: Result */
1135 variable[13] = CALL_compiling_global___TableElt___length( variable[10] /*e*/)( variable[10] /*e*/) /*TableElt::length*/;
1136 variable[12] = variable[13];
1137 /* Register variable[13]: Result */
1138 variable[13] = CALL_compiling_global___ColorContext___has_color( variable[1] /*ga*/)( variable[1] /*ga*/, variable[10] /*e*/) /*ColorContext::has_color*/;
1139 if (UNTAG_Bool(variable[13])) { /*if*/
1140 /* Register variable[13]: Result */
1141 variable[13] = CALL_compiling_global___ColorContext___color( variable[1] /*ga*/)( variable[1] /*ga*/, variable[10] /*e*/) /*ColorContext::color*/;
1142 variable[11] = variable[13] /*color=*/;
1143 } else { /*if*/
1144 CALL_abstract_collection___RemovableCollection___clear( variable[7] /*rel_classes*/)( variable[7] /*rel_classes*/) /*AbstractArray::clear*/;
1145 /* Register variable[13]: For iterator */
1146 variable[13] = CALL_abstract_collection___Collection___iterator( variable[3] /*classes*/)( variable[3] /*classes*/) /*Collection::iterator*/;
1147 while (true) { /*for*/
1148 /* Register variable[14]: For 'is_ok' result */
1149 variable[14] = CALL_abstract_collection___Iterator___is_ok(variable[13])(variable[13]) /*Iterator::is_ok*/;
1150 if (!UNTAG_Bool(variable[14])) break; /*for*/
1151 variable[14] = CALL_abstract_collection___Iterator___item(variable[13])(variable[13]) /*Iterator::item*/ /* Ensure var: For item*/;
1152 /* Register variable[15]: Local variable */
1153 variable[15] = variable[14];
1154 /* Register variable[16]: Result */
1155 variable[16] = CALL_compiling_global___TableElt___is_related_to( variable[10] /*e*/)( variable[10] /*e*/, variable[15] /*c*/) /*TableElt::is_related_to*/;
1156 if (UNTAG_Bool(variable[16])) { /*if*/
1157 CALL_abstract_collection___SimpleCollection___add( variable[7] /*rel_classes*/)( variable[7] /*rel_classes*/, variable[15] /*c*/) /*AbstractArray::add*/;
1158 }
1159 continue_29: while(0);
1160 CALL_abstract_collection___Iterator___next(variable[13])(variable[13]) /*Iterator::next*/;
1161 }
1162 break_29: while(0);
1163 /* Register variable[13]: Local variable */
1164 variable[13] = variable[4] /*startcolor*/;
1165 while (true) { /*while*/
1166 /* Register variable[14]: Result */
1167 variable[14] = TAG_Bool(( variable[13] /*trycolor*/)!=( variable[11] /*color*/));
1168 if (!UNTAG_Bool(variable[14])) break; /* while*/
1169 variable[11] = variable[13] /*trycolor*/ /*color=*/;
1170 /* Register variable[14]: For iterator */
1171 variable[14] = CALL_abstract_collection___Collection___iterator( variable[7] /*rel_classes*/)( variable[7] /*rel_classes*/) /*AbstractArrayRead::iterator*/;
1172 while (true) { /*for*/
1173 /* Register variable[15]: For 'is_ok' result */
1174 variable[15] = CALL_abstract_collection___Iterator___is_ok(variable[14])(variable[14]) /*ArrayIterator::is_ok*/;
1175 if (!UNTAG_Bool(variable[15])) break; /*for*/
1176 variable[15] = CALL_abstract_collection___Iterator___item(variable[14])(variable[14]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
1177 /* Register variable[16]: Local variable */
1178 variable[16] = variable[15];
1179 /* Register variable[17]: Local variable */
1180 variable[17] = TAG_Int(0);
1181 while (true) { /*while*/
1182 /* Register variable[18]: Result */
1183 variable[18] = TAG_Bool(UNTAG_Int( variable[17] /*idx*/)<UNTAG_Int( variable[12] /*len*/));
1184 if (!UNTAG_Bool(variable[18])) break; /* while*/
1185 /* Register variable[18]: Result */
1186 variable[18] = TAG_Int(UNTAG_Int( variable[13] /*trycolor*/)+UNTAG_Int( variable[17] /*idx*/));
1187 /* Register variable[18]: Result */
1188 variable[18] = CALL_abstract_collection___MapRead___has_key( variable[6] /*colors*/)( variable[6] /*colors*/, variable[18]) /*CoupleMap::has_key*/;
1189 /* Ensure var variable[18]: Left 'and' operand*/
1190 if (UNTAG_Bool(variable[18])) { /* and */
1191 /* Register variable[18]: Result */
1192 variable[18] = TAG_Int(UNTAG_Int( variable[13] /*trycolor*/)+UNTAG_Int( variable[17] /*idx*/));
1193 /* Register variable[18]: Result */
1194 variable[18] = CALL_abstract_collection___MapRead_____bra( variable[6] /*colors*/)( variable[6] /*colors*/, variable[18]) /*CoupleMap::[]*/;
1195 /* Register variable[18]: Result */
1196 variable[18] = CALL_compiling_global___MMSrcModule___free_color(variable[0])(variable[0], variable[18], variable[16] /*c*/) /*MMSrcModule::free_color*/;
1197 variable[18] = TAG_Bool(!UNTAG_Bool(variable[18]));
1198 }
1199 /* Register variable[18]: Result */
1200 if (UNTAG_Bool(variable[18])) { /*if*/
1201 /* Register variable[18]: Result */
1202 variable[18] = TAG_Int(UNTAG_Int( variable[13] /*trycolor*/)+UNTAG_Int( variable[17] /*idx*/));
1203 /* Register variable[18]: Result */
1204 variable[18] = TAG_Int(UNTAG_Int(variable[18])+UNTAG_Int( TAG_Int(1)));
1205 variable[13] = variable[18] /*trycolor=*/;
1206 variable[17] = TAG_Int(0) /*idx=*/;
1207 } else { /*if*/
1208 /* Register variable[18]: Result */
1209 variable[18] = TAG_Int(UNTAG_Int( variable[17] /*idx*/)+UNTAG_Int( TAG_Int(1)));
1210 variable[17] = variable[18] /*idx=*/;
1211 }
1212 continue_32: while(0);
1213 }
1214 break_32: while(0);
1215 continue_31: while(0);
1216 CALL_abstract_collection___Iterator___next(variable[14])(variable[14]) /*ArrayIterator::next*/;
1217 }
1218 break_31: while(0);
1219 continue_30: while(0);
1220 }
1221 break_30: while(0);
1222 CALL_compiling_global___ColorContext___color__eq( variable[1] /*ga*/)( variable[1] /*ga*/, variable[10] /*e*/, variable[11] /*color*/) /*ColorContext::color=*/;
1223 }
1224 /* Register variable[13]: Result */
1225 variable[13] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[12] /*len*/) /*new Range[Int]*/;
1226 /* Register variable[13]: For iterator */
1227 variable[13] = CALL_abstract_collection___Collection___iterator(variable[13])(variable[13]) /*Range::iterator*/;
1228 while (true) { /*for*/
1229 /* Register variable[14]: For 'is_ok' result */
1230 variable[14] = CALL_abstract_collection___Iterator___is_ok(variable[13])(variable[13]) /*Iterator::is_ok*/;
1231 if (!UNTAG_Bool(variable[14])) break; /*for*/
1232 variable[14] = CALL_abstract_collection___Iterator___item(variable[13])(variable[13]) /*Iterator::item*/ /* Ensure var: For item*/;
1233 /* Register variable[15]: Local variable */
1234 variable[15] = variable[14];
1235 /* Register variable[16]: Result */
1236 variable[16] = TAG_Int(UNTAG_Int( variable[11] /*color*/)+UNTAG_Int( variable[15] /*idx*/));
1237 /* Register variable[16]: Result */
1238 variable[16] = CALL_abstract_collection___MapRead___has_key( variable[6] /*colors*/)( variable[6] /*colors*/, variable[16]) /*CoupleMap::has_key*/;
1239 if (UNTAG_Bool(variable[16])) { /*if*/
1240 /* Register variable[16]: Result */
1241 variable[16] = TAG_Int(UNTAG_Int( variable[11] /*color*/)+UNTAG_Int( variable[15] /*idx*/));
1242 /* Register variable[16]: Result */
1243 variable[16] = CALL_abstract_collection___MapRead_____bra( variable[6] /*colors*/)( variable[6] /*colors*/, variable[16]) /*CoupleMap::[]*/;
1244 CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16], variable[10] /*e*/) /*AbstractArray::add*/;
1245 } else { /*if*/
1246 /* Register variable[16]: Result */
1247 variable[16] = TAG_Int(UNTAG_Int( variable[11] /*color*/)+UNTAG_Int( variable[15] /*idx*/));
1248 variable[17] = NEW_Array_array___Array___with_capacity(TAG_Int(1)) /*new Array[TableElt]*/ /* Ensure var: Literal array*/;
1249 CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[10] /*e*/) /*AbstractArray::add*/;
1250 /* Register variable[17]: Result */
1251 CALL_abstract_collection___Map_____braeq( variable[6] /*colors*/)( variable[6] /*colors*/, variable[16], variable[17]) /*HashMap::[]=*/;
1252 }
1253 continue_33: while(0);
1254 CALL_abstract_collection___Iterator___next(variable[13])(variable[13]) /*Iterator::next*/;
1255 }
1256 break_33: while(0);
1257 continue_28: while(0);
1258 CALL_abstract_collection___Iterator___next(variable[8])(variable[8]) /*ArrayIterator::next*/;
1259 }
1260 break_28: while(0);
1261 return_label27: while(false);
1262 tracehead = trace.prev;
1263 return;
1264 }
1265 val_t compiling_global___MMSrcModule___free_color(val_t self, val_t param0, val_t param1) {
1266 struct trace_t trace = {NULL, NULL, 403, LOCATE_compiling_global___MMSrcModule___free_color};
1267 val_t variable[8];
1268 struct WBT_ **closurevariable = NULL;
1269 trace.prev = tracehead; tracehead = &trace;
1270 trace.file = LOCATE_compiling_global;
1271 /* Register variable[0]: Local variable */
1272 variable[0] = self;
1273 /* Register variable[1]: Local variable */
1274 variable[1] = param0;
1275 /* Register variable[2]: Local variable */
1276 variable[2] = param1;
1277 /* Register variable[3]: Method return value and escape marker */
1278 /* Register variable[4]: For iterator */
1279 variable[4] = CALL_abstract_collection___Collection___iterator( variable[1] /*es*/)( variable[1] /*es*/) /*AbstractArrayRead::iterator*/;
1280 while (true) { /*for*/
1281 /* Register variable[5]: For 'is_ok' result */
1282 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
1283 if (!UNTAG_Bool(variable[5])) break; /*for*/
1284 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
1285 /* Register variable[6]: Local variable */
1286 variable[6] = variable[5];
1287 /* Register variable[7]: Result */
1288 variable[7] = CALL_compiling_global___TableElt___is_related_to( variable[6] /*e2*/)( variable[6] /*e2*/, variable[2] /*c*/) /*TableElt::is_related_to*/;
1289 if (UNTAG_Bool(variable[7])) { /*if*/
1290 variable[3] = TAG_Bool(false);
1291 goto return_label34;
1292 }
1293 continue_35: while(0);
1294 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
1295 }
1296 break_35: while(0);
1297 variable[3] = TAG_Bool(true);
1298 goto return_label34;
1299 return_label34: while(false);
1300 tracehead = trace.prev;
1301 return variable[3];
1302 }
1303 void compiling_global___MMSrcModule___compile_tables_to_c(val_t self, val_t param0) {
1304 struct trace_t trace = {NULL, NULL, 413, LOCATE_compiling_global___MMSrcModule___compile_tables_to_c};
1305 static val_t once_value_39 = NIT_NULL; /* Once value for string variable[4]*/
1306 static val_t once_value_41 = NIT_NULL; /* Once value for string variable[5]*/
1307 static val_t once_value_42 = NIT_NULL; /* Once value for string variable[6]*/
1308 static val_t once_value_43 = NIT_NULL; /* Once value for string variable[7]*/
1309 static val_t once_value_44 = NIT_NULL; /* Once value for string variable[8]*/
1310 static val_t once_value_45 = NIT_NULL; /* Once value for string variable[8]*/
1311 static val_t once_value_46 = NIT_NULL; /* Once value for string variable[7]*/
1312 static val_t once_value_47 = NIT_NULL; /* Once value for string variable[4]*/
1313 val_t variable[9];
1314 struct WBT_ **closurevariable = NULL;
1315 trace.prev = tracehead; tracehead = &trace;
1316 trace.file = LOCATE_compiling_global;
1317 /* Register variable[0]: Local variable */
1318 variable[0] = self;
1319 /* Register variable[1]: Local variable */
1320 variable[1] = param0;
1321 /* Register variable[2]: Method return value and escape marker */
1322 /* Register variable[3]: Result */
1323 variable[3] = CALL_abstractmetamodel___MMModule___mhe(variable[0])(variable[0]) /*MMModule::mhe*/;
1324 /* Register variable[3]: Result */
1325 variable[3] = CALL_partial_order___PartialOrderElement___greaters_and_self(variable[3])(variable[3]) /*PartialOrderElement::greaters_and_self*/;
1326 /* Register variable[3]: For iterator */
1327 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*Collection::iterator*/;
1328 while (true) { /*for*/
1329 /* Register variable[4]: For 'is_ok' result */
1330 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
1331 if (!UNTAG_Bool(variable[4])) break; /*for*/
1332 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/ /* Ensure var: For item*/;
1333 /* Register variable[5]: Local variable */
1334 variable[5] = variable[4];
1335 /* Register variable[6]: Result */
1336 variable[6] = TAG_Bool(( variable[5] /*m*/==NIT_NULL) || VAL_ISA( variable[5] /*m*/, COLOR_MMSrcModule, ID_MMSrcModule)) /*cast MMSrcModule*/;
1337 if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMSrcModule___compile_tables_to_c, LOCATE_compiling_global, 417); nit_exit(1);}
1338 CALL_compiling_global___MMSrcModule___compile_local_table_to_c( variable[5] /*m*/)( variable[5] /*m*/, variable[1] /*v*/) /*MMSrcModule::compile_local_table_to_c*/;
1339 continue_37: while(0);
1340 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
1341 }
1342 break_37: while(0);
1343 /* Register variable[3]: Result */
1344 variable[3] = CALL_abstractmetamodel___MMModule___local_classes(variable[0])(variable[0]) /*MMModule::local_classes*/;
1345 /* Register variable[3]: For iterator */
1346 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArrayRead::iterator*/;
1347 while (true) { /*for*/
1348 /* Register variable[4]: For 'is_ok' result */
1349 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
1350 if (!UNTAG_Bool(variable[4])) break; /*for*/
1351 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
1352 /* Register variable[5]: Local variable */
1353 variable[5] = variable[4];
1354 CALL_compiling_global___MMLocalClass___compile_tables_to_c( variable[5] /*c*/)( variable[5] /*c*/, variable[1] /*v*/) /*MMLocalClass::compile_tables_to_c*/;
1355 continue_38: while(0);
1356 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
1357 }
1358 break_38: while(0);
1359 /* Register variable[3]: Local variable */
1360 /* Register variable[4]: Once String constant */
1361 if (once_value_39 != NIT_NULL) variable[4] = once_value_39;
1362 else {
1363 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("classtable_t TAG2VFT[4] = {NULL"), TAG_Int(31)) /*new String*/;
1364 once_value_39 = variable[4];
1365 }
1366 /* Register variable[4]: Result */
1367 /* Register variable[4]: Result */
1368 variable[4] = NEW_Buffer_string___Buffer___from(variable[4]) /*new Buffer*/;
1369 variable[3] = variable[4];
1370 variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Literal array*/;
1371 /* Register variable[5]: Once String constant */
1372 if (once_value_41 != NIT_NULL) variable[5] = once_value_41;
1373 else {
1374 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Int"), TAG_Int(3)) /*new String*/;
1375 once_value_41 = variable[5];
1376 }
1377 /* Register variable[5]: Result */
1378 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
1379 /* Register variable[6]: Once String constant */
1380 if (once_value_42 != NIT_NULL) variable[6] = once_value_42;
1381 else {
1382 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Char"), TAG_Int(4)) /*new String*/;
1383 once_value_42 = variable[6];
1384 }
1385 /* Register variable[6]: Result */
1386 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
1387 /* Register variable[7]: Once String constant */
1388 if (once_value_43 != NIT_NULL) variable[7] = once_value_43;
1389 else {
1390 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Bool"), TAG_Int(4)) /*new String*/;
1391 once_value_43 = variable[7];
1392 }
1393 /* Register variable[7]: Result */
1394 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[7]) /*AbstractArray::add*/;
1395 /* Register variable[4]: Result */
1396 /* Register variable[4]: For iterator */
1397 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArrayRead::iterator*/;
1398 while (true) { /*for*/
1399 /* Register variable[5]: For 'is_ok' result */
1400 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
1401 if (!UNTAG_Bool(variable[5])) break; /*for*/
1402 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
1403 /* Register variable[6]: Local variable */
1404 variable[6] = variable[5];
1405 /* Register variable[7]: Result */
1406 variable[7] = CALL_symbol___String___to_symbol( variable[6] /*t*/)( variable[6] /*t*/) /*String::to_symbol*/;
1407 /* Register variable[7]: Result */
1408 variable[7] = CALL_abstractmetamodel___MMModule___has_global_class_named(variable[0])(variable[0], variable[7]) /*MMModule::has_global_class_named*/;
1409 if (UNTAG_Bool(variable[7])) { /*if*/
1410 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
1411 /* Register variable[8]: Once String constant */
1412 if (once_value_44 != NIT_NULL) variable[8] = once_value_44;
1413 else {
1414 variable[8] = NEW_String_string___String___with_native(BOX_NativeString(", (const classtable_t)VFT_"), TAG_Int(26)) /*new String*/;
1415 once_value_44 = variable[8];
1416 }
1417 /* Register variable[8]: Result */
1418 /* Ensure var variable[8]: super-string element*/
1419 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
1420 variable[8] = variable[6] /*t*/ /* Ensure var: super-string element*/;
1421 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
1422 /* Register variable[8]: Once String constant */
1423 if (once_value_45 != NIT_NULL) variable[8] = once_value_45;
1424 else {
1425 variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
1426 once_value_45 = variable[8];
1427 }
1428 /* Register variable[8]: Result */
1429 /* Ensure var variable[8]: super-string element*/
1430 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
1431 /* Register variable[7]: Result */
1432 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
1433 CALL_abstract_collection___IndexedCollection___append( variable[3] /*s*/)( variable[3] /*s*/, variable[7]) /*Buffer::append*/;
1434 } else { /*if*/
1435 /* Register variable[7]: Once String constant */
1436 if (once_value_46 != NIT_NULL) variable[7] = once_value_46;
1437 else {
1438 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(", NULL"), TAG_Int(6)) /*new String*/;
1439 once_value_46 = variable[7];
1440 }
1441 /* Register variable[7]: Result */
1442 CALL_abstract_collection___IndexedCollection___append( variable[3] /*s*/)( variable[3] /*s*/, variable[7]) /*Buffer::append*/;
1443 }
1444 continue_40: while(0);
1445 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
1446 }
1447 break_40: while(0);
1448 /* Register variable[4]: Once String constant */
1449 if (once_value_47 != NIT_NULL) variable[4] = once_value_47;
1450 else {
1451 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("};"), TAG_Int(2)) /*new String*/;
1452 once_value_47 = variable[4];
1453 }
1454 /* Register variable[4]: Result */
1455 CALL_abstract_collection___IndexedCollection___append( variable[3] /*s*/)( variable[3] /*s*/, variable[4]) /*Buffer::append*/;
1456 /* Register variable[4]: Result */
1457 variable[4] = CALL_string___Object___to_s( variable[3] /*s*/)( variable[3] /*s*/) /*Buffer::to_s*/;
1458 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
1459 return_label36: while(false);
1460 tracehead = trace.prev;
1461 return;
1462 }
1463 void compiling_global___MMSrcModule___declare_class_tables_to_c(val_t self, val_t param0) {
1464 struct trace_t trace = {NULL, NULL, 436, LOCATE_compiling_global___MMSrcModule___declare_class_tables_to_c};
1465 val_t variable[7];
1466 struct WBT_ **closurevariable = NULL;
1467 trace.prev = tracehead; tracehead = &trace;
1468 trace.file = LOCATE_compiling_global;
1469 /* Register variable[0]: Local variable */
1470 variable[0] = self;
1471 /* Register variable[1]: Local variable */
1472 variable[1] = param0;
1473 /* Register variable[2]: Method return value and escape marker */
1474 /* Register variable[3]: Result */
1475 variable[3] = CALL_abstractmetamodel___MMModule___local_classes(variable[0])(variable[0]) /*MMModule::local_classes*/;
1476 /* Register variable[3]: For iterator */
1477 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArrayRead::iterator*/;
1478 while (true) { /*for*/
1479 /* Register variable[4]: For 'is_ok' result */
1480 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
1481 if (!UNTAG_Bool(variable[4])) break; /*for*/
1482 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
1483 /* Register variable[5]: Local variable */
1484 variable[5] = variable[4];
1485 /* Register variable[6]: Result */
1486 variable[6] = CALL_abstractmetamodel___MMLocalClass___global( variable[5] /*c*/)( variable[5] /*c*/) /*MMLocalClass::global*/;
1487 /* Register variable[6]: Result */
1488 variable[6] = CALL_abstractmetamodel___MMGlobalClass___module(variable[6])(variable[6]) /*MMGlobalClass::module*/;
1489 /* Register variable[6]: Result */
1490 variable[6] = TAG_Bool((variable[6] == variable[0]) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6],variable[0])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6], variable[0]) /*Object::==*/)))));
1491 if (UNTAG_Bool(variable[6])) { /*if*/
1492 CALL_compiling_global___MMLocalClass___declare_tables_to_c( variable[5] /*c*/)( variable[5] /*c*/, variable[1] /*v*/) /*MMLocalClass::declare_tables_to_c*/;
1493 }
1494 continue_49: while(0);
1495 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
1496 }
1497 break_49: while(0);
1498 return_label48: while(false);
1499 tracehead = trace.prev;
1500 return;
1501 }
1502 void compiling_global___MMSrcModule___compile_main_part(val_t self, val_t param0) {
1503 struct trace_t trace = {NULL, NULL, 446, LOCATE_compiling_global___MMSrcModule___compile_main_part};
1504 static val_t once_value_51 = NIT_NULL; /* Once value for string variable[3]*/
1505 static val_t once_value_52 = NIT_NULL; /* Once value for string variable[3]*/
1506 static val_t once_value_53 = NIT_NULL; /* Once value for string variable[3]*/
1507 static val_t once_value_54; static int once_bool_54; /* Once value for variable[4]*/
1508 static val_t once_value_55 = NIT_NULL; /* Once value for string variable[4]*/
1509 static val_t once_value_56 = NIT_NULL; /* Once value for string variable[4]*/
1510 static val_t once_value_57; static int once_bool_57; /* Once value for variable[6]*/
1511 static val_t once_value_58 = NIT_NULL; /* Once value for string variable[6]*/
1512 static val_t once_value_59 = NIT_NULL; /* Once value for string variable[6]*/
1513 static val_t once_value_60 = NIT_NULL; /* Once value for string variable[6]*/
1514 static val_t once_value_61 = NIT_NULL; /* Once value for string variable[7]*/
1515 static val_t once_value_62 = NIT_NULL; /* Once value for string variable[7]*/
1516 static val_t once_value_63 = NIT_NULL; /* Once value for string variable[4]*/
1517 static val_t once_value_64 = NIT_NULL; /* Once value for string variable[4]*/
1518 val_t variable[8];
1519 struct WBT_ **closurevariable = NULL;
1520 trace.prev = tracehead; tracehead = &trace;
1521 trace.file = LOCATE_compiling_global;
1522 /* Register variable[0]: Local variable */
1523 variable[0] = self;
1524 /* Register variable[1]: Local variable */
1525 variable[1] = param0;
1526 /* Register variable[2]: Method return value and escape marker */
1527 /* Register variable[3]: Once String constant */
1528 if (once_value_51 != NIT_NULL) variable[3] = once_value_51;
1529 else {
1530 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("int main(int argc, char **argv) {"), TAG_Int(33)) /*new String*/;
1531 once_value_51 = variable[3];
1532 }
1533 /* Register variable[3]: Result */
1534 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
1535 CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
1536 /* Register variable[3]: Once String constant */
1537 if (once_value_52 != NIT_NULL) variable[3] = once_value_52;
1538 else {
1539 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("prepare_signals();"), TAG_Int(18)) /*new String*/;
1540 once_value_52 = variable[3];
1541 }
1542 /* Register variable[3]: Result */
1543 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
1544 /* Register variable[3]: Once String constant */
1545 if (once_value_53 != NIT_NULL) variable[3] = once_value_53;
1546 else {
1547 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("glob_argc = argc; glob_argv = argv;"), TAG_Int(35)) /*new String*/;
1548 once_value_53 = variable[3];
1549 }
1550 /* Register variable[3]: Result */
1551 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
1552 /* Register variable[3]: Local variable */
1553 /* Register variable[4]: Once expression result */
1554 if (once_bool_54) variable[4] = once_value_54;
1555 else {
1556 /* Register variable[4]: Once String constant */
1557 if (once_value_55 != NIT_NULL) variable[4] = once_value_55;
1558 else {
1559 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Sys"), TAG_Int(3)) /*new String*/;
1560 once_value_55 = variable[4];
1561 }
1562 /* Register variable[4]: Result */
1563 /* Register variable[4]: Result */
1564 variable[4] = CALL_symbol___String___to_symbol(variable[4])(variable[4]) /*String::to_symbol*/;
1565 once_value_54 = variable[4];
1566 once_bool_54 = true;
1567 }
1568 /* Register variable[4]: Result */
1569 variable[3] = variable[4];
1570 /* Register variable[4]: Result */
1571 variable[4] = CALL_abstractmetamodel___MMModule___has_global_class_named(variable[0])(variable[0], variable[3] /*sysname*/) /*MMModule::has_global_class_named*/;
1572 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[4])))) { /*if*/
1573 /* Register variable[4]: Once String constant */
1574 if (once_value_56 != NIT_NULL) variable[4] = once_value_56;
1575 else {
1576 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("No main"), TAG_Int(7)) /*new String*/;
1577 once_value_56 = variable[4];
1578 }
1579 /* Register variable[4]: Result */
1580 CALL_file___Object___print(variable[0])(variable[0], variable[4]) /*Object::print*/;
1581 } else { /*if*/
1582 /* Register variable[4]: Local variable */
1583 /* Register variable[5]: Result */
1584 variable[5] = CALL_abstractmetamodel___MMModule___class_by_name(variable[0])(variable[0], variable[3] /*sysname*/) /*MMModule::class_by_name*/;
1585 variable[4] = variable[5];
1586 /* Register variable[5]: Local variable */
1587 /* Register variable[6]: Once expression result */
1588 if (once_bool_57) variable[6] = once_value_57;
1589 else {
1590 /* Register variable[6]: Once String constant */
1591 if (once_value_58 != NIT_NULL) variable[6] = once_value_58;
1592 else {
1593 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("main"), TAG_Int(4)) /*new String*/;
1594 once_value_58 = variable[6];
1595 }
1596 /* Register variable[6]: Result */
1597 /* Register variable[6]: Result */
1598 variable[6] = CALL_symbol___String___to_symbol(variable[6])(variable[6]) /*String::to_symbol*/;
1599 once_value_57 = variable[6];
1600 once_bool_57 = true;
1601 }
1602 /* Register variable[6]: Result */
1603 /* Register variable[6]: Result */
1604 variable[6] = CALL_abstractmetamodel___MMLocalClass___select_method( variable[4] /*sys*/)( variable[4] /*sys*/, variable[6]) /*MMLocalClass::select_method*/;
1605 variable[5] = variable[6];
1606 /* Register variable[6]: Result */
1607 variable[6] = TAG_Bool(( variable[5] /*mainm*/ == NIT_NULL /*null*/) || (( variable[5] /*mainm*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*mainm*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*mainm*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*mainm*/)( variable[5] /*mainm*/, NIT_NULL /*null*/) /*Object::==*/)))));
1608 if (UNTAG_Bool(variable[6])) { /*if*/
1609 /* Register variable[6]: Once String constant */
1610 if (once_value_59 != NIT_NULL) variable[6] = once_value_59;
1611 else {
1612 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("No main"), TAG_Int(7)) /*new String*/;
1613 once_value_59 = variable[6];
1614 }
1615 /* Register variable[6]: Result */
1616 CALL_file___Object___print(variable[0])(variable[0], variable[6]) /*Object::print*/;
1617 } else { /*if*/
1618 /* Register variable[6]: Once String constant */
1619 if (once_value_60 != NIT_NULL) variable[6] = once_value_60;
1620 else {
1621 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("G_sys = NEW_Sys();"), TAG_Int(18)) /*new String*/;
1622 once_value_60 = variable[6];
1623 }
1624 /* Register variable[6]: Result */
1625 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
1626 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
1627 /* Register variable[7]: Once String constant */
1628 if (once_value_61 != NIT_NULL) variable[7] = once_value_61;
1629 else {
1630 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
1631 once_value_61 = variable[7];
1632 }
1633 /* Register variable[7]: Result */
1634 /* Ensure var variable[7]: super-string element*/
1635 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
1636 /* Register variable[7]: Result */
1637 variable[7] = CALL_compiling_base___MMLocalProperty___cname( variable[5] /*mainm*/)( variable[5] /*mainm*/) /*MMLocalProperty::cname*/;
1638 /* Ensure var variable[7]: super-string element*/
1639 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
1640 /* Register variable[7]: Once String constant */
1641 if (once_value_62 != NIT_NULL) variable[7] = once_value_62;
1642 else {
1643 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("(G_sys);"), TAG_Int(8)) /*new String*/;
1644 once_value_62 = variable[7];
1645 }
1646 /* Register variable[7]: Result */
1647 /* Ensure var variable[7]: super-string element*/
1648 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
1649 /* Register variable[6]: Result */
1650 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
1651 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
1652 }
1653 }
1654 /* Register variable[4]: Once String constant */
1655 if (once_value_63 != NIT_NULL) variable[4] = once_value_63;
1656 else {
1657 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("return 0;"), TAG_Int(9)) /*new String*/;
1658 once_value_63 = variable[4];
1659 }
1660 /* Register variable[4]: Result */
1661 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
1662 CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
1663 /* Register variable[4]: Once String constant */
1664 if (once_value_64 != NIT_NULL) variable[4] = once_value_64;
1665 else {
1666 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)) /*new String*/;
1667 once_value_64 = variable[4];
1668 }
1669 /* Register variable[4]: Result */
1670 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
1671 return_label50: while(false);
1672 tracehead = trace.prev;
1673 return;
1674 }
1675 void compiling_global___MMSrcModule___compile_mod_to_c(val_t self, val_t param0) {
1676 struct trace_t trace = {NULL, NULL, 473, LOCATE_compiling_global___MMSrcModule___compile_mod_to_c};
1677 static val_t once_value_66 = NIT_NULL; /* Once value for string variable[4]*/
1678 static val_t once_value_67 = NIT_NULL; /* Once value for string variable[4]*/
1679 static val_t once_value_68 = NIT_NULL; /* Once value for string variable[4]*/
1680 static val_t once_value_69 = NIT_NULL; /* Once value for string variable[4]*/
1681 static val_t once_value_71 = NIT_NULL; /* Once value for string variable[9]*/
1682 static val_t once_value_72 = NIT_NULL; /* Once value for string variable[9]*/
1683 static val_t once_value_73 = NIT_NULL; /* Once value for string variable[9]*/
1684 static val_t once_value_74 = NIT_NULL; /* Once value for string variable[9]*/
1685 static val_t once_value_75 = NIT_NULL; /* Once value for string variable[9]*/
1686 static val_t once_value_79 = NIT_NULL; /* Once value for string variable[16]*/
1687 static val_t once_value_80 = NIT_NULL; /* Once value for string variable[16]*/
1688 static val_t once_value_81 = NIT_NULL; /* Once value for string variable[13]*/
1689 static val_t once_value_82 = NIT_NULL; /* Once value for string variable[13]*/
1690 static val_t once_value_83 = NIT_NULL; /* Once value for string variable[13]*/
1691 static val_t once_value_84 = NIT_NULL; /* Once value for string variable[13]*/
1692 static val_t once_value_85 = NIT_NULL; /* Once value for string variable[13]*/
1693 val_t variable[17];
1694 struct WBT_ **closurevariable = NULL;
1695 trace.prev = tracehead; tracehead = &trace;
1696 trace.file = LOCATE_compiling_global;
1697 /* Register variable[0]: Local variable */
1698 variable[0] = self;
1699 /* Register variable[1]: Local variable */
1700 variable[1] = param0;
1701 /* Register variable[2]: Method return value and escape marker */
1702 variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
1703 /* Register variable[4]: Once String constant */
1704 if (once_value_66 != NIT_NULL) variable[4] = once_value_66;
1705 else {
1706 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("extern const char *LOCATE_"), TAG_Int(26)) /*new String*/;
1707 once_value_66 = variable[4];
1708 }
1709 /* Register variable[4]: Result */
1710 /* Ensure var variable[4]: super-string element*/
1711 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
1712 /* Register variable[4]: Result */
1713 variable[4] = CALL_abstractmetamodel___MMModule___name(variable[0])(variable[0]) /*MMModule::name*/;
1714 /* Ensure var variable[4]: super-string element*/
1715 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/) /*AbstractArray::add*/;
1716 /* Register variable[4]: Once String constant */
1717 if (once_value_67 != NIT_NULL) variable[4] = once_value_67;
1718 else {
1719 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
1720 once_value_67 = variable[4];
1721 }
1722 /* Register variable[4]: Result */
1723 /* Ensure var variable[4]: super-string element*/
1724 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
1725 /* Register variable[3]: Result */
1726 variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
1727 CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_decl*/;
1728 /* Register variable[3]: Result */
1729 variable[3] = CALL_compiling_base___CompilerVisitor___tc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::tc*/;
1730 /* Register variable[3]: Result */
1731 variable[3] = CALL_compiling_base___ToolContext___global(variable[3])(variable[3]) /*ToolContext::global*/;
1732 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/
1733 variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
1734 /* Register variable[4]: Once String constant */
1735 if (once_value_68 != NIT_NULL) variable[4] = once_value_68;
1736 else {
1737 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("extern const int SFT_"), TAG_Int(21)) /*new String*/;
1738 once_value_68 = variable[4];
1739 }
1740 /* Register variable[4]: Result */
1741 /* Ensure var variable[4]: super-string element*/
1742 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
1743 /* Register variable[4]: Result */
1744 variable[4] = CALL_abstractmetamodel___MMModule___name(variable[0])(variable[0]) /*MMModule::name*/;
1745 /* Ensure var variable[4]: super-string element*/
1746 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/) /*AbstractArray::add*/;
1747 /* Register variable[4]: Once String constant */
1748 if (once_value_69 != NIT_NULL) variable[4] = once_value_69;
1749 else {
1750 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("[];"), TAG_Int(3)) /*new String*/;
1751 once_value_69 = variable[4];
1752 }
1753 /* Register variable[4]: Result */
1754 /* Ensure var variable[4]: super-string element*/
1755 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
1756 /* Register variable[3]: Result */
1757 variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
1758 CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_decl*/;
1759 }
1760 /* Register variable[3]: Local variable */
1761 variable[3] = TAG_Int(0);
1762 /* Register variable[4]: Result */
1763 variable[4] = ATTR_compiling_global___MMSrcModule____local_table(variable[0]) /*MMSrcModule::_local_table*/;
1764 /* Register variable[4]: For iterator */
1765 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArrayRead::iterator*/;
1766 while (true) { /*for*/
1767 /* Register variable[5]: For 'is_ok' result */
1768 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
1769 if (!UNTAG_Bool(variable[5])) break; /*for*/
1770 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
1771 /* Register variable[6]: Local variable */
1772 variable[6] = variable[5];
1773 /* Register variable[7]: Local variable */
1774 /*variable[7] is variable value*/
1775 /* Register variable[8]: Result */
1776 variable[8] = CALL_compiling_base___CompilerVisitor___tc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::tc*/;
1777 /* Register variable[8]: Result */
1778 variable[8] = CALL_compiling_base___ToolContext___global(variable[8])(variable[8]) /*ToolContext::global*/;
1779 if (UNTAG_Bool(variable[8])) { /*if*/
1780 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
1781 /* Register variable[9]: Once String constant */
1782 if (once_value_71 != NIT_NULL) variable[9] = once_value_71;
1783 else {
1784 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
1785 once_value_71 = variable[9];
1786 }
1787 /* Register variable[9]: Result */
1788 /* Ensure var variable[9]: super-string element*/
1789 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
1790 /* Register variable[9]: Result */
1791 variable[9] = CALL_compiling_global___GlobalCompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*GlobalCompilerVisitor::global_analysis*/;
1792 /* Register variable[9]: Result */
1793 variable[9] = CALL_compiling_global___ModuleTableElt___value( variable[6] /*e*/)( variable[6] /*e*/, variable[9]) /*ModuleTableElt::value*/;
1794 /* Ensure var variable[9]: super-string element*/
1795 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
1796 /* Register variable[9]: Once String constant */
1797 if (once_value_72 != NIT_NULL) variable[9] = once_value_72;
1798 else {
1799 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
1800 once_value_72 = variable[9];
1801 }
1802 /* Register variable[9]: Result */
1803 /* Ensure var variable[9]: super-string element*/
1804 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
1805 /* Register variable[8]: Result */
1806 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
1807 variable[7] = variable[8] /*value=*/;
1808 } else { /*if*/
1809 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
1810 /* Register variable[9]: Once String constant */
1811 if (once_value_73 != NIT_NULL) variable[9] = once_value_73;
1812 else {
1813 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("SFT_"), TAG_Int(4)) /*new String*/;
1814 once_value_73 = variable[9];
1815 }
1816 /* Register variable[9]: Result */
1817 /* Ensure var variable[9]: super-string element*/
1818 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
1819 /* Register variable[9]: Result */
1820 variable[9] = CALL_abstractmetamodel___MMModule___name(variable[0])(variable[0]) /*MMModule::name*/;
1821 /* Ensure var variable[9]: super-string element*/
1822 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/;
1823 /* Register variable[9]: Once String constant */
1824 if (once_value_74 != NIT_NULL) variable[9] = once_value_74;
1825 else {
1826 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("["), TAG_Int(1)) /*new String*/;
1827 once_value_74 = variable[9];
1828 }
1829 /* Register variable[9]: Result */
1830 /* Ensure var variable[9]: super-string element*/
1831 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
1832 variable[9] = variable[3] /*i*/ /* Ensure var: super-string element*/;
1833 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/;
1834 /* Register variable[9]: Once String constant */
1835 if (once_value_75 != NIT_NULL) variable[9] = once_value_75;
1836 else {
1837 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("]"), TAG_Int(1)) /*new String*/;
1838 once_value_75 = variable[9];
1839 }
1840 /* Register variable[9]: Result */
1841 /* Ensure var variable[9]: super-string element*/
1842 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
1843 /* Register variable[8]: Result */
1844 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
1845 variable[7] = variable[8] /*value=*/;
1846 /* Register variable[8]: Result */
1847 variable[8] = TAG_Int(UNTAG_Int( variable[3] /*i*/)+UNTAG_Int( TAG_Int(1)));
1848 variable[3] = variable[8] /*i=*/;
1849 }
1850 CALL_compiling_global___AbsTableElt___compile_macros( variable[6] /*e*/)( variable[6] /*e*/, variable[1] /*v*/, variable[7] /*value*/) /*AbsTableElt::compile_macros*/;
1851 continue_70: while(0);
1852 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
1853 }
1854 break_70: while(0);
1855 /* Register variable[4]: Result */
1856 variable[4] = CALL_syntax_base___MMSrcModule___src_local_classes(variable[0])(variable[0]) /*MMSrcModule::src_local_classes*/;
1857 /* Register variable[4]: For iterator */
1858 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*MapRead::iterator*/;
1859 while (true) { /*for*/
1860 /* Register variable[5]: For 'is_ok' result */
1861 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
1862 if (!UNTAG_Bool(variable[5])) break; /*for*/
1863 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
1864 /* Register variable[6]: Local variable */
1865 variable[6] = variable[5];
1866 /* Register variable[7]: Result */
1867 variable[7] = CALL_abstractmetamodel___MMLocalClass___global_properties( variable[6] /*c*/)( variable[6] /*c*/) /*MMLocalClass::global_properties*/;
1868 /* Register variable[7]: For iterator */
1869 variable[7] = CALL_abstract_collection___Collection___iterator(variable[7])(variable[7]) /*Collection::iterator*/;
1870 while (true) { /*for*/
1871 /* Register variable[8]: For 'is_ok' result */
1872 variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*Iterator::is_ok*/;
1873 if (!UNTAG_Bool(variable[8])) break; /*for*/
1874 variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*Iterator::item*/ /* Ensure var: For item*/;
1875 /* Register variable[9]: Local variable */
1876 variable[9] = variable[8];
1877 /* Register variable[10]: Local variable */
1878 /* Register variable[11]: Result */
1879 variable[11] = CALL_abstractmetamodel___MMLocalClass_____bra( variable[6] /*c*/)( variable[6] /*c*/, variable[9] /*pg*/) /*MMLocalClass::[]*/;
1880 variable[10] = variable[11];
1881 /* Register variable[11]: Result */
1882 variable[11] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[10] /*p*/)( variable[10] /*p*/) /*MMLocalProperty::local_class*/;
1883 /* Register variable[11]: Result */
1884 variable[11] = TAG_Bool((variable[11] == variable[6] /*c*/) || ((variable[11] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[11])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[11], variable[6] /*c*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[11])(variable[11], variable[6] /*c*/) /*Object::==*/)))));
1885 if (UNTAG_Bool(variable[11])) { /*if*/
1886 CALL_compiling_methods___MMLocalProperty___compile_property_to_c( variable[10] /*p*/)( variable[10] /*p*/, variable[1] /*v*/) /*MMLocalProperty::compile_property_to_c*/;
1887 }
1888 /* Register variable[11]: Result */
1889 variable[11] = CALL_abstractmetamodel___MMGlobalProperty___is_init_for( variable[9] /*pg*/)( variable[9] /*pg*/, variable[6] /*c*/) /*MMGlobalProperty::is_init_for*/;
1890 if (UNTAG_Bool(variable[11])) { /*if*/
1891 /* Register variable[11]: Local variable */
1892 /* Register variable[12]: Result */
1893 variable[12] = NEW_Array_array___Array___init() /*new Array[String]*/;
1894 variable[11] = variable[12];
1895 /* Register variable[12]: Result */
1896 variable[12] = CALL_static_type___MMLocalProperty___signature( variable[10] /*p*/)( variable[10] /*p*/) /*MMLocalProperty::signature*/;
1897 /* Register variable[12]: Result */
1898 variable[12] = CALL_static_type___MMSignature___arity(variable[12])(variable[12]) /*MMSignature::arity*/;
1899 /* Register variable[12]: Result */
1900 variable[12] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[12]) /*new Range[Int]*/;
1901 /* Register variable[12]: For iterator */
1902 variable[12] = CALL_abstract_collection___Collection___iterator(variable[12])(variable[12]) /*Range::iterator*/;
1903 while (true) { /*for*/
1904 /* Register variable[13]: For 'is_ok' result */
1905 variable[13] = CALL_abstract_collection___Iterator___is_ok(variable[12])(variable[12]) /*Iterator::is_ok*/;
1906 if (!UNTAG_Bool(variable[13])) break; /*for*/
1907 variable[13] = CALL_abstract_collection___Iterator___item(variable[12])(variable[12]) /*Iterator::item*/ /* Ensure var: For item*/;
1908 /* Register variable[14]: Local variable */
1909 variable[14] = variable[13];
1910 variable[15] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
1911 /* Register variable[16]: Once String constant */
1912 if (once_value_79 != NIT_NULL) variable[16] = once_value_79;
1913 else {
1914 variable[16] = NEW_String_string___String___with_native(BOX_NativeString("val_t p"), TAG_Int(7)) /*new String*/;
1915 once_value_79 = variable[16];
1916 }
1917 /* Register variable[16]: Result */
1918 /* Ensure var variable[16]: super-string element*/
1919 CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[16]) /*AbstractArray::add*/;
1920 variable[16] = variable[14] /*i*/ /* Ensure var: super-string element*/;
1921 CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/) /*AbstractArray::add*/;
1922 /* Register variable[16]: Once String constant */
1923 if (once_value_80 != NIT_NULL) variable[16] = once_value_80;
1924 else {
1925 variable[16] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
1926 once_value_80 = variable[16];
1927 }
1928 /* Register variable[16]: Result */
1929 /* Ensure var variable[16]: super-string element*/
1930 CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[16]) /*AbstractArray::add*/;
1931 /* Register variable[15]: Result */
1932 variable[15] = CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/;
1933 CALL_abstract_collection___SimpleCollection___add( variable[11] /*params*/)( variable[11] /*params*/, variable[15]) /*AbstractArray::add*/;
1934 continue_78: while(0);
1935 CALL_abstract_collection___Iterator___next(variable[12])(variable[12]) /*Iterator::next*/;
1936 }
1937 break_78: while(0);
1938 variable[12] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
1939 /* Register variable[13]: Once String constant */
1940 if (once_value_81 != NIT_NULL) variable[13] = once_value_81;
1941 else {
1942 variable[13] = NEW_String_string___String___with_native(BOX_NativeString("val_t NEW_"), TAG_Int(10)) /*new String*/;
1943 once_value_81 = variable[13];
1944 }
1945 /* Register variable[13]: Result */
1946 /* Ensure var variable[13]: super-string element*/
1947 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[13]) /*AbstractArray::add*/;
1948 variable[13] = variable[6] /*c*/ /* Ensure var: super-string element*/;
1949 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/) /*AbstractArray::add*/;
1950 /* Register variable[13]: Once String constant */
1951 if (once_value_82 != NIT_NULL) variable[13] = once_value_82;
1952 else {
1953 variable[13] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)) /*new String*/;
1954 once_value_82 = variable[13];
1955 }
1956 /* Register variable[13]: Result */
1957 /* Ensure var variable[13]: super-string element*/
1958 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[13]) /*AbstractArray::add*/;
1959 /* Register variable[13]: Result */
1960 variable[13] = CALL_abstractmetamodel___MMLocalProperty___global( variable[10] /*p*/)( variable[10] /*p*/) /*MMLocalProperty::global*/;
1961 /* Register variable[13]: Result */
1962 variable[13] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[13])(variable[13]) /*MMGlobalProperty::intro*/;
1963 /* Register variable[13]: Result */
1964 variable[13] = CALL_compiling_base___MMLocalProperty___cname(variable[13])(variable[13]) /*MMLocalProperty::cname*/;
1965 /* Ensure var variable[13]: super-string element*/
1966 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[13]) /*AbstractArray::add*/;
1967 /* Register variable[13]: Once String constant */
1968 if (once_value_83 != NIT_NULL) variable[13] = once_value_83;
1969 else {
1970 variable[13] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)) /*new String*/;
1971 once_value_83 = variable[13];
1972 }
1973 /* Register variable[13]: Result */
1974 /* Ensure var variable[13]: super-string element*/
1975 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[13]) /*AbstractArray::add*/;
1976 /* Register variable[13]: Once String constant */
1977 if (once_value_84 != NIT_NULL) variable[13] = once_value_84;
1978 else {
1979 variable[13] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/;
1980 once_value_84 = variable[13];
1981 }
1982 /* Register variable[13]: Result */
1983 /* Register variable[13]: Result */
1984 variable[13] = CALL_string___Collection___join( variable[11] /*params*/)( variable[11] /*params*/, variable[13]) /*Collection::join*/;
1985 /* Ensure var variable[13]: super-string element*/
1986 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[13]) /*AbstractArray::add*/;
1987 /* Register variable[13]: Once String constant */
1988 if (once_value_85 != NIT_NULL) variable[13] = once_value_85;
1989 else {
1990 variable[13] = NEW_String_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)) /*new String*/;
1991 once_value_85 = variable[13];
1992 }
1993 /* Register variable[13]: Result */
1994 /* Ensure var variable[13]: super-string element*/
1995 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[13]) /*AbstractArray::add*/;
1996 /* Register variable[12]: Result */
1997 variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
1998 CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_decl*/;
1999 }
2000 continue_77: while(0);
2001 CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*Iterator::next*/;
2002 }
2003 break_77: while(0);
2004 continue_76: while(0);
2005 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
2006 }
2007 break_76: while(0);
2008 return_label65: while(false);
2009 tracehead = trace.prev;
2010 return;
2011 }
2012 void compiling_global___MMSrcModule___compile_local_table_to_c(val_t self, val_t param0) {
2013 struct trace_t trace = {NULL, NULL, 509, LOCATE_compiling_global___MMSrcModule___compile_local_table_to_c};
2014 static val_t once_value_87 = NIT_NULL; /* Once value for string variable[4]*/
2015 static val_t once_value_88 = NIT_NULL; /* Once value for string variable[4]*/
2016 static val_t once_value_89 = NIT_NULL; /* Once value for string variable[4]*/
2017 static val_t once_value_90 = NIT_NULL; /* Once value for string variable[4]*/
2018 static val_t once_value_91 = NIT_NULL; /* Once value for string variable[4]*/
2019 static val_t once_value_92 = NIT_NULL; /* Once value for string variable[4]*/
2020 static val_t once_value_94 = NIT_NULL; /* Once value for string variable[7]*/
2021 static val_t once_value_95 = NIT_NULL; /* Once value for string variable[3]*/
2022 val_t variable[8];
2023 struct WBT_ **closurevariable = NULL;
2024 trace.prev = tracehead; tracehead = &trace;
2025 trace.file = LOCATE_compiling_global;
2026 /* Register variable[0]: Local variable */
2027 variable[0] = self;
2028 /* Register variable[1]: Local variable */
2029 variable[1] = param0;
2030 /* Register variable[2]: Method return value and escape marker */
2031 variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
2032 /* Register variable[4]: Once String constant */
2033 if (once_value_87 != NIT_NULL) variable[4] = once_value_87;
2034 else {
2035 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("const char *LOCATE_"), TAG_Int(19)) /*new String*/;
2036 once_value_87 = variable[4];
2037 }
2038 /* Register variable[4]: Result */
2039 /* Ensure var variable[4]: super-string element*/
2040 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
2041 /* Register variable[4]: Result */
2042 variable[4] = CALL_abstractmetamodel___MMModule___name(variable[0])(variable[0]) /*MMModule::name*/;
2043 /* Ensure var variable[4]: super-string element*/
2044 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/) /*AbstractArray::add*/;
2045 /* Register variable[4]: Once String constant */
2046 if (once_value_88 != NIT_NULL) variable[4] = once_value_88;
2047 else {
2048 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" = \""), TAG_Int(4)) /*new String*/;
2049 once_value_88 = variable[4];
2050 }
2051 /* Register variable[4]: Result */
2052 /* Ensure var variable[4]: super-string element*/
2053 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
2054 /* Register variable[4]: Result */
2055 variable[4] = CALL_abstractmetamodel___MMModule___filename(variable[0])(variable[0]) /*MMModule::filename*/;
2056 /* Ensure var variable[4]: super-string element*/
2057 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
2058 /* Register variable[4]: Once String constant */
2059 if (once_value_89 != NIT_NULL) variable[4] = once_value_89;
2060 else {
2061 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("\";"), TAG_Int(2)) /*new String*/;
2062 once_value_89 = variable[4];
2063 }
2064 /* Register variable[4]: Result */
2065 /* Ensure var variable[4]: super-string element*/
2066 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
2067 /* Register variable[3]: Result */
2068 variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
2069 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
2070 /* Register variable[3]: Result */
2071 variable[3] = CALL_compiling_base___CompilerVisitor___tc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::tc*/;
2072 /* Register variable[3]: Result */
2073 variable[3] = CALL_compiling_base___ToolContext___global(variable[3])(variable[3]) /*ToolContext::global*/;
2074 /* Ensure var variable[3]: Left 'or' operand*/
2075 if (!UNTAG_Bool(variable[3])) { /* or */
2076 /* Register variable[3]: Result */
2077 variable[3] = ATTR_compiling_global___MMSrcModule____local_table(variable[0]) /*MMSrcModule::_local_table*/;
2078 /* Register variable[3]: Result */
2079 variable[3] = CALL_abstract_collection___Collection___is_empty(variable[3])(variable[3]) /*AbstractArrayRead::is_empty*/;
2080 }
2081 /* Register variable[3]: Result */
2082 if (UNTAG_Bool(variable[3])) { /*if*/
2083 goto return_label86;
2084 }
2085 variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
2086 /* Register variable[4]: Once String constant */
2087 if (once_value_90 != NIT_NULL) variable[4] = once_value_90;
2088 else {
2089 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("const int SFT_"), TAG_Int(14)) /*new String*/;
2090 once_value_90 = variable[4];
2091 }
2092 /* Register variable[4]: Result */
2093 /* Ensure var variable[4]: super-string element*/
2094 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
2095 /* Register variable[4]: Result */
2096 variable[4] = CALL_abstractmetamodel___MMModule___name(variable[0])(variable[0]) /*MMModule::name*/;
2097 /* Ensure var variable[4]: super-string element*/
2098 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/) /*AbstractArray::add*/;
2099 /* Register variable[4]: Once String constant */
2100 if (once_value_91 != NIT_NULL) variable[4] = once_value_91;
2101 else {
2102 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("["), TAG_Int(1)) /*new String*/;
2103 once_value_91 = variable[4];
2104 }
2105 /* Register variable[4]: Result */
2106 /* Ensure var variable[4]: super-string element*/
2107 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
2108 /* Register variable[4]: Result */
2109 variable[4] = ATTR_compiling_global___MMSrcModule____local_table(variable[0]) /*MMSrcModule::_local_table*/;
2110 /* Register variable[4]: Result */
2111 variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArrayRead::length*/;
2112 /* Ensure var variable[4]: super-string element*/
2113 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/) /*AbstractArray::add*/;
2114 /* Register variable[4]: Once String constant */
2115 if (once_value_92 != NIT_NULL) variable[4] = once_value_92;
2116 else {
2117 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("] = {"), TAG_Int(5)) /*new String*/;
2118 once_value_92 = variable[4];
2119 }
2120 /* Register variable[4]: Result */
2121 /* Ensure var variable[4]: super-string element*/
2122 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
2123 /* Register variable[3]: Result */
2124 variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
2125 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
2126 CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
2127 /* Register variable[3]: Result */
2128 variable[3] = ATTR_compiling_global___MMSrcModule____local_table(variable[0]) /*MMSrcModule::_local_table*/;
2129 /* Register variable[3]: For iterator */
2130 variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArrayRead::iterator*/;
2131 while (true) { /*for*/
2132 /* Register variable[4]: For 'is_ok' result */
2133 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
2134 if (!UNTAG_Bool(variable[4])) break; /*for*/
2135 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
2136 /* Register variable[5]: Local variable */
2137 variable[5] = variable[4];
2138 /* Register variable[6]: Result */
2139 variable[6] = CALL_compiling_global___GlobalCompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*GlobalCompilerVisitor::global_analysis*/;
2140 /* Register variable[6]: Result */
2141 variable[6] = CALL_compiling_global___ModuleTableElt___value( variable[5] /*e*/)( variable[5] /*e*/, variable[6]) /*ModuleTableElt::value*/;
2142 /* Register variable[7]: Once String constant */
2143 if (once_value_94 != NIT_NULL) variable[7] = once_value_94;
2144 else {
2145 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(","), TAG_Int(1)) /*new String*/;
2146 once_value_94 = variable[7];
2147 }
2148 /* Register variable[7]: Result */
2149 /* Register variable[6]: Result */
2150 variable[6] = CALL_string___String_____plus(variable[6])(variable[6], variable[7]) /*String::+*/;
2151 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
2152 continue_93: while(0);
2153 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
2154 }
2155 break_93: while(0);
2156 CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
2157 /* Register variable[3]: Once String constant */
2158 if (once_value_95 != NIT_NULL) variable[3] = once_value_95;
2159 else {
2160 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("};"), TAG_Int(2)) /*new String*/;
2161 once_value_95 = variable[3];
2162 }
2163 /* Register variable[3]: Result */
2164 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
2165 return_label86: while(false);
2166 tracehead = trace.prev;
2167 return;
2168 }
2169 void compiling_global___AbsTableElt___compile_macros(val_t self, val_t param0, val_t param1) {
2170 struct trace_t trace = {NULL, NULL, 532, LOCATE_compiling_global___AbsTableElt___compile_macros};
2171 val_t *variable = NULL;
2172 struct WBT_ **closurevariable = NULL;
2173 trace.prev = tracehead; tracehead = &trace;
2174 trace.file = LOCATE_compiling_global;
2175 fprintf(stderr, "Deferred method called");
2176 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 532);
2177 nit_exit(1);
2178 tracehead = trace.prev;
2179 return;
2180 }
2181 void compiling_global___AbsTableElt___init(val_t self, int* init_table) {
2182 struct trace_t trace = {NULL, NULL, 0, LOCATE_compiling_global___AbsTableElt___init};
2183 val_t *variable = NULL;
2184 struct WBT_ **closurevariable = NULL;
2185 trace.prev = tracehead; tracehead = &trace;
2186 trace.file = LOCATE_compiling_global;
2187 tracehead = trace.prev;
2188 return;
2189 }
2190 val_t compiling_global___TableElt___is_related_to(val_t self, val_t param0) {
2191 struct trace_t trace = {NULL, NULL, 540, LOCATE_compiling_global___TableElt___is_related_to};
2192 val_t *variable = NULL;
2193 struct WBT_ **closurevariable = NULL;
2194 trace.prev = tracehead; tracehead = &trace;
2195 trace.file = LOCATE_compiling_global;
2196 fprintf(stderr, "Deferred method called");
2197 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 540);
2198 nit_exit(1);
2199 tracehead = trace.prev;
2200 return NIT_NULL;
2201 }
2202 val_t compiling_global___TableElt___length(val_t self) {
2203 struct trace_t trace = {NULL, NULL, 543, LOCATE_compiling_global___TableElt___length};
2204 val_t variable[2];
2205 struct WBT_ **closurevariable = NULL;
2206 trace.prev = tracehead; tracehead = &trace;
2207 trace.file = LOCATE_compiling_global;
2208 /* Register variable[0]: Local variable */
2209 variable[0] = self;
2210 /* Register variable[1]: Method return value and escape marker */
2211 variable[1] = TAG_Int(1);
2212 goto return_label96;
2213 return_label96: while(false);
2214 tracehead = trace.prev;
2215 return variable[1];
2216 }
2217 val_t compiling_global___TableElt___item(val_t self, val_t param0) {
2218 struct trace_t trace = {NULL, NULL, 546, LOCATE_compiling_global___TableElt___item};
2219 val_t variable[3];
2220 struct WBT_ **closurevariable = NULL;
2221 trace.prev = tracehead; tracehead = &trace;
2222 trace.file = LOCATE_compiling_global;
2223 /* Register variable[0]: Local variable */
2224 variable[0] = self;
2225 /* Register variable[1]: Local variable */
2226 variable[1] = param0;
2227 /* Register variable[2]: Method return value and escape marker */
2228 variable[2] = variable[0];
2229 goto return_label97;
2230 return_label97: while(false);
2231 tracehead = trace.prev;
2232 return variable[2];
2233 }
2234 val_t compiling_global___TableElt___compile_to_c(val_t self, val_t param0, val_t param1) {
2235 struct trace_t trace = {NULL, NULL, 549, LOCATE_compiling_global___TableElt___compile_to_c};
2236 val_t *variable = NULL;
2237 struct WBT_ **closurevariable = NULL;
2238 trace.prev = tracehead; tracehead = &trace;
2239 trace.file = LOCATE_compiling_global;
2240 fprintf(stderr, "Deferred method called");
2241 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 549);
2242 nit_exit(1);
2243 tracehead = trace.prev;
2244 return NIT_NULL;
2245 }
2246 val_t compiling_global___ModuleTableElt___value(val_t self, val_t param0) {
2247 struct trace_t trace = {NULL, NULL, 557, LOCATE_compiling_global___ModuleTableElt___value};
2248 val_t *variable = NULL;
2249 struct WBT_ **closurevariable = NULL;
2250 trace.prev = tracehead; tracehead = &trace;
2251 trace.file = LOCATE_compiling_global;
2252 fprintf(stderr, "Deferred method called");
2253 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 557);
2254 nit_exit(1);
2255 tracehead = trace.prev;
2256 return NIT_NULL;
2257 }
2258 void compiling_global___ModuleTableEltGroup___compile_macros(val_t self, val_t param0, val_t param1) {
2259 struct trace_t trace = {NULL, NULL, 567, LOCATE_compiling_global___ModuleTableEltGroup___compile_macros};
2260 static val_t once_value_100 = NIT_NULL; /* Once value for string variable[9]*/
2261 static val_t once_value_101 = NIT_NULL; /* Once value for string variable[9]*/
2262 static val_t once_value_102 = NIT_NULL; /* Once value for string variable[9]*/
2263 val_t variable[10];
2264 struct WBT_ **closurevariable = NULL;
2265 trace.prev = tracehead; tracehead = &trace;
2266 trace.file = LOCATE_compiling_global;
2267 /* Register variable[0]: Local variable */
2268 variable[0] = self;
2269 /* Register variable[1]: Local variable */
2270 variable[1] = param0;
2271 /* Register variable[2]: Local variable */
2272 variable[2] = param1;
2273 /* Register variable[3]: Method return value and escape marker */
2274 /* Register variable[4]: Local variable */
2275 variable[4] = TAG_Int(0);
2276 /* Register variable[5]: Result */
2277 variable[5] = ATTR_compiling_global___ModuleTableEltGroup____elements(variable[0]) /*ModuleTableEltGroup::_elements*/;
2278 /* Register variable[5]: For iterator */
2279 variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*AbstractArrayRead::iterator*/;
2280 while (true) { /*for*/
2281 /* Register variable[6]: For 'is_ok' result */
2282 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
2283 if (!UNTAG_Bool(variable[6])) break; /*for*/
2284 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
2285 /* Register variable[7]: Local variable */
2286 variable[7] = variable[6];
2287 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
2288 /* Register variable[9]: Once String constant */
2289 if (once_value_100 != NIT_NULL) variable[9] = once_value_100;
2290 else {
2291 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
2292 once_value_100 = variable[9];
2293 }
2294 /* Register variable[9]: Result */
2295 /* Ensure var variable[9]: super-string element*/
2296 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
2297 variable[9] = variable[2] /*value*/ /* Ensure var: super-string element*/;
2298 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
2299 /* Register variable[9]: Once String constant */
2300 if (once_value_101 != NIT_NULL) variable[9] = once_value_101;
2301 else {
2302 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" + "), TAG_Int(3)) /*new String*/;
2303 once_value_101 = variable[9];
2304 }
2305 /* Register variable[9]: Result */
2306 /* Ensure var variable[9]: super-string element*/
2307 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
2308 variable[9] = variable[4] /*i*/ /* Ensure var: super-string element*/;
2309 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/;
2310 /* Register variable[9]: Once String constant */
2311 if (once_value_102 != NIT_NULL) variable[9] = once_value_102;
2312 else {
2313 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
2314 once_value_102 = variable[9];
2315 }
2316 /* Register variable[9]: Result */
2317 /* Ensure var variable[9]: super-string element*/
2318 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
2319 /* Register variable[8]: Result */
2320 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
2321 CALL_compiling_global___AbsTableElt___compile_macros( variable[7] /*e*/)( variable[7] /*e*/, variable[1] /*v*/, variable[8]) /*AbsTableElt::compile_macros*/;
2322 variable[4] = TAG_Int(UNTAG_Int(variable[4])+UNTAG_Int( TAG_Int(1))) /*i*/;
2323 continue_99: while(0);
2324 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
2325 }
2326 break_99: while(0);
2327 return_label98: while(false);
2328 tracehead = trace.prev;
2329 return;
2330 }
2331 val_t compiling_global___ModuleTableEltGroup___value(val_t self, val_t param0) {
2332 struct trace_t trace = {NULL, NULL, 566, LOCATE_compiling_global___ModuleTableEltGroup___value};
2333 static val_t once_value_104 = NIT_NULL; /* Once value for string variable[4]*/
2334 static val_t once_value_105 = NIT_NULL; /* Once value for string variable[4]*/
2335 val_t variable[5];
2336 struct WBT_ **closurevariable = NULL;
2337 trace.prev = tracehead; tracehead = &trace;
2338 trace.file = LOCATE_compiling_global;
2339 /* Register variable[0]: Local variable */
2340 variable[0] = self;
2341 /* Register variable[1]: Local variable */
2342 variable[1] = param0;
2343 /* Register variable[2]: Method return value and escape marker */
2344 variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
2345 /* Register variable[4]: Once String constant */
2346 if (once_value_104 != NIT_NULL) variable[4] = once_value_104;
2347 else {
2348 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
2349 once_value_104 = variable[4];
2350 }
2351 /* Register variable[4]: Result */
2352 /* Ensure var variable[4]: super-string element*/
2353 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
2354 /* Register variable[4]: Result */
2355 variable[4] = ATTR_compiling_global___ModuleTableEltGroup____elements(variable[0]) /*ModuleTableEltGroup::_elements*/;
2356 /* Register variable[4]: Result */
2357 variable[4] = CALL_abstract_collection___Collection___first(variable[4])(variable[4]) /*IndexedCollectionRead::first*/;
2358 /* Register variable[4]: Result */
2359 variable[4] = CALL_compiling_global___ColorContext___color( variable[1] /*ga*/)( variable[1] /*ga*/, variable[4]) /*ColorContext::color*/;
2360 /* Ensure var variable[4]: super-string element*/
2361 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/) /*AbstractArray::add*/;
2362 /* Register variable[4]: Once String constant */
2363 if (once_value_105 != NIT_NULL) variable[4] = once_value_105;
2364 else {
2365 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" /* Group of ? */"), TAG_Int(17)) /*new String*/;
2366 once_value_105 = variable[4];
2367 }
2368 /* Register variable[4]: Result */
2369 /* Ensure var variable[4]: super-string element*/
2370 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
2371 /* Register variable[3]: Result */
2372 variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
2373 variable[2] = variable[3];
2374 goto return_label103;
2375 return_label103: while(false);
2376 tracehead = trace.prev;
2377 return variable[2];
2378 }
2379 val_t compiling_global___ModuleTableEltGroup___elements(val_t self) {
2380 struct trace_t trace = {NULL, NULL, 564, LOCATE_compiling_global___ModuleTableEltGroup___elements};
2381 val_t *variable = NULL;
2382 struct WBT_ **closurevariable = NULL;
2383 trace.prev = tracehead; tracehead = &trace;
2384 trace.file = LOCATE_compiling_global;
2385 tracehead = trace.prev;
2386 return ATTR_compiling_global___ModuleTableEltGroup____elements( self) /*ModuleTableEltGroup::_elements*/;
2387 }
2388 void compiling_global___TableEltProp___init(val_t self, val_t param0, int* init_table) {
2389 struct trace_t trace = {NULL, NULL, 582, LOCATE_compiling_global___TableEltProp___init};
2390 val_t variable[3];
2391 struct WBT_ **closurevariable = NULL;
2392 trace.prev = tracehead; tracehead = &trace;
2393 trace.file = LOCATE_compiling_global;
2394 /* Register variable[0]: Local variable */
2395 variable[0] = self;
2396 /* Register variable[1]: Local variable */
2397 variable[1] = param0;
2398 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltProp].i]) return;
2399 /* Register variable[2]: Method return value and escape marker */
2400 ATTR_compiling_global___TableEltProp____property(variable[0]) /*TableEltProp::_property*/ = variable[1] /*p*/;
2401 return_label106: while(false);
2402 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltProp].i] = 1;
2403 tracehead = trace.prev;
2404 return;
2405 }
2406 void compiling_global___TableEltMeth___compile_macros(val_t self, val_t param0, val_t param1) {
2407 struct trace_t trace = {NULL, NULL, 591, LOCATE_compiling_global___TableEltMeth___compile_macros};
2408 static val_t once_value_108 = NIT_NULL; /* Once value for string variable[6]*/
2409 static val_t once_value_109 = NIT_NULL; /* Once value for string variable[6]*/
2410 static val_t once_value_110 = NIT_NULL; /* Once value for string variable[6]*/
2411 static val_t once_value_111 = NIT_NULL; /* Once value for string variable[6]*/
2412 val_t variable[7];
2413 struct WBT_ **closurevariable = NULL;
2414 trace.prev = tracehead; tracehead = &trace;
2415 trace.file = LOCATE_compiling_global;
2416 /* Register variable[0]: Local variable */
2417 variable[0] = self;
2418 /* Register variable[1]: Local variable */
2419 variable[1] = param0;
2420 /* Register variable[2]: Local variable */
2421 variable[2] = param1;
2422 /* Register variable[3]: Method return value and escape marker */
2423 /* Register variable[4]: Local variable */
2424 /* Register variable[5]: Result */
2425 variable[5] = ATTR_compiling_global___TableEltProp____property(variable[0]) /*TableEltProp::_property*/;
2426 /* Register variable[5]: Result */
2427 variable[5] = CALL_abstractmetamodel___MMLocalProperty___global(variable[5])(variable[5]) /*MMLocalProperty::global*/;
2428 variable[4] = variable[5];
2429 variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
2430 /* Register variable[6]: Once String constant */
2431 if (once_value_108 != NIT_NULL) variable[6] = once_value_108;
2432 else {
2433 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)) /*new String*/;
2434 once_value_108 = variable[6];
2435 }
2436 /* Register variable[6]: Result */
2437 /* Ensure var variable[6]: super-string element*/
2438 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
2439 /* Register variable[6]: Result */
2440 variable[6] = CALL_compiling_base___MMGlobalProperty___meth_call( variable[4] /*pg*/)( variable[4] /*pg*/) /*MMGlobalProperty::meth_call*/;
2441 /* Ensure var variable[6]: super-string element*/
2442 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
2443 /* Register variable[6]: Once String constant */
2444 if (once_value_109 != NIT_NULL) variable[6] = once_value_109;
2445 else {
2446 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("(recv) (("), TAG_Int(9)) /*new String*/;
2447 once_value_109 = variable[6];
2448 }
2449 /* Register variable[6]: Result */
2450 /* Ensure var variable[6]: super-string element*/
2451 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
2452 /* Register variable[6]: Result */
2453 variable[6] = CALL_abstractmetamodel___MMGlobalProperty___intro( variable[4] /*pg*/)( variable[4] /*pg*/) /*MMGlobalProperty::intro*/;
2454 /* Register variable[6]: Result */
2455 variable[6] = CALL_compiling_base___MMLocalProperty___cname(variable[6])(variable[6]) /*MMLocalProperty::cname*/;
2456 /* Ensure var variable[6]: super-string element*/
2457 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
2458 /* Register variable[6]: Once String constant */
2459 if (once_value_110 != NIT_NULL) variable[6] = once_value_110;
2460 else {
2461 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("_t)CALL((recv), ("), TAG_Int(17)) /*new String*/;
2462 once_value_110 = variable[6];
2463 }
2464 /* Register variable[6]: Result */
2465 /* Ensure var variable[6]: super-string element*/
2466 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
2467 variable[6] = variable[2] /*value*/ /* Ensure var: super-string element*/;
2468 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
2469 /* Register variable[6]: Once String constant */
2470 if (once_value_111 != NIT_NULL) variable[6] = once_value_111;
2471 else {
2472 variable[6] = NEW_String_string___String___with_native(BOX_NativeString(")))"), TAG_Int(3)) /*new String*/;
2473 once_value_111 = variable[6];
2474 }
2475 /* Register variable[6]: Result */
2476 /* Ensure var variable[6]: super-string element*/
2477 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
2478 /* Register variable[5]: Result */
2479 variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
2480 CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_decl*/;
2481 return_label107: while(false);
2482 tracehead = trace.prev;
2483 return;
2484 }
2485 val_t compiling_global___TableEltMeth___compile_to_c(val_t self, val_t param0, val_t param1) {
2486 struct trace_t trace = {NULL, NULL, 597, LOCATE_compiling_global___TableEltMeth___compile_to_c};
2487 val_t variable[6];
2488 struct WBT_ **closurevariable = NULL;
2489 trace.prev = tracehead; tracehead = &trace;
2490 trace.file = LOCATE_compiling_global;
2491 /* Register variable[0]: Local variable */
2492 variable[0] = self;
2493 /* Register variable[1]: Local variable */
2494 variable[1] = param0;
2495 /* Register variable[2]: Local variable */
2496 variable[2] = param1;
2497 /* Register variable[3]: Method return value and escape marker */
2498 /* Register variable[4]: Local variable */
2499 /* Register variable[5]: Result */
2500 variable[5] = ATTR_compiling_global___TableEltProp____property(variable[0]) /*TableEltProp::_property*/;
2501 /* Register variable[5]: Result */
2502 variable[5] = CALL_abstractmetamodel___MMLocalProperty___global(variable[5])(variable[5]) /*MMLocalProperty::global*/;
2503 /* Register variable[5]: Result */
2504 variable[5] = CALL_abstractmetamodel___MMLocalClass_____bra( variable[2] /*c*/)( variable[2] /*c*/, variable[5]) /*MMLocalClass::[]*/;
2505 variable[4] = variable[5];
2506 /* Register variable[5]: Result */
2507 variable[5] = CALL_compiling_base___MMLocalProperty___cname( variable[4] /*p*/)( variable[4] /*p*/) /*MMLocalProperty::cname*/;
2508 variable[3] = variable[5];
2509 goto return_label112;
2510 return_label112: while(false);
2511 tracehead = trace.prev;
2512 return variable[3];
2513 }
2514 void compiling_global___TableEltSuper___compile_macros(val_t self, val_t param0, val_t param1) {
2515 struct trace_t trace = {NULL, NULL, 607, LOCATE_compiling_global___TableEltSuper___compile_macros};
2516 static val_t once_value_114 = NIT_NULL; /* Once value for string variable[6]*/
2517 static val_t once_value_115 = NIT_NULL; /* Once value for string variable[6]*/
2518 static val_t once_value_116 = NIT_NULL; /* Once value for string variable[6]*/
2519 static val_t once_value_117 = NIT_NULL; /* Once value for string variable[6]*/
2520 val_t variable[7];
2521 struct WBT_ **closurevariable = NULL;
2522 trace.prev = tracehead; tracehead = &trace;
2523 trace.file = LOCATE_compiling_global;
2524 /* Register variable[0]: Local variable */
2525 variable[0] = self;
2526 /* Register variable[1]: Local variable */
2527 variable[1] = param0;
2528 /* Register variable[2]: Local variable */
2529 variable[2] = param1;
2530 /* Register variable[3]: Method return value and escape marker */
2531 /* Register variable[4]: Local variable */
2532 /* Register variable[5]: Result */
2533 variable[5] = ATTR_compiling_global___TableEltProp____property(variable[0]) /*TableEltProp::_property*/;
2534 variable[4] = variable[5];
2535 variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
2536 /* Register variable[6]: Once String constant */
2537 if (once_value_114 != NIT_NULL) variable[6] = once_value_114;
2538 else {
2539 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)) /*new String*/;
2540 once_value_114 = variable[6];
2541 }
2542 /* Register variable[6]: Result */
2543 /* Ensure var variable[6]: super-string element*/
2544 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
2545 /* Register variable[6]: Result */
2546 variable[6] = CALL_compiling_base___MMLocalProperty___super_meth_call( variable[4] /*p*/)( variable[4] /*p*/) /*MMLocalProperty::super_meth_call*/;
2547 /* Ensure var variable[6]: super-string element*/
2548 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
2549 /* Register variable[6]: Once String constant */
2550 if (once_value_115 != NIT_NULL) variable[6] = once_value_115;
2551 else {
2552 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("(recv) (("), TAG_Int(9)) /*new String*/;
2553 once_value_115 = variable[6];
2554 }
2555 /* Register variable[6]: Result */
2556 /* Ensure var variable[6]: super-string element*/
2557 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
2558 /* Register variable[6]: Result */
2559 variable[6] = CALL_compiling_base___MMLocalProperty___cname( variable[4] /*p*/)( variable[4] /*p*/) /*MMLocalProperty::cname*/;
2560 /* Ensure var variable[6]: super-string element*/
2561 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
2562 /* Register variable[6]: Once String constant */
2563 if (once_value_116 != NIT_NULL) variable[6] = once_value_116;
2564 else {
2565 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("_t)CALL((recv), ("), TAG_Int(17)) /*new String*/;
2566 once_value_116 = variable[6];
2567 }
2568 /* Register variable[6]: Result */
2569 /* Ensure var variable[6]: super-string element*/
2570 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
2571 variable[6] = variable[2] /*value*/ /* Ensure var: super-string element*/;
2572 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
2573 /* Register variable[6]: Once String constant */
2574 if (once_value_117 != NIT_NULL) variable[6] = once_value_117;
2575 else {
2576 variable[6] = NEW_String_string___String___with_native(BOX_NativeString(")))"), TAG_Int(3)) /*new String*/;
2577 once_value_117 = variable[6];
2578 }
2579 /* Register variable[6]: Result */
2580 /* Ensure var variable[6]: super-string element*/
2581 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
2582 /* Register variable[5]: Result */
2583 variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
2584 CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_decl*/;
2585 return_label113: while(false);
2586 tracehead = trace.prev;
2587 return;
2588 }
2589 val_t compiling_global___TableEltSuper___compile_to_c(val_t self, val_t param0, val_t param1) {
2590 struct trace_t trace = {NULL, NULL, 613, LOCATE_compiling_global___TableEltSuper___compile_to_c};
2591 val_t variable[12];
2592 struct WBT_ **closurevariable = NULL;
2593 trace.prev = tracehead; tracehead = &trace;
2594 trace.file = LOCATE_compiling_global;
2595 /* Register variable[0]: Local variable */
2596 variable[0] = self;
2597 /* Register variable[1]: Local variable */
2598 variable[1] = param0;
2599 /* Register variable[2]: Local variable */
2600 variable[2] = param1;
2601 /* Register variable[3]: Method return value and escape marker */
2602 /* Register variable[4]: Local variable */
2603 /* Register variable[5]: Result */
2604 variable[5] = ATTR_compiling_global___TableEltProp____property(variable[0]) /*TableEltProp::_property*/;
2605 /* Register variable[5]: Result */
2606 variable[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[5])(variable[5]) /*MMLocalProperty::local_class*/;
2607 variable[4] = variable[5];
2608 /* Register variable[5]: Local variable */
2609 /* Register variable[6]: Result */
2610 variable[6] = ATTR_compiling_global___TableEltProp____property(variable[0]) /*TableEltProp::_property*/;
2611 /* Register variable[6]: Result */
2612 variable[6] = CALL_abstractmetamodel___MMLocalProperty___global(variable[6])(variable[6]) /*MMLocalProperty::global*/;
2613 variable[5] = variable[6];
2614 /* Register variable[6]: Local variable */
2615 /* Register variable[7]: Result */
2616 variable[7] = CALL_abstractmetamodel___MMLocalClass___che( variable[2] /*c*/)( variable[2] /*c*/) /*MMLocalClass::che*/;
2617 /* Register variable[7]: Result */
2618 variable[7] = CALL_partial_order___PartialOrderElement___linear_extension(variable[7])(variable[7]) /*PartialOrderElement::linear_extension*/;
2619 variable[6] = variable[7];
2620 /* Register variable[7]: Local variable */
2621 variable[7] = TAG_Bool(false);
2622 /* Register variable[8]: For iterator */
2623 variable[8] = CALL_abstract_collection___Collection___iterator( variable[6] /*lin*/)( variable[6] /*lin*/) /*AbstractArrayRead::iterator*/;
2624 while (true) { /*for*/
2625 /* Register variable[9]: For 'is_ok' result */
2626 variable[9] = CALL_abstract_collection___Iterator___is_ok(variable[8])(variable[8]) /*ArrayIterator::is_ok*/;
2627 if (!UNTAG_Bool(variable[9])) break; /*for*/
2628 variable[9] = CALL_abstract_collection___Iterator___item(variable[8])(variable[8]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
2629 /* Register variable[10]: Local variable */
2630 variable[10] = variable[9];
2631 /* Register variable[11]: Result */
2632 variable[11] = TAG_Bool(( variable[10] /*s*/ == variable[4] /*pc*/) || (( variable[10] /*s*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*s*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*s*/, variable[4] /*pc*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*s*/)( variable[10] /*s*/, variable[4] /*pc*/) /*Object::==*/)))));
2633 if (UNTAG_Bool(variable[11])) { /*if*/
2634 variable[7] = TAG_Bool(true) /*found=*/;
2635 } else { /*if*/
2636 variable[11] = variable[7] /*found*/ /* Ensure var: Left 'and' operand*/;
2637 if (UNTAG_Bool(variable[11])) { /* and */
2638 /* Register variable[11]: Result */
2639 variable[11] = CALL_abstractmetamodel___MMLocalClass___che( variable[2] /*c*/)( variable[2] /*c*/) /*MMLocalClass::che*/;
2640 /* Register variable[11]: Result */
2641 variable[11] = CALL_partial_order___PartialOrderElement_____l(variable[11])(variable[11], variable[10] /*s*/) /*PartialOrderElement::<*/;
2642 }
2643 /* Register variable[11]: Result */
2644 if (UNTAG_Bool(variable[11])) { /*if*/
2645 /* Register variable[11]: Result */
2646 variable[11] = CALL_abstractmetamodel___MMLocalClass___has_global_property( variable[10] /*s*/)( variable[10] /*s*/, variable[5] /*g*/) /*MMLocalClass::has_global_property*/;
2647 if (UNTAG_Bool(variable[11])) { /*if*/
2648 /* Register variable[11]: Result */
2649 variable[11] = CALL_abstractmetamodel___MMLocalClass_____bra( variable[10] /*s*/)( variable[10] /*s*/, variable[5] /*g*/) /*MMLocalClass::[]*/;
2650 /* Register variable[11]: Result */
2651 variable[11] = CALL_compiling_base___MMLocalProperty___cname(variable[11])(variable[11]) /*MMLocalProperty::cname*/;
2652 variable[3] = variable[11];
2653 goto return_label118;
2654 }
2655 }
2656 }
2657 continue_119: while(0);
2658 CALL_abstract_collection___Iterator___next(variable[8])(variable[8]) /*ArrayIterator::next*/;
2659 }
2660 break_119: while(0);
2661 if (!UNTAG_Bool( TAG_Bool(false))) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___TableEltSuper___compile_to_c, LOCATE_compiling_global, 630); nit_exit(1);}
2662 variable[3] = NIT_NULL /*null*/;
2663 goto return_label118;
2664 return_label118: while(false);
2665 tracehead = trace.prev;
2666 return variable[3];
2667 }
2668 void compiling_global___TableEltAttr___compile_macros(val_t self, val_t param0, val_t param1) {
2669 struct trace_t trace = {NULL, NULL, 638, LOCATE_compiling_global___TableEltAttr___compile_macros};
2670 static val_t once_value_121 = NIT_NULL; /* Once value for string variable[6]*/
2671 static val_t once_value_122 = NIT_NULL; /* Once value for string variable[6]*/
2672 static val_t once_value_123 = NIT_NULL; /* Once value for string variable[6]*/
2673 val_t variable[7];
2674 struct WBT_ **closurevariable = NULL;
2675 trace.prev = tracehead; tracehead = &trace;
2676 trace.file = LOCATE_compiling_global;
2677 /* Register variable[0]: Local variable */
2678 variable[0] = self;
2679 /* Register variable[1]: Local variable */
2680 variable[1] = param0;
2681 /* Register variable[2]: Local variable */
2682 variable[2] = param1;
2683 /* Register variable[3]: Method return value and escape marker */
2684 /* Register variable[4]: Local variable */
2685 /* Register variable[5]: Result */
2686 variable[5] = ATTR_compiling_global___TableEltProp____property(variable[0]) /*TableEltProp::_property*/;
2687 /* Register variable[5]: Result */
2688 variable[5] = CALL_abstractmetamodel___MMLocalProperty___global(variable[5])(variable[5]) /*MMLocalProperty::global*/;
2689 variable[4] = variable[5];
2690 variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
2691 /* Register variable[6]: Once String constant */
2692 if (once_value_121 != NIT_NULL) variable[6] = once_value_121;
2693 else {
2694 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)) /*new String*/;
2695 once_value_121 = variable[6];
2696 }
2697 /* Register variable[6]: Result */
2698 /* Ensure var variable[6]: super-string element*/
2699 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
2700 /* Register variable[6]: Result */
2701 variable[6] = CALL_compiling_base___MMGlobalProperty___attr_access( variable[4] /*pg*/)( variable[4] /*pg*/) /*MMGlobalProperty::attr_access*/;
2702 /* Ensure var variable[6]: super-string element*/
2703 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
2704 /* Register variable[6]: Once String constant */
2705 if (once_value_122 != NIT_NULL) variable[6] = once_value_122;
2706 else {
2707 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("(recv) ATTR(recv, ("), TAG_Int(19)) /*new String*/;
2708 once_value_122 = variable[6];
2709 }
2710 /* Register variable[6]: Result */
2711 /* Ensure var variable[6]: super-string element*/
2712 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
2713 variable[6] = variable[2] /*value*/ /* Ensure var: super-string element*/;
2714 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
2715 /* Register variable[6]: Once String constant */
2716 if (once_value_123 != NIT_NULL) variable[6] = once_value_123;
2717 else {
2718 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)) /*new String*/;
2719 once_value_123 = variable[6];
2720 }
2721 /* Register variable[6]: Result */
2722 /* Ensure var variable[6]: super-string element*/
2723 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
2724 /* Register variable[5]: Result */
2725 variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
2726 CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_decl*/;
2727 return_label120: while(false);
2728 tracehead = trace.prev;
2729 return;
2730 }
2731 val_t compiling_global___TableEltAttr___compile_to_c(val_t self, val_t param0, val_t param1) {
2732 struct trace_t trace = {NULL, NULL, 644, LOCATE_compiling_global___TableEltAttr___compile_to_c};
2733 static val_t once_value_125 = NIT_NULL; /* Once value for string variable[7]*/
2734 static val_t once_value_126 = NIT_NULL; /* Once value for string variable[7]*/
2735 static val_t once_value_127 = NIT_NULL; /* Once value for string variable[7]*/
2736 static val_t once_value_128 = NIT_NULL; /* Once value for string variable[7]*/
2737 val_t variable[8];
2738 struct WBT_ **closurevariable = NULL;
2739 trace.prev = tracehead; tracehead = &trace;
2740 trace.file = LOCATE_compiling_global;
2741 /* Register variable[0]: Local variable */
2742 variable[0] = self;
2743 /* Register variable[1]: Local variable */
2744 variable[1] = param0;
2745 /* Register variable[2]: Local variable */
2746 variable[2] = param1;
2747 /* Register variable[3]: Method return value and escape marker */
2748 /* Register variable[4]: Local variable */
2749 /* Register variable[5]: Result */
2750 variable[5] = CALL_compiling_global___GlobalCompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*GlobalCompilerVisitor::global_analysis*/;
2751 variable[4] = variable[5];
2752 /* Register variable[5]: Local variable */
2753 /* Register variable[6]: Result */
2754 variable[6] = ATTR_compiling_global___TableEltProp____property(variable[0]) /*TableEltProp::_property*/;
2755 /* Register variable[6]: Result */
2756 variable[6] = CALL_abstractmetamodel___MMLocalProperty___global(variable[6])(variable[6]) /*MMLocalProperty::global*/;
2757 /* Register variable[6]: Result */
2758 variable[6] = CALL_abstractmetamodel___MMLocalClass_____bra( variable[2] /*c*/)( variable[2] /*c*/, variable[6]) /*MMLocalClass::[]*/;
2759 variable[5] = variable[6];
2760 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
2761 /* Register variable[7]: Once String constant */
2762 if (once_value_125 != NIT_NULL) variable[7] = once_value_125;
2763 else {
2764 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("/* "), TAG_Int(3)) /*new String*/;
2765 once_value_125 = variable[7];
2766 }
2767 /* Register variable[7]: Result */
2768 /* Ensure var variable[7]: super-string element*/
2769 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
2770 /* Register variable[7]: Result */
2771 variable[7] = CALL_compiling_global___ColorContext___color( variable[4] /*ga*/)( variable[4] /*ga*/, variable[0]) /*ColorContext::color*/;
2772 /* Ensure var variable[7]: super-string element*/
2773 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
2774 /* Register variable[7]: Once String constant */
2775 if (once_value_126 != NIT_NULL) variable[7] = once_value_126;
2776 else {
2777 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(": Attribute "), TAG_Int(12)) /*new String*/;
2778 once_value_126 = variable[7];
2779 }
2780 /* Register variable[7]: Result */
2781 /* Ensure var variable[7]: super-string element*/
2782 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
2783 variable[7] = variable[2] /*c*/ /* Ensure var: super-string element*/;
2784 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
2785 /* Register variable[7]: Once String constant */
2786 if (once_value_127 != NIT_NULL) variable[7] = once_value_127;
2787 else {
2788 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/;
2789 once_value_127 = variable[7];
2790 }
2791 /* Register variable[7]: Result */
2792 /* Ensure var variable[7]: super-string element*/
2793 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
2794 variable[7] = variable[5] /*p*/ /* Ensure var: super-string element*/;
2795 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
2796 /* Register variable[7]: Once String constant */
2797 if (once_value_128 != NIT_NULL) variable[7] = once_value_128;
2798 else {
2799 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)) /*new String*/;
2800 once_value_128 = variable[7];
2801 }
2802 /* Register variable[7]: Result */
2803 /* Ensure var variable[7]: super-string element*/
2804 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
2805 /* Register variable[6]: Result */
2806 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
2807 variable[3] = variable[6];
2808 goto return_label124;
2809 return_label124: while(false);
2810 tracehead = trace.prev;
2811 return variable[3];
2812 }
2813 void compiling_global___AbsTableEltClass___compile_macros(val_t self, val_t param0, val_t param1) {
2814 struct trace_t trace = {NULL, NULL, 666, LOCATE_compiling_global___AbsTableEltClass___compile_macros};
2815 static val_t once_value_130 = NIT_NULL; /* Once value for string variable[5]*/
2816 static val_t once_value_131 = NIT_NULL; /* Once value for string variable[5]*/
2817 static val_t once_value_132 = NIT_NULL; /* Once value for string variable[5]*/
2818 val_t variable[6];
2819 struct WBT_ **closurevariable = NULL;
2820 trace.prev = tracehead; tracehead = &trace;
2821 trace.file = LOCATE_compiling_global;
2822 /* Register variable[0]: Local variable */
2823 variable[0] = self;
2824 /* Register variable[1]: Local variable */
2825 variable[1] = param0;
2826 /* Register variable[2]: Local variable */
2827 variable[2] = param1;
2828 /* Register variable[3]: Method return value and escape marker */
2829 variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
2830 /* Register variable[5]: Once String constant */
2831 if (once_value_130 != NIT_NULL) variable[5] = once_value_130;
2832 else {
2833 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)) /*new String*/;
2834 once_value_130 = variable[5];
2835 }
2836 /* Register variable[5]: Result */
2837 /* Ensure var variable[5]: super-string element*/
2838 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
2839 /* Register variable[5]: Result */
2840 variable[5] = CALL_compiling_global___AbsTableEltClass___symbol(variable[0])(variable[0]) /*AbsTableEltClass::symbol*/;
2841 /* Ensure var variable[5]: super-string element*/
2842 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
2843 /* Register variable[5]: Once String constant */
2844 if (once_value_131 != NIT_NULL) variable[5] = once_value_131;
2845 else {
2846 variable[5] = NEW_String_string___String___with_native(BOX_NativeString(" ("), TAG_Int(2)) /*new String*/;
2847 once_value_131 = variable[5];
2848 }
2849 /* Register variable[5]: Result */
2850 /* Ensure var variable[5]: super-string element*/
2851 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
2852 variable[5] = variable[2] /*value*/ /* Ensure var: super-string element*/;
2853 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
2854 /* Register variable[5]: Once String constant */
2855 if (once_value_132 != NIT_NULL) variable[5] = once_value_132;
2856 else {
2857 variable[5] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)) /*new String*/;
2858 once_value_132 = variable[5];
2859 }
2860 /* Register variable[5]: Result */
2861 /* Ensure var variable[5]: super-string element*/
2862 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
2863 /* Register variable[4]: Result */
2864 variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
2865 CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_decl*/;
2866 return_label129: while(false);
2867 tracehead = trace.prev;
2868 return;
2869 }
2870 void compiling_global___AbsTableEltClass___init(val_t self, val_t param0, int* init_table) {
2871 struct trace_t trace = {NULL, NULL, 658, LOCATE_compiling_global___AbsTableEltClass___init};
2872 val_t variable[3];
2873 struct WBT_ **closurevariable = NULL;
2874 trace.prev = tracehead; tracehead = &trace;
2875 trace.file = LOCATE_compiling_global;
2876 /* Register variable[0]: Local variable */
2877 variable[0] = self;
2878 /* Register variable[1]: Local variable */
2879 variable[1] = param0;
2880 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AbsTableEltClass].i]) return;
2881 /* Register variable[2]: Method return value and escape marker */
2882 ATTR_compiling_global___AbsTableEltClass____local_class(variable[0]) /*AbsTableEltClass::_local_class*/ = variable[1] /*c*/;
2883 return_label133: while(false);
2884 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AbsTableEltClass].i] = 1;
2885 tracehead = trace.prev;
2886 return;
2887 }
2888 val_t compiling_global___AbsTableEltClass___symbol(val_t self) {
2889 struct trace_t trace = {NULL, NULL, 663, LOCATE_compiling_global___AbsTableEltClass___symbol};
2890 val_t *variable = NULL;
2891 struct WBT_ **closurevariable = NULL;
2892 trace.prev = tracehead; tracehead = &trace;
2893 trace.file = LOCATE_compiling_global;
2894 fprintf(stderr, "Deferred method called");
2895 fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 663);
2896 nit_exit(1);
2897 tracehead = trace.prev;
2898 return NIT_NULL;
2899 }
2900 val_t compiling_global___TableEltClass___is_related_to(val_t self, val_t param0) {
2901 struct trace_t trace = {NULL, NULL, 676, LOCATE_compiling_global___TableEltClass___is_related_to};
2902 val_t variable[6];
2903 struct WBT_ **closurevariable = NULL;
2904 trace.prev = tracehead; tracehead = &trace;
2905 trace.file = LOCATE_compiling_global;
2906 /* Register variable[0]: Local variable */
2907 variable[0] = self;
2908 /* Register variable[1]: Local variable */
2909 variable[1] = param0;
2910 /* Register variable[2]: Method return value and escape marker */
2911 /* Register variable[3]: Local variable */
2912 /* Register variable[4]: Result */
2913 variable[4] = CALL_abstractmetamodel___MMLocalClass___module( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::module*/;
2914 /* Register variable[5]: Result */
2915 variable[5] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[0]) /*AbsTableEltClass::_local_class*/;
2916 /* Register variable[5]: Result */
2917 variable[5] = CALL_abstractmetamodel___MMLocalClass___global(variable[5])(variable[5]) /*MMLocalClass::global*/;
2918 /* Register variable[4]: Result */
2919 variable[4] = CALL_abstractmetamodel___MMModule_____bra(variable[4])(variable[4], variable[5]) /*MMModule::[]*/;
2920 variable[3] = variable[4];
2921 /* Register variable[4]: Result */
2922 variable[4] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::cshe*/;
2923 /* Register variable[4]: Result */
2924 variable[4] = CALL_partial_order___PartialOrderElement_____leq(variable[4])(variable[4], variable[3] /*bc*/) /*PartialOrderElement::<=*/;
2925 variable[2] = variable[4];
2926 goto return_label134;
2927 return_label134: while(false);
2928 tracehead = trace.prev;
2929 return variable[2];
2930 }
2931 val_t compiling_global___TableEltClassId___value(val_t self, val_t param0) {
2932 struct trace_t trace = {NULL, NULL, 689, LOCATE_compiling_global___TableEltClassId___value};
2933 static val_t once_value_136 = NIT_NULL; /* Once value for string variable[4]*/
2934 static val_t once_value_137 = NIT_NULL; /* Once value for string variable[4]*/
2935 static val_t once_value_138 = NIT_NULL; /* Once value for string variable[4]*/
2936 val_t variable[6];
2937 struct WBT_ **closurevariable = NULL;
2938 trace.prev = tracehead; tracehead = &trace;
2939 trace.file = LOCATE_compiling_global;
2940 /* Register variable[0]: Local variable */
2941 variable[0] = self;
2942 /* Register variable[1]: Local variable */
2943 variable[1] = param0;
2944 /* Register variable[2]: Method return value and escape marker */
2945 variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
2946 /* Register variable[4]: Once String constant */
2947 if (once_value_136 != NIT_NULL) variable[4] = once_value_136;
2948 else {
2949 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
2950 once_value_136 = variable[4];
2951 }
2952 /* Register variable[4]: Result */
2953 /* Ensure var variable[4]: super-string element*/
2954 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
2955 /* Register variable[4]: Result */
2956 variable[4] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[1] /*ga*/)( variable[1] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
2957 /* Register variable[5]: Result */
2958 variable[5] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[0]) /*AbsTableEltClass::_local_class*/;
2959 /* Register variable[5]: Result */
2960 variable[5] = CALL_abstractmetamodel___MMLocalClass___global(variable[5])(variable[5]) /*MMLocalClass::global*/;
2961 /* Register variable[4]: Result */
2962 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[5]) /*CoupleMap::[]*/;
2963 /* Register variable[4]: Result */
2964 variable[4] = CALL_compiling_global___CompiledClass___id(variable[4])(variable[4]) /*CompiledClass::id*/;
2965 /* Ensure var variable[4]: super-string element*/
2966 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/) /*AbstractArray::add*/;
2967 /* Register variable[4]: Once String constant */
2968 if (once_value_137 != NIT_NULL) variable[4] = once_value_137;
2969 else {
2970 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" /* Id of "), TAG_Int(10)) /*new String*/;
2971 once_value_137 = variable[4];
2972 }
2973 /* Register variable[4]: Result */
2974 /* Ensure var variable[4]: super-string element*/
2975 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
2976 /* Register variable[4]: Result */
2977 variable[4] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[0]) /*AbsTableEltClass::_local_class*/;
2978 /* Ensure var variable[4]: super-string element*/
2979 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/) /*AbstractArray::add*/;
2980 /* Register variable[4]: Once String constant */
2981 if (once_value_138 != NIT_NULL) variable[4] = once_value_138;
2982 else {
2983 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)) /*new String*/;
2984 once_value_138 = variable[4];
2985 }
2986 /* Register variable[4]: Result */
2987 /* Ensure var variable[4]: super-string element*/
2988 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
2989 /* Register variable[3]: Result */
2990 variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
2991 variable[2] = variable[3];
2992 goto return_label135;
2993 return_label135: while(false);
2994 tracehead = trace.prev;
2995 return variable[2];
2996 }
2997 val_t compiling_global___TableEltClassId___symbol(val_t self) {
2998 struct trace_t trace = {NULL, NULL, 687, LOCATE_compiling_global___TableEltClassId___symbol};
2999 val_t variable[3];
3000 struct WBT_ **closurevariable = NULL;
3001 trace.prev = tracehead; tracehead = &trace;
3002 trace.file = LOCATE_compiling_global;
3003 /* Register variable[0]: Local variable */
3004 variable[0] = self;
3005 /* Register variable[1]: Method return value and escape marker */
3006 /* Register variable[2]: Result */
3007 variable[2] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[0]) /*AbsTableEltClass::_local_class*/;
3008 /* Register variable[2]: Result */
3009 variable[2] = CALL_abstractmetamodel___MMLocalClass___global(variable[2])(variable[2]) /*MMLocalClass::global*/;
3010 /* Register variable[2]: Result */
3011 variable[2] = CALL_compiling_base___MMGlobalClass___id_id(variable[2])(variable[2]) /*MMGlobalClass::id_id*/;
3012 variable[1] = variable[2];
3013 goto return_label139;
3014 return_label139: while(false);
3015 tracehead = trace.prev;
3016 return variable[1];
3017 }
3018 val_t compiling_global___TableEltClassInitTable___compile_to_c(val_t self, val_t param0, val_t param1) {
3019 struct trace_t trace = {NULL, NULL, 700, LOCATE_compiling_global___TableEltClassInitTable___compile_to_c};
3020 static val_t once_value_143 = NIT_NULL; /* Once value for string variable[9]*/
3021 static val_t once_value_144 = NIT_NULL; /* Once value for string variable[9]*/
3022 static val_t once_value_145 = NIT_NULL; /* Once value for string variable[9]*/
3023 static val_t once_value_146 = NIT_NULL; /* Once value for string variable[9]*/
3024 static val_t once_value_147 = NIT_NULL; /* Once value for string variable[9]*/
3025 val_t variable[12];
3026 struct WBT_ **closurevariable = NULL;
3027 trace.prev = tracehead; tracehead = &trace;
3028 trace.file = LOCATE_compiling_global;
3029 /* Register variable[0]: Local variable */
3030 variable[0] = self;
3031 /* Register variable[1]: Local variable */
3032 variable[1] = param0;
3033 /* Register variable[2]: Local variable */
3034 variable[2] = param1;
3035 /* Register variable[3]: Method return value and escape marker */
3036 /* Register variable[4]: Local variable */
3037 /* Register variable[5]: Result */
3038 variable[5] = CALL_compiling_global___GlobalCompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*GlobalCompilerVisitor::global_analysis*/;
3039 variable[4] = variable[5];
3040 /* Register variable[5]: Local variable */
3041 /* Register variable[6]: Result */
3042 variable[6] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[4] /*ga*/)( variable[4] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
3043 /* Register variable[7]: Result */
3044 variable[7] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[0]) /*AbsTableEltClass::_local_class*/;
3045 /* Register variable[7]: Result */
3046 variable[7] = CALL_abstractmetamodel___MMLocalClass___global(variable[7])(variable[7]) /*MMLocalClass::global*/;
3047 /* Register variable[6]: Result */
3048 variable[6] = CALL_abstract_collection___MapRead_____bra(variable[6])(variable[6], variable[7]) /*CoupleMap::[]*/;
3049 variable[5] = variable[6];
3050 /* Register variable[6]: Local variable */
3051 /* Register variable[7]: Result */
3052 variable[7] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[2] /*c*/)( variable[2] /*c*/) /*MMLocalClass::cshe*/;
3053 /* Register variable[7]: Result */
3054 variable[7] = CALL_partial_order___PartialOrderElement___reverse_linear_extension(variable[7])(variable[7]) /*PartialOrderElement::reverse_linear_extension*/;
3055 variable[6] = variable[7];
3056 /* Register variable[7]: Local variable */
3057 variable[7] = TAG_Int(0);
3058 while (true) { /*while*/
3059 /* Register variable[8]: Local variable */
3060 variable[8] = variable[6] /*linext*/;
3061 /* Register variable[9]: Local variable */
3062 variable[9] = variable[7] /*i*/;
3063 /* Register variable[10]: Method return value and escape marker */
3064 /* Register variable[11]: Result */
3065 variable[11] = TAG_Bool(UNTAG_Int( variable[9] /*index*/)>=UNTAG_Int( TAG_Int(0)));
3066 /* Ensure var variable[11]: Left 'and' operand*/
3067 if (UNTAG_Bool(variable[11])) { /* and */
3068 /* Register variable[11]: Result */
3069 variable[11] = ATTR_array___AbstractArrayRead____length(variable[8]) /*AbstractArrayRead::_length*/;
3070 /* Register variable[11]: Result */
3071 variable[11] = TAG_Bool(UNTAG_Int( variable[9] /*index*/)<UNTAG_Int(variable[11]));
3072 }
3073 /* Register variable[11]: Result */
3074 if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_global, 234); nit_exit(1);}
3075 /* Register variable[11]: Result */
3076 variable[11] = ATTR_array___Array____items(variable[8]) /*Array::_items*/;
3077 /* Register variable[11]: Result */
3078 variable[11] = UNBOX_NativeArray(variable[11])[UNTAG_Int( variable[9] /*index*/)];
3079 variable[10] = variable[11];
3080 goto return_label142;
3081 return_label142: while(false);
3082 /* Register variable[8]: Result */
3083 variable[8] = variable[10];
3084 /* Register variable[8]: Result */
3085 variable[8] = CALL_abstractmetamodel___MMLocalClass___global(variable[8])(variable[8]) /*MMLocalClass::global*/;
3086 /* Register variable[9]: Result */
3087 variable[9] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[0]) /*AbsTableEltClass::_local_class*/;
3088 /* Register variable[9]: Result */
3089 variable[9] = CALL_abstractmetamodel___MMLocalClass___global(variable[9])(variable[9]) /*MMLocalClass::global*/;
3090 /* Register variable[8]: Result */
3091 variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] == variable[9]) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8],variable[9])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8], variable[9]) /*Object::==*/)))))));
3092 if (!UNTAG_Bool(variable[8])) break; /* while*/
3093 variable[7] = TAG_Int(UNTAG_Int(variable[7])+UNTAG_Int( TAG_Int(1))) /*i*/;
3094 continue_141: while(0);
3095 }
3096 break_141: while(0);
3097 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(9)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
3098 /* Register variable[9]: Once String constant */
3099 if (once_value_143 != NIT_NULL) variable[9] = once_value_143;
3100 else {
3101 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
3102 once_value_143 = variable[9];
3103 }
3104 /* Register variable[9]: Result */
3105 /* Ensure var variable[9]: super-string element*/
3106 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
3107 variable[9] = variable[7] /*i*/ /* Ensure var: super-string element*/;
3108 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/;
3109 /* Register variable[9]: Once String constant */
3110 if (once_value_144 != NIT_NULL) variable[9] = once_value_144;
3111 else {
3112 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" /* "), TAG_Int(4)) /*new String*/;
3113 once_value_144 = variable[9];
3114 }
3115 /* Register variable[9]: Result */
3116 /* Ensure var variable[9]: super-string element*/
3117 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
3118 /* Register variable[9]: Result */
3119 variable[9] = CALL_compiling_global___ColorContext___color( variable[4] /*ga*/)( variable[4] /*ga*/, variable[0]) /*ColorContext::color*/;
3120 /* Ensure var variable[9]: super-string element*/
3121 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/;
3122 /* Register variable[9]: Once String constant */
3123 if (once_value_145 != NIT_NULL) variable[9] = once_value_145;
3124 else {
3125 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)) /*new String*/;
3126 once_value_145 = variable[9];
3127 }
3128 /* Register variable[9]: Result */
3129 /* Ensure var variable[9]: super-string element*/
3130 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
3131 variable[9] = variable[2] /*c*/ /* Ensure var: super-string element*/;
3132 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/;
3133 /* Register variable[9]: Once String constant */
3134 if (once_value_146 != NIT_NULL) variable[9] = once_value_146;
3135 else {
3136 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" < "), TAG_Int(3)) /*new String*/;
3137 once_value_146 = variable[9];
3138 }
3139 /* Register variable[9]: Result */
3140 /* Ensure var variable[9]: super-string element*/
3141 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
3142 /* Register variable[9]: Result */
3143 variable[9] = CALL_compiling_global___CompiledClass___local_class( variable[5] /*cc*/)( variable[5] /*cc*/) /*CompiledClass::local_class*/;
3144 /* Ensure var variable[9]: super-string element*/
3145 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/;
3146 /* Register variable[9]: Once String constant */
3147 if (once_value_147 != NIT_NULL) variable[9] = once_value_147;
3148 else {
3149 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(": superclass init_table position */"), TAG_Int(35)) /*new String*/;
3150 once_value_147 = variable[9];
3151 }
3152 /* Register variable[9]: Result */
3153 /* Ensure var variable[9]: super-string element*/
3154 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
3155 /* Register variable[8]: Result */
3156 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
3157 variable[3] = variable[8];
3158 goto return_label140;
3159 return_label140: while(false);
3160 tracehead = trace.prev;
3161 return variable[3];
3162 }
3163 val_t compiling_global___TableEltClassInitTable___symbol(val_t self) {
3164 struct trace_t trace = {NULL, NULL, 698, LOCATE_compiling_global___TableEltClassInitTable___symbol};
3165 val_t variable[3];
3166 struct WBT_ **closurevariable = NULL;
3167 trace.prev = tracehead; tracehead = &trace;
3168 trace.file = LOCATE_compiling_global;
3169 /* Register variable[0]: Local variable */
3170 variable[0] = self;
3171 /* Register variable[1]: Method return value and escape marker */
3172 /* Register variable[2]: Result */
3173 variable[2] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[0]) /*AbsTableEltClass::_local_class*/;
3174 /* Register variable[2]: Result */
3175 variable[2] = CALL_abstractmetamodel___MMLocalClass___global(variable[2])(variable[2]) /*MMLocalClass::global*/;
3176 /* Register variable[2]: Result */
3177 variable[2] = CALL_compiling_base___MMGlobalClass___init_table_pos_id(variable[2])(variable[2]) /*MMGlobalClass::init_table_pos_id*/;
3178 variable[1] = variable[2];
3179 goto return_label148;
3180 return_label148: while(false);
3181 tracehead = trace.prev;
3182 return variable[1];
3183 }
3184 val_t compiling_global___TableEltClassColor___compile_to_c(val_t self, val_t param0, val_t param1) {
3185 struct trace_t trace = {NULL, NULL, 727, LOCATE_compiling_global___TableEltClassColor___compile_to_c};
3186 static val_t once_value_150 = NIT_NULL; /* Once value for string variable[7]*/
3187 static val_t once_value_151 = NIT_NULL; /* Once value for string variable[7]*/
3188 static val_t once_value_152 = NIT_NULL; /* Once value for string variable[7]*/
3189 static val_t once_value_153 = NIT_NULL; /* Once value for string variable[7]*/
3190 static val_t once_value_154 = NIT_NULL; /* Once value for string variable[7]*/
3191 val_t variable[8];
3192 struct WBT_ **closurevariable = NULL;
3193 trace.prev = tracehead; tracehead = &trace;
3194 trace.file = LOCATE_compiling_global;
3195 /* Register variable[0]: Local variable */
3196 variable[0] = self;
3197 /* Register variable[1]: Local variable */
3198 variable[1] = param0;
3199 /* Register variable[2]: Local variable */
3200 variable[2] = param1;
3201 /* Register variable[3]: Method return value and escape marker */
3202 /* Register variable[4]: Local variable */
3203 /* Register variable[5]: Result */
3204 variable[5] = CALL_compiling_global___GlobalCompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*GlobalCompilerVisitor::global_analysis*/;
3205 variable[4] = variable[5];
3206 /* Register variable[5]: Local variable */
3207 /* Register variable[6]: Result */
3208 variable[6] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[4] /*ga*/)( variable[4] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
3209 /* Register variable[7]: Result */
3210 variable[7] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[0]) /*AbsTableEltClass::_local_class*/;
3211 /* Register variable[7]: Result */
3212 variable[7] = CALL_abstractmetamodel___MMLocalClass___global(variable[7])(variable[7]) /*MMLocalClass::global*/;
3213 /* Register variable[6]: Result */
3214 variable[6] = CALL_abstract_collection___MapRead_____bra(variable[6])(variable[6], variable[7]) /*CoupleMap::[]*/;
3215 variable[5] = variable[6];
3216 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(9)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
3217 /* Register variable[7]: Once String constant */
3218 if (once_value_150 != NIT_NULL) variable[7] = once_value_150;
3219 else {
3220 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
3221 once_value_150 = variable[7];
3222 }
3223 /* Register variable[7]: Result */
3224 /* Ensure var variable[7]: super-string element*/
3225 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
3226 /* Register variable[7]: Result */
3227 variable[7] = CALL_compiling_global___CompiledClass___id( variable[5] /*cc*/)( variable[5] /*cc*/) /*CompiledClass::id*/;
3228 /* Ensure var variable[7]: super-string element*/
3229 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
3230 /* Register variable[7]: Once String constant */
3231 if (once_value_151 != NIT_NULL) variable[7] = once_value_151;
3232 else {
3233 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(" /* "), TAG_Int(4)) /*new String*/;
3234 once_value_151 = variable[7];
3235 }
3236 /* Register variable[7]: Result */
3237 /* Ensure var variable[7]: super-string element*/
3238 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
3239 /* Register variable[7]: Result */
3240 variable[7] = CALL_compiling_global___ColorContext___color( variable[4] /*ga*/)( variable[4] /*ga*/, variable[0]) /*ColorContext::color*/;
3241 /* Ensure var variable[7]: super-string element*/
3242 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
3243 /* Register variable[7]: Once String constant */
3244 if (once_value_152 != NIT_NULL) variable[7] = once_value_152;
3245 else {
3246 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)) /*new String*/;
3247 once_value_152 = variable[7];
3248 }
3249 /* Register variable[7]: Result */
3250 /* Ensure var variable[7]: super-string element*/
3251 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
3252 variable[7] = variable[2] /*c*/ /* Ensure var: super-string element*/;
3253 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
3254 /* Register variable[7]: Once String constant */
3255 if (once_value_153 != NIT_NULL) variable[7] = once_value_153;
3256 else {
3257 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(" < "), TAG_Int(3)) /*new String*/;
3258 once_value_153 = variable[7];
3259 }
3260 /* Register variable[7]: Result */
3261 /* Ensure var variable[7]: super-string element*/
3262 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
3263 /* Register variable[7]: Result */
3264 variable[7] = CALL_compiling_global___CompiledClass___local_class( variable[5] /*cc*/)( variable[5] /*cc*/) /*CompiledClass::local_class*/;
3265 /* Ensure var variable[7]: super-string element*/
3266 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
3267 /* Register variable[7]: Once String constant */
3268 if (once_value_154 != NIT_NULL) variable[7] = once_value_154;
3269 else {
3270 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(": superclass typecheck marker */"), TAG_Int(32)) /*new String*/;
3271 once_value_154 = variable[7];
3272 }
3273 /* Register variable[7]: Result */
3274 /* Ensure var variable[7]: super-string element*/
3275 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
3276 /* Register variable[6]: Result */
3277 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
3278 variable[3] = variable[6];
3279 goto return_label149;
3280 return_label149: while(false);
3281 tracehead = trace.prev;
3282 return variable[3];
3283 }
3284 val_t compiling_global___TableEltClassColor___symbol(val_t self) {
3285 struct trace_t trace = {NULL, NULL, 720, LOCATE_compiling_global___TableEltClassColor___symbol};
3286 val_t variable[3];
3287 struct WBT_ **closurevariable = NULL;
3288 trace.prev = tracehead; tracehead = &trace;
3289 trace.file = LOCATE_compiling_global;
3290 /* Register variable[0]: Local variable */
3291 variable[0] = self;
3292 /* Register variable[1]: Method return value and escape marker */
3293 /* Register variable[2]: Result */
3294 variable[2] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[0]) /*AbsTableEltClass::_local_class*/;
3295 /* Register variable[2]: Result */
3296 variable[2] = CALL_abstractmetamodel___MMLocalClass___global(variable[2])(variable[2]) /*MMLocalClass::global*/;
3297 /* Register variable[2]: Result */
3298 variable[2] = CALL_compiling_base___MMGlobalClass___color_id(variable[2])(variable[2]) /*MMGlobalClass::color_id*/;
3299 variable[1] = variable[2];
3300 goto return_label155;
3301 return_label155: while(false);
3302 tracehead = trace.prev;
3303 return variable[1];
3304 }
3305 val_t compiling_global___TableEltClassColor___value(val_t self, val_t param0) {
3306 struct trace_t trace = {NULL, NULL, 722, LOCATE_compiling_global___TableEltClassColor___value};
3307 static val_t once_value_157 = NIT_NULL; /* Once value for string variable[4]*/
3308 static val_t once_value_158 = NIT_NULL; /* Once value for string variable[4]*/
3309 static val_t once_value_159 = NIT_NULL; /* Once value for string variable[4]*/
3310 val_t variable[5];
3311 struct WBT_ **closurevariable = NULL;
3312 trace.prev = tracehead; tracehead = &trace;
3313 trace.file = LOCATE_compiling_global;
3314 /* Register variable[0]: Local variable */
3315 variable[0] = self;
3316 /* Register variable[1]: Local variable */
3317 variable[1] = param0;
3318 /* Register variable[2]: Method return value and escape marker */
3319 variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
3320 /* Register variable[4]: Once String constant */
3321 if (once_value_157 != NIT_NULL) variable[4] = once_value_157;
3322 else {
3323 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
3324 once_value_157 = variable[4];
3325 }
3326 /* Register variable[4]: Result */
3327 /* Ensure var variable[4]: super-string element*/
3328 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
3329 /* Register variable[4]: Result */
3330 variable[4] = CALL_compiling_global___ColorContext___color( variable[1] /*ga*/)( variable[1] /*ga*/, variable[0]) /*ColorContext::color*/;
3331 /* Ensure var variable[4]: super-string element*/
3332 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/) /*AbstractArray::add*/;
3333 /* Register variable[4]: Once String constant */
3334 if (once_value_158 != NIT_NULL) variable[4] = once_value_158;
3335 else {
3336 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" /* Color of "), TAG_Int(13)) /*new String*/;
3337 once_value_158 = variable[4];
3338 }
3339 /* Register variable[4]: Result */
3340 /* Ensure var variable[4]: super-string element*/
3341 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
3342 /* Register variable[4]: Result */
3343 variable[4] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[0]) /*AbsTableEltClass::_local_class*/;
3344 /* Ensure var variable[4]: super-string element*/
3345 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/) /*AbstractArray::add*/;
3346 /* Register variable[4]: Once String constant */
3347 if (once_value_159 != NIT_NULL) variable[4] = once_value_159;
3348 else {
3349 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)) /*new String*/;
3350 once_value_159 = variable[4];
3351 }
3352 /* Register variable[4]: Result */
3353 /* Ensure var variable[4]: super-string element*/
3354 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
3355 /* Register variable[3]: Result */
3356 variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
3357 variable[2] = variable[3];
3358 goto return_label156;
3359 return_label156: while(false);
3360 tracehead = trace.prev;
3361 return variable[2];
3362 }
3363 val_t compiling_global___TableEltComposite___is_related_to(val_t self, val_t param0) {
3364 struct trace_t trace = {NULL, NULL, 742, LOCATE_compiling_global___TableEltComposite___is_related_to};
3365 val_t variable[5];
3366 struct WBT_ **closurevariable = NULL;
3367 trace.prev = tracehead; tracehead = &trace;
3368 trace.file = LOCATE_compiling_global;
3369 /* Register variable[0]: Local variable */
3370 variable[0] = self;
3371 /* Register variable[1]: Local variable */
3372 variable[1] = param0;
3373 /* Register variable[2]: Method return value and escape marker */
3374 /* Register variable[3]: Result */
3375 variable[3] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::cshe*/;
3376 /* Register variable[4]: Result */
3377 variable[4] = ATTR_compiling_global___TableEltComposite____cc(variable[0]) /*TableEltComposite::_cc*/;
3378 /* Register variable[4]: Result */
3379 variable[4] = CALL_compiling_global___CompiledClass___local_class(variable[4])(variable[4]) /*CompiledClass::local_class*/;
3380 /* Register variable[3]: Result */
3381 variable[3] = CALL_partial_order___PartialOrderElement_____leq(variable[3])(variable[3], variable[4]) /*PartialOrderElement::<=*/;
3382 variable[2] = variable[3];
3383 goto return_label160;
3384 return_label160: while(false);
3385 tracehead = trace.prev;
3386 return variable[2];
3387 }
3388 val_t compiling_global___TableEltComposite___length(val_t self) {
3389 struct trace_t trace = {NULL, NULL, 741, LOCATE_compiling_global___TableEltComposite___length};
3390 val_t variable[3];
3391 struct WBT_ **closurevariable = NULL;
3392 trace.prev = tracehead; tracehead = &trace;
3393 trace.file = LOCATE_compiling_global;
3394 /* Register variable[0]: Local variable */
3395 variable[0] = self;
3396 /* Register variable[1]: Method return value and escape marker */
3397 /* Register variable[2]: Result */
3398 variable[2] = ATTR_compiling_global___TableEltComposite____table(variable[0]) /*TableEltComposite::_table*/;
3399 /* Register variable[2]: Result */
3400 variable[2] = CALL_abstract_collection___Collection___length(variable[2])(variable[2]) /*AbstractArrayRead::length*/;
3401 variable[1] = variable[2];
3402 goto return_label161;
3403 return_label161: while(false);
3404 tracehead = trace.prev;
3405 return variable[1];
3406 }
3407 val_t compiling_global___TableEltComposite___item(val_t self, val_t param0) {
3408 struct trace_t trace = {NULL, NULL, 750, LOCATE_compiling_global___TableEltComposite___item};
3409 val_t variable[8];
3410 struct WBT_ **closurevariable = NULL;
3411 trace.prev = tracehead; tracehead = &trace;
3412 trace.file = LOCATE_compiling_global;
3413 /* Register variable[0]: Local variable */
3414 variable[0] = self;
3415 /* Register variable[1]: Local variable */
3416 variable[1] = param0;
3417 /* Register variable[2]: Method return value and escape marker */
3418 /* Register variable[3]: Result */
3419 variable[3] = ATTR_compiling_global___TableEltComposite____table(variable[0]) /*TableEltComposite::_table*/;
3420 /* Register variable[4]: Local variable */
3421 variable[4] = variable[3];
3422 /* Register variable[5]: Local variable */
3423 variable[5] = variable[1] /*i*/;
3424 /* Register variable[6]: Method return value and escape marker */
3425 /* Register variable[7]: Result */
3426 variable[7] = TAG_Bool(UNTAG_Int( variable[5] /*index*/)>=UNTAG_Int( TAG_Int(0)));
3427 /* Ensure var variable[7]: Left 'and' operand*/
3428 if (UNTAG_Bool(variable[7])) { /* and */
3429 /* Register variable[7]: Result */
3430 variable[7] = ATTR_array___AbstractArrayRead____length(variable[4]) /*AbstractArrayRead::_length*/;
3431 /* Register variable[7]: Result */
3432 variable[7] = TAG_Bool(UNTAG_Int( variable[5] /*index*/)<UNTAG_Int(variable[7]));
3433 }
3434 /* Register variable[7]: Result */
3435 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_global, 234); nit_exit(1);}
3436 /* Register variable[7]: Result */
3437 variable[7] = ATTR_array___Array____items(variable[4]) /*Array::_items*/;
3438 /* Register variable[7]: Result */
3439 variable[7] = UNBOX_NativeArray(variable[7])[UNTAG_Int( variable[5] /*index*/)];
3440 variable[6] = variable[7];
3441 goto return_label163;
3442 return_label163: while(false);
3443 /* Register variable[3]: Result */
3444 variable[3] = variable[6];
3445 variable[2] = variable[3];
3446 goto return_label162;
3447 return_label162: while(false);
3448 tracehead = trace.prev;
3449 return variable[2];
3450 }
3451 val_t compiling_global___TableEltComposite___compile_to_c(val_t self, val_t param0, val_t param1) {
3452 struct trace_t trace = {NULL, NULL, 752, LOCATE_compiling_global___TableEltComposite___compile_to_c};
3453 val_t variable[4];
3454 struct WBT_ **closurevariable = NULL;
3455 trace.prev = tracehead; tracehead = &trace;
3456 trace.file = LOCATE_compiling_global;
3457 /* Register variable[0]: Local variable */
3458 variable[0] = self;
3459 /* Register variable[1]: Local variable */
3460 variable[1] = param0;
3461 /* Register variable[2]: Local variable */
3462 variable[2] = param1;
3463 /* Register variable[3]: Method return value and escape marker */
3464 fprintf(stderr, "Aborted"); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___TableEltComposite___compile_to_c, LOCATE_compiling_global, 752); nit_exit(1);
3465 return_label164: while(false);
3466 tracehead = trace.prev;
3467 return variable[3];
3468 }
3469 void compiling_global___TableEltComposite___add(val_t self, val_t param0, val_t param1) {
3470 struct trace_t trace = {NULL, NULL, 744, LOCATE_compiling_global___TableEltComposite___add};
3471 val_t variable[6];
3472 struct WBT_ **closurevariable = NULL;
3473 trace.prev = tracehead; tracehead = &trace;
3474 trace.file = LOCATE_compiling_global;
3475 /* Register variable[0]: Local variable */
3476 variable[0] = self;
3477 /* Register variable[1]: Local variable */
3478 variable[1] = param0;
3479 /* Register variable[2]: Local variable */
3480 variable[2] = param1;
3481 /* Register variable[3]: Method return value and escape marker */
3482 /* Register variable[4]: Result */
3483 variable[4] = ATTR_compiling_global___TableEltComposite____offsets(variable[0]) /*TableEltComposite::_offsets*/;
3484 /* Register variable[5]: Result */
3485 variable[5] = ATTR_compiling_global___TableEltComposite____table(variable[0]) /*TableEltComposite::_table*/;
3486 /* Register variable[5]: Result */
3487 variable[5] = CALL_abstract_collection___Collection___length(variable[5])(variable[5]) /*AbstractArrayRead::length*/;
3488 CALL_abstract_collection___Map_____braeq(variable[4])(variable[4], variable[1] /*c*/, variable[5]) /*HashMap::[]=*/;
3489 /* Register variable[4]: Result */
3490 variable[4] = ATTR_compiling_global___TableEltComposite____table(variable[0]) /*TableEltComposite::_table*/;
3491 CALL_abstract_collection___IndexedCollection___append(variable[4])(variable[4], variable[2] /*tab*/) /*IndexedCollection::append*/;
3492 return_label165: while(false);
3493 tracehead = trace.prev;
3494 return;
3495 }
3496 void compiling_global___TableEltComposite___init(val_t self, val_t param0, int* init_table) {
3497 struct trace_t trace = {NULL, NULL, 754, LOCATE_compiling_global___TableEltComposite___init};
3498 val_t variable[4];
3499 struct WBT_ **closurevariable = NULL;
3500 trace.prev = tracehead; tracehead = &trace;
3501 trace.file = LOCATE_compiling_global;
3502 /* Register variable[0]: Local variable */
3503 variable[0] = self;
3504 /* Register variable[1]: Local variable */
3505 variable[1] = param0;
3506 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltComposite].i]) return;
3507 /* Register variable[2]: Method return value and escape marker */
3508 ATTR_compiling_global___TableEltComposite____cc(variable[0]) /*TableEltComposite::_cc*/ = variable[1] /*cc*/;
3509 /* Register variable[3]: Result */
3510 variable[3] = NEW_Array_array___Array___init() /*new Array[TableElt]*/;
3511 ATTR_compiling_global___TableEltComposite____table(variable[0]) /*TableEltComposite::_table*/ = variable[3];
3512 /* Register variable[3]: Result */
3513 variable[3] = NEW_HashMap_hash___HashMap___init() /*new HashMap[MMLocalClass, Int]*/;
3514 ATTR_compiling_global___TableEltComposite____offsets(variable[0]) /*TableEltComposite::_offsets*/ = variable[3];
3515 return_label166: while(false);
3516 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltComposite].i] = 1;
3517 tracehead = trace.prev;
3518 return;
3519 }
3520 val_t compiling_global___TableEltClassSelfId___is_related_to(val_t self, val_t param0) {
3521 struct trace_t trace = {NULL, NULL, 765, LOCATE_compiling_global___TableEltClassSelfId___is_related_to};
3522 val_t variable[3];
3523 struct WBT_ **closurevariable = NULL;
3524 trace.prev = tracehead; tracehead = &trace;
3525 trace.file = LOCATE_compiling_global;
3526 /* Register variable[0]: Local variable */
3527 variable[0] = self;
3528 /* Register variable[1]: Local variable */
3529 variable[1] = param0;
3530 /* Register variable[2]: Method return value and escape marker */
3531 variable[2] = TAG_Bool(true);
3532 goto return_label167;
3533 return_label167: while(false);
3534 tracehead = trace.prev;
3535 return variable[2];
3536 }
3537 val_t compiling_global___TableEltClassSelfId___compile_to_c(val_t self, val_t param0, val_t param1) {
3538 struct trace_t trace = {NULL, NULL, 766, LOCATE_compiling_global___TableEltClassSelfId___compile_to_c};
3539 static val_t once_value_169 = NIT_NULL; /* Once value for string variable[6]*/
3540 static val_t once_value_170 = NIT_NULL; /* Once value for string variable[6]*/
3541 static val_t once_value_171 = NIT_NULL; /* Once value for string variable[6]*/
3542 val_t variable[8];
3543 struct WBT_ **closurevariable = NULL;
3544 trace.prev = tracehead; tracehead = &trace;
3545 trace.file = LOCATE_compiling_global;
3546 /* Register variable[0]: Local variable */
3547 variable[0] = self;
3548 /* Register variable[1]: Local variable */
3549 variable[1] = param0;
3550 /* Register variable[2]: Local variable */
3551 variable[2] = param1;
3552 /* Register variable[3]: Method return value and escape marker */
3553 /* Register variable[4]: Local variable */
3554 /* Register variable[5]: Result */
3555 variable[5] = CALL_compiling_global___GlobalCompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*GlobalCompilerVisitor::global_analysis*/;
3556 variable[4] = variable[5];
3557 variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
3558 /* Register variable[6]: Once String constant */
3559 if (once_value_169 != NIT_NULL) variable[6] = once_value_169;
3560 else {
3561 variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
3562 once_value_169 = variable[6];
3563 }
3564 /* Register variable[6]: Result */
3565 /* Ensure var variable[6]: super-string element*/
3566 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
3567 /* Register variable[6]: Result */
3568 variable[6] = CALL_compiling_global___GlobalCompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*GlobalCompilerVisitor::global_analysis*/;
3569 /* Register variable[6]: Result */
3570 variable[6] = CALL_compiling_global___GlobalAnalysis___compiled_classes(variable[6])(variable[6]) /*GlobalAnalysis::compiled_classes*/;
3571 /* Register variable[7]: Result */
3572 variable[7] = CALL_abstractmetamodel___MMLocalClass___global( variable[2] /*c*/)( variable[2] /*c*/) /*MMLocalClass::global*/;
3573 /* Register variable[6]: Result */
3574 variable[6] = CALL_abstract_collection___MapRead_____bra(variable[6])(variable[6], variable[7]) /*CoupleMap::[]*/;
3575 /* Register variable[6]: Result */
3576 variable[6] = CALL_compiling_global___CompiledClass___id(variable[6])(variable[6]) /*CompiledClass::id*/;
3577 /* Ensure var variable[6]: super-string element*/
3578 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/) /*AbstractArray::add*/;
3579 /* Register variable[6]: Once String constant */
3580 if (once_value_170 != NIT_NULL) variable[6] = once_value_170;
3581 else {
3582 variable[6] = NEW_String_string___String___with_native(BOX_NativeString(" /* "), TAG_Int(4)) /*new String*/;
3583 once_value_170 = variable[6];
3584 }
3585 /* Register variable[6]: Result */
3586 /* Ensure var variable[6]: super-string element*/
3587 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
3588 /* Register variable[6]: Result */
3589 variable[6] = CALL_compiling_global___ColorContext___color( variable[4] /*ga*/)( variable[4] /*ga*/, variable[0]) /*ColorContext::color*/;
3590 /* Ensure var variable[6]: super-string element*/
3591 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/) /*AbstractArray::add*/;
3592 /* Register variable[6]: Once String constant */
3593 if (once_value_171 != NIT_NULL) variable[6] = once_value_171;
3594 else {
3595 variable[6] = NEW_String_string___String___with_native(BOX_NativeString(": Identity */"), TAG_Int(13)) /*new String*/;
3596 once_value_171 = variable[6];
3597 }
3598 /* Register variable[6]: Result */
3599 /* Ensure var variable[6]: super-string element*/
3600 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
3601 /* Register variable[5]: Result */
3602 variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
3603 variable[3] = variable[5];
3604 goto return_label168;
3605 return_label168: while(false);
3606 tracehead = trace.prev;
3607 return variable[3];
3608 }
3609 val_t compiling_global___TableEltVftPointer___is_related_to(val_t self, val_t param0) {
3610 struct trace_t trace = {NULL, NULL, 776, LOCATE_compiling_global___TableEltVftPointer___is_related_to};
3611 val_t variable[3];
3612 struct WBT_ **closurevariable = NULL;
3613 trace.prev = tracehead; tracehead = &trace;
3614 trace.file = LOCATE_compiling_global;
3615 /* Register variable[0]: Local variable */
3616 variable[0] = self;
3617 /* Register variable[1]: Local variable */
3618 variable[1] = param0;
3619 /* Register variable[2]: Method return value and escape marker */
3620 variable[2] = TAG_Bool(true);
3621 goto return_label172;
3622 return_label172: while(false);
3623 tracehead = trace.prev;
3624 return variable[2];
3625 }
3626 val_t compiling_global___TableEltVftPointer___compile_to_c(val_t self, val_t param0, val_t param1) {
3627 struct trace_t trace = {NULL, NULL, 777, LOCATE_compiling_global___TableEltVftPointer___compile_to_c};
3628 static val_t once_value_174 = NIT_NULL; /* Once value for string variable[6]*/
3629 static val_t once_value_175 = NIT_NULL; /* Once value for string variable[6]*/
3630 val_t variable[7];
3631 struct WBT_ **closurevariable = NULL;
3632 trace.prev = tracehead; tracehead = &trace;
3633 trace.file = LOCATE_compiling_global;
3634 /* Register variable[0]: Local variable */
3635 variable[0] = self;
3636 /* Register variable[1]: Local variable */
3637 variable[1] = param0;
3638 /* Register variable[2]: Local variable */
3639 variable[2] = param1;
3640 /* Register variable[3]: Method return value and escape marker */
3641 /* Register variable[4]: Local variable */
3642 /* Register variable[5]: Result */
3643 variable[5] = CALL_compiling_global___GlobalCompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*GlobalCompilerVisitor::global_analysis*/;
3644 variable[4] = variable[5];
3645 variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
3646 /* Register variable[6]: Once String constant */
3647 if (once_value_174 != NIT_NULL) variable[6] = once_value_174;
3648 else {
3649 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("/* "), TAG_Int(3)) /*new String*/;
3650 once_value_174 = variable[6];
3651 }
3652 /* Register variable[6]: Result */
3653 /* Ensure var variable[6]: super-string element*/
3654 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
3655 /* Register variable[6]: Result */
3656 variable[6] = CALL_compiling_global___ColorContext___color( variable[4] /*ga*/)( variable[4] /*ga*/, variable[0]) /*ColorContext::color*/;
3657 /* Ensure var variable[6]: super-string element*/
3658 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/) /*AbstractArray::add*/;
3659 /* Register variable[6]: Once String constant */
3660 if (once_value_175 != NIT_NULL) variable[6] = once_value_175;
3661 else {
3662 variable[6] = NEW_String_string___String___with_native(BOX_NativeString(": Pointer to the classtable */"), TAG_Int(30)) /*new String*/;
3663 once_value_175 = variable[6];
3664 }
3665 /* Register variable[6]: Result */
3666 /* Ensure var variable[6]: super-string element*/
3667 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
3668 /* Register variable[5]: Result */
3669 variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
3670 variable[3] = variable[5];
3671 goto return_label173;
3672 return_label173: while(false);
3673 tracehead = trace.prev;
3674 return variable[3];
3675 }
3676 val_t compiling_global___ClassSorter___compare(val_t self, val_t param0, val_t param1) {
3677 struct trace_t trace = {NULL, NULL, 790, LOCATE_compiling_global___ClassSorter___compare};
3678 val_t variable[5];
3679 struct WBT_ **closurevariable = NULL;
3680 trace.prev = tracehead; tracehead = &trace;
3681 trace.file = LOCATE_compiling_global;
3682 /* Register variable[0]: Local variable */
3683 variable[0] = self;
3684 /* Register variable[1]: Local variable */
3685 variable[1] = param0;
3686 /* Register variable[2]: Local variable */
3687 variable[2] = param1;
3688 /* Register variable[3]: Method return value and escape marker */
3689 /* Register variable[4]: Result */
3690 variable[4] = CALL_compiling_global___MMLocalClass___compare( variable[1] /*a*/)( variable[1] /*a*/, variable[2] /*b*/) /*MMLocalClass::compare*/;
3691 variable[3] = variable[4];
3692 goto return_label176;
3693 return_label176: while(false);
3694 tracehead = trace.prev;
3695 return variable[3];
3696 }
3697 void compiling_global___ClassSorter___init(val_t self, int* init_table) {
3698 struct trace_t trace = {NULL, NULL, 791, LOCATE_compiling_global___ClassSorter___init};
3699 val_t variable[2];
3700 struct WBT_ **closurevariable = NULL;
3701 trace.prev = tracehead; tracehead = &trace;
3702 trace.file = LOCATE_compiling_global;
3703 /* Register variable[0]: Local variable */
3704 variable[0] = self;
3705 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassSorter].i]) return;
3706 /* Register variable[1]: Method return value and escape marker */
3707 return_label177: while(false);
3708 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassSorter].i] = 1;
3709 tracehead = trace.prev;
3710 return;
3711 }
3712 val_t compiling_global___MMLocalClass___compare(val_t self, val_t param0) {
3713 struct trace_t trace = {NULL, NULL, 795, LOCATE_compiling_global___MMLocalClass___compare};
3714 val_t variable[8];
3715 struct WBT_ **closurevariable = NULL;
3716 trace.prev = tracehead; tracehead = &trace;
3717 trace.file = LOCATE_compiling_global;
3718 /* Register variable[0]: Local variable */
3719 variable[0] = self;
3720 /* Register variable[1]: Local variable */
3721 variable[1] = param0;
3722 /* Register variable[2]: Method return value and escape marker */
3723 /* Register variable[3]: Local variable */
3724 variable[3] = variable[0];
3725 /* Register variable[4]: Result */
3726 variable[4] = TAG_Bool(( variable[3] /*a*/ == variable[1] /*b*/) || (( variable[3] /*a*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*a*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*a*/, variable[1] /*b*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*a*/)( variable[3] /*a*/, variable[1] /*b*/) /*Object::==*/)))));
3727 if (UNTAG_Bool(variable[4])) { /*if*/
3728 variable[2] = TAG_Int(0);
3729 goto return_label178;
3730 } else { /*if*/
3731 /* Register variable[4]: Result */
3732 variable[4] = CALL_abstractmetamodel___MMLocalClass___module( variable[3] /*a*/)( variable[3] /*a*/) /*MMLocalClass::module*/;
3733 /* Register variable[4]: Result */
3734 variable[4] = CALL_abstractmetamodel___MMModule___mhe(variable[4])(variable[4]) /*MMModule::mhe*/;
3735 /* Register variable[5]: Result */
3736 variable[5] = CALL_abstractmetamodel___MMLocalClass___module( variable[1] /*b*/)( variable[1] /*b*/) /*MMLocalClass::module*/;
3737 /* Register variable[4]: Result */
3738 variable[4] = CALL_partial_order___PartialOrderElement_____l(variable[4])(variable[4], variable[5]) /*PartialOrderElement::<*/;
3739 if (UNTAG_Bool(variable[4])) { /*if*/
3740 variable[2] = TAG_Int(1);
3741 goto return_label178;
3742 } else { /*if*/
3743 /* Register variable[4]: Result */
3744 variable[4] = CALL_abstractmetamodel___MMLocalClass___module( variable[1] /*b*/)( variable[1] /*b*/) /*MMLocalClass::module*/;
3745 /* Register variable[4]: Result */
3746 variable[4] = CALL_abstractmetamodel___MMModule___mhe(variable[4])(variable[4]) /*MMModule::mhe*/;
3747 /* Register variable[5]: Result */
3748 variable[5] = CALL_abstractmetamodel___MMLocalClass___module( variable[3] /*a*/)( variable[3] /*a*/) /*MMLocalClass::module*/;
3749 /* Register variable[4]: Result */
3750 variable[4] = CALL_partial_order___PartialOrderElement_____l(variable[4])(variable[4], variable[5]) /*PartialOrderElement::<*/;
3751 if (UNTAG_Bool(variable[4])) { /*if*/
3752 /* Register variable[4]: Result */
3753 variable[4] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
3754 variable[2] = variable[4];
3755 goto return_label178;
3756 }
3757 }
3758 }
3759 /* Register variable[4]: Local variable */
3760 /* Register variable[5]: Result */
3761 variable[5] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[3] /*a*/)( variable[3] /*a*/) /*MMLocalClass::cshe*/;
3762 /* Register variable[5]: Result */
3763 variable[5] = CALL_partial_order___PartialOrderElement___rank(variable[5])(variable[5]) /*PartialOrderElement::rank*/;
3764 variable[4] = variable[5];
3765 /* Register variable[5]: Local variable */
3766 /* Register variable[6]: Result */
3767 variable[6] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[1] /*b*/)( variable[1] /*b*/) /*MMLocalClass::cshe*/;
3768 /* Register variable[6]: Result */
3769 variable[6] = CALL_partial_order___PartialOrderElement___rank(variable[6])(variable[6]) /*PartialOrderElement::rank*/;
3770 variable[5] = variable[6];
3771 /* Register variable[6]: Result */
3772 variable[6] = TAG_Bool(UNTAG_Int( variable[4] /*ar*/)>UNTAG_Int( variable[5] /*br*/));
3773 if (UNTAG_Bool(variable[6])) { /*if*/
3774 variable[2] = TAG_Int(1);
3775 goto return_label178;
3776 } else { /*if*/
3777 /* Register variable[6]: Result */
3778 variable[6] = TAG_Bool(UNTAG_Int( variable[5] /*br*/)>UNTAG_Int( variable[4] /*ar*/));
3779 if (UNTAG_Bool(variable[6])) { /*if*/
3780 /* Register variable[6]: Result */
3781 variable[6] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
3782 variable[2] = variable[6];
3783 goto return_label178;
3784 } else { /*if*/
3785 /* Register variable[6]: Result */
3786 variable[6] = CALL_abstractmetamodel___MMLocalClass___name( variable[1] /*b*/)( variable[1] /*b*/) /*MMLocalClass::name*/;
3787 /* Register variable[6]: Result */
3788 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Symbol::to_s*/;
3789 /* Register variable[7]: Result */
3790 variable[7] = CALL_abstractmetamodel___MMLocalClass___name( variable[3] /*a*/)( variable[3] /*a*/) /*MMLocalClass::name*/;
3791 /* Register variable[7]: Result */
3792 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Symbol::to_s*/;
3793 /* Register variable[6]: Result */
3794 variable[6] = CALL_kernel___Comparable_____leqg(variable[6])(variable[6], variable[7]) /*Comparable::<=>*/;
3795 variable[2] = variable[6];
3796 goto return_label178;
3797 }
3798 }
3799 return_label178: while(false);
3800 tracehead = trace.prev;
3801 return variable[2];
3802 }
3803 void compiling_global___MMLocalClass___declare_tables_to_c(val_t self, val_t param0) {
3804 struct trace_t trace = {NULL, NULL, 817, LOCATE_compiling_global___MMLocalClass___declare_tables_to_c};
3805 static val_t once_value_180 = NIT_NULL; /* Once value for string variable[3]*/
3806 static val_t once_value_181 = NIT_NULL; /* Once value for string variable[5]*/
3807 static val_t once_value_182 = NIT_NULL; /* Once value for string variable[5]*/
3808 static val_t once_value_183 = NIT_NULL; /* Once value for string variable[7]*/
3809 static val_t once_value_184 = NIT_NULL; /* Once value for string variable[7]*/
3810 static val_t once_value_185 = NIT_NULL; /* Once value for string variable[7]*/
3811 static val_t once_value_186 = NIT_NULL; /* Once value for string variable[7]*/
3812 static val_t once_value_187 = NIT_NULL; /* Once value for string variable[7]*/
3813 static val_t once_value_188 = NIT_NULL; /* Once value for string variable[7]*/
3814 static val_t once_value_189 = NIT_NULL; /* Once value for string variable[7]*/
3815 static val_t once_value_190 = NIT_NULL; /* Once value for string variable[7]*/
3816 static val_t once_value_191 = NIT_NULL; /* Once value for string variable[7]*/
3817 static val_t once_value_192 = NIT_NULL; /* Once value for string variable[7]*/
3818 static val_t once_value_193 = NIT_NULL; /* Once value for string variable[7]*/
3819 val_t variable[8];
3820 struct WBT_ **closurevariable = NULL;
3821 trace.prev = tracehead; tracehead = &trace;
3822 trace.file = LOCATE_compiling_global;
3823 /* Register variable[0]: Local variable */
3824 variable[0] = self;
3825 /* Register variable[1]: Local variable */
3826 variable[1] = param0;
3827 /* Register variable[2]: Method return value and escape marker */
3828 /* Register variable[3]: Once String constant */
3829 if (once_value_180 != NIT_NULL) variable[3] = once_value_180;
3830 else {
3831 variable[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
3832 once_value_180 = variable[3];
3833 }
3834 /* Register variable[3]: Result */
3835 CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_decl*/;
3836 /* Register variable[3]: Local variable */
3837 /* Register variable[4]: Result */
3838 variable[4] = CALL_compiling_base___MMLocalClass___primitive_info(variable[0])(variable[0]) /*MMLocalClass::primitive_info*/;
3839 variable[3] = variable[4];
3840 variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
3841 /* Register variable[5]: Once String constant */
3842 if (once_value_181 != NIT_NULL) variable[5] = once_value_181;
3843 else {
3844 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("extern const classtable_elt_t VFT_"), TAG_Int(34)) /*new String*/;
3845 once_value_181 = variable[5];
3846 }
3847 /* Register variable[5]: Result */
3848 /* Ensure var variable[5]: super-string element*/
3849 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
3850 /* Register variable[5]: Result */
3851 variable[5] = CALL_abstractmetamodel___MMLocalClass___name(variable[0])(variable[0]) /*MMLocalClass::name*/;
3852 /* Ensure var variable[5]: super-string element*/
3853 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/) /*AbstractArray::add*/;
3854 /* Register variable[5]: Once String constant */
3855 if (once_value_182 != NIT_NULL) variable[5] = once_value_182;
3856 else {
3857 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("[];"), TAG_Int(3)) /*new String*/;
3858 once_value_182 = variable[5];
3859 }
3860 /* Register variable[5]: Result */
3861 /* Ensure var variable[5]: super-string element*/
3862 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
3863 /* Register variable[4]: Result */
3864 variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
3865 CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_decl*/;
3866 /* Register variable[4]: Result */
3867 variable[4] = TAG_Bool(( variable[3] /*pi*/ == NIT_NULL /*null*/) || (( variable[3] /*pi*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*pi*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*pi*/)( variable[3] /*pi*/, NIT_NULL /*null*/) /*Object::==*/)))));
3868 if (UNTAG_Bool(variable[4])) { /*if*/
3869 } else { /*if*/
3870 /* Register variable[4]: Result */
3871 variable[4] = CALL_compiling_base___PrimitiveInfo___tagged( variable[3] /*pi*/)( variable[3] /*pi*/) /*PrimitiveInfo::tagged*/;
3872 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[4])))) { /*if*/
3873 /* Register variable[4]: Local variable */
3874 /* Register variable[5]: Result */
3875 variable[5] = CALL_compiling_base___PrimitiveInfo___cname( variable[3] /*pi*/)( variable[3] /*pi*/) /*PrimitiveInfo::cname*/;
3876 variable[4] = variable[5];
3877 /* Register variable[5]: Local variable */
3878 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
3879 /* Register variable[7]: Once String constant */
3880 if (once_value_183 != NIT_NULL) variable[7] = once_value_183;
3881 else {
3882 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("struct TBOX_"), TAG_Int(12)) /*new String*/;
3883 once_value_183 = variable[7];
3884 }
3885 /* Register variable[7]: Result */
3886 /* Ensure var variable[7]: super-string element*/
3887 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
3888 /* Register variable[7]: Result */
3889 variable[7] = CALL_abstractmetamodel___MMLocalClass___name(variable[0])(variable[0]) /*MMLocalClass::name*/;
3890 /* Ensure var variable[7]: super-string element*/
3891 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
3892 /* Register variable[7]: Once String constant */
3893 if (once_value_184 != NIT_NULL) variable[7] = once_value_184;
3894 else {
3895 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
3896 once_value_184 = variable[7];
3897 }
3898 /* Register variable[7]: Result */
3899 /* Ensure var variable[7]: super-string element*/
3900 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
3901 /* Register variable[6]: Result */
3902 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
3903 variable[5] = variable[6];
3904 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
3905 /* Register variable[7]: Once String constant */
3906 if (once_value_185 != NIT_NULL) variable[7] = once_value_185;
3907 else {
3908 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
3909 once_value_185 = variable[7];
3910 }
3911 /* Register variable[7]: Result */
3912 /* Ensure var variable[7]: super-string element*/
3913 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
3914 variable[7] = variable[5] /*tbox*/ /* Ensure var: super-string element*/;
3915 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
3916 /* Register variable[7]: Once String constant */
3917 if (once_value_186 != NIT_NULL) variable[7] = once_value_186;
3918 else {
3919 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(" { const classtable_elt_t * vft; "), TAG_Int(33)) /*new String*/;
3920 once_value_186 = variable[7];
3921 }
3922 /* Register variable[7]: Result */
3923 /* Ensure var variable[7]: super-string element*/
3924 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
3925 variable[7] = variable[4] /*t*/ /* Ensure var: super-string element*/;
3926 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
3927 /* Register variable[7]: Once String constant */
3928 if (once_value_187 != NIT_NULL) variable[7] = once_value_187;
3929 else {
3930 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(" val;};"), TAG_Int(7)) /*new String*/;
3931 once_value_187 = variable[7];
3932 }
3933 /* Register variable[7]: Result */
3934 /* Ensure var variable[7]: super-string element*/
3935 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
3936 /* Register variable[6]: Result */
3937 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
3938 CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_decl*/;
3939 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
3940 /* Register variable[7]: Once String constant */
3941 if (once_value_188 != NIT_NULL) variable[7] = once_value_188;
3942 else {
3943 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("val_t BOX_"), TAG_Int(10)) /*new String*/;
3944 once_value_188 = variable[7];
3945 }
3946 /* Register variable[7]: Result */
3947 /* Ensure var variable[7]: super-string element*/
3948 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
3949 /* Register variable[7]: Result */
3950 variable[7] = CALL_abstractmetamodel___MMLocalClass___name(variable[0])(variable[0]) /*MMLocalClass::name*/;
3951 /* Ensure var variable[7]: super-string element*/
3952 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
3953 /* Register variable[7]: Once String constant */
3954 if (once_value_189 != NIT_NULL) variable[7] = once_value_189;
3955 else {
3956 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)) /*new String*/;
3957 once_value_189 = variable[7];
3958 }
3959 /* Register variable[7]: Result */
3960 /* Ensure var variable[7]: super-string element*/
3961 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
3962 variable[7] = variable[4] /*t*/ /* Ensure var: super-string element*/;
3963 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
3964 /* Register variable[7]: Once String constant */
3965 if (once_value_190 != NIT_NULL) variable[7] = once_value_190;
3966 else {
3967 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(" val);"), TAG_Int(6)) /*new String*/;
3968 once_value_190 = variable[7];
3969 }
3970 /* Register variable[7]: Result */
3971 /* Ensure var variable[7]: super-string element*/
3972 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
3973 /* Register variable[6]: Result */
3974 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
3975 CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_decl*/;
3976 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
3977 /* Register variable[7]: Once String constant */
3978 if (once_value_191 != NIT_NULL) variable[7] = once_value_191;
3979 else {
3980 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("#define UNBOX_"), TAG_Int(14)) /*new String*/;
3981 once_value_191 = variable[7];
3982 }
3983 /* Register variable[7]: Result */
3984 /* Ensure var variable[7]: super-string element*/
3985 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
3986 /* Register variable[7]: Result */
3987 variable[7] = CALL_abstractmetamodel___MMLocalClass___name(variable[0])(variable[0]) /*MMLocalClass::name*/;
3988 /* Ensure var variable[7]: super-string element*/
3989 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
3990 /* Register variable[7]: Once String constant */
3991 if (once_value_192 != NIT_NULL) variable[7] = once_value_192;
3992 else {
3993 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("(x) ((("), TAG_Int(7)) /*new String*/;
3994 once_value_192 = variable[7];
3995 }
3996 /* Register variable[7]: Result */
3997 /* Ensure var variable[7]: super-string element*/
3998 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
3999 variable[7] = variable[5] /*tbox*/ /* Ensure var: super-string element*/;
4000 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
4001 /* Register variable[7]: Once String constant */
4002 if (once_value_193 != NIT_NULL) variable[7] = once_value_193;
4003 else {
4004 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(" *)(VAL2OBJ(x)))->val)"), TAG_Int(22)) /*new String*/;
4005 once_value_193 = variable[7];
4006 }
4007 /* Register variable[7]: Result */
4008 /* Ensure var variable[7]: super-string element*/
4009 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
4010 /* Register variable[6]: Result */
4011 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
4012 CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_decl*/;
4013 }
4014 }
4015 return_label179: while(false);
4016 tracehead = trace.prev;
4017 return;
4018 }
4019 void compiling_global___MMLocalClass___compile_tables_to_c(val_t self, val_t param0) {
4020 struct trace_t trace = {NULL, NULL, 834, LOCATE_compiling_global___MMLocalClass___compile_tables_to_c};
4021 static val_t once_value_195 = NIT_NULL; /* Once value for string variable[7]*/
4022 static val_t once_value_196 = NIT_NULL; /* Once value for string variable[7]*/
4023 static val_t once_value_197 = NIT_NULL; /* Once value for string variable[7]*/
4024 static val_t once_value_199 = NIT_NULL; /* Once value for string variable[9]*/
4025 static val_t once_value_200 = NIT_NULL; /* Once value for string variable[10]*/
4026 static val_t once_value_201 = NIT_NULL; /* Once value for string variable[10]*/
4027 static val_t once_value_202 = NIT_NULL; /* Once value for string variable[6]*/
4028 static val_t once_value_203 = NIT_NULL; /* Once value for string variable[6]*/
4029 static val_t once_value_205 = NIT_NULL; /* Once value for string variable[10]*/
4030 static val_t once_value_206 = NIT_NULL; /* Once value for string variable[10]*/
4031 static val_t once_value_207 = NIT_NULL; /* Once value for string variable[10]*/
4032 static val_t once_value_208 = NIT_NULL; /* Once value for string variable[9]*/
4033 static val_t once_value_209 = NIT_NULL; /* Once value for string variable[12]*/
4034 static val_t once_value_210 = NIT_NULL; /* Once value for string variable[13]*/
4035 static val_t once_value_211 = NIT_NULL; /* Once value for string variable[13]*/
4036 static val_t once_value_212 = NIT_NULL; /* Once value for string variable[13]*/
4037 static val_t once_value_213 = NIT_NULL; /* Once value for string variable[13]*/
4038 static val_t once_value_214 = NIT_NULL; /* Once value for string variable[12]*/
4039 static val_t once_value_216 = NIT_NULL; /* Once value for string variable[21]*/
4040 static val_t once_value_217 = NIT_NULL; /* Once value for string variable[21]*/
4041 static val_t once_value_218 = NIT_NULL; /* Once value for string variable[21]*/
4042 static val_t once_value_219 = NIT_NULL; /* Once value for string variable[12]*/
4043 static val_t once_value_220 = NIT_NULL; /* Once value for string variable[12]*/
4044 static val_t once_value_221 = NIT_NULL; /* Once value for string variable[14]*/
4045 static val_t once_value_222 = NIT_NULL; /* Once value for string variable[14]*/
4046 static val_t once_value_223 = NIT_NULL; /* Once value for string variable[13]*/
4047 static val_t once_value_225 = NIT_NULL; /* Once value for string variable[20]*/
4048 static val_t once_value_226 = NIT_NULL; /* Once value for string variable[20]*/
4049 static val_t once_value_227 = NIT_NULL; /* Once value for string variable[20]*/
4050 static val_t once_value_228 = NIT_NULL; /* Once value for string variable[14]*/
4051 static val_t once_value_229 = NIT_NULL; /* Once value for string variable[17]*/
4052 static val_t once_value_230 = NIT_NULL; /* Once value for string variable[17]*/
4053 static val_t once_value_231 = NIT_NULL; /* Once value for string variable[17]*/
4054 static val_t once_value_232 = NIT_NULL; /* Once value for string variable[17]*/
4055 static val_t once_value_234 = NIT_NULL; /* Once value for string variable[23]*/
4056 static val_t once_value_236 = NIT_NULL; /* Once value for string variable[26]*/
4057 static val_t once_value_237 = NIT_NULL; /* Once value for string variable[26]*/
4058 static val_t once_value_238 = NIT_NULL; /* Once value for string variable[26]*/
4059 static val_t once_value_239 = NIT_NULL; /* Once value for string variable[26]*/
4060 static val_t once_value_240 = NIT_NULL; /* Once value for string variable[22]*/
4061 static val_t once_value_241 = NIT_NULL; /* Once value for string variable[24]*/
4062 static val_t once_value_242 = NIT_NULL; /* Once value for string variable[24]*/
4063 static val_t once_value_243 = NIT_NULL; /* Once value for string variable[24]*/
4064 static val_t once_value_244 = NIT_NULL; /* Once value for string variable[24]*/
4065 static val_t once_value_245 = NIT_NULL; /* Once value for string variable[24]*/
4066 static val_t once_value_246 = NIT_NULL; /* Once value for string variable[24]*/
4067 static val_t once_value_247 = NIT_NULL; /* Once value for string variable[24]*/
4068 static val_t once_value_248 = NIT_NULL; /* Once value for string variable[24]*/
4069 static val_t once_value_249 = NIT_NULL; /* Once value for string variable[24]*/
4070 static val_t once_value_250 = NIT_NULL; /* Once value for string variable[24]*/
4071 static val_t once_value_251 = NIT_NULL; /* Once value for string variable[24]*/
4072 static val_t once_value_252 = NIT_NULL; /* Once value for string variable[24]*/
4073 static val_t once_value_253 = NIT_NULL; /* Once value for string variable[24]*/
4074 static val_t once_value_254 = NIT_NULL; /* Once value for string variable[24]*/
4075 static val_t once_value_255 = NIT_NULL; /* Once value for string variable[24]*/
4076 static val_t once_value_256 = NIT_NULL; /* Once value for string variable[23]*/
4077 static val_t once_value_257 = NIT_NULL; /* Once value for string variable[23]*/
4078 static val_t once_value_258 = NIT_NULL; /* Once value for string variable[11]*/
4079 static val_t once_value_259 = NIT_NULL; /* Once value for string variable[11]*/
4080 static val_t once_value_260 = NIT_NULL; /* Once value for string variable[11]*/
4081 static val_t once_value_261 = NIT_NULL; /* Once value for string variable[11]*/
4082 static val_t once_value_262 = NIT_NULL; /* Once value for string variable[11]*/
4083 static val_t once_value_263 = NIT_NULL; /* Once value for string variable[11]*/
4084 static val_t once_value_264 = NIT_NULL; /* Once value for string variable[11]*/
4085 static val_t once_value_265 = NIT_NULL; /* Once value for string variable[11]*/
4086 static val_t once_value_266 = NIT_NULL; /* Once value for string variable[11]*/
4087 static val_t once_value_267 = NIT_NULL; /* Once value for string variable[11]*/
4088 static val_t once_value_268 = NIT_NULL; /* Once value for string variable[11]*/
4089 static val_t once_value_269 = NIT_NULL; /* Once value for string variable[10]*/
4090 static val_t once_value_270 = NIT_NULL; /* Once value for string variable[10]*/
4091 static val_t once_value_271 = NIT_NULL; /* Once value for string variable[10]*/
4092 val_t variable[27];
4093 struct WBT_ **closurevariable = NULL;
4094 trace.prev = tracehead; tracehead = &trace;
4095 trace.file = LOCATE_compiling_global;
4096 /* Register variable[0]: Local variable */
4097 variable[0] = self;
4098 /* Register variable[1]: Local variable */
4099 variable[1] = param0;
4100 /* Register variable[2]: Method return value and escape marker */
4101 /* Register variable[3]: Local variable */
4102 /* Register variable[4]: Result */
4103 variable[4] = CALL_compiling_global___GlobalCompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*GlobalCompilerVisitor::global_analysis*/;
4104 /* Register variable[4]: Result */
4105 variable[4] = CALL_compiling_global___GlobalAnalysis___compiled_classes(variable[4])(variable[4]) /*GlobalAnalysis::compiled_classes*/;
4106 /* Register variable[5]: Result */
4107 variable[5] = CALL_abstractmetamodel___MMLocalClass___global(variable[0])(variable[0]) /*MMLocalClass::global*/;
4108 /* Register variable[4]: Result */
4109 variable[4] = CALL_abstract_collection___MapRead_____bra(variable[4])(variable[4], variable[5]) /*CoupleMap::[]*/;
4110 variable[3] = variable[4];
4111 /* Register variable[4]: Local variable */
4112 /* Register variable[5]: Result */
4113 variable[5] = CALL_compiling_global___CompiledClass___class_table( variable[3] /*cc*/)( variable[3] /*cc*/) /*CompiledClass::class_table*/;
4114 variable[4] = variable[5];
4115 /* Register variable[5]: Local variable */
4116 /* Register variable[6]: Result */
4117 variable[6] = CALL_abstract_collection___Collection___length( variable[4] /*ctab*/)( variable[4] /*ctab*/) /*AbstractArrayRead::length*/;
4118 variable[5] = variable[6];
4119 /* Register variable[6]: Result */
4120 variable[6] = CALL_compiling_global___GlobalCompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*GlobalCompilerVisitor::global_analysis*/;
4121 /* Register variable[6]: Result */
4122 variable[6] = CALL_compiling_global___GlobalAnalysis___max_class_table_length(variable[6])(variable[6]) /*GlobalAnalysis::max_class_table_length*/;
4123 /* Register variable[7]: Result */
4124 variable[7] = CALL_abstract_collection___Collection___length( variable[4] /*ctab*/)( variable[4] /*ctab*/) /*AbstractArrayRead::length*/;
4125 /* Register variable[6]: Result */
4126 variable[6] = TAG_Bool(UNTAG_Int(variable[6])>UNTAG_Int(variable[7]));
4127 if (UNTAG_Bool(variable[6])) { /*if*/
4128 /* Register variable[6]: Result */
4129 variable[6] = CALL_compiling_global___GlobalCompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*GlobalCompilerVisitor::global_analysis*/;
4130 /* Register variable[6]: Result */
4131 variable[6] = CALL_compiling_global___GlobalAnalysis___max_class_table_length(variable[6])(variable[6]) /*GlobalAnalysis::max_class_table_length*/;
4132 variable[5] = variable[6] /*clen=*/;
4133 }
4134 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
4135 /* Register variable[7]: Once String constant */
4136 if (once_value_195 != NIT_NULL) variable[7] = once_value_195;
4137 else {
4138 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("const classtable_elt_t VFT_"), TAG_Int(27)) /*new String*/;
4139 once_value_195 = variable[7];
4140 }
4141 /* Register variable[7]: Result */
4142 /* Ensure var variable[7]: super-string element*/
4143 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
4144 /* Register variable[7]: Result */
4145 variable[7] = CALL_abstractmetamodel___MMLocalClass___name(variable[0])(variable[0]) /*MMLocalClass::name*/;
4146 /* Ensure var variable[7]: super-string element*/
4147 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
4148 /* Register variable[7]: Once String constant */
4149 if (once_value_196 != NIT_NULL) variable[7] = once_value_196;
4150 else {
4151 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("["), TAG_Int(1)) /*new String*/;
4152 once_value_196 = variable[7];
4153 }
4154 /* Register variable[7]: Result */
4155 /* Ensure var variable[7]: super-string element*/
4156 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
4157 variable[7] = variable[5] /*clen*/ /* Ensure var: super-string element*/;
4158 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/) /*AbstractArray::add*/;
4159 /* Register variable[7]: Once String constant */
4160 if (once_value_197 != NIT_NULL) variable[7] = once_value_197;
4161 else {
4162 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("] = {"), TAG_Int(5)) /*new String*/;
4163 once_value_197 = variable[7];
4164 }
4165 /* Register variable[7]: Result */
4166 /* Ensure var variable[7]: super-string element*/
4167 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
4168 /* Register variable[6]: Result */
4169 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
4170 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
4171 CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
4172 /* Register variable[6]: For iterator */
4173 variable[6] = CALL_abstract_collection___Collection___iterator( variable[4] /*ctab*/)( variable[4] /*ctab*/) /*AbstractArrayRead::iterator*/;
4174 while (true) { /*for*/
4175 /* Register variable[7]: For 'is_ok' result */
4176 variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
4177 if (!UNTAG_Bool(variable[7])) break; /*for*/
4178 variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
4179 /* Register variable[8]: Local variable */
4180 variable[8] = variable[7];
4181 /* Register variable[9]: Result */
4182 variable[9] = TAG_Bool(( variable[8] /*e*/ == NIT_NULL /*null*/) || (( variable[8] /*e*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*e*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*e*/)( variable[8] /*e*/, NIT_NULL /*null*/) /*Object::==*/)))));
4183 if (UNTAG_Bool(variable[9])) { /*if*/
4184 /* Register variable[9]: Once String constant */
4185 if (once_value_199 != NIT_NULL) variable[9] = once_value_199;
4186 else {
4187 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("{0} /* Class Hole :( */,"), TAG_Int(24)) /*new String*/;
4188 once_value_199 = variable[9];
4189 }
4190 /* Register variable[9]: Result */
4191 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
4192 } else { /*if*/
4193 variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
4194 /* Register variable[10]: Once String constant */
4195 if (once_value_200 != NIT_NULL) variable[10] = once_value_200;
4196 else {
4197 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("{(bigint) "), TAG_Int(10)) /*new String*/;
4198 once_value_200 = variable[10];
4199 }
4200 /* Register variable[10]: Result */
4201 /* Ensure var variable[10]: super-string element*/
4202 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
4203 /* Register variable[10]: Result */
4204 variable[10] = CALL_compiling_global___TableElt___compile_to_c( variable[8] /*e*/)( variable[8] /*e*/, variable[1] /*v*/, variable[0]) /*TableElt::compile_to_c*/;
4205 /* Ensure var variable[10]: super-string element*/
4206 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
4207 /* Register variable[10]: Once String constant */
4208 if (once_value_201 != NIT_NULL) variable[10] = once_value_201;
4209 else {
4210 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("},"), TAG_Int(2)) /*new String*/;
4211 once_value_201 = variable[10];
4212 }
4213 /* Register variable[10]: Result */
4214 /* Ensure var variable[10]: super-string element*/
4215 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
4216 /* Register variable[9]: Result */
4217 variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
4218 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
4219 }
4220 continue_198: while(0);
4221 CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
4222 }
4223 break_198: while(0);
4224 /* Register variable[6]: Result */
4225 variable[6] = CALL_abstract_collection___Collection___length( variable[4] /*ctab*/)( variable[4] /*ctab*/) /*AbstractArrayRead::length*/;
4226 /* Register variable[6]: Result */
4227 variable[6] = TAG_Bool(UNTAG_Int( variable[5] /*clen*/)>UNTAG_Int(variable[6]));
4228 if (UNTAG_Bool(variable[6])) { /*if*/
4229 /* Register variable[6]: Once String constant */
4230 if (once_value_202 != NIT_NULL) variable[6] = once_value_202;
4231 else {
4232 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("{0},"), TAG_Int(4)) /*new String*/;
4233 once_value_202 = variable[6];
4234 }
4235 /* Register variable[6]: Result */
4236 /* Register variable[7]: Result */
4237 variable[7] = CALL_abstract_collection___Collection___length( variable[4] /*ctab*/)( variable[4] /*ctab*/) /*AbstractArrayRead::length*/;
4238 /* Register variable[7]: Result */
4239 variable[7] = TAG_Int(UNTAG_Int( variable[5] /*clen*/)-UNTAG_Int(variable[7]));
4240 /* Register variable[6]: Result */
4241 variable[6] = CALL_string___String_____star(variable[6])(variable[6], variable[7]) /*String::**/;
4242 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
4243 }
4244 CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
4245 /* Register variable[6]: Once String constant */
4246 if (once_value_203 != NIT_NULL) variable[6] = once_value_203;
4247 else {
4248 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("};"), TAG_Int(2)) /*new String*/;
4249 once_value_203 = variable[6];
4250 }
4251 /* Register variable[6]: Result */
4252 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
4253 /* Register variable[6]: Local variable */
4254 /* Register variable[7]: Result */
4255 variable[7] = CALL_compiling_global___CompiledClass___instance_table( variable[3] /*cc*/)( variable[3] /*cc*/) /*CompiledClass::instance_table*/;
4256 variable[6] = variable[7];
4257 /* Register variable[7]: For iterator */
4258 variable[7] = CALL_abstract_collection___Collection___iterator( variable[6] /*itab*/)( variable[6] /*itab*/) /*AbstractArrayRead::iterator*/;
4259 while (true) { /*for*/
4260 /* Register variable[8]: For 'is_ok' result */
4261 variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*ArrayIterator::is_ok*/;
4262 if (!UNTAG_Bool(variable[8])) break; /*for*/
4263 variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
4264 /* Register variable[9]: Local variable */
4265 variable[9] = variable[8];
4266 /* Register variable[10]: Result */
4267 variable[10] = TAG_Bool(( variable[9] /*e*/ == NIT_NULL /*null*/) || (( variable[9] /*e*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*e*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*e*/)( variable[9] /*e*/, NIT_NULL /*null*/) /*Object::==*/)))));
4268 if (UNTAG_Bool(variable[10])) { /*if*/
4269 /* Register variable[10]: Once String constant */
4270 if (once_value_205 != NIT_NULL) variable[10] = once_value_205;
4271 else {
4272 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("/* Instance Hole :( */"), TAG_Int(22)) /*new String*/;
4273 once_value_205 = variable[10];
4274 }
4275 /* Register variable[10]: Result */
4276 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
4277 } else { /*if*/
4278 /* Register variable[10]: Result */
4279 variable[10] = CALL_compiling_global___TableElt___compile_to_c( variable[9] /*e*/)( variable[9] /*e*/, variable[1] /*v*/, variable[0]) /*TableElt::compile_to_c*/;
4280 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
4281 }
4282 continue_204: while(0);
4283 CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*ArrayIterator::next*/;
4284 }
4285 break_204: while(0);
4286 /* Register variable[7]: Local variable */
4287 /* Register variable[8]: Result */
4288 variable[8] = CALL_compiling_base___MMLocalClass___primitive_info(variable[0])(variable[0]) /*MMLocalClass::primitive_info*/;
4289 variable[7] = variable[8];
4290 /* Register variable[8]: Result */
4291 variable[8] = TAG_Bool(( variable[7] /*pi*/ == NIT_NULL /*null*/) || (( variable[7] /*pi*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*pi*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*pi*/)( variable[7] /*pi*/, NIT_NULL /*null*/) /*Object::==*/)))));
4292 if (UNTAG_Bool(variable[8])) { /*if*/
4293 /* Register variable[8]: Result */
4294 variable[8] = NEW_CFunctionContext_compiling_methods___CFunctionContext___init( variable[1] /*v*/) /*new CFunctionContext*/;
4295 CALL_compiling_methods___CompilerVisitor___cfc__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::cfc=*/;
4296 /* Register variable[8]: Result */
4297 variable[8] = NEW_NitMethodContext_compiling_methods___NitMethodContext___init( NIT_NULL /*null*/) /*new NitMethodContext*/;
4298 CALL_compiling_methods___CompilerVisitor___nmc__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::nmc=*/;
4299 /* Register variable[8]: Local variable */
4300 variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
4301 /* Register variable[10]: Once String constant */
4302 if (once_value_206 != NIT_NULL) variable[10] = once_value_206;
4303 else {
4304 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("val_t NEW_"), TAG_Int(10)) /*new String*/;
4305 once_value_206 = variable[10];
4306 }
4307 /* Register variable[10]: Result */
4308 /* Ensure var variable[10]: super-string element*/
4309 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
4310 /* Register variable[10]: Result */
4311 variable[10] = CALL_abstractmetamodel___MMLocalClass___name(variable[0])(variable[0]) /*MMLocalClass::name*/;
4312 /* Ensure var variable[10]: super-string element*/
4313 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/) /*AbstractArray::add*/;
4314 /* Register variable[10]: Once String constant */
4315 if (once_value_207 != NIT_NULL) variable[10] = once_value_207;
4316 else {
4317 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("(void)"), TAG_Int(6)) /*new String*/;
4318 once_value_207 = variable[10];
4319 }
4320 /* Register variable[10]: Result */
4321 /* Ensure var variable[10]: super-string element*/
4322 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
4323 /* Register variable[9]: Result */
4324 variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
4325 variable[8] = variable[9];
4326 /* Register variable[9]: Once String constant */
4327 if (once_value_208 != NIT_NULL) variable[9] = once_value_208;
4328 else {
4329 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" {"), TAG_Int(2)) /*new String*/;
4330 once_value_208 = variable[9];
4331 }
4332 /* Register variable[9]: Result */
4333 /* Register variable[9]: Result */
4334 variable[9] = CALL_string___String_____plus( variable[8] /*s*/)( variable[8] /*s*/, variable[9]) /*String::+*/;
4335 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
4336 CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
4337 /* Register variable[9]: Local variable */
4338 /* Register variable[10]: Result */
4339 variable[10] = CALL_compiling_base___CompilerVisitor___ctx( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::ctx*/;
4340 variable[9] = variable[10];
4341 /* Register variable[10]: Result */
4342 variable[10] = NEW_CContext_compiling_base___CContext___init() /*new CContext*/;
4343 CALL_compiling_base___CompilerVisitor___ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::ctx=*/;
4344 /* Register variable[10]: Local variable */
4345 /* Register variable[11]: Result */
4346 variable[11] = NEW_ParamVariable_syntax_base___ParamVariable___init( NIT_NULL /*null*/, NIT_NULL /*null*/) /*new ParamVariable*/;
4347 variable[10] = variable[11];
4348 /* Register variable[11]: Local variable */
4349 /* Register variable[12]: Result */
4350 variable[12] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
4351 /* Register variable[12]: Result */
4352 variable[12] = CALL_compiling_methods___CFunctionContext___register_variable(variable[12])(variable[12], variable[10] /*self_var*/) /*CFunctionContext::register_variable*/;
4353 variable[11] = variable[12];
4354 /* Register variable[12]: Result */
4355 variable[12] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
4356 variable[13] = NEW_Array_array___Array___with_capacity(TAG_Int(1)) /*new Array[ParamVariable]*/ /* Ensure var: Literal array*/;
4357 CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[10] /*self_var*/) /*AbstractArray::add*/;
4358 /* Register variable[13]: Result */
4359 CALL_compiling_methods___NitMethodContext___method_params__eq(variable[12])(variable[12], variable[13]) /*NitMethodContext::method_params=*/;
4360 /* Register variable[12]: Once String constant */
4361 if (once_value_209 != NIT_NULL) variable[12] = once_value_209;
4362 else {
4363 variable[12] = NEW_String_string___String___with_native(BOX_NativeString("obj_t obj;"), TAG_Int(10)) /*new String*/;
4364 once_value_209 = variable[12];
4365 }
4366 /* Register variable[12]: Result */
4367 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/;
4368 variable[12] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
4369 /* Register variable[13]: Once String constant */
4370 if (once_value_210 != NIT_NULL) variable[13] = once_value_210;
4371 else {
4372 variable[13] = NEW_String_string___String___with_native(BOX_NativeString("obj = alloc(sizeof(val_t) * "), TAG_Int(28)) /*new String*/;
4373 once_value_210 = variable[13];
4374 }
4375 /* Register variable[13]: Result */
4376 /* Ensure var variable[13]: super-string element*/
4377 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[13]) /*AbstractArray::add*/;
4378 /* Register variable[13]: Result */
4379 variable[13] = CALL_abstract_collection___Collection___length( variable[6] /*itab*/)( variable[6] /*itab*/) /*AbstractArrayRead::length*/;
4380 /* Ensure var variable[13]: super-string element*/
4381 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/) /*AbstractArray::add*/;
4382 /* Register variable[13]: Once String constant */
4383 if (once_value_211 != NIT_NULL) variable[13] = once_value_211;
4384 else {
4385 variable[13] = NEW_String_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)) /*new String*/;
4386 once_value_211 = variable[13];
4387 }
4388 /* Register variable[13]: Result */
4389 /* Ensure var variable[13]: super-string element*/
4390 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[13]) /*AbstractArray::add*/;
4391 /* Register variable[12]: Result */
4392 variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
4393 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/;
4394 variable[12] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
4395 /* Register variable[13]: Once String constant */
4396 if (once_value_212 != NIT_NULL) variable[13] = once_value_212;
4397 else {
4398 variable[13] = NEW_String_string___String___with_native(BOX_NativeString("obj->vft = (classtable_elt_t*)VFT_"), TAG_Int(34)) /*new String*/;
4399 once_value_212 = variable[13];
4400 }
4401 /* Register variable[13]: Result */
4402 /* Ensure var variable[13]: super-string element*/
4403 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[13]) /*AbstractArray::add*/;
4404 /* Register variable[13]: Result */
4405 variable[13] = CALL_abstractmetamodel___MMLocalClass___name(variable[0])(variable[0]) /*MMLocalClass::name*/;
4406 /* Ensure var variable[13]: super-string element*/
4407 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/) /*AbstractArray::add*/;
4408 /* Register variable[13]: Once String constant */
4409 if (once_value_213 != NIT_NULL) variable[13] = once_value_213;
4410 else {
4411 variable[13] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
4412 once_value_213 = variable[13];
4413 }
4414 /* Register variable[13]: Result */
4415 /* Ensure var variable[13]: super-string element*/
4416 CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[13]) /*AbstractArray::add*/;
4417 /* Register variable[12]: Result */
4418 variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
4419 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/;
4420 /* Register variable[12]: Once String constant */
4421 if (once_value_214 != NIT_NULL) variable[12] = once_value_214;
4422 else {
4423 variable[12] = NEW_String_string___String___with_native(BOX_NativeString("OBJ2VAL(obj)"), TAG_Int(12)) /*new String*/;
4424 once_value_214 = variable[12];
4425 }
4426 /* Register variable[12]: Result */
4427 CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/, variable[11] /*self_var_cname*/, variable[12]) /*CompilerVisitor::add_assignment*/;
4428 /* Register variable[12]: Result */
4429 variable[12] = CALL_abstractmetamodel___MMLocalClass___global_properties(variable[0])(variable[0]) /*MMLocalClass::global_properties*/;
4430 /* Register variable[12]: For iterator */
4431 variable[12] = CALL_abstract_collection___Collection___iterator(variable[12])(variable[12]) /*Collection::iterator*/;
4432 while (true) { /*for*/
4433 /* Register variable[13]: For 'is_ok' result */
4434 variable[13] = CALL_abstract_collection___Iterator___is_ok(variable[12])(variable[12]) /*Iterator::is_ok*/;
4435 if (!UNTAG_Bool(variable[13])) break; /*for*/
4436 variable[13] = CALL_abstract_collection___Iterator___item(variable[12])(variable[12]) /*Iterator::item*/ /* Ensure var: For item*/;
4437 /* Register variable[14]: Local variable */
4438 variable[14] = variable[13];
4439 /* Register variable[15]: Local variable */
4440 /* Register variable[16]: Result */
4441 variable[16] = CALL_abstractmetamodel___MMLocalClass_____bra(variable[0])(variable[0], variable[14] /*g*/) /*MMLocalClass::[]*/;
4442 variable[15] = variable[16];
4443 /* Register variable[16]: Local variable */
4444 /* Register variable[17]: Result */
4445 variable[17] = CALL_static_type___MMLocalProperty___signature( variable[15] /*p*/)( variable[15] /*p*/) /*MMLocalProperty::signature*/;
4446 /* Register variable[17]: Result */
4447 variable[17] = CALL_static_type___MMSignature___return_type(variable[17])(variable[17]) /*MMSignature::return_type*/;
4448 variable[16] = variable[17];
4449 /* Register variable[17]: Result */
4450 variable[17] = TAG_Bool(( variable[15] /*p*/==NIT_NULL) || VAL_ISA( variable[15] /*p*/, COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
4451 /* Ensure var variable[17]: Left 'and' operand*/
4452 if (UNTAG_Bool(variable[17])) { /* and */
4453 /* Register variable[17]: Result */
4454 variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*t*/ == NIT_NULL /*null*/) || (( variable[16] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[16] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[16] /*t*/)( variable[16] /*t*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4455 }
4456 /* Register variable[17]: Result */
4457 if (UNTAG_Bool(variable[17])) { /*if*/
4458 /* Register variable[17]: Result */
4459 variable[17] = TAG_Bool(( variable[15] /*p*/==NIT_NULL) || VAL_ISA( variable[15] /*p*/, COLOR_MMSrcAttribute, ID_MMSrcAttribute)) /*cast MMSrcAttribute*/;
4460 if (!UNTAG_Bool(variable[17])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMLocalClass___compile_tables_to_c, LOCATE_compiling_global, 891); nit_exit(1);}
4461 /* Register variable[17]: Local variable */
4462 /* Register variable[18]: Result */
4463 variable[18] = CALL_syntax_base___MMLocalProperty___node( variable[15] /*p*/)( variable[15] /*p*/) /*MMSrcAttribute::node*/;
4464 variable[17] = variable[18];
4465 /* Register variable[18]: Result */
4466 variable[18] = TAG_Bool(( variable[17] /*np*/==NIT_NULL) || VAL_ISA( variable[17] /*np*/, COLOR_AAttrPropdef, ID_AAttrPropdef)) /*cast AAttrPropdef*/;
4467 if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMLocalClass___compile_tables_to_c, LOCATE_compiling_global, 893); nit_exit(1);}
4468 /* Register variable[18]: Local variable */
4469 /* Register variable[19]: Result */
4470 variable[19] = CALL_parser_nodes___AAttrPropdef___n_expr( variable[17] /*np*/)( variable[17] /*np*/) /*AAttrPropdef::n_expr*/;
4471 variable[18] = variable[19];
4472 /* Register variable[19]: Result */
4473 variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[18] /*ne*/ == NIT_NULL /*null*/) || (( variable[18] /*ne*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[18] /*ne*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[18] /*ne*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[18] /*ne*/)( variable[18] /*ne*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4474 if (UNTAG_Bool(variable[19])) { /*if*/
4475 /* Register variable[19]: Local variable */
4476 /* Register variable[20]: Result */
4477 variable[20] = CALL_compiling_methods___PExpr___compile_expr( variable[18] /*ne*/)( variable[18] /*ne*/, variable[1] /*v*/) /*PExpr::compile_expr*/;
4478 variable[19] = variable[20];
4479 variable[20] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
4480 /* Register variable[21]: Once String constant */
4481 if (once_value_216 != NIT_NULL) variable[21] = once_value_216;
4482 else {
4483 variable[21] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
4484 once_value_216 = variable[21];
4485 }
4486 /* Register variable[21]: Result */
4487 /* Ensure var variable[21]: super-string element*/
4488 CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20], variable[21]) /*AbstractArray::add*/;
4489 /* Register variable[21]: Result */
4490 variable[21] = CALL_abstractmetamodel___MMLocalProperty___global( variable[15] /*p*/)( variable[15] /*p*/) /*MMLocalProperty::global*/;
4491 /* Register variable[21]: Result */
4492 variable[21] = CALL_compiling_base___MMGlobalProperty___attr_access(variable[21])(variable[21]) /*MMGlobalProperty::attr_access*/;
4493 /* Ensure var variable[21]: super-string element*/
4494 CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20], variable[21]) /*AbstractArray::add*/;
4495 /* Register variable[21]: Once String constant */
4496 if (once_value_217 != NIT_NULL) variable[21] = once_value_217;
4497 else {
4498 variable[21] = NEW_String_string___String___with_native(BOX_NativeString("(obj) = "), TAG_Int(8)) /*new String*/;
4499 once_value_217 = variable[21];
4500 }
4501 /* Register variable[21]: Result */
4502 /* Ensure var variable[21]: super-string element*/
4503 CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20], variable[21]) /*AbstractArray::add*/;
4504 variable[21] = variable[19] /*e*/ /* Ensure var: super-string element*/;
4505 CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20], variable[21]) /*AbstractArray::add*/;
4506 /* Register variable[21]: Once String constant */
4507 if (once_value_218 != NIT_NULL) variable[21] = once_value_218;
4508 else {
4509 variable[21] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
4510 once_value_218 = variable[21];
4511 }
4512 /* Register variable[21]: Result */
4513 /* Ensure var variable[21]: super-string element*/
4514 CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20], variable[21]) /*AbstractArray::add*/;
4515 /* Register variable[20]: Result */
4516 variable[20] = CALL_string___Object___to_s(variable[20])(variable[20]) /*Object::to_s*/;
4517 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[20]) /*CompilerVisitor::add_instr*/;
4518 }
4519 }
4520 continue_215: while(0);
4521 CALL_abstract_collection___Iterator___next(variable[12])(variable[12]) /*Iterator::next*/;
4522 }
4523 break_215: while(0);
4524 /* Register variable[12]: Once String constant */
4525 if (once_value_219 != NIT_NULL) variable[12] = once_value_219;
4526 else {
4527 variable[12] = NEW_String_string___String___with_native(BOX_NativeString("return OBJ2VAL(obj);"), TAG_Int(20)) /*new String*/;
4528 once_value_219 = variable[12];
4529 }
4530 /* Register variable[12]: Result */
4531 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/;
4532 /* Register variable[12]: Result */
4533 variable[12] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
4534 CALL_compiling_methods___CFunctionContext___generate_var_decls(variable[12])(variable[12]) /*CFunctionContext::generate_var_decls*/;
4535 /* Register variable[12]: Result */
4536 variable[12] = CALL_compiling_base___CompilerVisitor___ctx( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::ctx*/;
4537 CALL_compiling_base___CContext___append( variable[9] /*ctx_old*/)( variable[9] /*ctx_old*/, variable[12]) /*CContext::append*/;
4538 CALL_compiling_base___CompilerVisitor___ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[9] /*ctx_old*/) /*CompilerVisitor::ctx=*/;
4539 CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
4540 /* Register variable[12]: Once String constant */
4541 if (once_value_220 != NIT_NULL) variable[12] = once_value_220;
4542 else {
4543 variable[12] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)) /*new String*/;
4544 once_value_220 = variable[12];
4545 }
4546 /* Register variable[12]: Result */
4547 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/;
4548 /* Register variable[12]: Local variable */
4549 variable[13] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
4550 /* Register variable[14]: Once String constant */
4551 if (once_value_221 != NIT_NULL) variable[14] = once_value_221;
4552 else {
4553 variable[14] = NEW_String_string___String___with_native(BOX_NativeString("void CHECKNEW_"), TAG_Int(14)) /*new String*/;
4554 once_value_221 = variable[14];
4555 }
4556 /* Register variable[14]: Result */
4557 /* Ensure var variable[14]: super-string element*/
4558 CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[14]) /*AbstractArray::add*/;
4559 /* Register variable[14]: Result */
4560 variable[14] = CALL_abstractmetamodel___MMLocalClass___name(variable[0])(variable[0]) /*MMLocalClass::name*/;
4561 /* Ensure var variable[14]: super-string element*/
4562 CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/) /*AbstractArray::add*/;
4563 /* Register variable[14]: Once String constant */
4564 if (once_value_222 != NIT_NULL) variable[14] = once_value_222;
4565 else {
4566 variable[14] = NEW_String_string___String___with_native(BOX_NativeString("(val_t self, char *from)"), TAG_Int(24)) /*new String*/;
4567 once_value_222 = variable[14];
4568 }
4569 /* Register variable[14]: Result */
4570 /* Ensure var variable[14]: super-string element*/
4571 CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[14]) /*AbstractArray::add*/;
4572 /* Register variable[13]: Result */
4573 variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
4574 variable[12] = variable[13];
4575 /* Register variable[13]: Once String constant */
4576 if (once_value_223 != NIT_NULL) variable[13] = once_value_223;
4577 else {
4578 variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" {"), TAG_Int(2)) /*new String*/;
4579 once_value_223 = variable[13];
4580 }
4581 /* Register variable[13]: Result */
4582 /* Register variable[13]: Result */
4583 variable[13] = CALL_string___String_____plus( variable[12] /*s*/)( variable[12] /*s*/, variable[13]) /*String::+*/;
4584 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[13]) /*CompilerVisitor::add_instr*/;
4585 CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
4586 /* Register variable[13]: Local variable */
4587 /* Register variable[14]: Result */
4588 variable[14] = CALL_compiling_base___CompilerVisitor___ctx( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::ctx*/;
4589 variable[13] = variable[14];
4590 /* Register variable[14]: Result */
4591 variable[14] = NEW_CContext_compiling_base___CContext___init() /*new CContext*/;
4592 CALL_compiling_base___CompilerVisitor___ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[14]) /*CompilerVisitor::ctx=*/;
4593 /* Register variable[14]: Result */
4594 variable[14] = CALL_abstractmetamodel___MMLocalClass___global_properties(variable[0])(variable[0]) /*MMLocalClass::global_properties*/;
4595 /* Register variable[14]: For iterator */
4596 variable[14] = CALL_abstract_collection___Collection___iterator(variable[14])(variable[14]) /*Collection::iterator*/;
4597 while (true) { /*for*/
4598 /* Register variable[15]: For 'is_ok' result */
4599 variable[15] = CALL_abstract_collection___Iterator___is_ok(variable[14])(variable[14]) /*Iterator::is_ok*/;
4600 if (!UNTAG_Bool(variable[15])) break; /*for*/
4601 variable[15] = CALL_abstract_collection___Iterator___item(variable[14])(variable[14]) /*Iterator::item*/ /* Ensure var: For item*/;
4602 /* Register variable[16]: Local variable */
4603 variable[16] = variable[15];
4604 /* Register variable[17]: Local variable */
4605 /* Register variable[18]: Result */
4606 variable[18] = CALL_abstractmetamodel___MMLocalClass_____bra(variable[0])(variable[0], variable[16] /*g*/) /*MMLocalClass::[]*/;
4607 variable[17] = variable[18];
4608 /* Register variable[18]: Local variable */
4609 /* Register variable[19]: Result */
4610 variable[19] = CALL_static_type___MMLocalProperty___signature( variable[17] /*p*/)( variable[17] /*p*/) /*MMLocalProperty::signature*/;
4611 /* Register variable[19]: Result */
4612 variable[19] = CALL_static_type___MMSignature___return_type(variable[19])(variable[19]) /*MMSignature::return_type*/;
4613 variable[18] = variable[19];
4614 /* Register variable[19]: Result */
4615 variable[19] = TAG_Bool(( variable[17] /*p*/==NIT_NULL) || VAL_ISA( variable[17] /*p*/, COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
4616 /* Ensure var variable[19]: Left 'and' operand*/
4617 if (UNTAG_Bool(variable[19])) { /* and */
4618 /* Register variable[19]: Result */
4619 variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[18] /*t*/ == NIT_NULL /*null*/) || (( variable[18] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[18] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[18] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[18] /*t*/)( variable[18] /*t*/, NIT_NULL /*null*/) /*Object::==*/)))))));
4620 }
4621 /* Register variable[19]: Result */
4622 /* Ensure var variable[19]: Left 'and' operand*/
4623 if (UNTAG_Bool(variable[19])) { /* and */
4624 /* Register variable[19]: Result */
4625 variable[19] = CALL_static_type___MMType___is_nullable( variable[18] /*t*/)( variable[18] /*t*/) /*MMType::is_nullable*/;
4626 variable[19] = TAG_Bool(!UNTAG_Bool(variable[19]));
4627 }
4628 /* Register variable[19]: Result */
4629 /* Ensure var variable[19]: Left 'and' operand*/
4630 if (UNTAG_Bool(variable[19])) { /* and */
4631 /* Register variable[19]: Result */
4632 variable[19] = CALL_compiling_base___CompilerVisitor___tc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::tc*/;
4633 /* Register variable[19]: Result */
4634 variable[19] = CALL_mmloader___ToolContext___opt_warn(variable[19])(variable[19]) /*ToolContext::opt_warn*/;
4635 /* Register variable[19]: Result */
4636 variable[19] = CALL_opts___Option___value(variable[19])(variable[19]) /*Option::value*/;
4637 /* Register variable[19]: Result */
4638 variable[19] = TAG_Bool(UNTAG_Int(variable[19])>UNTAG_Int( TAG_Int(0)));
4639 }
4640 /* Register variable[19]: Result */
4641 if (UNTAG_Bool(variable[19])) { /*if*/
4642 variable[19] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
4643 /* Register variable[20]: Once String constant */
4644 if (once_value_225 != NIT_NULL) variable[20] = once_value_225;
4645 else {
4646 variable[20] = NEW_String_string___String___with_native(BOX_NativeString("if ("), TAG_Int(4)) /*new String*/;
4647 once_value_225 = variable[20];
4648 }
4649 /* Register variable[20]: Result */
4650 /* Ensure var variable[20]: super-string element*/
4651 CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19], variable[20]) /*AbstractArray::add*/;
4652 /* Register variable[20]: Result */
4653 variable[20] = CALL_abstractmetamodel___MMLocalProperty___global( variable[17] /*p*/)( variable[17] /*p*/) /*MMLocalProperty::global*/;
4654 /* Register variable[20]: Result */
4655 variable[20] = CALL_compiling_base___MMGlobalProperty___attr_access(variable[20])(variable[20]) /*MMGlobalProperty::attr_access*/;
4656 /* Ensure var variable[20]: super-string element*/
4657 CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19], variable[20]) /*AbstractArray::add*/;
4658 /* Register variable[20]: Once String constant */
4659 if (once_value_226 != NIT_NULL) variable[20] = once_value_226;
4660 else {
4661 variable[20] = NEW_String_string___String___with_native(BOX_NativeString("(self) == NIT_NULL) fprintf(stderr, \"Uninitialized attribute %s at %s.\\n\", \""), TAG_Int(76)) /*new String*/;
4662 once_value_226 = variable[20];
4663 }
4664 /* Register variable[20]: Result */
4665 /* Ensure var variable[20]: super-string element*/
4666 CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19], variable[20]) /*AbstractArray::add*/;
4667 /* Register variable[20]: Result */
4668 variable[20] = CALL_abstractmetamodel___MMLocalProperty___full_name( variable[17] /*p*/)( variable[17] /*p*/) /*MMLocalProperty::full_name*/;
4669 /* Ensure var variable[20]: super-string element*/
4670 CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19], variable[20]) /*AbstractArray::add*/;
4671 /* Register variable[20]: Once String constant */
4672 if (once_value_227 != NIT_NULL) variable[20] = once_value_227;
4673 else {
4674 variable[20] = NEW_String_string___String___with_native(BOX_NativeString("\", from);"), TAG_Int(9)) /*new String*/;
4675 once_value_227 = variable[20];
4676 }
4677 /* Register variable[20]: Result */
4678 /* Ensure var variable[20]: super-string element*/
4679 CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19], variable[20]) /*AbstractArray::add*/;
4680 /* Register variable[19]: Result */
4681 variable[19] = CALL_string___Object___to_s(variable[19])(variable[19]) /*Object::to_s*/;
4682 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[19]) /*CompilerVisitor::add_instr*/;
4683 }
4684 continue_224: while(0);
4685 CALL_abstract_collection___Iterator___next(variable[14])(variable[14]) /*Iterator::next*/;
4686 }
4687 break_224: while(0);
4688 /* Register variable[14]: Result */
4689 variable[14] = CALL_compiling_base___CompilerVisitor___ctx( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::ctx*/;
4690 CALL_compiling_base___CContext___append( variable[13] /*ctx_old*/)( variable[13] /*ctx_old*/, variable[14]) /*CContext::append*/;
4691 CALL_compiling_base___CompilerVisitor___ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[13] /*ctx_old*/) /*CompilerVisitor::ctx=*/;
4692 CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
4693 /* Register variable[14]: Once String constant */
4694 if (once_value_228 != NIT_NULL) variable[14] = once_value_228;
4695 else {
4696 variable[14] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)) /*new String*/;
4697 once_value_228 = variable[14];
4698 }
4699 /* Register variable[14]: Result */
4700 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_instr*/;
4701 /* Register variable[14]: Local variable */
4702 /* Register variable[15]: Result */
4703 variable[15] = CALL_abstractmetamodel___MMLocalClass___cshe(variable[0])(variable[0]) /*MMLocalClass::cshe*/;
4704 /* Register variable[15]: Result */
4705 variable[15] = CALL_partial_order___PartialOrderElement___greaters(variable[15])(variable[15]) /*PartialOrderElement::greaters*/;
4706 /* Register variable[15]: Result */
4707 variable[15] = CALL_abstract_collection___Collection___length(variable[15])(variable[15]) /*Collection::length*/;
4708 /* Register variable[15]: Result */
4709 variable[15] = TAG_Int(UNTAG_Int(variable[15])+UNTAG_Int( TAG_Int(1)));
4710 variable[14] = variable[15];
4711 /* Register variable[15]: Local variable */
4712 variable[16] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
4713 /* Register variable[17]: Once String constant */
4714 if (once_value_229 != NIT_NULL) variable[17] = once_value_229;
4715 else {
4716 variable[17] = NEW_String_string___String___with_native(BOX_NativeString("int init_table["), TAG_Int(15)) /*new String*/;
4717 once_value_229 = variable[17];
4718 }
4719 /* Register variable[17]: Result */
4720 /* Ensure var variable[17]: super-string element*/
4721 CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16], variable[17]) /*AbstractArray::add*/;
4722 variable[17] = variable[14] /*init_table_size*/ /* Ensure var: super-string element*/;
4723 CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16], CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/) /*AbstractArray::add*/;
4724 /* Register variable[17]: Once String constant */
4725 if (once_value_230 != NIT_NULL) variable[17] = once_value_230;
4726 else {
4727 variable[17] = NEW_String_string___String___with_native(BOX_NativeString("] = {0"), TAG_Int(6)) /*new String*/;
4728 once_value_230 = variable[17];
4729 }
4730 /* Register variable[17]: Result */
4731 /* Ensure var variable[17]: super-string element*/
4732 CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16], variable[17]) /*AbstractArray::add*/;
4733 /* Register variable[17]: Once String constant */
4734 if (once_value_231 != NIT_NULL) variable[17] = once_value_231;
4735 else {
4736 variable[17] = NEW_String_string___String___with_native(BOX_NativeString(", 0"), TAG_Int(3)) /*new String*/;
4737 once_value_231 = variable[17];
4738 }
4739 /* Register variable[17]: Result */
4740 /* Register variable[18]: Result */
4741 variable[18] = TAG_Int(UNTAG_Int( variable[14] /*init_table_size*/)-UNTAG_Int( TAG_Int(1)));
4742 /* Register variable[17]: Result */
4743 variable[17] = CALL_string___String_____star(variable[17])(variable[17], variable[18]) /*String::**/;
4744 /* Ensure var variable[17]: super-string element*/
4745 CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16], variable[17]) /*AbstractArray::add*/;
4746 /* Register variable[17]: Once String constant */
4747 if (once_value_232 != NIT_NULL) variable[17] = once_value_232;
4748 else {
4749 variable[17] = NEW_String_string___String___with_native(BOX_NativeString("};"), TAG_Int(2)) /*new String*/;
4750 once_value_232 = variable[17];
4751 }
4752 /* Register variable[17]: Result */
4753 /* Ensure var variable[17]: super-string element*/
4754 CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16], variable[17]) /*AbstractArray::add*/;
4755 /* Register variable[16]: Result */
4756 variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/;
4757 variable[15] = variable[16];
4758 /* Register variable[16]: Result */
4759 variable[16] = CALL_abstractmetamodel___MMLocalClass___global_properties(variable[0])(variable[0]) /*MMLocalClass::global_properties*/;
4760 /* Register variable[16]: For iterator */
4761 variable[16] = CALL_abstract_collection___Collection___iterator(variable[16])(variable[16]) /*Collection::iterator*/;
4762 while (true) { /*for*/
4763 /* Register variable[17]: For 'is_ok' result */
4764 variable[17] = CALL_abstract_collection___Iterator___is_ok(variable[16])(variable[16]) /*Iterator::is_ok*/;
4765 if (!UNTAG_Bool(variable[17])) break; /*for*/
4766 variable[17] = CALL_abstract_collection___Iterator___item(variable[16])(variable[16]) /*Iterator::item*/ /* Ensure var: For item*/;
4767 /* Register variable[18]: Local variable */
4768 variable[18] = variable[17];
4769 /* Register variable[19]: Local variable */
4770 /* Register variable[20]: Result */
4771 variable[20] = CALL_abstractmetamodel___MMLocalClass_____bra(variable[0])(variable[0], variable[18] /*g*/) /*MMLocalClass::[]*/;
4772 variable[19] = variable[20];
4773 /* Register variable[20]: Result */
4774 variable[20] = CALL_abstractmetamodel___MMLocalProperty___global( variable[19] /*p*/)( variable[19] /*p*/) /*MMLocalProperty::global*/;
4775 /* Register variable[20]: Result */
4776 variable[20] = CALL_abstractmetamodel___MMGlobalProperty___is_init_for(variable[20])(variable[20], variable[0]) /*MMGlobalProperty::is_init_for*/;
4777 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[20])))) { /*if*/
4778 goto continue_233;
4779 }
4780 /* Register variable[20]: Local variable */
4781 /* Register variable[21]: Result */
4782 variable[21] = NEW_Array_array___Array___init() /*new Array[String]*/;
4783 variable[20] = variable[21];
4784 /* Register variable[21]: Local variable */
4785 variable[22] = NEW_Array_array___Array___with_capacity(TAG_Int(1)) /*new Array[String]*/ /* Ensure var: Literal array*/;
4786 /* Register variable[23]: Once String constant */
4787 if (once_value_234 != NIT_NULL) variable[23] = once_value_234;
4788 else {
4789 variable[23] = NEW_String_string___String___with_native(BOX_NativeString("self"), TAG_Int(4)) /*new String*/;
4790 once_value_234 = variable[23];
4791 }
4792 /* Register variable[23]: Result */
4793 CALL_abstract_collection___SimpleCollection___add(variable[22])(variable[22], variable[23]) /*AbstractArray::add*/;
4794 /* Register variable[22]: Result */
4795 variable[21] = variable[22];
4796 /* Register variable[22]: Result */
4797 variable[22] = CALL_static_type___MMLocalProperty___signature( variable[19] /*p*/)( variable[19] /*p*/) /*MMLocalProperty::signature*/;
4798 /* Register variable[22]: Result */
4799 variable[22] = CALL_static_type___MMSignature___arity(variable[22])(variable[22]) /*MMSignature::arity*/;
4800 /* Register variable[22]: Result */
4801 variable[22] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[22]) /*new Range[Int]*/;
4802 /* Register variable[22]: For iterator */
4803 variable[22] = CALL_abstract_collection___Collection___iterator(variable[22])(variable[22]) /*Range::iterator*/;
4804 while (true) { /*for*/
4805 /* Register variable[23]: For 'is_ok' result */
4806 variable[23] = CALL_abstract_collection___Iterator___is_ok(variable[22])(variable[22]) /*Iterator::is_ok*/;
4807 if (!UNTAG_Bool(variable[23])) break; /*for*/
4808 variable[23] = CALL_abstract_collection___Iterator___item(variable[22])(variable[22]) /*Iterator::item*/ /* Ensure var: For item*/;
4809 /* Register variable[24]: Local variable */
4810 variable[24] = variable[23];
4811 variable[25] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
4812 /* Register variable[26]: Once String constant */
4813 if (once_value_236 != NIT_NULL) variable[26] = once_value_236;
4814 else {
4815 variable[26] = NEW_String_string___String___with_native(BOX_NativeString("val_t p"), TAG_Int(7)) /*new String*/;
4816 once_value_236 = variable[26];
4817 }
4818 /* Register variable[26]: Result */
4819 /* Ensure var variable[26]: super-string element*/
4820 CALL_abstract_collection___SimpleCollection___add(variable[25])(variable[25], variable[26]) /*AbstractArray::add*/;
4821 variable[26] = variable[24] /*i*/ /* Ensure var: super-string element*/;
4822 CALL_abstract_collection___SimpleCollection___add(variable[25])(variable[25], CALL_string___Object___to_s(variable[26])(variable[26]) /*Object::to_s*/) /*AbstractArray::add*/;
4823 /* Register variable[26]: Once String constant */
4824 if (once_value_237 != NIT_NULL) variable[26] = once_value_237;
4825 else {
4826 variable[26] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
4827 once_value_237 = variable[26];
4828 }
4829 /* Register variable[26]: Result */
4830 /* Ensure var variable[26]: super-string element*/
4831 CALL_abstract_collection___SimpleCollection___add(variable[25])(variable[25], variable[26]) /*AbstractArray::add*/;
4832 /* Register variable[25]: Result */
4833 variable[25] = CALL_string___Object___to_s(variable[25])(variable[25]) /*Object::to_s*/;
4834 CALL_abstract_collection___SimpleCollection___add( variable[20] /*params*/)( variable[20] /*params*/, variable[25]) /*AbstractArray::add*/;
4835 variable[25] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
4836 /* Register variable[26]: Once String constant */
4837 if (once_value_238 != NIT_NULL) variable[26] = once_value_238;
4838 else {
4839 variable[26] = NEW_String_string___String___with_native(BOX_NativeString("p"), TAG_Int(1)) /*new String*/;
4840 once_value_238 = variable[26];
4841 }
4842 /* Register variable[26]: Result */
4843 /* Ensure var variable[26]: super-string element*/
4844 CALL_abstract_collection___SimpleCollection___add(variable[25])(variable[25], variable[26]) /*AbstractArray::add*/;
4845 variable[26] = variable[24] /*i*/ /* Ensure var: super-string element*/;
4846 CALL_abstract_collection___SimpleCollection___add(variable[25])(variable[25], CALL_string___Object___to_s(variable[26])(variable[26]) /*Object::to_s*/) /*AbstractArray::add*/;
4847 /* Register variable[26]: Once String constant */
4848 if (once_value_239 != NIT_NULL) variable[26] = once_value_239;
4849 else {
4850 variable[26] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
4851 once_value_239 = variable[26];
4852 }
4853 /* Register variable[26]: Result */
4854 /* Ensure var variable[26]: super-string element*/
4855 CALL_abstract_collection___SimpleCollection___add(variable[25])(variable[25], variable[26]) /*AbstractArray::add*/;
4856 /* Register variable[25]: Result */
4857 variable[25] = CALL_string___Object___to_s(variable[25])(variable[25]) /*Object::to_s*/;
4858 CALL_abstract_collection___SimpleCollection___add( variable[21] /*args*/)( variable[21] /*args*/, variable[25]) /*AbstractArray::add*/;
4859 continue_235: while(0);
4860 CALL_abstract_collection___Iterator___next(variable[22])(variable[22]) /*Iterator::next*/;
4861 }
4862 break_235: while(0);
4863 /* Register variable[22]: Once String constant */
4864 if (once_value_240 != NIT_NULL) variable[22] = once_value_240;
4865 else {
4866 variable[22] = NEW_String_string___String___with_native(BOX_NativeString("init_table"), TAG_Int(10)) /*new String*/;
4867 once_value_240 = variable[22];
4868 }
4869 /* Register variable[22]: Result */
4870 CALL_abstract_collection___SimpleCollection___add( variable[21] /*args*/)( variable[21] /*args*/, variable[22]) /*AbstractArray::add*/;
4871 /* Register variable[22]: Local variable */
4872 variable[23] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
4873 /* Register variable[24]: Once String constant */
4874 if (once_value_241 != NIT_NULL) variable[24] = once_value_241;
4875 else {
4876 variable[24] = NEW_String_string___String___with_native(BOX_NativeString("val_t NEW_"), TAG_Int(10)) /*new String*/;
4877 once_value_241 = variable[24];
4878 }
4879 /* Register variable[24]: Result */
4880 /* Ensure var variable[24]: super-string element*/
4881 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[24]) /*AbstractArray::add*/;
4882 /* Ensure var variable[0]: super-string element*/
4883 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], CALL_string___Object___to_s(variable[0])(variable[0]) /*Object::to_s*/) /*AbstractArray::add*/;
4884 /* Register variable[24]: Once String constant */
4885 if (once_value_242 != NIT_NULL) variable[24] = once_value_242;
4886 else {
4887 variable[24] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)) /*new String*/;
4888 once_value_242 = variable[24];
4889 }
4890 /* Register variable[24]: Result */
4891 /* Ensure var variable[24]: super-string element*/
4892 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[24]) /*AbstractArray::add*/;
4893 /* Register variable[24]: Result */
4894 variable[24] = CALL_abstractmetamodel___MMLocalProperty___global( variable[19] /*p*/)( variable[19] /*p*/) /*MMLocalProperty::global*/;
4895 /* Register variable[24]: Result */
4896 variable[24] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[24])(variable[24]) /*MMGlobalProperty::intro*/;
4897 /* Register variable[24]: Result */
4898 variable[24] = CALL_compiling_base___MMLocalProperty___cname(variable[24])(variable[24]) /*MMLocalProperty::cname*/;
4899 /* Ensure var variable[24]: super-string element*/
4900 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[24]) /*AbstractArray::add*/;
4901 /* Register variable[24]: Once String constant */
4902 if (once_value_243 != NIT_NULL) variable[24] = once_value_243;
4903 else {
4904 variable[24] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)) /*new String*/;
4905 once_value_243 = variable[24];
4906 }
4907 /* Register variable[24]: Result */
4908 /* Ensure var variable[24]: super-string element*/
4909 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[24]) /*AbstractArray::add*/;
4910 /* Register variable[24]: Once String constant */
4911 if (once_value_244 != NIT_NULL) variable[24] = once_value_244;
4912 else {
4913 variable[24] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/;
4914 once_value_244 = variable[24];
4915 }
4916 /* Register variable[24]: Result */
4917 /* Register variable[24]: Result */
4918 variable[24] = CALL_string___Collection___join( variable[20] /*params*/)( variable[20] /*params*/, variable[24]) /*Collection::join*/;
4919 /* Ensure var variable[24]: super-string element*/
4920 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[24]) /*AbstractArray::add*/;
4921 /* Register variable[24]: Once String constant */
4922 if (once_value_245 != NIT_NULL) variable[24] = once_value_245;
4923 else {
4924 variable[24] = NEW_String_string___String___with_native(BOX_NativeString(") {"), TAG_Int(3)) /*new String*/;
4925 once_value_245 = variable[24];
4926 }
4927 /* Register variable[24]: Result */
4928 /* Ensure var variable[24]: super-string element*/
4929 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[24]) /*AbstractArray::add*/;
4930 /* Register variable[23]: Result */
4931 variable[23] = CALL_string___Object___to_s(variable[23])(variable[23]) /*Object::to_s*/;
4932 variable[22] = variable[23];
4933 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[22] /*s*/) /*CompilerVisitor::add_instr*/;
4934 CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
4935 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[15] /*init_table_decl*/) /*CompilerVisitor::add_instr*/;
4936 variable[23] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
4937 /* Register variable[24]: Once String constant */
4938 if (once_value_246 != NIT_NULL) variable[24] = once_value_246;
4939 else {
4940 variable[24] = NEW_String_string___String___with_native(BOX_NativeString("val_t self = NEW_"), TAG_Int(17)) /*new String*/;
4941 once_value_246 = variable[24];
4942 }
4943 /* Register variable[24]: Result */
4944 /* Ensure var variable[24]: super-string element*/
4945 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[24]) /*AbstractArray::add*/;
4946 /* Register variable[24]: Result */
4947 variable[24] = CALL_abstractmetamodel___MMLocalClass___name(variable[0])(variable[0]) /*MMLocalClass::name*/;
4948 /* Ensure var variable[24]: super-string element*/
4949 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], CALL_string___Object___to_s(variable[24])(variable[24]) /*Object::to_s*/) /*AbstractArray::add*/;
4950 /* Register variable[24]: Once String constant */
4951 if (once_value_247 != NIT_NULL) variable[24] = once_value_247;
4952 else {
4953 variable[24] = NEW_String_string___String___with_native(BOX_NativeString("();"), TAG_Int(3)) /*new String*/;
4954 once_value_247 = variable[24];
4955 }
4956 /* Register variable[24]: Result */
4957 /* Ensure var variable[24]: super-string element*/
4958 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[24]) /*AbstractArray::add*/;
4959 /* Register variable[23]: Result */
4960 variable[23] = CALL_string___Object___to_s(variable[23])(variable[23]) /*Object::to_s*/;
4961 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[23]) /*CompilerVisitor::add_instr*/;
4962 variable[23] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
4963 /* Register variable[24]: Once String constant */
4964 if (once_value_248 != NIT_NULL) variable[24] = once_value_248;
4965 else {
4966 variable[24] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
4967 once_value_248 = variable[24];
4968 }
4969 /* Register variable[24]: Result */
4970 /* Ensure var variable[24]: super-string element*/
4971 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[24]) /*AbstractArray::add*/;
4972 /* Register variable[24]: Result */
4973 variable[24] = CALL_compiling_base___MMLocalProperty___cname( variable[19] /*p*/)( variable[19] /*p*/) /*MMLocalProperty::cname*/;
4974 /* Ensure var variable[24]: super-string element*/
4975 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[24]) /*AbstractArray::add*/;
4976 /* Register variable[24]: Once String constant */
4977 if (once_value_249 != NIT_NULL) variable[24] = once_value_249;
4978 else {
4979 variable[24] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)) /*new String*/;
4980 once_value_249 = variable[24];
4981 }
4982 /* Register variable[24]: Result */
4983 /* Ensure var variable[24]: super-string element*/
4984 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[24]) /*AbstractArray::add*/;
4985 /* Register variable[24]: Once String constant */
4986 if (once_value_250 != NIT_NULL) variable[24] = once_value_250;
4987 else {
4988 variable[24] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)) /*new String*/;
4989 once_value_250 = variable[24];
4990 }
4991 /* Register variable[24]: Result */
4992 /* Register variable[24]: Result */
4993 variable[24] = CALL_string___Collection___join( variable[21] /*args*/)( variable[21] /*args*/, variable[24]) /*Collection::join*/;
4994 /* Ensure var variable[24]: super-string element*/
4995 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[24]) /*AbstractArray::add*/;
4996 /* Register variable[24]: Once String constant */
4997 if (once_value_251 != NIT_NULL) variable[24] = once_value_251;
4998 else {
4999 variable[24] = NEW_String_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)) /*new String*/;
5000 once_value_251 = variable[24];
5001 }
5002 /* Register variable[24]: Result */
5003 /* Ensure var variable[24]: super-string element*/
5004 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[24]) /*AbstractArray::add*/;
5005 /* Register variable[23]: Result */
5006 variable[23] = CALL_string___Object___to_s(variable[23])(variable[23]) /*Object::to_s*/;
5007 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[23]) /*CompilerVisitor::add_instr*/;
5008 variable[23] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
5009 /* Register variable[24]: Once String constant */
5010 if (once_value_252 != NIT_NULL) variable[24] = once_value_252;
5011 else {
5012 variable[24] = NEW_String_string___String___with_native(BOX_NativeString("CHECKNEW_"), TAG_Int(9)) /*new String*/;
5013 once_value_252 = variable[24];
5014 }
5015 /* Register variable[24]: Result */
5016 /* Ensure var variable[24]: super-string element*/
5017 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[24]) /*AbstractArray::add*/;
5018 /* Register variable[24]: Result */
5019 variable[24] = CALL_abstractmetamodel___MMLocalClass___name(variable[0])(variable[0]) /*MMLocalClass::name*/;
5020 /* Ensure var variable[24]: super-string element*/
5021 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], CALL_string___Object___to_s(variable[24])(variable[24]) /*Object::to_s*/) /*AbstractArray::add*/;
5022 /* Register variable[24]: Once String constant */
5023 if (once_value_253 != NIT_NULL) variable[24] = once_value_253;
5024 else {
5025 variable[24] = NEW_String_string___String___with_native(BOX_NativeString("(self, \""), TAG_Int(8)) /*new String*/;
5026 once_value_253 = variable[24];
5027 }
5028 /* Register variable[24]: Result */
5029 /* Ensure var variable[24]: super-string element*/
5030 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[24]) /*AbstractArray::add*/;
5031 /* Register variable[24]: Result */
5032 variable[24] = CALL_abstractmetamodel___MMLocalProperty___full_name( variable[19] /*p*/)( variable[19] /*p*/) /*MMLocalProperty::full_name*/;
5033 /* Ensure var variable[24]: super-string element*/
5034 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[24]) /*AbstractArray::add*/;
5035 /* Register variable[24]: Once String constant */
5036 if (once_value_254 != NIT_NULL) variable[24] = once_value_254;
5037 else {
5038 variable[24] = NEW_String_string___String___with_native(BOX_NativeString(" for "), TAG_Int(5)) /*new String*/;
5039 once_value_254 = variable[24];
5040 }
5041 /* Register variable[24]: Result */
5042 /* Ensure var variable[24]: super-string element*/
5043 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[24]) /*AbstractArray::add*/;
5044 /* Ensure var variable[0]: super-string element*/
5045 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], CALL_string___Object___to_s(variable[0])(variable[0]) /*Object::to_s*/) /*AbstractArray::add*/;
5046 /* Register variable[24]: Once String constant */
5047 if (once_value_255 != NIT_NULL) variable[24] = once_value_255;
5048 else {
5049 variable[24] = NEW_String_string___String___with_native(BOX_NativeString("\");"), TAG_Int(3)) /*new String*/;
5050 once_value_255 = variable[24];
5051 }
5052 /* Register variable[24]: Result */
5053 /* Ensure var variable[24]: super-string element*/
5054 CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[24]) /*AbstractArray::add*/;
5055 /* Register variable[23]: Result */
5056 variable[23] = CALL_string___Object___to_s(variable[23])(variable[23]) /*Object::to_s*/;
5057 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[23]) /*CompilerVisitor::add_instr*/;
5058 /* Register variable[23]: Once String constant */
5059 if (once_value_256 != NIT_NULL) variable[23] = once_value_256;
5060 else {
5061 variable[23] = NEW_String_string___String___with_native(BOX_NativeString("return self;"), TAG_Int(12)) /*new String*/;
5062 once_value_256 = variable[23];
5063 }
5064 /* Register variable[23]: Result */
5065 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[23]) /*CompilerVisitor::add_instr*/;
5066 CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
5067 /* Register variable[23]: Once String constant */
5068 if (once_value_257 != NIT_NULL) variable[23] = once_value_257;
5069 else {
5070 variable[23] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)) /*new String*/;
5071 once_value_257 = variable[23];
5072 }
5073 /* Register variable[23]: Result */
5074 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[23]) /*CompilerVisitor::add_instr*/;
5075 continue_233: while(0);
5076 CALL_abstract_collection___Iterator___next(variable[16])(variable[16]) /*Iterator::next*/;
5077 }
5078 break_233: while(0);
5079 } else { /*if*/
5080 /* Register variable[8]: Result */
5081 variable[8] = CALL_compiling_base___PrimitiveInfo___tagged( variable[7] /*pi*/)( variable[7] /*pi*/) /*PrimitiveInfo::tagged*/;
5082 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[8])))) { /*if*/
5083 /* Register variable[8]: Local variable */
5084 /* Register variable[9]: Result */
5085 variable[9] = CALL_compiling_base___PrimitiveInfo___cname( variable[7] /*pi*/)( variable[7] /*pi*/) /*PrimitiveInfo::cname*/;
5086 variable[8] = variable[9];
5087 /* Register variable[9]: Local variable */
5088 variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
5089 /* Register variable[11]: Once String constant */
5090 if (once_value_258 != NIT_NULL) variable[11] = once_value_258;
5091 else {
5092 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("struct TBOX_"), TAG_Int(12)) /*new String*/;
5093 once_value_258 = variable[11];
5094 }
5095 /* Register variable[11]: Result */
5096 /* Ensure var variable[11]: super-string element*/
5097 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
5098 /* Register variable[11]: Result */
5099 variable[11] = CALL_abstractmetamodel___MMLocalClass___name(variable[0])(variable[0]) /*MMLocalClass::name*/;
5100 /* Ensure var variable[11]: super-string element*/
5101 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/) /*AbstractArray::add*/;
5102 /* Register variable[11]: Once String constant */
5103 if (once_value_259 != NIT_NULL) variable[11] = once_value_259;
5104 else {
5105 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
5106 once_value_259 = variable[11];
5107 }
5108 /* Register variable[11]: Result */
5109 /* Ensure var variable[11]: super-string element*/
5110 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
5111 /* Register variable[10]: Result */
5112 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
5113 variable[9] = variable[10];
5114 variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
5115 /* Register variable[11]: Once String constant */
5116 if (once_value_260 != NIT_NULL) variable[11] = once_value_260;
5117 else {
5118 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("val_t BOX_"), TAG_Int(10)) /*new String*/;
5119 once_value_260 = variable[11];
5120 }
5121 /* Register variable[11]: Result */
5122 /* Ensure var variable[11]: super-string element*/
5123 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
5124 /* Register variable[11]: Result */
5125 variable[11] = CALL_abstractmetamodel___MMLocalClass___name(variable[0])(variable[0]) /*MMLocalClass::name*/;
5126 /* Ensure var variable[11]: super-string element*/
5127 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/) /*AbstractArray::add*/;
5128 /* Register variable[11]: Once String constant */
5129 if (once_value_261 != NIT_NULL) variable[11] = once_value_261;
5130 else {
5131 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)) /*new String*/;
5132 once_value_261 = variable[11];
5133 }
5134 /* Register variable[11]: Result */
5135 /* Ensure var variable[11]: super-string element*/
5136 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
5137 variable[11] = variable[8] /*t*/ /* Ensure var: super-string element*/;
5138 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
5139 /* Register variable[11]: Once String constant */
5140 if (once_value_262 != NIT_NULL) variable[11] = once_value_262;
5141 else {
5142 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" val) {"), TAG_Int(7)) /*new String*/;
5143 once_value_262 = variable[11];
5144 }
5145 /* Register variable[11]: Result */
5146 /* Ensure var variable[11]: super-string element*/
5147 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
5148 /* Register variable[10]: Result */
5149 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
5150 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
5151 CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
5152 variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
5153 /* Register variable[11]: Once String constant */
5154 if (once_value_263 != NIT_NULL) variable[11] = once_value_263;
5155 else {
5156 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
5157 once_value_263 = variable[11];
5158 }
5159 /* Register variable[11]: Result */
5160 /* Ensure var variable[11]: super-string element*/
5161 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
5162 variable[11] = variable[9] /*tbox*/ /* Ensure var: super-string element*/;
5163 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
5164 /* Register variable[11]: Once String constant */
5165 if (once_value_264 != NIT_NULL) variable[11] = once_value_264;
5166 else {
5167 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" *box = ("), TAG_Int(9)) /*new String*/;
5168 once_value_264 = variable[11];
5169 }
5170 /* Register variable[11]: Result */
5171 /* Ensure var variable[11]: super-string element*/
5172 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
5173 variable[11] = variable[9] /*tbox*/ /* Ensure var: super-string element*/;
5174 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
5175 /* Register variable[11]: Once String constant */
5176 if (once_value_265 != NIT_NULL) variable[11] = once_value_265;
5177 else {
5178 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("*)alloc(sizeof("), TAG_Int(15)) /*new String*/;
5179 once_value_265 = variable[11];
5180 }
5181 /* Register variable[11]: Result */
5182 /* Ensure var variable[11]: super-string element*/
5183 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
5184 variable[11] = variable[9] /*tbox*/ /* Ensure var: super-string element*/;
5185 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
5186 /* Register variable[11]: Once String constant */
5187 if (once_value_266 != NIT_NULL) variable[11] = once_value_266;
5188 else {
5189 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("));"), TAG_Int(3)) /*new String*/;
5190 once_value_266 = variable[11];
5191 }
5192 /* Register variable[11]: Result */
5193 /* Ensure var variable[11]: super-string element*/
5194 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
5195 /* Register variable[10]: Result */
5196 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
5197 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
5198 variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
5199 /* Register variable[11]: Once String constant */
5200 if (once_value_267 != NIT_NULL) variable[11] = once_value_267;
5201 else {
5202 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("box->vft = VFT_"), TAG_Int(15)) /*new String*/;
5203 once_value_267 = variable[11];
5204 }
5205 /* Register variable[11]: Result */
5206 /* Ensure var variable[11]: super-string element*/
5207 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
5208 /* Register variable[11]: Result */
5209 variable[11] = CALL_abstractmetamodel___MMLocalClass___name(variable[0])(variable[0]) /*MMLocalClass::name*/;
5210 /* Ensure var variable[11]: super-string element*/
5211 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/) /*AbstractArray::add*/;
5212 /* Register variable[11]: Once String constant */
5213 if (once_value_268 != NIT_NULL) variable[11] = once_value_268;
5214 else {
5215 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)) /*new String*/;
5216 once_value_268 = variable[11];
5217 }
5218 /* Register variable[11]: Result */
5219 /* Ensure var variable[11]: super-string element*/
5220 CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
5221 /* Register variable[10]: Result */
5222 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
5223 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
5224 /* Register variable[10]: Once String constant */
5225 if (once_value_269 != NIT_NULL) variable[10] = once_value_269;
5226 else {
5227 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("box->val = val;"), TAG_Int(15)) /*new String*/;
5228 once_value_269 = variable[10];
5229 }
5230 /* Register variable[10]: Result */
5231 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
5232 /* Register variable[10]: Once String constant */
5233 if (once_value_270 != NIT_NULL) variable[10] = once_value_270;
5234 else {
5235 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("return OBJ2VAL(box);"), TAG_Int(20)) /*new String*/;
5236 once_value_270 = variable[10];
5237 }
5238 /* Register variable[10]: Result */
5239 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
5240 CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
5241 /* Register variable[10]: Once String constant */
5242 if (once_value_271 != NIT_NULL) variable[10] = once_value_271;
5243 else {
5244 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)) /*new String*/;
5245 once_value_271 = variable[10];
5246 }
5247 /* Register variable[10]: Result */
5248 CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
5249 }
5250 }
5251 return_label194: while(false);
5252 tracehead = trace.prev;
5253 return;
5254 }