1 /* This C file is generated by NIT to compile module inheritance. */
2 #include "inheritance._sep.h"
3 val_t
inheritance___MMModule___type_any(val_t self
) {
4 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMModule___type_any
, 24};
7 static val_t once_value_variable1_1
; static int once_bool_variable1_1
;
8 trace
.prev
= tracehead
; tracehead
= &trace
;
9 if (once_bool_variable1_1
) variable1
= once_value_variable1_1
;
11 variable1
= NEW_string___String___with_native(BOX_NativeString("Object"), TAG_Int(6)); /*new String*/
12 variable1
= ((symbol___String___to_symbol_t
)CALL(variable1
,COLOR_symbol___String___to_symbol
))(variable1
) /*String::to_symbol*/;
13 once_value_variable1_1
= variable1
;
14 once_bool_variable1_1
= true;
16 variable1
= ((abstractmetamodel___MMModule___class_by_name_t
)CALL( self
,COLOR_abstractmetamodel___MMModule___class_by_name
))( self
, variable1
) /*MMModule::class_by_name*/;
17 variable0
= variable1
;
18 variable1
= ((static_type___MMLocalClass___get_type_t
)CALL( variable0
/*c_name*/,COLOR_static_type___MMLocalClass___get_type
))( variable0
/*c_name*/) /*MMLocalClass::get_type*/;
19 variable0
= variable1
;
21 return_label0
: while(false);
22 tracehead
= trace
.prev
;
25 void inheritance___MMModule___import_global_classes(val_t self
) {
26 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMModule___import_global_classes
, 31};
34 trace
.prev
= tracehead
; tracehead
= &trace
;
35 variable1
= NEW_hash___HashMap___init(); /*new HashMap[MMGlobalClass, HashSet[MMLocalClass]]*/
36 variable0
= variable1
;
37 variable1
= ((abstractmetamodel___MMModule___mhe_t
)CALL( self
,COLOR_abstractmetamodel___MMModule___mhe
))( self
) /*MMModule::mhe*/;
38 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*/) /*PartialOrderElement::==*/)))))));
39 if (!UNTAG_Bool(variable1
)) { fprintf(stderr
, "Assert%s failed (%s: %d)\n", "", LOCATE_inheritance___MMModule___import_global_classes
, 35); nit_exit(1);}
40 variable1
= ((abstractmetamodel___MMModule___mhe_t
)CALL( self
,COLOR_abstractmetamodel___MMModule___mhe
))( self
) /*MMModule::mhe*/;
41 variable1
= ((partial_order___PartialOrderElement___direct_greaters_t
)CALL(variable1
,COLOR_partial_order___PartialOrderElement___direct_greaters
))(variable1
) /*PartialOrderElement::direct_greaters*/;
42 variable1
= ((array___AbstractArray___iterator_t
)CALL(variable1
,COLOR_abstract_collection___Collection___iterator
))(variable1
) /*Array::iterator*/;
43 while (true) { /*for*/
44 variable2
= ((array___ArrayIterator___is_ok_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___is_ok
))(variable1
) /*ArrayIterator::is_ok*/;
45 if (!UNTAG_Bool(variable2
)) break; /*for*/
46 variable2
= ((array___ArrayIterator___item_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___item
))(variable1
) /*ArrayIterator::item*/;
47 variable3
= ((abstractmetamodel___MMModule___global_classes_t
)CALL( variable2
/*mod*/,COLOR_abstractmetamodel___MMModule___global_classes
))( variable2
/*mod*/) /*MMModule::global_classes*/;
48 variable3
= ((array___AbstractArray___iterator_t
)CALL(variable3
,COLOR_abstract_collection___Collection___iterator
))(variable3
) /*Array::iterator*/;
49 while (true) { /*for*/
50 variable4
= ((array___ArrayIterator___is_ok_t
)CALL(variable3
,COLOR_abstract_collection___Iterator___is_ok
))(variable3
) /*ArrayIterator::is_ok*/;
51 if (!UNTAG_Bool(variable4
)) break; /*for*/
52 variable4
= ((array___ArrayIterator___item_t
)CALL(variable3
,COLOR_abstract_collection___Iterator___item
))(variable3
) /*ArrayIterator::item*/;
53 variable5
= ((abstractmetamodel___MMModule___global_classes_t
)CALL( self
,COLOR_abstractmetamodel___MMModule___global_classes
))( self
) /*MMModule::global_classes*/;
54 variable5
= ((array___AbstractArray___has_t
)CALL(variable5
,COLOR_abstract_collection___Collection___has
))(variable5
, variable4
/*glob*/) /*Array::has*/;
55 if (UNTAG_Bool(variable5
)) { /*if*/
58 variable5
= ATTR_abstractmetamodel___MMModule____global_classes( self
) /*MMModule::_global_classes*/;
59 ((array___AbstractArray___add_t
)CALL(variable5
,COLOR_abstract_collection___SimpleCollection___add
))(variable5
, variable4
/*glob*/) /*Array::add*/;
60 variable5
= ATTR_abstractmetamodel___MMModule____global_class_by_name( self
) /*MMModule::_global_class_by_name*/;
61 variable6
= ((abstractmetamodel___MMGlobalClass___name_t
)CALL( variable4
/*glob*/,COLOR_abstractmetamodel___MMGlobalClass___name
))( variable4
/*glob*/) /*MMGlobalClass::name*/;
62 ((abstract_collection___Map_____braeq_t
)CALL(variable5
,COLOR_abstract_collection___Map_____braeq
))(variable5
, variable6
, variable4
/*glob*/) /*Map::[]=*/;
64 ((array___ArrayIterator___next_t
)CALL(variable3
,COLOR_abstract_collection___Iterator___next
))(variable3
) /*ArrayIterator::next*/;
68 ((array___ArrayIterator___next_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___next
))(variable1
) /*ArrayIterator::next*/;
71 tracehead
= trace
.prev
;
74 void inheritance___MMModule___import_local_classes(val_t self
) {
75 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMModule___import_local_classes
, 46};
80 trace
.prev
= tracehead
; tracehead
= &trace
;
81 variable0
= ATTR_abstractmetamodel___MMModule____global_classes( self
) /*MMModule::_global_classes*/;
82 variable0
= ((array___AbstractArray___iterator_t
)CALL(variable0
,COLOR_abstract_collection___Collection___iterator
))(variable0
) /*Array::iterator*/;
83 while (true) { /*for*/
84 variable1
= ((array___ArrayIterator___is_ok_t
)CALL(variable0
,COLOR_abstract_collection___Iterator___is_ok
))(variable0
) /*ArrayIterator::is_ok*/;
85 if (!UNTAG_Bool(variable1
)) break; /*for*/
86 variable1
= ((array___ArrayIterator___item_t
)CALL(variable0
,COLOR_abstract_collection___Iterator___item
))(variable0
) /*ArrayIterator::item*/;
87 variable2
= ((abstractmetamodel___MMModule_____bra_t
)CALL( self
,COLOR_abstractmetamodel___MMModule_____bra
))( self
, variable1
/*g*/) /*MMModule::[]*/;
88 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*/) /*MMLocalClass::==*/)))))));
89 if (UNTAG_Bool(variable2
)) { /*if*/
92 variable3
= NEW_inheritance___MMImplicitLocalClass___init( self
, variable1
/*g*/); /*new MMImplicitLocalClass*/
93 variable2
= variable3
;
95 ((array___ArrayIterator___next_t
)CALL(variable0
,COLOR_abstract_collection___Iterator___next
))(variable0
) /*ArrayIterator::next*/;
98 tracehead
= trace
.prev
;
101 void inheritance___MMLocalClass___compute_super_classes(val_t self
) {
102 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMLocalClass___compute_super_classes
, 64};
110 trace
.prev
= tracehead
; tracehead
= &trace
;
111 variable0
= ((inheritance___MMLocalClass___computed_super_classes_t
)CALL( self
,COLOR_inheritance___MMLocalClass___computed_super_classes
))( self
) /*MMLocalClass::computed_super_classes*/;
112 if (UNTAG_Bool(variable0
)) { /*if*/
115 variable0
= ATTR_inheritance___MMLocalClass____computing_super( self
) /*MMLocalClass::_computing_super*/;
116 if (UNTAG_Bool(variable0
)) { /*if*/
117 variable0
= ((file___Object___stderr_t
)CALL( self
,COLOR_file___Object___stderr
))( self
) /*MMLocalClass::stderr*/;
118 variable1
= NEW_string___String___init(); /*new String*/
119 variable2
= NEW_string___String___with_native(BOX_NativeString("Fatal error: Inheritance loop for class "), TAG_Int(40)); /*new String*/
120 variable3
= variable2
;
121 ((string___String___append_t
)CALL(variable1
,COLOR_abstract_collection___IndexedCollection___append
))(variable1
, variable3
) /*String::append*/;
123 variable4
= ((string___String___to_s_t
)CALL(variable4
,COLOR_string___Object___to_s
))(variable4
) /*String::to_s*/;
124 ((string___String___append_t
)CALL(variable1
,COLOR_abstract_collection___IndexedCollection___append
))(variable1
, variable4
) /*String::append*/;
125 variable5
= NEW_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
126 variable6
= variable5
;
127 ((string___String___append_t
)CALL(variable1
,COLOR_abstract_collection___IndexedCollection___append
))(variable1
, variable6
) /*String::append*/;
128 ((file___OFStream___write_t
)CALL(variable0
,COLOR_stream___OStream___write
))(variable0
, variable1
) /*OFStream::write*/;
129 exit(UNTAG_Int( TAG_Int(1)));
132 ATTR_inheritance___MMLocalClass____computing_super( self
) /*MMLocalClass::_computing_super*/ = TAG_Bool(true);
133 variable1
= NEW_array___Array___init(); /*new Array[MMLocalClass]*/
134 variable0
= variable1
;
135 ((inheritance___MMLocalClass___add_explicit_classes_t
)CALL( self
,COLOR_inheritance___MMLocalClass___add_explicit_classes
))( self
, variable0
/*supers*/) /*MMLocalClass::add_explicit_classes*/;
136 ((inheritance___MMLocalClass___add_super_classes_t
)CALL( self
,COLOR_inheritance___MMLocalClass___add_super_classes
))( self
, variable0
/*supers*/) /*MMLocalClass::add_super_classes*/;
137 ((inheritance___MMLocalClass___add_default_any_class_t
)CALL( self
,COLOR_inheritance___MMLocalClass___add_default_any_class
))( self
, variable0
/*supers*/) /*MMLocalClass::add_default_any_class*/;
138 ((inheritance___MMLocalClass___compute_super_parents_t
)CALL( self
,COLOR_inheritance___MMLocalClass___compute_super_parents
))( self
, variable0
/*supers*/) /*MMLocalClass::compute_super_parents*/;
139 variable2
= NEW_hash___HashSet___init(); /*new HashSet[MMLocalClass]*/
140 variable1
= variable2
;
141 ((abstract_collection___SimpleCollection___add_all_t
)CALL( variable1
/*set*/,COLOR_abstract_collection___SimpleCollection___add_all
))( variable1
/*set*/, variable0
/*supers*/) /*HashSet::add_all*/;
142 variable3
= ((array___Collection___to_a_t
)CALL( variable1
/*set*/,COLOR_array___Collection___to_a
))( variable1
/*set*/) /*HashSet::to_a*/;
143 variable2
= variable3
;
144 variable3
= ((abstractmetamodel___MMLocalClass___module_t
)CALL( self
,COLOR_abstractmetamodel___MMLocalClass___module
))( self
) /*MMLocalClass::module*/;
145 ((abstractmetamodel___MMModule___set_supers_class_t
)CALL(variable3
,COLOR_abstractmetamodel___MMModule___set_supers_class
))(variable3
, self
, variable2
/*u*/) /*MMModule::set_supers_class*/;
146 variable3
= ATTR_abstractmetamodel___MMLocalClass____crhe( self
) /*MMLocalClass::_crhe*/;
147 variable3
= TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3
== NIT_NULL
/*null*/) || ((variable3
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable3
, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))(variable3
, NIT_NULL
/*null*/) /*PartialOrderElement::==*/)))))));
148 if (!UNTAG_Bool(variable3
)) { fprintf(stderr
, "Assert%s failed (%s: %d)\n", "", LOCATE_inheritance___MMLocalClass___compute_super_classes
, 85); nit_exit(1);}
149 variable3
= ATTR_abstractmetamodel___MMLocalClass____cshe( self
) /*MMLocalClass::_cshe*/;
150 variable3
= TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3
== NIT_NULL
/*null*/) || ((variable3
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable3
, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))(variable3
, NIT_NULL
/*null*/) /*PartialOrderElement::==*/)))))));
151 if (!UNTAG_Bool(variable3
)) { fprintf(stderr
, "Assert%s failed (%s: %d)\n", "", LOCATE_inheritance___MMLocalClass___compute_super_classes
, 86); nit_exit(1);}
152 ATTR_inheritance___MMLocalClass____computing_super( self
) /*MMLocalClass::_computing_super*/ = TAG_Bool(false);
153 return_label7
: while(false);
154 tracehead
= trace
.prev
;
157 void inheritance___MMLocalClass___compute_ancestors(val_t self
) {
158 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMLocalClass___compute_ancestors
, 90};
164 trace
.prev
= tracehead
; tracehead
= &trace
;
165 variable0
= ((inheritance___MMLocalClass___computed_super_classes_t
)CALL( self
,COLOR_inheritance___MMLocalClass___computed_super_classes
))( self
) /*MMLocalClass::computed_super_classes*/;
166 if (!UNTAG_Bool(variable0
)) { fprintf(stderr
, "Assert%s failed (%s: %d)\n", "", LOCATE_inheritance___MMLocalClass___compute_ancestors
, 93); nit_exit(1);}
167 variable0
= ((inheritance___MMLocalClass___computed_ancestors_t
)CALL( self
,COLOR_inheritance___MMLocalClass___computed_ancestors
))( self
) /*MMLocalClass::computed_ancestors*/;
168 if (UNTAG_Bool(variable0
)) { /*if*/
171 variable1
= ((inheritance___MMLocalClass___build_ancestors_t
)CALL( self
,COLOR_inheritance___MMLocalClass___build_ancestors
))( self
) /*MMLocalClass::build_ancestors*/;
172 variable1
= ((inheritance___MMLocalClass___group_ancestors_t
)CALL( self
,COLOR_inheritance___MMLocalClass___group_ancestors
))( self
, variable1
) /*MMLocalClass::group_ancestors*/;
173 variable0
= variable1
;
174 variable1
= NEW_hash___HashMap___init(); /*new HashMap[MMLocalClass, MMAncestor]*/
175 ATTR_static_type___MMLocalClass____ancestors( self
) /*MMLocalClass::_ancestors*/ = variable1
;
176 variable1
= ((abstract_collection___Map___iterator_t
)CALL( variable0
/*ancestors*/,COLOR_abstract_collection___Collection___iterator
))( variable0
/*ancestors*/) /*Map::iterator*/;
177 while (true) { /*for*/
178 variable2
= ((abstract_collection___Iterator___is_ok_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___is_ok
))(variable1
) /*MapIterator::is_ok*/;
179 if (!UNTAG_Bool(variable2
)) break; /*for*/
180 variable2
= ((abstract_collection___Iterator___item_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___item
))(variable1
) /*MapIterator::item*/;
181 variable3
= ((abstract_collection___Collection___length_t
)CALL( variable2
/*set*/,COLOR_abstract_collection___Collection___length
))( variable2
/*set*/) /*Set::length*/;
182 variable3
= TAG_Bool((variable3
)==( TAG_Int(1)));
183 if (UNTAG_Bool(variable3
)) { /*if*/
184 variable3
= ((abstract_collection___Collection___first_t
)CALL( variable2
/*set*/,COLOR_abstract_collection___Collection___first
))( variable2
/*set*/) /*Set::first*/;
185 ((static_type___MMLocalClass___add_ancestor_t
)CALL( self
,COLOR_static_type___MMLocalClass___add_ancestor
))( self
, variable3
) /*MMLocalClass::add_ancestor*/;
187 variable4
= ((inheritance___MMLocalClass___merge_ancestors_t
)CALL( self
,COLOR_inheritance___MMLocalClass___merge_ancestors
))( self
, variable2
/*set*/) /*MMLocalClass::merge_ancestors*/;
188 variable3
= variable4
;
189 variable4
= ((inheritance___MMLocalClass___merge_ancestors_t
)CALL( self
,COLOR_inheritance___MMLocalClass___merge_ancestors
))( self
, variable2
/*set*/) /*MMLocalClass::merge_ancestors*/;
190 ((static_type___MMLocalClass___add_ancestor_t
)CALL( self
,COLOR_static_type___MMLocalClass___add_ancestor
))( self
, variable4
) /*MMLocalClass::add_ancestor*/;
192 continue_9
: while(0);
193 ((abstract_collection___Iterator___next_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___next
))(variable1
) /*MapIterator::next*/;
196 return_label8
: while(false);
197 tracehead
= trace
.prev
;
200 void inheritance___MMLocalClass___inherit_global_properties(val_t self
) {
201 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMLocalClass___inherit_global_properties
, 109};
211 trace
.prev
= tracehead
; tracehead
= &trace
;
212 variable0
= ATTR_abstractmetamodel___MMLocalClass____global_properties( self
) /*MMLocalClass::_global_properties*/;
213 variable0
= TAG_Bool(!UNTAG_Bool(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*/) /*Set::==*/)))))));
214 if (UNTAG_Bool(variable0
)) { /*if*/
217 variable0
= NEW_hash___HashSet___init(); /*new HashSet[MMGlobalProperty]*/
218 ATTR_abstractmetamodel___MMLocalClass____global_properties( self
) /*MMLocalClass::_global_properties*/ = variable0
;
219 variable0
= NEW_hash___HashMap___init(); /*new HashMap[Symbol, Array[MMGlobalProperty]]*/
220 ATTR_abstractmetamodel___MMLocalClass____properties_by_name( self
) /*MMLocalClass::_properties_by_name*/ = variable0
;
221 variable0
= NEW_hash___HashMap___init(); /*new HashMap[MMGlobalProperty, MMLocalProperty]*/
222 ATTR_abstractmetamodel___MMLocalClass____local_property_by_global( self
) /*MMLocalClass::_local_property_by_global*/ = variable0
;
223 variable1
= ATTR_abstractmetamodel___MMLocalClass____properties_by_name( self
) /*MMLocalClass::_properties_by_name*/;
224 variable0
= variable1
;
225 variable2
= ATTR_abstractmetamodel___MMLocalClass____global_properties( self
) /*MMLocalClass::_global_properties*/;
226 variable1
= variable2
;
227 variable2
= ((abstractmetamodel___MMLocalClass___che_t
)CALL( self
,COLOR_abstractmetamodel___MMLocalClass___che
))( self
) /*MMLocalClass::che*/;
228 variable2
= ((partial_order___PartialOrderElement___direct_greaters_t
)CALL(variable2
,COLOR_partial_order___PartialOrderElement___direct_greaters
))(variable2
) /*PartialOrderElement::direct_greaters*/;
229 variable2
= ((array___AbstractArray___iterator_t
)CALL(variable2
,COLOR_abstract_collection___Collection___iterator
))(variable2
) /*Array::iterator*/;
230 while (true) { /*for*/
231 variable3
= ((array___ArrayIterator___is_ok_t
)CALL(variable2
,COLOR_abstract_collection___Iterator___is_ok
))(variable2
) /*ArrayIterator::is_ok*/;
232 if (!UNTAG_Bool(variable3
)) break; /*for*/
233 variable3
= ((array___ArrayIterator___item_t
)CALL(variable2
,COLOR_abstract_collection___Iterator___item
))(variable2
) /*ArrayIterator::item*/;
234 variable4
= ((abstractmetamodel___MMLocalClass___global_properties_t
)CALL( variable3
/*c*/,COLOR_abstractmetamodel___MMLocalClass___global_properties
))( variable3
/*c*/) /*MMLocalClass::global_properties*/;
235 variable4
= ((abstract_collection___Collection___iterator_t
)CALL(variable4
,COLOR_abstract_collection___Collection___iterator
))(variable4
) /*Set::iterator*/;
236 while (true) { /*for*/
237 variable5
= ((abstract_collection___Iterator___is_ok_t
)CALL(variable4
,COLOR_abstract_collection___Iterator___is_ok
))(variable4
) /*Iterator::is_ok*/;
238 if (!UNTAG_Bool(variable5
)) break; /*for*/
239 variable5
= ((abstract_collection___Iterator___item_t
)CALL(variable4
,COLOR_abstract_collection___Iterator___item
))(variable4
) /*Iterator::item*/;
240 variable6
= ((abstract_collection___Collection___has_t
)CALL( variable1
/*set*/,COLOR_abstract_collection___Collection___has
))( variable1
/*set*/, variable5
/*glob*/) /*Set::has*/;
241 if (UNTAG_Bool(variable6
)) { /*if*/
244 ((abstract_collection___SimpleCollection___add_t
)CALL( variable1
/*set*/,COLOR_abstract_collection___SimpleCollection___add
))( variable1
/*set*/, variable5
/*glob*/) /*Set::add*/;
245 variable6
= ((abstractmetamodel___MMGlobalProperty___is_init_t
)CALL( variable5
/*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___is_init
))( variable5
/*glob*/) /*MMGlobalProperty::is_init*/;
246 variable7
= variable6
;
247 if (UNTAG_Bool(variable7
)) { /* and */
248 variable7
= ((abstractmetamodel___MMGlobalProperty___intro_t
)CALL( variable5
/*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___intro
))( variable5
/*glob*/) /*MMGlobalProperty::intro*/;
249 variable7
= ((abstractmetamodel___MMLocalProperty___local_class_t
)CALL(variable7
,COLOR_abstractmetamodel___MMLocalProperty___local_class
))(variable7
) /*MMConcreteProperty::local_class*/;
250 variable7
= ((abstractmetamodel___MMLocalClass___global_t
)CALL(variable7
,COLOR_abstractmetamodel___MMLocalClass___global
))(variable7
) /*MMLocalClass::global*/;
251 variable8
= ((abstractmetamodel___MMLocalClass___global_t
)CALL( self
,COLOR_abstractmetamodel___MMLocalClass___global
))( self
) /*MMLocalClass::global*/;
252 variable7
= TAG_Bool(!UNTAG_Bool(TAG_Bool((variable7
== variable8
) || ((variable7
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable7
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable7
,variable8
)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable7
,COLOR_kernel___Object_____eqeq
))(variable7
, variable8
) /*MMGlobalClass::==*/)))))));
254 variable6
= variable7
;
255 if (UNTAG_Bool(variable6
)) { /*if*/
258 variable7
= ((abstractmetamodel___MMGlobalProperty___intro_t
)CALL( variable5
/*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___intro
))( variable5
/*glob*/) /*MMGlobalProperty::intro*/;
259 variable7
= ((abstractmetamodel___MMLocalProperty___name_t
)CALL(variable7
,COLOR_abstractmetamodel___MMLocalProperty___name
))(variable7
) /*MMConcreteProperty::name*/;
260 variable6
= variable7
;
261 variable7
= NIT_NULL
/*decl variable conf_set*/;
262 variable8
= ((abstract_collection___Map___has_key_t
)CALL( variable0
/*names*/,COLOR_abstract_collection___Map___has_key
))( variable0
/*names*/, variable6
/*gname*/) /*Map::has_key*/;
263 if (UNTAG_Bool(variable8
)) { /*if*/
264 variable8
= ((abstract_collection___Map_____bra_t
)CALL( variable0
/*names*/,COLOR_abstract_collection___Map_____bra
))( variable0
/*names*/, variable6
/*gname*/) /*Map::[]*/;
265 variable7
= variable8
/*conf_set=*/;
267 variable8
= NEW_array___Array___init(); /*new Array[MMGlobalProperty]*/
268 variable7
= variable8
/*conf_set=*/;
269 ((abstract_collection___Map_____braeq_t
)CALL( variable0
/*names*/,COLOR_abstract_collection___Map_____braeq
))( variable0
/*names*/, variable6
/*gname*/, variable7
/*conf_set*/) /*Map::[]=*/;
271 ((array___AbstractArray___add_t
)CALL( variable7
/*conf_set*/,COLOR_abstract_collection___SimpleCollection___add
))( variable7
/*conf_set*/, variable5
/*glob*/) /*Array::add*/;
272 continue_12
: while(0);
273 ((abstract_collection___Iterator___next_t
)CALL(variable4
,COLOR_abstract_collection___Iterator___next
))(variable4
) /*Iterator::next*/;
276 continue_11
: while(0);
277 ((array___ArrayIterator___next_t
)CALL(variable2
,COLOR_abstract_collection___Iterator___next
))(variable2
) /*ArrayIterator::next*/;
280 return_label10
: while(false);
281 tracehead
= trace
.prev
;
284 void inheritance___MMLocalClass___add_direct_parent(val_t self
, val_t param0
) {
285 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMLocalClass___add_direct_parent
, 146};
288 trace
.prev
= tracehead
; tracehead
= &trace
;
290 variable1
= ATTR_inheritance___MMLocalClass____direct_parents( self
) /*MMLocalClass::_direct_parents*/;
291 ((array___AbstractArray___add_t
)CALL(variable1
,COLOR_abstract_collection___SimpleCollection___add
))(variable1
, variable0
/*p*/) /*Array::add*/;
292 tracehead
= trace
.prev
;
295 val_t
inheritance___MMLocalClass___computed_super_classes(val_t self
) {
296 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMLocalClass___computed_super_classes
, 152};
299 trace
.prev
= tracehead
; tracehead
= &trace
;
300 variable0
= ATTR_abstractmetamodel___MMLocalClass____crhe( self
) /*MMLocalClass::_crhe*/;
301 variable0
= TAG_Bool(!UNTAG_Bool(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*/) /*PartialOrderElement::==*/)))))));
302 variable1
= variable0
;
303 if (UNTAG_Bool(variable1
)) { /* and */
304 variable1
= ATTR_abstractmetamodel___MMLocalClass____cshe( self
) /*MMLocalClass::_cshe*/;
305 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*/) /*PartialOrderElement::==*/)))))));
307 variable0
= variable1
;
309 return_label14
: while(false);
310 tracehead
= trace
.prev
;
313 val_t
inheritance___MMLocalClass___computed_ancestors(val_t self
) {
314 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMLocalClass___computed_ancestors
, 158};
316 trace
.prev
= tracehead
; tracehead
= &trace
;
317 variable0
= ATTR_static_type___MMLocalClass____ancestors( self
) /*MMLocalClass::_ancestors*/;
318 variable0
= TAG_Bool(!UNTAG_Bool(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*/) /*Map::==*/)))))));
320 return_label15
: while(false);
321 tracehead
= trace
.prev
;
324 val_t
inheritance___MMLocalClass___ancestor_for(val_t self
, val_t param0
) {
325 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMLocalClass___ancestor_for
, 164};
332 trace
.prev
= tracehead
; tracehead
= &trace
;
334 variable1
= ((static_type___MMLocalClass___ancestors_t
)CALL( self
,COLOR_static_type___MMLocalClass___ancestors
))( self
) /*MMLocalClass::ancestors*/;
335 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::==*/)))))));
336 if (!UNTAG_Bool(variable1
)) { fprintf(stderr
, "Assert%s failed (%s: %d)\n", "", LOCATE_inheritance___MMLocalClass___ancestor_for
, 168); nit_exit(1);}
337 variable1
= ATTR_static_type___MMLocalClass____ancestors( self
) /*MMLocalClass::_ancestors*/;
338 variable1
= ((abstract_collection___Map___has_key_t
)CALL(variable1
,COLOR_abstract_collection___Map___has_key
))(variable1
, variable0
/*c*/) /*Map::has_key*/;
339 if (UNTAG_Bool(variable1
)) { /*if*/
340 variable1
= ATTR_static_type___MMLocalClass____ancestors( self
) /*MMLocalClass::_ancestors*/;
341 variable1
= ((abstract_collection___Map_____bra_t
)CALL(variable1
,COLOR_abstract_collection___Map_____bra
))(variable1
, variable0
/*c*/) /*Map::[]*/;
344 variable2
= ((abstractmetamodel___MMLocalClass___module_t
)CALL( self
,COLOR_abstractmetamodel___MMLocalClass___module
))( self
) /*MMLocalClass::module*/;
345 variable2
= ((abstractmetamodel___MMLocalClass___for_module_t
)CALL( variable0
/*c*/,COLOR_abstractmetamodel___MMLocalClass___for_module
))( variable0
/*c*/, variable2
) /*MMLocalClass::for_module*/;
346 variable1
= variable2
;
347 variable2
= ((abstractmetamodel___MMLocalClass___cshe_t
)CALL( self
,COLOR_abstractmetamodel___MMLocalClass___cshe
))( self
) /*MMLocalClass::cshe*/;
348 variable2
= ((partial_order___PartialOrderElement_____leq_t
)CALL(variable2
,COLOR_partial_order___PartialOrderElement_____leq
))(variable2
, variable1
/*a*/) /*PartialOrderElement::<=*/;
349 if (!UNTAG_Bool(variable2
)) { fprintf(stderr
, "Assert%s failed (%s: %d)\n", "", LOCATE_inheritance___MMLocalClass___ancestor_for
, 174); nit_exit(1);}
350 variable2
= NIT_NULL
/*decl variable ra*/;
351 variable3
= ATTR_static_type___MMLocalClass____ancestors( self
) /*MMLocalClass::_ancestors*/;
352 variable3
= ((abstract_collection___Map___has_key_t
)CALL(variable3
,COLOR_abstract_collection___Map___has_key
))(variable3
, variable1
/*a*/) /*Map::has_key*/;
353 if (UNTAG_Bool(variable3
)) { /*if*/
354 variable3
= ATTR_static_type___MMLocalClass____ancestors( self
) /*MMLocalClass::_ancestors*/;
355 variable3
= ((abstract_collection___Map_____bra_t
)CALL(variable3
,COLOR_abstract_collection___Map_____bra
))(variable3
, variable1
/*a*/) /*Map::[]*/;
356 variable2
= variable3
/*ra=*/;
358 variable3
= ((abstractmetamodel___MMLocalClass___global_t
)CALL( variable0
/*c*/,COLOR_abstractmetamodel___MMLocalClass___global
))( variable0
/*c*/) /*MMLocalClass::global*/;
359 variable4
= ATTR_abstractmetamodel___MMLocalClass____global( self
) /*MMLocalClass::_global*/;
360 variable3
= TAG_Bool((variable3
== variable4
) || ((variable3
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable3
,variable4
)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))(variable3
, variable4
) /*MMGlobalClass::==*/)))));
361 if (UNTAG_Bool(variable3
)) { /*if*/
362 variable3
= NEW_inheritance___MMRefineAncestor___init( self
, variable0
/*c*/); /*new MMRefineAncestor*/
363 variable2
= variable3
/*ra=*/;
365 variable3
= ((static_type___MMLocalClass___get_type_t
)CALL( self
,COLOR_static_type___MMLocalClass___get_type
))( self
) /*MMLocalClass::get_type*/;
366 variable4
= ((static_type___MMLocalClass___get_type_t
)CALL( variable0
/*c*/,COLOR_static_type___MMLocalClass___get_type
))( variable0
/*c*/) /*MMLocalClass::get_type*/;
367 variable5
= NEW_inheritance___MMSpecAncestor___init(variable3
, variable4
); /*new MMSpecAncestor*/
368 variable3
= variable5
;
369 variable2
= variable3
/*ra=*/;
372 variable3
= ATTR_static_type___MMLocalClass____ancestors( self
) /*MMLocalClass::_ancestors*/;
373 ((abstract_collection___Map_____braeq_t
)CALL(variable3
,COLOR_abstract_collection___Map_____braeq
))(variable3
, variable0
/*c*/, variable2
/*ra*/) /*Map::[]=*/;
374 variable1
= variable2
/*ra*/;
376 return_label16
: while(false);
377 tracehead
= trace
.prev
;
380 val_t
inheritance___MMLocalClass_____bra(val_t self
, val_t param0
) {
381 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMLocalClass_____bra
, 187};
386 trace
.prev
= tracehead
; tracehead
= &trace
;
388 variable2
= ((inheritance___MMLocalClass_____bra_t
)CALL( self
,COLOR_SUPER_inheritance___MMLocalClass_____bra
))( self
, variable0
/*glob*/) /*super MMLocalClass::[]*/;
389 variable1
= variable2
;
390 variable2
= TAG_Bool(( variable1
/*prop*/ == NIT_NULL
/*null*/) || (( variable1
/*prop*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable1
/*prop*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable1
/*prop*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable1
/*prop*/,COLOR_kernel___Object_____eqeq
))( variable1
/*prop*/, NIT_NULL
/*null*/) /*MMLocalProperty::==*/)))));
391 variable3
= variable2
;
392 if (UNTAG_Bool(variable3
)) { /* and */
393 variable3
= ATTR_abstractmetamodel___MMLocalClass____global_properties( self
) /*MMLocalClass::_global_properties*/;
394 variable3
= ((abstract_collection___Collection___has_t
)CALL(variable3
,COLOR_abstract_collection___Collection___has
))(variable3
, variable0
/*glob*/) /*Set::has*/;
396 variable2
= variable3
;
397 if (UNTAG_Bool(variable2
)) { /*if*/
398 variable2
= ((inheritance___MMLocalClass___inherit_local_property_t
)CALL( self
,COLOR_inheritance___MMLocalClass___inherit_local_property
))( self
, variable0
/*glob*/) /*MMLocalClass::inherit_local_property*/;
399 variable1
= variable2
/*prop=*/;
401 variable1
= variable1
/*prop*/;
403 return_label17
: while(false);
404 tracehead
= trace
.prev
;
407 void inheritance___MMLocalClass___add_default_any_class(val_t self
, val_t param0
) {
408 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMLocalClass___add_default_any_class
, 196};
413 static val_t once_value_variable3_19
; static int once_bool_variable3_19
;
414 trace
.prev
= tracehead
; tracehead
= &trace
;
416 variable1
= ((array___AbstractArray___is_empty_t
)CALL( variable0
/*supers*/,COLOR_abstract_collection___Collection___is_empty
))( variable0
/*supers*/) /*Array::is_empty*/;
417 variable2
= variable1
;
418 if (UNTAG_Bool(variable2
)) { /* and */
419 variable2
= ((abstractmetamodel___MMLocalClass___name_t
)CALL( self
,COLOR_abstractmetamodel___MMLocalClass___name
))( self
) /*MMLocalClass::name*/;
420 if (once_bool_variable3_19
) variable3
= once_value_variable3_19
;
422 variable3
= NEW_string___String___with_native(BOX_NativeString("Object"), TAG_Int(6)); /*new String*/
423 variable3
= ((symbol___String___to_symbol_t
)CALL(variable3
,COLOR_symbol___String___to_symbol
))(variable3
) /*String::to_symbol*/;
424 once_value_variable3_19
= variable3
;
425 once_bool_variable3_19
= true;
427 variable2
= TAG_Bool(!UNTAG_Bool(TAG_Bool((variable2
== variable3
) || ((variable2
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable2
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable2
,variable3
)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable2
,COLOR_kernel___Object_____eqeq
))(variable2
, variable3
) /*Symbol::==*/)))))));
429 variable1
= variable2
;
430 if (UNTAG_Bool(variable1
)) { /*if*/
431 variable2
= ((abstractmetamodel___MMLocalClass___module_t
)CALL( self
,COLOR_abstractmetamodel___MMLocalClass___module
))( self
) /*MMLocalClass::module*/;
432 variable2
= ((inheritance___MMModule___type_any_t
)CALL(variable2
,COLOR_inheritance___MMModule___type_any
))(variable2
) /*MMModule::type_any*/;
433 variable1
= variable2
;
434 variable2
= ((static_type___MMType___local_class_t
)CALL( variable1
/*t_any*/,COLOR_static_type___MMType___local_class
))( variable1
/*t_any*/) /*MMType::local_class*/;
435 ((array___AbstractArray___add_t
)CALL( variable0
/*supers*/,COLOR_abstract_collection___SimpleCollection___add
))( variable0
/*supers*/, variable2
) /*Array::add*/;
436 variable3
= NEW_inheritance___MMDefaultAncestor___init( self
, variable1
/*t_any*/); /*new MMDefaultAncestor*/
437 variable2
= variable3
;
438 ((inheritance___MMLocalClass___add_direct_parent_t
)CALL( self
,COLOR_inheritance___MMLocalClass___add_direct_parent
))( self
, variable2
/*default*/) /*MMLocalClass::add_direct_parent*/;
440 tracehead
= trace
.prev
;
443 void inheritance___MMLocalClass___add_super_classes(val_t self
, val_t param0
) {
444 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMLocalClass___add_super_classes
, 207};
452 trace
.prev
= tracehead
; tracehead
= &trace
;
454 variable1
= ATTR_abstractmetamodel___MMLocalClass____crhe( self
) /*MMLocalClass::_crhe*/;
455 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*/) /*PartialOrderElement::==*/)))))));
456 if (!UNTAG_Bool(variable1
)) { fprintf(stderr
, "Assert%s failed (%s: %d)\n", "", LOCATE_inheritance___MMLocalClass___add_super_classes
, 210); nit_exit(1);}
457 variable1
= ATTR_abstractmetamodel___MMLocalClass____crhe( self
) /*MMLocalClass::_crhe*/;
458 variable1
= ((partial_order___PartialOrderElement___direct_greaters_t
)CALL(variable1
,COLOR_partial_order___PartialOrderElement___direct_greaters
))(variable1
) /*PartialOrderElement::direct_greaters*/;
459 variable1
= ((array___AbstractArray___iterator_t
)CALL(variable1
,COLOR_abstract_collection___Collection___iterator
))(variable1
) /*Array::iterator*/;
460 while (true) { /*for*/
461 variable2
= ((array___ArrayIterator___is_ok_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___is_ok
))(variable1
) /*ArrayIterator::is_ok*/;
462 if (!UNTAG_Bool(variable2
)) break; /*for*/
463 variable2
= ((array___ArrayIterator___item_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___item
))(variable1
) /*ArrayIterator::item*/;
464 variable3
= ((abstractmetamodel___MMLocalClass___cshe_t
)CALL( variable2
/*ref*/,COLOR_abstractmetamodel___MMLocalClass___cshe
))( variable2
/*ref*/) /*MMLocalClass::cshe*/;
465 variable3
= TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3
== NIT_NULL
/*null*/) || ((variable3
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable3
, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))(variable3
, NIT_NULL
/*null*/) /*PartialOrderElement::==*/)))))));
466 if (!UNTAG_Bool(variable3
)) { fprintf(stderr
, "Assert%s failed (%s: %d)\n", "", LOCATE_inheritance___MMLocalClass___add_super_classes
, 212); nit_exit(1);}
467 variable3
= ((abstractmetamodel___MMLocalClass___cshe_t
)CALL( variable2
/*ref*/,COLOR_abstractmetamodel___MMLocalClass___cshe
))( variable2
/*ref*/) /*MMLocalClass::cshe*/;
468 variable3
= ((partial_order___PartialOrderElement___direct_greaters_t
)CALL(variable3
,COLOR_partial_order___PartialOrderElement___direct_greaters
))(variable3
) /*PartialOrderElement::direct_greaters*/;
469 variable3
= ((array___AbstractArray___iterator_t
)CALL(variable3
,COLOR_abstract_collection___Collection___iterator
))(variable3
) /*Array::iterator*/;
470 while (true) { /*for*/
471 variable4
= ((array___ArrayIterator___is_ok_t
)CALL(variable3
,COLOR_abstract_collection___Iterator___is_ok
))(variable3
) /*ArrayIterator::is_ok*/;
472 if (!UNTAG_Bool(variable4
)) break; /*for*/
473 variable4
= ((array___ArrayIterator___item_t
)CALL(variable3
,COLOR_abstract_collection___Iterator___item
))(variable3
) /*ArrayIterator::item*/;
474 variable6
= ATTR_abstractmetamodel___MMLocalClass____module( self
) /*MMLocalClass::_module*/;
475 variable6
= ((abstractmetamodel___MMLocalClass___for_module_t
)CALL( variable4
/*sup*/,COLOR_abstractmetamodel___MMLocalClass___for_module
))( variable4
/*sup*/, variable6
) /*MMLocalClass::for_module*/;
476 variable5
= variable6
;
477 variable6
= TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5
/*cla*/ == NIT_NULL
/*null*/) || (( variable5
/*cla*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable5
/*cla*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable5
/*cla*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable5
/*cla*/,COLOR_kernel___Object_____eqeq
))( variable5
/*cla*/, NIT_NULL
/*null*/) /*MMLocalClass::==*/)))))));
478 if (!UNTAG_Bool(variable6
)) { fprintf(stderr
, "Assert%s failed (%s: %d)\n", "", LOCATE_inheritance___MMLocalClass___add_super_classes
, 215); nit_exit(1);}
479 ((array___AbstractArray___add_t
)CALL( variable0
/*supers*/,COLOR_abstract_collection___SimpleCollection___add
))( variable0
/*supers*/, variable5
/*cla*/) /*Array::add*/;
480 continue_22
: while(0);
481 ((array___ArrayIterator___next_t
)CALL(variable3
,COLOR_abstract_collection___Iterator___next
))(variable3
) /*ArrayIterator::next*/;
484 continue_21
: while(0);
485 ((array___ArrayIterator___next_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___next
))(variable1
) /*ArrayIterator::next*/;
488 tracehead
= trace
.prev
;
491 void inheritance___MMLocalClass___add_explicit_classes(val_t self
, val_t param0
) {
492 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMLocalClass___add_explicit_classes
, 221};
497 trace
.prev
= tracehead
; tracehead
= &trace
;
499 variable1
= ATTR_inheritance___MMLocalClass____direct_parents( self
) /*MMLocalClass::_direct_parents*/;
500 variable1
= ((array___AbstractArray___iterator_t
)CALL(variable1
,COLOR_abstract_collection___Collection___iterator
))(variable1
) /*Array::iterator*/;
501 while (true) { /*for*/
502 variable2
= ((array___ArrayIterator___is_ok_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___is_ok
))(variable1
) /*ArrayIterator::is_ok*/;
503 if (!UNTAG_Bool(variable2
)) break; /*for*/
504 variable2
= ((array___ArrayIterator___item_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___item
))(variable1
) /*ArrayIterator::item*/;
505 variable3
= ((static_type___MMAncestor___local_class_t
)CALL( variable2
/*p*/,COLOR_static_type___MMAncestor___local_class
))( variable2
/*p*/) /*MMAncestor::local_class*/;
506 ((array___AbstractArray___add_t
)CALL( variable0
/*supers*/,COLOR_abstract_collection___SimpleCollection___add
))( variable0
/*supers*/, variable3
) /*Array::add*/;
507 continue_24
: while(0);
508 ((array___ArrayIterator___next_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___next
))(variable1
) /*ArrayIterator::next*/;
511 tracehead
= trace
.prev
;
514 void inheritance___MMLocalClass___compute_super_parents(val_t self
, val_t param0
) {
515 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMLocalClass___compute_super_parents
, 229};
520 trace
.prev
= tracehead
; tracehead
= &trace
;
522 variable1
= ((array___AbstractArray___iterator_t
)CALL( variable0
/*supers*/,COLOR_abstract_collection___Collection___iterator
))( variable0
/*supers*/) /*Array::iterator*/;
523 while (true) { /*for*/
524 variable2
= ((array___ArrayIterator___is_ok_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___is_ok
))(variable1
) /*ArrayIterator::is_ok*/;
525 if (!UNTAG_Bool(variable2
)) break; /*for*/
526 variable2
= ((array___ArrayIterator___item_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___item
))(variable1
) /*ArrayIterator::item*/;
527 variable3
= TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2
/*p*/ == NIT_NULL
/*null*/) || (( variable2
/*p*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable2
/*p*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable2
/*p*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable2
/*p*/,COLOR_kernel___Object_____eqeq
))( variable2
/*p*/, NIT_NULL
/*null*/) /*MMLocalClass::==*/)))))));
528 if (!UNTAG_Bool(variable3
)) { fprintf(stderr
, "Assert%s failed (%s: %d)\n", "", LOCATE_inheritance___MMLocalClass___compute_super_parents
, 233); nit_exit(1);}
529 ((inheritance___MMLocalClass___compute_super_classes_t
)CALL( variable2
/*p*/,COLOR_inheritance___MMLocalClass___compute_super_classes
))( variable2
/*p*/) /*MMLocalClass::compute_super_classes*/;
530 continue_26
: while(0);
531 ((array___ArrayIterator___next_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___next
))(variable1
) /*ArrayIterator::next*/;
534 tracehead
= trace
.prev
;
537 val_t
inheritance___MMLocalClass___build_ancestors(val_t self
) {
538 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMLocalClass___build_ancestors
, 238};
544 trace
.prev
= tracehead
; tracehead
= &trace
;
545 variable1
= NEW_array___Array___init(); /*new Array[MMAncestor]*/
546 variable0
= variable1
;
547 variable1
= ATTR_abstractmetamodel___MMLocalClass____crhe( self
) /*MMLocalClass::_crhe*/;
548 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*/) /*PartialOrderElement::==*/)))))));
549 if (!UNTAG_Bool(variable1
)) { fprintf(stderr
, "Assert%s failed (%s: %d)\n", "", LOCATE_inheritance___MMLocalClass___build_ancestors
, 243); nit_exit(1);}
550 variable1
= ATTR_abstractmetamodel___MMLocalClass____crhe( self
) /*MMLocalClass::_crhe*/;
551 variable1
= ((partial_order___PartialOrderElement___direct_greaters_t
)CALL(variable1
,COLOR_partial_order___PartialOrderElement___direct_greaters
))(variable1
) /*PartialOrderElement::direct_greaters*/;
552 variable1
= ((array___AbstractArray___iterator_t
)CALL(variable1
,COLOR_abstract_collection___Collection___iterator
))(variable1
) /*Array::iterator*/;
553 while (true) { /*for*/
554 variable2
= ((array___ArrayIterator___is_ok_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___is_ok
))(variable1
) /*ArrayIterator::is_ok*/;
555 if (!UNTAG_Bool(variable2
)) break; /*for*/
556 variable2
= ((array___ArrayIterator___item_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___item
))(variable1
) /*ArrayIterator::item*/;
557 variable3
= TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2
/*p*/ == self
) || (( variable2
/*p*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable2
/*p*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable2
/*p*/, self
)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable2
/*p*/,COLOR_kernel___Object_____eqeq
))( variable2
/*p*/, self
) /*MMLocalClass::==*/)))))));
558 if (!UNTAG_Bool(variable3
)) { fprintf(stderr
, "Assert%s failed (%s: %d)\n", "", LOCATE_inheritance___MMLocalClass___build_ancestors
, 245); nit_exit(1);}
559 variable4
= NEW_inheritance___MMRefineAncestor___init( self
, variable2
/*p*/); /*new MMRefineAncestor*/
560 variable3
= variable4
;
561 ((inheritance___MMAncestor___add_in_t
)CALL( variable3
/*anc*/,COLOR_inheritance___MMAncestor___add_in
))( variable3
/*anc*/, variable0
/*all_ancestors*/) /*MMRefineAncestor::add_in*/;
562 continue_28
: while(0);
563 ((array___ArrayIterator___next_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___next
))(variable1
) /*ArrayIterator::next*/;
566 variable1
= ATTR_inheritance___MMLocalClass____direct_parents( self
) /*MMLocalClass::_direct_parents*/;
567 variable1
= ((array___AbstractArray___iterator_t
)CALL(variable1
,COLOR_abstract_collection___Collection___iterator
))(variable1
) /*Array::iterator*/;
568 while (true) { /*for*/
569 variable2
= ((array___ArrayIterator___is_ok_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___is_ok
))(variable1
) /*ArrayIterator::is_ok*/;
570 if (!UNTAG_Bool(variable2
)) break; /*for*/
571 variable2
= ((array___ArrayIterator___item_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___item
))(variable1
) /*ArrayIterator::item*/;
572 variable3
= ((static_type___MMAncestor___local_class_t
)CALL( variable2
/*anc*/,COLOR_static_type___MMAncestor___local_class
))( variable2
/*anc*/) /*MMAncestor::local_class*/;
573 variable3
= TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3
== self
) || ((variable3
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable3
, self
)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))(variable3
, self
) /*MMLocalClass::==*/)))))));
574 if (!UNTAG_Bool(variable3
)) { fprintf(stderr
, "Assert%s failed (%s: %d)\n", "", LOCATE_inheritance___MMLocalClass___build_ancestors
, 250); nit_exit(1);}
575 ((inheritance___MMAncestor___add_in_t
)CALL( variable2
/*anc*/,COLOR_inheritance___MMAncestor___add_in
))( variable2
/*anc*/, variable0
/*all_ancestors*/) /*MMAncestor::add_in*/;
576 continue_29
: while(0);
577 ((array___ArrayIterator___next_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___next
))(variable1
) /*ArrayIterator::next*/;
580 variable0
= variable0
/*all_ancestors*/;
582 return_label27
: while(false);
583 tracehead
= trace
.prev
;
586 val_t
inheritance___MMLocalClass___group_ancestors(val_t self
, val_t param0
) {
587 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMLocalClass___group_ancestors
, 256};
595 trace
.prev
= tracehead
; tracehead
= &trace
;
597 variable2
= NEW_hash___HashMap___init(); /*new HashMap[MMLocalClass, Set[MMAncestor]]*/
598 variable1
= variable2
;
599 variable2
= ((array___AbstractArray___iterator_t
)CALL( variable0
/*all*/,COLOR_abstract_collection___Collection___iterator
))( variable0
/*all*/) /*Array::iterator*/;
600 while (true) { /*for*/
601 variable3
= ((array___ArrayIterator___is_ok_t
)CALL(variable2
,COLOR_abstract_collection___Iterator___is_ok
))(variable2
) /*ArrayIterator::is_ok*/;
602 if (!UNTAG_Bool(variable3
)) break; /*for*/
603 variable3
= ((array___ArrayIterator___item_t
)CALL(variable2
,COLOR_abstract_collection___Iterator___item
))(variable2
) /*ArrayIterator::item*/;
604 variable5
= ((static_type___MMAncestor___local_class_t
)CALL( variable3
/*a*/,COLOR_static_type___MMAncestor___local_class
))( variable3
/*a*/) /*MMAncestor::local_class*/;
605 variable4
= variable5
;
606 variable5
= NIT_NULL
/*decl variable set*/;
607 ((inheritance___MMLocalClass___compute_ancestors_t
)CALL( variable4
/*c*/,COLOR_inheritance___MMLocalClass___compute_ancestors
))( variable4
/*c*/) /*MMLocalClass::compute_ancestors*/;
608 variable6
= ((abstract_collection___CoupleMap___has_key_t
)CALL( variable1
/*map*/,COLOR_abstract_collection___Map___has_key
))( variable1
/*map*/, variable4
/*c*/) /*HashMap::has_key*/;
609 if (UNTAG_Bool(variable6
)) { /*if*/
610 variable6
= ((abstract_collection___CoupleMap_____bra_t
)CALL( variable1
/*map*/,COLOR_abstract_collection___Map_____bra
))( variable1
/*map*/, variable4
/*c*/) /*HashMap::[]*/;
611 variable5
= variable6
/*set=*/;
613 variable6
= NEW_hash___HashSet___init(); /*new HashSet[MMAncestor]*/
614 variable5
= variable6
/*set=*/;
615 ((hash___HashMap_____braeq_t
)CALL( variable1
/*map*/,COLOR_abstract_collection___Map_____braeq
))( variable1
/*map*/, variable4
/*c*/, variable5
/*set*/) /*HashMap::[]=*/;
617 ((abstract_collection___SimpleCollection___add_t
)CALL( variable5
/*set*/,COLOR_abstract_collection___SimpleCollection___add
))( variable5
/*set*/, variable3
/*a*/) /*Set::add*/;
618 continue_31
: while(0);
619 ((array___ArrayIterator___next_t
)CALL(variable2
,COLOR_abstract_collection___Iterator___next
))(variable2
) /*ArrayIterator::next*/;
622 variable1
= variable1
/*map*/;
624 return_label30
: while(false);
625 tracehead
= trace
.prev
;
628 val_t
inheritance___MMLocalClass___merge_ancestors(val_t self
, val_t param0
) {
629 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMLocalClass___merge_ancestors
, 278};
645 trace
.prev
= tracehead
; tracehead
= &trace
;
647 variable2
= NEW_hash___HashSet___init(); /*new HashSet[MMAncestor]*/
648 variable1
= variable2
;
649 variable3
= NEW_array___Array___init(); /*new Array[MMAncestor]*/
650 variable2
= variable3
;
651 variable3
= ((abstract_collection___Collection___iterator_t
)CALL( variable0
/*set*/,COLOR_abstract_collection___Collection___iterator
))( variable0
/*set*/) /*Set::iterator*/;
652 while (true) { /*for*/
653 variable4
= ((abstract_collection___Iterator___is_ok_t
)CALL(variable3
,COLOR_abstract_collection___Iterator___is_ok
))(variable3
) /*Iterator::is_ok*/;
654 if (!UNTAG_Bool(variable4
)) break; /*for*/
655 variable4
= ((abstract_collection___Iterator___item_t
)CALL(variable3
,COLOR_abstract_collection___Iterator___item
))(variable3
) /*Iterator::item*/;
656 variable6
= ((abstract_collection___Collection___iterator_t
)CALL( variable0
/*set*/,COLOR_abstract_collection___Collection___iterator
))( variable0
/*set*/) /*Set::iterator*/;
657 variable5
= variable6
;
658 variable6
= TAG_Bool(true);
659 while (true) { /*while*/
660 variable7
= ((abstract_collection___Iterator___is_ok_t
)CALL( variable5
/*it*/,COLOR_abstract_collection___Iterator___is_ok
))( variable5
/*it*/) /*Iterator::is_ok*/;
661 variable8
= variable7
;
662 if (UNTAG_Bool(variable8
)) { /* and */
663 variable8
= variable6
/*search*/;
665 variable7
= variable8
;
666 if (!UNTAG_Bool(variable7
)) break; /* while*/
667 variable8
= ((abstract_collection___Iterator___item_t
)CALL( variable5
/*it*/,COLOR_abstract_collection___Iterator___item
))( variable5
/*it*/) /*Iterator::item*/;
668 variable8
= TAG_Bool(( variable4
/*t*/ == variable8
) || (( variable4
/*t*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable4
/*t*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable4
/*t*/,variable8
)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable4
/*t*/,COLOR_kernel___Object_____eqeq
))( variable4
/*t*/, variable8
) /*MMAncestor::==*/)))));
669 variable7
= variable8
;
670 variable8
= ((abstract_collection___Iterator___item_t
)CALL( variable5
/*it*/,COLOR_abstract_collection___Iterator___item
))( variable5
/*it*/) /*Iterator::item*/;
671 variable8
= ((hash___HashSet___has_t
)CALL( variable1
/*marks*/,COLOR_abstract_collection___Collection___has
))( variable1
/*marks*/, variable8
) /*HashSet::has*/;
672 variable7
= variable8
/*a=*/;
673 variable8
= ((abstract_collection___Iterator___item_t
)CALL( variable5
/*it*/,COLOR_abstract_collection___Iterator___item
))( variable5
/*it*/) /*Iterator::item*/;
674 variable8
= ((static_type___MMAncestor___stype_t
)CALL(variable8
,COLOR_static_type___MMAncestor___stype
))(variable8
) /*MMAncestor::stype*/;
675 variable9
= ((static_type___MMAncestor___stype_t
)CALL( variable4
/*t*/,COLOR_static_type___MMAncestor___stype
))( variable4
/*t*/) /*MMAncestor::stype*/;
676 variable8
= ((static_type___MMType_____l_t
)CALL(variable8
,COLOR_static_type___MMType_____l
))(variable8
, variable9
) /*MMType::<*/;
677 variable7
= variable8
/*a=*/;
678 variable8
= ((abstract_collection___Iterator___item_t
)CALL( variable5
/*it*/,COLOR_abstract_collection___Iterator___item
))( variable5
/*it*/) /*Iterator::item*/;
679 variable8
= TAG_Bool(( variable4
/*t*/ == variable8
) || (( variable4
/*t*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable4
/*t*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable4
/*t*/,variable8
)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable4
/*t*/,COLOR_kernel___Object_____eqeq
))( variable4
/*t*/, variable8
) /*MMAncestor::==*/)))));
680 variable9
= variable8
;
681 if (!UNTAG_Bool(variable9
)) { /* or */
682 variable9
= ((abstract_collection___Iterator___item_t
)CALL( variable5
/*it*/,COLOR_abstract_collection___Iterator___item
))( variable5
/*it*/) /*Iterator::item*/;
683 variable9
= ((hash___HashSet___has_t
)CALL( variable1
/*marks*/,COLOR_abstract_collection___Collection___has
))( variable1
/*marks*/, variable9
) /*HashSet::has*/;
685 variable8
= variable9
;
686 variable8
= TAG_Bool(!UNTAG_Bool(variable8
));
687 if (UNTAG_Bool(variable8
)) { /* and */
688 variable8
= ((abstract_collection___Iterator___item_t
)CALL( variable5
/*it*/,COLOR_abstract_collection___Iterator___item
))( variable5
/*it*/) /*Iterator::item*/;
689 variable8
= ((static_type___MMAncestor___stype_t
)CALL(variable8
,COLOR_static_type___MMAncestor___stype
))(variable8
) /*MMAncestor::stype*/;
690 variable9
= ((static_type___MMAncestor___stype_t
)CALL( variable4
/*t*/,COLOR_static_type___MMAncestor___stype
))( variable4
/*t*/) /*MMAncestor::stype*/;
691 variable8
= ((static_type___MMType_____l_t
)CALL(variable8
,COLOR_static_type___MMType_____l
))(variable8
, variable9
) /*MMType::<*/;
693 if (UNTAG_Bool(variable8
)) { /*if*/
694 ((hash___HashSet___add_t
)CALL( variable1
/*marks*/,COLOR_abstract_collection___SimpleCollection___add
))( variable1
/*marks*/, variable4
/*t*/) /*HashSet::add*/;
695 variable6
= TAG_Bool(false) /*search=*/;
697 ((abstract_collection___Iterator___next_t
)CALL( variable5
/*it*/,COLOR_abstract_collection___Iterator___next
))( variable5
/*it*/) /*Iterator::next*/;
698 continue_34
: while(0);
701 variable7
= ((hash___HashSet___has_t
)CALL( variable1
/*marks*/,COLOR_abstract_collection___Collection___has
))( variable1
/*marks*/, variable4
/*t*/) /*HashSet::has*/;
702 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable7
)))) { /*if*/
703 ((array___AbstractArray___add_t
)CALL( variable2
/*res*/,COLOR_abstract_collection___SimpleCollection___add
))( variable2
/*res*/, variable4
/*t*/) /*Array::add*/;
705 continue_33
: while(0);
706 ((abstract_collection___Iterator___next_t
)CALL(variable3
,COLOR_abstract_collection___Iterator___next
))(variable3
) /*Iterator::next*/;
709 variable3
= ((array___AbstractArray___length_t
)CALL( variable2
/*res*/,COLOR_abstract_collection___Collection___length
))( variable2
/*res*/) /*Array::length*/;
710 variable3
= TAG_Bool(UNTAG_Int(variable3
)>UNTAG_Int( TAG_Int(1)));
711 if (UNTAG_Bool(variable3
)) { /*if*/
712 variable3
= ((file___Object___stderr_t
)CALL( self
,COLOR_file___Object___stderr
))( self
) /*MMLocalClass::stderr*/;
713 variable4
= NEW_string___String___init(); /*new String*/
714 variable5
= NEW_string___String___with_native(BOX_NativeString("Fatal error: Incompatibles ancestors for "), TAG_Int(41)); /*new String*/
715 variable6
= variable5
;
716 ((string___String___append_t
)CALL(variable4
,COLOR_abstract_collection___IndexedCollection___append
))(variable4
, variable6
) /*String::append*/;
717 variable7
= ((abstractmetamodel___MMLocalClass___name_t
)CALL( self
,COLOR_abstractmetamodel___MMLocalClass___name
))( self
) /*MMLocalClass::name*/;
718 variable8
= variable7
;
719 variable8
= ((string___String___to_s_t
)CALL(variable8
,COLOR_string___Object___to_s
))(variable8
) /*String::to_s*/;
720 ((string___String___append_t
)CALL(variable4
,COLOR_abstract_collection___IndexedCollection___append
))(variable4
, variable8
) /*String::append*/;
721 variable9
= NEW_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
722 variable10
= variable9
;
723 ((string___String___append_t
)CALL(variable4
,COLOR_abstract_collection___IndexedCollection___append
))(variable4
, variable10
) /*String::append*/;
724 variable11
= NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
725 variable11
= ((string___Collection___join_t
)CALL( variable2
/*res*/,COLOR_string___Collection___join
))( variable2
/*res*/, variable11
) /*Array::join*/;
726 variable12
= variable11
;
727 ((string___String___append_t
)CALL(variable4
,COLOR_abstract_collection___IndexedCollection___append
))(variable4
, variable12
) /*String::append*/;
728 variable13
= NEW_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
729 variable14
= variable13
;
730 ((string___String___append_t
)CALL(variable4
,COLOR_abstract_collection___IndexedCollection___append
))(variable4
, variable14
) /*String::append*/;
731 ((file___OFStream___write_t
)CALL(variable3
,COLOR_stream___OStream___write
))(variable3
, variable4
) /*OFStream::write*/;
732 exit(UNTAG_Int( TAG_Int(1)));
734 variable3
= ((abstract_collection___IndexedCollection___first_t
)CALL( variable2
/*res*/,COLOR_abstract_collection___Collection___first
))( variable2
/*res*/) /*Array::first*/;
735 variable1
= variable3
;
737 return_label32
: while(false);
738 tracehead
= trace
.prev
;
741 val_t
inheritance___MMLocalClass___inherit_local_property(val_t self
, val_t param0
) {
742 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMLocalClass___inherit_local_property
, 311};
759 trace
.prev
= tracehead
; tracehead
= &trace
;
761 variable1
= ATTR_abstractmetamodel___MMLocalClass____local_property_by_global( self
) /*MMLocalClass::_local_property_by_global*/;
762 variable1
= ((abstract_collection___Map___has_key_t
)CALL(variable1
,COLOR_abstract_collection___Map___has_key
))(variable1
, variable0
/*glob*/) /*Map::has_key*/;
763 if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable1
)))) { fprintf(stderr
, "Assert%s failed (%s: %d)\n", "", LOCATE_inheritance___MMLocalClass___inherit_local_property
, 316); nit_exit(1);}
764 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::==*/)))))));
765 if (!UNTAG_Bool(variable1
)) { fprintf(stderr
, "Assert%s failed (%s: %d)\n", "", LOCATE_inheritance___MMLocalClass___inherit_local_property
, 317); nit_exit(1);}
766 variable2
= ((inheritance___MMGlobalProperty___get_compatible_concrete_properties_for_t
)CALL( variable0
/*glob*/,COLOR_inheritance___MMGlobalProperty___get_compatible_concrete_properties_for
))( variable0
/*glob*/, self
) /*MMGlobalProperty::get_compatible_concrete_properties_for*/;
767 variable1
= variable2
;
768 variable2
= ((array___AbstractArray___length_t
)CALL( variable1
/*impls*/,COLOR_abstract_collection___Collection___length
))( variable1
/*impls*/) /*Array::length*/;
769 variable2
= TAG_Bool((variable2
)!=( TAG_Int(1)));
770 if (UNTAG_Bool(variable2
)) { /*if*/
771 variable2
= ((file___Object___stderr_t
)CALL( self
,COLOR_file___Object___stderr
))( self
) /*MMLocalClass::stderr*/;
772 variable3
= NEW_string___String___with_native(BOX_NativeString("Fatal error: inherit_local_property error\n"), TAG_Int(42)); /*new String*/
773 ((file___OFStream___write_t
)CALL(variable2
,COLOR_stream___OStream___write
))(variable2
, variable3
) /*OFStream::write*/;
774 variable2
= NEW_string___String___init(); /*new String*/
775 variable3
= NEW_string___String___with_native(BOX_NativeString("------- "), TAG_Int(8)); /*new String*/
776 variable4
= variable3
;
777 ((string___String___append_t
)CALL(variable2
,COLOR_abstract_collection___IndexedCollection___append
))(variable2
, variable4
) /*String::append*/;
778 variable5
= ((abstractmetamodel___MMLocalClass___module_t
)CALL( self
,COLOR_abstractmetamodel___MMLocalClass___module
))( self
) /*MMLocalClass::module*/;
779 variable6
= variable5
;
780 variable6
= ((string___String___to_s_t
)CALL(variable6
,COLOR_string___Object___to_s
))(variable6
) /*String::to_s*/;
781 ((string___String___append_t
)CALL(variable2
,COLOR_abstract_collection___IndexedCollection___append
))(variable2
, variable6
) /*String::append*/;
782 variable7
= NEW_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
783 variable8
= variable7
;
784 ((string___String___append_t
)CALL(variable2
,COLOR_abstract_collection___IndexedCollection___append
))(variable2
, variable8
) /*String::append*/;
786 variable9
= ((string___String___to_s_t
)CALL(variable9
,COLOR_string___Object___to_s
))(variable9
) /*String::to_s*/;
787 ((string___String___append_t
)CALL(variable2
,COLOR_abstract_collection___IndexedCollection___append
))(variable2
, variable9
) /*String::append*/;
788 variable10
= NEW_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/
789 variable11
= variable10
;
790 ((string___String___append_t
)CALL(variable2
,COLOR_abstract_collection___IndexedCollection___append
))(variable2
, variable11
) /*String::append*/;
791 variable12
= ((abstractmetamodel___MMGlobalProperty___intro_t
)CALL( variable0
/*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___intro
))( variable0
/*glob*/) /*MMGlobalProperty::intro*/;
792 variable12
= ((abstractmetamodel___MMLocalProperty___full_name_t
)CALL(variable12
,COLOR_abstractmetamodel___MMLocalProperty___full_name
))(variable12
) /*MMConcreteProperty::full_name*/;
793 variable13
= variable12
;
794 ((string___String___append_t
)CALL(variable2
,COLOR_abstract_collection___IndexedCollection___append
))(variable2
, variable13
) /*String::append*/;
795 variable14
= NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
796 variable15
= variable14
;
797 ((string___String___append_t
)CALL(variable2
,COLOR_abstract_collection___IndexedCollection___append
))(variable2
, variable15
) /*String::append*/;
798 ((file___Object___print_t
)CALL( self
,COLOR_file___Object___print
))( self
, variable2
) /*MMLocalClass::print*/;
799 variable2
= ((array___AbstractArray___iterator_t
)CALL( variable1
/*impls*/,COLOR_abstract_collection___Collection___iterator
))( variable1
/*impls*/) /*Array::iterator*/;
800 while (true) { /*for*/
801 variable3
= ((array___ArrayIterator___is_ok_t
)CALL(variable2
,COLOR_abstract_collection___Iterator___is_ok
))(variable2
) /*ArrayIterator::is_ok*/;
802 if (!UNTAG_Bool(variable3
)) break; /*for*/
803 variable3
= ((array___ArrayIterator___item_t
)CALL(variable2
,COLOR_abstract_collection___Iterator___item
))(variable2
) /*ArrayIterator::item*/;
804 variable4
= NEW_string___String___init(); /*new String*/
805 variable5
= NEW_string___String___with_native(BOX_NativeString(" "), TAG_Int(3)); /*new String*/
806 variable6
= variable5
;
807 ((string___String___append_t
)CALL(variable4
,COLOR_abstract_collection___IndexedCollection___append
))(variable4
, variable6
) /*String::append*/;
808 variable7
= ((abstractmetamodel___MMLocalProperty___full_name_t
)CALL( variable3
/*i*/,COLOR_abstractmetamodel___MMLocalProperty___full_name
))( variable3
/*i*/) /*MMConcreteProperty::full_name*/;
809 variable8
= variable7
;
810 ((string___String___append_t
)CALL(variable4
,COLOR_abstract_collection___IndexedCollection___append
))(variable4
, variable8
) /*String::append*/;
811 variable9
= NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
812 variable10
= variable9
;
813 ((string___String___append_t
)CALL(variable4
,COLOR_abstract_collection___IndexedCollection___append
))(variable4
, variable10
) /*String::append*/;
814 ((file___Object___print_t
)CALL( self
,COLOR_file___Object___print
))( self
, variable4
) /*MMLocalClass::print*/;
815 continue_36
: while(0);
816 ((array___ArrayIterator___next_t
)CALL(variable2
,COLOR_abstract_collection___Iterator___next
))(variable2
) /*ArrayIterator::next*/;
819 variable2
= NEW_string___String___init(); /*new String*/
820 variable3
= NEW_string___String___with_native(BOX_NativeString("------- "), TAG_Int(8)); /*new String*/
821 variable4
= variable3
;
822 ((string___String___append_t
)CALL(variable2
,COLOR_abstract_collection___IndexedCollection___append
))(variable2
, variable4
) /*String::append*/;
823 variable5
= ((abstractmetamodel___MMGlobalProperty___concrete_property_hierarchy_t
)CALL( variable0
/*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___concrete_property_hierarchy
))( variable0
/*glob*/) /*MMGlobalProperty::concrete_property_hierarchy*/;
824 variable5
= ((partial_order___PartialOrder___first_t
)CALL(variable5
,COLOR_abstract_collection___Collection___first
))(variable5
) /*PartialOrder::first*/;
825 variable6
= variable5
;
826 variable6
= ((string___String___to_s_t
)CALL(variable6
,COLOR_string___Object___to_s
))(variable6
) /*String::to_s*/;
827 ((string___String___append_t
)CALL(variable2
,COLOR_abstract_collection___IndexedCollection___append
))(variable2
, variable6
) /*String::append*/;
828 variable7
= NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
829 variable8
= variable7
;
830 ((string___String___append_t
)CALL(variable2
,COLOR_abstract_collection___IndexedCollection___append
))(variable2
, variable8
) /*String::append*/;
831 ((file___Object___print_t
)CALL( self
,COLOR_file___Object___print
))( self
, variable2
) /*MMLocalClass::print*/;
832 variable2
= NEW_string___String___init(); /*new String*/
833 variable3
= NEW_string___String___with_native(BOX_NativeString("------- "), TAG_Int(8)); /*new String*/
834 variable4
= variable3
;
835 ((string___String___append_t
)CALL(variable2
,COLOR_abstract_collection___IndexedCollection___append
))(variable2
, variable4
) /*String::append*/;
836 variable5
= ((abstractmetamodel___MMGlobalProperty___concrete_property_hierarchy_t
)CALL( variable0
/*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___concrete_property_hierarchy
))( variable0
/*glob*/) /*MMGlobalProperty::concrete_property_hierarchy*/;
837 variable5
= ((partial_order___PartialOrder___to_dot_t
)CALL(variable5
,COLOR_partial_order___PartialOrder___to_dot
))(variable5
) /*PartialOrder::to_dot*/;
838 variable6
= variable5
;
839 ((string___String___append_t
)CALL(variable2
,COLOR_abstract_collection___IndexedCollection___append
))(variable2
, variable6
) /*String::append*/;
840 variable7
= NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
841 variable8
= variable7
;
842 ((string___String___append_t
)CALL(variable2
,COLOR_abstract_collection___IndexedCollection___append
))(variable2
, variable8
) /*String::append*/;
843 ((file___Object___print_t
)CALL( self
,COLOR_file___Object___print
))( self
, variable2
) /*MMLocalClass::print*/;
844 exit(UNTAG_Int( TAG_Int(1)));
846 variable3
= ((abstract_collection___IndexedCollection___first_t
)CALL( variable1
/*impls*/,COLOR_abstract_collection___Collection___first
))( variable1
/*impls*/) /*Array::first*/;
847 variable2
= variable3
;
848 variable4
= ((abstractmetamodel___MMLocalProperty___local_class_t
)CALL( variable2
/*impl*/,COLOR_abstractmetamodel___MMLocalProperty___local_class
))( variable2
/*impl*/) /*MMConcreteProperty::local_class*/;
849 variable4
= ((inheritance___MMLocalClass___ancestor_for_t
)CALL( self
,COLOR_inheritance___MMLocalClass___ancestor_for
))( self
, variable4
) /*MMLocalClass::ancestor_for*/;
850 variable3
= variable4
;
851 variable4
= ((static_type___MMAncestor___local_class_t
)CALL( variable3
/*ac*/,COLOR_static_type___MMAncestor___local_class
))( variable3
/*ac*/) /*MMAncestor::local_class*/;
852 ((inheritance___MMLocalClass___inherit_global_properties_t
)CALL(variable4
,COLOR_inheritance___MMLocalClass___inherit_global_properties
))(variable4
) /*MMLocalClass::inherit_global_properties*/;
853 variable5
= ((static_type___MMAncestor___stype_t
)CALL( variable3
/*ac*/,COLOR_static_type___MMAncestor___stype
))( variable3
/*ac*/) /*MMAncestor::stype*/;
854 variable4
= variable5
;
855 variable5
= ((static_type___MMType___local_class_t
)CALL( variable4
/*a*/,COLOR_static_type___MMType___local_class
))( variable4
/*a*/) /*MMType::local_class*/;
856 variable5
= TAG_Bool(!UNTAG_Bool(TAG_Bool((variable5
== self
) || ((variable5
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable5
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable5
, self
)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable5
,COLOR_kernel___Object_____eqeq
))(variable5
, self
) /*MMLocalClass::==*/)))))));
857 if (!UNTAG_Bool(variable5
)) { fprintf(stderr
, "Assert%s failed (%s: %d)\n", "", LOCATE_inheritance___MMLocalClass___inherit_local_property
, 335); nit_exit(1);}
858 variable6
= ((static_type___MMType___select_property_t
)CALL( variable4
/*a*/,COLOR_static_type___MMType___select_property
))( variable4
/*a*/, variable0
/*glob*/) /*MMType::select_property*/;
859 variable5
= variable6
;
860 variable6
= TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable5
/*sup*/ == NIT_NULL
/*null*/) || (( variable5
/*sup*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable5
/*sup*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable5
/*sup*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable5
/*sup*/,COLOR_kernel___Object_____eqeq
))( variable5
/*sup*/, NIT_NULL
/*null*/) /*MMLocalProperty::==*/)))))));
861 if (!UNTAG_Bool(variable6
)) { fprintf(stderr
, "Assert%s failed (%s: %d)\n", "", LOCATE_inheritance___MMLocalClass___inherit_local_property
, 337); nit_exit(1);}
862 variable7
= ((static_type___MMLocalClass___get_type_t
)CALL( self
,COLOR_static_type___MMLocalClass___get_type
))( self
) /*MMLocalClass::get_type*/;
863 variable7
= ((inheritance___MMLocalProperty___inherit_to_t
)CALL( variable5
/*sup*/,COLOR_inheritance___MMLocalProperty___inherit_to
))( variable5
/*sup*/, variable7
) /*MMLocalProperty::inherit_to*/;
864 variable6
= variable7
;
865 variable1
= variable6
/*prop*/;
867 return_label35
: while(false);
868 tracehead
= trace
.prev
;
871 val_t
inheritance___MMConcreteProperty___is_deferred(val_t self
) {
872 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMConcreteProperty___is_deferred
, 344};
874 trace
.prev
= tracehead
; tracehead
= &trace
;
875 variable0
= TAG_Bool(false);
877 return_label37
: while(false);
878 tracehead
= trace
.prev
;
881 val_t
inheritance___MMGlobalProperty___get_compatible_concrete_properties_for(val_t self
, val_t param0
) {
882 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMGlobalProperty___get_compatible_concrete_properties_for
, 349};
892 trace
.prev
= tracehead
; tracehead
= &trace
;
894 variable2
= ATTR_abstractmetamodel___MMGlobalProperty____concrete_property_hierarchy( self
) /*MMGlobalProperty::_concrete_property_hierarchy*/;
895 variable1
= variable2
;
896 variable2
= ((partial_order___PartialOrder___length_t
)CALL( variable1
/*impl_hier*/,COLOR_abstract_collection___Collection___length
))( variable1
/*impl_hier*/) /*PartialOrder::length*/;
897 variable2
= TAG_Bool((variable2
)==( TAG_Int(1)));
898 if (UNTAG_Bool(variable2
)) { /*if*/
899 variable2
= NEW_array___Array___with_capacity(TAG_Int(1)); /*new Array[MMConcreteProperty]*/
900 variable3
= ((abstractmetamodel___MMGlobalProperty___intro_t
)CALL( self
,COLOR_abstractmetamodel___MMGlobalProperty___intro
))( self
) /*MMGlobalProperty::intro*/;
901 ((array___AbstractArray___add_t
)CALL(variable2
,COLOR_abstract_collection___SimpleCollection___add
))(variable2
, variable3
) /*Array::add*/;
902 variable1
= variable2
;
905 variable3
= NEW_array___ArraySet___init(); /*new ArraySet[MMConcreteProperty]*/
906 variable2
= variable3
;
907 variable4
= ((abstractmetamodel___MMLocalClass___che_t
)CALL( variable0
/*cla*/,COLOR_abstractmetamodel___MMLocalClass___che
))( variable0
/*cla*/) /*MMLocalClass::che*/;
908 variable3
= variable4
;
909 if (UNTAG_Bool( TAG_Bool(true))) { /*if*/
910 variable4
= ((abstractmetamodel___MMLocalClass___che_t
)CALL( variable0
/*cla*/,COLOR_abstractmetamodel___MMLocalClass___che
))( variable0
/*cla*/) /*MMLocalClass::che*/;
911 variable4
= ((partial_order___PartialOrderElement___direct_greaters_t
)CALL(variable4
,COLOR_partial_order___PartialOrderElement___direct_greaters
))(variable4
) /*PartialOrderElement::direct_greaters*/;
912 variable4
= ((array___AbstractArray___iterator_t
)CALL(variable4
,COLOR_abstract_collection___Collection___iterator
))(variable4
) /*Array::iterator*/;
913 while (true) { /*for*/
914 variable5
= ((array___ArrayIterator___is_ok_t
)CALL(variable4
,COLOR_abstract_collection___Iterator___is_ok
))(variable4
) /*ArrayIterator::is_ok*/;
915 if (!UNTAG_Bool(variable5
)) break; /*for*/
916 variable5
= ((array___ArrayIterator___item_t
)CALL(variable4
,COLOR_abstract_collection___Iterator___item
))(variable4
) /*ArrayIterator::item*/;
917 variable7
= ((inheritance___MMLocalClass_____bra_t
)CALL( variable5
/*sc*/,COLOR_abstractmetamodel___MMLocalClass_____bra
))( variable5
/*sc*/, self
) /*MMLocalClass::[]*/;
918 variable6
= variable7
;
919 variable7
= TAG_Bool(( variable6
/*p*/ == NIT_NULL
/*null*/) || (( variable6
/*p*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable6
/*p*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable6
/*p*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable6
/*p*/,COLOR_kernel___Object_____eqeq
))( variable6
/*p*/, NIT_NULL
/*null*/) /*MMLocalProperty::==*/)))));
920 if (UNTAG_Bool(variable7
)) { /*if*/
923 variable8
= ((abstractmetamodel___MMLocalProperty___concrete_property_t
)CALL( variable6
/*p*/,COLOR_abstractmetamodel___MMLocalProperty___concrete_property
))( variable6
/*p*/) /*MMLocalProperty::concrete_property*/;
924 variable7
= variable8
;
925 ((array___ArraySet___add_t
)CALL( variable2
/*impls*/,COLOR_abstract_collection___SimpleCollection___add
))( variable2
/*impls*/, variable7
/*impl*/) /*ArraySet::add*/;
926 continue_39
: while(0);
927 ((array___ArrayIterator___next_t
)CALL(variable4
,COLOR_abstract_collection___Iterator___next
))(variable4
) /*ArrayIterator::next*/;
931 variable4
= ((partial_order___PartialOrder___iterator_t
)CALL( variable1
/*impl_hier*/,COLOR_abstract_collection___Collection___iterator
))( variable1
/*impl_hier*/) /*PartialOrder::iterator*/;
932 while (true) { /*for*/
933 variable5
= ((abstract_collection___Iterator___is_ok_t
)CALL(variable4
,COLOR_abstract_collection___Iterator___is_ok
))(variable4
) /*Iterator::is_ok*/;
934 if (!UNTAG_Bool(variable5
)) break; /*for*/
935 variable5
= ((abstract_collection___Iterator___item_t
)CALL(variable4
,COLOR_abstract_collection___Iterator___item
))(variable4
) /*Iterator::item*/;
936 variable7
= ((abstractmetamodel___MMLocalProperty___local_class_t
)CALL( variable5
/*impl*/,COLOR_abstractmetamodel___MMLocalProperty___local_class
))( variable5
/*impl*/) /*MMConcreteProperty::local_class*/;
937 variable6
= variable7
;
938 variable7
= ((partial_order___PartialOrderElement_____l_t
)CALL( variable3
/*clache*/,COLOR_partial_order___PartialOrderElement_____l
))( variable3
/*clache*/, variable6
/*bc*/) /*PartialOrderElement::<*/;
939 if (UNTAG_Bool(variable7
)) { /*if*/
940 ((array___ArraySet___add_t
)CALL( variable2
/*impls*/,COLOR_abstract_collection___SimpleCollection___add
))( variable2
/*impls*/, variable5
/*impl*/) /*ArraySet::add*/;
942 continue_40
: while(0);
943 ((abstract_collection___Iterator___next_t
)CALL(variable4
,COLOR_abstract_collection___Iterator___next
))(variable4
) /*Iterator::next*/;
947 variable4
= ((partial_order___PartialOrder___select_smallests_t
)CALL( variable1
/*impl_hier*/,COLOR_partial_order___PartialOrder___select_smallests
))( variable1
/*impl_hier*/, variable2
/*impls*/) /*PartialOrder::select_smallests*/;
948 variable1
= variable4
;
950 return_label38
: while(false);
951 tracehead
= trace
.prev
;
954 void inheritance___MMLocalProperty___inherit_global(val_t self
, val_t param0
) {
955 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMLocalProperty___inherit_global
, 378};
959 trace
.prev
= tracehead
; tracehead
= &trace
;
961 ((abstractmetamodel___MMLocalProperty___set_global_t
)CALL( self
,COLOR_abstractmetamodel___MMLocalProperty___set_global
))( self
, variable0
/*g*/) /*MMLocalProperty::set_global*/;
962 variable1
= ((abstractmetamodel___MMLocalProperty___concrete_property_t
)CALL( self
,COLOR_abstractmetamodel___MMLocalProperty___concrete_property
))( self
) /*MMLocalProperty::concrete_property*/;
963 variable2
= ((abstractmetamodel___MMLocalProperty___local_class_t
)CALL( self
,COLOR_abstractmetamodel___MMLocalProperty___local_class
))( self
) /*MMLocalProperty::local_class*/;
964 variable2
= ((inheritance___MMGlobalProperty___get_compatible_concrete_properties_for_t
)CALL( variable0
/*g*/,COLOR_inheritance___MMGlobalProperty___get_compatible_concrete_properties_for
))( variable0
/*g*/, variable2
) /*MMGlobalProperty::get_compatible_concrete_properties_for*/;
965 ((abstractmetamodel___MMGlobalProperty___add_concrete_property_t
)CALL( variable0
/*g*/,COLOR_abstractmetamodel___MMGlobalProperty___add_concrete_property
))( variable0
/*g*/, variable1
, variable2
) /*MMGlobalProperty::add_concrete_property*/;
966 tracehead
= trace
.prev
;
969 val_t
inheritance___MMLocalProperty___inherit_to(val_t self
, val_t param0
) {
970 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMLocalProperty___inherit_to
, 386};
971 trace
.prev
= tracehead
; tracehead
= &trace
;
972 fprintf(stderr
, "Deferred method %s called (%s: %d)\n", "inherit_to", LOCATE_inheritance___MMLocalProperty___inherit_global
, 386);
974 tracehead
= trace
.prev
;
977 void inheritance___MMLocalProperty___inherit_from(val_t self
, val_t param0
, val_t param1
) {
978 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMLocalProperty___inherit_from
, 389};
982 trace
.prev
= tracehead
; tracehead
= &trace
;
985 variable2
= ATTR_abstractmetamodel___MMLocalProperty____super_prop( self
) /*MMLocalProperty::_super_prop*/;
986 variable2
= 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*/) /*MMLocalProperty::==*/)))));
987 if (!UNTAG_Bool(variable2
)) { fprintf(stderr
, "Assert%s failed (%s: %d)\n", "", LOCATE_inheritance___MMLocalProperty___inherit_from
, 392); nit_exit(1);}
988 ATTR_abstractmetamodel___MMLocalProperty____super_prop( self
) /*MMLocalProperty::_super_prop*/ = variable0
/*s*/;
989 variable2
= ATTR_abstractmetamodel___MMLocalProperty____global( self
) /*MMLocalProperty::_global*/;
990 variable2
= 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*/) /*MMGlobalProperty::==*/)))));
991 if (UNTAG_Bool(variable2
)) { /*if*/
992 variable2
= ((abstractmetamodel___MMLocalProperty___global_t
)CALL( variable0
/*s*/,COLOR_abstractmetamodel___MMLocalProperty___global
))( variable0
/*s*/) /*MMLocalProperty::global*/;
993 ((abstractmetamodel___MMLocalProperty___set_global_t
)CALL( self
,COLOR_abstractmetamodel___MMLocalProperty___set_global
))( self
, variable2
) /*MMLocalProperty::set_global*/;
995 tracehead
= trace
.prev
;
998 val_t
inheritance___MMMethod___inherit_to(val_t self
, val_t param0
) {
999 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMMethod___inherit_to
, 402};
1002 trace
.prev
= tracehead
; tracehead
= &trace
;
1004 variable1
= NEW_inheritance___MMImplicitMethod___init( self
, variable0
/*t*/); /*new MMImplicitMethod*/
1005 goto return_label43
;
1006 return_label43
: while(false);
1007 tracehead
= trace
.prev
;
1010 void inheritance___MMImplicitProperty___init(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
1011 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMImplicitProperty___init
, 410};
1017 trace
.prev
= tracehead
; tracehead
= &trace
;
1020 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_MMImplicitProperty
].i
]) return;
1021 variable2
= ((abstractmetamodel___MMLocalProperty___name_t
)CALL( variable0
/*prop*/,COLOR_abstractmetamodel___MMLocalProperty___name
))( variable0
/*prop*/) /*MMLocalProperty::name*/;
1022 variable3
= ((static_type___MMType___local_class_t
)CALL( variable1
/*bt*/,COLOR_static_type___MMType___local_class
))( variable1
/*bt*/) /*MMType::local_class*/;
1023 variable4
= ((abstractmetamodel___MMLocalProperty___concrete_property_t
)CALL( variable0
/*prop*/,COLOR_abstractmetamodel___MMLocalProperty___concrete_property
))( variable0
/*prop*/) /*MMLocalProperty::concrete_property*/;
1024 ((abstractmetamodel___MMLocalProperty___init_t
)CALL( self
,COLOR_abstractmetamodel___MMLocalProperty___init
))( self
, variable2
, variable3
, variable4
, init_table
/*YYY*/) /*MMLocalProperty::init*/;
1025 ((inheritance___MMLocalProperty___inherit_from_t
)CALL( self
,COLOR_inheritance___MMLocalProperty___inherit_from
))( self
, variable0
/*prop*/, variable1
/*bt*/) /*MMImplicitProperty::inherit_from*/;
1026 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_MMImplicitProperty
].i
] = 1;
1027 tracehead
= trace
.prev
;
1030 void inheritance___MMImplicitMethod___init(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
1031 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMImplicitMethod___init
, 421};
1034 trace
.prev
= tracehead
; tracehead
= &trace
;
1037 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_MMImplicitMethod
].i
]) return;
1038 ((inheritance___MMImplicitProperty___init_t
)CALL( self
,COLOR_inheritance___MMImplicitProperty___init
))( self
, param0
, param1
, init_table
/*YYY*/) /*MMImplicitProperty::init*/;
1039 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_MMImplicitMethod
].i
] = 1;
1040 tracehead
= trace
.prev
;
1043 val_t
inheritance___MMAttribute___inherit_to(val_t self
, val_t param0
) {
1044 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMAttribute___inherit_to
, 425};
1047 trace
.prev
= tracehead
; tracehead
= &trace
;
1049 variable1
= NEW_inheritance___MMImplicitAttribute___init( self
, variable0
/*t*/); /*new MMImplicitAttribute*/
1050 goto return_label46
;
1051 return_label46
: while(false);
1052 tracehead
= trace
.prev
;
1055 void inheritance___MMImplicitAttribute___init(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
1056 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMImplicitAttribute___init
, 434};
1059 trace
.prev
= tracehead
; tracehead
= &trace
;
1062 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_MMImplicitAttribute
].i
]) return;
1063 ((inheritance___MMImplicitProperty___init_t
)CALL( self
,COLOR_inheritance___MMImplicitProperty___init
))( self
, param0
, param1
, init_table
/*YYY*/) /*MMImplicitProperty::init*/;
1064 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_MMImplicitAttribute
].i
] = 1;
1065 tracehead
= trace
.prev
;
1068 void inheritance___MMAncestor___add_in(val_t self
, val_t param0
) {
1069 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMAncestor___add_in
, 438};
1079 trace
.prev
= tracehead
; tracehead
= &trace
;
1081 variable1
= ((static_type___MMAncestor___stype_t
)CALL( self
,COLOR_static_type___MMAncestor___stype
))( self
) /*MMAncestor::stype*/;
1082 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*/) /*MMType::==*/)))))));
1083 if (!UNTAG_Bool(variable1
)) { fprintf(stderr
, "Assert%s failed (%s: %d)\n", " 'ancestor' ", LOCATE_inheritance___MMAncestor___add_in
, 441); nit_exit(1);}
1084 variable1
= ((static_type___MMAncestor___stype_t
)CALL( self
,COLOR_static_type___MMAncestor___stype
))( self
) /*MMAncestor::stype*/;
1085 variable1
= ((static_type___MMType___local_class_t
)CALL(variable1
,COLOR_static_type___MMType___local_class
))(variable1
) /*MMType::local_class*/;
1086 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*/) /*MMLocalClass::==*/)))))));
1087 if (!UNTAG_Bool(variable1
)) { fprintf(stderr
, "Assert%s failed (%s: %d)\n", " 'local_class' ", LOCATE_inheritance___MMAncestor___add_in
, 442); nit_exit(1);}
1088 ((array___AbstractArray___add_t
)CALL( variable0
/*tab*/,COLOR_abstract_collection___SimpleCollection___add
))( variable0
/*tab*/, self
) /*Array::add*/;
1089 variable1
= ((static_type___MMAncestor___stype_t
)CALL( self
,COLOR_static_type___MMAncestor___stype
))( self
) /*MMAncestor::stype*/;
1090 variable1
= ((static_type___MMType___local_class_t
)CALL(variable1
,COLOR_static_type___MMType___local_class
))(variable1
) /*MMType::local_class*/;
1091 ((inheritance___MMLocalClass___compute_ancestors_t
)CALL(variable1
,COLOR_inheritance___MMLocalClass___compute_ancestors
))(variable1
) /*MMLocalClass::compute_ancestors*/;
1092 variable1
= ((static_type___MMAncestor___stype_t
)CALL( self
,COLOR_static_type___MMAncestor___stype
))( self
) /*MMAncestor::stype*/;
1093 variable1
= ((static_type___MMType___local_class_t
)CALL(variable1
,COLOR_static_type___MMType___local_class
))(variable1
) /*MMType::local_class*/;
1094 variable1
= ((static_type___MMLocalClass___ancestors_t
)CALL(variable1
,COLOR_static_type___MMLocalClass___ancestors
))(variable1
) /*MMLocalClass::ancestors*/;
1095 variable1
= ((abstract_collection___Map___iterator_t
)CALL(variable1
,COLOR_abstract_collection___Collection___iterator
))(variable1
) /*Map::iterator*/;
1096 while (true) { /*for*/
1097 variable2
= ((abstract_collection___Iterator___is_ok_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___is_ok
))(variable1
) /*MapIterator::is_ok*/;
1098 if (!UNTAG_Bool(variable2
)) break; /*for*/
1099 variable2
= ((abstract_collection___Iterator___item_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___item
))(variable1
) /*MapIterator::item*/;
1100 variable4
= ((static_type___MMAncestor___stype_t
)CALL( variable2
/*anc*/,COLOR_static_type___MMAncestor___stype
))( variable2
/*anc*/) /*MMAncestor::stype*/;
1101 variable5
= ((static_type___MMAncestor___stype_t
)CALL( self
,COLOR_static_type___MMAncestor___stype
))( self
) /*MMAncestor::stype*/;
1102 variable5
= ((static_type___MMType___module_t
)CALL(variable5
,COLOR_static_type___MMType___module
))(variable5
) /*MMType::module*/;
1103 variable4
= ((static_type___MMType___for_module_t
)CALL(variable4
,COLOR_static_type___MMType___for_module
))(variable4
, variable5
) /*MMType::for_module*/;
1104 variable3
= variable4
;
1105 variable5
= ((static_type___MMAncestor___stype_t
)CALL( self
,COLOR_static_type___MMAncestor___stype
))( self
) /*MMAncestor::stype*/;
1106 variable5
= ((static_type___MMType___adapt_to_t
)CALL( variable3
/*aaa*/,COLOR_static_type___MMType___adapt_to
))( variable3
/*aaa*/, variable5
) /*MMType::adapt_to*/;
1107 variable6
= ((static_type___MMAncestor___inheriter_t
)CALL( self
,COLOR_static_type___MMAncestor___inheriter
))( self
) /*MMAncestor::inheriter*/;
1108 variable6
= ((static_type___MMType___module_t
)CALL(variable6
,COLOR_static_type___MMType___module
))(variable6
) /*MMType::module*/;
1109 variable5
= ((static_type___MMType___for_module_t
)CALL(variable5
,COLOR_static_type___MMType___for_module
))(variable5
, variable6
) /*MMType::for_module*/;
1110 variable4
= variable5
;
1111 variable5
= ((static_type___MMType___local_class_t
)CALL( variable4
/*a*/,COLOR_static_type___MMType___local_class
))( variable4
/*a*/) /*MMType::local_class*/;
1112 variable6
= ((static_type___MMAncestor___inheriter_t
)CALL( self
,COLOR_static_type___MMAncestor___inheriter
))( self
) /*MMAncestor::inheriter*/;
1113 variable6
= ((static_type___MMType___local_class_t
)CALL(variable6
,COLOR_static_type___MMType___local_class
))(variable6
) /*MMType::local_class*/;
1114 variable5
= TAG_Bool(!UNTAG_Bool(TAG_Bool((variable5
== variable6
) || ((variable5
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable5
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable5
,variable6
)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable5
,COLOR_kernel___Object_____eqeq
))(variable5
, variable6
) /*MMLocalClass::==*/)))))));
1115 if (UNTAG_Bool(variable5
)) { /*if*/
1116 variable6
= ((array___AbstractArray___iterator_t
)CALL( variable0
/*tab*/,COLOR_abstract_collection___Collection___iterator
))( variable0
/*tab*/) /*Array::iterator*/;
1117 variable5
= variable6
;
1118 variable6
= TAG_Bool(true);
1119 while (true) { /*while*/
1120 variable7
= ((array___ArrayIterator___is_ok_t
)CALL( variable5
/*it*/,COLOR_abstract_collection___Iterator___is_ok
))( variable5
/*it*/) /*ArrayIterator::is_ok*/;
1121 variable8
= variable7
;
1122 if (UNTAG_Bool(variable8
)) { /* and */
1123 variable8
= variable6
/*b*/;
1125 variable7
= variable8
;
1126 if (!UNTAG_Bool(variable7
)) break; /* while*/
1127 variable7
= ((array___ArrayIterator___item_t
)CALL( variable5
/*it*/,COLOR_abstract_collection___Iterator___item
))( variable5
/*it*/) /*ArrayIterator::item*/;
1128 variable7
= ((static_type___MMAncestor___inheriter_t
)CALL(variable7
,COLOR_static_type___MMAncestor___inheriter
))(variable7
) /*MMAncestor::inheriter*/;
1129 variable8
= ((static_type___MMAncestor___inheriter_t
)CALL( self
,COLOR_static_type___MMAncestor___inheriter
))( self
) /*MMAncestor::inheriter*/;
1130 variable7
= TAG_Bool((variable7
== variable8
) || ((variable7
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable7
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable7
,variable8
)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable7
,COLOR_kernel___Object_____eqeq
))(variable7
, variable8
) /*MMType::==*/)))));
1131 variable8
= variable7
;
1132 if (UNTAG_Bool(variable8
)) { /* and */
1133 variable8
= ((array___ArrayIterator___item_t
)CALL( variable5
/*it*/,COLOR_abstract_collection___Iterator___item
))( variable5
/*it*/) /*ArrayIterator::item*/;
1134 variable8
= ((static_type___MMAncestor___stype_t
)CALL(variable8
,COLOR_static_type___MMAncestor___stype
))(variable8
) /*MMAncestor::stype*/;
1135 variable8
= TAG_Bool((variable8
== variable4
/*a*/) || ((variable8
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable8
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable8
, variable4
/*a*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable8
,COLOR_kernel___Object_____eqeq
))(variable8
, variable4
/*a*/) /*MMType::==*/)))));
1137 variable7
= variable8
;
1138 variable6
= TAG_Bool(!UNTAG_Bool(variable7
)) /*b=*/;
1139 ((array___ArrayIterator___next_t
)CALL( variable5
/*it*/,COLOR_abstract_collection___Iterator___next
))( variable5
/*it*/) /*ArrayIterator::next*/;
1140 continue_50
: while(0);
1143 if (UNTAG_Bool( variable6
/*b*/)) { /*if*/
1144 variable7
= ((static_type___MMAncestor___inheriter_t
)CALL( self
,COLOR_static_type___MMAncestor___inheriter
))( self
) /*MMAncestor::inheriter*/;
1145 variable8
= NEW_inheritance___MMSpecAncestor___init(variable7
, variable4
/*a*/); /*new MMSpecAncestor*/
1146 variable7
= variable8
;
1147 ((array___AbstractArray___add_t
)CALL( variable0
/*tab*/,COLOR_abstract_collection___SimpleCollection___add
))( variable0
/*tab*/, variable7
) /*Array::add*/;
1150 continue_49
: while(0);
1151 ((abstract_collection___Iterator___next_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___next
))(variable1
) /*MapIterator::next*/;
1154 tracehead
= trace
.prev
;
1157 void inheritance___MMImplicitLocalClass___init(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
1158 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMImplicitLocalClass___init
, 468};
1164 trace
.prev
= tracehead
; tracehead
= &trace
;
1167 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_MMImplicitLocalClass
].i
]) return;
1168 variable3
= ((abstractmetamodel___MMGlobalClass___intro_t
)CALL( variable1
/*g*/,COLOR_abstractmetamodel___MMGlobalClass___intro
))( variable1
/*g*/) /*MMGlobalClass::intro*/;
1169 variable2
= variable3
;
1170 variable3
= ((abstractmetamodel___MMLocalClass___name_t
)CALL( variable2
/*cla*/,COLOR_abstractmetamodel___MMLocalClass___name
))( variable2
/*cla*/) /*MMLocalClass::name*/;
1171 variable4
= ((abstractmetamodel___MMLocalClass___arity_t
)CALL( variable2
/*cla*/,COLOR_abstractmetamodel___MMLocalClass___arity
))( variable2
/*cla*/) /*MMLocalClass::arity*/;
1172 ((abstractmetamodel___MMLocalClass___init_t
)CALL( self
,COLOR_abstractmetamodel___MMLocalClass___init
))( self
, variable3
, variable4
, init_table
/*YYY*/) /*MMLocalClass::init*/;
1173 ((abstractmetamodel___MMModule___add_local_class_t
)CALL( variable0
/*mod*/,COLOR_abstractmetamodel___MMModule___add_local_class
))( variable0
/*mod*/, self
) /*MMModule::add_local_class*/;
1174 ((abstractmetamodel___MMLocalClass___set_global_t
)CALL( self
,COLOR_abstractmetamodel___MMLocalClass___set_global
))( self
, variable1
/*g*/) /*MMImplicitLocalClass::set_global*/;
1175 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_MMImplicitLocalClass
].i
] = 1;
1176 tracehead
= trace
.prev
;
1179 val_t
inheritance___MMRefineAncestor___local_class(val_t self
) {
1180 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMRefineAncestor___local_class
, 479};
1181 trace
.prev
= tracehead
; tracehead
= &trace
;
1182 tracehead
= trace
.prev
;
1183 return ATTR_inheritance___MMRefineAncestor____local_class( self
) /*MMRefineAncestor::_local_class*/;
1185 void inheritance___MMRefineAncestor___init(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
1186 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMRefineAncestor___init
, 481};
1190 trace
.prev
= tracehead
; tracehead
= &trace
;
1193 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_MMRefineAncestor
].i
]) return;
1194 ATTR_inheritance___MMRefineAncestor____local_class( self
) /*MMRefineAncestor::_local_class*/ = variable1
/*a*/;
1195 variable2
= ((static_type___MMLocalClass___get_type_t
)CALL( variable0
/*b*/,COLOR_static_type___MMLocalClass___get_type
))( variable0
/*b*/) /*MMLocalClass::get_type*/;
1196 ((static_type___MMAncestor___inheriter__eq_t
)CALL( self
,COLOR_static_type___MMAncestor___inheriter__eq
))( self
, variable2
) /*MMRefineAncestor::inheriter=*/;
1197 variable2
= ATTR_inheritance___MMRefineAncestor____local_class( self
) /*MMRefineAncestor::_local_class*/;
1198 variable2
= ((static_type___MMLocalClass___get_type_t
)CALL(variable2
,COLOR_static_type___MMLocalClass___get_type
))(variable2
) /*MMLocalClass::get_type*/;
1199 ((static_type___MMAncestor___stype__eq_t
)CALL( self
,COLOR_static_type___MMAncestor___stype__eq
))( self
, variable2
) /*MMRefineAncestor::stype=*/;
1200 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_MMRefineAncestor
].i
] = 1;
1201 tracehead
= trace
.prev
;
1204 val_t
inheritance___MMSpecAncestor___local_class(val_t self
) {
1205 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMSpecAncestor___local_class
, 492};
1207 trace
.prev
= tracehead
; tracehead
= &trace
;
1208 variable0
= ((static_type___MMAncestor___stype_t
)CALL( self
,COLOR_static_type___MMAncestor___stype
))( self
) /*MMSpecAncestor::stype*/;
1209 variable0
= ((static_type___MMType___local_class_t
)CALL(variable0
,COLOR_static_type___MMType___local_class
))(variable0
) /*MMType::local_class*/;
1210 goto return_label53
;
1211 return_label53
: while(false);
1212 tracehead
= trace
.prev
;
1215 void inheritance___MMSpecAncestor___init(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
1216 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMSpecAncestor___init
, 494};
1219 trace
.prev
= tracehead
; tracehead
= &trace
;
1222 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_MMSpecAncestor
].i
]) return;
1223 ATTR_static_type___MMAncestor____inheriter( self
) /*MMSpecAncestor::_inheriter*/ = variable0
/*inheriter*/;
1224 ATTR_static_type___MMAncestor____stype( self
) /*MMSpecAncestor::_stype*/ = variable1
/*stype*/;
1225 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_MMSpecAncestor
].i
] = 1;
1226 tracehead
= trace
.prev
;
1229 val_t
inheritance___MMDefaultAncestor___local_class(val_t self
) {
1230 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMDefaultAncestor___local_class
, 503};
1232 trace
.prev
= tracehead
; tracehead
= &trace
;
1233 variable0
= ((static_type___MMAncestor___stype_t
)CALL( self
,COLOR_static_type___MMAncestor___stype
))( self
) /*MMDefaultAncestor::stype*/;
1234 variable0
= ((static_type___MMType___local_class_t
)CALL(variable0
,COLOR_static_type___MMType___local_class
))(variable0
) /*MMType::local_class*/;
1235 goto return_label55
;
1236 return_label55
: while(false);
1237 tracehead
= trace
.prev
;
1240 void inheritance___MMDefaultAncestor___init(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
1241 struct trace_t trace
= {NULL
, LOCATE_inheritance___MMDefaultAncestor___init
, 505};
1245 trace
.prev
= tracehead
; tracehead
= &trace
;
1248 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_MMDefaultAncestor
].i
]) return;
1249 variable2
= TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0
/*b*/ == NIT_NULL
/*null*/) || (( variable0
/*b*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable0
/*b*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable0
/*b*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable0
/*b*/,COLOR_kernel___Object_____eqeq
))( variable0
/*b*/, NIT_NULL
/*null*/) /*MMLocalClass::==*/)))))));
1250 if (!UNTAG_Bool(variable2
)) { fprintf(stderr
, "Assert%s failed (%s: %d)\n", "", LOCATE_inheritance___MMDefaultAncestor___init
, 507); nit_exit(1);}
1251 variable2
= ((abstractmetamodel___MMLocalClass___module_t
)CALL( variable0
/*b*/,COLOR_abstractmetamodel___MMLocalClass___module
))( variable0
/*b*/) /*MMLocalClass::module*/;
1252 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*/) /*MMModule::==*/)))))));
1253 if (!UNTAG_Bool(variable2
)) { fprintf(stderr
, "Assert%s failed (%s: %d)\n", "", LOCATE_inheritance___MMDefaultAncestor___init
, 508); nit_exit(1);}
1254 variable2
= TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable1
/*anc*/ == NIT_NULL
/*null*/) || (( variable1
/*anc*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable1
/*anc*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable1
/*anc*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable1
/*anc*/,COLOR_kernel___Object_____eqeq
))( variable1
/*anc*/, NIT_NULL
/*null*/) /*MMType::==*/)))))));
1255 if (!UNTAG_Bool(variable2
)) { fprintf(stderr
, "Assert%s failed (%s: %d)\n", "", LOCATE_inheritance___MMDefaultAncestor___init
, 509); nit_exit(1);}
1256 variable2
= ((static_type___MMLocalClass___get_type_t
)CALL( variable0
/*b*/,COLOR_static_type___MMLocalClass___get_type
))( variable0
/*b*/) /*MMLocalClass::get_type*/;
1257 ((static_type___MMAncestor___inheriter__eq_t
)CALL( self
,COLOR_static_type___MMAncestor___inheriter__eq
))( self
, variable2
) /*MMDefaultAncestor::inheriter=*/;
1258 ((static_type___MMAncestor___stype__eq_t
)CALL( self
,COLOR_static_type___MMAncestor___stype__eq
))( self
, variable1
/*anc*/) /*MMDefaultAncestor::stype=*/;
1259 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_MMDefaultAncestor
].i
] = 1;
1260 tracehead
= trace
.prev
;