Update c_src to handle default closures.
[nit.git] / c_src / compiling_base._sep.c
1 /* This C file is generated by NIT to compile module compiling_base. */
2 #include "compiling_base._sep.h"
3 val_t compiling_base___ToolContext___global(val_t self) {
4 struct trace_t trace = {NULL, NULL, 24, LOCATE_compiling_base___ToolContext___global};
5 val_t *variable = NULL;
6 void **closurevariable = NULL;
7 trace.prev = tracehead; tracehead = &trace;
8 trace.file = LOCATE_compiling_base;
9 tracehead = trace.prev;
10 return ATTR_compiling_base___ToolContext____global( self) /*ToolContext::_global*/;
11 }
12 void compiling_base___ToolContext___global__eq(val_t self, val_t param0) {
13 struct trace_t trace = {NULL, NULL, 24, LOCATE_compiling_base___ToolContext___global__eq};
14 val_t *variable = NULL;
15 void **closurevariable = NULL;
16 trace.prev = tracehead; tracehead = &trace;
17 trace.file = LOCATE_compiling_base;
18 ATTR_compiling_base___ToolContext____global( self) /*ToolContext::_global*/ = param0;
19 tracehead = trace.prev;
20 return;
21 }
22 val_t compiling_base___ToolContext___attr_sim(val_t self) {
23 struct trace_t trace = {NULL, NULL, 25, LOCATE_compiling_base___ToolContext___attr_sim};
24 val_t *variable = NULL;
25 void **closurevariable = NULL;
26 trace.prev = tracehead; tracehead = &trace;
27 trace.file = LOCATE_compiling_base;
28 tracehead = trace.prev;
29 return ATTR_compiling_base___ToolContext____attr_sim( self) /*ToolContext::_attr_sim*/;
30 }
31 void compiling_base___ToolContext___attr_sim__eq(val_t self, val_t param0) {
32 struct trace_t trace = {NULL, NULL, 25, LOCATE_compiling_base___ToolContext___attr_sim__eq};
33 val_t *variable = NULL;
34 void **closurevariable = NULL;
35 trace.prev = tracehead; tracehead = &trace;
36 trace.file = LOCATE_compiling_base;
37 ATTR_compiling_base___ToolContext____attr_sim( self) /*ToolContext::_attr_sim*/ = param0;
38 tracehead = trace.prev;
39 return;
40 }
41 val_t compiling_base___ToolContext___compdir(val_t self) {
42 struct trace_t trace = {NULL, NULL, 26, LOCATE_compiling_base___ToolContext___compdir};
43 val_t *variable = NULL;
44 void **closurevariable = NULL;
45 trace.prev = tracehead; tracehead = &trace;
46 trace.file = LOCATE_compiling_base;
47 tracehead = trace.prev;
48 return ATTR_compiling_base___ToolContext____compdir( self) /*ToolContext::_compdir*/;
49 }
50 void compiling_base___ToolContext___compdir__eq(val_t self, val_t param0) {
51 struct trace_t trace = {NULL, NULL, 26, LOCATE_compiling_base___ToolContext___compdir__eq};
52 val_t *variable = NULL;
53 void **closurevariable = NULL;
54 trace.prev = tracehead; tracehead = &trace;
55 trace.file = LOCATE_compiling_base;
56 ATTR_compiling_base___ToolContext____compdir( self) /*ToolContext::_compdir*/ = param0;
57 tracehead = trace.prev;
58 return;
59 }
60 val_t compiling_base___ToolContext___clibdir(val_t self) {
61 struct trace_t trace = {NULL, NULL, 27, LOCATE_compiling_base___ToolContext___clibdir};
62 val_t *variable = NULL;
63 void **closurevariable = NULL;
64 trace.prev = tracehead; tracehead = &trace;
65 trace.file = LOCATE_compiling_base;
66 tracehead = trace.prev;
67 return ATTR_compiling_base___ToolContext____clibdir( self) /*ToolContext::_clibdir*/;
68 }
69 void compiling_base___ToolContext___clibdir__eq(val_t self, val_t param0) {
70 struct trace_t trace = {NULL, NULL, 27, LOCATE_compiling_base___ToolContext___clibdir__eq};
71 val_t *variable = NULL;
72 void **closurevariable = NULL;
73 trace.prev = tracehead; tracehead = &trace;
74 trace.file = LOCATE_compiling_base;
75 ATTR_compiling_base___ToolContext____clibdir( self) /*ToolContext::_clibdir*/ = param0;
76 tracehead = trace.prev;
77 return;
78 }
79 val_t compiling_base___ToolContext___bindir(val_t self) {
80 struct trace_t trace = {NULL, NULL, 28, LOCATE_compiling_base___ToolContext___bindir};
81 val_t *variable = NULL;
82 void **closurevariable = NULL;
83 trace.prev = tracehead; tracehead = &trace;
84 trace.file = LOCATE_compiling_base;
85 tracehead = trace.prev;
86 return ATTR_compiling_base___ToolContext____bindir( self) /*ToolContext::_bindir*/;
87 }
88 void compiling_base___ToolContext___bindir__eq(val_t self, val_t param0) {
89 struct trace_t trace = {NULL, NULL, 28, LOCATE_compiling_base___ToolContext___bindir__eq};
90 val_t *variable = NULL;
91 void **closurevariable = NULL;
92 trace.prev = tracehead; tracehead = &trace;
93 trace.file = LOCATE_compiling_base;
94 ATTR_compiling_base___ToolContext____bindir( self) /*ToolContext::_bindir*/ = param0;
95 tracehead = trace.prev;
96 return;
97 }
98 val_t compiling_base___ToolContext___output_file(val_t self) {
99 struct trace_t trace = {NULL, NULL, 29, LOCATE_compiling_base___ToolContext___output_file};
100 val_t *variable = NULL;
101 void **closurevariable = NULL;
102 trace.prev = tracehead; tracehead = &trace;
103 trace.file = LOCATE_compiling_base;
104 tracehead = trace.prev;
105 return ATTR_compiling_base___ToolContext____output_file( self) /*ToolContext::_output_file*/;
106 }
107 void compiling_base___ToolContext___output_file__eq(val_t self, val_t param0) {
108 struct trace_t trace = {NULL, NULL, 29, LOCATE_compiling_base___ToolContext___output_file__eq};
109 val_t *variable = NULL;
110 void **closurevariable = NULL;
111 trace.prev = tracehead; tracehead = &trace;
112 trace.file = LOCATE_compiling_base;
113 ATTR_compiling_base___ToolContext____output_file( self) /*ToolContext::_output_file*/ = param0;
114 tracehead = trace.prev;
115 return;
116 }
117 val_t compiling_base___ToolContext___boost(val_t self) {
118 struct trace_t trace = {NULL, NULL, 30, LOCATE_compiling_base___ToolContext___boost};
119 val_t *variable = NULL;
120 void **closurevariable = NULL;
121 trace.prev = tracehead; tracehead = &trace;
122 trace.file = LOCATE_compiling_base;
123 tracehead = trace.prev;
124 return ATTR_compiling_base___ToolContext____boost( self) /*ToolContext::_boost*/;
125 }
126 void compiling_base___ToolContext___boost__eq(val_t self, val_t param0) {
127 struct trace_t trace = {NULL, NULL, 30, LOCATE_compiling_base___ToolContext___boost__eq};
128 val_t *variable = NULL;
129 void **closurevariable = NULL;
130 trace.prev = tracehead; tracehead = &trace;
131 trace.file = LOCATE_compiling_base;
132 ATTR_compiling_base___ToolContext____boost( self) /*ToolContext::_boost*/ = param0;
133 tracehead = trace.prev;
134 return;
135 }
136 val_t compiling_base___ToolContext___no_cc(val_t self) {
137 struct trace_t trace = {NULL, NULL, 31, LOCATE_compiling_base___ToolContext___no_cc};
138 val_t *variable = NULL;
139 void **closurevariable = NULL;
140 trace.prev = tracehead; tracehead = &trace;
141 trace.file = LOCATE_compiling_base;
142 tracehead = trace.prev;
143 return ATTR_compiling_base___ToolContext____no_cc( self) /*ToolContext::_no_cc*/;
144 }
145 void compiling_base___ToolContext___no_cc__eq(val_t self, val_t param0) {
146 struct trace_t trace = {NULL, NULL, 31, LOCATE_compiling_base___ToolContext___no_cc__eq};
147 val_t *variable = NULL;
148 void **closurevariable = NULL;
149 trace.prev = tracehead; tracehead = &trace;
150 trace.file = LOCATE_compiling_base;
151 ATTR_compiling_base___ToolContext____no_cc( self) /*ToolContext::_no_cc*/ = param0;
152 tracehead = trace.prev;
153 return;
154 }
155 val_t compiling_base___ToolContext___ext_prefix(val_t self) {
156 struct trace_t trace = {NULL, NULL, 32, LOCATE_compiling_base___ToolContext___ext_prefix};
157 val_t *variable = NULL;
158 void **closurevariable = NULL;
159 trace.prev = tracehead; tracehead = &trace;
160 trace.file = LOCATE_compiling_base;
161 tracehead = trace.prev;
162 return ATTR_compiling_base___ToolContext____ext_prefix( self) /*ToolContext::_ext_prefix*/;
163 }
164 void compiling_base___ToolContext___ext_prefix__eq(val_t self, val_t param0) {
165 struct trace_t trace = {NULL, NULL, 32, LOCATE_compiling_base___ToolContext___ext_prefix__eq};
166 val_t *variable = NULL;
167 void **closurevariable = NULL;
168 trace.prev = tracehead; tracehead = &trace;
169 trace.file = LOCATE_compiling_base;
170 ATTR_compiling_base___ToolContext____ext_prefix( self) /*ToolContext::_ext_prefix*/ = param0;
171 tracehead = trace.prev;
172 return;
173 }
174 val_t compiling_base___CompilerVisitor___to_s(val_t self) {
175 struct trace_t trace = {NULL, NULL, 80, LOCATE_compiling_base___CompilerVisitor___to_s};
176 val_t variable[4];
177 void **closurevariable = NULL;
178 trace.prev = tracehead; tracehead = &trace;
179 trace.file = LOCATE_compiling_base;
180 variable[0] = self;
181 variable[3] = NEW_Array_array___Array___init(); /*new Array[String]*/
182 variable[2] = variable[3];
183 variable[3] = variable[0];
184 variable[3] = ATTR_compiling_base___CompilerVisitor____ctx(variable[3]) /*CompilerVisitor::_ctx*/;
185 variable[3] = ((compiling_base___CContext___decls_t)CALL(variable[3],COLOR_compiling_base___CContext___decls))(variable[3]) /*CContext::decls*/;
186 ((abstract_collection___IndexedCollection___append_t)CALL( variable[2] /*out*/,COLOR_abstract_collection___IndexedCollection___append))( variable[2] /*out*/, variable[3]) /*IndexedCollection::append*/;
187 variable[3] = variable[0];
188 variable[3] = ATTR_compiling_base___CompilerVisitor____ctx(variable[3]) /*CompilerVisitor::_ctx*/;
189 variable[3] = ((compiling_base___CContext___instrs_t)CALL(variable[3],COLOR_compiling_base___CContext___instrs))(variable[3]) /*CContext::instrs*/;
190 ((abstract_collection___IndexedCollection___append_t)CALL( variable[2] /*out*/,COLOR_abstract_collection___IndexedCollection___append))( variable[2] /*out*/, variable[3]) /*IndexedCollection::append*/;
191 variable[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
192 ((array___AbstractArray___add_t)CALL( variable[2] /*out*/,COLOR_abstract_collection___SimpleCollection___add))( variable[2] /*out*/, variable[3]) /*AbstractArray::add*/;
193 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
194 variable[3] = ((string___Collection___join_t)CALL( variable[2] /*out*/,COLOR_string___Collection___join))( variable[2] /*out*/, variable[3]) /*Collection::join*/;
195 variable[1] = variable[3];
196 goto return_label0;
197 return_label0: while(false);
198 tracehead = trace.prev;
199 return variable[1];
200 }
201 void compiling_base___CompilerVisitor___add_decl(val_t self, val_t param0) {
202 struct trace_t trace = {NULL, NULL, 39, LOCATE_compiling_base___CompilerVisitor___add_decl};
203 val_t variable[6];
204 void **closurevariable = NULL;
205 trace.prev = tracehead; tracehead = &trace;
206 trace.file = LOCATE_compiling_base;
207 variable[0] = self;
208 variable[1] = param0;
209 variable[3] = variable[0];
210 variable[3] = ATTR_compiling_base___CompilerVisitor____indent_level(variable[3]) /*CompilerVisitor::_indent_level*/;
211 variable[3] = TAG_Bool(UNTAG_Int(variable[3])>=UNTAG_Int( TAG_Int(8)));
212 if (UNTAG_Bool(variable[3])) { /*if*/
213 variable[3] = variable[0];
214 variable[3] = ATTR_compiling_base___CompilerVisitor____ctx(variable[3]) /*CompilerVisitor::_ctx*/;
215 variable[3] = ((compiling_base___CContext___decls_t)CALL(variable[3],COLOR_compiling_base___CContext___decls))(variable[3]) /*CContext::decls*/;
216 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("\t\t"), TAG_Int(2)); /*new String*/
217 variable[4] = ((string___String_____plus_t)CALL(variable[4],COLOR_string___String_____plus))(variable[4], variable[1] /*s*/) /*String::+*/;
218 ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[4]) /*AbstractArray::add*/;
219 } else { /*if*/
220 variable[3] = variable[0];
221 variable[3] = ATTR_compiling_base___CompilerVisitor____ctx(variable[3]) /*CompilerVisitor::_ctx*/;
222 variable[3] = ((compiling_base___CContext___decls_t)CALL(variable[3],COLOR_compiling_base___CContext___decls))(variable[3]) /*CContext::decls*/;
223 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(2)); /*new String*/
224 variable[5] = variable[0];
225 variable[5] = ATTR_compiling_base___CompilerVisitor____indent_level(variable[5]) /*CompilerVisitor::_indent_level*/;
226 variable[4] = ((string___String_____star_t)CALL(variable[4],COLOR_string___String_____star))(variable[4], variable[5]) /*String::**/;
227 variable[4] = ((string___String_____plus_t)CALL(variable[4],COLOR_string___String_____plus))(variable[4], variable[1] /*s*/) /*String::+*/;
228 ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[4]) /*AbstractArray::add*/;
229 }
230 return_label1: while(false);
231 tracehead = trace.prev;
232 return;
233 }
234 void compiling_base___CompilerVisitor___add_instr(val_t self, val_t param0) {
235 struct trace_t trace = {NULL, NULL, 49, LOCATE_compiling_base___CompilerVisitor___add_instr};
236 val_t variable[6];
237 void **closurevariable = NULL;
238 trace.prev = tracehead; tracehead = &trace;
239 trace.file = LOCATE_compiling_base;
240 variable[0] = self;
241 variable[1] = param0;
242 variable[3] = variable[0];
243 variable[3] = ATTR_compiling_base___CompilerVisitor____indent_level(variable[3]) /*CompilerVisitor::_indent_level*/;
244 variable[3] = TAG_Bool(UNTAG_Int(variable[3])>=UNTAG_Int( TAG_Int(8)));
245 if (UNTAG_Bool(variable[3])) { /*if*/
246 variable[3] = variable[0];
247 variable[3] = ATTR_compiling_base___CompilerVisitor____ctx(variable[3]) /*CompilerVisitor::_ctx*/;
248 variable[3] = ((compiling_base___CContext___instrs_t)CALL(variable[3],COLOR_compiling_base___CContext___instrs))(variable[3]) /*CContext::instrs*/;
249 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("\t\t"), TAG_Int(2)); /*new String*/
250 variable[4] = ((string___String_____plus_t)CALL(variable[4],COLOR_string___String_____plus))(variable[4], variable[1] /*s*/) /*String::+*/;
251 ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[4]) /*AbstractArray::add*/;
252 } else { /*if*/
253 variable[3] = variable[0];
254 variable[3] = ATTR_compiling_base___CompilerVisitor____ctx(variable[3]) /*CompilerVisitor::_ctx*/;
255 variable[3] = ((compiling_base___CContext___instrs_t)CALL(variable[3],COLOR_compiling_base___CContext___instrs))(variable[3]) /*CContext::instrs*/;
256 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(2)); /*new String*/
257 variable[5] = variable[0];
258 variable[5] = ATTR_compiling_base___CompilerVisitor____indent_level(variable[5]) /*CompilerVisitor::_indent_level*/;
259 variable[4] = ((string___String_____star_t)CALL(variable[4],COLOR_string___String_____star))(variable[4], variable[5]) /*String::**/;
260 variable[4] = ((string___String_____plus_t)CALL(variable[4],COLOR_string___String_____plus))(variable[4], variable[1] /*s*/) /*String::+*/;
261 ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[4]) /*AbstractArray::add*/;
262 }
263 return_label2: while(false);
264 tracehead = trace.prev;
265 return;
266 }
267 val_t compiling_base___CompilerVisitor___new_number(val_t self) {
268 struct trace_t trace = {NULL, NULL, 59, LOCATE_compiling_base___CompilerVisitor___new_number};
269 val_t variable[5];
270 void **closurevariable = NULL;
271 trace.prev = tracehead; tracehead = &trace;
272 trace.file = LOCATE_compiling_base;
273 variable[0] = self;
274 variable[3] = variable[0];
275 variable[3] = ATTR_compiling_base___CompilerVisitor____number_cpt(variable[3]) /*CompilerVisitor::_number_cpt*/;
276 variable[2] = variable[3];
277 variable[3] = variable[0];
278 variable[4] = TAG_Int(UNTAG_Int( variable[2] /*res*/)+UNTAG_Int( TAG_Int(1)));
279 ATTR_compiling_base___CompilerVisitor____number_cpt(variable[3]) /*CompilerVisitor::_number_cpt*/ = variable[4];
280 variable[1] = variable[2] /*res*/;
281 goto return_label3;
282 return_label3: while(false);
283 tracehead = trace.prev;
284 return variable[1];
285 }
286 void compiling_base___CompilerVisitor___indent(val_t self) {
287 struct trace_t trace = {NULL, NULL, 69, LOCATE_compiling_base___CompilerVisitor___indent};
288 val_t variable[3];
289 void **closurevariable = NULL;
290 trace.prev = tracehead; tracehead = &trace;
291 trace.file = LOCATE_compiling_base;
292 variable[0] = self;
293 variable[2] = variable[0];
294 ATTR_compiling_base___CompilerVisitor____indent_level(variable[2]) /*CompilerVisitor::_indent_level*/ = TAG_Int(UNTAG_Int(ATTR_compiling_base___CompilerVisitor____indent_level(variable[2]) /*CompilerVisitor::_indent_level*/)+UNTAG_Int( TAG_Int(1)));
295 return_label4: while(false);
296 tracehead = trace.prev;
297 return;
298 }
299 void compiling_base___CompilerVisitor___unindent(val_t self) {
300 struct trace_t trace = {NULL, NULL, 73, LOCATE_compiling_base___CompilerVisitor___unindent};
301 val_t variable[3];
302 void **closurevariable = NULL;
303 trace.prev = tracehead; tracehead = &trace;
304 trace.file = LOCATE_compiling_base;
305 variable[0] = self;
306 variable[2] = variable[0];
307 ATTR_compiling_base___CompilerVisitor____indent_level(variable[2]) /*CompilerVisitor::_indent_level*/ = TAG_Int(UNTAG_Int(ATTR_compiling_base___CompilerVisitor____indent_level(variable[2]) /*CompilerVisitor::_indent_level*/)-UNTAG_Int( TAG_Int(1)));
308 variable[2] = variable[0];
309 variable[2] = ATTR_compiling_base___CompilerVisitor____indent_level(variable[2]) /*CompilerVisitor::_indent_level*/;
310 variable[2] = TAG_Bool(UNTAG_Int(variable[2])<UNTAG_Int( TAG_Int(0)));
311 if (UNTAG_Bool(variable[2])) { /*if*/
312 variable[2] = variable[0];
313 ATTR_compiling_base___CompilerVisitor____indent_level(variable[2]) /*CompilerVisitor::_indent_level*/ = TAG_Int(0);
314 }
315 return_label5: while(false);
316 tracehead = trace.prev;
317 return;
318 }
319 val_t compiling_base___CompilerVisitor___module(val_t self) {
320 struct trace_t trace = {NULL, NULL, 90, LOCATE_compiling_base___CompilerVisitor___module};
321 val_t *variable = NULL;
322 void **closurevariable = NULL;
323 trace.prev = tracehead; tracehead = &trace;
324 trace.file = LOCATE_compiling_base;
325 tracehead = trace.prev;
326 return ATTR_compiling_base___CompilerVisitor____module( self) /*CompilerVisitor::_module*/;
327 }
328 void compiling_base___CompilerVisitor___module__eq(val_t self, val_t param0) {
329 struct trace_t trace = {NULL, NULL, 90, LOCATE_compiling_base___CompilerVisitor___module__eq};
330 val_t *variable = NULL;
331 void **closurevariable = NULL;
332 trace.prev = tracehead; tracehead = &trace;
333 trace.file = LOCATE_compiling_base;
334 ATTR_compiling_base___CompilerVisitor____module( self) /*CompilerVisitor::_module*/ = param0;
335 tracehead = trace.prev;
336 return;
337 }
338 val_t compiling_base___CompilerVisitor___ctx(val_t self) {
339 struct trace_t trace = {NULL, NULL, 93, LOCATE_compiling_base___CompilerVisitor___ctx};
340 val_t *variable = NULL;
341 void **closurevariable = NULL;
342 trace.prev = tracehead; tracehead = &trace;
343 trace.file = LOCATE_compiling_base;
344 tracehead = trace.prev;
345 return ATTR_compiling_base___CompilerVisitor____ctx( self) /*CompilerVisitor::_ctx*/;
346 }
347 void compiling_base___CompilerVisitor___ctx__eq(val_t self, val_t param0) {
348 struct trace_t trace = {NULL, NULL, 93, LOCATE_compiling_base___CompilerVisitor___ctx__eq};
349 val_t *variable = NULL;
350 void **closurevariable = NULL;
351 trace.prev = tracehead; tracehead = &trace;
352 trace.file = LOCATE_compiling_base;
353 ATTR_compiling_base___CompilerVisitor____ctx( self) /*CompilerVisitor::_ctx*/ = param0;
354 tracehead = trace.prev;
355 return;
356 }
357 val_t compiling_base___CompilerVisitor___indent_level(val_t self) {
358 struct trace_t trace = {NULL, NULL, 96, LOCATE_compiling_base___CompilerVisitor___indent_level};
359 val_t *variable = NULL;
360 void **closurevariable = NULL;
361 trace.prev = tracehead; tracehead = &trace;
362 trace.file = LOCATE_compiling_base;
363 tracehead = trace.prev;
364 return ATTR_compiling_base___CompilerVisitor____indent_level( self) /*CompilerVisitor::_indent_level*/;
365 }
366 void compiling_base___CompilerVisitor___indent_level__eq(val_t self, val_t param0) {
367 struct trace_t trace = {NULL, NULL, 96, LOCATE_compiling_base___CompilerVisitor___indent_level__eq};
368 val_t *variable = NULL;
369 void **closurevariable = NULL;
370 trace.prev = tracehead; tracehead = &trace;
371 trace.file = LOCATE_compiling_base;
372 ATTR_compiling_base___CompilerVisitor____indent_level( self) /*CompilerVisitor::_indent_level*/ = param0;
373 tracehead = trace.prev;
374 return;
375 }
376 val_t compiling_base___CompilerVisitor___tc(val_t self) {
377 struct trace_t trace = {NULL, NULL, 99, LOCATE_compiling_base___CompilerVisitor___tc};
378 val_t *variable = NULL;
379 void **closurevariable = NULL;
380 trace.prev = tracehead; tracehead = &trace;
381 trace.file = LOCATE_compiling_base;
382 tracehead = trace.prev;
383 return ATTR_compiling_base___CompilerVisitor____tc( self) /*CompilerVisitor::_tc*/;
384 }
385 void compiling_base___CompilerVisitor___tc__eq(val_t self, val_t param0) {
386 struct trace_t trace = {NULL, NULL, 99, LOCATE_compiling_base___CompilerVisitor___tc__eq};
387 val_t *variable = NULL;
388 void **closurevariable = NULL;
389 trace.prev = tracehead; tracehead = &trace;
390 trace.file = LOCATE_compiling_base;
391 ATTR_compiling_base___CompilerVisitor____tc( self) /*CompilerVisitor::_tc*/ = param0;
392 tracehead = trace.prev;
393 return;
394 }
395 void compiling_base___CompilerVisitor___init(val_t self, val_t param0, int* init_table) {
396 struct trace_t trace = {NULL, NULL, 102, LOCATE_compiling_base___CompilerVisitor___init};
397 val_t variable[4];
398 void **closurevariable = NULL;
399 trace.prev = tracehead; tracehead = &trace;
400 trace.file = LOCATE_compiling_base;
401 variable[0] = self;
402 variable[1] = param0;
403 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_CompilerVisitor].i]) return;
404 variable[3] = variable[0];
405 ATTR_compiling_base___CompilerVisitor____module(variable[3]) /*CompilerVisitor::_module*/ = variable[1] /*module*/;
406 return_label6: while(false);
407 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_CompilerVisitor].i] = 1;
408 tracehead = trace.prev;
409 return;
410 }
411 val_t compiling_base___CContext___decls(val_t self) {
412 struct trace_t trace = {NULL, NULL, 109, LOCATE_compiling_base___CContext___decls};
413 val_t *variable = NULL;
414 void **closurevariable = NULL;
415 trace.prev = tracehead; tracehead = &trace;
416 trace.file = LOCATE_compiling_base;
417 tracehead = trace.prev;
418 return ATTR_compiling_base___CContext____decls( self) /*CContext::_decls*/;
419 }
420 val_t compiling_base___CContext___instrs(val_t self) {
421 struct trace_t trace = {NULL, NULL, 110, LOCATE_compiling_base___CContext___instrs};
422 val_t *variable = NULL;
423 void **closurevariable = NULL;
424 trace.prev = tracehead; tracehead = &trace;
425 trace.file = LOCATE_compiling_base;
426 tracehead = trace.prev;
427 return ATTR_compiling_base___CContext____instrs( self) /*CContext::_instrs*/;
428 }
429 void compiling_base___CContext___append(val_t self, val_t param0) {
430 struct trace_t trace = {NULL, NULL, 112, LOCATE_compiling_base___CContext___append};
431 val_t variable[5];
432 void **closurevariable = NULL;
433 trace.prev = tracehead; tracehead = &trace;
434 trace.file = LOCATE_compiling_base;
435 variable[0] = self;
436 variable[1] = param0;
437 variable[3] = variable[0];
438 variable[3] = ATTR_compiling_base___CContext____instrs(variable[3]) /*CContext::_instrs*/;
439 variable[4] = ((compiling_base___CContext___decls_t)CALL( variable[1] /*c*/,COLOR_compiling_base___CContext___decls))( variable[1] /*c*/) /*CContext::decls*/;
440 ((abstract_collection___IndexedCollection___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[4]) /*IndexedCollection::append*/;
441 variable[3] = variable[0];
442 variable[3] = ATTR_compiling_base___CContext____instrs(variable[3]) /*CContext::_instrs*/;
443 variable[4] = ((compiling_base___CContext___instrs_t)CALL( variable[1] /*c*/,COLOR_compiling_base___CContext___instrs))( variable[1] /*c*/) /*CContext::instrs*/;
444 ((abstract_collection___IndexedCollection___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[4]) /*IndexedCollection::append*/;
445 return_label7: while(false);
446 tracehead = trace.prev;
447 return;
448 }
449 void compiling_base___CContext___merge(val_t self, val_t param0) {
450 struct trace_t trace = {NULL, NULL, 118, LOCATE_compiling_base___CContext___merge};
451 val_t variable[5];
452 void **closurevariable = NULL;
453 trace.prev = tracehead; tracehead = &trace;
454 trace.file = LOCATE_compiling_base;
455 variable[0] = self;
456 variable[1] = param0;
457 variable[3] = variable[0];
458 variable[3] = ATTR_compiling_base___CContext____decls(variable[3]) /*CContext::_decls*/;
459 variable[4] = ((compiling_base___CContext___decls_t)CALL( variable[1] /*c*/,COLOR_compiling_base___CContext___decls))( variable[1] /*c*/) /*CContext::decls*/;
460 ((abstract_collection___IndexedCollection___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[4]) /*IndexedCollection::append*/;
461 variable[3] = variable[0];
462 variable[3] = ATTR_compiling_base___CContext____instrs(variable[3]) /*CContext::_instrs*/;
463 variable[4] = ((compiling_base___CContext___instrs_t)CALL( variable[1] /*c*/,COLOR_compiling_base___CContext___instrs))( variable[1] /*c*/) /*CContext::instrs*/;
464 ((abstract_collection___IndexedCollection___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[4]) /*IndexedCollection::append*/;
465 return_label8: while(false);
466 tracehead = trace.prev;
467 return;
468 }
469 void compiling_base___CContext___init(val_t self, int* init_table) {
470 struct trace_t trace = {NULL, NULL, 124, LOCATE_compiling_base___CContext___init};
471 val_t variable[2];
472 void **closurevariable = NULL;
473 trace.prev = tracehead; tracehead = &trace;
474 trace.file = LOCATE_compiling_base;
475 variable[0] = self;
476 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_CContext].i]) return;
477 return_label9: while(false);
478 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_CContext].i] = 1;
479 tracehead = trace.prev;
480 return;
481 }
482 val_t compiling_base___MMGlobalProperty___meth_call(val_t self) {
483 struct trace_t trace = {NULL, NULL, 128, LOCATE_compiling_base___MMGlobalProperty___meth_call};
484 val_t variable[9];
485 void **closurevariable = NULL;
486 trace.prev = tracehead; tracehead = &trace;
487 trace.file = LOCATE_compiling_base;
488 variable[0] = self;
489 variable[2] = NEW_String_string___String___init(); /*new String*/
490 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("CALL_"), TAG_Int(5)); /*new String*/
491 variable[4] = variable[3];
492 ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/;
493 variable[5] = variable[0];
494 variable[5] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[5],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[5]) /*MMGlobalProperty::intro*/;
495 variable[5] = ((compiling_base___MMLocalProperty___cname_t)CALL(variable[5],COLOR_compiling_base___MMLocalProperty___cname))(variable[5]) /*MMLocalProperty::cname*/;
496 variable[6] = variable[5];
497 ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/;
498 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
499 variable[8] = variable[7];
500 ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/;
501 variable[1] = variable[2];
502 goto return_label10;
503 return_label10: while(false);
504 tracehead = trace.prev;
505 return variable[1];
506 }
507 val_t compiling_base___MMGlobalProperty___attr_access(val_t self) {
508 struct trace_t trace = {NULL, NULL, 134, LOCATE_compiling_base___MMGlobalProperty___attr_access};
509 val_t variable[9];
510 void **closurevariable = NULL;
511 trace.prev = tracehead; tracehead = &trace;
512 trace.file = LOCATE_compiling_base;
513 variable[0] = self;
514 variable[2] = NEW_String_string___String___init(); /*new String*/
515 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("ATTR_"), TAG_Int(5)); /*new String*/
516 variable[4] = variable[3];
517 ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/;
518 variable[5] = variable[0];
519 variable[5] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[5],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[5]) /*MMGlobalProperty::intro*/;
520 variable[5] = ((compiling_base___MMLocalProperty___cname_t)CALL(variable[5],COLOR_compiling_base___MMLocalProperty___cname))(variable[5]) /*MMLocalProperty::cname*/;
521 variable[6] = variable[5];
522 ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/;
523 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
524 variable[8] = variable[7];
525 ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/;
526 variable[1] = variable[2];
527 goto return_label11;
528 return_label11: while(false);
529 tracehead = trace.prev;
530 return variable[1];
531 }
532 val_t compiling_base___MMGlobalProperty___color_id(val_t self) {
533 struct trace_t trace = {NULL, NULL, 140, LOCATE_compiling_base___MMGlobalProperty___color_id};
534 val_t variable[9];
535 void **closurevariable = NULL;
536 trace.prev = tracehead; tracehead = &trace;
537 trace.file = LOCATE_compiling_base;
538 variable[0] = self;
539 variable[2] = NEW_String_string___String___init(); /*new String*/
540 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("COLOR_"), TAG_Int(6)); /*new String*/
541 variable[4] = variable[3];
542 ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/;
543 variable[5] = variable[0];
544 variable[5] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[5],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[5]) /*MMGlobalProperty::intro*/;
545 variable[5] = ((compiling_base___MMLocalProperty___cname_t)CALL(variable[5],COLOR_compiling_base___MMLocalProperty___cname))(variable[5]) /*MMLocalProperty::cname*/;
546 variable[6] = variable[5];
547 ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/;
548 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
549 variable[8] = variable[7];
550 ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/;
551 variable[1] = variable[2];
552 goto return_label12;
553 return_label12: while(false);
554 tracehead = trace.prev;
555 return variable[1];
556 }
557 val_t compiling_base___MMGlobalClass___id_id(val_t self) {
558 struct trace_t trace = {NULL, NULL, 149, LOCATE_compiling_base___MMGlobalClass___id_id};
559 val_t variable[9];
560 void **closurevariable = NULL;
561 trace.prev = tracehead; tracehead = &trace;
562 trace.file = LOCATE_compiling_base;
563 variable[0] = self;
564 variable[2] = NEW_String_string___String___init(); /*new String*/
565 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("ID_"), TAG_Int(3)); /*new String*/
566 variable[4] = variable[3];
567 ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/;
568 variable[5] = variable[0];
569 variable[5] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable[5],COLOR_abstractmetamodel___MMGlobalClass___intro))(variable[5]) /*MMGlobalClass::intro*/;
570 variable[5] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___name))(variable[5]) /*MMLocalClass::name*/;
571 variable[6] = variable[5];
572 variable[6] = ((string___String___to_s_t)CALL(variable[6],COLOR_string___Object___to_s))(variable[6]) /*String::to_s*/;
573 ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/;
574 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
575 variable[8] = variable[7];
576 ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/;
577 variable[1] = variable[2];
578 goto return_label13;
579 return_label13: while(false);
580 tracehead = trace.prev;
581 return variable[1];
582 }
583 val_t compiling_base___MMGlobalClass___color_id(val_t self) {
584 struct trace_t trace = {NULL, NULL, 155, LOCATE_compiling_base___MMGlobalClass___color_id};
585 val_t variable[9];
586 void **closurevariable = NULL;
587 trace.prev = tracehead; tracehead = &trace;
588 trace.file = LOCATE_compiling_base;
589 variable[0] = self;
590 variable[2] = NEW_String_string___String___init(); /*new String*/
591 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("COLOR_"), TAG_Int(6)); /*new String*/
592 variable[4] = variable[3];
593 ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/;
594 variable[5] = variable[0];
595 variable[5] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable[5],COLOR_abstractmetamodel___MMGlobalClass___intro))(variable[5]) /*MMGlobalClass::intro*/;
596 variable[5] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___name))(variable[5]) /*MMLocalClass::name*/;
597 variable[6] = variable[5];
598 variable[6] = ((string___String___to_s_t)CALL(variable[6],COLOR_string___Object___to_s))(variable[6]) /*String::to_s*/;
599 ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/;
600 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
601 variable[8] = variable[7];
602 ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/;
603 variable[1] = variable[2];
604 goto return_label14;
605 return_label14: while(false);
606 tracehead = trace.prev;
607 return variable[1];
608 }
609 val_t compiling_base___MMGlobalClass___init_table_pos_id(val_t self) {
610 struct trace_t trace = {NULL, NULL, 161, LOCATE_compiling_base___MMGlobalClass___init_table_pos_id};
611 val_t variable[9];
612 void **closurevariable = NULL;
613 trace.prev = tracehead; tracehead = &trace;
614 trace.file = LOCATE_compiling_base;
615 variable[0] = self;
616 variable[2] = NEW_String_string___String___init(); /*new String*/
617 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("INIT_TABLE_POS_"), TAG_Int(15)); /*new String*/
618 variable[4] = variable[3];
619 ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/;
620 variable[5] = variable[0];
621 variable[5] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable[5],COLOR_abstractmetamodel___MMGlobalClass___intro))(variable[5]) /*MMGlobalClass::intro*/;
622 variable[5] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___name))(variable[5]) /*MMLocalClass::name*/;
623 variable[6] = variable[5];
624 variable[6] = ((string___String___to_s_t)CALL(variable[6],COLOR_string___Object___to_s))(variable[6]) /*String::to_s*/;
625 ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/;
626 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
627 variable[8] = variable[7];
628 ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/;
629 variable[1] = variable[2];
630 goto return_label15;
631 return_label15: while(false);
632 tracehead = trace.prev;
633 return variable[1];
634 }
635 val_t compiling_base___MMLocalClass___primitive_info(val_t self) {
636 struct trace_t trace = {NULL, NULL, 175, LOCATE_compiling_base___MMLocalClass___primitive_info};
637 static val_t once_value_17; static int once_bool_17; /* Once value for variable[3]*/
638 val_t variable[8];
639 void **closurevariable = NULL;
640 trace.prev = tracehead; tracehead = &trace;
641 trace.file = LOCATE_compiling_base;
642 variable[0] = self;
643 variable[2] = variable[0];
644 variable[2] = ATTR_compiling_base___MMLocalClass____primitive_info_b(variable[2]) /*MMLocalClass::_primitive_info_b*/;
645 variable[2] = TAG_Bool((variable[2])==( TAG_Bool(true)));
646 if (UNTAG_Bool(variable[2])) { /*if*/
647 variable[2] = variable[0];
648 variable[2] = ATTR_compiling_base___MMLocalClass____primitive_info_cache(variable[2]) /*MMLocalClass::_primitive_info_cache*/;
649 variable[1] = variable[2];
650 goto return_label16;
651 }
652 if (once_bool_17) variable[3] = once_value_17;
653 else {
654 variable[3] = variable[0];
655 variable[3] = ((compiling_base___MMLocalClass___primitive_ctypes_t)CALL(variable[3],COLOR_compiling_base___MMLocalClass___primitive_ctypes))(variable[3]) /*MMLocalClass::primitive_ctypes*/;
656 once_value_17 = variable[3];
657 once_bool_17 = true;
658 }
659 variable[2] = variable[3];
660 variable[3] = variable[0];
661 variable[3] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[3],COLOR_abstractmetamodel___MMLocalClass___name))(variable[3]) /*MMLocalClass::name*/;
662 variable[3] = ((abstract_collection___CoupleMap___has_key_t)CALL( variable[2] /*ctypes*/,COLOR_abstract_collection___Map___has_key))( variable[2] /*ctypes*/, variable[3]) /*CoupleMap::has_key*/;
663 if (UNTAG_Bool(variable[3])) { /*if*/
664 variable[3] = variable[0];
665 variable[4] = variable[0];
666 variable[4] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass___name))(variable[4]) /*MMLocalClass::name*/;
667 variable[4] = ((abstract_collection___CoupleMap_____bra_t)CALL( variable[2] /*ctypes*/,COLOR_abstract_collection___Map_____bra))( variable[2] /*ctypes*/, variable[4]) /*CoupleMap::[]*/;
668 ATTR_compiling_base___MMLocalClass____primitive_info_cache(variable[3]) /*MMLocalClass::_primitive_info_cache*/ = variable[4];
669 variable[3] = variable[0];
670 ATTR_compiling_base___MMLocalClass____primitive_info_b(variable[3]) /*MMLocalClass::_primitive_info_b*/ = TAG_Bool(true);
671 variable[3] = variable[0];
672 variable[3] = ATTR_compiling_base___MMLocalClass____primitive_info_cache(variable[3]) /*MMLocalClass::_primitive_info_cache*/;
673 variable[1] = variable[3];
674 goto return_label16;
675 }
676 variable[4] = ((hash___HashMap___iterator_t)CALL( variable[2] /*ctypes*/,COLOR_abstract_collection___Collection___iterator))( variable[2] /*ctypes*/) /*HashMap::iterator*/;
677 variable[3] = variable[4];
678 while (true) { /*while*/
679 variable[4] = ((hash___HashMapIterator___is_ok_t)CALL( variable[3] /*i*/,COLOR_abstract_collection___Iterator___is_ok))( variable[3] /*i*/) /*HashMapIterator::is_ok*/;
680 if (!UNTAG_Bool(variable[4])) break; /* while*/
681 variable[5] = ((hash___HashMapIterator___key_t)CALL( variable[3] /*i*/,COLOR_abstract_collection___MapIterator___key))( variable[3] /*i*/) /*HashMapIterator::key*/;
682 variable[4] = variable[5];
683 variable[5] = variable[0];
684 variable[5] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___module))(variable[5]) /*MMLocalClass::module*/;
685 variable[5] = ((abstractmetamodel___MMModule___has_global_class_named_t)CALL(variable[5],COLOR_abstractmetamodel___MMModule___has_global_class_named))(variable[5], variable[4] /*n*/) /*MMModule::has_global_class_named*/;
686 if (UNTAG_Bool(variable[5])) { /*if*/
687 variable[6] = variable[0];
688 variable[6] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___module))(variable[6]) /*MMLocalClass::module*/;
689 variable[6] = ((abstractmetamodel___MMModule___class_by_name_t)CALL(variable[6],COLOR_abstractmetamodel___MMModule___class_by_name))(variable[6], variable[4] /*n*/) /*MMModule::class_by_name*/;
690 variable[5] = variable[6];
691 variable[6] = variable[0];
692 variable[6] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___cshe))(variable[6]) /*MMLocalClass::cshe*/;
693 variable[6] = ((partial_order___PartialOrderElement_____l_t)CALL(variable[6],COLOR_partial_order___PartialOrderElement_____l))(variable[6], variable[5] /*c*/) /*PartialOrderElement::<*/;
694 if (UNTAG_Bool(variable[6])) { /*if*/
695 variable[6] = variable[0];
696 variable[7] = ((hash___HashMapIterator___item_t)CALL( variable[3] /*i*/,COLOR_abstract_collection___Iterator___item))( variable[3] /*i*/) /*HashMapIterator::item*/;
697 ATTR_compiling_base___MMLocalClass____primitive_info_cache(variable[6]) /*MMLocalClass::_primitive_info_cache*/ = variable[7];
698 variable[6] = variable[0];
699 ATTR_compiling_base___MMLocalClass____primitive_info_b(variable[6]) /*MMLocalClass::_primitive_info_b*/ = TAG_Bool(true);
700 variable[6] = variable[0];
701 variable[6] = ATTR_compiling_base___MMLocalClass____primitive_info_cache(variable[6]) /*MMLocalClass::_primitive_info_cache*/;
702 variable[1] = variable[6];
703 goto return_label16;
704 }
705 }
706 ((hash___HashMapIterator___next_t)CALL( variable[3] /*i*/,COLOR_abstract_collection___Iterator___next))( variable[3] /*i*/) /*HashMapIterator::next*/;
707 continue_18: while(0);
708 }
709 break_18: while(0);
710 variable[4] = variable[0];
711 ATTR_compiling_base___MMLocalClass____primitive_info_b(variable[4]) /*MMLocalClass::_primitive_info_b*/ = TAG_Bool(true);
712 variable[1] = NIT_NULL /*null*/;
713 goto return_label16;
714 return_label16: while(false);
715 tracehead = trace.prev;
716 return variable[1];
717 }
718 val_t compiling_base___MMLocalClass___primitive_ctypes(val_t self) {
719 struct trace_t trace = {NULL, NULL, 205, LOCATE_compiling_base___MMLocalClass___primitive_ctypes};
720 val_t variable[16];
721 void **closurevariable = NULL;
722 trace.prev = tracehead; tracehead = &trace;
723 trace.file = LOCATE_compiling_base;
724 variable[0] = self;
725 variable[3] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[Symbol, PrimitiveInfo]*/
726 variable[2] = variable[3];
727 variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
728 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Int"), TAG_Int(3)); /*new String*/
729 ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[5]) /*AbstractArray::add*/;
730 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Char"), TAG_Int(4)); /*new String*/
731 ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[6]) /*AbstractArray::add*/;
732 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Bool"), TAG_Int(4)); /*new String*/
733 ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[7]) /*AbstractArray::add*/;
734 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Float"), TAG_Int(5)); /*new String*/
735 ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[8]) /*AbstractArray::add*/;
736 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("NativeString"), TAG_Int(12)); /*new String*/
737 ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[9]) /*AbstractArray::add*/;
738 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("NativeArray"), TAG_Int(11)); /*new String*/
739 ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[10]) /*AbstractArray::add*/;
740 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("Pointer"), TAG_Int(7)); /*new String*/
741 ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[11]) /*AbstractArray::add*/;
742 variable[3] = variable[4];
743 variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[Bool]*/
744 ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], TAG_Bool(true)) /*AbstractArray::add*/;
745 ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], TAG_Bool(true)) /*AbstractArray::add*/;
746 ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], TAG_Bool(true)) /*AbstractArray::add*/;
747 ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], TAG_Bool(false)) /*AbstractArray::add*/;
748 ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], TAG_Bool(false)) /*AbstractArray::add*/;
749 ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], TAG_Bool(false)) /*AbstractArray::add*/;
750 ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], TAG_Bool(false)) /*AbstractArray::add*/;
751 variable[4] = variable[5];
752 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
753 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("bigint"), TAG_Int(6)); /*new String*/
754 ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6], variable[7]) /*AbstractArray::add*/;
755 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("char"), TAG_Int(4)); /*new String*/
756 ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6], variable[8]) /*AbstractArray::add*/;
757 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("int"), TAG_Int(3)); /*new String*/
758 ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6], variable[9]) /*AbstractArray::add*/;
759 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("float"), TAG_Int(5)); /*new String*/
760 ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6], variable[10]) /*AbstractArray::add*/;
761 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("char *"), TAG_Int(6)); /*new String*/
762 ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6], variable[11]) /*AbstractArray::add*/;
763 variable[12] = NEW_String_string___String___with_native(BOX_NativeString("val_t *"), TAG_Int(7)); /*new String*/
764 ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6], variable[12]) /*AbstractArray::add*/;
765 variable[13] = NEW_String_string___String___with_native(BOX_NativeString("void *"), TAG_Int(6)); /*new String*/
766 ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6], variable[13]) /*AbstractArray::add*/;
767 variable[5] = variable[6];
768 variable[6] = ((array___AbstractArray___length_t)CALL( variable[3] /*pnames*/,COLOR_abstract_collection___Collection___length))( variable[3] /*pnames*/) /*AbstractArray::length*/;
769 variable[7] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[6]); /*new Range[Int]*/
770 variable[6] = variable[7];
771 variable[6] = ((range___Range___iterator_t)CALL(variable[6],COLOR_abstract_collection___Collection___iterator))(variable[6]) /*Range::iterator*/;
772 while (true) { /*for*/
773 variable[7] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*Iterator::is_ok*/;
774 if (!UNTAG_Bool(variable[7])) break; /*for*/
775 variable[7] = ((abstract_collection___Iterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*Iterator::item*/;
776 variable[8] = variable[7];
777 variable[10] = variable[3] /*pnames*/;
778 variable[11] = variable[8] /*i*/;
779 variable[13] = TAG_Bool(UNTAG_Int( variable[11] /*index*/)>=UNTAG_Int( TAG_Int(0)));
780 variable[14] = variable[13];
781 if (UNTAG_Bool(variable[14])) { /* and */
782 variable[14] = variable[10];
783 variable[14] = ATTR_array___AbstractArray____length(variable[14]) /*AbstractArray::_length*/;
784 variable[14] = TAG_Bool(UNTAG_Int( variable[11] /*index*/)<UNTAG_Int(variable[14]));
785 }
786 variable[13] = variable[14];
787 if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_base, 229); nit_exit(1);}
788 variable[13] = variable[10];
789 variable[13] = ATTR_array___Array____items(variable[13]) /*Array::_items*/;
790 variable[13] = UNBOX_NativeArray(variable[13])[UNTAG_Int( variable[11] /*index*/)];
791 variable[12] = variable[13];
792 goto return_label21;
793 return_label21: while(false);
794 variable[10] = variable[12];
795 variable[10] = ((symbol___String___to_symbol_t)CALL(variable[10],COLOR_symbol___String___to_symbol))(variable[10]) /*String::to_symbol*/;
796 variable[9] = variable[10];
797 variable[11] = NEW_PrimitiveInfo_compiling_base___PrimitiveInfo___init(); /*new PrimitiveInfo*/
798 variable[10] = variable[11];
799 ((compiling_base___PrimitiveInfo___name__eq_t)CALL( variable[10] /*pi*/,COLOR_compiling_base___PrimitiveInfo___name__eq))( variable[10] /*pi*/, variable[9] /*n*/) /*PrimitiveInfo::name=*/;
800 variable[11] = variable[4] /*tagged*/;
801 variable[12] = variable[8] /*i*/;
802 variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
803 variable[15] = variable[14];
804 if (UNTAG_Bool(variable[15])) { /* and */
805 variable[15] = variable[11];
806 variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
807 variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
808 }
809 variable[14] = variable[15];
810 if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_base, 229); nit_exit(1);}
811 variable[14] = variable[11];
812 variable[14] = ATTR_array___Array____items(variable[14]) /*Array::_items*/;
813 variable[14] = UNBOX_NativeArray(variable[14])[UNTAG_Int( variable[12] /*index*/)];
814 variable[13] = variable[14];
815 goto return_label22;
816 return_label22: while(false);
817 variable[11] = variable[13];
818 ((compiling_base___PrimitiveInfo___tagged__eq_t)CALL( variable[10] /*pi*/,COLOR_compiling_base___PrimitiveInfo___tagged__eq))( variable[10] /*pi*/, variable[11]) /*PrimitiveInfo::tagged=*/;
819 variable[11] = variable[5] /*cnames*/;
820 variable[12] = variable[8] /*i*/;
821 variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
822 variable[15] = variable[14];
823 if (UNTAG_Bool(variable[15])) { /* and */
824 variable[15] = variable[11];
825 variable[15] = ATTR_array___AbstractArray____length(variable[15]) /*AbstractArray::_length*/;
826 variable[15] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)<UNTAG_Int(variable[15]));
827 }
828 variable[14] = variable[15];
829 if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_compiling_base, 229); nit_exit(1);}
830 variable[14] = variable[11];
831 variable[14] = ATTR_array___Array____items(variable[14]) /*Array::_items*/;
832 variable[14] = UNBOX_NativeArray(variable[14])[UNTAG_Int( variable[12] /*index*/)];
833 variable[13] = variable[14];
834 goto return_label23;
835 return_label23: while(false);
836 variable[11] = variable[13];
837 ((compiling_base___PrimitiveInfo___cname__eq_t)CALL( variable[10] /*pi*/,COLOR_compiling_base___PrimitiveInfo___cname__eq))( variable[10] /*pi*/, variable[11]) /*PrimitiveInfo::cname=*/;
838 ((hash___HashMap_____braeq_t)CALL( variable[2] /*res*/,COLOR_abstract_collection___Map_____braeq))( variable[2] /*res*/, variable[9] /*n*/, variable[10] /*pi*/) /*HashMap::[]=*/;
839 continue_20: while(0);
840 ((abstract_collection___Iterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*Iterator::next*/;
841 }
842 break_20: while(0);
843 variable[1] = variable[2] /*res*/;
844 goto return_label19;
845 return_label19: while(false);
846 tracehead = trace.prev;
847 return variable[1];
848 }
849 val_t compiling_base___PrimitiveInfo___name(val_t self) {
850 struct trace_t trace = {NULL, NULL, 226, LOCATE_compiling_base___PrimitiveInfo___name};
851 val_t *variable = NULL;
852 void **closurevariable = NULL;
853 trace.prev = tracehead; tracehead = &trace;
854 trace.file = LOCATE_compiling_base;
855 tracehead = trace.prev;
856 return ATTR_compiling_base___PrimitiveInfo____name( self) /*PrimitiveInfo::_name*/;
857 }
858 void compiling_base___PrimitiveInfo___name__eq(val_t self, val_t param0) {
859 struct trace_t trace = {NULL, NULL, 226, LOCATE_compiling_base___PrimitiveInfo___name__eq};
860 val_t *variable = NULL;
861 void **closurevariable = NULL;
862 trace.prev = tracehead; tracehead = &trace;
863 trace.file = LOCATE_compiling_base;
864 ATTR_compiling_base___PrimitiveInfo____name( self) /*PrimitiveInfo::_name*/ = param0;
865 tracehead = trace.prev;
866 return;
867 }
868 val_t compiling_base___PrimitiveInfo___tagged(val_t self) {
869 struct trace_t trace = {NULL, NULL, 229, LOCATE_compiling_base___PrimitiveInfo___tagged};
870 val_t *variable = NULL;
871 void **closurevariable = NULL;
872 trace.prev = tracehead; tracehead = &trace;
873 trace.file = LOCATE_compiling_base;
874 tracehead = trace.prev;
875 return ATTR_compiling_base___PrimitiveInfo____tagged( self) /*PrimitiveInfo::_tagged*/;
876 }
877 void compiling_base___PrimitiveInfo___tagged__eq(val_t self, val_t param0) {
878 struct trace_t trace = {NULL, NULL, 229, LOCATE_compiling_base___PrimitiveInfo___tagged__eq};
879 val_t *variable = NULL;
880 void **closurevariable = NULL;
881 trace.prev = tracehead; tracehead = &trace;
882 trace.file = LOCATE_compiling_base;
883 ATTR_compiling_base___PrimitiveInfo____tagged( self) /*PrimitiveInfo::_tagged*/ = param0;
884 tracehead = trace.prev;
885 return;
886 }
887 val_t compiling_base___PrimitiveInfo___cname(val_t self) {
888 struct trace_t trace = {NULL, NULL, 232, LOCATE_compiling_base___PrimitiveInfo___cname};
889 val_t *variable = NULL;
890 void **closurevariable = NULL;
891 trace.prev = tracehead; tracehead = &trace;
892 trace.file = LOCATE_compiling_base;
893 tracehead = trace.prev;
894 return ATTR_compiling_base___PrimitiveInfo____cname( self) /*PrimitiveInfo::_cname*/;
895 }
896 void compiling_base___PrimitiveInfo___cname__eq(val_t self, val_t param0) {
897 struct trace_t trace = {NULL, NULL, 232, LOCATE_compiling_base___PrimitiveInfo___cname__eq};
898 val_t *variable = NULL;
899 void **closurevariable = NULL;
900 trace.prev = tracehead; tracehead = &trace;
901 trace.file = LOCATE_compiling_base;
902 ATTR_compiling_base___PrimitiveInfo____cname( self) /*PrimitiveInfo::_cname*/ = param0;
903 tracehead = trace.prev;
904 return;
905 }
906 void compiling_base___PrimitiveInfo___init(val_t self, int* init_table) {
907 struct trace_t trace = {NULL, NULL, 235, LOCATE_compiling_base___PrimitiveInfo___init};
908 val_t variable[2];
909 void **closurevariable = NULL;
910 trace.prev = tracehead; tracehead = &trace;
911 trace.file = LOCATE_compiling_base;
912 variable[0] = self;
913 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_PrimitiveInfo].i]) return;
914 return_label24: while(false);
915 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_PrimitiveInfo].i] = 1;
916 tracehead = trace.prev;
917 return;
918 }
919 val_t compiling_base___MMType___cname(val_t self) {
920 struct trace_t trace = {NULL, NULL, 239, LOCATE_compiling_base___MMType___cname};
921 val_t variable[4];
922 void **closurevariable = NULL;
923 trace.prev = tracehead; tracehead = &trace;
924 trace.file = LOCATE_compiling_base;
925 variable[0] = self;
926 variable[3] = variable[0];
927 variable[3] = ((static_type___MMType___local_class_t)CALL(variable[3],COLOR_static_type___MMType___local_class))(variable[3]) /*MMType::local_class*/;
928 variable[3] = ((compiling_base___MMLocalClass___primitive_info_t)CALL(variable[3],COLOR_compiling_base___MMLocalClass___primitive_info))(variable[3]) /*MMLocalClass::primitive_info*/;
929 variable[2] = variable[3];
930 variable[3] = TAG_Bool(( variable[2] /*pi*/ == NIT_NULL /*null*/) || (( variable[2] /*pi*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*pi*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*pi*/,COLOR_kernel___Object_____eqeq))( variable[2] /*pi*/, NIT_NULL /*null*/) /*Object::==*/)))));
931 if (UNTAG_Bool(variable[3])) { /*if*/
932 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("val_t"), TAG_Int(5)); /*new String*/
933 variable[1] = variable[3];
934 goto return_label25;
935 } else { /*if*/
936 variable[3] = ((compiling_base___PrimitiveInfo___cname_t)CALL( variable[2] /*pi*/,COLOR_compiling_base___PrimitiveInfo___cname))( variable[2] /*pi*/) /*PrimitiveInfo::cname*/;
937 variable[1] = variable[3];
938 goto return_label25;
939 }
940 return_label25: while(false);
941 tracehead = trace.prev;
942 return variable[1];
943 }
944 val_t compiling_base___MMType___default_cvalue(val_t self) {
945 struct trace_t trace = {NULL, NULL, 250, LOCATE_compiling_base___MMType___default_cvalue};
946 val_t variable[14];
947 void **closurevariable = NULL;
948 trace.prev = tracehead; tracehead = &trace;
949 trace.file = LOCATE_compiling_base;
950 variable[0] = self;
951 variable[3] = variable[0];
952 variable[3] = ((static_type___MMType___local_class_t)CALL(variable[3],COLOR_static_type___MMType___local_class))(variable[3]) /*MMType::local_class*/;
953 variable[3] = ((compiling_base___MMLocalClass___primitive_info_t)CALL(variable[3],COLOR_compiling_base___MMLocalClass___primitive_info))(variable[3]) /*MMLocalClass::primitive_info*/;
954 variable[2] = variable[3];
955 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*pi*/ == NIT_NULL /*null*/) || (( variable[2] /*pi*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*pi*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*pi*/,COLOR_kernel___Object_____eqeq))( variable[2] /*pi*/, NIT_NULL /*null*/) /*Object::==*/)))))));
956 variable[4] = variable[3];
957 if (UNTAG_Bool(variable[4])) { /* and */
958 variable[4] = ((compiling_base___PrimitiveInfo___tagged_t)CALL( variable[2] /*pi*/,COLOR_compiling_base___PrimitiveInfo___tagged))( variable[2] /*pi*/) /*PrimitiveInfo::tagged*/;
959 }
960 variable[3] = variable[4];
961 if (UNTAG_Bool(variable[3])) { /*if*/
962 variable[3] = NEW_String_string___String___init(); /*new String*/
963 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("TAG_"), TAG_Int(4)); /*new String*/
964 variable[5] = variable[4];
965 ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
966 variable[6] = variable[0];
967 variable[6] = ((static_type___MMType___local_class_t)CALL(variable[6],COLOR_static_type___MMType___local_class))(variable[6]) /*MMType::local_class*/;
968 variable[6] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___name))(variable[6]) /*MMLocalClass::name*/;
969 variable[7] = variable[6];
970 variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/;
971 ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
972 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("(("), TAG_Int(2)); /*new String*/
973 variable[9] = variable[8];
974 ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
975 variable[10] = ((compiling_base___PrimitiveInfo___cname_t)CALL( variable[2] /*pi*/,COLOR_compiling_base___PrimitiveInfo___cname))( variable[2] /*pi*/) /*PrimitiveInfo::cname*/;
976 variable[11] = variable[10];
977 ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[11]) /*String::append*/;
978 variable[12] = NEW_String_string___String___with_native(BOX_NativeString(")0)"), TAG_Int(3)); /*new String*/
979 variable[13] = variable[12];
980 ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[13]) /*String::append*/;
981 variable[1] = variable[3];
982 goto return_label26;
983 } else { /*if*/
984 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("NIT_NULL"), TAG_Int(8)); /*new String*/
985 variable[1] = variable[3];
986 goto return_label26;
987 }
988 return_label26: while(false);
989 tracehead = trace.prev;
990 return variable[1];
991 }
992 val_t compiling_base___MMType___boxtype(val_t self, val_t param0) {
993 struct trace_t trace = {NULL, NULL, 262, LOCATE_compiling_base___MMType___boxtype};
994 val_t variable[14];
995 void **closurevariable = NULL;
996 trace.prev = tracehead; tracehead = &trace;
997 trace.file = LOCATE_compiling_base;
998 variable[0] = self;
999 variable[1] = param0;
1000 variable[4] = variable[0];
1001 variable[4] = ((static_type___MMType___local_class_t)CALL(variable[4],COLOR_static_type___MMType___local_class))(variable[4]) /*MMType::local_class*/;
1002 variable[4] = ((compiling_base___MMLocalClass___primitive_info_t)CALL(variable[4],COLOR_compiling_base___MMLocalClass___primitive_info))(variable[4]) /*MMLocalClass::primitive_info*/;
1003 variable[3] = variable[4];
1004 variable[4] = TAG_Bool(( variable[3] /*pi*/ == NIT_NULL /*null*/) || (( variable[3] /*pi*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*pi*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*pi*/,COLOR_kernel___Object_____eqeq))( variable[3] /*pi*/, NIT_NULL /*null*/) /*Object::==*/)))));
1005 if (UNTAG_Bool(variable[4])) { /*if*/
1006 variable[2] = variable[1] /*s*/;
1007 goto return_label27;
1008 } else { /*if*/
1009 variable[4] = ((compiling_base___PrimitiveInfo___tagged_t)CALL( variable[3] /*pi*/,COLOR_compiling_base___PrimitiveInfo___tagged))( variable[3] /*pi*/) /*PrimitiveInfo::tagged*/;
1010 if (UNTAG_Bool(variable[4])) { /*if*/
1011 variable[4] = NEW_String_string___String___init(); /*new String*/
1012 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("TAG_"), TAG_Int(4)); /*new String*/
1013 variable[6] = variable[5];
1014 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
1015 variable[7] = variable[0];
1016 variable[7] = ((static_type___MMType___local_class_t)CALL(variable[7],COLOR_static_type___MMType___local_class))(variable[7]) /*MMType::local_class*/;
1017 variable[7] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___name))(variable[7]) /*MMLocalClass::name*/;
1018 variable[8] = variable[7];
1019 variable[8] = ((string___String___to_s_t)CALL(variable[8],COLOR_string___Object___to_s))(variable[8]) /*String::to_s*/;
1020 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/;
1021 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
1022 variable[10] = variable[9];
1023 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
1024 variable[11] = variable[1] /*s*/;
1025 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[11]) /*String::append*/;
1026 variable[12] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
1027 variable[13] = variable[12];
1028 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[13]) /*String::append*/;
1029 variable[2] = variable[4];
1030 goto return_label27;
1031 } else { /*if*/
1032 variable[4] = NEW_String_string___String___init(); /*new String*/
1033 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("BOX_"), TAG_Int(4)); /*new String*/
1034 variable[6] = variable[5];
1035 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
1036 variable[7] = variable[0];
1037 variable[7] = ((static_type___MMType___local_class_t)CALL(variable[7],COLOR_static_type___MMType___local_class))(variable[7]) /*MMType::local_class*/;
1038 variable[7] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___name))(variable[7]) /*MMLocalClass::name*/;
1039 variable[8] = variable[7];
1040 variable[8] = ((string___String___to_s_t)CALL(variable[8],COLOR_string___Object___to_s))(variable[8]) /*String::to_s*/;
1041 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/;
1042 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
1043 variable[10] = variable[9];
1044 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
1045 variable[11] = variable[1] /*s*/;
1046 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[11]) /*String::append*/;
1047 variable[12] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
1048 variable[13] = variable[12];
1049 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[13]) /*String::append*/;
1050 variable[2] = variable[4];
1051 goto return_label27;
1052 }
1053 }
1054 return_label27: while(false);
1055 tracehead = trace.prev;
1056 return variable[2];
1057 }
1058 val_t compiling_base___MMType___unboxtype(val_t self, val_t param0) {
1059 struct trace_t trace = {NULL, NULL, 276, LOCATE_compiling_base___MMType___unboxtype};
1060 val_t variable[14];
1061 void **closurevariable = NULL;
1062 trace.prev = tracehead; tracehead = &trace;
1063 trace.file = LOCATE_compiling_base;
1064 variable[0] = self;
1065 variable[1] = param0;
1066 variable[4] = variable[0];
1067 variable[4] = ((static_type___MMType___local_class_t)CALL(variable[4],COLOR_static_type___MMType___local_class))(variable[4]) /*MMType::local_class*/;
1068 variable[4] = ((compiling_base___MMLocalClass___primitive_info_t)CALL(variable[4],COLOR_compiling_base___MMLocalClass___primitive_info))(variable[4]) /*MMLocalClass::primitive_info*/;
1069 variable[3] = variable[4];
1070 variable[4] = TAG_Bool(( variable[3] /*pi*/ == NIT_NULL /*null*/) || (( variable[3] /*pi*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*pi*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*pi*/,COLOR_kernel___Object_____eqeq))( variable[3] /*pi*/, NIT_NULL /*null*/) /*Object::==*/)))));
1071 if (UNTAG_Bool(variable[4])) { /*if*/
1072 variable[2] = variable[1] /*s*/;
1073 goto return_label28;
1074 } else { /*if*/
1075 variable[4] = ((compiling_base___PrimitiveInfo___tagged_t)CALL( variable[3] /*pi*/,COLOR_compiling_base___PrimitiveInfo___tagged))( variable[3] /*pi*/) /*PrimitiveInfo::tagged*/;
1076 if (UNTAG_Bool(variable[4])) { /*if*/
1077 variable[4] = NEW_String_string___String___init(); /*new String*/
1078 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("UNTAG_"), TAG_Int(6)); /*new String*/
1079 variable[6] = variable[5];
1080 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
1081 variable[7] = variable[0];
1082 variable[7] = ((static_type___MMType___local_class_t)CALL(variable[7],COLOR_static_type___MMType___local_class))(variable[7]) /*MMType::local_class*/;
1083 variable[7] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___name))(variable[7]) /*MMLocalClass::name*/;
1084 variable[8] = variable[7];
1085 variable[8] = ((string___String___to_s_t)CALL(variable[8],COLOR_string___Object___to_s))(variable[8]) /*String::to_s*/;
1086 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/;
1087 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
1088 variable[10] = variable[9];
1089 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
1090 variable[11] = variable[1] /*s*/;
1091 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[11]) /*String::append*/;
1092 variable[12] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
1093 variable[13] = variable[12];
1094 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[13]) /*String::append*/;
1095 variable[2] = variable[4];
1096 goto return_label28;
1097 } else { /*if*/
1098 variable[4] = NEW_String_string___String___init(); /*new String*/
1099 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("UNBOX_"), TAG_Int(6)); /*new String*/
1100 variable[6] = variable[5];
1101 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
1102 variable[7] = variable[0];
1103 variable[7] = ((static_type___MMType___local_class_t)CALL(variable[7],COLOR_static_type___MMType___local_class))(variable[7]) /*MMType::local_class*/;
1104 variable[7] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___name))(variable[7]) /*MMLocalClass::name*/;
1105 variable[8] = variable[7];
1106 variable[8] = ((string___String___to_s_t)CALL(variable[8],COLOR_string___Object___to_s))(variable[8]) /*String::to_s*/;
1107 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/;
1108 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
1109 variable[10] = variable[9];
1110 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
1111 variable[11] = variable[1] /*s*/;
1112 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[11]) /*String::append*/;
1113 variable[12] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
1114 variable[13] = variable[12];
1115 ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[13]) /*String::append*/;
1116 variable[2] = variable[4];
1117 goto return_label28;
1118 }
1119 }
1120 return_label28: while(false);
1121 tracehead = trace.prev;
1122 return variable[2];
1123 }
1124 val_t compiling_base___MMLocalProperty___cname(val_t self) {
1125 struct trace_t trace = {NULL, NULL, 295, LOCATE_compiling_base___MMLocalProperty___cname};
1126 val_t variable[8];
1127 void **closurevariable = NULL;
1128 trace.prev = tracehead; tracehead = &trace;
1129 trace.file = LOCATE_compiling_base;
1130 variable[0] = self;
1131 variable[2] = variable[0];
1132 variable[2] = ATTR_compiling_base___MMLocalProperty____cname_cache(variable[2]) /*MMLocalProperty::_cname_cache*/;
1133 variable[2] = TAG_Bool((variable[2] == NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2], NIT_NULL /*null*/) /*String::==*/)));
1134 if (UNTAG_Bool(variable[2])) { /*if*/
1135 variable[2] = variable[0];
1136 variable[3] = variable[0];
1137 variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Symbol]*/
1138 variable[5] = variable[0];
1139 variable[5] = ((abstractmetamodel___MMLocalProperty___module_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalProperty___module))(variable[5]) /*MMLocalProperty::module*/;
1140 variable[5] = ((abstractmetamodel___MMModule___name_t)CALL(variable[5],COLOR_abstractmetamodel___MMModule___name))(variable[5]) /*MMModule::name*/;
1141 ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[5]) /*AbstractArray::add*/;
1142 variable[6] = variable[0];
1143 variable[6] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[6]) /*MMLocalProperty::local_class*/;
1144 variable[6] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___name))(variable[6]) /*MMLocalClass::name*/;
1145 ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[6]) /*AbstractArray::add*/;
1146 variable[7] = variable[0];
1147 variable[7] = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalProperty___name))(variable[7]) /*MMLocalProperty::name*/;
1148 ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[7]) /*AbstractArray::add*/;
1149 variable[3] = ((utils___Object___cmangle_t)CALL(variable[3],COLOR_utils___Object___cmangle))(variable[3], variable[4]) /*Object::cmangle*/;
1150 ATTR_compiling_base___MMLocalProperty____cname_cache(variable[2]) /*MMLocalProperty::_cname_cache*/ = variable[3];
1151 }
1152 variable[2] = variable[0];
1153 variable[2] = ATTR_compiling_base___MMLocalProperty____cname_cache(variable[2]) /*MMLocalProperty::_cname_cache*/;
1154 variable[1] = variable[2];
1155 goto return_label29;
1156 return_label29: while(false);
1157 tracehead = trace.prev;
1158 return variable[1];
1159 }
1160 val_t compiling_base___MMLocalProperty___color_id_for_super(val_t self) {
1161 struct trace_t trace = {NULL, NULL, 304, LOCATE_compiling_base___MMLocalProperty___color_id_for_super};
1162 val_t variable[9];
1163 void **closurevariable = NULL;
1164 trace.prev = tracehead; tracehead = &trace;
1165 trace.file = LOCATE_compiling_base;
1166 variable[0] = self;
1167 variable[2] = NEW_String_string___String___init(); /*new String*/
1168 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("COLOR_SUPER_"), TAG_Int(12)); /*new String*/
1169 variable[4] = variable[3];
1170 ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/;
1171 variable[5] = variable[0];
1172 variable[5] = ((compiling_base___MMLocalProperty___cname_t)CALL(variable[5],COLOR_compiling_base___MMLocalProperty___cname))(variable[5]) /*MMLocalProperty::cname*/;
1173 variable[6] = variable[5];
1174 ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/;
1175 variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1176 variable[8] = variable[7];
1177 ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/;
1178 variable[1] = variable[2];
1179 goto return_label30;
1180 return_label30: while(false);
1181 tracehead = trace.prev;
1182 return variable[1];
1183 }