Update c_src
[nit.git] / c_src / abstractmetamodel._sep.c
1 /* This C file is generated by NIT to compile module abstractmetamodel. */
2 #include "abstractmetamodel._sep.h"
3 void abstractmetamodel___MMContext___init(val_t self, int* init_table) {
4 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 26, LOCATE_abstractmetamodel___MMContext___init};
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, 28, LOCATE_abstractmetamodel___MMContext___module_hierarchy};
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, 31, LOCATE_abstractmetamodel___MMContext___class_hierarchy};
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, 38, LOCATE_abstractmetamodel___MMContext___modules};
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, 41, LOCATE_abstractmetamodel___MMContext___add_module};
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) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*supers*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*supers*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*supers*/,COLOR_kernel___Object_____eqeq))( variable1 /*supers*/, NIT_NULL /*null*/) /*Object::==*/)))))));
39 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMContext___add_module, LOCATE_abstractmetamodel, 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*/) /*Object::==*/)))))));
46 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMContext___add_module, LOCATE_abstractmetamodel, 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*/) /*AbstractArray::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, 51, LOCATE_abstractmetamodel___MMContext___add_global_class};
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*/) /*AbstractArray::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, 54, LOCATE_abstractmetamodel___MMContext___add_local_class};
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) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*sup*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*sup*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*sup*/,COLOR_kernel___Object_____eqeq))( variable1 /*sup*/, NIT_NULL /*null*/) /*Object::==*/)))))));
81 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMContext___add_local_class, LOCATE_abstractmetamodel, 57); nit_exit(1);}
82 variable3 = NEW_array___Array___init(); /*new Array[E]*/
83 variable2 = variable3;
84 variable4 = NEW_array___Array___init(); /*new Array[E]*/
85 variable3 = variable4;
86 variable4 = ((array___AbstractArray___iterator_t)CALL( variable1 /*sup*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*sup*/) /*AbstractArray::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*/) /*AbstractArray::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) /*AbstractArray::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*/) /*AbstractArray::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*/) /*AbstractArray::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, 77, LOCATE_abstractmetamodel___MMDirectory___name};
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, 80, LOCATE_abstractmetamodel___MMDirectory___path};
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, 83, LOCATE_abstractmetamodel___MMDirectory___parent};
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, 87, LOCATE_abstractmetamodel___MMDirectory___owner};
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, 87, LOCATE_abstractmetamodel___MMDirectory___owner__eq};
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, 90, LOCATE_abstractmetamodel___MMDirectory___modules};
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, 93, LOCATE_abstractmetamodel___MMDirectory___add_module};
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", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMDirectory___add_module, LOCATE_abstractmetamodel, 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, 100, LOCATE_abstractmetamodel___MMDirectory___dhe};
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, 103, LOCATE_abstractmetamodel___MMDirectory___init};
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, 109, LOCATE_abstractmetamodel___MMDirectory___full_name_for};
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, 117, LOCATE_abstractmetamodel___MMModule___context};
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, 120, LOCATE_abstractmetamodel___MMModule___name};
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, 123, LOCATE_abstractmetamodel___MMModule___full_name};
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, 126, LOCATE_abstractmetamodel___MMModule___directory};
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, 129, LOCATE_abstractmetamodel___MMModule___mhe};
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, 132, LOCATE_abstractmetamodel___MMModule___global_classes};
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, 135, LOCATE_abstractmetamodel___MMModule___local_classes};
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, 138, LOCATE_abstractmetamodel___MMModule___class_specialization_hierarchy};
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, 150, LOCATE_abstractmetamodel___MMModule___explicit_imported_modules};
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, 159, LOCATE_abstractmetamodel___MMModule___init};
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*/) /*Object::==*/)))));
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, 172, LOCATE_abstractmetamodel___MMModule___add_super_module};
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*/) /*SimpleCollection::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*/) /*SimpleCollection::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) /*SimpleCollection::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) /*SimpleCollection::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) /*SimpleCollection::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*/) /*SimpleCollection::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) /*SimpleCollection::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) /*SimpleCollection::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*/) /*SimpleCollection::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) /*SimpleCollection::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) /*SimpleCollection::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, 196, LOCATE_abstractmetamodel___MMModule___visibility_for};
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) /*Object::==*/)))));
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*/) /*Collection::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*/) /*Collection::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*/) /*Collection::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, 215, LOCATE_abstractmetamodel___MMModule_____bra};
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*/) /*Object::==*/)))))));
413 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMModule_____bra, LOCATE_abstractmetamodel, 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*/) /*Object::==*/)))))));
415 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMModule_____bra, LOCATE_abstractmetamodel, 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, 227, LOCATE_abstractmetamodel___MMModule___add_local_class};
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*/) /*AbstractArray::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, 234, LOCATE_abstractmetamodel___MMModule___class_by_name};
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, 240, LOCATE_abstractmetamodel___MMModule___has_global_class_named};
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, 246, LOCATE_abstractmetamodel___MMModule___global_class_named};
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, 257, LOCATE_abstractmetamodel___MMModule___to_s};
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, 259, LOCATE_abstractmetamodel___MMModule___set_supers_class};
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) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*supers*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*supers*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*supers*/,COLOR_kernel___Object_____eqeq))( variable1 /*supers*/, NIT_NULL /*null*/) /*Object::==*/)))))));
511 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMModule___set_supers_class, LOCATE_abstractmetamodel, 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) /*Collection::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*/) /*SimpleCollection::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, 270, LOCATE_abstractmetamodel___MMModule___register_global_class};
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*/) /*Object::==*/)))))));
537 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMModule___register_global_class, LOCATE_abstractmetamodel, 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, 279, LOCATE_abstractmetamodel___MMGlobalClass___intro};
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, 282, LOCATE_abstractmetamodel___MMGlobalClass___class_refinement_hierarchy};
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, 286, LOCATE_abstractmetamodel___MMGlobalClass___init};
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, 293, LOCATE_abstractmetamodel___MMGlobalClass___name};
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, 299, LOCATE_abstractmetamodel___MMGlobalClass___module};
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, 305, LOCATE_abstractmetamodel___MMGlobalClass___to_s};
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, 310, LOCATE_abstractmetamodel___MMGlobalClass___register_local_class};
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*/) /*Object::==*/)))))));
615 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMGlobalClass___register_local_class, LOCATE_abstractmetamodel, 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*/) /*Object::==*/)))));
618 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMGlobalClass___register_local_class, LOCATE_abstractmetamodel, 314); nit_exit(1);}
619 variable2 = NEW_array___Array___init(); /*new Array[E]*/
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*/) /*AbstractArray::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, 324, LOCATE_abstractmetamodel___MMGlobalClass___is_interface};
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, 324, LOCATE_abstractmetamodel___MMGlobalClass___is_interface__eq};
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, 327, LOCATE_abstractmetamodel___MMGlobalClass___is_abstract};
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, 327, LOCATE_abstractmetamodel___MMGlobalClass___is_abstract__eq};
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, 330, LOCATE_abstractmetamodel___MMGlobalClass___is_universal};
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, 330, LOCATE_abstractmetamodel___MMGlobalClass___is_universal__eq};
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, 333, LOCATE_abstractmetamodel___MMGlobalClass___visibility_level};
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, 333, LOCATE_abstractmetamodel___MMGlobalClass___visibility_level__eq};
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, 341, LOCATE_abstractmetamodel___MMLocalClass___name};
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, 344, LOCATE_abstractmetamodel___MMLocalClass___arity};
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, 348, LOCATE_abstractmetamodel___MMLocalClass___module};
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, 351, LOCATE_abstractmetamodel___MMLocalClass___abstract};
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, 351, LOCATE_abstractmetamodel___MMLocalClass___abstract__eq};
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, 354, LOCATE_abstractmetamodel___MMLocalClass___global};
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, 357, LOCATE_abstractmetamodel___MMLocalClass___crhe};
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, 360, LOCATE_abstractmetamodel___MMLocalClass___cshe};
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, 363, LOCATE_abstractmetamodel___MMLocalClass___che};
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, 366, LOCATE_abstractmetamodel___MMLocalClass___local_property_by_global};
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, 369, LOCATE_abstractmetamodel___MMLocalClass___global_properties};
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, 372, LOCATE_abstractmetamodel___MMLocalClass___properties_by_name};
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, 375, LOCATE_abstractmetamodel___MMLocalClass___init};
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, 382, LOCATE_abstractmetamodel___MMLocalClass___for_module};
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, 388, LOCATE_abstractmetamodel___MMLocalClass___new_global};
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*/) /*AbstractArray::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, 397, LOCATE_abstractmetamodel___MMLocalClass___set_global};
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*/) /*Object::==*/)))))));
827 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___set_global, LOCATE_abstractmetamodel, 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, 408, LOCATE_abstractmetamodel___MMLocalClass___has_global_property_by_name};
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) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*props*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*props*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*props*/,COLOR_kernel___Object_____eqeq))( variable1 /*props*/, NIT_NULL /*null*/) /*Object::==*/)))))));
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, 416, LOCATE_abstractmetamodel___MMLocalClass___get_property_by_name};
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*/) /*AbstractArray::==*/)));
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*/) /*AbstractArray::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*/) /*IndexedCollection::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, 427, LOCATE_abstractmetamodel___MMLocalClass___attribute};
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, 434, LOCATE_abstractmetamodel___MMLocalClass___method};
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*/) /*Object::==*/)))))));
903 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___method, LOCATE_abstractmetamodel, 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) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*props*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*props*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*props*/,COLOR_kernel___Object_____eqeq))( variable1 /*props*/, NIT_NULL /*null*/) /*Object::==*/)))))));
908 if (UNTAG_Bool(variable2)) { /*if*/
909 variable2 = ((abstract_collection___IndexedCollection___first_t)CALL( variable1 /*props*/,COLOR_abstract_collection___Collection___first))( variable1 /*props*/) /*IndexedCollection::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___select_method(val_t self, val_t param0) {
920 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 447, LOCATE_abstractmetamodel___MMLocalClass___select_method};
921 val_t variable0;
922 val_t variable1;
923 val_t variable2;
924 val_t variable3;
925 trace.prev = tracehead; tracehead = &trace;
926 variable0 = param0;
927 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*name*/ == NIT_NULL /*null*/) || (( variable0 /*name*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*name*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*name*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*name*/,COLOR_kernel___Object_____eqeq))( variable0 /*name*/, NIT_NULL /*null*/) /*Object::==*/)))))));
928 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___select_method, LOCATE_abstractmetamodel, 451); nit_exit(1);}
929 variable2 = ((abstractmetamodel___MMLocalClass___method_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___method))( self, variable0 /*name*/) /*MMLocalClass::method*/;
930 variable1 = variable2;
931 variable2 = TAG_Bool(( variable1 /*gp*/ == NIT_NULL /*null*/) || (( variable1 /*gp*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*gp*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*gp*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*gp*/,COLOR_kernel___Object_____eqeq))( variable1 /*gp*/, NIT_NULL /*null*/) /*Object::==*/)))));
932 if (UNTAG_Bool(variable2)) { /*if*/
933 variable1 = NIT_NULL /*null*/;
934 goto return_label34;
935 }
936 variable3 = ((abstractmetamodel___MMLocalClass_____bra_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass_____bra))( self, variable1 /*gp*/) /*MMLocalClass::[]*/;
937 variable2 = variable3;
938 variable3 = TAG_Bool(( variable2 /*res*/==NIT_NULL) || VAL_ISA( variable2 /*res*/, COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
939 if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___select_method, LOCATE_abstractmetamodel, 455); nit_exit(1);}
940 variable1 = variable2 /*res*/;
941 goto return_label34;
942 return_label34: while(false);
943 tracehead = trace.prev;
944 return variable1;
945 }
946 val_t abstractmetamodel___MMLocalClass___select_attribute(val_t self, val_t param0) {
947 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 459, LOCATE_abstractmetamodel___MMLocalClass___select_attribute};
948 val_t variable0;
949 val_t variable1;
950 val_t variable2;
951 val_t variable3;
952 trace.prev = tracehead; tracehead = &trace;
953 variable0 = param0;
954 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*name*/ == NIT_NULL /*null*/) || (( variable0 /*name*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*name*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*name*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*name*/,COLOR_kernel___Object_____eqeq))( variable0 /*name*/, NIT_NULL /*null*/) /*Object::==*/)))))));
955 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___select_attribute, LOCATE_abstractmetamodel, 463); nit_exit(1);}
956 variable2 = ((abstractmetamodel___MMLocalClass___attribute_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___attribute))( self, variable0 /*name*/) /*MMLocalClass::attribute*/;
957 variable1 = variable2;
958 variable2 = TAG_Bool(( variable1 /*gp*/ == NIT_NULL /*null*/) || (( variable1 /*gp*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*gp*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*gp*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*gp*/,COLOR_kernel___Object_____eqeq))( variable1 /*gp*/, NIT_NULL /*null*/) /*Object::==*/)))));
959 if (UNTAG_Bool(variable2)) { /*if*/
960 variable1 = NIT_NULL /*null*/;
961 goto return_label35;
962 }
963 variable3 = ((abstractmetamodel___MMLocalClass_____bra_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass_____bra))( self, variable1 /*gp*/) /*MMLocalClass::[]*/;
964 variable2 = variable3;
965 variable3 = TAG_Bool(( variable2 /*res*/==NIT_NULL) || VAL_ISA( variable2 /*res*/, COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
966 if (!UNTAG_Bool(variable3)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___select_attribute, LOCATE_abstractmetamodel, 467); nit_exit(1);}
967 variable1 = variable2 /*res*/;
968 goto return_label35;
969 return_label35: while(false);
970 tracehead = trace.prev;
971 return variable1;
972 }
973 val_t abstractmetamodel___MMLocalClass___super_methods_named(val_t self, val_t param0) {
974 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 471, LOCATE_abstractmetamodel___MMLocalClass___super_methods_named};
975 val_t variable0;
976 val_t variable1;
977 val_t variable2;
978 val_t variable3;
979 val_t variable4;
980 val_t variable5;
981 val_t variable6;
982 trace.prev = tracehead; tracehead = &trace;
983 variable0 = param0;
984 variable2 = NEW_array___Array___init(); /*new Array[E]*/
985 variable1 = variable2;
986 variable2 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___cshe))( self) /*MMLocalClass::cshe*/;
987 variable2 = ((partial_order___PartialOrderElement___greaters_t)CALL(variable2,COLOR_partial_order___PartialOrderElement___greaters))(variable2) /*PartialOrderElement::greaters*/;
988 variable2 = ((abstract_collection___Collection___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Collection::iterator*/;
989 while (true) { /*for*/
990 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
991 if (!UNTAG_Bool(variable3)) break; /*for*/
992 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
993 variable5 = ((abstractmetamodel___MMLocalClass___method_t)CALL( variable3 /*c*/,COLOR_abstractmetamodel___MMLocalClass___method))( variable3 /*c*/, variable0 /*n*/) /*MMLocalClass::method*/;
994 variable4 = variable5;
995 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*/) /*Object::==*/)))));
996 if (UNTAG_Bool(variable5)) { /*if*/
997 goto continue_37;
998 }
999 ((array___AbstractArray___add_t)CALL( variable1 /*classes*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*classes*/, variable3 /*c*/) /*AbstractArray::add*/;
1000 continue_37: while(0);
1001 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
1002 }
1003 break_37: while(0);
1004 variable2 = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___cshe))( self) /*MMLocalClass::cshe*/;
1005 variable2 = ((partial_order___PartialOrderElement___order_t)CALL(variable2,COLOR_partial_order___PartialOrderElement___order))(variable2) /*PartialOrderElement::order*/;
1006 variable2 = ((partial_order___PartialOrder___select_smallests_t)CALL(variable2,COLOR_partial_order___PartialOrder___select_smallests))(variable2, variable1 /*classes*/) /*PartialOrder::select_smallests*/;
1007 variable1 = variable2 /*classes=*/;
1008 variable3 = NEW_array___Array___init(); /*new Array[E]*/
1009 variable2 = variable3;
1010 variable3 = ((array___AbstractArray___iterator_t)CALL( variable1 /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable1 /*classes*/) /*AbstractArray::iterator*/;
1011 while (true) { /*for*/
1012 variable4 = ((array___ArrayIterator___is_ok_t)CALL(variable3,COLOR_abstract_collection___Iterator___is_ok))(variable3) /*ArrayIterator::is_ok*/;
1013 if (!UNTAG_Bool(variable4)) break; /*for*/
1014 variable4 = ((array___ArrayIterator___item_t)CALL(variable3,COLOR_abstract_collection___Iterator___item))(variable3) /*ArrayIterator::item*/;
1015 variable6 = ((abstractmetamodel___MMLocalClass___method_t)CALL( variable4 /*c*/,COLOR_abstractmetamodel___MMLocalClass___method))( variable4 /*c*/, variable0 /*n*/) /*MMLocalClass::method*/;
1016 variable5 = variable6;
1017 variable6 = ((abstractmetamodel___MMLocalClass_____bra_t)CALL( variable4 /*c*/,COLOR_abstractmetamodel___MMLocalClass_____bra))( variable4 /*c*/, variable5 /*g*/) /*MMLocalClass::[]*/;
1018 ((array___AbstractArray___add_t)CALL( variable2 /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*res*/, variable6) /*AbstractArray::add*/;
1019 continue_38: while(0);
1020 ((array___ArrayIterator___next_t)CALL(variable3,COLOR_abstract_collection___Iterator___next))(variable3) /*ArrayIterator::next*/;
1021 }
1022 break_38: while(0);
1023 variable1 = variable2 /*res*/;
1024 goto return_label36;
1025 return_label36: while(false);
1026 tracehead = trace.prev;
1027 return variable1;
1028 }
1029 void abstractmetamodel___MMLocalClass___register_local_property(val_t self, val_t param0) {
1030 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 491, LOCATE_abstractmetamodel___MMLocalClass___register_local_property};
1031 val_t variable0;
1032 val_t variable1;
1033 val_t variable2;
1034 trace.prev = tracehead; tracehead = &trace;
1035 variable0 = param0;
1036 variable1 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable0 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable0 /*p*/) /*MMLocalProperty::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*/) /*Object::==*/)))))));
1038 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___register_local_property, LOCATE_abstractmetamodel, 494); nit_exit(1);}
1039 variable1 = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global( self) /*MMLocalClass::_local_property_by_global*/;
1040 variable2 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable0 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable0 /*p*/) /*MMLocalProperty::global*/;
1041 variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1, variable2) /*Map::has_key*/;
1042 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable1)))) { /*if*/
1043 variable1 = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global( self) /*MMLocalClass::_local_property_by_global*/;
1044 variable2 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable0 /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable0 /*p*/) /*MMLocalProperty::global*/;
1045 ((abstract_collection___Map_____braeq_t)CALL(variable1,COLOR_abstract_collection___Map_____braeq))(variable1, variable2, variable0 /*p*/) /*Map::[]=*/;
1046 }
1047 tracehead = trace.prev;
1048 return;
1049 }
1050 void abstractmetamodel___MMLocalClass___register_global_property(val_t self, val_t param0) {
1051 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 501, LOCATE_abstractmetamodel___MMLocalClass___register_global_property};
1052 val_t variable0;
1053 val_t variable1;
1054 val_t variable2;
1055 val_t variable3;
1056 val_t variable4;
1057 val_t variable5;
1058 trace.prev = tracehead; tracehead = &trace;
1059 variable0 = param0;
1060 variable2 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( variable0 /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___intro))( variable0 /*glob*/) /*MMGlobalProperty::intro*/;
1061 variable1 = variable2;
1062 variable3 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable1 /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable1 /*prop*/) /*MMLocalProperty::name*/;
1063 variable2 = variable3;
1064 variable4 = ATTR_abstractmetamodel___MMLocalClass____properties_by_name( self) /*MMLocalClass::_properties_by_name*/;
1065 variable4 = ((abstract_collection___Map_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable2 /*name*/) /*Map::[]*/;
1066 variable3 = variable4;
1067 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*/) /*AbstractArray::==*/)));
1068 if (UNTAG_Bool(variable4)) { /*if*/
1069 variable4 = ATTR_abstractmetamodel___MMLocalClass____properties_by_name( self) /*MMLocalClass::_properties_by_name*/;
1070 variable5 = NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[E]*/
1071 ((array___AbstractArray___add_t)CALL(variable5,COLOR_abstract_collection___SimpleCollection___add))(variable5, variable0 /*glob*/) /*AbstractArray::add*/;
1072 ((abstract_collection___Map_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable2 /*name*/, variable5) /*Map::[]=*/;
1073 } else { /*if*/
1074 variable4 = ATTR_abstractmetamodel___MMLocalClass____properties_by_name( self) /*MMLocalClass::_properties_by_name*/;
1075 variable4 = ((abstract_collection___Map_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4, variable2 /*name*/) /*Map::[]*/;
1076 ((array___AbstractArray___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4, variable0 /*glob*/) /*AbstractArray::add*/;
1077 }
1078 variable4 = ATTR_abstractmetamodel___MMLocalClass____global_properties( self) /*MMLocalClass::_global_properties*/;
1079 ((abstract_collection___SimpleCollection___add_t)CALL(variable4,COLOR_abstract_collection___SimpleCollection___add))(variable4, variable0 /*glob*/) /*SimpleCollection::add*/;
1080 ((abstractmetamodel___MMLocalClass___register_local_property_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___register_local_property))( self, variable1 /*prop*/) /*MMLocalClass::register_local_property*/;
1081 tracehead = trace.prev;
1082 return;
1083 }
1084 val_t abstractmetamodel___MMLocalClass_____bra(val_t self, val_t param0) {
1085 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 516, LOCATE_abstractmetamodel___MMLocalClass_____bra};
1086 val_t variable0;
1087 val_t variable1;
1088 trace.prev = tracehead; tracehead = &trace;
1089 variable0 = param0;
1090 variable1 = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global( self) /*MMLocalClass::_local_property_by_global*/;
1091 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*/) /*Object::==*/)))))));
1092 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass_____bra, LOCATE_abstractmetamodel, 519); nit_exit(1);}
1093 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*/) /*Object::==*/)))))));
1094 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass_____bra, LOCATE_abstractmetamodel, 520); nit_exit(1);}
1095 variable1 = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global( self) /*MMLocalClass::_local_property_by_global*/;
1096 variable1 = ((abstract_collection___Map___has_key_t)CALL(variable1,COLOR_abstract_collection___Map___has_key))(variable1, variable0 /*glob*/) /*Map::has_key*/;
1097 if (UNTAG_Bool(variable1)) { /*if*/
1098 variable1 = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global( self) /*MMLocalClass::_local_property_by_global*/;
1099 variable1 = ((abstract_collection___Map_____bra_t)CALL(variable1,COLOR_abstract_collection___Map_____bra))(variable1, variable0 /*glob*/) /*Map::[]*/;
1100 goto return_label41;
1101 }
1102 variable1 = NIT_NULL /*null*/;
1103 goto return_label41;
1104 return_label41: while(false);
1105 tracehead = trace.prev;
1106 return variable1;
1107 }
1108 val_t abstractmetamodel___MMLocalClass___context(val_t self) {
1109 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 527, LOCATE_abstractmetamodel___MMLocalClass___context};
1110 val_t variable0;
1111 trace.prev = tracehead; tracehead = &trace;
1112 variable0 = ((abstractmetamodel___MMLocalClass___module_t)CALL( self,COLOR_abstractmetamodel___MMLocalClass___module))( self) /*MMLocalClass::module*/;
1113 variable0 = ((abstractmetamodel___MMModule___context_t)CALL(variable0,COLOR_abstractmetamodel___MMModule___context))(variable0) /*MMModule::context*/;
1114 goto return_label42;
1115 return_label42: while(false);
1116 tracehead = trace.prev;
1117 return variable0;
1118 }
1119 val_t abstractmetamodel___MMLocalClass___to_s(val_t self) {
1120 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 530, LOCATE_abstractmetamodel___MMLocalClass___to_s};
1121 val_t variable0;
1122 trace.prev = tracehead; tracehead = &trace;
1123 variable0 = ATTR_abstractmetamodel___MMLocalClass____name( self) /*MMLocalClass::_name*/;
1124 variable0 = ((symbol___Symbol___to_s_t)CALL(variable0,COLOR_string___Object___to_s))(variable0) /*Symbol::to_s*/;
1125 goto return_label43;
1126 return_label43: while(false);
1127 tracehead = trace.prev;
1128 return variable0;
1129 }
1130 val_t abstractmetamodel___MMGlobalProperty___intro(val_t self) {
1131 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 540, LOCATE_abstractmetamodel___MMGlobalProperty___intro};
1132 trace.prev = tracehead; tracehead = &trace;
1133 tracehead = trace.prev;
1134 return ATTR_abstractmetamodel___MMGlobalProperty____intro( self) /*MMGlobalProperty::_intro*/;
1135 }
1136 val_t abstractmetamodel___MMGlobalProperty___local_class(val_t self) {
1137 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 543, LOCATE_abstractmetamodel___MMGlobalProperty___local_class};
1138 val_t variable0;
1139 trace.prev = tracehead; tracehead = &trace;
1140 variable0 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalProperty___intro))( self) /*MMGlobalProperty::intro*/;
1141 variable0 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable0,COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable0) /*MMLocalProperty::local_class*/;
1142 goto return_label44;
1143 return_label44: while(false);
1144 tracehead = trace.prev;
1145 return variable0;
1146 }
1147 val_t abstractmetamodel___MMGlobalProperty___property_hierarchy(val_t self) {
1148 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 549, LOCATE_abstractmetamodel___MMGlobalProperty___property_hierarchy};
1149 trace.prev = tracehead; tracehead = &trace;
1150 tracehead = trace.prev;
1151 return ATTR_abstractmetamodel___MMGlobalProperty____property_hierarchy( self) /*MMGlobalProperty::_property_hierarchy*/;
1152 }
1153 void abstractmetamodel___MMGlobalProperty___init(val_t self, val_t param0, int* init_table) {
1154 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 552, LOCATE_abstractmetamodel___MMGlobalProperty___init};
1155 val_t variable0;
1156 val_t variable1;
1157 trace.prev = tracehead; tracehead = &trace;
1158 variable0 = param0;
1159 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMGlobalProperty].i]) return;
1160 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*/) /*Object::==*/)))))));
1161 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMGlobalProperty___init, LOCATE_abstractmetamodel, 555); nit_exit(1);}
1162 variable1 = NEW_partial_order___PartialOrder___init(); /*new PartialOrder[E]*/
1163 ATTR_abstractmetamodel___MMGlobalProperty____property_hierarchy( self) /*MMGlobalProperty::_property_hierarchy*/ = variable1;
1164 ATTR_abstractmetamodel___MMGlobalProperty____intro( self) /*MMGlobalProperty::_intro*/ = variable0 /*p*/;
1165 variable1 = NEW_array___Array___init(); /*new Array[E]*/
1166 ((abstractmetamodel___MMGlobalProperty___add_local_property_t)CALL( self,COLOR_abstractmetamodel___MMGlobalProperty___add_local_property))( self, variable0 /*p*/, variable1) /*MMGlobalProperty::add_local_property*/;
1167 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMGlobalProperty].i] = 1;
1168 tracehead = trace.prev;
1169 return;
1170 }
1171 val_t abstractmetamodel___MMGlobalProperty___to_s(val_t self) {
1172 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 563, LOCATE_abstractmetamodel___MMGlobalProperty___to_s};
1173 val_t variable0;
1174 trace.prev = tracehead; tracehead = &trace;
1175 variable0 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalProperty___intro))( self) /*MMGlobalProperty::intro*/;
1176 variable0 = ((abstractmetamodel___MMLocalProperty___full_name_t)CALL(variable0,COLOR_abstractmetamodel___MMLocalProperty___full_name))(variable0) /*MMLocalProperty::full_name*/;
1177 goto return_label46;
1178 return_label46: while(false);
1179 tracehead = trace.prev;
1180 return variable0;
1181 }
1182 void abstractmetamodel___MMGlobalProperty___add_local_property(val_t self, val_t param0, val_t param1) {
1183 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 565, LOCATE_abstractmetamodel___MMGlobalProperty___add_local_property};
1184 val_t variable0;
1185 val_t variable1;
1186 val_t variable2;
1187 trace.prev = tracehead; tracehead = &trace;
1188 variable0 = param0;
1189 variable1 = param1;
1190 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*/) /*Object::==*/)))))));
1191 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMGlobalProperty___add_local_property, LOCATE_abstractmetamodel, 568); nit_exit(1);}
1192 variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1 /*sup*/ == NIT_NULL /*null*/) || (( variable1 /*sup*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*sup*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*sup*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*sup*/,COLOR_kernel___Object_____eqeq))( variable1 /*sup*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1193 if (!UNTAG_Bool(variable2)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMGlobalProperty___add_local_property, LOCATE_abstractmetamodel, 569); nit_exit(1);}
1194 variable2 = ATTR_abstractmetamodel___MMGlobalProperty____property_hierarchy( self) /*MMGlobalProperty::_property_hierarchy*/;
1195 variable2 = ((partial_order___PartialOrder___add_t)CALL(variable2,COLOR_partial_order___PartialOrder___add))(variable2, variable0 /*i*/, variable1 /*sup*/) /*PartialOrder::add*/;
1196 ATTR_abstractmetamodel___MMLocalProperty____prhe( variable0 /*i*/) /*MMLocalProperty::_prhe*/ = variable2;
1197 tracehead = trace.prev;
1198 return;
1199 }
1200 val_t abstractmetamodel___MMGlobalProperty___is_attribute(val_t self) {
1201 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 573, LOCATE_abstractmetamodel___MMGlobalProperty___is_attribute};
1202 val_t variable0;
1203 trace.prev = tracehead; tracehead = &trace;
1204 variable0 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalProperty___intro))( self) /*MMGlobalProperty::intro*/;
1205 variable0 = TAG_Bool((variable0==NIT_NULL) || VAL_ISA(variable0, COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
1206 goto return_label48;
1207 return_label48: while(false);
1208 tracehead = trace.prev;
1209 return variable0;
1210 }
1211 val_t abstractmetamodel___MMGlobalProperty___is_method(val_t self) {
1212 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 576, LOCATE_abstractmetamodel___MMGlobalProperty___is_method};
1213 val_t variable0;
1214 trace.prev = tracehead; tracehead = &trace;
1215 variable0 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( self,COLOR_abstractmetamodel___MMGlobalProperty___intro))( self) /*MMGlobalProperty::intro*/;
1216 variable0 = TAG_Bool((variable0==NIT_NULL) || VAL_ISA(variable0, COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
1217 goto return_label49;
1218 return_label49: while(false);
1219 tracehead = trace.prev;
1220 return variable0;
1221 }
1222 val_t abstractmetamodel___MMGlobalProperty___is_init(val_t self) {
1223 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 579, LOCATE_abstractmetamodel___MMGlobalProperty___is_init};
1224 trace.prev = tracehead; tracehead = &trace;
1225 tracehead = trace.prev;
1226 return ATTR_abstractmetamodel___MMGlobalProperty____is_init( self) /*MMGlobalProperty::_is_init*/;
1227 }
1228 void abstractmetamodel___MMGlobalProperty___is_init__eq(val_t self, val_t param0) {
1229 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 579, LOCATE_abstractmetamodel___MMGlobalProperty___is_init__eq};
1230 trace.prev = tracehead; tracehead = &trace;
1231 ATTR_abstractmetamodel___MMGlobalProperty____is_init( self) /*MMGlobalProperty::_is_init*/ = param0;
1232 tracehead = trace.prev;
1233 return;
1234 }
1235 val_t abstractmetamodel___MMGlobalProperty___visibility_level(val_t self) {
1236 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 582, LOCATE_abstractmetamodel___MMGlobalProperty___visibility_level};
1237 trace.prev = tracehead; tracehead = &trace;
1238 tracehead = trace.prev;
1239 return ATTR_abstractmetamodel___MMGlobalProperty____visibility_level( self) /*MMGlobalProperty::_visibility_level*/;
1240 }
1241 void abstractmetamodel___MMGlobalProperty___visibility_level__eq(val_t self, val_t param0) {
1242 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 582, LOCATE_abstractmetamodel___MMGlobalProperty___visibility_level__eq};
1243 trace.prev = tracehead; tracehead = &trace;
1244 ATTR_abstractmetamodel___MMGlobalProperty____visibility_level( self) /*MMGlobalProperty::_visibility_level*/ = param0;
1245 tracehead = trace.prev;
1246 return;
1247 }
1248 val_t abstractmetamodel___MMLocalProperty___name(val_t self) {
1249 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 591, LOCATE_abstractmetamodel___MMLocalProperty___name};
1250 trace.prev = tracehead; tracehead = &trace;
1251 tracehead = trace.prev;
1252 return ATTR_abstractmetamodel___MMLocalProperty____name( self) /*MMLocalProperty::_name*/;
1253 }
1254 val_t abstractmetamodel___MMLocalProperty___local_class(val_t self) {
1255 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 594, LOCATE_abstractmetamodel___MMLocalProperty___local_class};
1256 trace.prev = tracehead; tracehead = &trace;
1257 tracehead = trace.prev;
1258 return ATTR_abstractmetamodel___MMLocalProperty____local_class( self) /*MMLocalProperty::_local_class*/;
1259 }
1260 val_t abstractmetamodel___MMLocalProperty___global(val_t self) {
1261 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 597, LOCATE_abstractmetamodel___MMLocalProperty___global};
1262 trace.prev = tracehead; tracehead = &trace;
1263 tracehead = trace.prev;
1264 return ATTR_abstractmetamodel___MMLocalProperty____global( self) /*MMLocalProperty::_global*/;
1265 }
1266 val_t abstractmetamodel___MMLocalProperty___prhe(val_t self) {
1267 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 600, LOCATE_abstractmetamodel___MMLocalProperty___prhe};
1268 trace.prev = tracehead; tracehead = &trace;
1269 tracehead = trace.prev;
1270 return ATTR_abstractmetamodel___MMLocalProperty____prhe( self) /*MMLocalProperty::_prhe*/;
1271 }
1272 val_t abstractmetamodel___MMLocalProperty___module(val_t self) {
1273 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 603, LOCATE_abstractmetamodel___MMLocalProperty___module};
1274 val_t variable0;
1275 trace.prev = tracehead; tracehead = &trace;
1276 variable0 = ATTR_abstractmetamodel___MMLocalProperty____local_class( self) /*MMLocalProperty::_local_class*/;
1277 variable0 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable0,COLOR_abstractmetamodel___MMLocalClass___module))(variable0) /*MMLocalClass::module*/;
1278 goto return_label50;
1279 return_label50: while(false);
1280 tracehead = trace.prev;
1281 return variable0;
1282 }
1283 val_t abstractmetamodel___MMLocalProperty___full_name(val_t self) {
1284 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 606, LOCATE_abstractmetamodel___MMLocalProperty___full_name};
1285 val_t variable0;
1286 val_t variable1;
1287 val_t variable2;
1288 val_t variable3;
1289 val_t variable4;
1290 val_t variable5;
1291 val_t variable6;
1292 val_t variable7;
1293 val_t variable8;
1294 val_t variable9;
1295 val_t variable10;
1296 val_t variable11;
1297 val_t variable12;
1298 val_t variable13;
1299 val_t variable14;
1300 trace.prev = tracehead; tracehead = &trace;
1301 variable0 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___global))( self) /*MMLocalProperty::global*/;
1302 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*/) /*Object::==*/)))));
1303 if (UNTAG_Bool(variable0)) { /*if*/
1304 variable0 = NEW_string___String___init(); /*new String*/
1305 variable1 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1306 variable2 = variable1;
1307 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/;
1308 variable3 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___local_class))( self) /*MMLocalProperty::local_class*/;
1309 variable3 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable3,COLOR_abstractmetamodel___MMLocalClass___module))(variable3) /*MMLocalClass::module*/;
1310 variable4 = variable3;
1311 variable4 = ((string___String___to_s_t)CALL(variable4,COLOR_string___Object___to_s))(variable4) /*String::to_s*/;
1312 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/;
1313 variable5 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
1314 variable6 = variable5;
1315 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/;
1316 variable7 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___local_class))( self) /*MMLocalProperty::local_class*/;
1317 variable8 = variable7;
1318 variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
1319 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable8) /*String::append*/;
1320 variable9 = NEW_string___String___with_native(BOX_NativeString("::(?::"), TAG_Int(6)); /*new String*/
1321 variable10 = variable9;
1322 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable10) /*String::append*/;
1323 variable11 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___name))( self) /*MMLocalProperty::name*/;
1324 variable12 = variable11;
1325 variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
1326 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable12) /*String::append*/;
1327 variable13 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
1328 variable14 = variable13;
1329 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable14) /*String::append*/;
1330 goto return_label51;
1331 } else { /*if*/
1332 variable0 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___global))( self) /*MMLocalProperty::global*/;
1333 variable0 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable0,COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable0) /*MMGlobalProperty::intro*/;
1334 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) /*Object::==*/)))));
1335 if (UNTAG_Bool(variable0)) { /*if*/
1336 variable0 = NEW_string___String___init(); /*new String*/
1337 variable1 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1338 variable2 = variable1;
1339 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/;
1340 variable3 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___local_class))( self) /*MMLocalProperty::local_class*/;
1341 variable3 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable3,COLOR_abstractmetamodel___MMLocalClass___module))(variable3) /*MMLocalClass::module*/;
1342 variable4 = variable3;
1343 variable4 = ((string___String___to_s_t)CALL(variable4,COLOR_string___Object___to_s))(variable4) /*String::to_s*/;
1344 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/;
1345 variable5 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
1346 variable6 = variable5;
1347 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/;
1348 variable7 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___local_class))( self) /*MMLocalProperty::local_class*/;
1349 variable8 = variable7;
1350 variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
1351 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable8) /*String::append*/;
1352 variable9 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
1353 variable10 = variable9;
1354 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable10) /*String::append*/;
1355 variable11 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___name))( self) /*MMLocalProperty::name*/;
1356 variable12 = variable11;
1357 variable12 = ((string___String___to_s_t)CALL(variable12,COLOR_string___Object___to_s))(variable12) /*String::to_s*/;
1358 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable12) /*String::append*/;
1359 variable13 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1360 variable14 = variable13;
1361 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable14) /*String::append*/;
1362 goto return_label51;
1363 } else { /*if*/
1364 variable0 = NEW_string___String___init(); /*new String*/
1365 variable1 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1366 variable2 = variable1;
1367 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/;
1368 variable3 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___local_class))( self) /*MMLocalProperty::local_class*/;
1369 variable3 = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable3,COLOR_abstractmetamodel___MMLocalClass___module))(variable3) /*MMLocalClass::module*/;
1370 variable4 = variable3;
1371 variable4 = ((string___String___to_s_t)CALL(variable4,COLOR_string___Object___to_s))(variable4) /*String::to_s*/;
1372 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/;
1373 variable5 = NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
1374 variable6 = variable5;
1375 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/;
1376 variable7 = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___local_class))( self) /*MMLocalProperty::local_class*/;
1377 variable8 = variable7;
1378 variable8 = ((string___String___to_s_t)CALL(variable8,COLOR_string___Object___to_s))(variable8) /*String::to_s*/;
1379 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable8) /*String::append*/;
1380 variable9 = NEW_string___String___with_native(BOX_NativeString("::("), TAG_Int(3)); /*new String*/
1381 variable10 = variable9;
1382 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable10) /*String::append*/;
1383 variable11 = ((abstractmetamodel___MMLocalProperty___global_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___global))( self) /*MMLocalProperty::global*/;
1384 variable11 = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable11,COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable11) /*MMGlobalProperty::intro*/;
1385 variable11 = ((abstractmetamodel___MMLocalProperty___full_name_t)CALL(variable11,COLOR_abstractmetamodel___MMLocalProperty___full_name))(variable11) /*MMLocalProperty::full_name*/;
1386 variable12 = variable11;
1387 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable12) /*String::append*/;
1388 variable13 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
1389 variable14 = variable13;
1390 ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable14) /*String::append*/;
1391 goto return_label51;
1392 }
1393 }
1394 return_label51: while(false);
1395 tracehead = trace.prev;
1396 return variable0;
1397 }
1398 void abstractmetamodel___MMLocalProperty___set_global(val_t self, val_t param0) {
1399 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 618, LOCATE_abstractmetamodel___MMLocalProperty___set_global};
1400 val_t variable0;
1401 val_t variable1;
1402 trace.prev = tracehead; tracehead = &trace;
1403 variable0 = param0;
1404 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*/) /*Object::==*/)))))));
1405 if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalProperty___set_global, LOCATE_abstractmetamodel, 621); nit_exit(1);}
1406 ATTR_abstractmetamodel___MMLocalProperty____global( self) /*MMLocalProperty::_global*/ = variable0 /*g*/;
1407 variable1 = ATTR_abstractmetamodel___MMLocalProperty____local_class( self) /*MMLocalProperty::_local_class*/;
1408 ((abstractmetamodel___MMLocalClass___register_local_property_t)CALL(variable1,COLOR_abstractmetamodel___MMLocalClass___register_local_property))(variable1, self) /*MMLocalClass::register_local_property*/;
1409 tracehead = trace.prev;
1410 return;
1411 }
1412 void abstractmetamodel___MMLocalProperty___new_global(val_t self) {
1413 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 626, LOCATE_abstractmetamodel___MMLocalProperty___new_global};
1414 val_t variable0;
1415 val_t variable1;
1416 trace.prev = tracehead; tracehead = &trace;
1417 variable0 = ATTR_abstractmetamodel___MMLocalProperty____global( self) /*MMLocalProperty::_global*/;
1418 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*/) /*Object::==*/)))));
1419 if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalProperty___new_global, LOCATE_abstractmetamodel, 629); nit_exit(1);}
1420 variable0 = NEW_abstractmetamodel___MMGlobalProperty___init( self); /*new MMGlobalProperty*/
1421 ATTR_abstractmetamodel___MMLocalProperty____global( self) /*MMLocalProperty::_global*/ = variable0;
1422 variable0 = ATTR_abstractmetamodel___MMLocalProperty____local_class( self) /*MMLocalProperty::_local_class*/;
1423 variable1 = ATTR_abstractmetamodel___MMLocalProperty____global( self) /*MMLocalProperty::_global*/;
1424 ((abstractmetamodel___MMLocalClass___register_global_property_t)CALL(variable0,COLOR_abstractmetamodel___MMLocalClass___register_global_property))(variable0, variable1) /*MMLocalClass::register_global_property*/;
1425 tracehead = trace.prev;
1426 return;
1427 }
1428 val_t abstractmetamodel___MMLocalProperty___to_s(val_t self) {
1429 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 634, LOCATE_abstractmetamodel___MMLocalProperty___to_s};
1430 val_t variable0;
1431 trace.prev = tracehead; tracehead = &trace;
1432 variable0 = ((abstractmetamodel___MMLocalProperty___name_t)CALL( self,COLOR_abstractmetamodel___MMLocalProperty___name))( self) /*MMLocalProperty::name*/;
1433 variable0 = ((symbol___Symbol___to_s_t)CALL(variable0,COLOR_string___Object___to_s))(variable0) /*Symbol::to_s*/;
1434 goto return_label54;
1435 return_label54: while(false);
1436 tracehead = trace.prev;
1437 return variable0;
1438 }
1439 val_t abstractmetamodel___MMLocalProperty___need_super(val_t self) {
1440 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 636, LOCATE_abstractmetamodel___MMLocalProperty___need_super};
1441 trace.prev = tracehead; tracehead = &trace;
1442 tracehead = trace.prev;
1443 return ATTR_abstractmetamodel___MMLocalProperty____need_super( self) /*MMLocalProperty::_need_super*/;
1444 }
1445 void abstractmetamodel___MMLocalProperty___need_super__eq(val_t self, val_t param0) {
1446 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 636, LOCATE_abstractmetamodel___MMLocalProperty___need_super__eq};
1447 trace.prev = tracehead; tracehead = &trace;
1448 ATTR_abstractmetamodel___MMLocalProperty____need_super( self) /*MMLocalProperty::_need_super*/ = param0;
1449 tracehead = trace.prev;
1450 return;
1451 }
1452 void abstractmetamodel___MMLocalProperty___init(val_t self, val_t param0, val_t param1, int* init_table) {
1453 struct trace_t trace = {NULL, LOCATE_abstractmetamodel, 639, LOCATE_abstractmetamodel___MMLocalProperty___init};
1454 val_t variable0;
1455 val_t variable1;
1456 trace.prev = tracehead; tracehead = &trace;
1457 variable0 = param0;
1458 variable1 = param1;
1459 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMLocalProperty].i]) return;
1460 ATTR_abstractmetamodel___MMLocalProperty____name( self) /*MMLocalProperty::_name*/ = variable0 /*n*/;
1461 ATTR_abstractmetamodel___MMLocalProperty____local_class( self) /*MMLocalProperty::_local_class*/ = variable1 /*bc*/;
1462 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_MMLocalProperty].i] = 1;
1463 tracehead = trace.prev;
1464 return;
1465 }