0b41ebc02c82a2df977f83aadf7b3c1dfa5f3dee
[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, LOCATE_abstractmetamodel___MMContext___init, 26};
5 trace.prev = tracehead; tracehead = &trace;
6 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMContext].i]) return;
7 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMContext].i] = 1;
8 tracehead = trace.prev;
9 return;
10 }
11 val_t abstractmetamodel___MMContext___module_hierarchy(val_t self) {
12 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMContext___module_hierarchy, 28};
13 trace.prev = tracehead; tracehead = &trace;
14 tracehead = trace.prev;
15 return ATTR_abstractmetamodel___MMContext____module_hierarchy( self) /*MMContext::_module_hierarchy*/;
16 }
17 val_t abstractmetamodel___MMContext___class_hierarchy(val_t self) {
18 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMContext___class_hierarchy, 31};
19 trace.prev = tracehead; tracehead = &trace;
20 tracehead = trace.prev;
21 return ATTR_abstractmetamodel___MMContext____class_hierarchy( self) /*MMContext::_class_hierarchy*/;
22 }
23 val_t abstractmetamodel___MMContext___modules(val_t self) {
24 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMContext___modules, 38};
25 trace.prev = tracehead; tracehead = &trace;
26 tracehead = trace.prev;
27 return ATTR_abstractmetamodel___MMContext____modules( self) /*MMContext::_modules*/;
28 }
29 void abstractmetamodel___MMContext___add_module(val_t self, val_t param0, val_t param1) {
30 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMContext___add_module, 41};
31 val_t variable0;
32 val_t variable1;
33 val_t variable2;
34 val_t variable3;
35 trace.prev = tracehead; tracehead = &trace;
36 variable0 = param0;
37 variable1 = param1;
38 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*supers*/ == NIT_NULL /*null*/) || (( variable1 /*supers*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable1 /*supers*/,COLOR_kernel___Object_____eqeq))( variable1 /*supers*/, NIT_NULL /*null*/) /*Array::==*/)))));
39 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_abstractmetamodel___MMContext___add_module, 44); nit_exit(1);}
40 variable2 = ATTR_abstractmetamodel___MMContext____module_hierarchy( self) /*MMContext::_module_hierarchy*/;
41 variable3 = ATTR_abstractmetamodel___MMContext____module_hierarchy( self) /*MMContext::_module_hierarchy*/;
42 variable3 = ((partial_order___PartialOrder___select_smallests_t)CALL(variable3,COLOR_partial_order___PartialOrder___select_smallests))(variable3, variable1 /*supers*/) /*PartialOrder::select_smallests*/;
43 ((partial_order___PartialOrder___add_t)CALL(variable2,COLOR_partial_order___PartialOrder___add))(variable2, variable0 /*module*/, variable3) /*PartialOrder::add*/;
44 variable2 = ((abstractmetamodel___MMModule___name_t)CALL( variable0 /*module*/,COLOR_abstractmetamodel___MMModule___name))( variable0 /*module*/) /*MMModule::name*/;
45 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2 == NIT_NULL /*null*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, NIT_NULL /*null*/) /*Symbol::==*/)))))));
46 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_abstractmetamodel___MMContext___add_module, 46); nit_exit(1);}
47 variable2 = ATTR_abstractmetamodel___MMContext____modules( self) /*MMContext::_modules*/;
48 ((array___AbstractArray___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable0 /*module*/) /*Array::add*/;
49 variable2 = ATTR_abstractmetamodel___MMContext____module_hierarchy( self) /*MMContext::_module_hierarchy*/;
50 variable2 = ((partial_order___PartialOrder_____bra_t)CALL(variable2,COLOR_partial_order___PartialOrder_____bra))(variable2, variable0 /*module*/) /*PartialOrder::[]*/;
51 ATTR_abstractmetamodel___MMModule____mhe( variable0 /*module*/) /*MMModule::_mhe*/ = variable2;
52 tracehead = trace.prev;
53 return;
54 }
55 void abstractmetamodel___MMContext___add_global_class(val_t self, val_t param0) {
56 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMContext___add_global_class, 51};
57 val_t variable0;
58 val_t variable1;
59 trace.prev = tracehead; tracehead = &trace;
60 variable0 = param0;
61 variable1 = ATTR_abstractmetamodel___MMContext____global_classes( self) /*MMContext::_global_classes*/;
62 ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable0 /*c*/) /*Array::add*/;
63 tracehead = trace.prev;
64 return;
65 }
66 void abstractmetamodel___MMContext___add_local_class(val_t self, val_t param0, val_t param1) {
67 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMContext___add_local_class, 54};
68 val_t variable0;
69 val_t variable1;
70 val_t variable2;
71 val_t variable3;
72 val_t variable4;
73 val_t variable5;
74 val_t variable6;
75 val_t variable7;
76 val_t variable8;
77 trace.prev = tracehead; tracehead = &trace;
78 variable0 = param0;
79 variable1 = param1;
80 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*sup*/ == NIT_NULL /*null*/) || (( variable1 /*sup*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable1 /*sup*/,COLOR_kernel___Object_____eqeq))( variable1 /*sup*/, NIT_NULL /*null*/) /*Array::==*/)))));
81 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_abstractmetamodel___MMContext___add_local_class, 57); nit_exit(1);}
82 variable3 = NEW_array___Array___init(); /*new Array[MMLocalClass]*/
83 variable2 = variable3;
84 variable4 = NEW_array___Array___init(); /*new Array[String]*/
85 variable3 = variable4;
86 variable4 = ((array___AbstractArray___iterator_t)CALL( variable1 /*sup*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*sup*/) /*Array::iterator*/;
87 while (true) { /*for*/
88 variable5 = ((array___ArrayIterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*ArrayIterator::is_ok*/;
89 if (!UNTAG_Bool(variable5)) break; /*for*/
90 variable5 = ((array___ArrayIterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*ArrayIterator::item*/;
91 variable6 = TAG_Bool(( variable5 /*s*/==NIT_NULL) || VAL_ISA( variable5 /*s*/, COLOR_MMConcreteClass, ID_MMConcreteClass)) /*cast MMConcreteClass*/;
92 if (UNTAG_Bool(variable6)) { /*if*/
93 ((array___AbstractArray___add_t)CALL( variable2 /*csup*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*csup*/, variable5 /*s*/) /*Array::add*/;
94 } else { /*if*/
95 variable6 = ((abstractmetamodel___MMLocalClass___che_t)CALL( variable5 /*s*/,COLOR_abstractmetamodel___MMLocalClass___che))( variable5 /*s*/) /*MMLocalClass::che*/;
96 variable6 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable6,COLOR_partial_order___PartialOrderElement___direct_greaters))(variable6) /*PartialOrderElement::direct_greaters*/;
97 variable6 = ((array___AbstractArray___iterator_t)CALL(variable6,COLOR_abstract_collection___Collection___iterator))(variable6) /*Array::iterator*/;
98 while (true) { /*for*/
99 variable7 = ((array___ArrayIterator___is_ok_t)CALL(variable6,COLOR_abstract_collection___Iterator___is_ok))(variable6) /*ArrayIterator::is_ok*/;
100 if (!UNTAG_Bool(variable7)) break; /*for*/
101 variable7 = ((array___ArrayIterator___item_t)CALL(variable6,COLOR_abstract_collection___Iterator___item))(variable6) /*ArrayIterator::item*/;
102 variable8 = ((array___AbstractArray___has_t)CALL( variable2 /*csup*/,COLOR_abstract_collection___Collection___has))( variable2 /*csup*/, variable7 /*ss*/) /*Array::has*/;
103 if (UNTAG_Bool(variable8)) { /*if*/
104 goto continue_5;
105 }
106 ((array___AbstractArray___add_t)CALL( variable2 /*csup*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*csup*/, variable7 /*ss*/) /*Array::add*/;
107 continue_5: while(0);
108 ((array___ArrayIterator___next_t)CALL(variable6,COLOR_abstract_collection___Iterator___next))(variable6) /*ArrayIterator::next*/;
109 }
110 break_5: while(0);
111 }
112 continue_4: while(0);
113 ((array___ArrayIterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*ArrayIterator::next*/;
114 }
115 break_4: while(0);
116 variable5 = ATTR_abstractmetamodel___MMContext____class_hierarchy( self) /*MMContext::_class_hierarchy*/;
117 variable5 = ((partial_order___PartialOrder___add_t)CALL(variable5,COLOR_partial_order___PartialOrder___add))(variable5, variable0 /*c*/, variable2 /*csup*/) /*PartialOrder::add*/;
118 variable4 = variable5;
119 ATTR_abstractmetamodel___MMLocalClass____che( variable0 /*c*/) /*MMLocalClass::_che*/ = variable4 /*che*/;
120 tracehead = trace.prev;
121 return;
122 }
123 val_t abstractmetamodel___MMDirectory___name(val_t self) {
124 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMDirectory___name, 77};
125 trace.prev = tracehead; tracehead = &trace;
126 tracehead = trace.prev;
127 return ATTR_abstractmetamodel___MMDirectory____name( self) /*MMDirectory::_name*/;
128 }
129 val_t abstractmetamodel___MMDirectory___path(val_t self) {
130 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMDirectory___path, 80};
131 trace.prev = tracehead; tracehead = &trace;
132 tracehead = trace.prev;
133 return ATTR_abstractmetamodel___MMDirectory____path( self) /*MMDirectory::_path*/;
134 }
135 val_t abstractmetamodel___MMDirectory___parent(val_t self) {
136 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMDirectory___parent, 83};
137 trace.prev = tracehead; tracehead = &trace;
138 tracehead = trace.prev;
139 return ATTR_abstractmetamodel___MMDirectory____parent( self) /*MMDirectory::_parent*/;
140 }
141 val_t abstractmetamodel___MMDirectory___owner(val_t self) {
142 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMDirectory___owner, 87};
143 trace.prev = tracehead; tracehead = &trace;
144 tracehead = trace.prev;
145 return ATTR_abstractmetamodel___MMDirectory____owner( self) /*MMDirectory::_owner*/;
146 }
147 void abstractmetamodel___MMDirectory___owner__eq(val_t self, val_t param0) {
148 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMDirectory___owner__eq, 87};
149 trace.prev = tracehead; tracehead = &trace;
150 ATTR_abstractmetamodel___MMDirectory____owner( self) /*MMDirectory::_owner*/ = param0;
151 tracehead = trace.prev;
152 return;
153 }
154 val_t abstractmetamodel___MMDirectory___modules(val_t self) {
155 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMDirectory___modules, 90};
156 trace.prev = tracehead; tracehead = &trace;
157 tracehead = trace.prev;
158 return ATTR_abstractmetamodel___MMDirectory____modules( self) /*MMDirectory::_modules*/;
159 }
160 void abstractmetamodel___MMDirectory___add_module(val_t self, val_t param0) {
161 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMDirectory___add_module, 93};
162 val_t variable0;
163 val_t variable1;
164 val_t variable2;
165 trace.prev = tracehead; tracehead = &trace;
166 variable0 = param0;
167 variable1 = ATTR_abstractmetamodel___MMDirectory____modules( self) /*MMDirectory::_modules*/;
168 variable2 = ((abstractmetamodel___MMModule___name_t)CALL( variable0 /*module*/,COLOR_abstractmetamodel___MMModule___name))( variable0 /*module*/) /*MMModule::name*/;
169 variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1, variable2) /*Map::has_key*/;
170 if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable1)))) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_abstractmetamodel___MMDirectory___add_module, 96); nit_exit(1);}
171 variable1 = ATTR_abstractmetamodel___MMDirectory____modules( self) /*MMDirectory::_modules*/;
172 variable2 = ((abstractmetamodel___MMModule___name_t)CALL( variable0 /*module*/,COLOR_abstractmetamodel___MMModule___name))( variable0 /*module*/) /*MMModule::name*/;
173 ((abstract_collection___Map_____braeq_t)CALL(variable1,COLOR_abstract_collection___Map_____braeq))(variable1, variable2, variable0 /*module*/) /*Map::[]=*/;
174 tracehead = trace.prev;
175 return;
176 }
177 val_t abstractmetamodel___MMDirectory___dhe(val_t self) {
178 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMDirectory___dhe, 100};
179 trace.prev = tracehead; tracehead = &trace;
180 tracehead = trace.prev;
181 return ATTR_abstractmetamodel___MMDirectory____dhe( self) /*MMDirectory::_dhe*/;
182 }
183 void abstractmetamodel___MMDirectory___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
184 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMDirectory___init, 103};
185 val_t variable0;
186 val_t variable1;
187 val_t variable2;
188 trace.prev = tracehead; tracehead = &trace;
189 variable0 = param0;
190 variable1 = param1;
191 variable2 = param2;
192 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMDirectory].i]) return;
193 ATTR_abstractmetamodel___MMDirectory____name( self) /*MMDirectory::_name*/ = variable0 /*name*/;
194 ATTR_abstractmetamodel___MMDirectory____path( self) /*MMDirectory::_path*/ = variable1 /*path*/;
195 ATTR_abstractmetamodel___MMDirectory____parent( self) /*MMDirectory::_parent*/ = variable2 /*parent*/;
196 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMDirectory].i] = 1;
197 tracehead = trace.prev;
198 return;
199 }
200 val_t abstractmetamodel___MMDirectory___full_name_for(val_t self, val_t param0) {
201 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMDirectory___full_name_for, 109};
202 val_t variable0;
203 val_t variable1;
204 val_t variable2;
205 val_t variable3;
206 val_t variable4;
207 val_t variable5;
208 val_t variable6;
209 val_t variable7;
210 val_t variable8;
211 val_t variable9;
212 val_t variable10;
213 trace.prev = tracehead; tracehead = &trace;
214 variable0 = param0;
215 variable1 = NEW_string___String___init(); /*new String*/
216 variable2 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
217 variable3 = variable2;
218 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable3) /*String::append*/;
219 variable4 = ((abstractmetamodel___MMDirectory___name_t)CALL( self,COLOR_abstractmetamodel___MMDirectory___name))( self) /*MMDirectory::name*/;
220 variable5 = variable4;
221 variable5 = ((string___String___to_s_t)CALL(variable5,COLOR_string___Object___to_s))(variable5) /*String::to_s*/;
222 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable5) /*String::append*/;
223 variable6 = NEW_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
224 variable7 = variable6;
225 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable7) /*String::append*/;
226 variable8 = variable0 /*module_name*/;
227 variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
228 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable8) /*String::append*/;
229 variable9 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
230 variable10 = variable9;
231 ((string___String___append_t)CALL(variable1,COLOR_abstract_collection___IndexedCollection___append))(variable1, variable10) /*String::append*/;
232 variable1 = ((symbol___String___to_symbol_t)CALL(variable1,COLOR_symbol___String___to_symbol))(variable1) /*String::to_symbol*/;
233 goto return_label8;
234 return_label8: while(false);
235 tracehead = trace.prev;
236 return variable1;
237 }
238 val_t abstractmetamodel___MMModule___context(val_t self) {
239 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMModule___context, 117};
240 trace.prev = tracehead; tracehead = &trace;
241 tracehead = trace.prev;
242 return ATTR_abstractmetamodel___MMModule____context( self) /*MMModule::_context*/;
243 }
244 val_t abstractmetamodel___MMModule___name(val_t self) {
245 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMModule___name, 120};
246 trace.prev = tracehead; tracehead = &trace;
247 tracehead = trace.prev;
248 return ATTR_abstractmetamodel___MMModule____name( self) /*MMModule::_name*/;
249 }
250 val_t abstractmetamodel___MMModule___full_name(val_t self) {
251 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMModule___full_name, 123};
252 trace.prev = tracehead; tracehead = &trace;
253 tracehead = trace.prev;
254 return ATTR_abstractmetamodel___MMModule____full_name( self) /*MMModule::_full_name*/;
255 }
256 val_t abstractmetamodel___MMModule___directory(val_t self) {
257 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMModule___directory, 126};
258 trace.prev = tracehead; tracehead = &trace;
259 tracehead = trace.prev;
260 return ATTR_abstractmetamodel___MMModule____directory( self) /*MMModule::_directory*/;
261 }
262 val_t abstractmetamodel___MMModule___mhe(val_t self) {
263 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMModule___mhe, 129};
264 trace.prev = tracehead; tracehead = &trace;
265 tracehead = trace.prev;
266 return ATTR_abstractmetamodel___MMModule____mhe( self) /*MMModule::_mhe*/;
267 }
268 val_t abstractmetamodel___MMModule___global_classes(val_t self) {
269 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMModule___global_classes, 132};
270 trace.prev = tracehead; tracehead = &trace;
271 tracehead = trace.prev;
272 return ATTR_abstractmetamodel___MMModule____global_classes( self) /*MMModule::_global_classes*/;
273 }
274 val_t abstractmetamodel___MMModule___local_classes(val_t self) {
275 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMModule___local_classes, 135};
276 trace.prev = tracehead; tracehead = &trace;
277 tracehead = trace.prev;
278 return ATTR_abstractmetamodel___MMModule____local_classes( self) /*MMModule::_local_classes*/;
279 }
280 val_t abstractmetamodel___MMModule___class_specialization_hierarchy(val_t self) {
281 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMModule___class_specialization_hierarchy, 138};
282 trace.prev = tracehead; tracehead = &trace;
283 tracehead = trace.prev;
284 return ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy( self) /*MMModule::_class_specialization_hierarchy*/;
285 }
286 val_t abstractmetamodel___MMModule___explicit_imported_modules(val_t self) {
287 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMModule___explicit_imported_modules, 150};
288 trace.prev = tracehead; tracehead = &trace;
289 tracehead = trace.prev;
290 return ATTR_abstractmetamodel___MMModule____explicit_imported_modules( self) /*MMModule::_explicit_imported_modules*/;
291 }
292 void abstractmetamodel___MMModule___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
293 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMModule___init, 159};
294 val_t variable0;
295 val_t variable1;
296 val_t variable2;
297 val_t variable3;
298 trace.prev = tracehead; tracehead = &trace;
299 variable0 = param0;
300 variable1 = param1;
301 variable2 = param2;
302 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMModule].i]) return;
303 ATTR_abstractmetamodel___MMModule____name( self) /*MMModule::_name*/ = variable0 /*name*/;
304 ATTR_abstractmetamodel___MMModule____directory( self) /*MMModule::_directory*/ = variable1 /*dir*/;
305 ATTR_abstractmetamodel___MMModule____context( self) /*MMModule::_context*/ = variable2 /*context*/;
306 variable3 = TAG_Bool(( variable1 /*dir*/ == NIT_NULL /*null*/) || (( variable1 /*dir*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*dir*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*dir*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*dir*/,COLOR_kernel___Object_____eqeq))( variable1 /*dir*/, NIT_NULL /*null*/) /*MMDirectory::==*/)))));
307 if (UNTAG_Bool(variable3)) { /*if*/
308 ATTR_abstractmetamodel___MMModule____full_name( self) /*MMModule::_full_name*/ = variable0 /*name*/;
309 } else { /*if*/
310 variable3 = ((abstractmetamodel___MMDirectory___full_name_for_t)CALL( variable1 /*dir*/,COLOR_abstractmetamodel___MMDirectory___full_name_for))( variable1 /*dir*/, variable0 /*name*/) /*MMDirectory::full_name_for*/;
311 ATTR_abstractmetamodel___MMModule____full_name( self) /*MMModule::_full_name*/ = variable3;
312 }
313 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMModule].i] = 1;
314 tracehead = trace.prev;
315 return;
316 }
317 void abstractmetamodel___MMModule___add_super_module(val_t self, val_t param0, val_t param1) {
318 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMModule___add_super_module, 172};
319 val_t variable0;
320 val_t variable1;
321 val_t variable2;
322 val_t variable3;
323 trace.prev = tracehead; tracehead = &trace;
324 variable0 = param0;
325 variable1 = param1;
326 variable2 = ATTR_abstractmetamodel___MMModule____explicit_imported_modules( self) /*MMModule::_explicit_imported_modules*/;
327 ((abstract_collection___SimpleCollection___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable0 /*m*/) /*Set::add*/;
328 variable2 = TAG_Bool(( variable1 /*visibility_level*/)==( TAG_Int(0)));
329 if (UNTAG_Bool(variable2)) { /*if*/
330 variable2 = ATTR_abstractmetamodel___MMModule____intrude_modules( self) /*MMModule::_intrude_modules*/;
331 ((abstract_collection___SimpleCollection___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable0 /*m*/) /*Set::add*/;
332 variable2 = ATTR_abstractmetamodel___MMModule____intrude_modules( self) /*MMModule::_intrude_modules*/;
333 variable3 = ATTR_abstractmetamodel___MMModule____intrude_modules( variable0 /*m*/) /*MMModule::_intrude_modules*/;
334 ((abstract_collection___SimpleCollection___add_all_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add_all))(variable2, variable3) /*Set::add_all*/;
335 variable2 = ATTR_abstractmetamodel___MMModule____public_modules( self) /*MMModule::_public_modules*/;
336 variable3 = ATTR_abstractmetamodel___MMModule____public_modules( variable0 /*m*/) /*MMModule::_public_modules*/;
337 ((abstract_collection___SimpleCollection___add_all_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add_all))(variable2, variable3) /*Set::add_all*/;
338 variable2 = ATTR_abstractmetamodel___MMModule____private_modules( self) /*MMModule::_private_modules*/;
339 variable3 = ATTR_abstractmetamodel___MMModule____private_modules( variable0 /*m*/) /*MMModule::_private_modules*/;
340 ((abstract_collection___SimpleCollection___add_all_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add_all))(variable2, variable3) /*Set::add_all*/;
341 } else { /*if*/
342 variable2 = TAG_Bool(( variable1 /*visibility_level*/)==( TAG_Int(1)));
343 if (UNTAG_Bool(variable2)) { /*if*/
344 variable2 = ATTR_abstractmetamodel___MMModule____public_modules( self) /*MMModule::_public_modules*/;
345 ((abstract_collection___SimpleCollection___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable0 /*m*/) /*Set::add*/;
346 variable2 = ATTR_abstractmetamodel___MMModule____public_modules( self) /*MMModule::_public_modules*/;
347 variable3 = ATTR_abstractmetamodel___MMModule____intrude_modules( variable0 /*m*/) /*MMModule::_intrude_modules*/;
348 ((abstract_collection___SimpleCollection___add_all_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add_all))(variable2, variable3) /*Set::add_all*/;
349 variable2 = ATTR_abstractmetamodel___MMModule____public_modules( self) /*MMModule::_public_modules*/;
350 variable3 = ATTR_abstractmetamodel___MMModule____public_modules( variable0 /*m*/) /*MMModule::_public_modules*/;
351 ((abstract_collection___SimpleCollection___add_all_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add_all))(variable2, variable3) /*Set::add_all*/;
352 } else { /*if*/
353 variable2 = ATTR_abstractmetamodel___MMModule____private_modules( self) /*MMModule::_private_modules*/;
354 ((abstract_collection___SimpleCollection___add_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add))(variable2, variable0 /*m*/) /*Set::add*/;
355 variable2 = ATTR_abstractmetamodel___MMModule____private_modules( self) /*MMModule::_private_modules*/;
356 variable3 = ATTR_abstractmetamodel___MMModule____intrude_modules( variable0 /*m*/) /*MMModule::_intrude_modules*/;
357 ((abstract_collection___SimpleCollection___add_all_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add_all))(variable2, variable3) /*Set::add_all*/;
358 variable2 = ATTR_abstractmetamodel___MMModule____private_modules( self) /*MMModule::_private_modules*/;
359 variable3 = ATTR_abstractmetamodel___MMModule____public_modules( variable0 /*m*/) /*MMModule::_public_modules*/;
360 ((abstract_collection___SimpleCollection___add_all_t)CALL(variable2,COLOR_abstract_collection___SimpleCollection___add_all))(variable2, variable3) /*Set::add_all*/;
361 }
362 }
363 tracehead = trace.prev;
364 return;
365 }
366 val_t abstractmetamodel___MMModule___visibility_for(val_t self, val_t param0) {
367 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMModule___visibility_for, 196};
368 val_t variable0;
369 val_t variable1;
370 val_t variable2;
371 trace.prev = tracehead; tracehead = &trace;
372 variable0 = param0;
373 variable1 = TAG_Bool(( variable0 /*m*/ == self) || (( variable0 /*m*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*m*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*m*/, self)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*m*/,COLOR_kernel___Object_____eqeq))( variable0 /*m*/, self) /*MMModule::==*/)))));
374 variable2 = variable1;
375 if (!UNTAG_Bool(variable2)) { /* or */
376 variable2 = ATTR_abstractmetamodel___MMModule____intrude_modules( self) /*MMModule::_intrude_modules*/;
377 variable2 = ((abstract_collection___Collection___has_t)CALL(variable2,COLOR_abstract_collection___Collection___has))(variable2, variable0 /*m*/) /*Set::has*/;
378 }
379 variable1 = variable2;
380 if (UNTAG_Bool(variable1)) { /*if*/
381 variable1 = TAG_Int(3);
382 goto return_label11;
383 } else { /*if*/
384 variable1 = ATTR_abstractmetamodel___MMModule____public_modules( self) /*MMModule::_public_modules*/;
385 variable1 = ((abstract_collection___Collection___has_t)CALL(variable1,COLOR_abstract_collection___Collection___has))(variable1, variable0 /*m*/) /*Set::has*/;
386 if (UNTAG_Bool(variable1)) { /*if*/
387 variable1 = TAG_Int(2);
388 goto return_label11;
389 } else { /*if*/
390 variable1 = ATTR_abstractmetamodel___MMModule____private_modules( self) /*MMModule::_private_modules*/;
391 variable1 = ((abstract_collection___Collection___has_t)CALL(variable1,COLOR_abstract_collection___Collection___has))(variable1, variable0 /*m*/) /*Set::has*/;
392 if (UNTAG_Bool(variable1)) { /*if*/
393 variable1 = TAG_Int(1);
394 goto return_label11;
395 } else { /*if*/
396 variable1 = TAG_Int(0);
397 goto return_label11;
398 }
399 }
400 }
401 return_label11: while(false);
402 tracehead = trace.prev;
403 return variable1;
404 }
405 val_t abstractmetamodel___MMModule_____bra(val_t self, val_t param0) {
406 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMModule_____bra, 215};
407 val_t variable0;
408 val_t variable1;
409 trace.prev = tracehead; tracehead = &trace;
410 variable0 = param0;
411 variable1 = ATTR_abstractmetamodel___MMModule____local_class_by_global( self) /*MMModule::_local_class_by_global*/;
412 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*Map::==*/)))))));
413 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_abstractmetamodel___MMModule_____bra, 218); nit_exit(1);}
414 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*c*/ == NIT_NULL /*null*/) || (( variable0 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*c*/,COLOR_kernel___Object_____eqeq))( variable0 /*c*/, NIT_NULL /*null*/) /*MMGlobalClass::==*/)))))));
415 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_abstractmetamodel___MMModule_____bra, 219); nit_exit(1);}
416 variable1 = ATTR_abstractmetamodel___MMModule____local_class_by_global( self) /*MMModule::_local_class_by_global*/;
417 variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1, variable0 /*c*/) /*Map::has_key*/;
418 if (UNTAG_Bool(variable1)) { /*if*/
419 variable1 = ATTR_abstractmetamodel___MMModule____local_class_by_global( self) /*MMModule::_local_class_by_global*/;
420 variable1 = ((abstract_collection___Map_____bra_t)CALL(variable1,COLOR_abstract_collection___Map_____bra))(variable1, variable0 /*c*/) /*Map::[]*/;
421 goto return_label12;
422 } else { /*if*/
423 variable1 = NIT_NULL /*null*/;
424 goto return_label12;
425 }
426 return_label12: while(false);
427 tracehead = trace.prev;
428 return variable1;
429 }
430 void abstractmetamodel___MMModule___add_local_class(val_t self, val_t param0) {
431 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMModule___add_local_class, 227};
432 val_t variable0;
433 val_t variable1;
434 trace.prev = tracehead; tracehead = &trace;
435 variable0 = param0;
436 ATTR_abstractmetamodel___MMLocalClass____module( variable0 /*c*/) /*MMLocalClass::_module*/ = self;
437 variable1 = ATTR_abstractmetamodel___MMModule____local_classes( self) /*MMModule::_local_classes*/;
438 ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable0 /*c*/) /*Array::add*/;
439 tracehead = trace.prev;
440 return;
441 }
442 val_t abstractmetamodel___MMModule___class_by_name(val_t self, val_t param0) {
443 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMModule___class_by_name, 234};
444 val_t variable0;
445 val_t variable1;
446 trace.prev = tracehead; tracehead = &trace;
447 variable0 = param0;
448 variable1 = ATTR_abstractmetamodel___MMModule____global_class_by_name( self) /*MMModule::_global_class_by_name*/;
449 variable1 = ((abstract_collection___Map_____bra_t)CALL(variable1,COLOR_abstract_collection___Map_____bra))(variable1, variable0 /*n*/) /*Map::[]*/;
450 variable1 = ((abstractmetamodel___MMModule_____bra_t)CALL( self,COLOR_abstractmetamodel___MMModule_____bra))( self, variable1) /*MMModule::[]*/;
451 goto return_label14;
452 return_label14: while(false);
453 tracehead = trace.prev;
454 return variable1;
455 }
456 val_t abstractmetamodel___MMModule___has_global_class_named(val_t self, val_t param0) {
457 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMModule___has_global_class_named, 240};
458 val_t variable0;
459 val_t variable1;
460 trace.prev = tracehead; tracehead = &trace;
461 variable0 = param0;
462 variable1 = ATTR_abstractmetamodel___MMModule____global_class_by_name( self) /*MMModule::_global_class_by_name*/;
463 variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1, variable0 /*n*/) /*Map::has_key*/;
464 goto return_label15;
465 return_label15: while(false);
466 tracehead = trace.prev;
467 return variable1;
468 }
469 val_t abstractmetamodel___MMModule___global_class_named(val_t self, val_t param0) {
470 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMModule___global_class_named, 246};
471 val_t variable0;
472 val_t variable1;
473 trace.prev = tracehead; tracehead = &trace;
474 variable0 = param0;
475 variable1 = ATTR_abstractmetamodel___MMModule____global_class_by_name( self) /*MMModule::_global_class_by_name*/;
476 variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1, variable0 /*n*/) /*Map::has_key*/;
477 if (UNTAG_Bool(variable1)) { /*if*/
478 variable1 = ATTR_abstractmetamodel___MMModule____global_class_by_name( self) /*MMModule::_global_class_by_name*/;
479 variable1 = ((abstract_collection___Map_____bra_t)CALL(variable1,COLOR_abstract_collection___Map_____bra))(variable1, variable0 /*n*/) /*Map::[]*/;
480 goto return_label16;
481 } else { /*if*/
482 variable1 = NIT_NULL /*null*/;
483 goto return_label16;
484 }
485 return_label16: while(false);
486 tracehead = trace.prev;
487 return variable1;
488 }
489 val_t abstractmetamodel___MMModule___to_s(val_t self) {
490 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMModule___to_s, 257};
491 val_t variable0;
492 trace.prev = tracehead; tracehead = &trace;
493 variable0 = ((abstractmetamodel___MMModule___name_t)CALL( self,COLOR_abstractmetamodel___MMModule___name))( self) /*MMModule::name*/;
494 variable0 = ((symbol___Symbol___to_s_t)CALL(variable0,COLOR_string___Object___to_s))(variable0) /*Symbol::to_s*/;
495 goto return_label17;
496 return_label17: while(false);
497 tracehead = trace.prev;
498 return variable0;
499 }
500 void abstractmetamodel___MMModule___set_supers_class(val_t self, val_t param0, val_t param1) {
501 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMModule___set_supers_class, 259};
502 val_t variable0;
503 val_t variable1;
504 val_t variable2;
505 val_t variable3;
506 val_t variable4;
507 trace.prev = tracehead; tracehead = &trace;
508 variable0 = param0;
509 variable1 = param1;
510 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*supers*/ == NIT_NULL /*null*/) || (( variable1 /*supers*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable1 /*supers*/,COLOR_kernel___Object_____eqeq))( variable1 /*supers*/, NIT_NULL /*null*/) /*Array::==*/)))));
511 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_abstractmetamodel___MMModule___set_supers_class, 262); nit_exit(1);}
512 variable3 = ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy( self) /*MMModule::_class_specialization_hierarchy*/;
513 variable3 = ((partial_order___PartialOrder___select_smallests_t)CALL(variable3,COLOR_partial_order___PartialOrder___select_smallests))(variable3, variable1 /*supers*/) /*PartialOrder::select_smallests*/;
514 variable2 = variable3;
515 variable3 = ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy( self) /*MMModule::_class_specialization_hierarchy*/;
516 variable3 = ((partial_order___PartialOrder___add_t)CALL(variable3,COLOR_partial_order___PartialOrder___add))(variable3, variable0 /*c*/, variable2 /*tab*/) /*PartialOrder::add*/;
517 ATTR_abstractmetamodel___MMLocalClass____cshe( variable0 /*c*/) /*MMLocalClass::_cshe*/ = variable3;
518 variable4 = ((abstractmetamodel___MMLocalClass___crhe_t)CALL( variable0 /*c*/,COLOR_abstractmetamodel___MMLocalClass___crhe))( variable0 /*c*/) /*MMLocalClass::crhe*/;
519 variable4 = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable4,COLOR_partial_order___PartialOrderElement___direct_greaters))(variable4) /*PartialOrderElement::direct_greaters*/;
520 variable4 = ((array___Collection___to_a_t)CALL(variable4,COLOR_array___Collection___to_a))(variable4) /*Array::to_a*/;
521 variable3 = variable4;
522 ((abstract_collection___SimpleCollection___add_all_t)CALL( variable3 /*tab_all*/,COLOR_abstract_collection___SimpleCollection___add_all))( variable3 /*tab_all*/, variable2 /*tab*/) /*Array::add_all*/;
523 variable4 = ((abstractmetamodel___MMModule___context_t)CALL( self,COLOR_abstractmetamodel___MMModule___context))( self) /*MMModule::context*/;
524 ((abstractmetamodel___MMContext___add_local_class_t)CALL(variable4,COLOR_abstractmetamodel___MMContext___add_local_class))(variable4, variable0 /*c*/, variable3 /*tab_all*/) /*MMContext::add_local_class*/;
525 tracehead = trace.prev;
526 return;
527 }
528 void abstractmetamodel___MMModule___register_global_class(val_t self, val_t param0) {
529 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMModule___register_global_class, 270};
530 val_t variable0;
531 val_t variable1;
532 val_t variable2;
533 trace.prev = tracehead; tracehead = &trace;
534 variable0 = param0;
535 variable1 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable0 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable0 /*c*/) /*MMLocalClass::global*/;
536 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*MMGlobalClass::==*/)))))));
537 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_abstractmetamodel___MMModule___register_global_class, 273); nit_exit(1);}
538 variable1 = ATTR_abstractmetamodel___MMModule____local_class_by_global( self) /*MMModule::_local_class_by_global*/;
539 variable2 = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable0 /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable0 /*c*/) /*MMLocalClass::global*/;
540 ((abstract_collection___Map_____braeq_t)CALL(variable1,COLOR_abstract_collection___Map_____braeq))(variable1, variable2, variable0 /*c*/) /*Map::[]=*/;
541 tracehead = trace.prev;
542 return;
543 }
544 val_t abstractmetamodel___MMGlobalClass___intro(val_t self) {
545 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalClass___intro, 279};
546 trace.prev = tracehead; tracehead = &trace;
547 tracehead = trace.prev;
548 return ATTR_abstractmetamodel___MMGlobalClass____intro( self) /*MMGlobalClass::_intro*/;
549 }
550 val_t abstractmetamodel___MMGlobalClass___class_refinement_hierarchy(val_t self) {
551 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalClass___class_refinement_hierarchy, 282};
552 trace.prev = tracehead; tracehead = &trace;
553 tracehead = trace.prev;
554 return ATTR_abstractmetamodel___MMGlobalClass____class_refinement_hierarchy( self) /*MMGlobalClass::_class_refinement_hierarchy*/;
555 }
556 void abstractmetamodel___MMGlobalClass___init(val_t self, val_t param0, int* init_table) {
557 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalClass___init, 286};
558 val_t variable0;
559 val_t variable1;
560 trace.prev = tracehead; tracehead = &trace;
561 variable0 = param0;
562 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMGlobalClass].i]) return;
563 ATTR_abstractmetamodel___MMGlobalClass____intro( self) /*MMGlobalClass::_intro*/ = variable0 /*c*/;
564 variable1 = ((abstractmetamodel___MMLocalClass___context_t)CALL( variable0 /*c*/,COLOR_abstractmetamodel___MMLocalClass___context))( variable0 /*c*/) /*MMLocalClass::context*/;
565 ((abstractmetamodel___MMContext___add_global_class_t)CALL(variable1,COLOR_abstractmetamodel___MMContext___add_global_class))(variable1, self) /*MMContext::add_global_class*/;
566 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMGlobalClass].i] = 1;
567 tracehead = trace.prev;
568 return;
569 }
570 val_t abstractmetamodel___MMGlobalClass___name(val_t self) {
571 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalClass___name, 293};
572 val_t variable0;
573 trace.prev = tracehead; tracehead = &trace;
574 variable0 = ((abstractmetamodel___MMGlobalClass___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalClass___intro))( self) /*MMGlobalClass::intro*/;
575 variable0 = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable0,COLOR_abstractmetamodel___MMLocalClass___name))(variable0) /*MMLocalClass::name*/;
576 goto return_label21;
577 return_label21: while(false);
578 tracehead = trace.prev;
579 return variable0;
580 }
581 val_t abstractmetamodel___MMGlobalClass___module(val_t self) {
582 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalClass___module, 299};
583 val_t variable0;
584 trace.prev = tracehead; tracehead = &trace;
585 variable0 = ((abstractmetamodel___MMGlobalClass___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalClass___intro))( self) /*MMGlobalClass::intro*/;
586 variable0 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable0,COLOR_abstractmetamodel___MMLocalClass___module))(variable0) /*MMLocalClass::module*/;
587 goto return_label22;
588 return_label22: while(false);
589 tracehead = trace.prev;
590 return variable0;
591 }
592 val_t abstractmetamodel___MMGlobalClass___to_s(val_t self) {
593 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalClass___to_s, 305};
594 val_t variable0;
595 trace.prev = tracehead; tracehead = &trace;
596 variable0 = ((abstractmetamodel___MMGlobalClass___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalClass___intro))( self) /*MMGlobalClass::intro*/;
597 variable0 = ((abstractmetamodel___MMLocalClass___to_s_t)CALL(variable0,COLOR_string___Object___to_s))(variable0) /*MMLocalClass::to_s*/;
598 goto return_label23;
599 return_label23: while(false);
600 tracehead = trace.prev;
601 return variable0;
602 }
603 void abstractmetamodel___MMGlobalClass___register_local_class(val_t self, val_t param0) {
604 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalClass___register_local_class, 310};
605 val_t variable0;
606 val_t variable1;
607 val_t variable2;
608 val_t variable3;
609 val_t variable4;
610 val_t variable5;
611 trace.prev = tracehead; tracehead = &trace;
612 variable0 = param0;
613 variable1 = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable0 /*c*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable0 /*c*/) /*MMLocalClass::module*/;
614 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*MMModule::==*/)))))));
615 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_abstractmetamodel___MMGlobalClass___register_local_class, 313); nit_exit(1);}
616 variable1 = ((abstractmetamodel___MMLocalClass___crhe_t)CALL( variable0 /*c*/,COLOR_abstractmetamodel___MMLocalClass___crhe))( variable0 /*c*/) /*MMLocalClass::crhe*/;
617 variable1 = TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*PartialOrderElement::==*/)))));
618 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_abstractmetamodel___MMGlobalClass___register_local_class, 314); nit_exit(1);}
619 variable2 = NEW_array___Array___init(); /*new Array[MMLocalClass]*/
620 variable1 = variable2;
621 variable2 = ((abstractmetamodel___MMGlobalClass___class_refinement_hierarchy_t)CALL( self,COLOR_abstractmetamodel___MMGlobalClass___class_refinement_hierarchy))( self) /*MMGlobalClass::class_refinement_hierarchy*/;
622 variable2 = ((partial_order___PartialOrder___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*PartialOrder::iterator*/;
623 while (true) { /*for*/
624 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
625 if (!UNTAG_Bool(variable3)) break; /*for*/
626 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
627 variable4 = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable0 /*c*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable0 /*c*/) /*MMLocalClass::module*/;
628 variable4 = ((abstractmetamodel___MMModule___mhe_t)CALL(variable4,COLOR_abstractmetamodel___MMModule___mhe))(variable4) /*MMModule::mhe*/;
629 variable5 = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable3 /*s*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable3 /*s*/) /*MMLocalClass::module*/;
630 variable4 = ((partial_order___PartialOrderElement_____l_t)CALL(variable4,COLOR_partial_order___PartialOrderElement_____l))(variable4, variable5) /*PartialOrderElement::<*/;
631 variable5 = variable4;
632 if (UNTAG_Bool(variable5)) { /* and */
633 variable5 = TAG_Bool(( variable3 /*s*/==NIT_NULL) || VAL_ISA( variable3 /*s*/, COLOR_MMConcreteClass, ID_MMConcreteClass)) /*cast MMConcreteClass*/;
634 }
635 variable4 = variable5;
636 if (UNTAG_Bool(variable4)) { /*if*/
637 ((array___AbstractArray___add_t)CALL( variable1 /*sup*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*sup*/, variable3 /*s*/) /*Array::add*/;
638 }
639 continue_25: while(0);
640 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
641 }
642 break_25: while(0);
643 variable2 = ATTR_abstractmetamodel___MMGlobalClass____class_refinement_hierarchy( self) /*MMGlobalClass::_class_refinement_hierarchy*/;
644 variable2 = ((partial_order___PartialOrder___add_t)CALL(variable2,COLOR_partial_order___PartialOrder___add))(variable2, variable0 /*c*/, variable1 /*sup*/) /*PartialOrder::add*/;
645 ATTR_abstractmetamodel___MMLocalClass____crhe( variable0 /*c*/) /*MMLocalClass::_crhe*/ = variable2;
646 tracehead = trace.prev;
647 return;
648 }
649 val_t abstractmetamodel___MMGlobalClass___is_interface(val_t self) {
650 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalClass___is_interface, 324};
651 trace.prev = tracehead; tracehead = &trace;
652 tracehead = trace.prev;
653 return ATTR_abstractmetamodel___MMGlobalClass____is_interface( self) /*MMGlobalClass::_is_interface*/;
654 }
655 void abstractmetamodel___MMGlobalClass___is_interface__eq(val_t self, val_t param0) {
656 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalClass___is_interface__eq, 324};
657 trace.prev = tracehead; tracehead = &trace;
658 ATTR_abstractmetamodel___MMGlobalClass____is_interface( self) /*MMGlobalClass::_is_interface*/ = param0;
659 tracehead = trace.prev;
660 return;
661 }
662 val_t abstractmetamodel___MMGlobalClass___is_abstract(val_t self) {
663 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalClass___is_abstract, 327};
664 trace.prev = tracehead; tracehead = &trace;
665 tracehead = trace.prev;
666 return ATTR_abstractmetamodel___MMGlobalClass____is_abstract( self) /*MMGlobalClass::_is_abstract*/;
667 }
668 void abstractmetamodel___MMGlobalClass___is_abstract__eq(val_t self, val_t param0) {
669 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalClass___is_abstract__eq, 327};
670 trace.prev = tracehead; tracehead = &trace;
671 ATTR_abstractmetamodel___MMGlobalClass____is_abstract( self) /*MMGlobalClass::_is_abstract*/ = param0;
672 tracehead = trace.prev;
673 return;
674 }
675 val_t abstractmetamodel___MMGlobalClass___is_universal(val_t self) {
676 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalClass___is_universal, 330};
677 trace.prev = tracehead; tracehead = &trace;
678 tracehead = trace.prev;
679 return ATTR_abstractmetamodel___MMGlobalClass____is_universal( self) /*MMGlobalClass::_is_universal*/;
680 }
681 void abstractmetamodel___MMGlobalClass___is_universal__eq(val_t self, val_t param0) {
682 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalClass___is_universal__eq, 330};
683 trace.prev = tracehead; tracehead = &trace;
684 ATTR_abstractmetamodel___MMGlobalClass____is_universal( self) /*MMGlobalClass::_is_universal*/ = param0;
685 tracehead = trace.prev;
686 return;
687 }
688 val_t abstractmetamodel___MMGlobalClass___visibility_level(val_t self) {
689 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalClass___visibility_level, 333};
690 trace.prev = tracehead; tracehead = &trace;
691 tracehead = trace.prev;
692 return ATTR_abstractmetamodel___MMGlobalClass____visibility_level( self) /*MMGlobalClass::_visibility_level*/;
693 }
694 void abstractmetamodel___MMGlobalClass___visibility_level__eq(val_t self, val_t param0) {
695 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalClass___visibility_level__eq, 333};
696 trace.prev = tracehead; tracehead = &trace;
697 ATTR_abstractmetamodel___MMGlobalClass____visibility_level( self) /*MMGlobalClass::_visibility_level*/ = param0;
698 tracehead = trace.prev;
699 return;
700 }
701 val_t abstractmetamodel___MMLocalClass___name(val_t self) {
702 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass___name, 341};
703 trace.prev = tracehead; tracehead = &trace;
704 tracehead = trace.prev;
705 return ATTR_abstractmetamodel___MMLocalClass____name( self) /*MMLocalClass::_name*/;
706 }
707 val_t abstractmetamodel___MMLocalClass___arity(val_t self) {
708 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass___arity, 344};
709 trace.prev = tracehead; tracehead = &trace;
710 tracehead = trace.prev;
711 return ATTR_abstractmetamodel___MMLocalClass____arity( self) /*MMLocalClass::_arity*/;
712 }
713 val_t abstractmetamodel___MMLocalClass___module(val_t self) {
714 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass___module, 348};
715 trace.prev = tracehead; tracehead = &trace;
716 tracehead = trace.prev;
717 return ATTR_abstractmetamodel___MMLocalClass____module( self) /*MMLocalClass::_module*/;
718 }
719 val_t abstractmetamodel___MMLocalClass___abstract(val_t self) {
720 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass___abstract, 351};
721 trace.prev = tracehead; tracehead = &trace;
722 tracehead = trace.prev;
723 return ATTR_abstractmetamodel___MMLocalClass____abstract( self) /*MMLocalClass::_abstract*/;
724 }
725 void abstractmetamodel___MMLocalClass___abstract__eq(val_t self, val_t param0) {
726 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass___abstract__eq, 351};
727 trace.prev = tracehead; tracehead = &trace;
728 ATTR_abstractmetamodel___MMLocalClass____abstract( self) /*MMLocalClass::_abstract*/ = param0;
729 tracehead = trace.prev;
730 return;
731 }
732 val_t abstractmetamodel___MMLocalClass___global(val_t self) {
733 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass___global, 354};
734 trace.prev = tracehead; tracehead = &trace;
735 tracehead = trace.prev;
736 return ATTR_abstractmetamodel___MMLocalClass____global( self) /*MMLocalClass::_global*/;
737 }
738 val_t abstractmetamodel___MMLocalClass___crhe(val_t self) {
739 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass___crhe, 357};
740 trace.prev = tracehead; tracehead = &trace;
741 tracehead = trace.prev;
742 return ATTR_abstractmetamodel___MMLocalClass____crhe( self) /*MMLocalClass::_crhe*/;
743 }
744 val_t abstractmetamodel___MMLocalClass___cshe(val_t self) {
745 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass___cshe, 360};
746 trace.prev = tracehead; tracehead = &trace;
747 tracehead = trace.prev;
748 return ATTR_abstractmetamodel___MMLocalClass____cshe( self) /*MMLocalClass::_cshe*/;
749 }
750 val_t abstractmetamodel___MMLocalClass___che(val_t self) {
751 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass___che, 363};
752 trace.prev = tracehead; tracehead = &trace;
753 tracehead = trace.prev;
754 return ATTR_abstractmetamodel___MMLocalClass____che( self) /*MMLocalClass::_che*/;
755 }
756 val_t abstractmetamodel___MMLocalClass___local_property_by_global(val_t self) {
757 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass___local_property_by_global, 366};
758 trace.prev = tracehead; tracehead = &trace;
759 tracehead = trace.prev;
760 return ATTR_abstractmetamodel___MMLocalClass____local_property_by_global( self) /*MMLocalClass::_local_property_by_global*/;
761 }
762 val_t abstractmetamodel___MMLocalClass___global_properties(val_t self) {
763 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass___global_properties, 369};
764 trace.prev = tracehead; tracehead = &trace;
765 tracehead = trace.prev;
766 return ATTR_abstractmetamodel___MMLocalClass____global_properties( self) /*MMLocalClass::_global_properties*/;
767 }
768 val_t abstractmetamodel___MMLocalClass___properties_by_name(val_t self) {
769 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass___properties_by_name, 372};
770 trace.prev = tracehead; tracehead = &trace;
771 tracehead = trace.prev;
772 return ATTR_abstractmetamodel___MMLocalClass____properties_by_name( self) /*MMLocalClass::_properties_by_name*/;
773 }
774 void abstractmetamodel___MMLocalClass___init(val_t self, val_t param0, val_t param1, int* init_table) {
775 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass___init, 375};
776 val_t variable0;
777 val_t variable1;
778 trace.prev = tracehead; tracehead = &trace;
779 variable0 = param0;
780 variable1 = param1;
781 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMLocalClass].i]) return;
782 ATTR_abstractmetamodel___MMLocalClass____name( self) /*MMLocalClass::_name*/ = variable0 /*name*/;
783 ATTR_abstractmetamodel___MMLocalClass____arity( self) /*MMLocalClass::_arity*/ = variable1 /*arity*/;
784 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMLocalClass].i] = 1;
785 tracehead = trace.prev;
786 return;
787 }
788 val_t abstractmetamodel___MMLocalClass___for_module(val_t self, val_t param0) {
789 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass___for_module, 382};
790 val_t variable0;
791 val_t variable1;
792 trace.prev = tracehead; tracehead = &trace;
793 variable0 = param0;
794 variable1 = ((abstractmetamodel___MMLocalClass___global_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___global))( self) /*MMLocalClass::global*/;
795 variable1 = ((abstractmetamodel___MMModule_____bra_t)CALL( variable0 /*m*/,COLOR_abstractmetamodel___MMModule_____bra))( variable0 /*m*/, variable1) /*MMModule::[]*/;
796 goto return_label27;
797 return_label27: while(false);
798 tracehead = trace.prev;
799 return variable1;
800 }
801 void abstractmetamodel___MMLocalClass___new_global(val_t self) {
802 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass___new_global, 388};
803 val_t variable0;
804 val_t variable1;
805 val_t variable2;
806 trace.prev = tracehead; tracehead = &trace;
807 variable1 = NEW_abstractmetamodel___MMGlobalClass___init( self); /*new MMGlobalClass*/
808 variable0 = variable1;
809 variable1 = ATTR_abstractmetamodel___MMLocalClass____module( self) /*MMLocalClass::_module*/;
810 variable1 = ATTR_abstractmetamodel___MMModule____global_classes(variable1) /*MMModule::_global_classes*/;
811 ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable0 /*g*/) /*Array::add*/;
812 variable1 = ATTR_abstractmetamodel___MMLocalClass____module( self) /*MMLocalClass::_module*/;
813 variable1 = ATTR_abstractmetamodel___MMModule____global_class_by_name(variable1) /*MMModule::_global_class_by_name*/;
814 variable2 = ((abstractmetamodel___MMLocalClass___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___name))( self) /*MMLocalClass::name*/;
815 ((abstract_collection___Map_____braeq_t)CALL(variable1,COLOR_abstract_collection___Map_____braeq))(variable1, variable2, variable0 /*g*/) /*Map::[]=*/;
816 ((abstractmetamodel___MMLocalClass___set_global_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___set_global))( self, variable0 /*g*/) /*MMLocalClass::set_global*/;
817 tracehead = trace.prev;
818 return;
819 }
820 void abstractmetamodel___MMLocalClass___set_global(val_t self, val_t param0) {
821 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass___set_global, 397};
822 val_t variable0;
823 val_t variable1;
824 trace.prev = tracehead; tracehead = &trace;
825 variable0 = param0;
826 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*g*/ == NIT_NULL /*null*/) || (( variable0 /*g*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*g*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*g*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*g*/,COLOR_kernel___Object_____eqeq))( variable0 /*g*/, NIT_NULL /*null*/) /*MMGlobalClass::==*/)))))));
827 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_abstractmetamodel___MMLocalClass___set_global, 402); nit_exit(1);}
828 ATTR_abstractmetamodel___MMLocalClass____global( self) /*MMLocalClass::_global*/ = variable0 /*g*/;
829 variable1 = ATTR_abstractmetamodel___MMLocalClass____global( self) /*MMLocalClass::_global*/;
830 ((abstractmetamodel___MMGlobalClass___register_local_class_t)CALL(variable1,COLOR_abstractmetamodel___MMGlobalClass___register_local_class))(variable1, self) /*MMGlobalClass::register_local_class*/;
831 variable1 = ATTR_abstractmetamodel___MMLocalClass____module( self) /*MMLocalClass::_module*/;
832 ((abstractmetamodel___MMModule___register_global_class_t)CALL(variable1,COLOR_abstractmetamodel___MMModule___register_global_class))(variable1, self) /*MMModule::register_global_class*/;
833 tracehead = trace.prev;
834 return;
835 }
836 val_t abstractmetamodel___MMLocalClass___has_global_property_by_name(val_t self, val_t param0) {
837 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass___has_global_property_by_name, 408};
838 val_t variable0;
839 val_t variable1;
840 val_t variable2;
841 trace.prev = tracehead; tracehead = &trace;
842 variable0 = param0;
843 variable2 = ATTR_abstractmetamodel___MMLocalClass____properties_by_name( self) /*MMLocalClass::_properties_by_name*/;
844 variable2 = ((abstract_collection___Map_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable0 /*n*/) /*Map::[]*/;
845 variable1 = variable2;
846 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*props*/ == NIT_NULL /*null*/) || (( variable1 /*props*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable1 /*props*/,COLOR_kernel___Object_____eqeq))( variable1 /*props*/, NIT_NULL /*null*/) /*Array::==*/)))));
847 variable1 = variable2;
848 goto return_label30;
849 return_label30: while(false);
850 tracehead = trace.prev;
851 return variable1;
852 }
853 val_t abstractmetamodel___MMLocalClass___get_property_by_name(val_t self, val_t param0) {
854 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass___get_property_by_name, 416};
855 val_t variable0;
856 val_t variable1;
857 val_t variable2;
858 val_t variable3;
859 trace.prev = tracehead; tracehead = &trace;
860 variable0 = param0;
861 variable2 = ATTR_abstractmetamodel___MMLocalClass____properties_by_name( self) /*MMLocalClass::_properties_by_name*/;
862 variable2 = ((abstract_collection___Map_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable0 /*n*/) /*Map::[]*/;
863 variable1 = variable2;
864 variable2 = TAG_Bool(( variable1 /*props*/ == NIT_NULL /*null*/) || (( variable1 /*props*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable1 /*props*/,COLOR_kernel___Object_____eqeq))( variable1 /*props*/, NIT_NULL /*null*/) /*Array::==*/)));
865 variable3 = variable2;
866 if (!UNTAG_Bool(variable3)) { /* or */
867 variable3 = ((array___AbstractArray___length_t)CALL( variable1 /*props*/,COLOR_abstract_collection___Collection___length))( variable1 /*props*/) /*Array::length*/;
868 variable3 = TAG_Bool(UNTAG_Int(variable3)>UNTAG_Int( TAG_Int(1)));
869 }
870 variable2 = variable3;
871 if (UNTAG_Bool(variable2)) { /*if*/
872 variable1 = NIT_NULL /*null*/;
873 goto return_label31;
874 }
875 variable2 = ((abstract_collection___IndexedCollection___first_t)CALL( variable1 /*props*/,COLOR_abstract_collection___Collection___first))( variable1 /*props*/) /*Array::first*/;
876 variable1 = variable2;
877 goto return_label31;
878 return_label31: while(false);
879 tracehead = trace.prev;
880 return variable1;
881 }
882 val_t abstractmetamodel___MMLocalClass___attribute(val_t self, val_t param0) {
883 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass___attribute, 427};
884 val_t variable0;
885 val_t variable1;
886 trace.prev = tracehead; tracehead = &trace;
887 variable0 = param0;
888 variable1 = ((abstractmetamodel___MMLocalClass___get_property_by_name_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___get_property_by_name))( self, variable0 /*a*/) /*MMLocalClass::get_property_by_name*/;
889 goto return_label32;
890 return_label32: while(false);
891 tracehead = trace.prev;
892 return variable1;
893 }
894 val_t abstractmetamodel___MMLocalClass___method(val_t self, val_t param0) {
895 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass___method, 434};
896 val_t variable0;
897 val_t variable1;
898 val_t variable2;
899 trace.prev = tracehead; tracehead = &trace;
900 variable0 = param0;
901 variable1 = ATTR_abstractmetamodel___MMLocalClass____properties_by_name( self) /*MMLocalClass::_properties_by_name*/;
902 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*Map::==*/)))))));
903 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_abstractmetamodel___MMLocalClass___method, 438); nit_exit(1);}
904 variable2 = ATTR_abstractmetamodel___MMLocalClass____properties_by_name( self) /*MMLocalClass::_properties_by_name*/;
905 variable2 = ((abstract_collection___Map_____bra_t)CALL(variable2,COLOR_abstract_collection___Map_____bra))(variable2, variable0 /*na*/) /*Map::[]*/;
906 variable1 = variable2;
907 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*props*/ == NIT_NULL /*null*/) || (( variable1 /*props*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable1 /*props*/,COLOR_kernel___Object_____eqeq))( variable1 /*props*/, NIT_NULL /*null*/) /*Array::==*/)))));
908 if (UNTAG_Bool(variable2)) { /*if*/
909 variable2 = ((abstract_collection___IndexedCollection___first_t)CALL( variable1 /*props*/,COLOR_abstract_collection___Collection___first))( variable1 /*props*/) /*Array::first*/;
910 variable1 = variable2;
911 goto return_label33;
912 }
913 variable1 = NIT_NULL /*null*/;
914 goto return_label33;
915 return_label33: while(false);
916 tracehead = trace.prev;
917 return variable1;
918 }
919 val_t abstractmetamodel___MMLocalClass___super_methods_named(val_t self, val_t param0) {
920 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass___super_methods_named, 447};
921 val_t variable0;
922 val_t variable1;
923 val_t variable2;
924 val_t variable3;
925 val_t variable4;
926 val_t variable5;
927 val_t variable6;
928 trace.prev = tracehead; tracehead = &trace;
929 variable0 = param0;
930 variable2 = NEW_array___Array___init(); /*new Array[MMLocalClass]*/
931 variable1 = variable2;
932 variable2 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___cshe))( self) /*MMLocalClass::cshe*/;
933 variable2 = ((partial_order___PartialOrderElement___greaters_t)CALL(variable2,COLOR_partial_order___PartialOrderElement___greaters))(variable2) /*PartialOrderElement::greaters*/;
934 variable2 = ((abstract_collection___Collection___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Set::iterator*/;
935 while (true) { /*for*/
936 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
937 if (!UNTAG_Bool(variable3)) break; /*for*/
938 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
939 variable5 = ((abstractmetamodel___MMLocalClass___method_t)CALL( variable3 /*c*/,COLOR_abstractmetamodel___MMLocalClass___method))( variable3 /*c*/, variable0 /*n*/) /*MMLocalClass::method*/;
940 variable4 = variable5;
941 variable5 = TAG_Bool(( variable4 /*g*/ == NIT_NULL /*null*/) || (( variable4 /*g*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable4 /*g*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable4 /*g*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable4 /*g*/,COLOR_kernel___Object_____eqeq))( variable4 /*g*/, NIT_NULL /*null*/) /*MMGlobalProperty::==*/)))));
942 if (UNTAG_Bool(variable5)) { /*if*/
943 goto continue_35;
944 }
945 ((array___AbstractArray___add_t)CALL( variable1 /*classes*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*classes*/, variable3 /*c*/) /*Array::add*/;
946 continue_35: while(0);
947 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
948 }
949 break_35: while(0);
950 variable2 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___cshe))( self) /*MMLocalClass::cshe*/;
951 variable2 = ((partial_order___PartialOrderElement___order_t)CALL(variable2,COLOR_partial_order___PartialOrderElement___order))(variable2) /*PartialOrderElement::order*/;
952 variable2 = ((partial_order___PartialOrder___select_smallests_t)CALL(variable2,COLOR_partial_order___PartialOrder___select_smallests))(variable2, variable1 /*classes*/) /*PartialOrder::select_smallests*/;
953 variable1 = variable2 /*classes=*/;
954 variable3 = NEW_array___Array___init(); /*new Array[MMLocalProperty]*/
955 variable2 = variable3;
956 variable3 = ((array___AbstractArray___iterator_t)CALL( variable1 /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*classes*/) /*Array::iterator*/;
957 while (true) { /*for*/
958 variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
959 if (!UNTAG_Bool(variable4)) break; /*for*/
960 variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
961 variable6 = ((abstractmetamodel___MMLocalClass___method_t)CALL( variable4 /*c*/,COLOR_abstractmetamodel___MMLocalClass___method))( variable4 /*c*/, variable0 /*n*/) /*MMLocalClass::method*/;
962 variable5 = variable6;
963 variable6 = ((abstractmetamodel___MMLocalClass_____bra_t)CALL( variable4 /*c*/,COLOR_abstractmetamodel___MMLocalClass_____bra))( variable4 /*c*/, variable5 /*g*/) /*MMLocalClass::[]*/;
964 ((array___AbstractArray___add_t)CALL( variable2 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*res*/, variable6) /*Array::add*/;
965 continue_36: while(0);
966 ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
967 }
968 break_36: while(0);
969 variable1 = variable2 /*res*/;
970 goto return_label34;
971 return_label34: while(false);
972 tracehead = trace.prev;
973 return variable1;
974 }
975 void abstractmetamodel___MMLocalClass___register_local_property(val_t self, val_t param0) {
976 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass___register_local_property, 467};
977 val_t variable0;
978 val_t variable1;
979 val_t variable2;
980 trace.prev = tracehead; tracehead = &trace;
981 variable0 = param0;
982 variable1 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable0 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable0 /*p*/) /*MMLocalProperty::global*/;
983 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*MMGlobalProperty::==*/)))))));
984 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_abstractmetamodel___MMLocalClass___register_local_property, 470); nit_exit(1);}
985 variable1 = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global( self) /*MMLocalClass::_local_property_by_global*/;
986 variable2 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable0 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable0 /*p*/) /*MMLocalProperty::global*/;
987 variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1, variable2) /*Map::has_key*/;
988 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable1)))) { /*if*/
989 variable1 = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global( self) /*MMLocalClass::_local_property_by_global*/;
990 variable2 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable0 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable0 /*p*/) /*MMLocalProperty::global*/;
991 ((abstract_collection___Map_____braeq_t)CALL(variable1,COLOR_abstract_collection___Map_____braeq))(variable1, variable2, variable0 /*p*/) /*Map::[]=*/;
992 }
993 tracehead = trace.prev;
994 return;
995 }
996 void abstractmetamodel___MMLocalClass___register_global_property(val_t self, val_t param0) {
997 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass___register_global_property, 477};
998 val_t variable0;
999 val_t variable1;
1000 val_t variable2;
1001 val_t variable3;
1002 val_t variable4;
1003 val_t variable5;
1004 trace.prev = tracehead; tracehead = &trace;
1005 variable0 = param0;
1006 variable2 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( variable0 /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___intro))( variable0 /*glob*/) /*MMGlobalProperty::intro*/;
1007 variable1 = variable2;
1008 variable3 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable1 /*prop*/) /*MMConcreteProperty::name*/;
1009 variable2 = variable3;
1010 variable4 = ATTR_abstractmetamodel___MMLocalClass____properties_by_name( self) /*MMLocalClass::_properties_by_name*/;
1011 variable4 = ((abstract_collection___Map_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable2 /*name*/) /*Map::[]*/;
1012 variable3 = variable4;
1013 variable4 = TAG_Bool(( variable3 /*props*/ == NIT_NULL /*null*/) || (( variable3 /*props*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable3 /*props*/,COLOR_kernel___Object_____eqeq))( variable3 /*props*/, NIT_NULL /*null*/) /*Array::==*/)));
1014 if (UNTAG_Bool(variable4)) { /*if*/
1015 variable4 = ATTR_abstractmetamodel___MMLocalClass____properties_by_name( self) /*MMLocalClass::_properties_by_name*/;
1016 variable5 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[MMGlobalProperty]*/
1017 ((array___AbstractArray___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5, variable0 /*glob*/) /*Array::add*/;
1018 ((abstract_collection___Map_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable2 /*name*/, variable5) /*Map::[]=*/;
1019 } else { /*if*/
1020 variable4 = ATTR_abstractmetamodel___MMLocalClass____properties_by_name( self) /*MMLocalClass::_properties_by_name*/;
1021 variable4 = ((abstract_collection___Map_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable2 /*name*/) /*Map::[]*/;
1022 ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4, variable0 /*glob*/) /*Array::add*/;
1023 }
1024 variable4 = ATTR_abstractmetamodel___MMLocalClass____global_properties( self) /*MMLocalClass::_global_properties*/;
1025 ((abstract_collection___SimpleCollection___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4, variable0 /*glob*/) /*Set::add*/;
1026 ((abstractmetamodel___MMLocalClass___register_local_property_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___register_local_property))( self, variable1 /*prop*/) /*MMLocalClass::register_local_property*/;
1027 tracehead = trace.prev;
1028 return;
1029 }
1030 val_t abstractmetamodel___MMLocalClass_____bra(val_t self, val_t param0) {
1031 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass_____bra, 492};
1032 val_t variable0;
1033 val_t variable1;
1034 trace.prev = tracehead; tracehead = &trace;
1035 variable0 = param0;
1036 variable1 = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global( self) /*MMLocalClass::_local_property_by_global*/;
1037 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*Map::==*/)))))));
1038 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_abstractmetamodel___MMLocalClass_____bra, 495); nit_exit(1);}
1039 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*glob*/ == NIT_NULL /*null*/) || (( variable0 /*glob*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*glob*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*glob*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*glob*/,COLOR_kernel___Object_____eqeq))( variable0 /*glob*/, NIT_NULL /*null*/) /*MMGlobalProperty::==*/)))))));
1040 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_abstractmetamodel___MMLocalClass_____bra, 496); nit_exit(1);}
1041 variable1 = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global( self) /*MMLocalClass::_local_property_by_global*/;
1042 variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1, variable0 /*glob*/) /*Map::has_key*/;
1043 if (UNTAG_Bool(variable1)) { /*if*/
1044 variable1 = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global( self) /*MMLocalClass::_local_property_by_global*/;
1045 variable1 = ((abstract_collection___Map_____bra_t)CALL(variable1,COLOR_abstract_collection___Map_____bra))(variable1, variable0 /*glob*/) /*Map::[]*/;
1046 goto return_label39;
1047 }
1048 variable1 = NIT_NULL /*null*/;
1049 goto return_label39;
1050 return_label39: while(false);
1051 tracehead = trace.prev;
1052 return variable1;
1053 }
1054 val_t abstractmetamodel___MMLocalClass___context(val_t self) {
1055 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass___context, 503};
1056 val_t variable0;
1057 trace.prev = tracehead; tracehead = &trace;
1058 variable0 = ((abstractmetamodel___MMLocalClass___module_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___module))( self) /*MMLocalClass::module*/;
1059 variable0 = ((abstractmetamodel___MMModule___context_t)CALL(variable0,COLOR_abstractmetamodel___MMModule___context))(variable0) /*MMModule::context*/;
1060 goto return_label40;
1061 return_label40: while(false);
1062 tracehead = trace.prev;
1063 return variable0;
1064 }
1065 val_t abstractmetamodel___MMLocalClass___to_s(val_t self) {
1066 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalClass___to_s, 506};
1067 val_t variable0;
1068 trace.prev = tracehead; tracehead = &trace;
1069 variable0 = ATTR_abstractmetamodel___MMLocalClass____name( self) /*MMLocalClass::_name*/;
1070 variable0 = ((symbol___Symbol___to_s_t)CALL(variable0,COLOR_string___Object___to_s))(variable0) /*Symbol::to_s*/;
1071 goto return_label41;
1072 return_label41: while(false);
1073 tracehead = trace.prev;
1074 return variable0;
1075 }
1076 val_t abstractmetamodel___MMGlobalProperty___intro(val_t self) {
1077 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalProperty___intro, 516};
1078 trace.prev = tracehead; tracehead = &trace;
1079 tracehead = trace.prev;
1080 return ATTR_abstractmetamodel___MMGlobalProperty____intro( self) /*MMGlobalProperty::_intro*/;
1081 }
1082 val_t abstractmetamodel___MMGlobalProperty___local_class(val_t self) {
1083 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalProperty___local_class, 519};
1084 val_t variable0;
1085 trace.prev = tracehead; tracehead = &trace;
1086 variable0 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalProperty___intro))( self) /*MMGlobalProperty::intro*/;
1087 variable0 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable0,COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable0) /*MMConcreteProperty::local_class*/;
1088 goto return_label42;
1089 return_label42: while(false);
1090 tracehead = trace.prev;
1091 return variable0;
1092 }
1093 val_t abstractmetamodel___MMGlobalProperty___concrete_property_hierarchy(val_t self) {
1094 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalProperty___concrete_property_hierarchy, 525};
1095 trace.prev = tracehead; tracehead = &trace;
1096 tracehead = trace.prev;
1097 return ATTR_abstractmetamodel___MMGlobalProperty____concrete_property_hierarchy( self) /*MMGlobalProperty::_concrete_property_hierarchy*/;
1098 }
1099 void abstractmetamodel___MMGlobalProperty___init(val_t self, val_t param0, int* init_table) {
1100 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalProperty___init, 528};
1101 val_t variable0;
1102 val_t variable1;
1103 trace.prev = tracehead; tracehead = &trace;
1104 variable0 = param0;
1105 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMGlobalProperty].i]) return;
1106 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*p*/ == NIT_NULL /*null*/) || (( variable0 /*p*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*p*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*p*/,COLOR_kernel___Object_____eqeq))( variable0 /*p*/, NIT_NULL /*null*/) /*MMConcreteProperty::==*/)))))));
1107 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_abstractmetamodel___MMGlobalProperty___init, 531); nit_exit(1);}
1108 variable1 = ((abstractmetamodel___MMLocalProperty___concrete_property_t)CALL( variable0 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___concrete_property))( variable0 /*p*/) /*MMConcreteProperty::concrete_property*/;
1109 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*MMConcreteProperty::==*/)))))));
1110 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_abstractmetamodel___MMGlobalProperty___init, 532); nit_exit(1);}
1111 variable1 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[MMConcreteProperty]*/
1112 ATTR_abstractmetamodel___MMGlobalProperty____concrete_property_hierarchy( self) /*MMGlobalProperty::_concrete_property_hierarchy*/ = variable1;
1113 ATTR_abstractmetamodel___MMGlobalProperty____intro( self) /*MMGlobalProperty::_intro*/ = variable0 /*p*/;
1114 variable1 = NEW_array___Array___init(); /*new Array[MMConcreteProperty]*/
1115 ((abstractmetamodel___MMGlobalProperty___add_concrete_property_t)CALL( self,COLOR_abstractmetamodel___MMGlobalProperty___add_concrete_property))( self, variable0 /*p*/, variable1) /*MMGlobalProperty::add_concrete_property*/;
1116 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMGlobalProperty].i] = 1;
1117 tracehead = trace.prev;
1118 return;
1119 }
1120 val_t abstractmetamodel___MMGlobalProperty___to_s(val_t self) {
1121 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalProperty___to_s, 540};
1122 val_t variable0;
1123 trace.prev = tracehead; tracehead = &trace;
1124 variable0 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalProperty___intro))( self) /*MMGlobalProperty::intro*/;
1125 variable0 = ((abstractmetamodel___MMLocalProperty___full_name_t)CALL(variable0,COLOR_abstractmetamodel___MMLocalProperty___full_name))(variable0) /*MMConcreteProperty::full_name*/;
1126 goto return_label44;
1127 return_label44: while(false);
1128 tracehead = trace.prev;
1129 return variable0;
1130 }
1131 void abstractmetamodel___MMGlobalProperty___add_concrete_property(val_t self, val_t param0, val_t param1) {
1132 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalProperty___add_concrete_property, 542};
1133 val_t variable0;
1134 val_t variable1;
1135 val_t variable2;
1136 trace.prev = tracehead; tracehead = &trace;
1137 variable0 = param0;
1138 variable1 = param1;
1139 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*i*/ == NIT_NULL /*null*/) || (( variable0 /*i*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*i*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*i*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*i*/,COLOR_kernel___Object_____eqeq))( variable0 /*i*/, NIT_NULL /*null*/) /*MMConcreteProperty::==*/)))))));
1140 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_abstractmetamodel___MMGlobalProperty___add_concrete_property, 545); nit_exit(1);}
1141 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*sup*/ == NIT_NULL /*null*/) || (( variable1 /*sup*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable1 /*sup*/,COLOR_kernel___Object_____eqeq))( variable1 /*sup*/, NIT_NULL /*null*/) /*Array::==*/)))));
1142 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_abstractmetamodel___MMGlobalProperty___add_concrete_property, 546); nit_exit(1);}
1143 variable2 = ATTR_abstractmetamodel___MMGlobalProperty____concrete_property_hierarchy( self) /*MMGlobalProperty::_concrete_property_hierarchy*/;
1144 variable2 = ((partial_order___PartialOrder___add_t)CALL(variable2,COLOR_partial_order___PartialOrder___add))(variable2, variable0 /*i*/, variable1 /*sup*/) /*PartialOrder::add*/;
1145 ATTR_abstractmetamodel___MMConcreteProperty____cprhe( variable0 /*i*/) /*MMConcreteProperty::_cprhe*/ = variable2;
1146 tracehead = trace.prev;
1147 return;
1148 }
1149 val_t abstractmetamodel___MMGlobalProperty___is_attribute(val_t self) {
1150 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalProperty___is_attribute, 550};
1151 val_t variable0;
1152 trace.prev = tracehead; tracehead = &trace;
1153 variable0 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalProperty___intro))( self) /*MMGlobalProperty::intro*/;
1154 variable0 = TAG_Bool((variable0==NIT_NULL) || VAL_ISA(variable0, COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
1155 goto return_label46;
1156 return_label46: while(false);
1157 tracehead = trace.prev;
1158 return variable0;
1159 }
1160 val_t abstractmetamodel___MMGlobalProperty___is_method(val_t self) {
1161 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalProperty___is_method, 553};
1162 val_t variable0;
1163 trace.prev = tracehead; tracehead = &trace;
1164 variable0 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalProperty___intro))( self) /*MMGlobalProperty::intro*/;
1165 variable0 = TAG_Bool((variable0==NIT_NULL) || VAL_ISA(variable0, COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
1166 goto return_label47;
1167 return_label47: while(false);
1168 tracehead = trace.prev;
1169 return variable0;
1170 }
1171 val_t abstractmetamodel___MMGlobalProperty___is_init(val_t self) {
1172 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalProperty___is_init, 556};
1173 trace.prev = tracehead; tracehead = &trace;
1174 tracehead = trace.prev;
1175 return ATTR_abstractmetamodel___MMGlobalProperty____is_init( self) /*MMGlobalProperty::_is_init*/;
1176 }
1177 void abstractmetamodel___MMGlobalProperty___is_init__eq(val_t self, val_t param0) {
1178 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalProperty___is_init__eq, 556};
1179 trace.prev = tracehead; tracehead = &trace;
1180 ATTR_abstractmetamodel___MMGlobalProperty____is_init( self) /*MMGlobalProperty::_is_init*/ = param0;
1181 tracehead = trace.prev;
1182 return;
1183 }
1184 val_t abstractmetamodel___MMGlobalProperty___visibility_level(val_t self) {
1185 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalProperty___visibility_level, 559};
1186 trace.prev = tracehead; tracehead = &trace;
1187 tracehead = trace.prev;
1188 return ATTR_abstractmetamodel___MMGlobalProperty____visibility_level( self) /*MMGlobalProperty::_visibility_level*/;
1189 }
1190 void abstractmetamodel___MMGlobalProperty___visibility_level__eq(val_t self, val_t param0) {
1191 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMGlobalProperty___visibility_level__eq, 559};
1192 trace.prev = tracehead; tracehead = &trace;
1193 ATTR_abstractmetamodel___MMGlobalProperty____visibility_level( self) /*MMGlobalProperty::_visibility_level*/ = param0;
1194 tracehead = trace.prev;
1195 return;
1196 }
1197 val_t abstractmetamodel___MMLocalProperty___name(val_t self) {
1198 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalProperty___name, 569};
1199 trace.prev = tracehead; tracehead = &trace;
1200 tracehead = trace.prev;
1201 return ATTR_abstractmetamodel___MMLocalProperty____name( self) /*MMLocalProperty::_name*/;
1202 }
1203 val_t abstractmetamodel___MMLocalProperty___local_class(val_t self) {
1204 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalProperty___local_class, 572};
1205 trace.prev = tracehead; tracehead = &trace;
1206 tracehead = trace.prev;
1207 return ATTR_abstractmetamodel___MMLocalProperty____local_class( self) /*MMLocalProperty::_local_class*/;
1208 }
1209 val_t abstractmetamodel___MMLocalProperty___global(val_t self) {
1210 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalProperty___global, 575};
1211 trace.prev = tracehead; tracehead = &trace;
1212 tracehead = trace.prev;
1213 return ATTR_abstractmetamodel___MMLocalProperty____global( self) /*MMLocalProperty::_global*/;
1214 }
1215 val_t abstractmetamodel___MMLocalProperty___super_prop(val_t self) {
1216 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalProperty___super_prop, 578};
1217 trace.prev = tracehead; tracehead = &trace;
1218 tracehead = trace.prev;
1219 return ATTR_abstractmetamodel___MMLocalProperty____super_prop( self) /*MMLocalProperty::_super_prop*/;
1220 }
1221 val_t abstractmetamodel___MMLocalProperty___concrete_property(val_t self) {
1222 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalProperty___concrete_property, 582};
1223 trace.prev = tracehead; tracehead = &trace;
1224 tracehead = trace.prev;
1225 return ATTR_abstractmetamodel___MMLocalProperty____concrete_property( self) /*MMLocalProperty::_concrete_property*/;
1226 }
1227 val_t abstractmetamodel___MMLocalProperty___module(val_t self) {
1228 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalProperty___module, 586};
1229 val_t variable0;
1230 trace.prev = tracehead; tracehead = &trace;
1231 variable0 = ATTR_abstractmetamodel___MMLocalProperty____local_class( self) /*MMLocalProperty::_local_class*/;
1232 variable0 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable0,COLOR_abstractmetamodel___MMLocalClass___module))(variable0) /*MMLocalClass::module*/;
1233 goto return_label48;
1234 return_label48: while(false);
1235 tracehead = trace.prev;
1236 return variable0;
1237 }
1238 val_t abstractmetamodel___MMLocalProperty___full_name(val_t self) {
1239 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalProperty___full_name, 589};
1240 val_t variable0;
1241 val_t variable1;
1242 val_t variable2;
1243 val_t variable3;
1244 val_t variable4;
1245 val_t variable5;
1246 val_t variable6;
1247 val_t variable7;
1248 val_t variable8;
1249 val_t variable9;
1250 val_t variable10;
1251 val_t variable11;
1252 val_t variable12;
1253 val_t variable13;
1254 val_t variable14;
1255 trace.prev = tracehead; tracehead = &trace;
1256 variable0 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___global))( self) /*MMLocalProperty::global*/;
1257 variable0 = TAG_Bool((variable0 == NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0, NIT_NULL /*null*/) /*MMGlobalProperty::==*/)))));
1258 if (UNTAG_Bool(variable0)) { /*if*/
1259 variable0 = NEW_string___String___init(); /*new String*/
1260 variable1 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1261 variable2 = variable1;
1262 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/;
1263 variable3 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___local_class))( self) /*MMLocalProperty::local_class*/;
1264 variable3 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable3,COLOR_abstractmetamodel___MMLocalClass___module))(variable3) /*MMLocalClass::module*/;
1265 variable4 = variable3;
1266 variable4 = ((string___String___to_s_t)CALL(variable4,COLOR_string___Object___to_s))(variable4) /*String::to_s*/;
1267 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/;
1268 variable5 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
1269 variable6 = variable5;
1270 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/;
1271 variable7 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___local_class))( self) /*MMLocalProperty::local_class*/;
1272 variable8 = variable7;
1273 variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
1274 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable8) /*String::append*/;
1275 variable9 = NEW_string___String___with_native(BOX_NativeString("::(?::"), TAG_Int(6)); /*new String*/
1276 variable10 = variable9;
1277 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable10) /*String::append*/;
1278 variable11 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___name))( self) /*MMLocalProperty::name*/;
1279 variable12 = variable11;
1280 variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
1281 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable12) /*String::append*/;
1282 variable13 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
1283 variable14 = variable13;
1284 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable14) /*String::append*/;
1285 goto return_label49;
1286 } else { /*if*/
1287 variable0 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___global))( self) /*MMLocalProperty::global*/;
1288 variable0 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable0,COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable0) /*MMGlobalProperty::intro*/;
1289 variable0 = TAG_Bool((variable0 == self) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, self)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0, self) /*MMConcreteProperty::==*/)))));
1290 if (UNTAG_Bool(variable0)) { /*if*/
1291 variable0 = NEW_string___String___init(); /*new String*/
1292 variable1 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1293 variable2 = variable1;
1294 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/;
1295 variable3 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___local_class))( self) /*MMLocalProperty::local_class*/;
1296 variable3 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable3,COLOR_abstractmetamodel___MMLocalClass___module))(variable3) /*MMLocalClass::module*/;
1297 variable4 = variable3;
1298 variable4 = ((string___String___to_s_t)CALL(variable4,COLOR_string___Object___to_s))(variable4) /*String::to_s*/;
1299 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/;
1300 variable5 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
1301 variable6 = variable5;
1302 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/;
1303 variable7 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___local_class))( self) /*MMLocalProperty::local_class*/;
1304 variable8 = variable7;
1305 variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
1306 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable8) /*String::append*/;
1307 variable9 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
1308 variable10 = variable9;
1309 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable10) /*String::append*/;
1310 variable11 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___name))( self) /*MMLocalProperty::name*/;
1311 variable12 = variable11;
1312 variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
1313 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable12) /*String::append*/;
1314 variable13 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1315 variable14 = variable13;
1316 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable14) /*String::append*/;
1317 goto return_label49;
1318 } else { /*if*/
1319 variable0 = NEW_string___String___init(); /*new String*/
1320 variable1 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1321 variable2 = variable1;
1322 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/;
1323 variable3 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___local_class))( self) /*MMLocalProperty::local_class*/;
1324 variable3 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable3,COLOR_abstractmetamodel___MMLocalClass___module))(variable3) /*MMLocalClass::module*/;
1325 variable4 = variable3;
1326 variable4 = ((string___String___to_s_t)CALL(variable4,COLOR_string___Object___to_s))(variable4) /*String::to_s*/;
1327 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/;
1328 variable5 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
1329 variable6 = variable5;
1330 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/;
1331 variable7 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___local_class))( self) /*MMLocalProperty::local_class*/;
1332 variable8 = variable7;
1333 variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
1334 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable8) /*String::append*/;
1335 variable9 = NEW_string___String___with_native(BOX_NativeString("::("), TAG_Int(3)); /*new String*/
1336 variable10 = variable9;
1337 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable10) /*String::append*/;
1338 variable11 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___global))( self) /*MMLocalProperty::global*/;
1339 variable11 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable11,COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable11) /*MMGlobalProperty::intro*/;
1340 variable11 = ((abstractmetamodel___MMLocalProperty___full_name_t)CALL(variable11,COLOR_abstractmetamodel___MMLocalProperty___full_name))(variable11) /*MMConcreteProperty::full_name*/;
1341 variable12 = variable11;
1342 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable12) /*String::append*/;
1343 variable13 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
1344 variable14 = variable13;
1345 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable14) /*String::append*/;
1346 goto return_label49;
1347 }
1348 }
1349 return_label49: while(false);
1350 tracehead = trace.prev;
1351 return variable0;
1352 }
1353 void abstractmetamodel___MMLocalProperty___set_global(val_t self, val_t param0) {
1354 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalProperty___set_global, 601};
1355 val_t variable0;
1356 val_t variable1;
1357 trace.prev = tracehead; tracehead = &trace;
1358 variable0 = param0;
1359 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*g*/ == NIT_NULL /*null*/) || (( variable0 /*g*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*g*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*g*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*g*/,COLOR_kernel___Object_____eqeq))( variable0 /*g*/, NIT_NULL /*null*/) /*MMGlobalProperty::==*/)))))));
1360 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_abstractmetamodel___MMLocalProperty___set_global, 604); nit_exit(1);}
1361 ATTR_abstractmetamodel___MMLocalProperty____global( self) /*MMLocalProperty::_global*/ = variable0 /*g*/;
1362 variable1 = ATTR_abstractmetamodel___MMLocalProperty____local_class( self) /*MMLocalProperty::_local_class*/;
1363 ((abstractmetamodel___MMLocalClass___register_local_property_t)CALL(variable1,COLOR_abstractmetamodel___MMLocalClass___register_local_property))(variable1, self) /*MMLocalClass::register_local_property*/;
1364 tracehead = trace.prev;
1365 return;
1366 }
1367 val_t abstractmetamodel___MMLocalProperty___to_s(val_t self) {
1368 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalProperty___to_s, 609};
1369 val_t variable0;
1370 trace.prev = tracehead; tracehead = &trace;
1371 variable0 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___name))( self) /*MMLocalProperty::name*/;
1372 variable0 = ((symbol___Symbol___to_s_t)CALL(variable0,COLOR_string___Object___to_s))(variable0) /*Symbol::to_s*/;
1373 goto return_label51;
1374 return_label51: while(false);
1375 tracehead = trace.prev;
1376 return variable0;
1377 }
1378 void abstractmetamodel___MMLocalProperty___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
1379 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMLocalProperty___init, 611};
1380 val_t variable0;
1381 val_t variable1;
1382 val_t variable2;
1383 trace.prev = tracehead; tracehead = &trace;
1384 variable0 = param0;
1385 variable1 = param1;
1386 variable2 = param2;
1387 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMLocalProperty].i]) return;
1388 ATTR_abstractmetamodel___MMLocalProperty____name( self) /*MMLocalProperty::_name*/ = variable0 /*n*/;
1389 ATTR_abstractmetamodel___MMLocalProperty____local_class( self) /*MMLocalProperty::_local_class*/ = variable1 /*bc*/;
1390 ATTR_abstractmetamodel___MMLocalProperty____concrete_property( self) /*MMLocalProperty::_concrete_property*/ = variable2 /*i*/;
1391 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMLocalProperty].i] = 1;
1392 tracehead = trace.prev;
1393 return;
1394 }
1395 val_t abstractmetamodel___MMConcreteProperty___cprhe(val_t self) {
1396 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMConcreteProperty___cprhe, 637};
1397 trace.prev = tracehead; tracehead = &trace;
1398 tracehead = trace.prev;
1399 return ATTR_abstractmetamodel___MMConcreteProperty____cprhe( self) /*MMConcreteProperty::_cprhe*/;
1400 }
1401 val_t abstractmetamodel___MMConcreteProperty___need_super(val_t self) {
1402 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMConcreteProperty___need_super, 640};
1403 trace.prev = tracehead; tracehead = &trace;
1404 tracehead = trace.prev;
1405 return ATTR_abstractmetamodel___MMConcreteProperty____need_super( self) /*MMConcreteProperty::_need_super*/;
1406 }
1407 void abstractmetamodel___MMConcreteProperty___need_super__eq(val_t self, val_t param0) {
1408 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMConcreteProperty___need_super__eq, 640};
1409 trace.prev = tracehead; tracehead = &trace;
1410 ATTR_abstractmetamodel___MMConcreteProperty____need_super( self) /*MMConcreteProperty::_need_super*/ = param0;
1411 tracehead = trace.prev;
1412 return;
1413 }
1414 void abstractmetamodel___MMConcreteProperty___new_global(val_t self) {
1415 struct trace_t trace = {NULL, LOCATE_abstractmetamodel___MMConcreteProperty___new_global, 643};
1416 val_t variable0;
1417 val_t variable1;
1418 trace.prev = tracehead; tracehead = &trace;
1419 variable0 = ATTR_abstractmetamodel___MMLocalProperty____global( self) /*MMConcreteProperty::_global*/;
1420 variable0 = TAG_Bool((variable0 == NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0, NIT_NULL /*null*/) /*MMGlobalProperty::==*/)))));
1421 if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert%s failed (%s: %d)\n", "", LOCATE_abstractmetamodel___MMConcreteProperty___new_global, 646); nit_exit(1);}
1422 variable0 = NEW_abstractmetamodel___MMGlobalProperty___init( self); /*new MMGlobalProperty*/
1423 ATTR_abstractmetamodel___MMLocalProperty____global( self) /*MMConcreteProperty::_global*/ = variable0;
1424 variable0 = ATTR_abstractmetamodel___MMLocalProperty____local_class( self) /*MMConcreteProperty::_local_class*/;
1425 variable1 = ATTR_abstractmetamodel___MMLocalProperty____global( self) /*MMConcreteProperty::_global*/;
1426 ((abstractmetamodel___MMLocalClass___register_global_property_t)CALL(variable0,COLOR_abstractmetamodel___MMLocalClass___register_global_property))(variable0, variable1) /*MMLocalClass::register_global_property*/;
1427 tracehead = trace.prev;
1428 return;
1429 }