1 /* This C file is generated by NIT to compile module abstractmetamodel. */
2 #include "abstractmetamodel._sep.h"
3 void abstractmetamodel___MMContext___init(val_t self
, int* init_table
) {
4 struct trace_t trace
= {NULL
, NULL
, 26, LOCATE_abstractmetamodel___MMContext___init
};
6 struct WBT_
**closurevariable
= NULL
;
7 trace
.prev
= tracehead
; tracehead
= &trace
;
8 trace
.file
= LOCATE_abstractmetamodel
;
9 /* Register variable[0]: Local variable */
11 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMContext
].i
]) return;
12 /* Register variable[1]: Method return value and escape marker */
13 return_label0
: while(false);
14 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMContext
].i
] = 1;
15 tracehead
= trace
.prev
;
18 val_t
abstractmetamodel___MMContext___module_hierarchy(val_t self
) {
19 struct trace_t trace
= {NULL
, NULL
, 28, LOCATE_abstractmetamodel___MMContext___module_hierarchy
};
20 val_t
*variable
= NULL
;
21 struct WBT_
**closurevariable
= NULL
;
22 trace
.prev
= tracehead
; tracehead
= &trace
;
23 trace
.file
= LOCATE_abstractmetamodel
;
24 tracehead
= trace
.prev
;
25 return ATTR_abstractmetamodel___MMContext____module_hierarchy( self
) /*MMContext::_module_hierarchy*/;
27 val_t
abstractmetamodel___MMContext___class_hierarchy(val_t self
) {
28 struct trace_t trace
= {NULL
, NULL
, 31, LOCATE_abstractmetamodel___MMContext___class_hierarchy
};
29 val_t
*variable
= NULL
;
30 struct WBT_
**closurevariable
= NULL
;
31 trace
.prev
= tracehead
; tracehead
= &trace
;
32 trace
.file
= LOCATE_abstractmetamodel
;
33 tracehead
= trace
.prev
;
34 return ATTR_abstractmetamodel___MMContext____class_hierarchy( self
) /*MMContext::_class_hierarchy*/;
36 val_t
abstractmetamodel___MMContext___modules(val_t self
) {
37 struct trace_t trace
= {NULL
, NULL
, 38, LOCATE_abstractmetamodel___MMContext___modules
};
38 val_t
*variable
= NULL
;
39 struct WBT_
**closurevariable
= NULL
;
40 trace
.prev
= tracehead
; tracehead
= &trace
;
41 trace
.file
= LOCATE_abstractmetamodel
;
42 tracehead
= trace
.prev
;
43 return ATTR_abstractmetamodel___MMContext____modules( self
) /*MMContext::_modules*/;
45 void abstractmetamodel___MMContext___add_module(val_t self
, val_t param0
, val_t param1
) {
46 struct trace_t trace
= {NULL
, NULL
, 41, LOCATE_abstractmetamodel___MMContext___add_module
};
48 struct WBT_
**closurevariable
= NULL
;
49 trace
.prev
= tracehead
; tracehead
= &trace
;
50 trace
.file
= LOCATE_abstractmetamodel
;
51 /* Register variable[0]: Local variable */
53 /* Register variable[1]: Local variable */
55 /* Register variable[2]: Local variable */
57 /* Register variable[3]: Method return value and escape marker */
58 /* Register variable[4]: Result */
59 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[2] /*supers*/ == NIT_NULL
/*null*/) || (( variable
[2] /*supers*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[2] /*supers*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[2] /*supers*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[2] /*supers*/)( variable
[2] /*supers*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
60 if (!UNTAG_Bool(variable
[4])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMContext___add_module
, LOCATE_abstractmetamodel
, 44); nit_exit(1);}
61 /* Register variable[4]: Result */
62 variable
[4] = ATTR_abstractmetamodel___MMContext____module_hierarchy(variable
[0]) /*MMContext::_module_hierarchy*/;
63 /* Register variable[5]: Result */
64 variable
[5] = ATTR_abstractmetamodel___MMContext____module_hierarchy(variable
[0]) /*MMContext::_module_hierarchy*/;
65 /* Register variable[5]: Result */
66 variable
[5] = CALL_partial_order___PartialOrder___select_smallests(variable
[5])(variable
[5], variable
[2] /*supers*/) /*PartialOrder::select_smallests*/;
67 CALL_partial_order___PartialOrder___add(variable
[4])(variable
[4], variable
[1] /*module*/, variable
[5]) /*PartialOrder::add*/;
68 /* Register variable[4]: Result */
69 variable
[4] = CALL_abstractmetamodel___MMModule___name( variable
[1] /*module*/)( variable
[1] /*module*/) /*MMModule::name*/;
70 /* Register variable[4]: Result */
71 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[4] == NIT_NULL
/*null*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], NIT_NULL
/*null*/) /*Object::==*/)))))));
72 if (!UNTAG_Bool(variable
[4])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMContext___add_module
, LOCATE_abstractmetamodel
, 46); nit_exit(1);}
73 /* Register variable[4]: Result */
74 variable
[4] = ATTR_abstractmetamodel___MMContext____modules(variable
[0]) /*MMContext::_modules*/;
75 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[1] /*module*/) /*AbstractArray::add*/;
76 /* Register variable[4]: Result */
77 variable
[4] = ATTR_abstractmetamodel___MMContext____module_hierarchy(variable
[0]) /*MMContext::_module_hierarchy*/;
78 /* Register variable[4]: Result */
79 variable
[4] = CALL_partial_order___PartialOrder_____bra(variable
[4])(variable
[4], variable
[1] /*module*/) /*PartialOrder::[]*/;
80 ATTR_abstractmetamodel___MMModule____mhe( variable
[1] /*module*/) /*MMModule::_mhe*/ = variable
[4];
81 return_label1
: while(false);
82 tracehead
= trace
.prev
;
85 void abstractmetamodel___MMContext___add_global_class(val_t self
, val_t param0
) {
86 struct trace_t trace
= {NULL
, NULL
, 51, LOCATE_abstractmetamodel___MMContext___add_global_class
};
88 struct WBT_
**closurevariable
= NULL
;
89 trace
.prev
= tracehead
; tracehead
= &trace
;
90 trace
.file
= LOCATE_abstractmetamodel
;
91 /* Register variable[0]: Local variable */
93 /* Register variable[1]: Local variable */
95 /* Register variable[2]: Method return value and escape marker */
96 /* Register variable[3]: Result */
97 variable
[3] = ATTR_abstractmetamodel___MMContext____global_classes(variable
[0]) /*MMContext::_global_classes*/;
98 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[1] /*c*/) /*AbstractArray::add*/;
99 return_label2
: while(false);
100 tracehead
= trace
.prev
;
103 void abstractmetamodel___MMContext___add_local_class(val_t self
, val_t param0
, val_t param1
) {
104 struct trace_t trace
= {NULL
, NULL
, 54, LOCATE_abstractmetamodel___MMContext___add_local_class
};
106 struct WBT_
**closurevariable
= NULL
;
107 trace
.prev
= tracehead
; tracehead
= &trace
;
108 trace
.file
= LOCATE_abstractmetamodel
;
109 /* Register variable[0]: Local variable */
111 /* Register variable[1]: Local variable */
112 variable
[1] = param0
;
113 /* Register variable[2]: Local variable */
114 variable
[2] = param1
;
115 /* Register variable[3]: Method return value and escape marker */
116 /* Register variable[4]: Result */
117 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[2] /*sup*/ == NIT_NULL
/*null*/) || (( variable
[2] /*sup*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[2] /*sup*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[2] /*sup*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[2] /*sup*/)( variable
[2] /*sup*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
118 if (!UNTAG_Bool(variable
[4])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMContext___add_local_class
, LOCATE_abstractmetamodel
, 57); nit_exit(1);}
119 /* Register variable[4]: Local variable */
120 /* Register variable[5]: Result */
121 variable
[5] = NEW_Array_array___Array___init() /*new Array[MMLocalClass]*/;
122 variable
[4] = variable
[5];
123 /* Register variable[5]: Local variable */
124 /* Register variable[6]: Result */
125 variable
[6] = NEW_Array_array___Array___init() /*new Array[String]*/;
126 variable
[5] = variable
[6];
127 /* Register variable[6]: For iterator */
128 variable
[6] = CALL_abstract_collection___Collection___iterator( variable
[2] /*sup*/)( variable
[2] /*sup*/) /*AbstractArrayRead::iterator*/;
129 while (true) { /*for*/
130 /* Register variable[7]: For 'is_ok' result */
131 variable
[7] = CALL_abstract_collection___Iterator___is_ok(variable
[6])(variable
[6]) /*ArrayIterator::is_ok*/;
132 if (!UNTAG_Bool(variable
[7])) break; /*for*/
133 variable
[7] = CALL_abstract_collection___Iterator___item(variable
[6])(variable
[6]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
134 /* Register variable[8]: Local variable */
135 variable
[8] = variable
[7];
136 /* Register variable[9]: Result */
137 variable
[9] = TAG_Bool(( variable
[8] /*s*/==NIT_NULL
) || VAL_ISA( variable
[8] /*s*/, COLOR_MMConcreteClass
, ID_MMConcreteClass
)) /*cast MMConcreteClass*/;
138 if (UNTAG_Bool(variable
[9])) { /*if*/
139 CALL_abstract_collection___SimpleCollection___add( variable
[4] /*csup*/)( variable
[4] /*csup*/, variable
[8] /*s*/) /*AbstractArray::add*/;
141 /* Register variable[9]: Result */
142 variable
[9] = CALL_abstractmetamodel___MMLocalClass___che( variable
[8] /*s*/)( variable
[8] /*s*/) /*MMLocalClass::che*/;
143 /* Register variable[9]: Result */
144 variable
[9] = CALL_partial_order___PartialOrderElement___direct_greaters(variable
[9])(variable
[9]) /*PartialOrderElement::direct_greaters*/;
145 /* Register variable[9]: For iterator */
146 variable
[9] = CALL_abstract_collection___Collection___iterator(variable
[9])(variable
[9]) /*AbstractArrayRead::iterator*/;
147 while (true) { /*for*/
148 /* Register variable[10]: For 'is_ok' result */
149 variable
[10] = CALL_abstract_collection___Iterator___is_ok(variable
[9])(variable
[9]) /*ArrayIterator::is_ok*/;
150 if (!UNTAG_Bool(variable
[10])) break; /*for*/
151 variable
[10] = CALL_abstract_collection___Iterator___item(variable
[9])(variable
[9]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
152 /* Register variable[11]: Local variable */
153 variable
[11] = variable
[10];
154 /* Register variable[12]: Result */
155 variable
[12] = CALL_abstract_collection___Collection___has( variable
[4] /*csup*/)( variable
[4] /*csup*/, variable
[11] /*ss*/) /*AbstractArrayRead::has*/;
156 if (UNTAG_Bool(variable
[12])) { /*if*/
159 CALL_abstract_collection___SimpleCollection___add( variable
[4] /*csup*/)( variable
[4] /*csup*/, variable
[11] /*ss*/) /*AbstractArray::add*/;
160 continue_5
: while(0);
161 CALL_abstract_collection___Iterator___next(variable
[9])(variable
[9]) /*ArrayIterator::next*/;
165 continue_4
: while(0);
166 CALL_abstract_collection___Iterator___next(variable
[6])(variable
[6]) /*ArrayIterator::next*/;
169 /* Register variable[6]: Local variable */
170 /* Register variable[7]: Result */
171 variable
[7] = ATTR_abstractmetamodel___MMContext____class_hierarchy(variable
[0]) /*MMContext::_class_hierarchy*/;
172 /* Register variable[7]: Result */
173 variable
[7] = CALL_partial_order___PartialOrder___add(variable
[7])(variable
[7], variable
[1] /*c*/, variable
[4] /*csup*/) /*PartialOrder::add*/;
174 variable
[6] = variable
[7];
175 ATTR_abstractmetamodel___MMLocalClass____che( variable
[1] /*c*/) /*MMLocalClass::_che*/ = variable
[6] /*che*/;
176 return_label3
: while(false);
177 tracehead
= trace
.prev
;
180 val_t
abstractmetamodel___MMDirectory___name(val_t self
) {
181 struct trace_t trace
= {NULL
, NULL
, 77, LOCATE_abstractmetamodel___MMDirectory___name
};
182 val_t
*variable
= NULL
;
183 struct WBT_
**closurevariable
= NULL
;
184 trace
.prev
= tracehead
; tracehead
= &trace
;
185 trace
.file
= LOCATE_abstractmetamodel
;
186 tracehead
= trace
.prev
;
187 return ATTR_abstractmetamodel___MMDirectory____name( self
) /*MMDirectory::_name*/;
189 val_t
abstractmetamodel___MMDirectory___path(val_t self
) {
190 struct trace_t trace
= {NULL
, NULL
, 80, LOCATE_abstractmetamodel___MMDirectory___path
};
191 val_t
*variable
= NULL
;
192 struct WBT_
**closurevariable
= NULL
;
193 trace
.prev
= tracehead
; tracehead
= &trace
;
194 trace
.file
= LOCATE_abstractmetamodel
;
195 tracehead
= trace
.prev
;
196 return ATTR_abstractmetamodel___MMDirectory____path( self
) /*MMDirectory::_path*/;
198 val_t
abstractmetamodel___MMDirectory___parent(val_t self
) {
199 struct trace_t trace
= {NULL
, NULL
, 83, LOCATE_abstractmetamodel___MMDirectory___parent
};
200 val_t
*variable
= NULL
;
201 struct WBT_
**closurevariable
= NULL
;
202 trace
.prev
= tracehead
; tracehead
= &trace
;
203 trace
.file
= LOCATE_abstractmetamodel
;
204 tracehead
= trace
.prev
;
205 return ATTR_abstractmetamodel___MMDirectory____parent( self
) /*MMDirectory::_parent*/;
207 val_t
abstractmetamodel___MMDirectory___owner(val_t self
) {
208 struct trace_t trace
= {NULL
, NULL
, 87, LOCATE_abstractmetamodel___MMDirectory___owner
};
209 val_t
*variable
= NULL
;
210 struct WBT_
**closurevariable
= NULL
;
211 trace
.prev
= tracehead
; tracehead
= &trace
;
212 trace
.file
= LOCATE_abstractmetamodel
;
213 tracehead
= trace
.prev
;
214 return ATTR_abstractmetamodel___MMDirectory____owner( self
) /*MMDirectory::_owner*/;
216 void abstractmetamodel___MMDirectory___owner__eq(val_t self
, val_t param0
) {
217 struct trace_t trace
= {NULL
, NULL
, 87, LOCATE_abstractmetamodel___MMDirectory___owner__eq
};
218 val_t
*variable
= NULL
;
219 struct WBT_
**closurevariable
= NULL
;
220 trace
.prev
= tracehead
; tracehead
= &trace
;
221 trace
.file
= LOCATE_abstractmetamodel
;
222 ATTR_abstractmetamodel___MMDirectory____owner( self
) /*MMDirectory::_owner*/ = param0
;
223 tracehead
= trace
.prev
;
226 val_t
abstractmetamodel___MMDirectory___modules(val_t self
) {
227 struct trace_t trace
= {NULL
, NULL
, 90, LOCATE_abstractmetamodel___MMDirectory___modules
};
228 val_t
*variable
= NULL
;
229 struct WBT_
**closurevariable
= NULL
;
230 trace
.prev
= tracehead
; tracehead
= &trace
;
231 trace
.file
= LOCATE_abstractmetamodel
;
232 tracehead
= trace
.prev
;
233 return ATTR_abstractmetamodel___MMDirectory____modules( self
) /*MMDirectory::_modules*/;
235 void abstractmetamodel___MMDirectory___add_module(val_t self
, val_t param0
) {
236 struct trace_t trace
= {NULL
, NULL
, 93, LOCATE_abstractmetamodel___MMDirectory___add_module
};
238 struct WBT_
**closurevariable
= NULL
;
239 trace
.prev
= tracehead
; tracehead
= &trace
;
240 trace
.file
= LOCATE_abstractmetamodel
;
241 /* Register variable[0]: Local variable */
243 /* Register variable[1]: Local variable */
244 variable
[1] = param0
;
245 /* Register variable[2]: Method return value and escape marker */
246 /* Register variable[3]: Result */
247 variable
[3] = ATTR_abstractmetamodel___MMDirectory____modules(variable
[0]) /*MMDirectory::_modules*/;
248 /* Register variable[4]: Result */
249 variable
[4] = CALL_abstractmetamodel___MMModule___name( variable
[1] /*module*/)( variable
[1] /*module*/) /*MMModule::name*/;
250 /* Register variable[3]: Result */
251 variable
[3] = CALL_abstract_collection___MapRead___has_key(variable
[3])(variable
[3], variable
[4]) /*MapRead::has_key*/;
252 if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[3])))) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMDirectory___add_module
, LOCATE_abstractmetamodel
, 96); nit_exit(1);}
253 /* Register variable[3]: Result */
254 variable
[3] = ATTR_abstractmetamodel___MMDirectory____modules(variable
[0]) /*MMDirectory::_modules*/;
255 /* Register variable[4]: Result */
256 variable
[4] = CALL_abstractmetamodel___MMModule___name( variable
[1] /*module*/)( variable
[1] /*module*/) /*MMModule::name*/;
257 CALL_abstract_collection___Map_____braeq(variable
[3])(variable
[3], variable
[4], variable
[1] /*module*/) /*Map::[]=*/;
258 return_label6
: while(false);
259 tracehead
= trace
.prev
;
262 val_t
abstractmetamodel___MMDirectory___dhe(val_t self
) {
263 struct trace_t trace
= {NULL
, NULL
, 100, LOCATE_abstractmetamodel___MMDirectory___dhe
};
264 val_t
*variable
= NULL
;
265 struct WBT_
**closurevariable
= NULL
;
266 trace
.prev
= tracehead
; tracehead
= &trace
;
267 trace
.file
= LOCATE_abstractmetamodel
;
268 tracehead
= trace
.prev
;
269 return ATTR_abstractmetamodel___MMDirectory____dhe( self
) /*MMDirectory::_dhe*/;
271 void abstractmetamodel___MMDirectory___init(val_t self
, val_t param0
, val_t param1
, val_t param2
, int* init_table
) {
272 struct trace_t trace
= {NULL
, NULL
, 103, LOCATE_abstractmetamodel___MMDirectory___init
};
274 struct WBT_
**closurevariable
= NULL
;
275 trace
.prev
= tracehead
; tracehead
= &trace
;
276 trace
.file
= LOCATE_abstractmetamodel
;
277 /* Register variable[0]: Local variable */
279 /* Register variable[1]: Local variable */
280 variable
[1] = param0
;
281 /* Register variable[2]: Local variable */
282 variable
[2] = param1
;
283 /* Register variable[3]: Local variable */
284 variable
[3] = param2
;
285 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMDirectory
].i
]) return;
286 /* Register variable[4]: Method return value and escape marker */
287 ATTR_abstractmetamodel___MMDirectory____name(variable
[0]) /*MMDirectory::_name*/ = variable
[1] /*name*/;
288 ATTR_abstractmetamodel___MMDirectory____path(variable
[0]) /*MMDirectory::_path*/ = variable
[2] /*path*/;
289 ATTR_abstractmetamodel___MMDirectory____parent(variable
[0]) /*MMDirectory::_parent*/ = variable
[3] /*parent*/;
290 return_label7
: while(false);
291 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMDirectory
].i
] = 1;
292 tracehead
= trace
.prev
;
295 val_t
abstractmetamodel___MMDirectory___full_name_for(val_t self
, val_t param0
) {
296 struct trace_t trace
= {NULL
, NULL
, 109, LOCATE_abstractmetamodel___MMDirectory___full_name_for
};
297 static val_t once_value_9
= NIT_NULL
; /* Once value for string variable[4]*/
298 static val_t once_value_10
= NIT_NULL
; /* Once value for string variable[4]*/
299 static val_t once_value_11
= NIT_NULL
; /* Once value for string variable[4]*/
301 struct WBT_
**closurevariable
= NULL
;
302 trace
.prev
= tracehead
; tracehead
= &trace
;
303 trace
.file
= LOCATE_abstractmetamodel
;
304 /* Register variable[0]: Local variable */
306 /* Register variable[1]: Local variable */
307 variable
[1] = param0
;
308 /* Register variable[2]: Method return value and escape marker */
309 variable
[3] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
310 /* Register variable[4]: Once String constant */
311 if (once_value_9
!= NIT_NULL
) variable
[4] = once_value_9
;
313 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
314 once_value_9
= variable
[4];
316 /* Register variable[4]: Result */
317 /* Ensure var variable[4]: super-string element*/
318 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[4]) /*AbstractArray::add*/;
319 /* Register variable[4]: Result */
320 variable
[4] = CALL_abstractmetamodel___MMDirectory___name(variable
[0])(variable
[0]) /*MMDirectory::name*/;
321 /* Ensure var variable[4]: super-string element*/
322 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], CALL_string___Object___to_s(variable
[4])(variable
[4]) /*Object::to_s*/) /*AbstractArray::add*/;
323 /* Register variable[4]: Once String constant */
324 if (once_value_10
!= NIT_NULL
) variable
[4] = once_value_10
;
326 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)) /*new String*/;
327 once_value_10
= variable
[4];
329 /* Register variable[4]: Result */
330 /* Ensure var variable[4]: super-string element*/
331 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[4]) /*AbstractArray::add*/;
332 variable
[4] = variable
[1] /*module_name*/ /* Ensure var: super-string element*/;
333 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], CALL_string___Object___to_s(variable
[4])(variable
[4]) /*Object::to_s*/) /*AbstractArray::add*/;
334 /* Register variable[4]: Once String constant */
335 if (once_value_11
!= NIT_NULL
) variable
[4] = once_value_11
;
337 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
338 once_value_11
= variable
[4];
340 /* Register variable[4]: Result */
341 /* Ensure var variable[4]: super-string element*/
342 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[4]) /*AbstractArray::add*/;
343 /* Register variable[3]: Result */
344 variable
[3] = CALL_string___Object___to_s(variable
[3])(variable
[3]) /*Object::to_s*/;
345 /* Register variable[3]: Result */
346 variable
[3] = CALL_symbol___String___to_symbol(variable
[3])(variable
[3]) /*String::to_symbol*/;
347 variable
[2] = variable
[3];
349 return_label8
: while(false);
350 tracehead
= trace
.prev
;
353 val_t
abstractmetamodel___MMModule___to_s(val_t self
) {
354 struct trace_t trace
= {NULL
, NULL
, 246, LOCATE_abstractmetamodel___MMModule___to_s
};
356 struct WBT_
**closurevariable
= NULL
;
357 trace
.prev
= tracehead
; tracehead
= &trace
;
358 trace
.file
= LOCATE_abstractmetamodel
;
359 /* Register variable[0]: Local variable */
361 /* Register variable[1]: Method return value and escape marker */
362 /* Register variable[2]: Result */
363 variable
[2] = CALL_abstractmetamodel___MMModule___name(variable
[0])(variable
[0]) /*MMModule::name*/;
364 /* Register variable[2]: Result */
365 variable
[2] = CALL_string___Object___to_s(variable
[2])(variable
[2]) /*Symbol::to_s*/;
366 variable
[1] = variable
[2];
368 return_label12
: while(false);
369 tracehead
= trace
.prev
;
372 val_t
abstractmetamodel___MMModule___context(val_t self
) {
373 struct trace_t trace
= {NULL
, NULL
, 117, LOCATE_abstractmetamodel___MMModule___context
};
374 val_t
*variable
= NULL
;
375 struct WBT_
**closurevariable
= NULL
;
376 trace
.prev
= tracehead
; tracehead
= &trace
;
377 trace
.file
= LOCATE_abstractmetamodel
;
378 tracehead
= trace
.prev
;
379 return ATTR_abstractmetamodel___MMModule____context( self
) /*MMModule::_context*/;
381 val_t
abstractmetamodel___MMModule___name(val_t self
) {
382 struct trace_t trace
= {NULL
, NULL
, 120, LOCATE_abstractmetamodel___MMModule___name
};
383 val_t
*variable
= NULL
;
384 struct WBT_
**closurevariable
= NULL
;
385 trace
.prev
= tracehead
; tracehead
= &trace
;
386 trace
.file
= LOCATE_abstractmetamodel
;
387 tracehead
= trace
.prev
;
388 return ATTR_abstractmetamodel___MMModule____name( self
) /*MMModule::_name*/;
390 val_t
abstractmetamodel___MMModule___full_name(val_t self
) {
391 struct trace_t trace
= {NULL
, NULL
, 123, LOCATE_abstractmetamodel___MMModule___full_name
};
392 val_t
*variable
= NULL
;
393 struct WBT_
**closurevariable
= NULL
;
394 trace
.prev
= tracehead
; tracehead
= &trace
;
395 trace
.file
= LOCATE_abstractmetamodel
;
396 tracehead
= trace
.prev
;
397 return ATTR_abstractmetamodel___MMModule____full_name( self
) /*MMModule::_full_name*/;
399 val_t
abstractmetamodel___MMModule___directory(val_t self
) {
400 struct trace_t trace
= {NULL
, NULL
, 126, LOCATE_abstractmetamodel___MMModule___directory
};
401 val_t
*variable
= NULL
;
402 struct WBT_
**closurevariable
= NULL
;
403 trace
.prev
= tracehead
; tracehead
= &trace
;
404 trace
.file
= LOCATE_abstractmetamodel
;
405 tracehead
= trace
.prev
;
406 return ATTR_abstractmetamodel___MMModule____directory( self
) /*MMModule::_directory*/;
408 val_t
abstractmetamodel___MMModule___filename(val_t self
) {
409 struct trace_t trace
= {NULL
, NULL
, 129, LOCATE_abstractmetamodel___MMModule___filename
};
410 val_t
*variable
= NULL
;
411 struct WBT_
**closurevariable
= NULL
;
412 trace
.prev
= tracehead
; tracehead
= &trace
;
413 trace
.file
= LOCATE_abstractmetamodel
;
414 tracehead
= trace
.prev
;
415 return ATTR_abstractmetamodel___MMModule____filename( self
) /*MMModule::_filename*/;
417 val_t
abstractmetamodel___MMModule___mhe(val_t self
) {
418 struct trace_t trace
= {NULL
, NULL
, 132, LOCATE_abstractmetamodel___MMModule___mhe
};
419 val_t
*variable
= NULL
;
420 struct WBT_
**closurevariable
= NULL
;
421 trace
.prev
= tracehead
; tracehead
= &trace
;
422 trace
.file
= LOCATE_abstractmetamodel
;
423 tracehead
= trace
.prev
;
424 return ATTR_abstractmetamodel___MMModule____mhe( self
) /*MMModule::_mhe*/;
426 val_t
abstractmetamodel___MMModule___global_classes(val_t self
) {
427 struct trace_t trace
= {NULL
, NULL
, 135, LOCATE_abstractmetamodel___MMModule___global_classes
};
428 val_t
*variable
= NULL
;
429 struct WBT_
**closurevariable
= NULL
;
430 trace
.prev
= tracehead
; tracehead
= &trace
;
431 trace
.file
= LOCATE_abstractmetamodel
;
432 tracehead
= trace
.prev
;
433 return ATTR_abstractmetamodel___MMModule____global_classes( self
) /*MMModule::_global_classes*/;
435 val_t
abstractmetamodel___MMModule___local_classes(val_t self
) {
436 struct trace_t trace
= {NULL
, NULL
, 138, LOCATE_abstractmetamodel___MMModule___local_classes
};
437 val_t
*variable
= NULL
;
438 struct WBT_
**closurevariable
= NULL
;
439 trace
.prev
= tracehead
; tracehead
= &trace
;
440 trace
.file
= LOCATE_abstractmetamodel
;
441 tracehead
= trace
.prev
;
442 return ATTR_abstractmetamodel___MMModule____local_classes( self
) /*MMModule::_local_classes*/;
444 val_t
abstractmetamodel___MMModule___class_specialization_hierarchy(val_t self
) {
445 struct trace_t trace
= {NULL
, NULL
, 141, LOCATE_abstractmetamodel___MMModule___class_specialization_hierarchy
};
446 val_t
*variable
= NULL
;
447 struct WBT_
**closurevariable
= NULL
;
448 trace
.prev
= tracehead
; tracehead
= &trace
;
449 trace
.file
= LOCATE_abstractmetamodel
;
450 tracehead
= trace
.prev
;
451 return ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy( self
) /*MMModule::_class_specialization_hierarchy*/;
453 val_t
abstractmetamodel___MMModule___explicit_imported_modules(val_t self
) {
454 struct trace_t trace
= {NULL
, NULL
, 153, LOCATE_abstractmetamodel___MMModule___explicit_imported_modules
};
455 val_t
*variable
= NULL
;
456 struct WBT_
**closurevariable
= NULL
;
457 trace
.prev
= tracehead
; tracehead
= &trace
;
458 trace
.file
= LOCATE_abstractmetamodel
;
459 tracehead
= trace
.prev
;
460 return ATTR_abstractmetamodel___MMModule____explicit_imported_modules( self
) /*MMModule::_explicit_imported_modules*/;
462 void abstractmetamodel___MMModule___init(val_t self
, val_t param0
, val_t param1
, val_t param2
, val_t param3
, int* init_table
) {
463 struct trace_t trace
= {NULL
, NULL
, 162, LOCATE_abstractmetamodel___MMModule___init
};
465 struct WBT_
**closurevariable
= NULL
;
466 trace
.prev
= tracehead
; tracehead
= &trace
;
467 trace
.file
= LOCATE_abstractmetamodel
;
468 /* Register variable[0]: Local variable */
470 /* Register variable[1]: Local variable */
471 variable
[1] = param0
;
472 /* Register variable[2]: Local variable */
473 variable
[2] = param1
;
474 /* Register variable[3]: Local variable */
475 variable
[3] = param2
;
476 /* Register variable[4]: Local variable */
477 variable
[4] = param3
;
478 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMModule
].i
]) return;
479 /* Register variable[5]: Method return value and escape marker */
480 ATTR_abstractmetamodel___MMModule____name(variable
[0]) /*MMModule::_name*/ = variable
[1] /*name*/;
481 ATTR_abstractmetamodel___MMModule____directory(variable
[0]) /*MMModule::_directory*/ = variable
[2] /*dir*/;
482 ATTR_abstractmetamodel___MMModule____context(variable
[0]) /*MMModule::_context*/ = variable
[3] /*context*/;
483 /* Register variable[6]: Result */
484 variable
[6] = TAG_Bool(( variable
[2] /*dir*/ == NIT_NULL
/*null*/) || (( variable
[2] /*dir*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[2] /*dir*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[2] /*dir*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[2] /*dir*/)( variable
[2] /*dir*/, NIT_NULL
/*null*/) /*Object::==*/)))));
485 if (UNTAG_Bool(variable
[6])) { /*if*/
486 ATTR_abstractmetamodel___MMModule____full_name(variable
[0]) /*MMModule::_full_name*/ = variable
[1] /*name*/;
488 /* Register variable[6]: Result */
489 variable
[6] = CALL_abstractmetamodel___MMDirectory___full_name_for( variable
[2] /*dir*/)( variable
[2] /*dir*/, variable
[1] /*name*/) /*MMDirectory::full_name_for*/;
490 ATTR_abstractmetamodel___MMModule____full_name(variable
[0]) /*MMModule::_full_name*/ = variable
[6];
492 ATTR_abstractmetamodel___MMModule____filename(variable
[0]) /*MMModule::_filename*/ = variable
[4] /*filename*/;
493 return_label13
: while(false);
494 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMModule
].i
] = 1;
495 tracehead
= trace
.prev
;
498 void abstractmetamodel___MMModule___add_super_module(val_t self
, val_t param0
, val_t param1
) {
499 struct trace_t trace
= {NULL
, NULL
, 176, LOCATE_abstractmetamodel___MMModule___add_super_module
};
501 struct WBT_
**closurevariable
= NULL
;
502 trace
.prev
= tracehead
; tracehead
= &trace
;
503 trace
.file
= LOCATE_abstractmetamodel
;
504 /* Register variable[0]: Local variable */
506 /* Register variable[1]: Local variable */
507 variable
[1] = param0
;
508 /* Register variable[2]: Local variable */
509 variable
[2] = param1
;
510 /* Register variable[3]: Method return value and escape marker */
511 /* Register variable[4]: Result */
512 variable
[4] = ATTR_abstractmetamodel___MMModule____explicit_imported_modules(variable
[0]) /*MMModule::_explicit_imported_modules*/;
513 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[1] /*m*/) /*SimpleCollection::add*/;
514 /* Register variable[4]: Result */
515 variable
[4] = TAG_Bool(( variable
[2] /*visibility_level*/)==( TAG_Int(0)));
516 if (UNTAG_Bool(variable
[4])) { /*if*/
517 /* Register variable[4]: Result */
518 variable
[4] = ATTR_abstractmetamodel___MMModule____intrude_modules(variable
[0]) /*MMModule::_intrude_modules*/;
519 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[1] /*m*/) /*SimpleCollection::add*/;
520 /* Register variable[4]: Result */
521 variable
[4] = ATTR_abstractmetamodel___MMModule____intrude_modules(variable
[0]) /*MMModule::_intrude_modules*/;
522 /* Register variable[5]: Result */
523 variable
[5] = ATTR_abstractmetamodel___MMModule____intrude_modules( variable
[1] /*m*/) /*MMModule::_intrude_modules*/;
524 CALL_abstract_collection___SimpleCollection___add_all(variable
[4])(variable
[4], variable
[5]) /*SimpleCollection::add_all*/;
525 /* Register variable[4]: Result */
526 variable
[4] = ATTR_abstractmetamodel___MMModule____public_modules(variable
[0]) /*MMModule::_public_modules*/;
527 /* Register variable[5]: Result */
528 variable
[5] = ATTR_abstractmetamodel___MMModule____public_modules( variable
[1] /*m*/) /*MMModule::_public_modules*/;
529 CALL_abstract_collection___SimpleCollection___add_all(variable
[4])(variable
[4], variable
[5]) /*SimpleCollection::add_all*/;
530 /* Register variable[4]: Result */
531 variable
[4] = ATTR_abstractmetamodel___MMModule____private_modules(variable
[0]) /*MMModule::_private_modules*/;
532 /* Register variable[5]: Result */
533 variable
[5] = ATTR_abstractmetamodel___MMModule____private_modules( variable
[1] /*m*/) /*MMModule::_private_modules*/;
534 CALL_abstract_collection___SimpleCollection___add_all(variable
[4])(variable
[4], variable
[5]) /*SimpleCollection::add_all*/;
536 /* Register variable[4]: Result */
537 variable
[4] = TAG_Bool(( variable
[2] /*visibility_level*/)==( TAG_Int(1)));
538 if (UNTAG_Bool(variable
[4])) { /*if*/
539 /* Register variable[4]: Result */
540 variable
[4] = ATTR_abstractmetamodel___MMModule____public_modules(variable
[0]) /*MMModule::_public_modules*/;
541 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[1] /*m*/) /*SimpleCollection::add*/;
542 /* Register variable[4]: Result */
543 variable
[4] = ATTR_abstractmetamodel___MMModule____public_modules(variable
[0]) /*MMModule::_public_modules*/;
544 /* Register variable[5]: Result */
545 variable
[5] = ATTR_abstractmetamodel___MMModule____intrude_modules( variable
[1] /*m*/) /*MMModule::_intrude_modules*/;
546 CALL_abstract_collection___SimpleCollection___add_all(variable
[4])(variable
[4], variable
[5]) /*SimpleCollection::add_all*/;
547 /* Register variable[4]: Result */
548 variable
[4] = ATTR_abstractmetamodel___MMModule____public_modules(variable
[0]) /*MMModule::_public_modules*/;
549 /* Register variable[5]: Result */
550 variable
[5] = ATTR_abstractmetamodel___MMModule____public_modules( variable
[1] /*m*/) /*MMModule::_public_modules*/;
551 CALL_abstract_collection___SimpleCollection___add_all(variable
[4])(variable
[4], variable
[5]) /*SimpleCollection::add_all*/;
553 /* Register variable[4]: Result */
554 variable
[4] = ATTR_abstractmetamodel___MMModule____private_modules(variable
[0]) /*MMModule::_private_modules*/;
555 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[1] /*m*/) /*SimpleCollection::add*/;
556 /* Register variable[4]: Result */
557 variable
[4] = ATTR_abstractmetamodel___MMModule____private_modules(variable
[0]) /*MMModule::_private_modules*/;
558 /* Register variable[5]: Result */
559 variable
[5] = ATTR_abstractmetamodel___MMModule____intrude_modules( variable
[1] /*m*/) /*MMModule::_intrude_modules*/;
560 CALL_abstract_collection___SimpleCollection___add_all(variable
[4])(variable
[4], variable
[5]) /*SimpleCollection::add_all*/;
561 /* Register variable[4]: Result */
562 variable
[4] = ATTR_abstractmetamodel___MMModule____private_modules(variable
[0]) /*MMModule::_private_modules*/;
563 /* Register variable[5]: Result */
564 variable
[5] = ATTR_abstractmetamodel___MMModule____public_modules( variable
[1] /*m*/) /*MMModule::_public_modules*/;
565 CALL_abstract_collection___SimpleCollection___add_all(variable
[4])(variable
[4], variable
[5]) /*SimpleCollection::add_all*/;
568 return_label14
: while(false);
569 tracehead
= trace
.prev
;
572 val_t
abstractmetamodel___MMModule___visibility_for(val_t self
, val_t param0
) {
573 struct trace_t trace
= {NULL
, NULL
, 200, LOCATE_abstractmetamodel___MMModule___visibility_for
};
575 struct WBT_
**closurevariable
= NULL
;
576 trace
.prev
= tracehead
; tracehead
= &trace
;
577 trace
.file
= LOCATE_abstractmetamodel
;
578 /* Register variable[0]: Local variable */
580 /* Register variable[1]: Local variable */
581 variable
[1] = param0
;
582 /* Register variable[2]: Method return value and escape marker */
583 /* Register variable[3]: Result */
584 variable
[3] = TAG_Bool(( variable
[1] /*m*/ == variable
[0]) || (( variable
[1] /*m*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[1] /*m*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[1] /*m*/,variable
[0])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[1] /*m*/)( variable
[1] /*m*/, variable
[0]) /*Object::==*/)))));
585 /* Ensure var variable[3]: Left 'or' operand*/
586 if (!UNTAG_Bool(variable
[3])) { /* or */
587 /* Register variable[3]: Result */
588 variable
[3] = ATTR_abstractmetamodel___MMModule____intrude_modules(variable
[0]) /*MMModule::_intrude_modules*/;
589 /* Register variable[3]: Result */
590 variable
[3] = CALL_abstract_collection___Collection___has(variable
[3])(variable
[3], variable
[1] /*m*/) /*Collection::has*/;
592 /* Register variable[3]: Result */
593 if (UNTAG_Bool(variable
[3])) { /*if*/
594 variable
[2] = TAG_Int(3);
597 /* Register variable[3]: Result */
598 variable
[3] = ATTR_abstractmetamodel___MMModule____public_modules(variable
[0]) /*MMModule::_public_modules*/;
599 /* Register variable[3]: Result */
600 variable
[3] = CALL_abstract_collection___Collection___has(variable
[3])(variable
[3], variable
[1] /*m*/) /*Collection::has*/;
601 if (UNTAG_Bool(variable
[3])) { /*if*/
602 variable
[2] = TAG_Int(2);
605 /* Register variable[3]: Result */
606 variable
[3] = ATTR_abstractmetamodel___MMModule____private_modules(variable
[0]) /*MMModule::_private_modules*/;
607 /* Register variable[3]: Result */
608 variable
[3] = CALL_abstract_collection___Collection___has(variable
[3])(variable
[3], variable
[1] /*m*/) /*Collection::has*/;
609 if (UNTAG_Bool(variable
[3])) { /*if*/
610 variable
[2] = TAG_Int(1);
613 variable
[2] = TAG_Int(0);
618 return_label15
: while(false);
619 tracehead
= trace
.prev
;
622 val_t
abstractmetamodel___MMModule_____bra(val_t self
, val_t param0
) {
623 struct trace_t trace
= {NULL
, NULL
, 219, LOCATE_abstractmetamodel___MMModule_____bra
};
625 struct WBT_
**closurevariable
= NULL
;
626 trace
.prev
= tracehead
; tracehead
= &trace
;
627 trace
.file
= LOCATE_abstractmetamodel
;
628 /* Register variable[0]: Local variable */
630 /* Register variable[1]: Local variable */
631 variable
[1] = param0
;
632 /* Register variable[2]: Method return value and escape marker */
633 /* Register variable[3]: Result */
634 variable
[3] = ATTR_abstractmetamodel___MMModule____local_class_by_global(variable
[0]) /*MMModule::_local_class_by_global*/;
635 /* Register variable[3]: Result */
636 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))))));
637 if (!UNTAG_Bool(variable
[3])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMModule_____bra
, LOCATE_abstractmetamodel
, 222); nit_exit(1);}
638 /* Register variable[3]: Result */
639 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[1] /*c*/ == NIT_NULL
/*null*/) || (( variable
[1] /*c*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[1] /*c*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[1] /*c*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[1] /*c*/)( variable
[1] /*c*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
640 if (!UNTAG_Bool(variable
[3])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMModule_____bra
, LOCATE_abstractmetamodel
, 223); nit_exit(1);}
641 /* Register variable[3]: Result */
642 variable
[3] = ATTR_abstractmetamodel___MMModule____local_class_by_global(variable
[0]) /*MMModule::_local_class_by_global*/;
643 /* Register variable[3]: Result */
644 variable
[3] = CALL_abstract_collection___MapRead_____bra(variable
[3])(variable
[3], variable
[1] /*c*/) /*MapRead::[]*/;
645 variable
[2] = variable
[3];
647 return_label16
: while(false);
648 tracehead
= trace
.prev
;
651 val_t
abstractmetamodel___MMModule___class_by_name(val_t self
, val_t param0
) {
652 struct trace_t trace
= {NULL
, NULL
, 227, LOCATE_abstractmetamodel___MMModule___class_by_name
};
654 struct WBT_
**closurevariable
= NULL
;
655 trace
.prev
= tracehead
; tracehead
= &trace
;
656 trace
.file
= LOCATE_abstractmetamodel
;
657 /* Register variable[0]: Local variable */
659 /* Register variable[1]: Local variable */
660 variable
[1] = param0
;
661 /* Register variable[2]: Method return value and escape marker */
662 /* Register variable[3]: Result */
663 variable
[3] = ATTR_abstractmetamodel___MMModule____global_class_by_name(variable
[0]) /*MMModule::_global_class_by_name*/;
664 /* Register variable[3]: Result */
665 variable
[3] = CALL_abstract_collection___MapRead_____bra(variable
[3])(variable
[3], variable
[1] /*n*/) /*MapRead::[]*/;
666 /* Register variable[3]: Result */
667 variable
[3] = CALL_abstractmetamodel___MMModule_____bra(variable
[0])(variable
[0], variable
[3]) /*MMModule::[]*/;
668 variable
[2] = variable
[3];
670 return_label17
: while(false);
671 tracehead
= trace
.prev
;
674 val_t
abstractmetamodel___MMModule___has_global_class_named(val_t self
, val_t param0
) {
675 struct trace_t trace
= {NULL
, NULL
, 233, LOCATE_abstractmetamodel___MMModule___has_global_class_named
};
677 struct WBT_
**closurevariable
= NULL
;
678 trace
.prev
= tracehead
; tracehead
= &trace
;
679 trace
.file
= LOCATE_abstractmetamodel
;
680 /* Register variable[0]: Local variable */
682 /* Register variable[1]: Local variable */
683 variable
[1] = param0
;
684 /* Register variable[2]: Method return value and escape marker */
685 /* Register variable[3]: Result */
686 variable
[3] = ATTR_abstractmetamodel___MMModule____global_class_by_name(variable
[0]) /*MMModule::_global_class_by_name*/;
687 /* Register variable[3]: Result */
688 variable
[3] = CALL_abstract_collection___MapRead___has_key(variable
[3])(variable
[3], variable
[1] /*n*/) /*MapRead::has_key*/;
689 variable
[2] = variable
[3];
691 return_label18
: while(false);
692 tracehead
= trace
.prev
;
695 val_t
abstractmetamodel___MMModule___global_class_named(val_t self
, val_t param0
) {
696 struct trace_t trace
= {NULL
, NULL
, 239, LOCATE_abstractmetamodel___MMModule___global_class_named
};
698 struct WBT_
**closurevariable
= NULL
;
699 trace
.prev
= tracehead
; tracehead
= &trace
;
700 trace
.file
= LOCATE_abstractmetamodel
;
701 /* Register variable[0]: Local variable */
703 /* Register variable[1]: Local variable */
704 variable
[1] = param0
;
705 /* Register variable[2]: Method return value and escape marker */
706 /* Register variable[3]: Result */
707 variable
[3] = ATTR_abstractmetamodel___MMModule____global_class_by_name(variable
[0]) /*MMModule::_global_class_by_name*/;
708 /* Register variable[3]: Result */
709 variable
[3] = CALL_abstract_collection___MapRead_____bra(variable
[3])(variable
[3], variable
[1] /*n*/) /*MapRead::[]*/;
710 variable
[2] = variable
[3];
712 return_label19
: while(false);
713 tracehead
= trace
.prev
;
716 void abstractmetamodel___MMModule___set_supers_class(val_t self
, val_t param0
, val_t param1
) {
717 struct trace_t trace
= {NULL
, NULL
, 248, LOCATE_abstractmetamodel___MMModule___set_supers_class
};
719 struct WBT_
**closurevariable
= NULL
;
720 trace
.prev
= tracehead
; tracehead
= &trace
;
721 trace
.file
= LOCATE_abstractmetamodel
;
722 /* Register variable[0]: Local variable */
724 /* Register variable[1]: Local variable */
725 variable
[1] = param0
;
726 /* Register variable[2]: Local variable */
727 variable
[2] = param1
;
728 /* Register variable[3]: Method return value and escape marker */
729 /* Register variable[4]: Result */
730 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[2] /*supers*/ == NIT_NULL
/*null*/) || (( variable
[2] /*supers*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[2] /*supers*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[2] /*supers*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[2] /*supers*/)( variable
[2] /*supers*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
731 if (!UNTAG_Bool(variable
[4])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMModule___set_supers_class
, LOCATE_abstractmetamodel
, 251); nit_exit(1);}
732 /* Register variable[4]: Local variable */
733 /* Register variable[5]: Result */
734 variable
[5] = ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy(variable
[0]) /*MMModule::_class_specialization_hierarchy*/;
735 /* Register variable[5]: Result */
736 variable
[5] = CALL_partial_order___PartialOrder___select_smallests(variable
[5])(variable
[5], variable
[2] /*supers*/) /*PartialOrder::select_smallests*/;
737 variable
[4] = variable
[5];
738 /* Register variable[5]: Result */
739 variable
[5] = ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy(variable
[0]) /*MMModule::_class_specialization_hierarchy*/;
740 /* Register variable[5]: Result */
741 variable
[5] = CALL_partial_order___PartialOrder___add(variable
[5])(variable
[5], variable
[1] /*c*/, variable
[4] /*tab*/) /*PartialOrder::add*/;
742 ATTR_abstractmetamodel___MMLocalClass____cshe( variable
[1] /*c*/) /*MMLocalClass::_cshe*/ = variable
[5];
743 /* Register variable[5]: Local variable */
744 /* Register variable[6]: Result */
745 variable
[6] = CALL_abstractmetamodel___MMLocalClass___crhe( variable
[1] /*c*/)( variable
[1] /*c*/) /*MMLocalClass::crhe*/;
746 /* Register variable[6]: Result */
747 variable
[6] = CALL_partial_order___PartialOrderElement___direct_greaters(variable
[6])(variable
[6]) /*PartialOrderElement::direct_greaters*/;
748 /* Register variable[6]: Result */
749 variable
[6] = CALL_array___Collection___to_a(variable
[6])(variable
[6]) /*Collection::to_a*/;
750 variable
[5] = variable
[6];
751 CALL_abstract_collection___SimpleCollection___add_all( variable
[5] /*tab_all*/)( variable
[5] /*tab_all*/, variable
[4] /*tab*/) /*SimpleCollection::add_all*/;
752 /* Register variable[6]: Result */
753 variable
[6] = CALL_abstractmetamodel___MMModule___context(variable
[0])(variable
[0]) /*MMModule::context*/;
754 CALL_abstractmetamodel___MMContext___add_local_class(variable
[6])(variable
[6], variable
[1] /*c*/, variable
[5] /*tab_all*/) /*MMContext::add_local_class*/;
755 return_label20
: while(false);
756 tracehead
= trace
.prev
;
759 void abstractmetamodel___MMModule___register_global_class(val_t self
, val_t param0
) {
760 struct trace_t trace
= {NULL
, NULL
, 259, LOCATE_abstractmetamodel___MMModule___register_global_class
};
762 struct WBT_
**closurevariable
= NULL
;
763 trace
.prev
= tracehead
; tracehead
= &trace
;
764 trace
.file
= LOCATE_abstractmetamodel
;
765 /* Register variable[0]: Local variable */
767 /* Register variable[1]: Local variable */
768 variable
[1] = param0
;
769 /* Register variable[2]: Method return value and escape marker */
770 /* Register variable[3]: Result */
771 variable
[3] = CALL_abstractmetamodel___MMLocalClass___global( variable
[1] /*c*/)( variable
[1] /*c*/) /*MMLocalClass::global*/;
772 /* Register variable[3]: Result */
773 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))))));
774 if (!UNTAG_Bool(variable
[3])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMModule___register_global_class
, LOCATE_abstractmetamodel
, 262); nit_exit(1);}
775 /* Register variable[3]: Result */
776 variable
[3] = ATTR_abstractmetamodel___MMModule____local_class_by_global(variable
[0]) /*MMModule::_local_class_by_global*/;
777 /* Register variable[4]: Result */
778 variable
[4] = CALL_abstractmetamodel___MMLocalClass___global( variable
[1] /*c*/)( variable
[1] /*c*/) /*MMLocalClass::global*/;
779 CALL_abstract_collection___Map_____braeq(variable
[3])(variable
[3], variable
[4], variable
[1] /*c*/) /*Map::[]=*/;
780 return_label21
: while(false);
781 tracehead
= trace
.prev
;
784 val_t
abstractmetamodel___MMGlobalClass___to_s(val_t self
) {
785 struct trace_t trace
= {NULL
, NULL
, 294, LOCATE_abstractmetamodel___MMGlobalClass___to_s
};
787 struct WBT_
**closurevariable
= NULL
;
788 trace
.prev
= tracehead
; tracehead
= &trace
;
789 trace
.file
= LOCATE_abstractmetamodel
;
790 /* Register variable[0]: Local variable */
792 /* Register variable[1]: Method return value and escape marker */
793 /* Register variable[2]: Result */
794 variable
[2] = CALL_abstractmetamodel___MMGlobalClass___intro(variable
[0])(variable
[0]) /*MMGlobalClass::intro*/;
795 /* Register variable[2]: Result */
796 variable
[2] = CALL_string___Object___to_s(variable
[2])(variable
[2]) /*MMLocalClass::to_s*/;
797 variable
[1] = variable
[2];
799 return_label22
: while(false);
800 tracehead
= trace
.prev
;
803 val_t
abstractmetamodel___MMGlobalClass___intro(val_t self
) {
804 struct trace_t trace
= {NULL
, NULL
, 268, LOCATE_abstractmetamodel___MMGlobalClass___intro
};
805 val_t
*variable
= NULL
;
806 struct WBT_
**closurevariable
= NULL
;
807 trace
.prev
= tracehead
; tracehead
= &trace
;
808 trace
.file
= LOCATE_abstractmetamodel
;
809 tracehead
= trace
.prev
;
810 return ATTR_abstractmetamodel___MMGlobalClass____intro( self
) /*MMGlobalClass::_intro*/;
812 val_t
abstractmetamodel___MMGlobalClass___class_refinement_hierarchy(val_t self
) {
813 struct trace_t trace
= {NULL
, NULL
, 271, LOCATE_abstractmetamodel___MMGlobalClass___class_refinement_hierarchy
};
814 val_t
*variable
= NULL
;
815 struct WBT_
**closurevariable
= NULL
;
816 trace
.prev
= tracehead
; tracehead
= &trace
;
817 trace
.file
= LOCATE_abstractmetamodel
;
818 tracehead
= trace
.prev
;
819 return ATTR_abstractmetamodel___MMGlobalClass____class_refinement_hierarchy( self
) /*MMGlobalClass::_class_refinement_hierarchy*/;
821 void abstractmetamodel___MMGlobalClass___init(val_t self
, val_t param0
, int* init_table
) {
822 struct trace_t trace
= {NULL
, NULL
, 275, LOCATE_abstractmetamodel___MMGlobalClass___init
};
824 struct WBT_
**closurevariable
= NULL
;
825 trace
.prev
= tracehead
; tracehead
= &trace
;
826 trace
.file
= LOCATE_abstractmetamodel
;
827 /* Register variable[0]: Local variable */
829 /* Register variable[1]: Local variable */
830 variable
[1] = param0
;
831 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMGlobalClass
].i
]) return;
832 /* Register variable[2]: Method return value and escape marker */
833 ATTR_abstractmetamodel___MMGlobalClass____intro(variable
[0]) /*MMGlobalClass::_intro*/ = variable
[1] /*c*/;
834 /* Register variable[3]: Result */
835 variable
[3] = CALL_abstractmetamodel___MMLocalClass___context( variable
[1] /*c*/)( variable
[1] /*c*/) /*MMLocalClass::context*/;
836 CALL_abstractmetamodel___MMContext___add_global_class(variable
[3])(variable
[3], variable
[0]) /*MMContext::add_global_class*/;
837 return_label23
: while(false);
838 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMGlobalClass
].i
] = 1;
839 tracehead
= trace
.prev
;
842 val_t
abstractmetamodel___MMGlobalClass___name(val_t self
) {
843 struct trace_t trace
= {NULL
, NULL
, 282, LOCATE_abstractmetamodel___MMGlobalClass___name
};
845 struct WBT_
**closurevariable
= NULL
;
846 trace
.prev
= tracehead
; tracehead
= &trace
;
847 trace
.file
= LOCATE_abstractmetamodel
;
848 /* Register variable[0]: Local variable */
850 /* Register variable[1]: Method return value and escape marker */
851 /* Register variable[2]: Result */
852 variable
[2] = CALL_abstractmetamodel___MMGlobalClass___intro(variable
[0])(variable
[0]) /*MMGlobalClass::intro*/;
853 /* Register variable[2]: Result */
854 variable
[2] = CALL_abstractmetamodel___MMLocalClass___name(variable
[2])(variable
[2]) /*MMLocalClass::name*/;
855 variable
[1] = variable
[2];
857 return_label24
: while(false);
858 tracehead
= trace
.prev
;
861 val_t
abstractmetamodel___MMGlobalClass___module(val_t self
) {
862 struct trace_t trace
= {NULL
, NULL
, 288, LOCATE_abstractmetamodel___MMGlobalClass___module
};
864 struct WBT_
**closurevariable
= NULL
;
865 trace
.prev
= tracehead
; tracehead
= &trace
;
866 trace
.file
= LOCATE_abstractmetamodel
;
867 /* Register variable[0]: Local variable */
869 /* Register variable[1]: Method return value and escape marker */
870 /* Register variable[2]: Result */
871 variable
[2] = CALL_abstractmetamodel___MMGlobalClass___intro(variable
[0])(variable
[0]) /*MMGlobalClass::intro*/;
872 /* Register variable[2]: Result */
873 variable
[2] = CALL_abstractmetamodel___MMLocalClass___module(variable
[2])(variable
[2]) /*MMLocalClass::module*/;
874 variable
[1] = variable
[2];
876 return_label25
: while(false);
877 tracehead
= trace
.prev
;
880 void abstractmetamodel___MMGlobalClass___register_local_class(val_t self
, val_t param0
) {
881 struct trace_t trace
= {NULL
, NULL
, 299, LOCATE_abstractmetamodel___MMGlobalClass___register_local_class
};
883 struct WBT_
**closurevariable
= NULL
;
884 trace
.prev
= tracehead
; tracehead
= &trace
;
885 trace
.file
= LOCATE_abstractmetamodel
;
886 /* Register variable[0]: Local variable */
888 /* Register variable[1]: Local variable */
889 variable
[1] = param0
;
890 /* Register variable[2]: Method return value and escape marker */
891 /* Register variable[3]: Result */
892 variable
[3] = CALL_abstractmetamodel___MMLocalClass___module( variable
[1] /*c*/)( variable
[1] /*c*/) /*MMLocalClass::module*/;
893 /* Register variable[3]: Result */
894 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))))));
895 if (!UNTAG_Bool(variable
[3])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMGlobalClass___register_local_class
, LOCATE_abstractmetamodel
, 302); nit_exit(1);}
896 /* Register variable[3]: Result */
897 variable
[3] = CALL_abstractmetamodel___MMLocalClass___crhe( variable
[1] /*c*/)( variable
[1] /*c*/) /*MMLocalClass::crhe*/;
898 /* Register variable[3]: Result */
899 variable
[3] = TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))));
900 if (!UNTAG_Bool(variable
[3])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMGlobalClass___register_local_class
, LOCATE_abstractmetamodel
, 303); nit_exit(1);}
901 /* Register variable[3]: Local variable */
902 /* Register variable[4]: Result */
903 variable
[4] = NEW_Array_array___Array___init() /*new Array[MMLocalClass]*/;
904 variable
[3] = variable
[4];
905 /* Register variable[4]: Result */
906 variable
[4] = CALL_abstractmetamodel___MMGlobalClass___class_refinement_hierarchy(variable
[0])(variable
[0]) /*MMGlobalClass::class_refinement_hierarchy*/;
907 /* Register variable[4]: For iterator */
908 variable
[4] = CALL_abstract_collection___Collection___iterator(variable
[4])(variable
[4]) /*PartialOrder::iterator*/;
909 while (true) { /*for*/
910 /* Register variable[5]: For 'is_ok' result */
911 variable
[5] = CALL_abstract_collection___Iterator___is_ok(variable
[4])(variable
[4]) /*Iterator::is_ok*/;
912 if (!UNTAG_Bool(variable
[5])) break; /*for*/
913 variable
[5] = CALL_abstract_collection___Iterator___item(variable
[4])(variable
[4]) /*Iterator::item*/ /* Ensure var: For item*/;
914 /* Register variable[6]: Local variable */
915 variable
[6] = variable
[5];
916 /* Register variable[7]: Result */
917 variable
[7] = CALL_abstractmetamodel___MMLocalClass___module( variable
[1] /*c*/)( variable
[1] /*c*/) /*MMLocalClass::module*/;
918 /* Register variable[7]: Result */
919 variable
[7] = CALL_abstractmetamodel___MMModule___mhe(variable
[7])(variable
[7]) /*MMModule::mhe*/;
920 /* Register variable[8]: Result */
921 variable
[8] = CALL_abstractmetamodel___MMLocalClass___module( variable
[6] /*s*/)( variable
[6] /*s*/) /*MMLocalClass::module*/;
922 /* Register variable[7]: Result */
923 variable
[7] = CALL_partial_order___PartialOrderElement_____l(variable
[7])(variable
[7], variable
[8]) /*PartialOrderElement::<*/;
924 /* Ensure var variable[7]: Left 'and' operand*/
925 if (UNTAG_Bool(variable
[7])) { /* and */
926 /* Register variable[7]: Result */
927 variable
[7] = TAG_Bool(( variable
[6] /*s*/==NIT_NULL
) || VAL_ISA( variable
[6] /*s*/, COLOR_MMConcreteClass
, ID_MMConcreteClass
)) /*cast MMConcreteClass*/;
929 /* Register variable[7]: Result */
930 if (UNTAG_Bool(variable
[7])) { /*if*/
931 CALL_abstract_collection___SimpleCollection___add( variable
[3] /*sup*/)( variable
[3] /*sup*/, variable
[6] /*s*/) /*AbstractArray::add*/;
933 continue_27
: while(0);
934 CALL_abstract_collection___Iterator___next(variable
[4])(variable
[4]) /*Iterator::next*/;
937 /* Register variable[4]: Result */
938 variable
[4] = ATTR_abstractmetamodel___MMGlobalClass____class_refinement_hierarchy(variable
[0]) /*MMGlobalClass::_class_refinement_hierarchy*/;
939 /* Register variable[4]: Result */
940 variable
[4] = CALL_partial_order___PartialOrder___add(variable
[4])(variable
[4], variable
[1] /*c*/, variable
[3] /*sup*/) /*PartialOrder::add*/;
941 ATTR_abstractmetamodel___MMLocalClass____crhe( variable
[1] /*c*/) /*MMLocalClass::_crhe*/ = variable
[4];
942 return_label26
: while(false);
943 tracehead
= trace
.prev
;
946 val_t
abstractmetamodel___MMGlobalClass___is_interface(val_t self
) {
947 struct trace_t trace
= {NULL
, NULL
, 313, LOCATE_abstractmetamodel___MMGlobalClass___is_interface
};
948 val_t
*variable
= NULL
;
949 struct WBT_
**closurevariable
= NULL
;
950 trace
.prev
= tracehead
; tracehead
= &trace
;
951 trace
.file
= LOCATE_abstractmetamodel
;
952 tracehead
= trace
.prev
;
953 return ATTR_abstractmetamodel___MMGlobalClass____is_interface( self
) /*MMGlobalClass::_is_interface*/;
955 void abstractmetamodel___MMGlobalClass___is_interface__eq(val_t self
, val_t param0
) {
956 struct trace_t trace
= {NULL
, NULL
, 313, LOCATE_abstractmetamodel___MMGlobalClass___is_interface__eq
};
957 val_t
*variable
= NULL
;
958 struct WBT_
**closurevariable
= NULL
;
959 trace
.prev
= tracehead
; tracehead
= &trace
;
960 trace
.file
= LOCATE_abstractmetamodel
;
961 ATTR_abstractmetamodel___MMGlobalClass____is_interface( self
) /*MMGlobalClass::_is_interface*/ = param0
;
962 tracehead
= trace
.prev
;
965 val_t
abstractmetamodel___MMGlobalClass___is_abstract(val_t self
) {
966 struct trace_t trace
= {NULL
, NULL
, 316, LOCATE_abstractmetamodel___MMGlobalClass___is_abstract
};
967 val_t
*variable
= NULL
;
968 struct WBT_
**closurevariable
= NULL
;
969 trace
.prev
= tracehead
; tracehead
= &trace
;
970 trace
.file
= LOCATE_abstractmetamodel
;
971 tracehead
= trace
.prev
;
972 return ATTR_abstractmetamodel___MMGlobalClass____is_abstract( self
) /*MMGlobalClass::_is_abstract*/;
974 void abstractmetamodel___MMGlobalClass___is_abstract__eq(val_t self
, val_t param0
) {
975 struct trace_t trace
= {NULL
, NULL
, 316, LOCATE_abstractmetamodel___MMGlobalClass___is_abstract__eq
};
976 val_t
*variable
= NULL
;
977 struct WBT_
**closurevariable
= NULL
;
978 trace
.prev
= tracehead
; tracehead
= &trace
;
979 trace
.file
= LOCATE_abstractmetamodel
;
980 ATTR_abstractmetamodel___MMGlobalClass____is_abstract( self
) /*MMGlobalClass::_is_abstract*/ = param0
;
981 tracehead
= trace
.prev
;
984 val_t
abstractmetamodel___MMGlobalClass___is_universal(val_t self
) {
985 struct trace_t trace
= {NULL
, NULL
, 319, LOCATE_abstractmetamodel___MMGlobalClass___is_universal
};
986 val_t
*variable
= NULL
;
987 struct WBT_
**closurevariable
= NULL
;
988 trace
.prev
= tracehead
; tracehead
= &trace
;
989 trace
.file
= LOCATE_abstractmetamodel
;
990 tracehead
= trace
.prev
;
991 return ATTR_abstractmetamodel___MMGlobalClass____is_universal( self
) /*MMGlobalClass::_is_universal*/;
993 void abstractmetamodel___MMGlobalClass___is_universal__eq(val_t self
, val_t param0
) {
994 struct trace_t trace
= {NULL
, NULL
, 319, LOCATE_abstractmetamodel___MMGlobalClass___is_universal__eq
};
995 val_t
*variable
= NULL
;
996 struct WBT_
**closurevariable
= NULL
;
997 trace
.prev
= tracehead
; tracehead
= &trace
;
998 trace
.file
= LOCATE_abstractmetamodel
;
999 ATTR_abstractmetamodel___MMGlobalClass____is_universal( self
) /*MMGlobalClass::_is_universal*/ = param0
;
1000 tracehead
= trace
.prev
;
1003 val_t
abstractmetamodel___MMGlobalClass___visibility_level(val_t self
) {
1004 struct trace_t trace
= {NULL
, NULL
, 322, LOCATE_abstractmetamodel___MMGlobalClass___visibility_level
};
1005 val_t
*variable
= NULL
;
1006 struct WBT_
**closurevariable
= NULL
;
1007 trace
.prev
= tracehead
; tracehead
= &trace
;
1008 trace
.file
= LOCATE_abstractmetamodel
;
1009 tracehead
= trace
.prev
;
1010 return ATTR_abstractmetamodel___MMGlobalClass____visibility_level( self
) /*MMGlobalClass::_visibility_level*/;
1012 void abstractmetamodel___MMGlobalClass___visibility_level__eq(val_t self
, val_t param0
) {
1013 struct trace_t trace
= {NULL
, NULL
, 322, LOCATE_abstractmetamodel___MMGlobalClass___visibility_level__eq
};
1014 val_t
*variable
= NULL
;
1015 struct WBT_
**closurevariable
= NULL
;
1016 trace
.prev
= tracehead
; tracehead
= &trace
;
1017 trace
.file
= LOCATE_abstractmetamodel
;
1018 ATTR_abstractmetamodel___MMGlobalClass____visibility_level( self
) /*MMGlobalClass::_visibility_level*/ = param0
;
1019 tracehead
= trace
.prev
;
1022 val_t
abstractmetamodel___MMGlobalClass___is_mixin(val_t self
) {
1023 struct trace_t trace
= {NULL
, NULL
, 327, LOCATE_abstractmetamodel___MMGlobalClass___is_mixin
};
1025 struct WBT_
**closurevariable
= NULL
;
1026 trace
.prev
= tracehead
; tracehead
= &trace
;
1027 trace
.file
= LOCATE_abstractmetamodel
;
1028 /* Register variable[0]: Local variable */
1030 /* Register variable[1]: Method return value and escape marker */
1031 /* Register variable[2]: Result */
1032 variable
[2] = ATTR_abstractmetamodel___MMGlobalClass____mixin_of(variable
[0]) /*MMGlobalClass::_mixin_of*/;
1033 /* Register variable[2]: Result */
1034 variable
[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[2] == variable
[0]) || ((variable
[2] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[2])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[2],variable
[0])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[2])(variable
[2], variable
[0]) /*Object::==*/)))))));
1035 variable
[1] = variable
[2];
1036 goto return_label28
;
1037 return_label28
: while(false);
1038 tracehead
= trace
.prev
;
1041 val_t
abstractmetamodel___MMGlobalClass___mixin_of(val_t self
) {
1042 struct trace_t trace
= {NULL
, NULL
, 334, LOCATE_abstractmetamodel___MMGlobalClass___mixin_of
};
1043 val_t
*variable
= NULL
;
1044 struct WBT_
**closurevariable
= NULL
;
1045 trace
.prev
= tracehead
; tracehead
= &trace
;
1046 trace
.file
= LOCATE_abstractmetamodel
;
1047 tracehead
= trace
.prev
;
1048 return ATTR_abstractmetamodel___MMGlobalClass____mixin_of( self
) /*MMGlobalClass::_mixin_of*/;
1050 void abstractmetamodel___MMGlobalClass___mixin_of__eq(val_t self
, val_t param0
) {
1051 struct trace_t trace
= {NULL
, NULL
, 334, LOCATE_abstractmetamodel___MMGlobalClass___mixin_of__eq
};
1052 val_t
*variable
= NULL
;
1053 struct WBT_
**closurevariable
= NULL
;
1054 trace
.prev
= tracehead
; tracehead
= &trace
;
1055 trace
.file
= LOCATE_abstractmetamodel
;
1056 ATTR_abstractmetamodel___MMGlobalClass____mixin_of( self
) /*MMGlobalClass::_mixin_of*/ = param0
;
1057 tracehead
= trace
.prev
;
1060 val_t
abstractmetamodel___MMLocalClass___to_s(val_t self
) {
1061 struct trace_t trace
= {NULL
, NULL
, 519, LOCATE_abstractmetamodel___MMLocalClass___to_s
};
1063 struct WBT_
**closurevariable
= NULL
;
1064 trace
.prev
= tracehead
; tracehead
= &trace
;
1065 trace
.file
= LOCATE_abstractmetamodel
;
1066 /* Register variable[0]: Local variable */
1068 /* Register variable[1]: Method return value and escape marker */
1069 /* Register variable[2]: Result */
1070 variable
[2] = ATTR_abstractmetamodel___MMLocalClass____name(variable
[0]) /*MMLocalClass::_name*/;
1071 /* Register variable[2]: Result */
1072 variable
[2] = CALL_string___Object___to_s(variable
[2])(variable
[2]) /*Symbol::to_s*/;
1073 variable
[1] = variable
[2];
1074 goto return_label29
;
1075 return_label29
: while(false);
1076 tracehead
= trace
.prev
;
1079 val_t
abstractmetamodel___MMLocalClass___name(val_t self
) {
1080 struct trace_t trace
= {NULL
, NULL
, 343, LOCATE_abstractmetamodel___MMLocalClass___name
};
1081 val_t
*variable
= NULL
;
1082 struct WBT_
**closurevariable
= NULL
;
1083 trace
.prev
= tracehead
; tracehead
= &trace
;
1084 trace
.file
= LOCATE_abstractmetamodel
;
1085 tracehead
= trace
.prev
;
1086 return ATTR_abstractmetamodel___MMLocalClass____name( self
) /*MMLocalClass::_name*/;
1088 val_t
abstractmetamodel___MMLocalClass___arity(val_t self
) {
1089 struct trace_t trace
= {NULL
, NULL
, 346, LOCATE_abstractmetamodel___MMLocalClass___arity
};
1090 val_t
*variable
= NULL
;
1091 struct WBT_
**closurevariable
= NULL
;
1092 trace
.prev
= tracehead
; tracehead
= &trace
;
1093 trace
.file
= LOCATE_abstractmetamodel
;
1094 tracehead
= trace
.prev
;
1095 return ATTR_abstractmetamodel___MMLocalClass____arity( self
) /*MMLocalClass::_arity*/;
1097 val_t
abstractmetamodel___MMLocalClass___module(val_t self
) {
1098 struct trace_t trace
= {NULL
, NULL
, 350, LOCATE_abstractmetamodel___MMLocalClass___module
};
1099 val_t
*variable
= NULL
;
1100 struct WBT_
**closurevariable
= NULL
;
1101 trace
.prev
= tracehead
; tracehead
= &trace
;
1102 trace
.file
= LOCATE_abstractmetamodel
;
1103 tracehead
= trace
.prev
;
1104 return ATTR_abstractmetamodel___MMLocalClass____module( self
) /*MMLocalClass::_module*/;
1106 val_t
abstractmetamodel___MMLocalClass___global(val_t self
) {
1107 struct trace_t trace
= {NULL
, NULL
, 353, LOCATE_abstractmetamodel___MMLocalClass___global
};
1108 val_t
*variable
= NULL
;
1109 struct WBT_
**closurevariable
= NULL
;
1110 trace
.prev
= tracehead
; tracehead
= &trace
;
1111 trace
.file
= LOCATE_abstractmetamodel
;
1112 tracehead
= trace
.prev
;
1113 return ATTR_abstractmetamodel___MMLocalClass____global( self
) /*MMLocalClass::_global*/;
1115 val_t
abstractmetamodel___MMLocalClass___crhe(val_t self
) {
1116 struct trace_t trace
= {NULL
, NULL
, 356, LOCATE_abstractmetamodel___MMLocalClass___crhe
};
1117 val_t
*variable
= NULL
;
1118 struct WBT_
**closurevariable
= NULL
;
1119 trace
.prev
= tracehead
; tracehead
= &trace
;
1120 trace
.file
= LOCATE_abstractmetamodel
;
1121 tracehead
= trace
.prev
;
1122 return ATTR_abstractmetamodel___MMLocalClass____crhe( self
) /*MMLocalClass::_crhe*/;
1124 val_t
abstractmetamodel___MMLocalClass___cshe(val_t self
) {
1125 struct trace_t trace
= {NULL
, NULL
, 359, LOCATE_abstractmetamodel___MMLocalClass___cshe
};
1126 val_t
*variable
= NULL
;
1127 struct WBT_
**closurevariable
= NULL
;
1128 trace
.prev
= tracehead
; tracehead
= &trace
;
1129 trace
.file
= LOCATE_abstractmetamodel
;
1130 tracehead
= trace
.prev
;
1131 return ATTR_abstractmetamodel___MMLocalClass____cshe( self
) /*MMLocalClass::_cshe*/;
1133 val_t
abstractmetamodel___MMLocalClass___che(val_t self
) {
1134 struct trace_t trace
= {NULL
, NULL
, 362, LOCATE_abstractmetamodel___MMLocalClass___che
};
1135 val_t
*variable
= NULL
;
1136 struct WBT_
**closurevariable
= NULL
;
1137 trace
.prev
= tracehead
; tracehead
= &trace
;
1138 trace
.file
= LOCATE_abstractmetamodel
;
1139 tracehead
= trace
.prev
;
1140 return ATTR_abstractmetamodel___MMLocalClass____che( self
) /*MMLocalClass::_che*/;
1142 val_t
abstractmetamodel___MMLocalClass___local_property_by_global(val_t self
) {
1143 struct trace_t trace
= {NULL
, NULL
, 365, LOCATE_abstractmetamodel___MMLocalClass___local_property_by_global
};
1144 val_t
*variable
= NULL
;
1145 struct WBT_
**closurevariable
= NULL
;
1146 trace
.prev
= tracehead
; tracehead
= &trace
;
1147 trace
.file
= LOCATE_abstractmetamodel
;
1148 tracehead
= trace
.prev
;
1149 return ATTR_abstractmetamodel___MMLocalClass____local_property_by_global( self
) /*MMLocalClass::_local_property_by_global*/;
1151 val_t
abstractmetamodel___MMLocalClass___global_properties(val_t self
) {
1152 struct trace_t trace
= {NULL
, NULL
, 368, LOCATE_abstractmetamodel___MMLocalClass___global_properties
};
1153 val_t
*variable
= NULL
;
1154 struct WBT_
**closurevariable
= NULL
;
1155 trace
.prev
= tracehead
; tracehead
= &trace
;
1156 trace
.file
= LOCATE_abstractmetamodel
;
1157 tracehead
= trace
.prev
;
1158 return ATTR_abstractmetamodel___MMLocalClass____global_properties( self
) /*MMLocalClass::_global_properties*/;
1160 val_t
abstractmetamodel___MMLocalClass___properties_by_name(val_t self
) {
1161 struct trace_t trace
= {NULL
, NULL
, 371, LOCATE_abstractmetamodel___MMLocalClass___properties_by_name
};
1162 val_t
*variable
= NULL
;
1163 struct WBT_
**closurevariable
= NULL
;
1164 trace
.prev
= tracehead
; tracehead
= &trace
;
1165 trace
.file
= LOCATE_abstractmetamodel
;
1166 tracehead
= trace
.prev
;
1167 return ATTR_abstractmetamodel___MMLocalClass____properties_by_name( self
) /*MMLocalClass::_properties_by_name*/;
1169 void abstractmetamodel___MMLocalClass___init(val_t self
, val_t param0
, val_t param1
, val_t param2
, int* init_table
) {
1170 struct trace_t trace
= {NULL
, NULL
, 374, LOCATE_abstractmetamodel___MMLocalClass___init
};
1172 struct WBT_
**closurevariable
= NULL
;
1173 trace
.prev
= tracehead
; tracehead
= &trace
;
1174 trace
.file
= LOCATE_abstractmetamodel
;
1175 /* Register variable[0]: Local variable */
1177 /* Register variable[1]: Local variable */
1178 variable
[1] = param0
;
1179 /* Register variable[2]: Local variable */
1180 variable
[2] = param1
;
1181 /* Register variable[3]: Local variable */
1182 variable
[3] = param2
;
1183 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMLocalClass
].i
]) return;
1184 /* Register variable[4]: Method return value and escape marker */
1185 ATTR_abstractmetamodel___MMLocalClass____module(variable
[0]) /*MMLocalClass::_module*/ = variable
[1] /*mod*/;
1186 ATTR_abstractmetamodel___MMLocalClass____name(variable
[0]) /*MMLocalClass::_name*/ = variable
[2] /*name*/;
1187 ATTR_abstractmetamodel___MMLocalClass____arity(variable
[0]) /*MMLocalClass::_arity*/ = variable
[3] /*arity*/;
1188 /* Register variable[5]: Result */
1189 variable
[5] = ATTR_abstractmetamodel___MMModule____local_classes( variable
[1] /*mod*/) /*MMModule::_local_classes*/;
1190 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[0]) /*AbstractArray::add*/;
1191 return_label30
: while(false);
1192 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMLocalClass
].i
] = 1;
1193 tracehead
= trace
.prev
;
1196 val_t
abstractmetamodel___MMLocalClass___for_module(val_t self
, val_t param0
) {
1197 struct trace_t trace
= {NULL
, NULL
, 383, LOCATE_abstractmetamodel___MMLocalClass___for_module
};
1199 struct WBT_
**closurevariable
= NULL
;
1200 trace
.prev
= tracehead
; tracehead
= &trace
;
1201 trace
.file
= LOCATE_abstractmetamodel
;
1202 /* Register variable[0]: Local variable */
1204 /* Register variable[1]: Local variable */
1205 variable
[1] = param0
;
1206 /* Register variable[2]: Method return value and escape marker */
1207 /* Register variable[3]: Result */
1208 variable
[3] = CALL_abstractmetamodel___MMLocalClass___global(variable
[0])(variable
[0]) /*MMLocalClass::global*/;
1209 /* Register variable[3]: Result */
1210 variable
[3] = CALL_abstractmetamodel___MMModule_____bra( variable
[1] /*m*/)( variable
[1] /*m*/, variable
[3]) /*MMModule::[]*/;
1211 variable
[2] = variable
[3];
1212 goto return_label31
;
1213 return_label31
: while(false);
1214 tracehead
= trace
.prev
;
1217 void abstractmetamodel___MMLocalClass___new_global(val_t self
) {
1218 struct trace_t trace
= {NULL
, NULL
, 389, LOCATE_abstractmetamodel___MMLocalClass___new_global
};
1220 struct WBT_
**closurevariable
= NULL
;
1221 trace
.prev
= tracehead
; tracehead
= &trace
;
1222 trace
.file
= LOCATE_abstractmetamodel
;
1223 /* Register variable[0]: Local variable */
1225 /* Register variable[1]: Method return value and escape marker */
1226 /* Register variable[2]: Local variable */
1227 /* Register variable[3]: Result */
1228 variable
[3] = NEW_MMGlobalClass_abstractmetamodel___MMGlobalClass___init(variable
[0]) /*new MMGlobalClass*/;
1229 variable
[2] = variable
[3];
1230 /* Register variable[3]: Result */
1231 variable
[3] = ATTR_abstractmetamodel___MMLocalClass____module(variable
[0]) /*MMLocalClass::_module*/;
1232 /* Register variable[3]: Result */
1233 variable
[3] = ATTR_abstractmetamodel___MMModule____global_classes(variable
[3]) /*MMModule::_global_classes*/;
1234 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[2] /*g*/) /*AbstractArray::add*/;
1235 /* Register variable[3]: Result */
1236 variable
[3] = ATTR_abstractmetamodel___MMLocalClass____module(variable
[0]) /*MMLocalClass::_module*/;
1237 /* Register variable[3]: Result */
1238 variable
[3] = ATTR_abstractmetamodel___MMModule____global_class_by_name(variable
[3]) /*MMModule::_global_class_by_name*/;
1239 /* Register variable[4]: Result */
1240 variable
[4] = CALL_abstractmetamodel___MMLocalClass___name(variable
[0])(variable
[0]) /*MMLocalClass::name*/;
1241 CALL_abstract_collection___Map_____braeq(variable
[3])(variable
[3], variable
[4], variable
[2] /*g*/) /*Map::[]=*/;
1242 CALL_abstractmetamodel___MMLocalClass___set_global(variable
[0])(variable
[0], variable
[2] /*g*/) /*MMLocalClass::set_global*/;
1243 return_label32
: while(false);
1244 tracehead
= trace
.prev
;
1247 void abstractmetamodel___MMLocalClass___set_global(val_t self
, val_t param0
) {
1248 struct trace_t trace
= {NULL
, NULL
, 398, LOCATE_abstractmetamodel___MMLocalClass___set_global
};
1250 struct WBT_
**closurevariable
= NULL
;
1251 trace
.prev
= tracehead
; tracehead
= &trace
;
1252 trace
.file
= LOCATE_abstractmetamodel
;
1253 /* Register variable[0]: Local variable */
1255 /* Register variable[1]: Local variable */
1256 variable
[1] = param0
;
1257 /* Register variable[2]: Method return value and escape marker */
1258 /* Register variable[3]: Result */
1259 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[1] /*g*/ == NIT_NULL
/*null*/) || (( variable
[1] /*g*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[1] /*g*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[1] /*g*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[1] /*g*/)( variable
[1] /*g*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
1260 if (!UNTAG_Bool(variable
[3])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___set_global
, LOCATE_abstractmetamodel
, 403); nit_exit(1);}
1261 ATTR_abstractmetamodel___MMLocalClass____global(variable
[0]) /*MMLocalClass::_global*/ = variable
[1] /*g*/;
1262 /* Register variable[3]: Result */
1263 variable
[3] = ATTR_abstractmetamodel___MMLocalClass____global(variable
[0]) /*MMLocalClass::_global*/;
1264 CALL_abstractmetamodel___MMGlobalClass___register_local_class(variable
[3])(variable
[3], variable
[0]) /*MMGlobalClass::register_local_class*/;
1265 /* Register variable[3]: Result */
1266 variable
[3] = ATTR_abstractmetamodel___MMLocalClass____module(variable
[0]) /*MMLocalClass::_module*/;
1267 CALL_abstractmetamodel___MMModule___register_global_class(variable
[3])(variable
[3], variable
[0]) /*MMModule::register_global_class*/;
1268 return_label33
: while(false);
1269 tracehead
= trace
.prev
;
1272 val_t
abstractmetamodel___MMLocalClass___has_global_property_by_name(val_t self
, val_t param0
) {
1273 struct trace_t trace
= {NULL
, NULL
, 409, LOCATE_abstractmetamodel___MMLocalClass___has_global_property_by_name
};
1275 struct WBT_
**closurevariable
= NULL
;
1276 trace
.prev
= tracehead
; tracehead
= &trace
;
1277 trace
.file
= LOCATE_abstractmetamodel
;
1278 /* Register variable[0]: Local variable */
1280 /* Register variable[1]: Local variable */
1281 variable
[1] = param0
;
1282 /* Register variable[2]: Method return value and escape marker */
1283 /* Register variable[3]: Result */
1284 variable
[3] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(variable
[0]) /*MMLocalClass::_properties_by_name*/;
1285 /* Register variable[3]: Result */
1286 variable
[3] = CALL_abstract_collection___MapRead___has_key(variable
[3])(variable
[3], variable
[1] /*n*/) /*MapRead::has_key*/;
1287 /* Ensure var variable[3]: Left 'and' operand*/
1288 if (UNTAG_Bool(variable
[3])) { /* and */
1289 /* Register variable[3]: Result */
1290 variable
[3] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(variable
[0]) /*MMLocalClass::_properties_by_name*/;
1291 /* Register variable[3]: Result */
1292 variable
[3] = CALL_abstract_collection___MapRead_____bra(variable
[3])(variable
[3], variable
[1] /*n*/) /*MapRead::[]*/;
1293 /* Register variable[3]: Result */
1294 variable
[3] = CALL_abstract_collection___Collection___length(variable
[3])(variable
[3]) /*AbstractArrayRead::length*/;
1295 /* Register variable[3]: Result */
1296 variable
[3] = TAG_Bool((variable
[3])==( TAG_Int(1)));
1298 /* Register variable[3]: Result */
1299 variable
[2] = variable
[3];
1300 goto return_label34
;
1301 return_label34
: while(false);
1302 tracehead
= trace
.prev
;
1305 val_t
abstractmetamodel___MMLocalClass___get_property_by_name(val_t self
, val_t param0
) {
1306 struct trace_t trace
= {NULL
, NULL
, 416, LOCATE_abstractmetamodel___MMLocalClass___get_property_by_name
};
1308 struct WBT_
**closurevariable
= NULL
;
1309 trace
.prev
= tracehead
; tracehead
= &trace
;
1310 trace
.file
= LOCATE_abstractmetamodel
;
1311 /* Register variable[0]: Local variable */
1313 /* Register variable[1]: Local variable */
1314 variable
[1] = param0
;
1315 /* Register variable[2]: Method return value and escape marker */
1316 /* Register variable[3]: Result */
1317 variable
[3] = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(variable
[0])(variable
[0], variable
[1] /*n*/) /*MMLocalClass::has_global_property_by_name*/;
1318 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[3])))) { /*if*/
1319 fprintf(stderr
, "Aborted"); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___get_property_by_name
, LOCATE_abstractmetamodel
, 420); nit_exit(1);
1321 /* Register variable[3]: Local variable */
1322 /* Register variable[4]: Result */
1323 variable
[4] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(variable
[0]) /*MMLocalClass::_properties_by_name*/;
1324 /* Register variable[4]: Result */
1325 variable
[4] = CALL_abstract_collection___MapRead_____bra(variable
[4])(variable
[4], variable
[1] /*n*/) /*MapRead::[]*/;
1326 variable
[3] = variable
[4];
1327 /* Register variable[4]: Result */
1328 variable
[4] = CALL_abstract_collection___Collection___first( variable
[3] /*props*/)( variable
[3] /*props*/) /*IndexedCollectionRead::first*/;
1329 variable
[2] = variable
[4];
1330 goto return_label35
;
1331 return_label35
: while(false);
1332 tracehead
= trace
.prev
;
1335 val_t
abstractmetamodel___MMLocalClass___attribute(val_t self
, val_t param0
) {
1336 struct trace_t trace
= {NULL
, NULL
, 425, LOCATE_abstractmetamodel___MMLocalClass___attribute
};
1338 struct WBT_
**closurevariable
= NULL
;
1339 trace
.prev
= tracehead
; tracehead
= &trace
;
1340 trace
.file
= LOCATE_abstractmetamodel
;
1341 /* Register variable[0]: Local variable */
1343 /* Register variable[1]: Local variable */
1344 variable
[1] = param0
;
1345 /* Register variable[2]: Method return value and escape marker */
1346 /* Register variable[3]: Result */
1347 variable
[3] = CALL_abstractmetamodel___MMLocalClass___get_property_by_name(variable
[0])(variable
[0], variable
[1] /*a*/) /*MMLocalClass::get_property_by_name*/;
1348 variable
[2] = variable
[3];
1349 goto return_label36
;
1350 return_label36
: while(false);
1351 tracehead
= trace
.prev
;
1354 val_t
abstractmetamodel___MMLocalClass___method(val_t self
, val_t param0
) {
1355 struct trace_t trace
= {NULL
, NULL
, 432, LOCATE_abstractmetamodel___MMLocalClass___method
};
1357 struct WBT_
**closurevariable
= NULL
;
1358 trace
.prev
= tracehead
; tracehead
= &trace
;
1359 trace
.file
= LOCATE_abstractmetamodel
;
1360 /* Register variable[0]: Local variable */
1362 /* Register variable[1]: Local variable */
1363 variable
[1] = param0
;
1364 /* Register variable[2]: Method return value and escape marker */
1365 /* Register variable[3]: Result */
1366 variable
[3] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(variable
[0]) /*MMLocalClass::_properties_by_name*/;
1367 /* Register variable[3]: Result */
1368 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))))));
1369 if (!UNTAG_Bool(variable
[3])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___method
, LOCATE_abstractmetamodel
, 436); nit_exit(1);}
1370 /* Register variable[3]: Result */
1371 variable
[3] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(variable
[0]) /*MMLocalClass::_properties_by_name*/;
1372 /* Register variable[3]: Result */
1373 variable
[3] = CALL_abstract_collection___MapRead_____bra(variable
[3])(variable
[3], variable
[1] /*na*/) /*MapRead::[]*/;
1374 /* Register variable[3]: Result */
1375 variable
[3] = CALL_abstract_collection___Collection___first(variable
[3])(variable
[3]) /*IndexedCollectionRead::first*/;
1376 variable
[2] = variable
[3];
1377 goto return_label37
;
1378 return_label37
: while(false);
1379 tracehead
= trace
.prev
;
1382 val_t
abstractmetamodel___MMLocalClass___select_method(val_t self
, val_t param0
) {
1383 struct trace_t trace
= {NULL
, NULL
, 440, LOCATE_abstractmetamodel___MMLocalClass___select_method
};
1385 struct WBT_
**closurevariable
= NULL
;
1386 trace
.prev
= tracehead
; tracehead
= &trace
;
1387 trace
.file
= LOCATE_abstractmetamodel
;
1388 /* Register variable[0]: Local variable */
1390 /* Register variable[1]: Local variable */
1391 variable
[1] = param0
;
1392 /* Register variable[2]: Method return value and escape marker */
1393 /* Register variable[3]: Result */
1394 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[1] /*name*/ == NIT_NULL
/*null*/) || (( variable
[1] /*name*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[1] /*name*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[1] /*name*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[1] /*name*/)( variable
[1] /*name*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
1395 if (!UNTAG_Bool(variable
[3])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___select_method
, LOCATE_abstractmetamodel
, 444); nit_exit(1);}
1396 /* Register variable[3]: Local variable */
1397 /* Register variable[4]: Result */
1398 variable
[4] = CALL_abstractmetamodel___MMLocalClass___method(variable
[0])(variable
[0], variable
[1] /*name*/) /*MMLocalClass::method*/;
1399 variable
[3] = variable
[4];
1400 /* Register variable[4]: Local variable */
1401 /* Register variable[5]: Result */
1402 variable
[5] = CALL_abstractmetamodel___MMLocalClass_____bra(variable
[0])(variable
[0], variable
[3] /*gp*/) /*MMLocalClass::[]*/;
1403 variable
[4] = variable
[5];
1404 /* Register variable[5]: Result */
1405 variable
[5] = TAG_Bool(( variable
[4] /*res*/==NIT_NULL
) || VAL_ISA( variable
[4] /*res*/, COLOR_MMMethod
, ID_MMMethod
)) /*cast MMMethod*/;
1406 if (!UNTAG_Bool(variable
[5])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___select_method
, LOCATE_abstractmetamodel
, 447); nit_exit(1);}
1407 variable
[2] = variable
[4] /*res*/;
1408 goto return_label38
;
1409 return_label38
: while(false);
1410 tracehead
= trace
.prev
;
1413 val_t
abstractmetamodel___MMLocalClass___select_attribute(val_t self
, val_t param0
) {
1414 struct trace_t trace
= {NULL
, NULL
, 451, LOCATE_abstractmetamodel___MMLocalClass___select_attribute
};
1416 struct WBT_
**closurevariable
= NULL
;
1417 trace
.prev
= tracehead
; tracehead
= &trace
;
1418 trace
.file
= LOCATE_abstractmetamodel
;
1419 /* Register variable[0]: Local variable */
1421 /* Register variable[1]: Local variable */
1422 variable
[1] = param0
;
1423 /* Register variable[2]: Method return value and escape marker */
1424 /* Register variable[3]: Result */
1425 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[1] /*name*/ == NIT_NULL
/*null*/) || (( variable
[1] /*name*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[1] /*name*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[1] /*name*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[1] /*name*/)( variable
[1] /*name*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
1426 if (!UNTAG_Bool(variable
[3])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___select_attribute
, LOCATE_abstractmetamodel
, 455); nit_exit(1);}
1427 /* Register variable[3]: Local variable */
1428 /* Register variable[4]: Result */
1429 variable
[4] = CALL_abstractmetamodel___MMLocalClass___attribute(variable
[0])(variable
[0], variable
[1] /*name*/) /*MMLocalClass::attribute*/;
1430 variable
[3] = variable
[4];
1431 /* Register variable[4]: Local variable */
1432 /* Register variable[5]: Result */
1433 variable
[5] = CALL_abstractmetamodel___MMLocalClass_____bra(variable
[0])(variable
[0], variable
[3] /*gp*/) /*MMLocalClass::[]*/;
1434 variable
[4] = variable
[5];
1435 /* Register variable[5]: Result */
1436 variable
[5] = TAG_Bool(( variable
[4] /*res*/==NIT_NULL
) || VAL_ISA( variable
[4] /*res*/, COLOR_MMAttribute
, ID_MMAttribute
)) /*cast MMAttribute*/;
1437 if (!UNTAG_Bool(variable
[5])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___select_attribute
, LOCATE_abstractmetamodel
, 458); nit_exit(1);}
1438 variable
[2] = variable
[4] /*res*/;
1439 goto return_label39
;
1440 return_label39
: while(false);
1441 tracehead
= trace
.prev
;
1444 val_t
abstractmetamodel___MMLocalClass___super_methods_named(val_t self
, val_t param0
) {
1445 struct trace_t trace
= {NULL
, NULL
, 462, LOCATE_abstractmetamodel___MMLocalClass___super_methods_named
};
1447 struct WBT_
**closurevariable
= NULL
;
1448 trace
.prev
= tracehead
; tracehead
= &trace
;
1449 trace
.file
= LOCATE_abstractmetamodel
;
1450 /* Register variable[0]: Local variable */
1452 /* Register variable[1]: Local variable */
1453 variable
[1] = param0
;
1454 /* Register variable[2]: Method return value and escape marker */
1455 /* Register variable[3]: Local variable */
1456 /* Register variable[4]: Result */
1457 variable
[4] = NEW_Array_array___Array___init() /*new Array[MMLocalClass]*/;
1458 variable
[3] = variable
[4];
1459 /* Register variable[4]: Result */
1460 variable
[4] = CALL_abstractmetamodel___MMLocalClass___cshe(variable
[0])(variable
[0]) /*MMLocalClass::cshe*/;
1461 /* Register variable[4]: Result */
1462 variable
[4] = CALL_partial_order___PartialOrderElement___greaters(variable
[4])(variable
[4]) /*PartialOrderElement::greaters*/;
1463 /* Register variable[4]: For iterator */
1464 variable
[4] = CALL_abstract_collection___Collection___iterator(variable
[4])(variable
[4]) /*Collection::iterator*/;
1465 while (true) { /*for*/
1466 /* Register variable[5]: For 'is_ok' result */
1467 variable
[5] = CALL_abstract_collection___Iterator___is_ok(variable
[4])(variable
[4]) /*Iterator::is_ok*/;
1468 if (!UNTAG_Bool(variable
[5])) break; /*for*/
1469 variable
[5] = CALL_abstract_collection___Iterator___item(variable
[4])(variable
[4]) /*Iterator::item*/ /* Ensure var: For item*/;
1470 /* Register variable[6]: Local variable */
1471 variable
[6] = variable
[5];
1472 /* Register variable[7]: Result */
1473 variable
[7] = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name( variable
[6] /*c*/)( variable
[6] /*c*/, variable
[1] /*n*/) /*MMLocalClass::has_global_property_by_name*/;
1474 if (UNTAG_Bool(variable
[7])) { /*if*/
1475 CALL_abstract_collection___SimpleCollection___add( variable
[3] /*classes*/)( variable
[3] /*classes*/, variable
[6] /*c*/) /*AbstractArray::add*/;
1477 continue_41
: while(0);
1478 CALL_abstract_collection___Iterator___next(variable
[4])(variable
[4]) /*Iterator::next*/;
1481 /* Register variable[4]: Result */
1482 variable
[4] = CALL_abstractmetamodel___MMLocalClass___cshe(variable
[0])(variable
[0]) /*MMLocalClass::cshe*/;
1483 /* Register variable[4]: Result */
1484 variable
[4] = CALL_partial_order___PartialOrderElement___order(variable
[4])(variable
[4]) /*PartialOrderElement::order*/;
1485 /* Register variable[4]: Result */
1486 variable
[4] = CALL_partial_order___PartialOrder___select_smallests(variable
[4])(variable
[4], variable
[3] /*classes*/) /*PartialOrder::select_smallests*/;
1487 variable
[3] = variable
[4] /*classes=*/;
1488 /* Register variable[4]: Local variable */
1489 /* Register variable[5]: Result */
1490 variable
[5] = NEW_Array_array___Array___init() /*new Array[MMLocalProperty]*/;
1491 variable
[4] = variable
[5];
1492 /* Register variable[5]: For iterator */
1493 variable
[5] = CALL_abstract_collection___Collection___iterator( variable
[3] /*classes*/)( variable
[3] /*classes*/) /*AbstractArrayRead::iterator*/;
1494 while (true) { /*for*/
1495 /* Register variable[6]: For 'is_ok' result */
1496 variable
[6] = CALL_abstract_collection___Iterator___is_ok(variable
[5])(variable
[5]) /*ArrayIterator::is_ok*/;
1497 if (!UNTAG_Bool(variable
[6])) break; /*for*/
1498 variable
[6] = CALL_abstract_collection___Iterator___item(variable
[5])(variable
[5]) /*ArrayIterator::item*/ /* Ensure var: For item*/;
1499 /* Register variable[7]: Local variable */
1500 variable
[7] = variable
[6];
1501 /* Register variable[8]: Local variable */
1502 /* Register variable[9]: Result */
1503 variable
[9] = CALL_abstractmetamodel___MMLocalClass___method( variable
[7] /*c*/)( variable
[7] /*c*/, variable
[1] /*n*/) /*MMLocalClass::method*/;
1504 variable
[8] = variable
[9];
1505 /* Register variable[9]: Result */
1506 variable
[9] = CALL_abstractmetamodel___MMLocalClass_____bra( variable
[7] /*c*/)( variable
[7] /*c*/, variable
[8] /*g*/) /*MMLocalClass::[]*/;
1507 CALL_abstract_collection___SimpleCollection___add( variable
[4] /*res*/)( variable
[4] /*res*/, variable
[9]) /*AbstractArray::add*/;
1508 continue_42
: while(0);
1509 CALL_abstract_collection___Iterator___next(variable
[5])(variable
[5]) /*ArrayIterator::next*/;
1512 variable
[2] = variable
[4] /*res*/;
1513 goto return_label40
;
1514 return_label40
: while(false);
1515 tracehead
= trace
.prev
;
1518 void abstractmetamodel___MMLocalClass___register_local_property(val_t self
, val_t param0
) {
1519 struct trace_t trace
= {NULL
, NULL
, 480, LOCATE_abstractmetamodel___MMLocalClass___register_local_property
};
1521 struct WBT_
**closurevariable
= NULL
;
1522 trace
.prev
= tracehead
; tracehead
= &trace
;
1523 trace
.file
= LOCATE_abstractmetamodel
;
1524 /* Register variable[0]: Local variable */
1526 /* Register variable[1]: Local variable */
1527 variable
[1] = param0
;
1528 /* Register variable[2]: Method return value and escape marker */
1529 /* Register variable[3]: Result */
1530 variable
[3] = CALL_abstractmetamodel___MMLocalProperty___global( variable
[1] /*p*/)( variable
[1] /*p*/) /*MMLocalProperty::global*/;
1531 /* Register variable[3]: Result */
1532 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))))));
1533 if (!UNTAG_Bool(variable
[3])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___register_local_property
, LOCATE_abstractmetamodel
, 483); nit_exit(1);}
1534 /* Register variable[3]: Result */
1535 variable
[3] = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(variable
[0]) /*MMLocalClass::_local_property_by_global*/;
1536 /* Register variable[4]: Result */
1537 variable
[4] = CALL_abstractmetamodel___MMLocalProperty___global( variable
[1] /*p*/)( variable
[1] /*p*/) /*MMLocalProperty::global*/;
1538 /* Register variable[3]: Result */
1539 variable
[3] = CALL_abstract_collection___MapRead___has_key(variable
[3])(variable
[3], variable
[4]) /*MapRead::has_key*/;
1540 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[3])))) { /*if*/
1541 /* Register variable[3]: Result */
1542 variable
[3] = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(variable
[0]) /*MMLocalClass::_local_property_by_global*/;
1543 /* Register variable[4]: Result */
1544 variable
[4] = CALL_abstractmetamodel___MMLocalProperty___global( variable
[1] /*p*/)( variable
[1] /*p*/) /*MMLocalProperty::global*/;
1545 CALL_abstract_collection___Map_____braeq(variable
[3])(variable
[3], variable
[4], variable
[1] /*p*/) /*Map::[]=*/;
1547 return_label43
: while(false);
1548 tracehead
= trace
.prev
;
1551 void abstractmetamodel___MMLocalClass___register_global_property(val_t self
, val_t param0
) {
1552 struct trace_t trace
= {NULL
, NULL
, 490, LOCATE_abstractmetamodel___MMLocalClass___register_global_property
};
1554 struct WBT_
**closurevariable
= NULL
;
1555 trace
.prev
= tracehead
; tracehead
= &trace
;
1556 trace
.file
= LOCATE_abstractmetamodel
;
1557 /* Register variable[0]: Local variable */
1559 /* Register variable[1]: Local variable */
1560 variable
[1] = param0
;
1561 /* Register variable[2]: Method return value and escape marker */
1562 /* Register variable[3]: Local variable */
1563 /* Register variable[4]: Result */
1564 variable
[4] = CALL_abstractmetamodel___MMGlobalProperty___intro( variable
[1] /*glob*/)( variable
[1] /*glob*/) /*MMGlobalProperty::intro*/;
1565 variable
[3] = variable
[4];
1566 /* Register variable[4]: Local variable */
1567 /* Register variable[5]: Result */
1568 variable
[5] = CALL_abstractmetamodel___MMLocalProperty___name( variable
[3] /*prop*/)( variable
[3] /*prop*/) /*MMLocalProperty::name*/;
1569 variable
[4] = variable
[5];
1570 /* Register variable[5]: Result */
1571 variable
[5] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(variable
[0]) /*MMLocalClass::_properties_by_name*/;
1572 /* Register variable[5]: Result */
1573 variable
[5] = CALL_abstract_collection___MapRead___has_key(variable
[5])(variable
[5], variable
[4] /*name*/) /*MapRead::has_key*/;
1574 if (UNTAG_Bool(variable
[5])) { /*if*/
1575 /* Register variable[5]: Result */
1576 variable
[5] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(variable
[0]) /*MMLocalClass::_properties_by_name*/;
1577 /* Register variable[5]: Result */
1578 variable
[5] = CALL_abstract_collection___MapRead_____bra(variable
[5])(variable
[5], variable
[4] /*name*/) /*MapRead::[]*/;
1579 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[1] /*glob*/) /*AbstractArray::add*/;
1581 /* Register variable[5]: Result */
1582 variable
[5] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(variable
[0]) /*MMLocalClass::_properties_by_name*/;
1583 variable
[6] = NEW_Array_array___Array___with_capacity(TAG_Int(1)) /*new Array[MMGlobalProperty]*/ /* Ensure var: Literal array*/;
1584 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[1] /*glob*/) /*AbstractArray::add*/;
1585 /* Register variable[6]: Result */
1586 CALL_abstract_collection___Map_____braeq(variable
[5])(variable
[5], variable
[4] /*name*/, variable
[6]) /*Map::[]=*/;
1588 /* Register variable[5]: Result */
1589 variable
[5] = ATTR_abstractmetamodel___MMLocalClass____global_properties(variable
[0]) /*MMLocalClass::_global_properties*/;
1590 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[1] /*glob*/) /*SimpleCollection::add*/;
1591 CALL_abstractmetamodel___MMLocalClass___register_local_property(variable
[0])(variable
[0], variable
[3] /*prop*/) /*MMLocalClass::register_local_property*/;
1592 return_label44
: while(false);
1593 tracehead
= trace
.prev
;
1596 val_t
abstractmetamodel___MMLocalClass___has_global_property(val_t self
, val_t param0
) {
1597 struct trace_t trace
= {NULL
, NULL
, 504, LOCATE_abstractmetamodel___MMLocalClass___has_global_property
};
1599 struct WBT_
**closurevariable
= NULL
;
1600 trace
.prev
= tracehead
; tracehead
= &trace
;
1601 trace
.file
= LOCATE_abstractmetamodel
;
1602 /* Register variable[0]: Local variable */
1604 /* Register variable[1]: Local variable */
1605 variable
[1] = param0
;
1606 /* Register variable[2]: Method return value and escape marker */
1607 /* Register variable[3]: Result */
1608 variable
[3] = ATTR_abstractmetamodel___MMLocalClass____global_properties(variable
[0]) /*MMLocalClass::_global_properties*/;
1609 /* Register variable[3]: Result */
1610 variable
[3] = CALL_abstract_collection___Collection___has(variable
[3])(variable
[3], variable
[1] /*glob*/) /*Collection::has*/;
1611 variable
[2] = variable
[3];
1612 goto return_label45
;
1613 return_label45
: while(false);
1614 tracehead
= trace
.prev
;
1617 val_t
abstractmetamodel___MMLocalClass_____bra(val_t self
, val_t param0
) {
1618 struct trace_t trace
= {NULL
, NULL
, 510, LOCATE_abstractmetamodel___MMLocalClass_____bra
};
1620 struct WBT_
**closurevariable
= NULL
;
1621 trace
.prev
= tracehead
; tracehead
= &trace
;
1622 trace
.file
= LOCATE_abstractmetamodel
;
1623 /* Register variable[0]: Local variable */
1625 /* Register variable[1]: Local variable */
1626 variable
[1] = param0
;
1627 /* Register variable[2]: Method return value and escape marker */
1628 /* Register variable[3]: Result */
1629 variable
[3] = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(variable
[0]) /*MMLocalClass::_local_property_by_global*/;
1630 /* Register variable[3]: Result */
1631 variable
[3] = CALL_abstract_collection___MapRead_____bra(variable
[3])(variable
[3], variable
[1] /*glob*/) /*MapRead::[]*/;
1632 variable
[2] = variable
[3];
1633 goto return_label46
;
1634 return_label46
: while(false);
1635 tracehead
= trace
.prev
;
1638 val_t
abstractmetamodel___MMLocalClass___context(val_t self
) {
1639 struct trace_t trace
= {NULL
, NULL
, 516, LOCATE_abstractmetamodel___MMLocalClass___context
};
1641 struct WBT_
**closurevariable
= NULL
;
1642 trace
.prev
= tracehead
; tracehead
= &trace
;
1643 trace
.file
= LOCATE_abstractmetamodel
;
1644 /* Register variable[0]: Local variable */
1646 /* Register variable[1]: Method return value and escape marker */
1647 /* Register variable[2]: Result */
1648 variable
[2] = CALL_abstractmetamodel___MMLocalClass___module(variable
[0])(variable
[0]) /*MMLocalClass::module*/;
1649 /* Register variable[2]: Result */
1650 variable
[2] = CALL_abstractmetamodel___MMModule___context(variable
[2])(variable
[2]) /*MMModule::context*/;
1651 variable
[1] = variable
[2];
1652 goto return_label47
;
1653 return_label47
: while(false);
1654 tracehead
= trace
.prev
;
1657 val_t
abstractmetamodel___MMGlobalProperty___to_s(val_t self
) {
1658 struct trace_t trace
= {NULL
, NULL
, 552, LOCATE_abstractmetamodel___MMGlobalProperty___to_s
};
1660 struct WBT_
**closurevariable
= NULL
;
1661 trace
.prev
= tracehead
; tracehead
= &trace
;
1662 trace
.file
= LOCATE_abstractmetamodel
;
1663 /* Register variable[0]: Local variable */
1665 /* Register variable[1]: Method return value and escape marker */
1666 /* Register variable[2]: Result */
1667 variable
[2] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable
[0])(variable
[0]) /*MMGlobalProperty::intro*/;
1668 /* Register variable[2]: Result */
1669 variable
[2] = CALL_abstractmetamodel___MMLocalProperty___full_name(variable
[2])(variable
[2]) /*MMLocalProperty::full_name*/;
1670 variable
[1] = variable
[2];
1671 goto return_label48
;
1672 return_label48
: while(false);
1673 tracehead
= trace
.prev
;
1676 val_t
abstractmetamodel___MMGlobalProperty___intro(val_t self
) {
1677 struct trace_t trace
= {NULL
, NULL
, 529, LOCATE_abstractmetamodel___MMGlobalProperty___intro
};
1678 val_t
*variable
= NULL
;
1679 struct WBT_
**closurevariable
= NULL
;
1680 trace
.prev
= tracehead
; tracehead
= &trace
;
1681 trace
.file
= LOCATE_abstractmetamodel
;
1682 tracehead
= trace
.prev
;
1683 return ATTR_abstractmetamodel___MMGlobalProperty____intro( self
) /*MMGlobalProperty::_intro*/;
1685 val_t
abstractmetamodel___MMGlobalProperty___local_class(val_t self
) {
1686 struct trace_t trace
= {NULL
, NULL
, 532, LOCATE_abstractmetamodel___MMGlobalProperty___local_class
};
1688 struct WBT_
**closurevariable
= NULL
;
1689 trace
.prev
= tracehead
; tracehead
= &trace
;
1690 trace
.file
= LOCATE_abstractmetamodel
;
1691 /* Register variable[0]: Local variable */
1693 /* Register variable[1]: Method return value and escape marker */
1694 /* Register variable[2]: Result */
1695 variable
[2] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable
[0])(variable
[0]) /*MMGlobalProperty::intro*/;
1696 /* Register variable[2]: Result */
1697 variable
[2] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable
[2])(variable
[2]) /*MMLocalProperty::local_class*/;
1698 variable
[1] = variable
[2];
1699 goto return_label49
;
1700 return_label49
: while(false);
1701 tracehead
= trace
.prev
;
1704 val_t
abstractmetamodel___MMGlobalProperty___property_hierarchy(val_t self
) {
1705 struct trace_t trace
= {NULL
, NULL
, 538, LOCATE_abstractmetamodel___MMGlobalProperty___property_hierarchy
};
1706 val_t
*variable
= NULL
;
1707 struct WBT_
**closurevariable
= NULL
;
1708 trace
.prev
= tracehead
; tracehead
= &trace
;
1709 trace
.file
= LOCATE_abstractmetamodel
;
1710 tracehead
= trace
.prev
;
1711 return ATTR_abstractmetamodel___MMGlobalProperty____property_hierarchy( self
) /*MMGlobalProperty::_property_hierarchy*/;
1713 void abstractmetamodel___MMGlobalProperty___init(val_t self
, val_t param0
, int* init_table
) {
1714 struct trace_t trace
= {NULL
, NULL
, 541, LOCATE_abstractmetamodel___MMGlobalProperty___init
};
1716 struct WBT_
**closurevariable
= NULL
;
1717 trace
.prev
= tracehead
; tracehead
= &trace
;
1718 trace
.file
= LOCATE_abstractmetamodel
;
1719 /* Register variable[0]: Local variable */
1721 /* Register variable[1]: Local variable */
1722 variable
[1] = param0
;
1723 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMGlobalProperty
].i
]) return;
1724 /* Register variable[2]: Method return value and escape marker */
1725 /* Register variable[3]: Result */
1726 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[1] /*p*/ == NIT_NULL
/*null*/) || (( variable
[1] /*p*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[1] /*p*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[1] /*p*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[1] /*p*/)( variable
[1] /*p*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
1727 if (!UNTAG_Bool(variable
[3])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMGlobalProperty___init
, LOCATE_abstractmetamodel
, 544); nit_exit(1);}
1728 /* Register variable[3]: Result */
1729 variable
[3] = NEW_PartialOrder_partial_order___PartialOrder___init() /*new PartialOrder[MMLocalProperty]*/;
1730 ATTR_abstractmetamodel___MMGlobalProperty____property_hierarchy(variable
[0]) /*MMGlobalProperty::_property_hierarchy*/ = variable
[3];
1731 ATTR_abstractmetamodel___MMGlobalProperty____intro(variable
[0]) /*MMGlobalProperty::_intro*/ = variable
[1] /*p*/;
1732 /* Register variable[3]: Result */
1733 variable
[3] = NEW_Array_array___Array___init() /*new Array[MMLocalProperty]*/;
1734 CALL_abstractmetamodel___MMGlobalProperty___add_local_property(variable
[0])(variable
[0], variable
[1] /*p*/, variable
[3]) /*MMGlobalProperty::add_local_property*/;
1735 return_label50
: while(false);
1736 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMGlobalProperty
].i
] = 1;
1737 tracehead
= trace
.prev
;
1740 void abstractmetamodel___MMGlobalProperty___add_local_property(val_t self
, val_t param0
, val_t param1
) {
1741 struct trace_t trace
= {NULL
, NULL
, 554, LOCATE_abstractmetamodel___MMGlobalProperty___add_local_property
};
1743 struct WBT_
**closurevariable
= NULL
;
1744 trace
.prev
= tracehead
; tracehead
= &trace
;
1745 trace
.file
= LOCATE_abstractmetamodel
;
1746 /* Register variable[0]: Local variable */
1748 /* Register variable[1]: Local variable */
1749 variable
[1] = param0
;
1750 /* Register variable[2]: Local variable */
1751 variable
[2] = param1
;
1752 /* Register variable[3]: Method return value and escape marker */
1753 /* Register variable[4]: Result */
1754 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[1] /*i*/ == NIT_NULL
/*null*/) || (( variable
[1] /*i*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[1] /*i*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[1] /*i*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[1] /*i*/)( variable
[1] /*i*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
1755 if (!UNTAG_Bool(variable
[4])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMGlobalProperty___add_local_property
, LOCATE_abstractmetamodel
, 557); nit_exit(1);}
1756 /* Register variable[4]: Result */
1757 variable
[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[2] /*sup*/ == NIT_NULL
/*null*/) || (( variable
[2] /*sup*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[2] /*sup*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[2] /*sup*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[2] /*sup*/)( variable
[2] /*sup*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
1758 if (!UNTAG_Bool(variable
[4])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMGlobalProperty___add_local_property
, LOCATE_abstractmetamodel
, 558); nit_exit(1);}
1759 /* Register variable[4]: Result */
1760 variable
[4] = ATTR_abstractmetamodel___MMGlobalProperty____property_hierarchy(variable
[0]) /*MMGlobalProperty::_property_hierarchy*/;
1761 /* Register variable[4]: Result */
1762 variable
[4] = CALL_partial_order___PartialOrder___add(variable
[4])(variable
[4], variable
[1] /*i*/, variable
[2] /*sup*/) /*PartialOrder::add*/;
1763 ATTR_abstractmetamodel___MMLocalProperty____prhe( variable
[1] /*i*/) /*MMLocalProperty::_prhe*/ = variable
[4];
1764 return_label51
: while(false);
1765 tracehead
= trace
.prev
;
1768 val_t
abstractmetamodel___MMGlobalProperty___is_attribute(val_t self
) {
1769 struct trace_t trace
= {NULL
, NULL
, 562, LOCATE_abstractmetamodel___MMGlobalProperty___is_attribute
};
1771 struct WBT_
**closurevariable
= NULL
;
1772 trace
.prev
= tracehead
; tracehead
= &trace
;
1773 trace
.file
= LOCATE_abstractmetamodel
;
1774 /* Register variable[0]: Local variable */
1776 /* Register variable[1]: Method return value and escape marker */
1777 /* Register variable[2]: Result */
1778 variable
[2] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable
[0])(variable
[0]) /*MMGlobalProperty::intro*/;
1779 /* Register variable[2]: Result */
1780 variable
[2] = TAG_Bool((variable
[2]==NIT_NULL
) || VAL_ISA(variable
[2], COLOR_MMAttribute
, ID_MMAttribute
)) /*cast MMAttribute*/;
1781 variable
[1] = variable
[2];
1782 goto return_label52
;
1783 return_label52
: while(false);
1784 tracehead
= trace
.prev
;
1787 val_t
abstractmetamodel___MMGlobalProperty___is_method(val_t self
) {
1788 struct trace_t trace
= {NULL
, NULL
, 565, LOCATE_abstractmetamodel___MMGlobalProperty___is_method
};
1790 struct WBT_
**closurevariable
= NULL
;
1791 trace
.prev
= tracehead
; tracehead
= &trace
;
1792 trace
.file
= LOCATE_abstractmetamodel
;
1793 /* Register variable[0]: Local variable */
1795 /* Register variable[1]: Method return value and escape marker */
1796 /* Register variable[2]: Result */
1797 variable
[2] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable
[0])(variable
[0]) /*MMGlobalProperty::intro*/;
1798 /* Register variable[2]: Result */
1799 variable
[2] = TAG_Bool((variable
[2]==NIT_NULL
) || VAL_ISA(variable
[2], COLOR_MMMethod
, ID_MMMethod
)) /*cast MMMethod*/;
1800 variable
[1] = variable
[2];
1801 goto return_label53
;
1802 return_label53
: while(false);
1803 tracehead
= trace
.prev
;
1806 val_t
abstractmetamodel___MMGlobalProperty___is_init(val_t self
) {
1807 struct trace_t trace
= {NULL
, NULL
, 568, LOCATE_abstractmetamodel___MMGlobalProperty___is_init
};
1808 val_t
*variable
= NULL
;
1809 struct WBT_
**closurevariable
= NULL
;
1810 trace
.prev
= tracehead
; tracehead
= &trace
;
1811 trace
.file
= LOCATE_abstractmetamodel
;
1812 tracehead
= trace
.prev
;
1813 return ATTR_abstractmetamodel___MMGlobalProperty____is_init( self
) /*MMGlobalProperty::_is_init*/;
1815 void abstractmetamodel___MMGlobalProperty___is_init__eq(val_t self
, val_t param0
) {
1816 struct trace_t trace
= {NULL
, NULL
, 568, LOCATE_abstractmetamodel___MMGlobalProperty___is_init__eq
};
1817 val_t
*variable
= NULL
;
1818 struct WBT_
**closurevariable
= NULL
;
1819 trace
.prev
= tracehead
; tracehead
= &trace
;
1820 trace
.file
= LOCATE_abstractmetamodel
;
1821 ATTR_abstractmetamodel___MMGlobalProperty____is_init( self
) /*MMGlobalProperty::_is_init*/ = param0
;
1822 tracehead
= trace
.prev
;
1825 val_t
abstractmetamodel___MMGlobalProperty___is_init_for(val_t self
, val_t param0
) {
1826 struct trace_t trace
= {NULL
, NULL
, 571, LOCATE_abstractmetamodel___MMGlobalProperty___is_init_for
};
1828 struct WBT_
**closurevariable
= NULL
;
1829 trace
.prev
= tracehead
; tracehead
= &trace
;
1830 trace
.file
= LOCATE_abstractmetamodel
;
1831 /* Register variable[0]: Local variable */
1833 /* Register variable[1]: Local variable */
1834 variable
[1] = param0
;
1835 /* Register variable[2]: Method return value and escape marker */
1836 /* Register variable[3]: Result */
1837 variable
[3] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable
[0])(variable
[0]) /*MMGlobalProperty::is_init*/;
1838 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[3])))) { /*if*/
1839 variable
[2] = TAG_Bool(false);
1840 goto return_label54
;
1842 /* Register variable[3]: Local variable */
1843 /* Register variable[4]: Result */
1844 variable
[4] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable
[0])(variable
[0]) /*MMGlobalProperty::intro*/;
1845 /* Register variable[4]: Result */
1846 variable
[4] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable
[4])(variable
[4]) /*MMLocalProperty::local_class*/;
1847 variable
[3] = variable
[4];
1848 /* Register variable[4]: Local variable */
1849 /* Register variable[5]: Result */
1850 variable
[5] = CALL_abstractmetamodel___MMLocalClass___che( variable
[1] /*c*/)( variable
[1] /*c*/) /*MMLocalClass::che*/;
1851 /* Register variable[5]: Result */
1852 variable
[5] = CALL_partial_order___PartialOrderElement_____leq(variable
[5])(variable
[5], variable
[3] /*sc*/) /*PartialOrderElement::<=*/;
1853 /* Ensure var variable[5]: Left 'and' operand*/
1854 if (UNTAG_Bool(variable
[5])) { /* and */
1855 /* Register variable[5]: Result */
1856 variable
[5] = CALL_abstractmetamodel___MMLocalClass___global( variable
[1] /*c*/)( variable
[1] /*c*/) /*MMLocalClass::global*/;
1857 /* Register variable[5]: Result */
1858 variable
[5] = CALL_abstractmetamodel___MMGlobalClass___mixin_of(variable
[5])(variable
[5]) /*MMGlobalClass::mixin_of*/;
1859 /* Register variable[6]: Result */
1860 variable
[6] = CALL_abstractmetamodel___MMLocalClass___global( variable
[3] /*sc*/)( variable
[3] /*sc*/) /*MMLocalClass::global*/;
1861 /* Register variable[6]: Result */
1862 variable
[6] = CALL_abstractmetamodel___MMGlobalClass___mixin_of(variable
[6])(variable
[6]) /*MMGlobalClass::mixin_of*/;
1863 /* Register variable[5]: Result */
1864 variable
[5] = TAG_Bool((variable
[5] == variable
[6]) || ((variable
[5] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[5])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5],variable
[6])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[5])(variable
[5], variable
[6]) /*Object::==*/)))));
1866 /* Register variable[5]: Result */
1867 variable
[4] = variable
[5];
1868 variable
[2] = variable
[4] /*res*/;
1869 goto return_label54
;
1870 return_label54
: while(false);
1871 tracehead
= trace
.prev
;
1874 val_t
abstractmetamodel___MMGlobalProperty___visibility_level(val_t self
) {
1875 struct trace_t trace
= {NULL
, NULL
, 580, LOCATE_abstractmetamodel___MMGlobalProperty___visibility_level
};
1876 val_t
*variable
= NULL
;
1877 struct WBT_
**closurevariable
= NULL
;
1878 trace
.prev
= tracehead
; tracehead
= &trace
;
1879 trace
.file
= LOCATE_abstractmetamodel
;
1880 tracehead
= trace
.prev
;
1881 return ATTR_abstractmetamodel___MMGlobalProperty____visibility_level( self
) /*MMGlobalProperty::_visibility_level*/;
1883 void abstractmetamodel___MMGlobalProperty___visibility_level__eq(val_t self
, val_t param0
) {
1884 struct trace_t trace
= {NULL
, NULL
, 580, LOCATE_abstractmetamodel___MMGlobalProperty___visibility_level__eq
};
1885 val_t
*variable
= NULL
;
1886 struct WBT_
**closurevariable
= NULL
;
1887 trace
.prev
= tracehead
; tracehead
= &trace
;
1888 trace
.file
= LOCATE_abstractmetamodel
;
1889 ATTR_abstractmetamodel___MMGlobalProperty____visibility_level( self
) /*MMGlobalProperty::_visibility_level*/ = param0
;
1890 tracehead
= trace
.prev
;
1893 val_t
abstractmetamodel___MMLocalProperty___to_s(val_t self
) {
1894 struct trace_t trace
= {NULL
, NULL
, 632, LOCATE_abstractmetamodel___MMLocalProperty___to_s
};
1896 struct WBT_
**closurevariable
= NULL
;
1897 trace
.prev
= tracehead
; tracehead
= &trace
;
1898 trace
.file
= LOCATE_abstractmetamodel
;
1899 /* Register variable[0]: Local variable */
1901 /* Register variable[1]: Method return value and escape marker */
1902 /* Register variable[2]: Result */
1903 variable
[2] = CALL_abstractmetamodel___MMLocalProperty___name(variable
[0])(variable
[0]) /*MMLocalProperty::name*/;
1904 /* Register variable[2]: Result */
1905 variable
[2] = CALL_string___Object___to_s(variable
[2])(variable
[2]) /*Symbol::to_s*/;
1906 variable
[1] = variable
[2];
1907 goto return_label55
;
1908 return_label55
: while(false);
1909 tracehead
= trace
.prev
;
1912 val_t
abstractmetamodel___MMLocalProperty___name(val_t self
) {
1913 struct trace_t trace
= {NULL
, NULL
, 589, LOCATE_abstractmetamodel___MMLocalProperty___name
};
1914 val_t
*variable
= NULL
;
1915 struct WBT_
**closurevariable
= NULL
;
1916 trace
.prev
= tracehead
; tracehead
= &trace
;
1917 trace
.file
= LOCATE_abstractmetamodel
;
1918 tracehead
= trace
.prev
;
1919 return ATTR_abstractmetamodel___MMLocalProperty____name( self
) /*MMLocalProperty::_name*/;
1921 val_t
abstractmetamodel___MMLocalProperty___local_class(val_t self
) {
1922 struct trace_t trace
= {NULL
, NULL
, 592, LOCATE_abstractmetamodel___MMLocalProperty___local_class
};
1923 val_t
*variable
= NULL
;
1924 struct WBT_
**closurevariable
= NULL
;
1925 trace
.prev
= tracehead
; tracehead
= &trace
;
1926 trace
.file
= LOCATE_abstractmetamodel
;
1927 tracehead
= trace
.prev
;
1928 return ATTR_abstractmetamodel___MMLocalProperty____local_class( self
) /*MMLocalProperty::_local_class*/;
1930 val_t
abstractmetamodel___MMLocalProperty___global(val_t self
) {
1931 struct trace_t trace
= {NULL
, NULL
, 595, LOCATE_abstractmetamodel___MMLocalProperty___global
};
1932 val_t
*variable
= NULL
;
1933 struct WBT_
**closurevariable
= NULL
;
1934 trace
.prev
= tracehead
; tracehead
= &trace
;
1935 trace
.file
= LOCATE_abstractmetamodel
;
1936 tracehead
= trace
.prev
;
1937 return ATTR_abstractmetamodel___MMLocalProperty____global( self
) /*MMLocalProperty::_global*/;
1939 val_t
abstractmetamodel___MMLocalProperty___prhe(val_t self
) {
1940 struct trace_t trace
= {NULL
, NULL
, 598, LOCATE_abstractmetamodel___MMLocalProperty___prhe
};
1941 val_t
*variable
= NULL
;
1942 struct WBT_
**closurevariable
= NULL
;
1943 trace
.prev
= tracehead
; tracehead
= &trace
;
1944 trace
.file
= LOCATE_abstractmetamodel
;
1945 tracehead
= trace
.prev
;
1946 return ATTR_abstractmetamodel___MMLocalProperty____prhe( self
) /*MMLocalProperty::_prhe*/;
1948 val_t
abstractmetamodel___MMLocalProperty___module(val_t self
) {
1949 struct trace_t trace
= {NULL
, NULL
, 601, LOCATE_abstractmetamodel___MMLocalProperty___module
};
1951 struct WBT_
**closurevariable
= NULL
;
1952 trace
.prev
= tracehead
; tracehead
= &trace
;
1953 trace
.file
= LOCATE_abstractmetamodel
;
1954 /* Register variable[0]: Local variable */
1956 /* Register variable[1]: Method return value and escape marker */
1957 /* Register variable[2]: Result */
1958 variable
[2] = ATTR_abstractmetamodel___MMLocalProperty____local_class(variable
[0]) /*MMLocalProperty::_local_class*/;
1959 /* Register variable[2]: Result */
1960 variable
[2] = CALL_abstractmetamodel___MMLocalClass___module(variable
[2])(variable
[2]) /*MMLocalClass::module*/;
1961 variable
[1] = variable
[2];
1962 goto return_label56
;
1963 return_label56
: while(false);
1964 tracehead
= trace
.prev
;
1967 val_t
abstractmetamodel___MMLocalProperty___full_name(val_t self
) {
1968 struct trace_t trace
= {NULL
, NULL
, 604, LOCATE_abstractmetamodel___MMLocalProperty___full_name
};
1969 static val_t once_value_58
= NIT_NULL
; /* Once value for string variable[3]*/
1970 static val_t once_value_59
= NIT_NULL
; /* Once value for string variable[3]*/
1971 static val_t once_value_60
= NIT_NULL
; /* Once value for string variable[3]*/
1972 static val_t once_value_61
= NIT_NULL
; /* Once value for string variable[3]*/
1973 static val_t once_value_62
= NIT_NULL
; /* Once value for string variable[3]*/
1974 static val_t once_value_63
= NIT_NULL
; /* Once value for string variable[3]*/
1975 static val_t once_value_64
= NIT_NULL
; /* Once value for string variable[3]*/
1976 static val_t once_value_65
= NIT_NULL
; /* Once value for string variable[3]*/
1977 static val_t once_value_66
= NIT_NULL
; /* Once value for string variable[3]*/
1978 static val_t once_value_67
= NIT_NULL
; /* Once value for string variable[3]*/
1979 static val_t once_value_68
= NIT_NULL
; /* Once value for string variable[3]*/
1980 static val_t once_value_69
= NIT_NULL
; /* Once value for string variable[3]*/
1982 struct WBT_
**closurevariable
= NULL
;
1983 trace
.prev
= tracehead
; tracehead
= &trace
;
1984 trace
.file
= LOCATE_abstractmetamodel
;
1985 /* Register variable[0]: Local variable */
1987 /* Register variable[1]: Method return value and escape marker */
1988 /* Register variable[2]: Result */
1989 variable
[2] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[0])(variable
[0]) /*MMLocalProperty::global*/;
1990 /* Register variable[2]: Result */
1991 variable
[2] = TAG_Bool((variable
[2] == NIT_NULL
/*null*/) || ((variable
[2] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[2])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[2], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[2])(variable
[2], NIT_NULL
/*null*/) /*Object::==*/)))));
1992 if (UNTAG_Bool(variable
[2])) { /*if*/
1993 variable
[2] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
1994 /* Register variable[3]: Once String constant */
1995 if (once_value_58
!= NIT_NULL
) variable
[3] = once_value_58
;
1997 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
1998 once_value_58
= variable
[3];
2000 /* Register variable[3]: Result */
2001 /* Ensure var variable[3]: super-string element*/
2002 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], variable
[3]) /*AbstractArray::add*/;
2003 /* Register variable[3]: Result */
2004 variable
[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable
[0])(variable
[0]) /*MMLocalProperty::local_class*/;
2005 /* Register variable[3]: Result */
2006 variable
[3] = CALL_abstractmetamodel___MMLocalClass___module(variable
[3])(variable
[3]) /*MMLocalClass::module*/;
2007 /* Ensure var variable[3]: super-string element*/
2008 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], CALL_string___Object___to_s(variable
[3])(variable
[3]) /*Object::to_s*/) /*AbstractArray::add*/;
2009 /* Register variable[3]: Once String constant */
2010 if (once_value_59
!= NIT_NULL
) variable
[3] = once_value_59
;
2012 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/;
2013 once_value_59
= variable
[3];
2015 /* Register variable[3]: Result */
2016 /* Ensure var variable[3]: super-string element*/
2017 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], variable
[3]) /*AbstractArray::add*/;
2018 /* Register variable[3]: Result */
2019 variable
[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable
[0])(variable
[0]) /*MMLocalProperty::local_class*/;
2020 /* Ensure var variable[3]: super-string element*/
2021 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], CALL_string___Object___to_s(variable
[3])(variable
[3]) /*Object::to_s*/) /*AbstractArray::add*/;
2022 /* Register variable[3]: Once String constant */
2023 if (once_value_60
!= NIT_NULL
) variable
[3] = once_value_60
;
2025 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString("::(?::"), TAG_Int(6)) /*new String*/;
2026 once_value_60
= variable
[3];
2028 /* Register variable[3]: Result */
2029 /* Ensure var variable[3]: super-string element*/
2030 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], variable
[3]) /*AbstractArray::add*/;
2031 /* Register variable[3]: Result */
2032 variable
[3] = CALL_abstractmetamodel___MMLocalProperty___name(variable
[0])(variable
[0]) /*MMLocalProperty::name*/;
2033 /* Ensure var variable[3]: super-string element*/
2034 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], CALL_string___Object___to_s(variable
[3])(variable
[3]) /*Object::to_s*/) /*AbstractArray::add*/;
2035 /* Register variable[3]: Once String constant */
2036 if (once_value_61
!= NIT_NULL
) variable
[3] = once_value_61
;
2038 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)) /*new String*/;
2039 once_value_61
= variable
[3];
2041 /* Register variable[3]: Result */
2042 /* Ensure var variable[3]: super-string element*/
2043 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], variable
[3]) /*AbstractArray::add*/;
2044 /* Register variable[2]: Result */
2045 variable
[2] = CALL_string___Object___to_s(variable
[2])(variable
[2]) /*Object::to_s*/;
2046 variable
[1] = variable
[2];
2047 goto return_label57
;
2049 /* Register variable[2]: Result */
2050 variable
[2] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[0])(variable
[0]) /*MMLocalProperty::global*/;
2051 /* Register variable[2]: Result */
2052 variable
[2] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable
[2])(variable
[2]) /*MMGlobalProperty::intro*/;
2053 /* Register variable[2]: Result */
2054 variable
[2] = TAG_Bool((variable
[2] == variable
[0]) || ((variable
[2] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[2])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[2],variable
[0])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[2])(variable
[2], variable
[0]) /*Object::==*/)))));
2055 if (UNTAG_Bool(variable
[2])) { /*if*/
2056 variable
[2] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
2057 /* Register variable[3]: Once String constant */
2058 if (once_value_62
!= NIT_NULL
) variable
[3] = once_value_62
;
2060 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
2061 once_value_62
= variable
[3];
2063 /* Register variable[3]: Result */
2064 /* Ensure var variable[3]: super-string element*/
2065 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], variable
[3]) /*AbstractArray::add*/;
2066 /* Register variable[3]: Result */
2067 variable
[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable
[0])(variable
[0]) /*MMLocalProperty::local_class*/;
2068 /* Register variable[3]: Result */
2069 variable
[3] = CALL_abstractmetamodel___MMLocalClass___module(variable
[3])(variable
[3]) /*MMLocalClass::module*/;
2070 /* Ensure var variable[3]: super-string element*/
2071 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], CALL_string___Object___to_s(variable
[3])(variable
[3]) /*Object::to_s*/) /*AbstractArray::add*/;
2072 /* Register variable[3]: Once String constant */
2073 if (once_value_63
!= NIT_NULL
) variable
[3] = once_value_63
;
2075 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/;
2076 once_value_63
= variable
[3];
2078 /* Register variable[3]: Result */
2079 /* Ensure var variable[3]: super-string element*/
2080 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], variable
[3]) /*AbstractArray::add*/;
2081 /* Register variable[3]: Result */
2082 variable
[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable
[0])(variable
[0]) /*MMLocalProperty::local_class*/;
2083 /* Ensure var variable[3]: super-string element*/
2084 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], CALL_string___Object___to_s(variable
[3])(variable
[3]) /*Object::to_s*/) /*AbstractArray::add*/;
2085 /* Register variable[3]: Once String constant */
2086 if (once_value_64
!= NIT_NULL
) variable
[3] = once_value_64
;
2088 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/;
2089 once_value_64
= variable
[3];
2091 /* Register variable[3]: Result */
2092 /* Ensure var variable[3]: super-string element*/
2093 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], variable
[3]) /*AbstractArray::add*/;
2094 /* Register variable[3]: Result */
2095 variable
[3] = CALL_abstractmetamodel___MMLocalProperty___name(variable
[0])(variable
[0]) /*MMLocalProperty::name*/;
2096 /* Ensure var variable[3]: super-string element*/
2097 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], CALL_string___Object___to_s(variable
[3])(variable
[3]) /*Object::to_s*/) /*AbstractArray::add*/;
2098 /* Register variable[3]: Once String constant */
2099 if (once_value_65
!= NIT_NULL
) variable
[3] = once_value_65
;
2101 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
2102 once_value_65
= variable
[3];
2104 /* Register variable[3]: Result */
2105 /* Ensure var variable[3]: super-string element*/
2106 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], variable
[3]) /*AbstractArray::add*/;
2107 /* Register variable[2]: Result */
2108 variable
[2] = CALL_string___Object___to_s(variable
[2])(variable
[2]) /*Object::to_s*/;
2109 variable
[1] = variable
[2];
2110 goto return_label57
;
2112 variable
[2] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
2113 /* Register variable[3]: Once String constant */
2114 if (once_value_66
!= NIT_NULL
) variable
[3] = once_value_66
;
2116 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
2117 once_value_66
= variable
[3];
2119 /* Register variable[3]: Result */
2120 /* Ensure var variable[3]: super-string element*/
2121 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], variable
[3]) /*AbstractArray::add*/;
2122 /* Register variable[3]: Result */
2123 variable
[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable
[0])(variable
[0]) /*MMLocalProperty::local_class*/;
2124 /* Register variable[3]: Result */
2125 variable
[3] = CALL_abstractmetamodel___MMLocalClass___module(variable
[3])(variable
[3]) /*MMLocalClass::module*/;
2126 /* Ensure var variable[3]: super-string element*/
2127 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], CALL_string___Object___to_s(variable
[3])(variable
[3]) /*Object::to_s*/) /*AbstractArray::add*/;
2128 /* Register variable[3]: Once String constant */
2129 if (once_value_67
!= NIT_NULL
) variable
[3] = once_value_67
;
2131 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)) /*new String*/;
2132 once_value_67
= variable
[3];
2134 /* Register variable[3]: Result */
2135 /* Ensure var variable[3]: super-string element*/
2136 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], variable
[3]) /*AbstractArray::add*/;
2137 /* Register variable[3]: Result */
2138 variable
[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable
[0])(variable
[0]) /*MMLocalProperty::local_class*/;
2139 /* Ensure var variable[3]: super-string element*/
2140 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], CALL_string___Object___to_s(variable
[3])(variable
[3]) /*Object::to_s*/) /*AbstractArray::add*/;
2141 /* Register variable[3]: Once String constant */
2142 if (once_value_68
!= NIT_NULL
) variable
[3] = once_value_68
;
2144 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString("::("), TAG_Int(3)) /*new String*/;
2145 once_value_68
= variable
[3];
2147 /* Register variable[3]: Result */
2148 /* Ensure var variable[3]: super-string element*/
2149 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], variable
[3]) /*AbstractArray::add*/;
2150 /* Register variable[3]: Result */
2151 variable
[3] = CALL_abstractmetamodel___MMLocalProperty___global(variable
[0])(variable
[0]) /*MMLocalProperty::global*/;
2152 /* Register variable[3]: Result */
2153 variable
[3] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable
[3])(variable
[3]) /*MMGlobalProperty::intro*/;
2154 /* Register variable[3]: Result */
2155 variable
[3] = CALL_abstractmetamodel___MMLocalProperty___full_name(variable
[3])(variable
[3]) /*MMLocalProperty::full_name*/;
2156 /* Ensure var variable[3]: super-string element*/
2157 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], variable
[3]) /*AbstractArray::add*/;
2158 /* Register variable[3]: Once String constant */
2159 if (once_value_69
!= NIT_NULL
) variable
[3] = once_value_69
;
2161 variable
[3] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)) /*new String*/;
2162 once_value_69
= variable
[3];
2164 /* Register variable[3]: Result */
2165 /* Ensure var variable[3]: super-string element*/
2166 CALL_abstract_collection___SimpleCollection___add(variable
[2])(variable
[2], variable
[3]) /*AbstractArray::add*/;
2167 /* Register variable[2]: Result */
2168 variable
[2] = CALL_string___Object___to_s(variable
[2])(variable
[2]) /*Object::to_s*/;
2169 variable
[1] = variable
[2];
2170 goto return_label57
;
2173 return_label57
: while(false);
2174 tracehead
= trace
.prev
;
2177 void abstractmetamodel___MMLocalProperty___set_global(val_t self
, val_t param0
) {
2178 struct trace_t trace
= {NULL
, NULL
, 616, LOCATE_abstractmetamodel___MMLocalProperty___set_global
};
2180 struct WBT_
**closurevariable
= NULL
;
2181 trace
.prev
= tracehead
; tracehead
= &trace
;
2182 trace
.file
= LOCATE_abstractmetamodel
;
2183 /* Register variable[0]: Local variable */
2185 /* Register variable[1]: Local variable */
2186 variable
[1] = param0
;
2187 /* Register variable[2]: Method return value and escape marker */
2188 /* Register variable[3]: Result */
2189 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[1] /*g*/ == NIT_NULL
/*null*/) || (( variable
[1] /*g*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[1] /*g*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[1] /*g*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[1] /*g*/)( variable
[1] /*g*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
2190 if (!UNTAG_Bool(variable
[3])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalProperty___set_global
, LOCATE_abstractmetamodel
, 619); nit_exit(1);}
2191 ATTR_abstractmetamodel___MMLocalProperty____global(variable
[0]) /*MMLocalProperty::_global*/ = variable
[1] /*g*/;
2192 /* Register variable[3]: Result */
2193 variable
[3] = ATTR_abstractmetamodel___MMLocalProperty____local_class(variable
[0]) /*MMLocalProperty::_local_class*/;
2194 CALL_abstractmetamodel___MMLocalClass___register_local_property(variable
[3])(variable
[3], variable
[0]) /*MMLocalClass::register_local_property*/;
2195 return_label70
: while(false);
2196 tracehead
= trace
.prev
;
2199 void abstractmetamodel___MMLocalProperty___new_global(val_t self
) {
2200 struct trace_t trace
= {NULL
, NULL
, 624, LOCATE_abstractmetamodel___MMLocalProperty___new_global
};
2202 struct WBT_
**closurevariable
= NULL
;
2203 trace
.prev
= tracehead
; tracehead
= &trace
;
2204 trace
.file
= LOCATE_abstractmetamodel
;
2205 /* Register variable[0]: Local variable */
2207 /* Register variable[1]: Method return value and escape marker */
2208 /* Register variable[2]: Result */
2209 variable
[2] = ATTR_abstractmetamodel___MMLocalProperty____global(variable
[0]) /*MMLocalProperty::_global*/;
2210 /* Register variable[2]: Result */
2211 variable
[2] = TAG_Bool((variable
[2] == NIT_NULL
/*null*/) || ((variable
[2] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[2])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[2], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[2])(variable
[2], NIT_NULL
/*null*/) /*Object::==*/)))));
2212 if (!UNTAG_Bool(variable
[2])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalProperty___new_global
, LOCATE_abstractmetamodel
, 627); nit_exit(1);}
2213 /* Register variable[2]: Result */
2214 variable
[2] = NEW_MMGlobalProperty_abstractmetamodel___MMGlobalProperty___init(variable
[0]) /*new MMGlobalProperty*/;
2215 ATTR_abstractmetamodel___MMLocalProperty____global(variable
[0]) /*MMLocalProperty::_global*/ = variable
[2];
2216 /* Register variable[2]: Result */
2217 variable
[2] = ATTR_abstractmetamodel___MMLocalProperty____local_class(variable
[0]) /*MMLocalProperty::_local_class*/;
2218 /* Register variable[3]: Result */
2219 variable
[3] = ATTR_abstractmetamodel___MMLocalProperty____global(variable
[0]) /*MMLocalProperty::_global*/;
2220 CALL_abstractmetamodel___MMLocalClass___register_global_property(variable
[2])(variable
[2], variable
[3]) /*MMLocalClass::register_global_property*/;
2221 return_label71
: while(false);
2222 tracehead
= trace
.prev
;
2225 val_t
abstractmetamodel___MMLocalProperty___need_super(val_t self
) {
2226 struct trace_t trace
= {NULL
, NULL
, 634, LOCATE_abstractmetamodel___MMLocalProperty___need_super
};
2227 val_t
*variable
= NULL
;
2228 struct WBT_
**closurevariable
= NULL
;
2229 trace
.prev
= tracehead
; tracehead
= &trace
;
2230 trace
.file
= LOCATE_abstractmetamodel
;
2231 tracehead
= trace
.prev
;
2232 return ATTR_abstractmetamodel___MMLocalProperty____need_super( self
) /*MMLocalProperty::_need_super*/;
2234 void abstractmetamodel___MMLocalProperty___need_super__eq(val_t self
, val_t param0
) {
2235 struct trace_t trace
= {NULL
, NULL
, 634, LOCATE_abstractmetamodel___MMLocalProperty___need_super__eq
};
2236 val_t
*variable
= NULL
;
2237 struct WBT_
**closurevariable
= NULL
;
2238 trace
.prev
= tracehead
; tracehead
= &trace
;
2239 trace
.file
= LOCATE_abstractmetamodel
;
2240 ATTR_abstractmetamodel___MMLocalProperty____need_super( self
) /*MMLocalProperty::_need_super*/ = param0
;
2241 tracehead
= trace
.prev
;
2244 void abstractmetamodel___MMLocalProperty___init(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
2245 struct trace_t trace
= {NULL
, NULL
, 637, LOCATE_abstractmetamodel___MMLocalProperty___init
};
2247 struct WBT_
**closurevariable
= NULL
;
2248 trace
.prev
= tracehead
; tracehead
= &trace
;
2249 trace
.file
= LOCATE_abstractmetamodel
;
2250 /* Register variable[0]: Local variable */
2252 /* Register variable[1]: Local variable */
2253 variable
[1] = param0
;
2254 /* Register variable[2]: Local variable */
2255 variable
[2] = param1
;
2256 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMLocalProperty
].i
]) return;
2257 /* Register variable[3]: Method return value and escape marker */
2258 ATTR_abstractmetamodel___MMLocalProperty____name(variable
[0]) /*MMLocalProperty::_name*/ = variable
[1] /*n*/;
2259 ATTR_abstractmetamodel___MMLocalProperty____local_class(variable
[0]) /*MMLocalProperty::_local_class*/ = variable
[2] /*bc*/;
2260 return_label72
: while(false);
2261 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_MMLocalProperty
].i
] = 1;
2262 tracehead
= trace
.prev
;