new c_src
[nit.git] / c_src / abstractmetamodel._sep.c
1 /* This C file is generated by NIT to compile module abstractmetamodel. */
2 #include "abstractmetamodel._sep.h"
3 void abstractmetamodel___MMContext___init(val_t self, int* init_table) {
4 struct trace_t trace = {NULL, NULL, 26, LOCATE_abstractmetamodel___MMContext___init};
5 val_t variable[2];
6 void **closurevariable = NULL;
7 trace.prev = tracehead; tracehead = &trace;
8 trace.file = LOCATE_abstractmetamodel;
9 variable[0] = self;
10 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMContext].i]) return;
11 return_label0: while(false);
12 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMContext].i] = 1;
13 tracehead = trace.prev;
14 return;
15 }
16 val_t abstractmetamodel___MMContext___module_hierarchy(val_t self) {
17 struct trace_t trace = {NULL, NULL, 28, LOCATE_abstractmetamodel___MMContext___module_hierarchy};
18 val_t *variable = NULL;
19 void **closurevariable = NULL;
20 trace.prev = tracehead; tracehead = &trace;
21 trace.file = LOCATE_abstractmetamodel;
22 tracehead = trace.prev;
23 return ATTR_abstractmetamodel___MMContext____module_hierarchy( self) /*MMContext::_module_hierarchy*/;
24 }
25 val_t abstractmetamodel___MMContext___class_hierarchy(val_t self) {
26 struct trace_t trace = {NULL, NULL, 31, LOCATE_abstractmetamodel___MMContext___class_hierarchy};
27 val_t *variable = NULL;
28 void **closurevariable = NULL;
29 trace.prev = tracehead; tracehead = &trace;
30 trace.file = LOCATE_abstractmetamodel;
31 tracehead = trace.prev;
32 return ATTR_abstractmetamodel___MMContext____class_hierarchy( self) /*MMContext::_class_hierarchy*/;
33 }
34 val_t abstractmetamodel___MMContext___modules(val_t self) {
35 struct trace_t trace = {NULL, NULL, 38, LOCATE_abstractmetamodel___MMContext___modules};
36 val_t *variable = NULL;
37 void **closurevariable = NULL;
38 trace.prev = tracehead; tracehead = &trace;
39 trace.file = LOCATE_abstractmetamodel;
40 tracehead = trace.prev;
41 return ATTR_abstractmetamodel___MMContext____modules( self) /*MMContext::_modules*/;
42 }
43 void abstractmetamodel___MMContext___add_module(val_t self, val_t param0, val_t param1) {
44 struct trace_t trace = {NULL, NULL, 41, LOCATE_abstractmetamodel___MMContext___add_module};
45 val_t variable[6];
46 void **closurevariable = NULL;
47 trace.prev = tracehead; tracehead = &trace;
48 trace.file = LOCATE_abstractmetamodel;
49 variable[0] = self;
50 variable[1] = param0;
51 variable[2] = param1;
52 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*supers*/ == NIT_NULL /*null*/) || (( variable[2] /*supers*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*supers*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*supers*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*supers*/)( variable[2] /*supers*/, NIT_NULL /*null*/) /*Object::==*/)))))));
53 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMContext___add_module, LOCATE_abstractmetamodel, 44); nit_exit(1);}
54 variable[4] = variable[0];
55 variable[4] = ATTR_abstractmetamodel___MMContext____module_hierarchy(variable[4]) /*MMContext::_module_hierarchy*/;
56 variable[5] = variable[0];
57 variable[5] = ATTR_abstractmetamodel___MMContext____module_hierarchy(variable[5]) /*MMContext::_module_hierarchy*/;
58 variable[5] = CALL_partial_order___PartialOrder___select_smallests(variable[5])(variable[5], variable[2] /*supers*/) /*PartialOrder::select_smallests*/;
59 CALL_partial_order___PartialOrder___add(variable[4])(variable[4], variable[1] /*module*/, variable[5]) /*PartialOrder::add*/;
60 variable[4] = CALL_abstractmetamodel___MMModule___name( variable[1] /*module*/)( variable[1] /*module*/) /*MMModule::name*/;
61 variable[4] = TAG_Bool(!UNTAG_Bool(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::==*/)))))));
62 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMContext___add_module, LOCATE_abstractmetamodel, 46); nit_exit(1);}
63 variable[4] = variable[0];
64 variable[4] = ATTR_abstractmetamodel___MMContext____modules(variable[4]) /*MMContext::_modules*/;
65 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[1] /*module*/) /*AbstractArray::add*/;
66 variable[4] = variable[0];
67 variable[4] = ATTR_abstractmetamodel___MMContext____module_hierarchy(variable[4]) /*MMContext::_module_hierarchy*/;
68 variable[4] = CALL_partial_order___PartialOrder_____bra(variable[4])(variable[4], variable[1] /*module*/) /*PartialOrder::[]*/;
69 ATTR_abstractmetamodel___MMModule____mhe( variable[1] /*module*/) /*MMModule::_mhe*/ = variable[4];
70 return_label1: while(false);
71 tracehead = trace.prev;
72 return;
73 }
74 void abstractmetamodel___MMContext___add_global_class(val_t self, val_t param0) {
75 struct trace_t trace = {NULL, NULL, 51, LOCATE_abstractmetamodel___MMContext___add_global_class};
76 val_t variable[4];
77 void **closurevariable = NULL;
78 trace.prev = tracehead; tracehead = &trace;
79 trace.file = LOCATE_abstractmetamodel;
80 variable[0] = self;
81 variable[1] = param0;
82 variable[3] = variable[0];
83 variable[3] = ATTR_abstractmetamodel___MMContext____global_classes(variable[3]) /*MMContext::_global_classes*/;
84 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1] /*c*/) /*AbstractArray::add*/;
85 return_label2: while(false);
86 tracehead = trace.prev;
87 return;
88 }
89 void abstractmetamodel___MMContext___add_local_class(val_t self, val_t param0, val_t param1) {
90 struct trace_t trace = {NULL, NULL, 54, LOCATE_abstractmetamodel___MMContext___add_local_class};
91 val_t variable[13];
92 void **closurevariable = NULL;
93 trace.prev = tracehead; tracehead = &trace;
94 trace.file = LOCATE_abstractmetamodel;
95 variable[0] = self;
96 variable[1] = param0;
97 variable[2] = param1;
98 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*sup*/ == NIT_NULL /*null*/) || (( variable[2] /*sup*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*sup*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*sup*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*sup*/)( variable[2] /*sup*/, NIT_NULL /*null*/) /*Object::==*/)))))));
99 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMContext___add_local_class, LOCATE_abstractmetamodel, 57); nit_exit(1);}
100 variable[5] = NEW_Array_array___Array___init(); /*new Array[MMLocalClass]*/
101 variable[4] = variable[5];
102 variable[6] = NEW_Array_array___Array___init(); /*new Array[String]*/
103 variable[5] = variable[6];
104 variable[6] = CALL_abstract_collection___Collection___iterator( variable[2] /*sup*/)( variable[2] /*sup*/) /*AbstractArray::iterator*/;
105 while (true) { /*for*/
106 variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
107 if (!UNTAG_Bool(variable[7])) break; /*for*/
108 variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/;
109 variable[8] = variable[7];
110 variable[9] = TAG_Bool(( variable[8] /*s*/==NIT_NULL) || VAL_ISA( variable[8] /*s*/, COLOR_MMConcreteClass, ID_MMConcreteClass)) /*cast MMConcreteClass*/;
111 if (UNTAG_Bool(variable[9])) { /*if*/
112 CALL_abstract_collection___SimpleCollection___add( variable[4] /*csup*/)( variable[4] /*csup*/, variable[8] /*s*/) /*AbstractArray::add*/;
113 } else { /*if*/
114 variable[9] = CALL_abstractmetamodel___MMLocalClass___che( variable[8] /*s*/)( variable[8] /*s*/) /*MMLocalClass::che*/;
115 variable[9] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[9])(variable[9]) /*PartialOrderElement::direct_greaters*/;
116 variable[9] = CALL_abstract_collection___Collection___iterator(variable[9])(variable[9]) /*AbstractArray::iterator*/;
117 while (true) { /*for*/
118 variable[10] = CALL_abstract_collection___Iterator___is_ok(variable[9])(variable[9]) /*ArrayIterator::is_ok*/;
119 if (!UNTAG_Bool(variable[10])) break; /*for*/
120 variable[10] = CALL_abstract_collection___Iterator___item(variable[9])(variable[9]) /*ArrayIterator::item*/;
121 variable[11] = variable[10];
122 variable[12] = CALL_abstract_collection___Collection___has( variable[4] /*csup*/)( variable[4] /*csup*/, variable[11] /*ss*/) /*AbstractArray::has*/;
123 if (UNTAG_Bool(variable[12])) { /*if*/
124 goto continue_5;
125 }
126 CALL_abstract_collection___SimpleCollection___add( variable[4] /*csup*/)( variable[4] /*csup*/, variable[11] /*ss*/) /*AbstractArray::add*/;
127 continue_5: while(0);
128 CALL_abstract_collection___Iterator___next(variable[9])(variable[9]) /*ArrayIterator::next*/;
129 }
130 break_5: while(0);
131 }
132 continue_4: while(0);
133 CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
134 }
135 break_4: while(0);
136 variable[7] = variable[0];
137 variable[7] = ATTR_abstractmetamodel___MMContext____class_hierarchy(variable[7]) /*MMContext::_class_hierarchy*/;
138 variable[7] = CALL_partial_order___PartialOrder___add(variable[7])(variable[7], variable[1] /*c*/, variable[4] /*csup*/) /*PartialOrder::add*/;
139 variable[6] = variable[7];
140 ATTR_abstractmetamodel___MMLocalClass____che( variable[1] /*c*/) /*MMLocalClass::_che*/ = variable[6] /*che*/;
141 return_label3: while(false);
142 tracehead = trace.prev;
143 return;
144 }
145 val_t abstractmetamodel___MMDirectory___name(val_t self) {
146 struct trace_t trace = {NULL, NULL, 77, LOCATE_abstractmetamodel___MMDirectory___name};
147 val_t *variable = NULL;
148 void **closurevariable = NULL;
149 trace.prev = tracehead; tracehead = &trace;
150 trace.file = LOCATE_abstractmetamodel;
151 tracehead = trace.prev;
152 return ATTR_abstractmetamodel___MMDirectory____name( self) /*MMDirectory::_name*/;
153 }
154 val_t abstractmetamodel___MMDirectory___path(val_t self) {
155 struct trace_t trace = {NULL, NULL, 80, LOCATE_abstractmetamodel___MMDirectory___path};
156 val_t *variable = NULL;
157 void **closurevariable = NULL;
158 trace.prev = tracehead; tracehead = &trace;
159 trace.file = LOCATE_abstractmetamodel;
160 tracehead = trace.prev;
161 return ATTR_abstractmetamodel___MMDirectory____path( self) /*MMDirectory::_path*/;
162 }
163 val_t abstractmetamodel___MMDirectory___parent(val_t self) {
164 struct trace_t trace = {NULL, NULL, 83, LOCATE_abstractmetamodel___MMDirectory___parent};
165 val_t *variable = NULL;
166 void **closurevariable = NULL;
167 trace.prev = tracehead; tracehead = &trace;
168 trace.file = LOCATE_abstractmetamodel;
169 tracehead = trace.prev;
170 return ATTR_abstractmetamodel___MMDirectory____parent( self) /*MMDirectory::_parent*/;
171 }
172 val_t abstractmetamodel___MMDirectory___owner(val_t self) {
173 struct trace_t trace = {NULL, NULL, 87, LOCATE_abstractmetamodel___MMDirectory___owner};
174 val_t *variable = NULL;
175 void **closurevariable = NULL;
176 trace.prev = tracehead; tracehead = &trace;
177 trace.file = LOCATE_abstractmetamodel;
178 tracehead = trace.prev;
179 return ATTR_abstractmetamodel___MMDirectory____owner( self) /*MMDirectory::_owner*/;
180 }
181 void abstractmetamodel___MMDirectory___owner__eq(val_t self, val_t param0) {
182 struct trace_t trace = {NULL, NULL, 87, LOCATE_abstractmetamodel___MMDirectory___owner__eq};
183 val_t *variable = NULL;
184 void **closurevariable = NULL;
185 trace.prev = tracehead; tracehead = &trace;
186 trace.file = LOCATE_abstractmetamodel;
187 ATTR_abstractmetamodel___MMDirectory____owner( self) /*MMDirectory::_owner*/ = param0;
188 tracehead = trace.prev;
189 return;
190 }
191 val_t abstractmetamodel___MMDirectory___modules(val_t self) {
192 struct trace_t trace = {NULL, NULL, 90, LOCATE_abstractmetamodel___MMDirectory___modules};
193 val_t *variable = NULL;
194 void **closurevariable = NULL;
195 trace.prev = tracehead; tracehead = &trace;
196 trace.file = LOCATE_abstractmetamodel;
197 tracehead = trace.prev;
198 return ATTR_abstractmetamodel___MMDirectory____modules( self) /*MMDirectory::_modules*/;
199 }
200 void abstractmetamodel___MMDirectory___add_module(val_t self, val_t param0) {
201 struct trace_t trace = {NULL, NULL, 93, LOCATE_abstractmetamodel___MMDirectory___add_module};
202 val_t variable[5];
203 void **closurevariable = NULL;
204 trace.prev = tracehead; tracehead = &trace;
205 trace.file = LOCATE_abstractmetamodel;
206 variable[0] = self;
207 variable[1] = param0;
208 variable[3] = variable[0];
209 variable[3] = ATTR_abstractmetamodel___MMDirectory____modules(variable[3]) /*MMDirectory::_modules*/;
210 variable[4] = CALL_abstractmetamodel___MMModule___name( variable[1] /*module*/)( variable[1] /*module*/) /*MMModule::name*/;
211 variable[3] = CALL_abstract_collection___Map___has_key(variable[3])(variable[3], variable[4]) /*Map::has_key*/;
212 if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMDirectory___add_module, LOCATE_abstractmetamodel, 96); nit_exit(1);}
213 variable[3] = variable[0];
214 variable[3] = ATTR_abstractmetamodel___MMDirectory____modules(variable[3]) /*MMDirectory::_modules*/;
215 variable[4] = CALL_abstractmetamodel___MMModule___name( variable[1] /*module*/)( variable[1] /*module*/) /*MMModule::name*/;
216 CALL_abstract_collection___Map_____braeq(variable[3])(variable[3], variable[4], variable[1] /*module*/) /*Map::[]=*/;
217 return_label6: while(false);
218 tracehead = trace.prev;
219 return;
220 }
221 val_t abstractmetamodel___MMDirectory___dhe(val_t self) {
222 struct trace_t trace = {NULL, NULL, 100, LOCATE_abstractmetamodel___MMDirectory___dhe};
223 val_t *variable = NULL;
224 void **closurevariable = NULL;
225 trace.prev = tracehead; tracehead = &trace;
226 trace.file = LOCATE_abstractmetamodel;
227 tracehead = trace.prev;
228 return ATTR_abstractmetamodel___MMDirectory____dhe( self) /*MMDirectory::_dhe*/;
229 }
230 void abstractmetamodel___MMDirectory___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
231 struct trace_t trace = {NULL, NULL, 103, LOCATE_abstractmetamodel___MMDirectory___init};
232 val_t variable[6];
233 void **closurevariable = NULL;
234 trace.prev = tracehead; tracehead = &trace;
235 trace.file = LOCATE_abstractmetamodel;
236 variable[0] = self;
237 variable[1] = param0;
238 variable[2] = param1;
239 variable[3] = param2;
240 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMDirectory].i]) return;
241 variable[5] = variable[0];
242 ATTR_abstractmetamodel___MMDirectory____name(variable[5]) /*MMDirectory::_name*/ = variable[1] /*name*/;
243 variable[5] = variable[0];
244 ATTR_abstractmetamodel___MMDirectory____path(variable[5]) /*MMDirectory::_path*/ = variable[2] /*path*/;
245 variable[5] = variable[0];
246 ATTR_abstractmetamodel___MMDirectory____parent(variable[5]) /*MMDirectory::_parent*/ = variable[3] /*parent*/;
247 return_label7: while(false);
248 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMDirectory].i] = 1;
249 tracehead = trace.prev;
250 return;
251 }
252 val_t abstractmetamodel___MMDirectory___full_name_for(val_t self, val_t param0) {
253 struct trace_t trace = {NULL, NULL, 109, LOCATE_abstractmetamodel___MMDirectory___full_name_for};
254 val_t variable[13];
255 void **closurevariable = NULL;
256 trace.prev = tracehead; tracehead = &trace;
257 trace.file = LOCATE_abstractmetamodel;
258 variable[0] = self;
259 variable[1] = param0;
260 variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
261 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
262 variable[5] = variable[4];
263 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
264 variable[6] = variable[0];
265 variable[6] = CALL_abstractmetamodel___MMDirectory___name(variable[6])(variable[6]) /*MMDirectory::name*/;
266 variable[7] = variable[6];
267 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
268 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
269 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
270 variable[9] = variable[8];
271 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
272 variable[10] = variable[1] /*module_name*/;
273 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
274 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[10]) /*AbstractArray::add*/;
275 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
276 variable[12] = variable[11];
277 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[12]) /*AbstractArray::add*/;
278 variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
279 variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
280 variable[2] = variable[3];
281 goto return_label8;
282 return_label8: while(false);
283 tracehead = trace.prev;
284 return variable[2];
285 }
286 val_t abstractmetamodel___MMModule___to_s(val_t self) {
287 struct trace_t trace = {NULL, NULL, 257, LOCATE_abstractmetamodel___MMModule___to_s};
288 val_t variable[3];
289 void **closurevariable = NULL;
290 trace.prev = tracehead; tracehead = &trace;
291 trace.file = LOCATE_abstractmetamodel;
292 variable[0] = self;
293 variable[2] = variable[0];
294 variable[2] = CALL_abstractmetamodel___MMModule___name(variable[2])(variable[2]) /*MMModule::name*/;
295 variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Symbol::to_s*/;
296 variable[1] = variable[2];
297 goto return_label9;
298 return_label9: while(false);
299 tracehead = trace.prev;
300 return variable[1];
301 }
302 val_t abstractmetamodel___MMModule___context(val_t self) {
303 struct trace_t trace = {NULL, NULL, 117, LOCATE_abstractmetamodel___MMModule___context};
304 val_t *variable = NULL;
305 void **closurevariable = NULL;
306 trace.prev = tracehead; tracehead = &trace;
307 trace.file = LOCATE_abstractmetamodel;
308 tracehead = trace.prev;
309 return ATTR_abstractmetamodel___MMModule____context( self) /*MMModule::_context*/;
310 }
311 val_t abstractmetamodel___MMModule___name(val_t self) {
312 struct trace_t trace = {NULL, NULL, 120, LOCATE_abstractmetamodel___MMModule___name};
313 val_t *variable = NULL;
314 void **closurevariable = NULL;
315 trace.prev = tracehead; tracehead = &trace;
316 trace.file = LOCATE_abstractmetamodel;
317 tracehead = trace.prev;
318 return ATTR_abstractmetamodel___MMModule____name( self) /*MMModule::_name*/;
319 }
320 val_t abstractmetamodel___MMModule___full_name(val_t self) {
321 struct trace_t trace = {NULL, NULL, 123, LOCATE_abstractmetamodel___MMModule___full_name};
322 val_t *variable = NULL;
323 void **closurevariable = NULL;
324 trace.prev = tracehead; tracehead = &trace;
325 trace.file = LOCATE_abstractmetamodel;
326 tracehead = trace.prev;
327 return ATTR_abstractmetamodel___MMModule____full_name( self) /*MMModule::_full_name*/;
328 }
329 val_t abstractmetamodel___MMModule___directory(val_t self) {
330 struct trace_t trace = {NULL, NULL, 126, LOCATE_abstractmetamodel___MMModule___directory};
331 val_t *variable = NULL;
332 void **closurevariable = NULL;
333 trace.prev = tracehead; tracehead = &trace;
334 trace.file = LOCATE_abstractmetamodel;
335 tracehead = trace.prev;
336 return ATTR_abstractmetamodel___MMModule____directory( self) /*MMModule::_directory*/;
337 }
338 val_t abstractmetamodel___MMModule___mhe(val_t self) {
339 struct trace_t trace = {NULL, NULL, 129, LOCATE_abstractmetamodel___MMModule___mhe};
340 val_t *variable = NULL;
341 void **closurevariable = NULL;
342 trace.prev = tracehead; tracehead = &trace;
343 trace.file = LOCATE_abstractmetamodel;
344 tracehead = trace.prev;
345 return ATTR_abstractmetamodel___MMModule____mhe( self) /*MMModule::_mhe*/;
346 }
347 val_t abstractmetamodel___MMModule___global_classes(val_t self) {
348 struct trace_t trace = {NULL, NULL, 132, LOCATE_abstractmetamodel___MMModule___global_classes};
349 val_t *variable = NULL;
350 void **closurevariable = NULL;
351 trace.prev = tracehead; tracehead = &trace;
352 trace.file = LOCATE_abstractmetamodel;
353 tracehead = trace.prev;
354 return ATTR_abstractmetamodel___MMModule____global_classes( self) /*MMModule::_global_classes*/;
355 }
356 val_t abstractmetamodel___MMModule___local_classes(val_t self) {
357 struct trace_t trace = {NULL, NULL, 135, LOCATE_abstractmetamodel___MMModule___local_classes};
358 val_t *variable = NULL;
359 void **closurevariable = NULL;
360 trace.prev = tracehead; tracehead = &trace;
361 trace.file = LOCATE_abstractmetamodel;
362 tracehead = trace.prev;
363 return ATTR_abstractmetamodel___MMModule____local_classes( self) /*MMModule::_local_classes*/;
364 }
365 val_t abstractmetamodel___MMModule___class_specialization_hierarchy(val_t self) {
366 struct trace_t trace = {NULL, NULL, 138, LOCATE_abstractmetamodel___MMModule___class_specialization_hierarchy};
367 val_t *variable = NULL;
368 void **closurevariable = NULL;
369 trace.prev = tracehead; tracehead = &trace;
370 trace.file = LOCATE_abstractmetamodel;
371 tracehead = trace.prev;
372 return ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy( self) /*MMModule::_class_specialization_hierarchy*/;
373 }
374 val_t abstractmetamodel___MMModule___explicit_imported_modules(val_t self) {
375 struct trace_t trace = {NULL, NULL, 150, LOCATE_abstractmetamodel___MMModule___explicit_imported_modules};
376 val_t *variable = NULL;
377 void **closurevariable = NULL;
378 trace.prev = tracehead; tracehead = &trace;
379 trace.file = LOCATE_abstractmetamodel;
380 tracehead = trace.prev;
381 return ATTR_abstractmetamodel___MMModule____explicit_imported_modules( self) /*MMModule::_explicit_imported_modules*/;
382 }
383 void abstractmetamodel___MMModule___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
384 struct trace_t trace = {NULL, NULL, 159, LOCATE_abstractmetamodel___MMModule___init};
385 val_t variable[7];
386 void **closurevariable = NULL;
387 trace.prev = tracehead; tracehead = &trace;
388 trace.file = LOCATE_abstractmetamodel;
389 variable[0] = self;
390 variable[1] = param0;
391 variable[2] = param1;
392 variable[3] = param2;
393 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMModule].i]) return;
394 variable[5] = variable[0];
395 ATTR_abstractmetamodel___MMModule____name(variable[5]) /*MMModule::_name*/ = variable[1] /*name*/;
396 variable[5] = variable[0];
397 ATTR_abstractmetamodel___MMModule____directory(variable[5]) /*MMModule::_directory*/ = variable[2] /*dir*/;
398 variable[5] = variable[0];
399 ATTR_abstractmetamodel___MMModule____context(variable[5]) /*MMModule::_context*/ = variable[3] /*context*/;
400 variable[5] = TAG_Bool(( variable[2] /*dir*/ == NIT_NULL /*null*/) || (( variable[2] /*dir*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*dir*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*dir*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*dir*/)( variable[2] /*dir*/, NIT_NULL /*null*/) /*Object::==*/)))));
401 if (UNTAG_Bool(variable[5])) { /*if*/
402 variable[5] = variable[0];
403 ATTR_abstractmetamodel___MMModule____full_name(variable[5]) /*MMModule::_full_name*/ = variable[1] /*name*/;
404 } else { /*if*/
405 variable[5] = variable[0];
406 variable[6] = CALL_abstractmetamodel___MMDirectory___full_name_for( variable[2] /*dir*/)( variable[2] /*dir*/, variable[1] /*name*/) /*MMDirectory::full_name_for*/;
407 ATTR_abstractmetamodel___MMModule____full_name(variable[5]) /*MMModule::_full_name*/ = variable[6];
408 }
409 return_label10: while(false);
410 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMModule].i] = 1;
411 tracehead = trace.prev;
412 return;
413 }
414 void abstractmetamodel___MMModule___add_super_module(val_t self, val_t param0, val_t param1) {
415 struct trace_t trace = {NULL, NULL, 172, LOCATE_abstractmetamodel___MMModule___add_super_module};
416 val_t variable[6];
417 void **closurevariable = NULL;
418 trace.prev = tracehead; tracehead = &trace;
419 trace.file = LOCATE_abstractmetamodel;
420 variable[0] = self;
421 variable[1] = param0;
422 variable[2] = param1;
423 variable[4] = variable[0];
424 variable[4] = ATTR_abstractmetamodel___MMModule____explicit_imported_modules(variable[4]) /*MMModule::_explicit_imported_modules*/;
425 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[1] /*m*/) /*SimpleCollection::add*/;
426 variable[4] = TAG_Bool(( variable[2] /*visibility_level*/)==( TAG_Int(0)));
427 if (UNTAG_Bool(variable[4])) { /*if*/
428 variable[4] = variable[0];
429 variable[4] = ATTR_abstractmetamodel___MMModule____intrude_modules(variable[4]) /*MMModule::_intrude_modules*/;
430 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[1] /*m*/) /*SimpleCollection::add*/;
431 variable[4] = variable[0];
432 variable[4] = ATTR_abstractmetamodel___MMModule____intrude_modules(variable[4]) /*MMModule::_intrude_modules*/;
433 variable[5] = ATTR_abstractmetamodel___MMModule____intrude_modules( variable[1] /*m*/) /*MMModule::_intrude_modules*/;
434 CALL_abstract_collection___SimpleCollection___add_all(variable[4])(variable[4], variable[5]) /*SimpleCollection::add_all*/;
435 variable[4] = variable[0];
436 variable[4] = ATTR_abstractmetamodel___MMModule____public_modules(variable[4]) /*MMModule::_public_modules*/;
437 variable[5] = ATTR_abstractmetamodel___MMModule____public_modules( variable[1] /*m*/) /*MMModule::_public_modules*/;
438 CALL_abstract_collection___SimpleCollection___add_all(variable[4])(variable[4], variable[5]) /*SimpleCollection::add_all*/;
439 variable[4] = variable[0];
440 variable[4] = ATTR_abstractmetamodel___MMModule____private_modules(variable[4]) /*MMModule::_private_modules*/;
441 variable[5] = ATTR_abstractmetamodel___MMModule____private_modules( variable[1] /*m*/) /*MMModule::_private_modules*/;
442 CALL_abstract_collection___SimpleCollection___add_all(variable[4])(variable[4], variable[5]) /*SimpleCollection::add_all*/;
443 } else { /*if*/
444 variable[4] = TAG_Bool(( variable[2] /*visibility_level*/)==( TAG_Int(1)));
445 if (UNTAG_Bool(variable[4])) { /*if*/
446 variable[4] = variable[0];
447 variable[4] = ATTR_abstractmetamodel___MMModule____public_modules(variable[4]) /*MMModule::_public_modules*/;
448 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[1] /*m*/) /*SimpleCollection::add*/;
449 variable[4] = variable[0];
450 variable[4] = ATTR_abstractmetamodel___MMModule____public_modules(variable[4]) /*MMModule::_public_modules*/;
451 variable[5] = ATTR_abstractmetamodel___MMModule____intrude_modules( variable[1] /*m*/) /*MMModule::_intrude_modules*/;
452 CALL_abstract_collection___SimpleCollection___add_all(variable[4])(variable[4], variable[5]) /*SimpleCollection::add_all*/;
453 variable[4] = variable[0];
454 variable[4] = ATTR_abstractmetamodel___MMModule____public_modules(variable[4]) /*MMModule::_public_modules*/;
455 variable[5] = ATTR_abstractmetamodel___MMModule____public_modules( variable[1] /*m*/) /*MMModule::_public_modules*/;
456 CALL_abstract_collection___SimpleCollection___add_all(variable[4])(variable[4], variable[5]) /*SimpleCollection::add_all*/;
457 } else { /*if*/
458 variable[4] = variable[0];
459 variable[4] = ATTR_abstractmetamodel___MMModule____private_modules(variable[4]) /*MMModule::_private_modules*/;
460 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[1] /*m*/) /*SimpleCollection::add*/;
461 variable[4] = variable[0];
462 variable[4] = ATTR_abstractmetamodel___MMModule____private_modules(variable[4]) /*MMModule::_private_modules*/;
463 variable[5] = ATTR_abstractmetamodel___MMModule____intrude_modules( variable[1] /*m*/) /*MMModule::_intrude_modules*/;
464 CALL_abstract_collection___SimpleCollection___add_all(variable[4])(variable[4], variable[5]) /*SimpleCollection::add_all*/;
465 variable[4] = variable[0];
466 variable[4] = ATTR_abstractmetamodel___MMModule____private_modules(variable[4]) /*MMModule::_private_modules*/;
467 variable[5] = ATTR_abstractmetamodel___MMModule____public_modules( variable[1] /*m*/) /*MMModule::_public_modules*/;
468 CALL_abstract_collection___SimpleCollection___add_all(variable[4])(variable[4], variable[5]) /*SimpleCollection::add_all*/;
469 }
470 }
471 return_label11: while(false);
472 tracehead = trace.prev;
473 return;
474 }
475 val_t abstractmetamodel___MMModule___visibility_for(val_t self, val_t param0) {
476 struct trace_t trace = {NULL, NULL, 196, LOCATE_abstractmetamodel___MMModule___visibility_for};
477 val_t variable[5];
478 void **closurevariable = NULL;
479 trace.prev = tracehead; tracehead = &trace;
480 trace.file = LOCATE_abstractmetamodel;
481 variable[0] = self;
482 variable[1] = param0;
483 variable[3] = variable[0];
484 variable[3] = TAG_Bool(( variable[1] /*m*/ == variable[3]) || (( variable[1] /*m*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*m*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*m*/,variable[3])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*m*/)( variable[1] /*m*/, variable[3]) /*Object::==*/)))));
485 variable[4] = variable[3];
486 if (!UNTAG_Bool(variable[4])) { /* or */
487 variable[4] = variable[0];
488 variable[4] = ATTR_abstractmetamodel___MMModule____intrude_modules(variable[4]) /*MMModule::_intrude_modules*/;
489 variable[4] = CALL_abstract_collection___Collection___has(variable[4])(variable[4], variable[1] /*m*/) /*Collection::has*/;
490 }
491 variable[3] = variable[4];
492 if (UNTAG_Bool(variable[3])) { /*if*/
493 variable[2] = TAG_Int(3);
494 goto return_label12;
495 } else { /*if*/
496 variable[3] = variable[0];
497 variable[3] = ATTR_abstractmetamodel___MMModule____public_modules(variable[3]) /*MMModule::_public_modules*/;
498 variable[3] = CALL_abstract_collection___Collection___has(variable[3])(variable[3], variable[1] /*m*/) /*Collection::has*/;
499 if (UNTAG_Bool(variable[3])) { /*if*/
500 variable[2] = TAG_Int(2);
501 goto return_label12;
502 } else { /*if*/
503 variable[3] = variable[0];
504 variable[3] = ATTR_abstractmetamodel___MMModule____private_modules(variable[3]) /*MMModule::_private_modules*/;
505 variable[3] = CALL_abstract_collection___Collection___has(variable[3])(variable[3], variable[1] /*m*/) /*Collection::has*/;
506 if (UNTAG_Bool(variable[3])) { /*if*/
507 variable[2] = TAG_Int(1);
508 goto return_label12;
509 } else { /*if*/
510 variable[2] = TAG_Int(0);
511 goto return_label12;
512 }
513 }
514 }
515 return_label12: while(false);
516 tracehead = trace.prev;
517 return variable[2];
518 }
519 val_t abstractmetamodel___MMModule_____bra(val_t self, val_t param0) {
520 struct trace_t trace = {NULL, NULL, 215, LOCATE_abstractmetamodel___MMModule_____bra};
521 val_t variable[4];
522 void **closurevariable = NULL;
523 trace.prev = tracehead; tracehead = &trace;
524 trace.file = LOCATE_abstractmetamodel;
525 variable[0] = self;
526 variable[1] = param0;
527 variable[3] = variable[0];
528 variable[3] = ATTR_abstractmetamodel___MMModule____local_class_by_global(variable[3]) /*MMModule::_local_class_by_global*/;
529 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::==*/)))))));
530 if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMModule_____bra, LOCATE_abstractmetamodel, 218); nit_exit(1);}
531 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*c*/ == NIT_NULL /*null*/) || (( variable[1] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*c*/)( variable[1] /*c*/, NIT_NULL /*null*/) /*Object::==*/)))))));
532 if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMModule_____bra, LOCATE_abstractmetamodel, 219); nit_exit(1);}
533 variable[3] = variable[0];
534 variable[3] = ATTR_abstractmetamodel___MMModule____local_class_by_global(variable[3]) /*MMModule::_local_class_by_global*/;
535 variable[3] = CALL_abstract_collection___Map___has_key(variable[3])(variable[3], variable[1] /*c*/) /*Map::has_key*/;
536 if (UNTAG_Bool(variable[3])) { /*if*/
537 variable[3] = variable[0];
538 variable[3] = ATTR_abstractmetamodel___MMModule____local_class_by_global(variable[3]) /*MMModule::_local_class_by_global*/;
539 variable[3] = CALL_abstract_collection___Map_____bra(variable[3])(variable[3], variable[1] /*c*/) /*Map::[]*/;
540 variable[2] = variable[3];
541 goto return_label13;
542 } else { /*if*/
543 variable[2] = NIT_NULL /*null*/;
544 goto return_label13;
545 }
546 return_label13: while(false);
547 tracehead = trace.prev;
548 return variable[2];
549 }
550 void abstractmetamodel___MMModule___add_local_class(val_t self, val_t param0) {
551 struct trace_t trace = {NULL, NULL, 227, LOCATE_abstractmetamodel___MMModule___add_local_class};
552 val_t variable[4];
553 void **closurevariable = NULL;
554 trace.prev = tracehead; tracehead = &trace;
555 trace.file = LOCATE_abstractmetamodel;
556 variable[0] = self;
557 variable[1] = param0;
558 variable[3] = variable[0];
559 ATTR_abstractmetamodel___MMLocalClass____module( variable[1] /*c*/) /*MMLocalClass::_module*/ = variable[3];
560 variable[3] = variable[0];
561 variable[3] = ATTR_abstractmetamodel___MMModule____local_classes(variable[3]) /*MMModule::_local_classes*/;
562 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1] /*c*/) /*AbstractArray::add*/;
563 return_label14: while(false);
564 tracehead = trace.prev;
565 return;
566 }
567 val_t abstractmetamodel___MMModule___class_by_name(val_t self, val_t param0) {
568 struct trace_t trace = {NULL, NULL, 234, LOCATE_abstractmetamodel___MMModule___class_by_name};
569 val_t variable[5];
570 void **closurevariable = NULL;
571 trace.prev = tracehead; tracehead = &trace;
572 trace.file = LOCATE_abstractmetamodel;
573 variable[0] = self;
574 variable[1] = param0;
575 variable[3] = variable[0];
576 variable[4] = variable[0];
577 variable[4] = ATTR_abstractmetamodel___MMModule____global_class_by_name(variable[4]) /*MMModule::_global_class_by_name*/;
578 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[1] /*n*/) /*Map::[]*/;
579 variable[3] = CALL_abstractmetamodel___MMModule_____bra(variable[3])(variable[3], variable[4]) /*MMModule::[]*/;
580 variable[2] = variable[3];
581 goto return_label15;
582 return_label15: while(false);
583 tracehead = trace.prev;
584 return variable[2];
585 }
586 val_t abstractmetamodel___MMModule___has_global_class_named(val_t self, val_t param0) {
587 struct trace_t trace = {NULL, NULL, 240, LOCATE_abstractmetamodel___MMModule___has_global_class_named};
588 val_t variable[4];
589 void **closurevariable = NULL;
590 trace.prev = tracehead; tracehead = &trace;
591 trace.file = LOCATE_abstractmetamodel;
592 variable[0] = self;
593 variable[1] = param0;
594 variable[3] = variable[0];
595 variable[3] = ATTR_abstractmetamodel___MMModule____global_class_by_name(variable[3]) /*MMModule::_global_class_by_name*/;
596 variable[3] = CALL_abstract_collection___Map___has_key(variable[3])(variable[3], variable[1] /*n*/) /*Map::has_key*/;
597 variable[2] = variable[3];
598 goto return_label16;
599 return_label16: while(false);
600 tracehead = trace.prev;
601 return variable[2];
602 }
603 val_t abstractmetamodel___MMModule___global_class_named(val_t self, val_t param0) {
604 struct trace_t trace = {NULL, NULL, 246, LOCATE_abstractmetamodel___MMModule___global_class_named};
605 val_t variable[4];
606 void **closurevariable = NULL;
607 trace.prev = tracehead; tracehead = &trace;
608 trace.file = LOCATE_abstractmetamodel;
609 variable[0] = self;
610 variable[1] = param0;
611 variable[3] = variable[0];
612 variable[3] = ATTR_abstractmetamodel___MMModule____global_class_by_name(variable[3]) /*MMModule::_global_class_by_name*/;
613 variable[3] = CALL_abstract_collection___Map___has_key(variable[3])(variable[3], variable[1] /*n*/) /*Map::has_key*/;
614 if (UNTAG_Bool(variable[3])) { /*if*/
615 variable[3] = variable[0];
616 variable[3] = ATTR_abstractmetamodel___MMModule____global_class_by_name(variable[3]) /*MMModule::_global_class_by_name*/;
617 variable[3] = CALL_abstract_collection___Map_____bra(variable[3])(variable[3], variable[1] /*n*/) /*Map::[]*/;
618 variable[2] = variable[3];
619 goto return_label17;
620 } else { /*if*/
621 variable[2] = NIT_NULL /*null*/;
622 goto return_label17;
623 }
624 return_label17: while(false);
625 tracehead = trace.prev;
626 return variable[2];
627 }
628 void abstractmetamodel___MMModule___set_supers_class(val_t self, val_t param0, val_t param1) {
629 struct trace_t trace = {NULL, NULL, 259, LOCATE_abstractmetamodel___MMModule___set_supers_class};
630 val_t variable[7];
631 void **closurevariable = NULL;
632 trace.prev = tracehead; tracehead = &trace;
633 trace.file = LOCATE_abstractmetamodel;
634 variable[0] = self;
635 variable[1] = param0;
636 variable[2] = param1;
637 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*supers*/ == NIT_NULL /*null*/) || (( variable[2] /*supers*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*supers*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*supers*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*supers*/)( variable[2] /*supers*/, NIT_NULL /*null*/) /*Object::==*/)))))));
638 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMModule___set_supers_class, LOCATE_abstractmetamodel, 262); nit_exit(1);}
639 variable[5] = variable[0];
640 variable[5] = ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy(variable[5]) /*MMModule::_class_specialization_hierarchy*/;
641 variable[5] = CALL_partial_order___PartialOrder___select_smallests(variable[5])(variable[5], variable[2] /*supers*/) /*PartialOrder::select_smallests*/;
642 variable[4] = variable[5];
643 variable[5] = variable[0];
644 variable[5] = ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy(variable[5]) /*MMModule::_class_specialization_hierarchy*/;
645 variable[5] = CALL_partial_order___PartialOrder___add(variable[5])(variable[5], variable[1] /*c*/, variable[4] /*tab*/) /*PartialOrder::add*/;
646 ATTR_abstractmetamodel___MMLocalClass____cshe( variable[1] /*c*/) /*MMLocalClass::_cshe*/ = variable[5];
647 variable[6] = CALL_abstractmetamodel___MMLocalClass___crhe( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::crhe*/;
648 variable[6] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[6])(variable[6]) /*PartialOrderElement::direct_greaters*/;
649 variable[6] = CALL_array___Collection___to_a(variable[6])(variable[6]) /*Collection::to_a*/;
650 variable[5] = variable[6];
651 CALL_abstract_collection___SimpleCollection___add_all( variable[5] /*tab_all*/)( variable[5] /*tab_all*/, variable[4] /*tab*/) /*SimpleCollection::add_all*/;
652 variable[6] = variable[0];
653 variable[6] = CALL_abstractmetamodel___MMModule___context(variable[6])(variable[6]) /*MMModule::context*/;
654 CALL_abstractmetamodel___MMContext___add_local_class(variable[6])(variable[6], variable[1] /*c*/, variable[5] /*tab_all*/) /*MMContext::add_local_class*/;
655 return_label18: while(false);
656 tracehead = trace.prev;
657 return;
658 }
659 void abstractmetamodel___MMModule___register_global_class(val_t self, val_t param0) {
660 struct trace_t trace = {NULL, NULL, 270, LOCATE_abstractmetamodel___MMModule___register_global_class};
661 val_t variable[5];
662 void **closurevariable = NULL;
663 trace.prev = tracehead; tracehead = &trace;
664 trace.file = LOCATE_abstractmetamodel;
665 variable[0] = self;
666 variable[1] = param0;
667 variable[3] = CALL_abstractmetamodel___MMLocalClass___global( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::global*/;
668 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::==*/)))))));
669 if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMModule___register_global_class, LOCATE_abstractmetamodel, 273); nit_exit(1);}
670 variable[3] = variable[0];
671 variable[3] = ATTR_abstractmetamodel___MMModule____local_class_by_global(variable[3]) /*MMModule::_local_class_by_global*/;
672 variable[4] = CALL_abstractmetamodel___MMLocalClass___global( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::global*/;
673 CALL_abstract_collection___Map_____braeq(variable[3])(variable[3], variable[4], variable[1] /*c*/) /*Map::[]=*/;
674 return_label19: while(false);
675 tracehead = trace.prev;
676 return;
677 }
678 val_t abstractmetamodel___MMGlobalClass___to_s(val_t self) {
679 struct trace_t trace = {NULL, NULL, 305, LOCATE_abstractmetamodel___MMGlobalClass___to_s};
680 val_t variable[3];
681 void **closurevariable = NULL;
682 trace.prev = tracehead; tracehead = &trace;
683 trace.file = LOCATE_abstractmetamodel;
684 variable[0] = self;
685 variable[2] = variable[0];
686 variable[2] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[2])(variable[2]) /*MMGlobalClass::intro*/;
687 variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*MMLocalClass::to_s*/;
688 variable[1] = variable[2];
689 goto return_label20;
690 return_label20: while(false);
691 tracehead = trace.prev;
692 return variable[1];
693 }
694 val_t abstractmetamodel___MMGlobalClass___intro(val_t self) {
695 struct trace_t trace = {NULL, NULL, 279, LOCATE_abstractmetamodel___MMGlobalClass___intro};
696 val_t *variable = NULL;
697 void **closurevariable = NULL;
698 trace.prev = tracehead; tracehead = &trace;
699 trace.file = LOCATE_abstractmetamodel;
700 tracehead = trace.prev;
701 return ATTR_abstractmetamodel___MMGlobalClass____intro( self) /*MMGlobalClass::_intro*/;
702 }
703 val_t abstractmetamodel___MMGlobalClass___class_refinement_hierarchy(val_t self) {
704 struct trace_t trace = {NULL, NULL, 282, LOCATE_abstractmetamodel___MMGlobalClass___class_refinement_hierarchy};
705 val_t *variable = NULL;
706 void **closurevariable = NULL;
707 trace.prev = tracehead; tracehead = &trace;
708 trace.file = LOCATE_abstractmetamodel;
709 tracehead = trace.prev;
710 return ATTR_abstractmetamodel___MMGlobalClass____class_refinement_hierarchy( self) /*MMGlobalClass::_class_refinement_hierarchy*/;
711 }
712 void abstractmetamodel___MMGlobalClass___init(val_t self, val_t param0, int* init_table) {
713 struct trace_t trace = {NULL, NULL, 286, LOCATE_abstractmetamodel___MMGlobalClass___init};
714 val_t variable[5];
715 void **closurevariable = NULL;
716 trace.prev = tracehead; tracehead = &trace;
717 trace.file = LOCATE_abstractmetamodel;
718 variable[0] = self;
719 variable[1] = param0;
720 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMGlobalClass].i]) return;
721 variable[3] = variable[0];
722 ATTR_abstractmetamodel___MMGlobalClass____intro(variable[3]) /*MMGlobalClass::_intro*/ = variable[1] /*c*/;
723 variable[3] = CALL_abstractmetamodel___MMLocalClass___context( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::context*/;
724 variable[4] = variable[0];
725 CALL_abstractmetamodel___MMContext___add_global_class(variable[3])(variable[3], variable[4]) /*MMContext::add_global_class*/;
726 return_label21: while(false);
727 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMGlobalClass].i] = 1;
728 tracehead = trace.prev;
729 return;
730 }
731 val_t abstractmetamodel___MMGlobalClass___name(val_t self) {
732 struct trace_t trace = {NULL, NULL, 293, LOCATE_abstractmetamodel___MMGlobalClass___name};
733 val_t variable[3];
734 void **closurevariable = NULL;
735 trace.prev = tracehead; tracehead = &trace;
736 trace.file = LOCATE_abstractmetamodel;
737 variable[0] = self;
738 variable[2] = variable[0];
739 variable[2] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[2])(variable[2]) /*MMGlobalClass::intro*/;
740 variable[2] = CALL_abstractmetamodel___MMLocalClass___name(variable[2])(variable[2]) /*MMLocalClass::name*/;
741 variable[1] = variable[2];
742 goto return_label22;
743 return_label22: while(false);
744 tracehead = trace.prev;
745 return variable[1];
746 }
747 val_t abstractmetamodel___MMGlobalClass___module(val_t self) {
748 struct trace_t trace = {NULL, NULL, 299, LOCATE_abstractmetamodel___MMGlobalClass___module};
749 val_t variable[3];
750 void **closurevariable = NULL;
751 trace.prev = tracehead; tracehead = &trace;
752 trace.file = LOCATE_abstractmetamodel;
753 variable[0] = self;
754 variable[2] = variable[0];
755 variable[2] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[2])(variable[2]) /*MMGlobalClass::intro*/;
756 variable[2] = CALL_abstractmetamodel___MMLocalClass___module(variable[2])(variable[2]) /*MMLocalClass::module*/;
757 variable[1] = variable[2];
758 goto return_label23;
759 return_label23: while(false);
760 tracehead = trace.prev;
761 return variable[1];
762 }
763 void abstractmetamodel___MMGlobalClass___register_local_class(val_t self, val_t param0) {
764 struct trace_t trace = {NULL, NULL, 310, LOCATE_abstractmetamodel___MMGlobalClass___register_local_class};
765 val_t variable[9];
766 void **closurevariable = NULL;
767 trace.prev = tracehead; tracehead = &trace;
768 trace.file = LOCATE_abstractmetamodel;
769 variable[0] = self;
770 variable[1] = param0;
771 variable[3] = CALL_abstractmetamodel___MMLocalClass___module( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::module*/;
772 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::==*/)))))));
773 if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMGlobalClass___register_local_class, LOCATE_abstractmetamodel, 313); nit_exit(1);}
774 variable[3] = CALL_abstractmetamodel___MMLocalClass___crhe( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::crhe*/;
775 variable[3] = 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::==*/)))));
776 if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMGlobalClass___register_local_class, LOCATE_abstractmetamodel, 314); nit_exit(1);}
777 variable[4] = NEW_Array_array___Array___init(); /*new Array[MMLocalClass]*/
778 variable[3] = variable[4];
779 variable[4] = variable[0];
780 variable[4] = CALL_abstractmetamodel___MMGlobalClass___class_refinement_hierarchy(variable[4])(variable[4]) /*MMGlobalClass::class_refinement_hierarchy*/;
781 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*PartialOrder::iterator*/;
782 while (true) { /*for*/
783 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
784 if (!UNTAG_Bool(variable[5])) break; /*for*/
785 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
786 variable[6] = variable[5];
787 variable[7] = CALL_abstractmetamodel___MMLocalClass___module( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::module*/;
788 variable[7] = CALL_abstractmetamodel___MMModule___mhe(variable[7])(variable[7]) /*MMModule::mhe*/;
789 variable[8] = CALL_abstractmetamodel___MMLocalClass___module( variable[6] /*s*/)( variable[6] /*s*/) /*MMLocalClass::module*/;
790 variable[7] = CALL_partial_order___PartialOrderElement_____l(variable[7])(variable[7], variable[8]) /*PartialOrderElement::<*/;
791 variable[8] = variable[7];
792 if (UNTAG_Bool(variable[8])) { /* and */
793 variable[8] = TAG_Bool(( variable[6] /*s*/==NIT_NULL) || VAL_ISA( variable[6] /*s*/, COLOR_MMConcreteClass, ID_MMConcreteClass)) /*cast MMConcreteClass*/;
794 }
795 variable[7] = variable[8];
796 if (UNTAG_Bool(variable[7])) { /*if*/
797 CALL_abstract_collection___SimpleCollection___add( variable[3] /*sup*/)( variable[3] /*sup*/, variable[6] /*s*/) /*AbstractArray::add*/;
798 }
799 continue_25: while(0);
800 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
801 }
802 break_25: while(0);
803 variable[4] = variable[0];
804 variable[4] = ATTR_abstractmetamodel___MMGlobalClass____class_refinement_hierarchy(variable[4]) /*MMGlobalClass::_class_refinement_hierarchy*/;
805 variable[4] = CALL_partial_order___PartialOrder___add(variable[4])(variable[4], variable[1] /*c*/, variable[3] /*sup*/) /*PartialOrder::add*/;
806 ATTR_abstractmetamodel___MMLocalClass____crhe( variable[1] /*c*/) /*MMLocalClass::_crhe*/ = variable[4];
807 return_label24: while(false);
808 tracehead = trace.prev;
809 return;
810 }
811 val_t abstractmetamodel___MMGlobalClass___is_interface(val_t self) {
812 struct trace_t trace = {NULL, NULL, 324, LOCATE_abstractmetamodel___MMGlobalClass___is_interface};
813 val_t *variable = NULL;
814 void **closurevariable = NULL;
815 trace.prev = tracehead; tracehead = &trace;
816 trace.file = LOCATE_abstractmetamodel;
817 tracehead = trace.prev;
818 return ATTR_abstractmetamodel___MMGlobalClass____is_interface( self) /*MMGlobalClass::_is_interface*/;
819 }
820 void abstractmetamodel___MMGlobalClass___is_interface__eq(val_t self, val_t param0) {
821 struct trace_t trace = {NULL, NULL, 324, LOCATE_abstractmetamodel___MMGlobalClass___is_interface__eq};
822 val_t *variable = NULL;
823 void **closurevariable = NULL;
824 trace.prev = tracehead; tracehead = &trace;
825 trace.file = LOCATE_abstractmetamodel;
826 ATTR_abstractmetamodel___MMGlobalClass____is_interface( self) /*MMGlobalClass::_is_interface*/ = param0;
827 tracehead = trace.prev;
828 return;
829 }
830 val_t abstractmetamodel___MMGlobalClass___is_abstract(val_t self) {
831 struct trace_t trace = {NULL, NULL, 327, LOCATE_abstractmetamodel___MMGlobalClass___is_abstract};
832 val_t *variable = NULL;
833 void **closurevariable = NULL;
834 trace.prev = tracehead; tracehead = &trace;
835 trace.file = LOCATE_abstractmetamodel;
836 tracehead = trace.prev;
837 return ATTR_abstractmetamodel___MMGlobalClass____is_abstract( self) /*MMGlobalClass::_is_abstract*/;
838 }
839 void abstractmetamodel___MMGlobalClass___is_abstract__eq(val_t self, val_t param0) {
840 struct trace_t trace = {NULL, NULL, 327, LOCATE_abstractmetamodel___MMGlobalClass___is_abstract__eq};
841 val_t *variable = NULL;
842 void **closurevariable = NULL;
843 trace.prev = tracehead; tracehead = &trace;
844 trace.file = LOCATE_abstractmetamodel;
845 ATTR_abstractmetamodel___MMGlobalClass____is_abstract( self) /*MMGlobalClass::_is_abstract*/ = param0;
846 tracehead = trace.prev;
847 return;
848 }
849 val_t abstractmetamodel___MMGlobalClass___is_universal(val_t self) {
850 struct trace_t trace = {NULL, NULL, 330, LOCATE_abstractmetamodel___MMGlobalClass___is_universal};
851 val_t *variable = NULL;
852 void **closurevariable = NULL;
853 trace.prev = tracehead; tracehead = &trace;
854 trace.file = LOCATE_abstractmetamodel;
855 tracehead = trace.prev;
856 return ATTR_abstractmetamodel___MMGlobalClass____is_universal( self) /*MMGlobalClass::_is_universal*/;
857 }
858 void abstractmetamodel___MMGlobalClass___is_universal__eq(val_t self, val_t param0) {
859 struct trace_t trace = {NULL, NULL, 330, LOCATE_abstractmetamodel___MMGlobalClass___is_universal__eq};
860 val_t *variable = NULL;
861 void **closurevariable = NULL;
862 trace.prev = tracehead; tracehead = &trace;
863 trace.file = LOCATE_abstractmetamodel;
864 ATTR_abstractmetamodel___MMGlobalClass____is_universal( self) /*MMGlobalClass::_is_universal*/ = param0;
865 tracehead = trace.prev;
866 return;
867 }
868 val_t abstractmetamodel___MMGlobalClass___visibility_level(val_t self) {
869 struct trace_t trace = {NULL, NULL, 333, LOCATE_abstractmetamodel___MMGlobalClass___visibility_level};
870 val_t *variable = NULL;
871 void **closurevariable = NULL;
872 trace.prev = tracehead; tracehead = &trace;
873 trace.file = LOCATE_abstractmetamodel;
874 tracehead = trace.prev;
875 return ATTR_abstractmetamodel___MMGlobalClass____visibility_level( self) /*MMGlobalClass::_visibility_level*/;
876 }
877 void abstractmetamodel___MMGlobalClass___visibility_level__eq(val_t self, val_t param0) {
878 struct trace_t trace = {NULL, NULL, 333, LOCATE_abstractmetamodel___MMGlobalClass___visibility_level__eq};
879 val_t *variable = NULL;
880 void **closurevariable = NULL;
881 trace.prev = tracehead; tracehead = &trace;
882 trace.file = LOCATE_abstractmetamodel;
883 ATTR_abstractmetamodel___MMGlobalClass____visibility_level( self) /*MMGlobalClass::_visibility_level*/ = param0;
884 tracehead = trace.prev;
885 return;
886 }
887 val_t abstractmetamodel___MMGlobalClass___is_mixin(val_t self) {
888 struct trace_t trace = {NULL, NULL, 338, LOCATE_abstractmetamodel___MMGlobalClass___is_mixin};
889 val_t variable[4];
890 void **closurevariable = NULL;
891 trace.prev = tracehead; tracehead = &trace;
892 trace.file = LOCATE_abstractmetamodel;
893 variable[0] = self;
894 variable[2] = variable[0];
895 variable[2] = ATTR_abstractmetamodel___MMGlobalClass____mixin_of(variable[2]) /*MMGlobalClass::_mixin_of*/;
896 variable[3] = variable[0];
897 variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] == variable[3]) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2],variable[3])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2], variable[3]) /*Object::==*/)))))));
898 variable[1] = variable[2];
899 goto return_label26;
900 return_label26: while(false);
901 tracehead = trace.prev;
902 return variable[1];
903 }
904 val_t abstractmetamodel___MMGlobalClass___mixin_of(val_t self) {
905 struct trace_t trace = {NULL, NULL, 345, LOCATE_abstractmetamodel___MMGlobalClass___mixin_of};
906 val_t *variable = NULL;
907 void **closurevariable = NULL;
908 trace.prev = tracehead; tracehead = &trace;
909 trace.file = LOCATE_abstractmetamodel;
910 tracehead = trace.prev;
911 return ATTR_abstractmetamodel___MMGlobalClass____mixin_of( self) /*MMGlobalClass::_mixin_of*/;
912 }
913 void abstractmetamodel___MMGlobalClass___mixin_of__eq(val_t self, val_t param0) {
914 struct trace_t trace = {NULL, NULL, 345, LOCATE_abstractmetamodel___MMGlobalClass___mixin_of__eq};
915 val_t *variable = NULL;
916 void **closurevariable = NULL;
917 trace.prev = tracehead; tracehead = &trace;
918 trace.file = LOCATE_abstractmetamodel;
919 ATTR_abstractmetamodel___MMGlobalClass____mixin_of( self) /*MMGlobalClass::_mixin_of*/ = param0;
920 tracehead = trace.prev;
921 return;
922 }
923 val_t abstractmetamodel___MMLocalClass___to_s(val_t self) {
924 struct trace_t trace = {NULL, NULL, 540, LOCATE_abstractmetamodel___MMLocalClass___to_s};
925 val_t variable[3];
926 void **closurevariable = NULL;
927 trace.prev = tracehead; tracehead = &trace;
928 trace.file = LOCATE_abstractmetamodel;
929 variable[0] = self;
930 variable[2] = variable[0];
931 variable[2] = ATTR_abstractmetamodel___MMLocalClass____name(variable[2]) /*MMLocalClass::_name*/;
932 variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Symbol::to_s*/;
933 variable[1] = variable[2];
934 goto return_label27;
935 return_label27: while(false);
936 tracehead = trace.prev;
937 return variable[1];
938 }
939 val_t abstractmetamodel___MMLocalClass___name(val_t self) {
940 struct trace_t trace = {NULL, NULL, 354, LOCATE_abstractmetamodel___MMLocalClass___name};
941 val_t *variable = NULL;
942 void **closurevariable = NULL;
943 trace.prev = tracehead; tracehead = &trace;
944 trace.file = LOCATE_abstractmetamodel;
945 tracehead = trace.prev;
946 return ATTR_abstractmetamodel___MMLocalClass____name( self) /*MMLocalClass::_name*/;
947 }
948 val_t abstractmetamodel___MMLocalClass___arity(val_t self) {
949 struct trace_t trace = {NULL, NULL, 357, LOCATE_abstractmetamodel___MMLocalClass___arity};
950 val_t *variable = NULL;
951 void **closurevariable = NULL;
952 trace.prev = tracehead; tracehead = &trace;
953 trace.file = LOCATE_abstractmetamodel;
954 tracehead = trace.prev;
955 return ATTR_abstractmetamodel___MMLocalClass____arity( self) /*MMLocalClass::_arity*/;
956 }
957 val_t abstractmetamodel___MMLocalClass___module(val_t self) {
958 struct trace_t trace = {NULL, NULL, 361, LOCATE_abstractmetamodel___MMLocalClass___module};
959 val_t *variable = NULL;
960 void **closurevariable = NULL;
961 trace.prev = tracehead; tracehead = &trace;
962 trace.file = LOCATE_abstractmetamodel;
963 tracehead = trace.prev;
964 return ATTR_abstractmetamodel___MMLocalClass____module( self) /*MMLocalClass::_module*/;
965 }
966 val_t abstractmetamodel___MMLocalClass___global(val_t self) {
967 struct trace_t trace = {NULL, NULL, 364, LOCATE_abstractmetamodel___MMLocalClass___global};
968 val_t *variable = NULL;
969 void **closurevariable = NULL;
970 trace.prev = tracehead; tracehead = &trace;
971 trace.file = LOCATE_abstractmetamodel;
972 tracehead = trace.prev;
973 return ATTR_abstractmetamodel___MMLocalClass____global( self) /*MMLocalClass::_global*/;
974 }
975 val_t abstractmetamodel___MMLocalClass___crhe(val_t self) {
976 struct trace_t trace = {NULL, NULL, 367, LOCATE_abstractmetamodel___MMLocalClass___crhe};
977 val_t *variable = NULL;
978 void **closurevariable = NULL;
979 trace.prev = tracehead; tracehead = &trace;
980 trace.file = LOCATE_abstractmetamodel;
981 tracehead = trace.prev;
982 return ATTR_abstractmetamodel___MMLocalClass____crhe( self) /*MMLocalClass::_crhe*/;
983 }
984 val_t abstractmetamodel___MMLocalClass___cshe(val_t self) {
985 struct trace_t trace = {NULL, NULL, 370, LOCATE_abstractmetamodel___MMLocalClass___cshe};
986 val_t *variable = NULL;
987 void **closurevariable = NULL;
988 trace.prev = tracehead; tracehead = &trace;
989 trace.file = LOCATE_abstractmetamodel;
990 tracehead = trace.prev;
991 return ATTR_abstractmetamodel___MMLocalClass____cshe( self) /*MMLocalClass::_cshe*/;
992 }
993 val_t abstractmetamodel___MMLocalClass___che(val_t self) {
994 struct trace_t trace = {NULL, NULL, 373, LOCATE_abstractmetamodel___MMLocalClass___che};
995 val_t *variable = NULL;
996 void **closurevariable = NULL;
997 trace.prev = tracehead; tracehead = &trace;
998 trace.file = LOCATE_abstractmetamodel;
999 tracehead = trace.prev;
1000 return ATTR_abstractmetamodel___MMLocalClass____che( self) /*MMLocalClass::_che*/;
1001 }
1002 val_t abstractmetamodel___MMLocalClass___local_property_by_global(val_t self) {
1003 struct trace_t trace = {NULL, NULL, 376, LOCATE_abstractmetamodel___MMLocalClass___local_property_by_global};
1004 val_t *variable = NULL;
1005 void **closurevariable = NULL;
1006 trace.prev = tracehead; tracehead = &trace;
1007 trace.file = LOCATE_abstractmetamodel;
1008 tracehead = trace.prev;
1009 return ATTR_abstractmetamodel___MMLocalClass____local_property_by_global( self) /*MMLocalClass::_local_property_by_global*/;
1010 }
1011 val_t abstractmetamodel___MMLocalClass___global_properties(val_t self) {
1012 struct trace_t trace = {NULL, NULL, 379, LOCATE_abstractmetamodel___MMLocalClass___global_properties};
1013 val_t *variable = NULL;
1014 void **closurevariable = NULL;
1015 trace.prev = tracehead; tracehead = &trace;
1016 trace.file = LOCATE_abstractmetamodel;
1017 tracehead = trace.prev;
1018 return ATTR_abstractmetamodel___MMLocalClass____global_properties( self) /*MMLocalClass::_global_properties*/;
1019 }
1020 val_t abstractmetamodel___MMLocalClass___properties_by_name(val_t self) {
1021 struct trace_t trace = {NULL, NULL, 382, LOCATE_abstractmetamodel___MMLocalClass___properties_by_name};
1022 val_t *variable = NULL;
1023 void **closurevariable = NULL;
1024 trace.prev = tracehead; tracehead = &trace;
1025 trace.file = LOCATE_abstractmetamodel;
1026 tracehead = trace.prev;
1027 return ATTR_abstractmetamodel___MMLocalClass____properties_by_name( self) /*MMLocalClass::_properties_by_name*/;
1028 }
1029 void abstractmetamodel___MMLocalClass___init(val_t self, val_t param0, val_t param1, int* init_table) {
1030 struct trace_t trace = {NULL, NULL, 385, LOCATE_abstractmetamodel___MMLocalClass___init};
1031 val_t variable[5];
1032 void **closurevariable = NULL;
1033 trace.prev = tracehead; tracehead = &trace;
1034 trace.file = LOCATE_abstractmetamodel;
1035 variable[0] = self;
1036 variable[1] = param0;
1037 variable[2] = param1;
1038 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMLocalClass].i]) return;
1039 variable[4] = variable[0];
1040 ATTR_abstractmetamodel___MMLocalClass____name(variable[4]) /*MMLocalClass::_name*/ = variable[1] /*name*/;
1041 variable[4] = variable[0];
1042 ATTR_abstractmetamodel___MMLocalClass____arity(variable[4]) /*MMLocalClass::_arity*/ = variable[2] /*arity*/;
1043 return_label28: while(false);
1044 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMLocalClass].i] = 1;
1045 tracehead = trace.prev;
1046 return;
1047 }
1048 val_t abstractmetamodel___MMLocalClass___for_module(val_t self, val_t param0) {
1049 struct trace_t trace = {NULL, NULL, 392, LOCATE_abstractmetamodel___MMLocalClass___for_module};
1050 val_t variable[4];
1051 void **closurevariable = NULL;
1052 trace.prev = tracehead; tracehead = &trace;
1053 trace.file = LOCATE_abstractmetamodel;
1054 variable[0] = self;
1055 variable[1] = param0;
1056 variable[3] = variable[0];
1057 variable[3] = CALL_abstractmetamodel___MMLocalClass___global(variable[3])(variable[3]) /*MMLocalClass::global*/;
1058 variable[3] = CALL_abstractmetamodel___MMModule_____bra( variable[1] /*m*/)( variable[1] /*m*/, variable[3]) /*MMModule::[]*/;
1059 variable[2] = variable[3];
1060 goto return_label29;
1061 return_label29: while(false);
1062 tracehead = trace.prev;
1063 return variable[2];
1064 }
1065 void abstractmetamodel___MMLocalClass___new_global(val_t self) {
1066 struct trace_t trace = {NULL, NULL, 398, LOCATE_abstractmetamodel___MMLocalClass___new_global};
1067 val_t variable[5];
1068 void **closurevariable = NULL;
1069 trace.prev = tracehead; tracehead = &trace;
1070 trace.file = LOCATE_abstractmetamodel;
1071 variable[0] = self;
1072 variable[3] = variable[0];
1073 variable[4] = NEW_MMGlobalClass_abstractmetamodel___MMGlobalClass___init(variable[3]); /*new MMGlobalClass*/
1074 variable[3] = variable[4];
1075 variable[2] = variable[3];
1076 variable[3] = variable[0];
1077 variable[3] = ATTR_abstractmetamodel___MMLocalClass____module(variable[3]) /*MMLocalClass::_module*/;
1078 variable[3] = ATTR_abstractmetamodel___MMModule____global_classes(variable[3]) /*MMModule::_global_classes*/;
1079 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[2] /*g*/) /*AbstractArray::add*/;
1080 variable[3] = variable[0];
1081 variable[3] = ATTR_abstractmetamodel___MMLocalClass____module(variable[3]) /*MMLocalClass::_module*/;
1082 variable[3] = ATTR_abstractmetamodel___MMModule____global_class_by_name(variable[3]) /*MMModule::_global_class_by_name*/;
1083 variable[4] = variable[0];
1084 variable[4] = CALL_abstractmetamodel___MMLocalClass___name(variable[4])(variable[4]) /*MMLocalClass::name*/;
1085 CALL_abstract_collection___Map_____braeq(variable[3])(variable[3], variable[4], variable[2] /*g*/) /*Map::[]=*/;
1086 variable[3] = variable[0];
1087 CALL_abstractmetamodel___MMLocalClass___set_global(variable[3])(variable[3], variable[2] /*g*/) /*MMLocalClass::set_global*/;
1088 return_label30: while(false);
1089 tracehead = trace.prev;
1090 return;
1091 }
1092 void abstractmetamodel___MMLocalClass___set_global(val_t self, val_t param0) {
1093 struct trace_t trace = {NULL, NULL, 407, LOCATE_abstractmetamodel___MMLocalClass___set_global};
1094 val_t variable[5];
1095 void **closurevariable = NULL;
1096 trace.prev = tracehead; tracehead = &trace;
1097 trace.file = LOCATE_abstractmetamodel;
1098 variable[0] = self;
1099 variable[1] = param0;
1100 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*g*/ == NIT_NULL /*null*/) || (( variable[1] /*g*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*g*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*g*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*g*/)( variable[1] /*g*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1101 if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___set_global, LOCATE_abstractmetamodel, 412); nit_exit(1);}
1102 variable[3] = variable[0];
1103 ATTR_abstractmetamodel___MMLocalClass____global(variable[3]) /*MMLocalClass::_global*/ = variable[1] /*g*/;
1104 variable[3] = variable[0];
1105 variable[3] = ATTR_abstractmetamodel___MMLocalClass____global(variable[3]) /*MMLocalClass::_global*/;
1106 variable[4] = variable[0];
1107 CALL_abstractmetamodel___MMGlobalClass___register_local_class(variable[3])(variable[3], variable[4]) /*MMGlobalClass::register_local_class*/;
1108 variable[3] = variable[0];
1109 variable[3] = ATTR_abstractmetamodel___MMLocalClass____module(variable[3]) /*MMLocalClass::_module*/;
1110 variable[4] = variable[0];
1111 CALL_abstractmetamodel___MMModule___register_global_class(variable[3])(variable[3], variable[4]) /*MMModule::register_global_class*/;
1112 return_label31: while(false);
1113 tracehead = trace.prev;
1114 return;
1115 }
1116 val_t abstractmetamodel___MMLocalClass___has_global_property_by_name(val_t self, val_t param0) {
1117 struct trace_t trace = {NULL, NULL, 418, LOCATE_abstractmetamodel___MMLocalClass___has_global_property_by_name};
1118 val_t variable[5];
1119 void **closurevariable = NULL;
1120 trace.prev = tracehead; tracehead = &trace;
1121 trace.file = LOCATE_abstractmetamodel;
1122 variable[0] = self;
1123 variable[1] = param0;
1124 variable[4] = variable[0];
1125 variable[4] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(variable[4]) /*MMLocalClass::_properties_by_name*/;
1126 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[1] /*n*/) /*Map::[]*/;
1127 variable[3] = variable[4];
1128 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*props*/ == NIT_NULL /*null*/) || (( variable[3] /*props*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*props*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*props*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*props*/)( variable[3] /*props*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1129 variable[2] = variable[4];
1130 goto return_label32;
1131 return_label32: while(false);
1132 tracehead = trace.prev;
1133 return variable[2];
1134 }
1135 val_t abstractmetamodel___MMLocalClass___get_property_by_name(val_t self, val_t param0) {
1136 struct trace_t trace = {NULL, NULL, 426, LOCATE_abstractmetamodel___MMLocalClass___get_property_by_name};
1137 val_t variable[6];
1138 void **closurevariable = NULL;
1139 trace.prev = tracehead; tracehead = &trace;
1140 trace.file = LOCATE_abstractmetamodel;
1141 variable[0] = self;
1142 variable[1] = param0;
1143 variable[4] = variable[0];
1144 variable[4] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(variable[4]) /*MMLocalClass::_properties_by_name*/;
1145 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[1] /*n*/) /*Map::[]*/;
1146 variable[3] = variable[4];
1147 variable[4] = TAG_Bool(( variable[3] /*props*/ == NIT_NULL /*null*/) || (( variable[3] /*props*/ != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*props*/)( variable[3] /*props*/, NIT_NULL /*null*/) /*AbstractArray::==*/)));
1148 variable[5] = variable[4];
1149 if (!UNTAG_Bool(variable[5])) { /* or */
1150 variable[5] = CALL_abstract_collection___Collection___length( variable[3] /*props*/)( variable[3] /*props*/) /*AbstractArray::length*/;
1151 variable[5] = TAG_Bool(UNTAG_Int(variable[5])>UNTAG_Int( TAG_Int(1)));
1152 }
1153 variable[4] = variable[5];
1154 if (UNTAG_Bool(variable[4])) { /*if*/
1155 variable[2] = NIT_NULL /*null*/;
1156 goto return_label33;
1157 }
1158 variable[4] = CALL_abstract_collection___Collection___first( variable[3] /*props*/)( variable[3] /*props*/) /*IndexedCollection::first*/;
1159 variable[2] = variable[4];
1160 goto return_label33;
1161 return_label33: while(false);
1162 tracehead = trace.prev;
1163 return variable[2];
1164 }
1165 val_t abstractmetamodel___MMLocalClass___attribute(val_t self, val_t param0) {
1166 struct trace_t trace = {NULL, NULL, 437, LOCATE_abstractmetamodel___MMLocalClass___attribute};
1167 val_t variable[4];
1168 void **closurevariable = NULL;
1169 trace.prev = tracehead; tracehead = &trace;
1170 trace.file = LOCATE_abstractmetamodel;
1171 variable[0] = self;
1172 variable[1] = param0;
1173 variable[3] = variable[0];
1174 variable[3] = CALL_abstractmetamodel___MMLocalClass___get_property_by_name(variable[3])(variable[3], variable[1] /*a*/) /*MMLocalClass::get_property_by_name*/;
1175 variable[2] = variable[3];
1176 goto return_label34;
1177 return_label34: while(false);
1178 tracehead = trace.prev;
1179 return variable[2];
1180 }
1181 val_t abstractmetamodel___MMLocalClass___method(val_t self, val_t param0) {
1182 struct trace_t trace = {NULL, NULL, 444, LOCATE_abstractmetamodel___MMLocalClass___method};
1183 val_t variable[5];
1184 void **closurevariable = NULL;
1185 trace.prev = tracehead; tracehead = &trace;
1186 trace.file = LOCATE_abstractmetamodel;
1187 variable[0] = self;
1188 variable[1] = param0;
1189 variable[3] = variable[0];
1190 variable[3] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(variable[3]) /*MMLocalClass::_properties_by_name*/;
1191 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::==*/)))))));
1192 if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___method, LOCATE_abstractmetamodel, 448); nit_exit(1);}
1193 variable[4] = variable[0];
1194 variable[4] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(variable[4]) /*MMLocalClass::_properties_by_name*/;
1195 variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[1] /*na*/) /*Map::[]*/;
1196 variable[3] = variable[4];
1197 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*props*/ == NIT_NULL /*null*/) || (( variable[3] /*props*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*props*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*props*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*props*/)( variable[3] /*props*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1198 if (UNTAG_Bool(variable[4])) { /*if*/
1199 variable[4] = CALL_abstract_collection___Collection___first( variable[3] /*props*/)( variable[3] /*props*/) /*IndexedCollection::first*/;
1200 variable[2] = variable[4];
1201 goto return_label35;
1202 }
1203 variable[2] = NIT_NULL /*null*/;
1204 goto return_label35;
1205 return_label35: while(false);
1206 tracehead = trace.prev;
1207 return variable[2];
1208 }
1209 val_t abstractmetamodel___MMLocalClass___select_method(val_t self, val_t param0) {
1210 struct trace_t trace = {NULL, NULL, 457, LOCATE_abstractmetamodel___MMLocalClass___select_method};
1211 val_t variable[6];
1212 void **closurevariable = NULL;
1213 trace.prev = tracehead; tracehead = &trace;
1214 trace.file = LOCATE_abstractmetamodel;
1215 variable[0] = self;
1216 variable[1] = param0;
1217 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*name*/ == NIT_NULL /*null*/) || (( variable[1] /*name*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*name*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*name*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*name*/)( variable[1] /*name*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1218 if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___select_method, LOCATE_abstractmetamodel, 461); nit_exit(1);}
1219 variable[4] = variable[0];
1220 variable[4] = CALL_abstractmetamodel___MMLocalClass___method(variable[4])(variable[4], variable[1] /*name*/) /*MMLocalClass::method*/;
1221 variable[3] = variable[4];
1222 variable[4] = TAG_Bool(( variable[3] /*gp*/ == NIT_NULL /*null*/) || (( variable[3] /*gp*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*gp*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*gp*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*gp*/)( variable[3] /*gp*/, NIT_NULL /*null*/) /*Object::==*/)))));
1223 if (UNTAG_Bool(variable[4])) { /*if*/
1224 variable[2] = NIT_NULL /*null*/;
1225 goto return_label36;
1226 }
1227 variable[5] = variable[0];
1228 variable[5] = CALL_abstractmetamodel___MMLocalClass_____bra(variable[5])(variable[5], variable[3] /*gp*/) /*MMLocalClass::[]*/;
1229 variable[4] = variable[5];
1230 variable[5] = TAG_Bool(( variable[4] /*res*/==NIT_NULL) || VAL_ISA( variable[4] /*res*/, COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
1231 if (!UNTAG_Bool(variable[5])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___select_method, LOCATE_abstractmetamodel, 465); nit_exit(1);}
1232 variable[2] = variable[4] /*res*/;
1233 goto return_label36;
1234 return_label36: while(false);
1235 tracehead = trace.prev;
1236 return variable[2];
1237 }
1238 val_t abstractmetamodel___MMLocalClass___select_attribute(val_t self, val_t param0) {
1239 struct trace_t trace = {NULL, NULL, 469, LOCATE_abstractmetamodel___MMLocalClass___select_attribute};
1240 val_t variable[6];
1241 void **closurevariable = NULL;
1242 trace.prev = tracehead; tracehead = &trace;
1243 trace.file = LOCATE_abstractmetamodel;
1244 variable[0] = self;
1245 variable[1] = param0;
1246 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*name*/ == NIT_NULL /*null*/) || (( variable[1] /*name*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*name*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*name*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*name*/)( variable[1] /*name*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1247 if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___select_attribute, LOCATE_abstractmetamodel, 473); nit_exit(1);}
1248 variable[4] = variable[0];
1249 variable[4] = CALL_abstractmetamodel___MMLocalClass___attribute(variable[4])(variable[4], variable[1] /*name*/) /*MMLocalClass::attribute*/;
1250 variable[3] = variable[4];
1251 variable[4] = TAG_Bool(( variable[3] /*gp*/ == NIT_NULL /*null*/) || (( variable[3] /*gp*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*gp*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*gp*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*gp*/)( variable[3] /*gp*/, NIT_NULL /*null*/) /*Object::==*/)))));
1252 if (UNTAG_Bool(variable[4])) { /*if*/
1253 variable[2] = NIT_NULL /*null*/;
1254 goto return_label37;
1255 }
1256 variable[5] = variable[0];
1257 variable[5] = CALL_abstractmetamodel___MMLocalClass_____bra(variable[5])(variable[5], variable[3] /*gp*/) /*MMLocalClass::[]*/;
1258 variable[4] = variable[5];
1259 variable[5] = TAG_Bool(( variable[4] /*res*/==NIT_NULL) || VAL_ISA( variable[4] /*res*/, COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
1260 if (!UNTAG_Bool(variable[5])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___select_attribute, LOCATE_abstractmetamodel, 477); nit_exit(1);}
1261 variable[2] = variable[4] /*res*/;
1262 goto return_label37;
1263 return_label37: while(false);
1264 tracehead = trace.prev;
1265 return variable[2];
1266 }
1267 val_t abstractmetamodel___MMLocalClass___super_methods_named(val_t self, val_t param0) {
1268 struct trace_t trace = {NULL, NULL, 481, LOCATE_abstractmetamodel___MMLocalClass___super_methods_named};
1269 val_t variable[10];
1270 void **closurevariable = NULL;
1271 trace.prev = tracehead; tracehead = &trace;
1272 trace.file = LOCATE_abstractmetamodel;
1273 variable[0] = self;
1274 variable[1] = param0;
1275 variable[4] = NEW_Array_array___Array___init(); /*new Array[MMLocalClass]*/
1276 variable[3] = variable[4];
1277 variable[4] = variable[0];
1278 variable[4] = CALL_abstractmetamodel___MMLocalClass___cshe(variable[4])(variable[4]) /*MMLocalClass::cshe*/;
1279 variable[4] = CALL_partial_order___PartialOrderElement___greaters(variable[4])(variable[4]) /*PartialOrderElement::greaters*/;
1280 variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Collection::iterator*/;
1281 while (true) { /*for*/
1282 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
1283 if (!UNTAG_Bool(variable[5])) break; /*for*/
1284 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
1285 variable[6] = variable[5];
1286 variable[8] = CALL_abstractmetamodel___MMLocalClass___method( variable[6] /*c*/)( variable[6] /*c*/, variable[1] /*n*/) /*MMLocalClass::method*/;
1287 variable[7] = variable[8];
1288 variable[8] = TAG_Bool(( variable[7] /*g*/ == NIT_NULL /*null*/) || (( variable[7] /*g*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*g*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*g*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*g*/)( variable[7] /*g*/, NIT_NULL /*null*/) /*Object::==*/)))));
1289 if (UNTAG_Bool(variable[8])) { /*if*/
1290 goto continue_39;
1291 }
1292 CALL_abstract_collection___SimpleCollection___add( variable[3] /*classes*/)( variable[3] /*classes*/, variable[6] /*c*/) /*AbstractArray::add*/;
1293 continue_39: while(0);
1294 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
1295 }
1296 break_39: while(0);
1297 variable[4] = variable[0];
1298 variable[4] = CALL_abstractmetamodel___MMLocalClass___cshe(variable[4])(variable[4]) /*MMLocalClass::cshe*/;
1299 variable[4] = CALL_partial_order___PartialOrderElement___order(variable[4])(variable[4]) /*PartialOrderElement::order*/;
1300 variable[4] = CALL_partial_order___PartialOrder___select_smallests(variable[4])(variable[4], variable[3] /*classes*/) /*PartialOrder::select_smallests*/;
1301 variable[3] = variable[4] /*classes=*/;
1302 variable[5] = NEW_Array_array___Array___init(); /*new Array[MMLocalProperty]*/
1303 variable[4] = variable[5];
1304 variable[5] = CALL_abstract_collection___Collection___iterator( variable[3] /*classes*/)( variable[3] /*classes*/) /*AbstractArray::iterator*/;
1305 while (true) { /*for*/
1306 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
1307 if (!UNTAG_Bool(variable[6])) break; /*for*/
1308 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
1309 variable[7] = variable[6];
1310 variable[9] = CALL_abstractmetamodel___MMLocalClass___method( variable[7] /*c*/)( variable[7] /*c*/, variable[1] /*n*/) /*MMLocalClass::method*/;
1311 variable[8] = variable[9];
1312 variable[9] = CALL_abstractmetamodel___MMLocalClass_____bra( variable[7] /*c*/)( variable[7] /*c*/, variable[8] /*g*/) /*MMLocalClass::[]*/;
1313 CALL_abstract_collection___SimpleCollection___add( variable[4] /*res*/)( variable[4] /*res*/, variable[9]) /*AbstractArray::add*/;
1314 continue_40: while(0);
1315 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
1316 }
1317 break_40: while(0);
1318 variable[2] = variable[4] /*res*/;
1319 goto return_label38;
1320 return_label38: while(false);
1321 tracehead = trace.prev;
1322 return variable[2];
1323 }
1324 void abstractmetamodel___MMLocalClass___register_local_property(val_t self, val_t param0) {
1325 struct trace_t trace = {NULL, NULL, 501, LOCATE_abstractmetamodel___MMLocalClass___register_local_property};
1326 val_t variable[5];
1327 void **closurevariable = NULL;
1328 trace.prev = tracehead; tracehead = &trace;
1329 trace.file = LOCATE_abstractmetamodel;
1330 variable[0] = self;
1331 variable[1] = param0;
1332 variable[3] = CALL_abstractmetamodel___MMLocalProperty___global( variable[1] /*p*/)( variable[1] /*p*/) /*MMLocalProperty::global*/;
1333 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::==*/)))))));
1334 if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___register_local_property, LOCATE_abstractmetamodel, 504); nit_exit(1);}
1335 variable[3] = variable[0];
1336 variable[3] = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(variable[3]) /*MMLocalClass::_local_property_by_global*/;
1337 variable[4] = CALL_abstractmetamodel___MMLocalProperty___global( variable[1] /*p*/)( variable[1] /*p*/) /*MMLocalProperty::global*/;
1338 variable[3] = CALL_abstract_collection___Map___has_key(variable[3])(variable[3], variable[4]) /*Map::has_key*/;
1339 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/
1340 variable[3] = variable[0];
1341 variable[3] = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(variable[3]) /*MMLocalClass::_local_property_by_global*/;
1342 variable[4] = CALL_abstractmetamodel___MMLocalProperty___global( variable[1] /*p*/)( variable[1] /*p*/) /*MMLocalProperty::global*/;
1343 CALL_abstract_collection___Map_____braeq(variable[3])(variable[3], variable[4], variable[1] /*p*/) /*Map::[]=*/;
1344 }
1345 return_label41: while(false);
1346 tracehead = trace.prev;
1347 return;
1348 }
1349 void abstractmetamodel___MMLocalClass___register_global_property(val_t self, val_t param0) {
1350 struct trace_t trace = {NULL, NULL, 511, LOCATE_abstractmetamodel___MMLocalClass___register_global_property};
1351 val_t variable[8];
1352 void **closurevariable = NULL;
1353 trace.prev = tracehead; tracehead = &trace;
1354 trace.file = LOCATE_abstractmetamodel;
1355 variable[0] = self;
1356 variable[1] = param0;
1357 variable[4] = CALL_abstractmetamodel___MMGlobalProperty___intro( variable[1] /*glob*/)( variable[1] /*glob*/) /*MMGlobalProperty::intro*/;
1358 variable[3] = variable[4];
1359 variable[5] = CALL_abstractmetamodel___MMLocalProperty___name( variable[3] /*prop*/)( variable[3] /*prop*/) /*MMLocalProperty::name*/;
1360 variable[4] = variable[5];
1361 variable[6] = variable[0];
1362 variable[6] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(variable[6]) /*MMLocalClass::_properties_by_name*/;
1363 variable[6] = CALL_abstract_collection___Map_____bra(variable[6])(variable[6], variable[4] /*name*/) /*Map::[]*/;
1364 variable[5] = variable[6];
1365 variable[6] = TAG_Bool(( variable[5] /*props*/ == NIT_NULL /*null*/) || (( variable[5] /*props*/ != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*props*/)( variable[5] /*props*/, NIT_NULL /*null*/) /*AbstractArray::==*/)));
1366 if (UNTAG_Bool(variable[6])) { /*if*/
1367 variable[6] = variable[0];
1368 variable[6] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(variable[6]) /*MMLocalClass::_properties_by_name*/;
1369 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[MMGlobalProperty]*/
1370 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[1] /*glob*/) /*AbstractArray::add*/;
1371 CALL_abstract_collection___Map_____braeq(variable[6])(variable[6], variable[4] /*name*/, variable[7]) /*Map::[]=*/;
1372 } else { /*if*/
1373 variable[6] = variable[0];
1374 variable[6] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(variable[6]) /*MMLocalClass::_properties_by_name*/;
1375 variable[6] = CALL_abstract_collection___Map_____bra(variable[6])(variable[6], variable[4] /*name*/) /*Map::[]*/;
1376 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[1] /*glob*/) /*AbstractArray::add*/;
1377 }
1378 variable[6] = variable[0];
1379 variable[6] = ATTR_abstractmetamodel___MMLocalClass____global_properties(variable[6]) /*MMLocalClass::_global_properties*/;
1380 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[1] /*glob*/) /*SimpleCollection::add*/;
1381 variable[6] = variable[0];
1382 CALL_abstractmetamodel___MMLocalClass___register_local_property(variable[6])(variable[6], variable[3] /*prop*/) /*MMLocalClass::register_local_property*/;
1383 return_label42: while(false);
1384 tracehead = trace.prev;
1385 return;
1386 }
1387 val_t abstractmetamodel___MMLocalClass_____bra(val_t self, val_t param0) {
1388 struct trace_t trace = {NULL, NULL, 526, LOCATE_abstractmetamodel___MMLocalClass_____bra};
1389 val_t variable[4];
1390 void **closurevariable = NULL;
1391 trace.prev = tracehead; tracehead = &trace;
1392 trace.file = LOCATE_abstractmetamodel;
1393 variable[0] = self;
1394 variable[1] = param0;
1395 variable[3] = variable[0];
1396 variable[3] = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(variable[3]) /*MMLocalClass::_local_property_by_global*/;
1397 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::==*/)))))));
1398 if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass_____bra, LOCATE_abstractmetamodel, 529); nit_exit(1);}
1399 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*glob*/ == NIT_NULL /*null*/) || (( variable[1] /*glob*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*glob*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*glob*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*glob*/)( variable[1] /*glob*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1400 if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass_____bra, LOCATE_abstractmetamodel, 530); nit_exit(1);}
1401 variable[3] = variable[0];
1402 variable[3] = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(variable[3]) /*MMLocalClass::_local_property_by_global*/;
1403 variable[3] = CALL_abstract_collection___Map___has_key(variable[3])(variable[3], variable[1] /*glob*/) /*Map::has_key*/;
1404 if (UNTAG_Bool(variable[3])) { /*if*/
1405 variable[3] = variable[0];
1406 variable[3] = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(variable[3]) /*MMLocalClass::_local_property_by_global*/;
1407 variable[3] = CALL_abstract_collection___Map_____bra(variable[3])(variable[3], variable[1] /*glob*/) /*Map::[]*/;
1408 variable[2] = variable[3];
1409 goto return_label43;
1410 }
1411 variable[2] = NIT_NULL /*null*/;
1412 goto return_label43;
1413 return_label43: while(false);
1414 tracehead = trace.prev;
1415 return variable[2];
1416 }
1417 val_t abstractmetamodel___MMLocalClass___context(val_t self) {
1418 struct trace_t trace = {NULL, NULL, 537, LOCATE_abstractmetamodel___MMLocalClass___context};
1419 val_t variable[3];
1420 void **closurevariable = NULL;
1421 trace.prev = tracehead; tracehead = &trace;
1422 trace.file = LOCATE_abstractmetamodel;
1423 variable[0] = self;
1424 variable[2] = variable[0];
1425 variable[2] = CALL_abstractmetamodel___MMLocalClass___module(variable[2])(variable[2]) /*MMLocalClass::module*/;
1426 variable[2] = CALL_abstractmetamodel___MMModule___context(variable[2])(variable[2]) /*MMModule::context*/;
1427 variable[1] = variable[2];
1428 goto return_label44;
1429 return_label44: while(false);
1430 tracehead = trace.prev;
1431 return variable[1];
1432 }
1433 val_t abstractmetamodel___MMGlobalProperty___to_s(val_t self) {
1434 struct trace_t trace = {NULL, NULL, 573, LOCATE_abstractmetamodel___MMGlobalProperty___to_s};
1435 val_t variable[3];
1436 void **closurevariable = NULL;
1437 trace.prev = tracehead; tracehead = &trace;
1438 trace.file = LOCATE_abstractmetamodel;
1439 variable[0] = self;
1440 variable[2] = variable[0];
1441 variable[2] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[2])(variable[2]) /*MMGlobalProperty::intro*/;
1442 variable[2] = CALL_abstractmetamodel___MMLocalProperty___full_name(variable[2])(variable[2]) /*MMLocalProperty::full_name*/;
1443 variable[1] = variable[2];
1444 goto return_label45;
1445 return_label45: while(false);
1446 tracehead = trace.prev;
1447 return variable[1];
1448 }
1449 val_t abstractmetamodel___MMGlobalProperty___intro(val_t self) {
1450 struct trace_t trace = {NULL, NULL, 550, LOCATE_abstractmetamodel___MMGlobalProperty___intro};
1451 val_t *variable = NULL;
1452 void **closurevariable = NULL;
1453 trace.prev = tracehead; tracehead = &trace;
1454 trace.file = LOCATE_abstractmetamodel;
1455 tracehead = trace.prev;
1456 return ATTR_abstractmetamodel___MMGlobalProperty____intro( self) /*MMGlobalProperty::_intro*/;
1457 }
1458 val_t abstractmetamodel___MMGlobalProperty___local_class(val_t self) {
1459 struct trace_t trace = {NULL, NULL, 553, LOCATE_abstractmetamodel___MMGlobalProperty___local_class};
1460 val_t variable[3];
1461 void **closurevariable = NULL;
1462 trace.prev = tracehead; tracehead = &trace;
1463 trace.file = LOCATE_abstractmetamodel;
1464 variable[0] = self;
1465 variable[2] = variable[0];
1466 variable[2] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[2])(variable[2]) /*MMGlobalProperty::intro*/;
1467 variable[2] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[2])(variable[2]) /*MMLocalProperty::local_class*/;
1468 variable[1] = variable[2];
1469 goto return_label46;
1470 return_label46: while(false);
1471 tracehead = trace.prev;
1472 return variable[1];
1473 }
1474 val_t abstractmetamodel___MMGlobalProperty___property_hierarchy(val_t self) {
1475 struct trace_t trace = {NULL, NULL, 559, LOCATE_abstractmetamodel___MMGlobalProperty___property_hierarchy};
1476 val_t *variable = NULL;
1477 void **closurevariable = NULL;
1478 trace.prev = tracehead; tracehead = &trace;
1479 trace.file = LOCATE_abstractmetamodel;
1480 tracehead = trace.prev;
1481 return ATTR_abstractmetamodel___MMGlobalProperty____property_hierarchy( self) /*MMGlobalProperty::_property_hierarchy*/;
1482 }
1483 void abstractmetamodel___MMGlobalProperty___init(val_t self, val_t param0, int* init_table) {
1484 struct trace_t trace = {NULL, NULL, 562, LOCATE_abstractmetamodel___MMGlobalProperty___init};
1485 val_t variable[5];
1486 void **closurevariable = NULL;
1487 trace.prev = tracehead; tracehead = &trace;
1488 trace.file = LOCATE_abstractmetamodel;
1489 variable[0] = self;
1490 variable[1] = param0;
1491 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMGlobalProperty].i]) return;
1492 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*p*/ == NIT_NULL /*null*/) || (( variable[1] /*p*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*p*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*p*/)( variable[1] /*p*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1493 if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMGlobalProperty___init, LOCATE_abstractmetamodel, 565); nit_exit(1);}
1494 variable[3] = variable[0];
1495 variable[4] = NEW_PartialOrder_partial_order___PartialOrder___init(); /*new PartialOrder[MMLocalProperty]*/
1496 ATTR_abstractmetamodel___MMGlobalProperty____property_hierarchy(variable[3]) /*MMGlobalProperty::_property_hierarchy*/ = variable[4];
1497 variable[3] = variable[0];
1498 ATTR_abstractmetamodel___MMGlobalProperty____intro(variable[3]) /*MMGlobalProperty::_intro*/ = variable[1] /*p*/;
1499 variable[3] = variable[0];
1500 variable[4] = NEW_Array_array___Array___init(); /*new Array[MMLocalProperty]*/
1501 CALL_abstractmetamodel___MMGlobalProperty___add_local_property(variable[3])(variable[3], variable[1] /*p*/, variable[4]) /*MMGlobalProperty::add_local_property*/;
1502 return_label47: while(false);
1503 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMGlobalProperty].i] = 1;
1504 tracehead = trace.prev;
1505 return;
1506 }
1507 void abstractmetamodel___MMGlobalProperty___add_local_property(val_t self, val_t param0, val_t param1) {
1508 struct trace_t trace = {NULL, NULL, 575, LOCATE_abstractmetamodel___MMGlobalProperty___add_local_property};
1509 val_t variable[5];
1510 void **closurevariable = NULL;
1511 trace.prev = tracehead; tracehead = &trace;
1512 trace.file = LOCATE_abstractmetamodel;
1513 variable[0] = self;
1514 variable[1] = param0;
1515 variable[2] = param1;
1516 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*i*/ == NIT_NULL /*null*/) || (( variable[1] /*i*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*i*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*i*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*i*/)( variable[1] /*i*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1517 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMGlobalProperty___add_local_property, LOCATE_abstractmetamodel, 578); nit_exit(1);}
1518 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*sup*/ == NIT_NULL /*null*/) || (( variable[2] /*sup*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*sup*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*sup*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*sup*/)( variable[2] /*sup*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1519 if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMGlobalProperty___add_local_property, LOCATE_abstractmetamodel, 579); nit_exit(1);}
1520 variable[4] = variable[0];
1521 variable[4] = ATTR_abstractmetamodel___MMGlobalProperty____property_hierarchy(variable[4]) /*MMGlobalProperty::_property_hierarchy*/;
1522 variable[4] = CALL_partial_order___PartialOrder___add(variable[4])(variable[4], variable[1] /*i*/, variable[2] /*sup*/) /*PartialOrder::add*/;
1523 ATTR_abstractmetamodel___MMLocalProperty____prhe( variable[1] /*i*/) /*MMLocalProperty::_prhe*/ = variable[4];
1524 return_label48: while(false);
1525 tracehead = trace.prev;
1526 return;
1527 }
1528 val_t abstractmetamodel___MMGlobalProperty___is_attribute(val_t self) {
1529 struct trace_t trace = {NULL, NULL, 583, LOCATE_abstractmetamodel___MMGlobalProperty___is_attribute};
1530 val_t variable[3];
1531 void **closurevariable = NULL;
1532 trace.prev = tracehead; tracehead = &trace;
1533 trace.file = LOCATE_abstractmetamodel;
1534 variable[0] = self;
1535 variable[2] = variable[0];
1536 variable[2] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[2])(variable[2]) /*MMGlobalProperty::intro*/;
1537 variable[2] = TAG_Bool((variable[2]==NIT_NULL) || VAL_ISA(variable[2], COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
1538 variable[1] = variable[2];
1539 goto return_label49;
1540 return_label49: while(false);
1541 tracehead = trace.prev;
1542 return variable[1];
1543 }
1544 val_t abstractmetamodel___MMGlobalProperty___is_method(val_t self) {
1545 struct trace_t trace = {NULL, NULL, 586, LOCATE_abstractmetamodel___MMGlobalProperty___is_method};
1546 val_t variable[3];
1547 void **closurevariable = NULL;
1548 trace.prev = tracehead; tracehead = &trace;
1549 trace.file = LOCATE_abstractmetamodel;
1550 variable[0] = self;
1551 variable[2] = variable[0];
1552 variable[2] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[2])(variable[2]) /*MMGlobalProperty::intro*/;
1553 variable[2] = TAG_Bool((variable[2]==NIT_NULL) || VAL_ISA(variable[2], COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
1554 variable[1] = variable[2];
1555 goto return_label50;
1556 return_label50: while(false);
1557 tracehead = trace.prev;
1558 return variable[1];
1559 }
1560 val_t abstractmetamodel___MMGlobalProperty___is_init(val_t self) {
1561 struct trace_t trace = {NULL, NULL, 589, LOCATE_abstractmetamodel___MMGlobalProperty___is_init};
1562 val_t *variable = NULL;
1563 void **closurevariable = NULL;
1564 trace.prev = tracehead; tracehead = &trace;
1565 trace.file = LOCATE_abstractmetamodel;
1566 tracehead = trace.prev;
1567 return ATTR_abstractmetamodel___MMGlobalProperty____is_init( self) /*MMGlobalProperty::_is_init*/;
1568 }
1569 void abstractmetamodel___MMGlobalProperty___is_init__eq(val_t self, val_t param0) {
1570 struct trace_t trace = {NULL, NULL, 589, LOCATE_abstractmetamodel___MMGlobalProperty___is_init__eq};
1571 val_t *variable = NULL;
1572 void **closurevariable = NULL;
1573 trace.prev = tracehead; tracehead = &trace;
1574 trace.file = LOCATE_abstractmetamodel;
1575 ATTR_abstractmetamodel___MMGlobalProperty____is_init( self) /*MMGlobalProperty::_is_init*/ = param0;
1576 tracehead = trace.prev;
1577 return;
1578 }
1579 val_t abstractmetamodel___MMGlobalProperty___is_init_for(val_t self, val_t param0) {
1580 struct trace_t trace = {NULL, NULL, 592, LOCATE_abstractmetamodel___MMGlobalProperty___is_init_for};
1581 val_t variable[8];
1582 void **closurevariable = NULL;
1583 trace.prev = tracehead; tracehead = &trace;
1584 trace.file = LOCATE_abstractmetamodel;
1585 variable[0] = self;
1586 variable[1] = param0;
1587 variable[3] = variable[0];
1588 variable[3] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable[3])(variable[3]) /*MMGlobalProperty::is_init*/;
1589 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/
1590 variable[2] = TAG_Bool(false);
1591 goto return_label51;
1592 }
1593 variable[4] = variable[0];
1594 variable[4] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[4])(variable[4]) /*MMGlobalProperty::intro*/;
1595 variable[4] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[4])(variable[4]) /*MMLocalProperty::local_class*/;
1596 variable[3] = variable[4];
1597 variable[5] = CALL_abstractmetamodel___MMLocalClass___che( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::che*/;
1598 variable[5] = CALL_partial_order___PartialOrderElement_____leq(variable[5])(variable[5], variable[3] /*sc*/) /*PartialOrderElement::<=*/;
1599 variable[6] = variable[5];
1600 if (UNTAG_Bool(variable[6])) { /* and */
1601 variable[6] = CALL_abstractmetamodel___MMLocalClass___global( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::global*/;
1602 variable[6] = CALL_abstractmetamodel___MMGlobalClass___mixin_of(variable[6])(variable[6]) /*MMGlobalClass::mixin_of*/;
1603 variable[7] = CALL_abstractmetamodel___MMLocalClass___global( variable[3] /*sc*/)( variable[3] /*sc*/) /*MMLocalClass::global*/;
1604 variable[7] = CALL_abstractmetamodel___MMGlobalClass___mixin_of(variable[7])(variable[7]) /*MMGlobalClass::mixin_of*/;
1605 variable[6] = TAG_Bool((variable[6] == variable[7]) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6],variable[7])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6], variable[7]) /*Object::==*/)))));
1606 }
1607 variable[5] = variable[6];
1608 variable[4] = variable[5];
1609 variable[2] = variable[4] /*res*/;
1610 goto return_label51;
1611 return_label51: while(false);
1612 tracehead = trace.prev;
1613 return variable[2];
1614 }
1615 val_t abstractmetamodel___MMGlobalProperty___visibility_level(val_t self) {
1616 struct trace_t trace = {NULL, NULL, 601, LOCATE_abstractmetamodel___MMGlobalProperty___visibility_level};
1617 val_t *variable = NULL;
1618 void **closurevariable = NULL;
1619 trace.prev = tracehead; tracehead = &trace;
1620 trace.file = LOCATE_abstractmetamodel;
1621 tracehead = trace.prev;
1622 return ATTR_abstractmetamodel___MMGlobalProperty____visibility_level( self) /*MMGlobalProperty::_visibility_level*/;
1623 }
1624 void abstractmetamodel___MMGlobalProperty___visibility_level__eq(val_t self, val_t param0) {
1625 struct trace_t trace = {NULL, NULL, 601, LOCATE_abstractmetamodel___MMGlobalProperty___visibility_level__eq};
1626 val_t *variable = NULL;
1627 void **closurevariable = NULL;
1628 trace.prev = tracehead; tracehead = &trace;
1629 trace.file = LOCATE_abstractmetamodel;
1630 ATTR_abstractmetamodel___MMGlobalProperty____visibility_level( self) /*MMGlobalProperty::_visibility_level*/ = param0;
1631 tracehead = trace.prev;
1632 return;
1633 }
1634 val_t abstractmetamodel___MMLocalProperty___to_s(val_t self) {
1635 struct trace_t trace = {NULL, NULL, 653, LOCATE_abstractmetamodel___MMLocalProperty___to_s};
1636 val_t variable[3];
1637 void **closurevariable = NULL;
1638 trace.prev = tracehead; tracehead = &trace;
1639 trace.file = LOCATE_abstractmetamodel;
1640 variable[0] = self;
1641 variable[2] = variable[0];
1642 variable[2] = CALL_abstractmetamodel___MMLocalProperty___name(variable[2])(variable[2]) /*MMLocalProperty::name*/;
1643 variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Symbol::to_s*/;
1644 variable[1] = variable[2];
1645 goto return_label52;
1646 return_label52: while(false);
1647 tracehead = trace.prev;
1648 return variable[1];
1649 }
1650 val_t abstractmetamodel___MMLocalProperty___name(val_t self) {
1651 struct trace_t trace = {NULL, NULL, 610, LOCATE_abstractmetamodel___MMLocalProperty___name};
1652 val_t *variable = NULL;
1653 void **closurevariable = NULL;
1654 trace.prev = tracehead; tracehead = &trace;
1655 trace.file = LOCATE_abstractmetamodel;
1656 tracehead = trace.prev;
1657 return ATTR_abstractmetamodel___MMLocalProperty____name( self) /*MMLocalProperty::_name*/;
1658 }
1659 val_t abstractmetamodel___MMLocalProperty___local_class(val_t self) {
1660 struct trace_t trace = {NULL, NULL, 613, LOCATE_abstractmetamodel___MMLocalProperty___local_class};
1661 val_t *variable = NULL;
1662 void **closurevariable = NULL;
1663 trace.prev = tracehead; tracehead = &trace;
1664 trace.file = LOCATE_abstractmetamodel;
1665 tracehead = trace.prev;
1666 return ATTR_abstractmetamodel___MMLocalProperty____local_class( self) /*MMLocalProperty::_local_class*/;
1667 }
1668 val_t abstractmetamodel___MMLocalProperty___global(val_t self) {
1669 struct trace_t trace = {NULL, NULL, 616, LOCATE_abstractmetamodel___MMLocalProperty___global};
1670 val_t *variable = NULL;
1671 void **closurevariable = NULL;
1672 trace.prev = tracehead; tracehead = &trace;
1673 trace.file = LOCATE_abstractmetamodel;
1674 tracehead = trace.prev;
1675 return ATTR_abstractmetamodel___MMLocalProperty____global( self) /*MMLocalProperty::_global*/;
1676 }
1677 val_t abstractmetamodel___MMLocalProperty___prhe(val_t self) {
1678 struct trace_t trace = {NULL, NULL, 619, LOCATE_abstractmetamodel___MMLocalProperty___prhe};
1679 val_t *variable = NULL;
1680 void **closurevariable = NULL;
1681 trace.prev = tracehead; tracehead = &trace;
1682 trace.file = LOCATE_abstractmetamodel;
1683 tracehead = trace.prev;
1684 return ATTR_abstractmetamodel___MMLocalProperty____prhe( self) /*MMLocalProperty::_prhe*/;
1685 }
1686 val_t abstractmetamodel___MMLocalProperty___module(val_t self) {
1687 struct trace_t trace = {NULL, NULL, 622, LOCATE_abstractmetamodel___MMLocalProperty___module};
1688 val_t variable[3];
1689 void **closurevariable = NULL;
1690 trace.prev = tracehead; tracehead = &trace;
1691 trace.file = LOCATE_abstractmetamodel;
1692 variable[0] = self;
1693 variable[2] = variable[0];
1694 variable[2] = ATTR_abstractmetamodel___MMLocalProperty____local_class(variable[2]) /*MMLocalProperty::_local_class*/;
1695 variable[2] = CALL_abstractmetamodel___MMLocalClass___module(variable[2])(variable[2]) /*MMLocalClass::module*/;
1696 variable[1] = variable[2];
1697 goto return_label53;
1698 return_label53: while(false);
1699 tracehead = trace.prev;
1700 return variable[1];
1701 }
1702 val_t abstractmetamodel___MMLocalProperty___full_name(val_t self) {
1703 struct trace_t trace = {NULL, NULL, 625, LOCATE_abstractmetamodel___MMLocalProperty___full_name};
1704 val_t variable[17];
1705 void **closurevariable = NULL;
1706 trace.prev = tracehead; tracehead = &trace;
1707 trace.file = LOCATE_abstractmetamodel;
1708 variable[0] = self;
1709 variable[2] = variable[0];
1710 variable[2] = CALL_abstractmetamodel___MMLocalProperty___global(variable[2])(variable[2]) /*MMLocalProperty::global*/;
1711 variable[2] = TAG_Bool((variable[2] == NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2], NIT_NULL /*null*/) /*Object::==*/)))));
1712 if (UNTAG_Bool(variable[2])) { /*if*/
1713 variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
1714 variable[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1715 variable[4] = variable[3];
1716 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[4]) /*AbstractArray::add*/;
1717 variable[5] = variable[0];
1718 variable[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[5])(variable[5]) /*MMLocalProperty::local_class*/;
1719 variable[5] = CALL_abstractmetamodel___MMLocalClass___module(variable[5])(variable[5]) /*MMLocalClass::module*/;
1720 variable[6] = variable[5];
1721 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
1722 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[6]) /*AbstractArray::add*/;
1723 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
1724 variable[8] = variable[7];
1725 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[8]) /*AbstractArray::add*/;
1726 variable[9] = variable[0];
1727 variable[9] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[9])(variable[9]) /*MMLocalProperty::local_class*/;
1728 variable[10] = variable[9];
1729 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
1730 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[10]) /*AbstractArray::add*/;
1731 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("::(?::"), TAG_Int(6)); /*new String*/
1732 variable[12] = variable[11];
1733 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[12]) /*AbstractArray::add*/;
1734 variable[13] = variable[0];
1735 variable[13] = CALL_abstractmetamodel___MMLocalProperty___name(variable[13])(variable[13]) /*MMLocalProperty::name*/;
1736 variable[14] = variable[13];
1737 variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
1738 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[14]) /*AbstractArray::add*/;
1739 variable[15] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
1740 variable[16] = variable[15];
1741 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[16]) /*AbstractArray::add*/;
1742 variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Object::to_s*/;
1743 variable[1] = variable[2];
1744 goto return_label54;
1745 } else { /*if*/
1746 variable[2] = variable[0];
1747 variable[2] = CALL_abstractmetamodel___MMLocalProperty___global(variable[2])(variable[2]) /*MMLocalProperty::global*/;
1748 variable[2] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[2])(variable[2]) /*MMGlobalProperty::intro*/;
1749 variable[3] = variable[0];
1750 variable[2] = TAG_Bool((variable[2] == variable[3]) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2],variable[3])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2], variable[3]) /*Object::==*/)))));
1751 if (UNTAG_Bool(variable[2])) { /*if*/
1752 variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
1753 variable[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1754 variable[4] = variable[3];
1755 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[4]) /*AbstractArray::add*/;
1756 variable[5] = variable[0];
1757 variable[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[5])(variable[5]) /*MMLocalProperty::local_class*/;
1758 variable[5] = CALL_abstractmetamodel___MMLocalClass___module(variable[5])(variable[5]) /*MMLocalClass::module*/;
1759 variable[6] = variable[5];
1760 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
1761 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[6]) /*AbstractArray::add*/;
1762 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
1763 variable[8] = variable[7];
1764 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[8]) /*AbstractArray::add*/;
1765 variable[9] = variable[0];
1766 variable[9] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[9])(variable[9]) /*MMLocalProperty::local_class*/;
1767 variable[10] = variable[9];
1768 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
1769 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[10]) /*AbstractArray::add*/;
1770 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
1771 variable[12] = variable[11];
1772 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[12]) /*AbstractArray::add*/;
1773 variable[13] = variable[0];
1774 variable[13] = CALL_abstractmetamodel___MMLocalProperty___name(variable[13])(variable[13]) /*MMLocalProperty::name*/;
1775 variable[14] = variable[13];
1776 variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
1777 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[14]) /*AbstractArray::add*/;
1778 variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1779 variable[16] = variable[15];
1780 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[16]) /*AbstractArray::add*/;
1781 variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Object::to_s*/;
1782 variable[1] = variable[2];
1783 goto return_label54;
1784 } else { /*if*/
1785 variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
1786 variable[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1787 variable[4] = variable[3];
1788 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[4]) /*AbstractArray::add*/;
1789 variable[5] = variable[0];
1790 variable[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[5])(variable[5]) /*MMLocalProperty::local_class*/;
1791 variable[5] = CALL_abstractmetamodel___MMLocalClass___module(variable[5])(variable[5]) /*MMLocalClass::module*/;
1792 variable[6] = variable[5];
1793 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
1794 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[6]) /*AbstractArray::add*/;
1795 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
1796 variable[8] = variable[7];
1797 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[8]) /*AbstractArray::add*/;
1798 variable[9] = variable[0];
1799 variable[9] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[9])(variable[9]) /*MMLocalProperty::local_class*/;
1800 variable[10] = variable[9];
1801 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
1802 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[10]) /*AbstractArray::add*/;
1803 variable[11] = NEW_String_string___String___with_native(BOX_NativeString("::("), TAG_Int(3)); /*new String*/
1804 variable[12] = variable[11];
1805 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[12]) /*AbstractArray::add*/;
1806 variable[13] = variable[0];
1807 variable[13] = CALL_abstractmetamodel___MMLocalProperty___global(variable[13])(variable[13]) /*MMLocalProperty::global*/;
1808 variable[13] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[13])(variable[13]) /*MMGlobalProperty::intro*/;
1809 variable[13] = CALL_abstractmetamodel___MMLocalProperty___full_name(variable[13])(variable[13]) /*MMLocalProperty::full_name*/;
1810 variable[14] = variable[13];
1811 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[14]) /*AbstractArray::add*/;
1812 variable[15] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
1813 variable[16] = variable[15];
1814 CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[16]) /*AbstractArray::add*/;
1815 variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Object::to_s*/;
1816 variable[1] = variable[2];
1817 goto return_label54;
1818 }
1819 }
1820 return_label54: while(false);
1821 tracehead = trace.prev;
1822 return variable[1];
1823 }
1824 void abstractmetamodel___MMLocalProperty___set_global(val_t self, val_t param0) {
1825 struct trace_t trace = {NULL, NULL, 637, LOCATE_abstractmetamodel___MMLocalProperty___set_global};
1826 val_t variable[5];
1827 void **closurevariable = NULL;
1828 trace.prev = tracehead; tracehead = &trace;
1829 trace.file = LOCATE_abstractmetamodel;
1830 variable[0] = self;
1831 variable[1] = param0;
1832 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*g*/ == NIT_NULL /*null*/) || (( variable[1] /*g*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*g*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*g*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*g*/)( variable[1] /*g*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1833 if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalProperty___set_global, LOCATE_abstractmetamodel, 640); nit_exit(1);}
1834 variable[3] = variable[0];
1835 ATTR_abstractmetamodel___MMLocalProperty____global(variable[3]) /*MMLocalProperty::_global*/ = variable[1] /*g*/;
1836 variable[3] = variable[0];
1837 variable[3] = ATTR_abstractmetamodel___MMLocalProperty____local_class(variable[3]) /*MMLocalProperty::_local_class*/;
1838 variable[4] = variable[0];
1839 CALL_abstractmetamodel___MMLocalClass___register_local_property(variable[3])(variable[3], variable[4]) /*MMLocalClass::register_local_property*/;
1840 return_label55: while(false);
1841 tracehead = trace.prev;
1842 return;
1843 }
1844 void abstractmetamodel___MMLocalProperty___new_global(val_t self) {
1845 struct trace_t trace = {NULL, NULL, 645, LOCATE_abstractmetamodel___MMLocalProperty___new_global};
1846 val_t variable[5];
1847 void **closurevariable = NULL;
1848 trace.prev = tracehead; tracehead = &trace;
1849 trace.file = LOCATE_abstractmetamodel;
1850 variable[0] = self;
1851 variable[2] = variable[0];
1852 variable[2] = ATTR_abstractmetamodel___MMLocalProperty____global(variable[2]) /*MMLocalProperty::_global*/;
1853 variable[2] = TAG_Bool((variable[2] == NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2], NIT_NULL /*null*/) /*Object::==*/)))));
1854 if (!UNTAG_Bool(variable[2])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalProperty___new_global, LOCATE_abstractmetamodel, 648); nit_exit(1);}
1855 variable[2] = variable[0];
1856 variable[3] = variable[0];
1857 variable[4] = NEW_MMGlobalProperty_abstractmetamodel___MMGlobalProperty___init(variable[3]); /*new MMGlobalProperty*/
1858 variable[3] = variable[4];
1859 ATTR_abstractmetamodel___MMLocalProperty____global(variable[2]) /*MMLocalProperty::_global*/ = variable[3];
1860 variable[2] = variable[0];
1861 variable[2] = ATTR_abstractmetamodel___MMLocalProperty____local_class(variable[2]) /*MMLocalProperty::_local_class*/;
1862 variable[3] = variable[0];
1863 variable[3] = ATTR_abstractmetamodel___MMLocalProperty____global(variable[3]) /*MMLocalProperty::_global*/;
1864 CALL_abstractmetamodel___MMLocalClass___register_global_property(variable[2])(variable[2], variable[3]) /*MMLocalClass::register_global_property*/;
1865 return_label56: while(false);
1866 tracehead = trace.prev;
1867 return;
1868 }
1869 val_t abstractmetamodel___MMLocalProperty___need_super(val_t self) {
1870 struct trace_t trace = {NULL, NULL, 655, LOCATE_abstractmetamodel___MMLocalProperty___need_super};
1871 val_t *variable = NULL;
1872 void **closurevariable = NULL;
1873 trace.prev = tracehead; tracehead = &trace;
1874 trace.file = LOCATE_abstractmetamodel;
1875 tracehead = trace.prev;
1876 return ATTR_abstractmetamodel___MMLocalProperty____need_super( self) /*MMLocalProperty::_need_super*/;
1877 }
1878 void abstractmetamodel___MMLocalProperty___need_super__eq(val_t self, val_t param0) {
1879 struct trace_t trace = {NULL, NULL, 655, LOCATE_abstractmetamodel___MMLocalProperty___need_super__eq};
1880 val_t *variable = NULL;
1881 void **closurevariable = NULL;
1882 trace.prev = tracehead; tracehead = &trace;
1883 trace.file = LOCATE_abstractmetamodel;
1884 ATTR_abstractmetamodel___MMLocalProperty____need_super( self) /*MMLocalProperty::_need_super*/ = param0;
1885 tracehead = trace.prev;
1886 return;
1887 }
1888 void abstractmetamodel___MMLocalProperty___init(val_t self, val_t param0, val_t param1, int* init_table) {
1889 struct trace_t trace = {NULL, NULL, 658, LOCATE_abstractmetamodel___MMLocalProperty___init};
1890 val_t variable[5];
1891 void **closurevariable = NULL;
1892 trace.prev = tracehead; tracehead = &trace;
1893 trace.file = LOCATE_abstractmetamodel;
1894 variable[0] = self;
1895 variable[1] = param0;
1896 variable[2] = param1;
1897 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMLocalProperty].i]) return;
1898 variable[4] = variable[0];
1899 ATTR_abstractmetamodel___MMLocalProperty____name(variable[4]) /*MMLocalProperty::_name*/ = variable[1] /*n*/;
1900 variable[4] = variable[0];
1901 ATTR_abstractmetamodel___MMLocalProperty____local_class(variable[4]) /*MMLocalProperty::_local_class*/ = variable[2] /*bc*/;
1902 return_label57: while(false);
1903 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMLocalProperty].i] = 1;
1904 tracehead = trace.prev;
1905 return;
1906 }