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