update NOTICE and LICENSE
[nit.git] / c_src / abstractmetamodel._sep.c
1 /* This C file is generated by NIT to compile module abstractmetamodel. */
2 #include "abstractmetamodel._sep.h"
3 void abstractmetamodel___MMContext___init(val_t p0, int* init_table){
4 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMContext].i;
5 struct {struct stack_frame_t me;} fra;
6 val_t tmp;
7 if (init_table[itpos0]) return;
8 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9 fra.me.file = LOCATE_abstractmetamodel;
10 fra.me.line = 27;
11 fra.me.meth = LOCATE_abstractmetamodel___MMContext___init;
12 fra.me.has_broke = 0;
13 fra.me.REG_size = 1;
14 fra.me.REG[0] = NIT_NULL;
15 fra.me.REG[0] = p0;
16 stack_frame_head = fra.me.prev;
17 init_table[itpos0] = 1;
18 return;
19 }
20 val_t abstractmetamodel___MMContext___module_hierarchy(val_t p0){
21 struct {struct stack_frame_t me;} fra;
22 val_t REGB0;
23 val_t tmp;
24 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25 fra.me.file = LOCATE_abstractmetamodel;
26 fra.me.line = 29;
27 fra.me.meth = LOCATE_abstractmetamodel___MMContext___module_hierarchy;
28 fra.me.has_broke = 0;
29 fra.me.REG_size = 1;
30 fra.me.REG[0] = NIT_NULL;
31 fra.me.REG[0] = p0;
32 /* ./metamodel//abstractmetamodel.nit:29 */
33 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0])!=NIT_NULL);
34 if (UNTAG_Bool(REGB0)) {
35 } else {
36 nit_abort("Uninitialized attribute %s", "_module_hierarchy", LOCATE_abstractmetamodel, 29);
37 }
38 fra.me.REG[0] = ATTR_abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0]);
39 stack_frame_head = fra.me.prev;
40 return fra.me.REG[0];
41 }
42 val_t abstractmetamodel___MMContext___class_hierarchy(val_t p0){
43 struct {struct stack_frame_t me;} fra;
44 val_t REGB0;
45 val_t tmp;
46 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
47 fra.me.file = LOCATE_abstractmetamodel;
48 fra.me.line = 32;
49 fra.me.meth = LOCATE_abstractmetamodel___MMContext___class_hierarchy;
50 fra.me.has_broke = 0;
51 fra.me.REG_size = 1;
52 fra.me.REG[0] = NIT_NULL;
53 fra.me.REG[0] = p0;
54 /* ./metamodel//abstractmetamodel.nit:32 */
55 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMContext____class_hierarchy(fra.me.REG[0])!=NIT_NULL);
56 if (UNTAG_Bool(REGB0)) {
57 } else {
58 nit_abort("Uninitialized attribute %s", "_class_hierarchy", LOCATE_abstractmetamodel, 32);
59 }
60 fra.me.REG[0] = ATTR_abstractmetamodel___MMContext____class_hierarchy(fra.me.REG[0]);
61 stack_frame_head = fra.me.prev;
62 return fra.me.REG[0];
63 }
64 val_t abstractmetamodel___MMContext___modules(val_t p0){
65 struct {struct stack_frame_t me;} fra;
66 val_t REGB0;
67 val_t tmp;
68 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
69 fra.me.file = LOCATE_abstractmetamodel;
70 fra.me.line = 39;
71 fra.me.meth = LOCATE_abstractmetamodel___MMContext___modules;
72 fra.me.has_broke = 0;
73 fra.me.REG_size = 1;
74 fra.me.REG[0] = NIT_NULL;
75 fra.me.REG[0] = p0;
76 /* ./metamodel//abstractmetamodel.nit:39 */
77 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMContext____modules(fra.me.REG[0])!=NIT_NULL);
78 if (UNTAG_Bool(REGB0)) {
79 } else {
80 nit_abort("Uninitialized attribute %s", "_modules", LOCATE_abstractmetamodel, 39);
81 }
82 fra.me.REG[0] = ATTR_abstractmetamodel___MMContext____modules(fra.me.REG[0]);
83 stack_frame_head = fra.me.prev;
84 return fra.me.REG[0];
85 }
86 void abstractmetamodel___MMContext___add_module(val_t p0, val_t p1, val_t p2){
87 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
88 val_t REGB0;
89 val_t tmp;
90 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
91 fra.me.file = LOCATE_abstractmetamodel;
92 fra.me.line = 42;
93 fra.me.meth = LOCATE_abstractmetamodel___MMContext___add_module;
94 fra.me.has_broke = 0;
95 fra.me.REG_size = 5;
96 fra.me.REG[0] = NIT_NULL;
97 fra.me.REG[1] = NIT_NULL;
98 fra.me.REG[2] = NIT_NULL;
99 fra.me.REG[3] = NIT_NULL;
100 fra.me.REG[4] = NIT_NULL;
101 fra.me.REG[0] = p0;
102 fra.me.REG[1] = p1;
103 fra.me.REG[2] = p2;
104 /* ./metamodel//abstractmetamodel.nit:45 */
105 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0])!=NIT_NULL);
106 if (UNTAG_Bool(REGB0)) {
107 } else {
108 nit_abort("Uninitialized attribute %s", "_module_hierarchy", LOCATE_abstractmetamodel, 45);
109 }
110 fra.me.REG[3] = ATTR_abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0]);
111 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0])!=NIT_NULL);
112 if (UNTAG_Bool(REGB0)) {
113 } else {
114 nit_abort("Uninitialized attribute %s", "_module_hierarchy", LOCATE_abstractmetamodel, 45);
115 }
116 fra.me.REG[4] = ATTR_abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0]);
117 fra.me.REG[2] = CALL_partial_order___PartialOrder___select_smallests(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
118 CALL_partial_order___PartialOrder___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[2]);
119 /* ./metamodel//abstractmetamodel.nit:46 */
120 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMContext____modules(fra.me.REG[0])!=NIT_NULL);
121 if (UNTAG_Bool(REGB0)) {
122 } else {
123 nit_abort("Uninitialized attribute %s", "_modules", LOCATE_abstractmetamodel, 46);
124 }
125 fra.me.REG[2] = ATTR_abstractmetamodel___MMContext____modules(fra.me.REG[0]);
126 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
127 /* ./metamodel//abstractmetamodel.nit:47 */
128 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0])!=NIT_NULL);
129 if (UNTAG_Bool(REGB0)) {
130 } else {
131 nit_abort("Uninitialized attribute %s", "_module_hierarchy", LOCATE_abstractmetamodel, 47);
132 }
133 fra.me.REG[0] = ATTR_abstractmetamodel___MMContext____module_hierarchy(fra.me.REG[0]);
134 fra.me.REG[0] = CALL_partial_order___PartialOrder_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
135 ATTR_abstractmetamodel___MMModule____mhe(fra.me.REG[1]) = fra.me.REG[0];
136 stack_frame_head = fra.me.prev;
137 return;
138 }
139 void abstractmetamodel___MMContext___add_global_class(val_t p0, val_t p1){
140 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
141 val_t REGB0;
142 val_t tmp;
143 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
144 fra.me.file = LOCATE_abstractmetamodel;
145 fra.me.line = 50;
146 fra.me.meth = LOCATE_abstractmetamodel___MMContext___add_global_class;
147 fra.me.has_broke = 0;
148 fra.me.REG_size = 2;
149 fra.me.REG[0] = NIT_NULL;
150 fra.me.REG[1] = NIT_NULL;
151 fra.me.REG[0] = p0;
152 fra.me.REG[1] = p1;
153 /* ./metamodel//abstractmetamodel.nit:51 */
154 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMContext____global_classes(fra.me.REG[0])!=NIT_NULL);
155 if (UNTAG_Bool(REGB0)) {
156 } else {
157 nit_abort("Uninitialized attribute %s", "_global_classes", LOCATE_abstractmetamodel, 51);
158 }
159 fra.me.REG[0] = ATTR_abstractmetamodel___MMContext____global_classes(fra.me.REG[0]);
160 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
161 stack_frame_head = fra.me.prev;
162 return;
163 }
164 void abstractmetamodel___MMContext___add_local_class(val_t p0, val_t p1, val_t p2){
165 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
166 val_t REGB0;
167 val_t REGB1;
168 val_t REGB2;
169 val_t tmp;
170 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
171 fra.me.file = LOCATE_abstractmetamodel;
172 fra.me.line = 53;
173 fra.me.meth = LOCATE_abstractmetamodel___MMContext___add_local_class;
174 fra.me.has_broke = 0;
175 fra.me.REG_size = 8;
176 fra.me.REG[0] = NIT_NULL;
177 fra.me.REG[1] = NIT_NULL;
178 fra.me.REG[2] = NIT_NULL;
179 fra.me.REG[3] = NIT_NULL;
180 fra.me.REG[4] = NIT_NULL;
181 fra.me.REG[5] = NIT_NULL;
182 fra.me.REG[6] = NIT_NULL;
183 fra.me.REG[7] = NIT_NULL;
184 fra.me.REG[0] = p0;
185 fra.me.REG[1] = p1;
186 fra.me.REG[2] = p2;
187 /* ./metamodel//abstractmetamodel.nit:56 */
188 fra.me.REG[3] = NEW_Array_array___Array___init();
189 /* ./../lib/standard//collection//array.nit:234 */
190 REGB0 = TAG_Int(0);
191 /* ./../lib/standard//collection//array.nit:235 */
192 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
193 if (UNTAG_Bool(REGB1)) {
194 } else {
195 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
196 }
197 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
198 /* ./../lib/standard//collection//array.nit:236 */
199 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[2]);
200 /* ./../lib/standard//collection//array.nit:237 */
201 while(1) {
202 /* ./../lib/standard//collection//array.nit:23 */
203 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
204 if (UNTAG_Bool(REGB1)) {
205 } else {
206 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
207 }
208 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
209 /* ./../lib/standard//kernel.nit:212 */
210 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
211 /* ./../lib/standard//collection//array.nit:237 */
212 if (UNTAG_Bool(REGB1)) {
213 /* ./../lib/standard//collection//array.nit:238 */
214 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
215 if (UNTAG_Bool(REGB1)) {
216 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
217 }
218 /* ./../lib/standard//collection//array.nit:654 */
219 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
220 /* ./metamodel//abstractmetamodel.nit:58 */
221 REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[5], COLOR_MMConcreteClass, ID_MMConcreteClass)) /*cast MMConcreteClass*/;
222 if (UNTAG_Bool(REGB1)) {
223 /* ./metamodel//abstractmetamodel.nit:59 */
224 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
225 } else {
226 /* ./metamodel//abstractmetamodel.nit:61 */
227 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___che(fra.me.REG[5])(fra.me.REG[5]);
228 fra.me.REG[5] = CALL_partial_order___PartialOrderElement___direct_greaters(fra.me.REG[5])(fra.me.REG[5]);
229 /* ./../lib/standard//collection//array.nit:234 */
230 REGB1 = TAG_Int(0);
231 /* ./../lib/standard//collection//array.nit:235 */
232 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
233 if (UNTAG_Bool(REGB2)) {
234 } else {
235 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
236 }
237 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]);
238 /* ./../lib/standard//collection//array.nit:236 */
239 fra.me.REG[6] = ATTR_array___Array____items(fra.me.REG[5]);
240 /* ./../lib/standard//collection//array.nit:237 */
241 while(1) {
242 /* ./../lib/standard//collection//array.nit:23 */
243 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
244 if (UNTAG_Bool(REGB2)) {
245 } else {
246 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
247 }
248 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]);
249 /* ./../lib/standard//kernel.nit:212 */
250 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
251 /* ./../lib/standard//collection//array.nit:237 */
252 if (UNTAG_Bool(REGB2)) {
253 /* ./../lib/standard//collection//array.nit:238 */
254 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
255 if (UNTAG_Bool(REGB2)) {
256 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
257 }
258 /* ./../lib/standard//collection//array.nit:654 */
259 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB1)];
260 /* ./metamodel//abstractmetamodel.nit:62 */
261 REGB2 = CALL_abstract_collection___Collection___has(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
262 if (UNTAG_Bool(REGB2)) {
263 goto label1;
264 }
265 /* ./metamodel//abstractmetamodel.nit:63 */
266 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
267 label1: while(0);
268 /* ./../lib/standard//collection//array.nit:239 */
269 REGB2 = TAG_Int(1);
270 /* ./../lib/standard//kernel.nit:215 */
271 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
272 /* ./../lib/standard//collection//array.nit:239 */
273 REGB1 = REGB2;
274 } else {
275 /* ./../lib/standard//collection//array.nit:237 */
276 goto label2;
277 }
278 }
279 label2: while(0);
280 }
281 /* ./../lib/standard//collection//array.nit:239 */
282 REGB1 = TAG_Int(1);
283 /* ./../lib/standard//kernel.nit:215 */
284 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
285 /* ./../lib/standard//collection//array.nit:239 */
286 REGB0 = REGB1;
287 } else {
288 /* ./../lib/standard//collection//array.nit:237 */
289 goto label3;
290 }
291 }
292 label3: while(0);
293 /* ./metamodel//abstractmetamodel.nit:67 */
294 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMContext____class_hierarchy(fra.me.REG[0])!=NIT_NULL);
295 if (UNTAG_Bool(REGB0)) {
296 } else {
297 nit_abort("Uninitialized attribute %s", "_class_hierarchy", LOCATE_abstractmetamodel, 67);
298 }
299 fra.me.REG[0] = ATTR_abstractmetamodel___MMContext____class_hierarchy(fra.me.REG[0]);
300 fra.me.REG[3] = CALL_partial_order___PartialOrder___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
301 /* ./metamodel//abstractmetamodel.nit:68 */
302 ATTR_abstractmetamodel___MMLocalClass____che(fra.me.REG[1]) = fra.me.REG[3];
303 stack_frame_head = fra.me.prev;
304 return;
305 }
306 val_t abstractmetamodel___MMDirectory___name(val_t p0){
307 struct {struct stack_frame_t me;} fra;
308 val_t REGB0;
309 val_t tmp;
310 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
311 fra.me.file = LOCATE_abstractmetamodel;
312 fra.me.line = 74;
313 fra.me.meth = LOCATE_abstractmetamodel___MMDirectory___name;
314 fra.me.has_broke = 0;
315 fra.me.REG_size = 1;
316 fra.me.REG[0] = NIT_NULL;
317 fra.me.REG[0] = p0;
318 /* ./metamodel//abstractmetamodel.nit:74 */
319 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMDirectory____name(fra.me.REG[0])!=NIT_NULL);
320 if (UNTAG_Bool(REGB0)) {
321 } else {
322 nit_abort("Uninitialized attribute %s", "_name", LOCATE_abstractmetamodel, 74);
323 }
324 fra.me.REG[0] = ATTR_abstractmetamodel___MMDirectory____name(fra.me.REG[0]);
325 stack_frame_head = fra.me.prev;
326 return fra.me.REG[0];
327 }
328 val_t abstractmetamodel___MMDirectory___path(val_t p0){
329 struct {struct stack_frame_t me;} fra;
330 val_t REGB0;
331 val_t tmp;
332 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
333 fra.me.file = LOCATE_abstractmetamodel;
334 fra.me.line = 77;
335 fra.me.meth = LOCATE_abstractmetamodel___MMDirectory___path;
336 fra.me.has_broke = 0;
337 fra.me.REG_size = 1;
338 fra.me.REG[0] = NIT_NULL;
339 fra.me.REG[0] = p0;
340 /* ./metamodel//abstractmetamodel.nit:77 */
341 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMDirectory____path(fra.me.REG[0])!=NIT_NULL);
342 if (UNTAG_Bool(REGB0)) {
343 } else {
344 nit_abort("Uninitialized attribute %s", "_path", LOCATE_abstractmetamodel, 77);
345 }
346 fra.me.REG[0] = ATTR_abstractmetamodel___MMDirectory____path(fra.me.REG[0]);
347 stack_frame_head = fra.me.prev;
348 return fra.me.REG[0];
349 }
350 val_t abstractmetamodel___MMDirectory___parent(val_t p0){
351 struct {struct stack_frame_t me;} fra;
352 val_t tmp;
353 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
354 fra.me.file = LOCATE_abstractmetamodel;
355 fra.me.line = 80;
356 fra.me.meth = LOCATE_abstractmetamodel___MMDirectory___parent;
357 fra.me.has_broke = 0;
358 fra.me.REG_size = 1;
359 fra.me.REG[0] = NIT_NULL;
360 fra.me.REG[0] = p0;
361 /* ./metamodel//abstractmetamodel.nit:80 */
362 fra.me.REG[0] = ATTR_abstractmetamodel___MMDirectory____parent(fra.me.REG[0]);
363 stack_frame_head = fra.me.prev;
364 return fra.me.REG[0];
365 }
366 val_t abstractmetamodel___MMDirectory___owner(val_t p0){
367 struct {struct stack_frame_t me;} fra;
368 val_t tmp;
369 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
370 fra.me.file = LOCATE_abstractmetamodel;
371 fra.me.line = 84;
372 fra.me.meth = LOCATE_abstractmetamodel___MMDirectory___owner;
373 fra.me.has_broke = 0;
374 fra.me.REG_size = 1;
375 fra.me.REG[0] = NIT_NULL;
376 fra.me.REG[0] = p0;
377 /* ./metamodel//abstractmetamodel.nit:84 */
378 fra.me.REG[0] = ATTR_abstractmetamodel___MMDirectory____owner(fra.me.REG[0]);
379 stack_frame_head = fra.me.prev;
380 return fra.me.REG[0];
381 }
382 void abstractmetamodel___MMDirectory___owner__eq(val_t p0, val_t p1){
383 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
384 val_t tmp;
385 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
386 fra.me.file = LOCATE_abstractmetamodel;
387 fra.me.line = 84;
388 fra.me.meth = LOCATE_abstractmetamodel___MMDirectory___owner__eq;
389 fra.me.has_broke = 0;
390 fra.me.REG_size = 2;
391 fra.me.REG[0] = NIT_NULL;
392 fra.me.REG[1] = NIT_NULL;
393 fra.me.REG[0] = p0;
394 fra.me.REG[1] = p1;
395 /* ./metamodel//abstractmetamodel.nit:84 */
396 ATTR_abstractmetamodel___MMDirectory____owner(fra.me.REG[0]) = fra.me.REG[1];
397 stack_frame_head = fra.me.prev;
398 return;
399 }
400 val_t abstractmetamodel___MMDirectory___modules(val_t p0){
401 struct {struct stack_frame_t me;} fra;
402 val_t REGB0;
403 val_t tmp;
404 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
405 fra.me.file = LOCATE_abstractmetamodel;
406 fra.me.line = 87;
407 fra.me.meth = LOCATE_abstractmetamodel___MMDirectory___modules;
408 fra.me.has_broke = 0;
409 fra.me.REG_size = 1;
410 fra.me.REG[0] = NIT_NULL;
411 fra.me.REG[0] = p0;
412 /* ./metamodel//abstractmetamodel.nit:87 */
413 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMDirectory____modules(fra.me.REG[0])!=NIT_NULL);
414 if (UNTAG_Bool(REGB0)) {
415 } else {
416 nit_abort("Uninitialized attribute %s", "_modules", LOCATE_abstractmetamodel, 87);
417 }
418 fra.me.REG[0] = ATTR_abstractmetamodel___MMDirectory____modules(fra.me.REG[0]);
419 stack_frame_head = fra.me.prev;
420 return fra.me.REG[0];
421 }
422 void abstractmetamodel___MMDirectory___add_module(val_t p0, val_t p1){
423 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
424 val_t REGB0;
425 val_t tmp;
426 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
427 fra.me.file = LOCATE_abstractmetamodel;
428 fra.me.line = 90;
429 fra.me.meth = LOCATE_abstractmetamodel___MMDirectory___add_module;
430 fra.me.has_broke = 0;
431 fra.me.REG_size = 4;
432 fra.me.REG[0] = NIT_NULL;
433 fra.me.REG[1] = NIT_NULL;
434 fra.me.REG[2] = NIT_NULL;
435 fra.me.REG[3] = NIT_NULL;
436 fra.me.REG[0] = p0;
437 fra.me.REG[1] = p1;
438 /* ./metamodel//abstractmetamodel.nit:93 */
439 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMDirectory____modules(fra.me.REG[0])!=NIT_NULL);
440 if (UNTAG_Bool(REGB0)) {
441 } else {
442 nit_abort("Uninitialized attribute %s", "_modules", LOCATE_abstractmetamodel, 93);
443 }
444 fra.me.REG[2] = ATTR_abstractmetamodel___MMDirectory____modules(fra.me.REG[0]);
445 fra.me.REG[3] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[1])(fra.me.REG[1]);
446 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
447 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
448 if (UNTAG_Bool(REGB0)) {
449 } else {
450 nit_abort("Assert failed", NULL, LOCATE_abstractmetamodel, 93);
451 }
452 /* ./metamodel//abstractmetamodel.nit:94 */
453 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMDirectory____modules(fra.me.REG[0])!=NIT_NULL);
454 if (UNTAG_Bool(REGB0)) {
455 } else {
456 nit_abort("Uninitialized attribute %s", "_modules", LOCATE_abstractmetamodel, 94);
457 }
458 fra.me.REG[0] = ATTR_abstractmetamodel___MMDirectory____modules(fra.me.REG[0]);
459 fra.me.REG[3] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[1])(fra.me.REG[1]);
460 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[1]);
461 stack_frame_head = fra.me.prev;
462 return;
463 }
464 void abstractmetamodel___MMDirectory___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
465 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMDirectory].i;
466 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
467 val_t tmp;
468 if (init_table[itpos1]) return;
469 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
470 fra.me.file = LOCATE_abstractmetamodel;
471 fra.me.line = 97;
472 fra.me.meth = LOCATE_abstractmetamodel___MMDirectory___init;
473 fra.me.has_broke = 0;
474 fra.me.REG_size = 4;
475 fra.me.REG[0] = NIT_NULL;
476 fra.me.REG[1] = NIT_NULL;
477 fra.me.REG[2] = NIT_NULL;
478 fra.me.REG[3] = NIT_NULL;
479 fra.me.REG[0] = p0;
480 fra.me.REG[1] = p1;
481 fra.me.REG[2] = p2;
482 fra.me.REG[3] = p3;
483 /* ./metamodel//abstractmetamodel.nit:98 */
484 ATTR_abstractmetamodel___MMDirectory____name(fra.me.REG[0]) = fra.me.REG[1];
485 /* ./metamodel//abstractmetamodel.nit:99 */
486 ATTR_abstractmetamodel___MMDirectory____path(fra.me.REG[0]) = fra.me.REG[2];
487 /* ./metamodel//abstractmetamodel.nit:100 */
488 ATTR_abstractmetamodel___MMDirectory____parent(fra.me.REG[0]) = fra.me.REG[3];
489 stack_frame_head = fra.me.prev;
490 init_table[itpos1] = 1;
491 return;
492 }
493 val_t abstractmetamodel___MMDirectory___full_name_for(val_t p0, val_t p1){
494 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
495 val_t REGB0;
496 val_t tmp;
497 static val_t once_value_1; /* Once value */
498 static val_t once_value_2; /* Once value */
499 static val_t once_value_3; /* Once value */
500 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
501 fra.me.file = LOCATE_abstractmetamodel;
502 fra.me.line = 103;
503 fra.me.meth = LOCATE_abstractmetamodel___MMDirectory___full_name_for;
504 fra.me.has_broke = 0;
505 fra.me.REG_size = 4;
506 fra.me.REG[0] = NIT_NULL;
507 fra.me.REG[1] = NIT_NULL;
508 fra.me.REG[2] = NIT_NULL;
509 fra.me.REG[3] = NIT_NULL;
510 fra.me.REG[0] = p0;
511 fra.me.REG[1] = p1;
512 /* ./metamodel//abstractmetamodel.nit:105 */
513 REGB0 = TAG_Int(5);
514 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
515 if (!once_value_1) {
516 fra.me.REG[3] = BOX_NativeString("");
517 REGB0 = TAG_Int(0);
518 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
519 once_value_1 = fra.me.REG[3];
520 register_static_object(&once_value_1);
521 } else fra.me.REG[3] = once_value_1;
522 fra.me.REG[3] = fra.me.REG[3];
523 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
524 fra.me.REG[0] = CALL_abstractmetamodel___MMDirectory___name(fra.me.REG[0])(fra.me.REG[0]);
525 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
526 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
527 if (!once_value_2) {
528 fra.me.REG[0] = BOX_NativeString("/");
529 REGB0 = TAG_Int(1);
530 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
531 once_value_2 = fra.me.REG[0];
532 register_static_object(&once_value_2);
533 } else fra.me.REG[0] = once_value_2;
534 fra.me.REG[0] = fra.me.REG[0];
535 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
536 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
537 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
538 if (!once_value_3) {
539 fra.me.REG[1] = BOX_NativeString("");
540 REGB0 = TAG_Int(0);
541 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
542 once_value_3 = fra.me.REG[1];
543 register_static_object(&once_value_3);
544 } else fra.me.REG[1] = once_value_3;
545 fra.me.REG[1] = fra.me.REG[1];
546 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
547 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
548 fra.me.REG[2] = CALL_symbol___String___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
549 goto label4;
550 label4: while(0);
551 stack_frame_head = fra.me.prev;
552 return fra.me.REG[2];
553 }
554 val_t abstractmetamodel___MMModule___context(val_t p0){
555 struct {struct stack_frame_t me;} fra;
556 val_t REGB0;
557 val_t tmp;
558 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
559 fra.me.file = LOCATE_abstractmetamodel;
560 fra.me.line = 111;
561 fra.me.meth = LOCATE_abstractmetamodel___MMModule___context;
562 fra.me.has_broke = 0;
563 fra.me.REG_size = 1;
564 fra.me.REG[0] = NIT_NULL;
565 fra.me.REG[0] = p0;
566 /* ./metamodel//abstractmetamodel.nit:111 */
567 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____context(fra.me.REG[0])!=NIT_NULL);
568 if (UNTAG_Bool(REGB0)) {
569 } else {
570 nit_abort("Uninitialized attribute %s", "_context", LOCATE_abstractmetamodel, 111);
571 }
572 fra.me.REG[0] = ATTR_abstractmetamodel___MMModule____context(fra.me.REG[0]);
573 stack_frame_head = fra.me.prev;
574 return fra.me.REG[0];
575 }
576 val_t abstractmetamodel___MMModule___name(val_t p0){
577 struct {struct stack_frame_t me;} fra;
578 val_t REGB0;
579 val_t tmp;
580 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
581 fra.me.file = LOCATE_abstractmetamodel;
582 fra.me.line = 114;
583 fra.me.meth = LOCATE_abstractmetamodel___MMModule___name;
584 fra.me.has_broke = 0;
585 fra.me.REG_size = 1;
586 fra.me.REG[0] = NIT_NULL;
587 fra.me.REG[0] = p0;
588 /* ./metamodel//abstractmetamodel.nit:114 */
589 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____name(fra.me.REG[0])!=NIT_NULL);
590 if (UNTAG_Bool(REGB0)) {
591 } else {
592 nit_abort("Uninitialized attribute %s", "_name", LOCATE_abstractmetamodel, 114);
593 }
594 fra.me.REG[0] = ATTR_abstractmetamodel___MMModule____name(fra.me.REG[0]);
595 stack_frame_head = fra.me.prev;
596 return fra.me.REG[0];
597 }
598 val_t abstractmetamodel___MMModule___full_name(val_t p0){
599 struct {struct stack_frame_t me;} fra;
600 val_t REGB0;
601 val_t tmp;
602 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
603 fra.me.file = LOCATE_abstractmetamodel;
604 fra.me.line = 117;
605 fra.me.meth = LOCATE_abstractmetamodel___MMModule___full_name;
606 fra.me.has_broke = 0;
607 fra.me.REG_size = 1;
608 fra.me.REG[0] = NIT_NULL;
609 fra.me.REG[0] = p0;
610 /* ./metamodel//abstractmetamodel.nit:117 */
611 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____full_name(fra.me.REG[0])!=NIT_NULL);
612 if (UNTAG_Bool(REGB0)) {
613 } else {
614 nit_abort("Uninitialized attribute %s", "_full_name", LOCATE_abstractmetamodel, 117);
615 }
616 fra.me.REG[0] = ATTR_abstractmetamodel___MMModule____full_name(fra.me.REG[0]);
617 stack_frame_head = fra.me.prev;
618 return fra.me.REG[0];
619 }
620 val_t abstractmetamodel___MMModule___directory(val_t p0){
621 struct {struct stack_frame_t me;} fra;
622 val_t REGB0;
623 val_t tmp;
624 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
625 fra.me.file = LOCATE_abstractmetamodel;
626 fra.me.line = 120;
627 fra.me.meth = LOCATE_abstractmetamodel___MMModule___directory;
628 fra.me.has_broke = 0;
629 fra.me.REG_size = 1;
630 fra.me.REG[0] = NIT_NULL;
631 fra.me.REG[0] = p0;
632 /* ./metamodel//abstractmetamodel.nit:120 */
633 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____directory(fra.me.REG[0])!=NIT_NULL);
634 if (UNTAG_Bool(REGB0)) {
635 } else {
636 nit_abort("Uninitialized attribute %s", "_directory", LOCATE_abstractmetamodel, 120);
637 }
638 fra.me.REG[0] = ATTR_abstractmetamodel___MMModule____directory(fra.me.REG[0]);
639 stack_frame_head = fra.me.prev;
640 return fra.me.REG[0];
641 }
642 val_t abstractmetamodel___MMModule___location(val_t p0){
643 struct {struct stack_frame_t me;} fra;
644 val_t REGB0;
645 val_t tmp;
646 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
647 fra.me.file = LOCATE_abstractmetamodel;
648 fra.me.line = 123;
649 fra.me.meth = LOCATE_abstractmetamodel___MMModule___location;
650 fra.me.has_broke = 0;
651 fra.me.REG_size = 1;
652 fra.me.REG[0] = NIT_NULL;
653 fra.me.REG[0] = p0;
654 /* ./metamodel//abstractmetamodel.nit:123 */
655 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____location(fra.me.REG[0])!=NIT_NULL);
656 if (UNTAG_Bool(REGB0)) {
657 } else {
658 nit_abort("Uninitialized attribute %s", "_location", LOCATE_abstractmetamodel, 123);
659 }
660 fra.me.REG[0] = ATTR_abstractmetamodel___MMModule____location(fra.me.REG[0]);
661 stack_frame_head = fra.me.prev;
662 return fra.me.REG[0];
663 }
664 val_t abstractmetamodel___MMModule___mhe(val_t p0){
665 struct {struct stack_frame_t me;} fra;
666 val_t tmp;
667 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
668 fra.me.file = LOCATE_abstractmetamodel;
669 fra.me.line = 126;
670 fra.me.meth = LOCATE_abstractmetamodel___MMModule___mhe;
671 fra.me.has_broke = 0;
672 fra.me.REG_size = 1;
673 fra.me.REG[0] = NIT_NULL;
674 fra.me.REG[0] = p0;
675 /* ./metamodel//abstractmetamodel.nit:126 */
676 fra.me.REG[0] = ATTR_abstractmetamodel___MMModule____mhe(fra.me.REG[0]);
677 stack_frame_head = fra.me.prev;
678 return fra.me.REG[0];
679 }
680 val_t abstractmetamodel___MMModule___global_classes(val_t p0){
681 struct {struct stack_frame_t me;} fra;
682 val_t REGB0;
683 val_t tmp;
684 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
685 fra.me.file = LOCATE_abstractmetamodel;
686 fra.me.line = 129;
687 fra.me.meth = LOCATE_abstractmetamodel___MMModule___global_classes;
688 fra.me.has_broke = 0;
689 fra.me.REG_size = 1;
690 fra.me.REG[0] = NIT_NULL;
691 fra.me.REG[0] = p0;
692 /* ./metamodel//abstractmetamodel.nit:129 */
693 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____global_classes(fra.me.REG[0])!=NIT_NULL);
694 if (UNTAG_Bool(REGB0)) {
695 } else {
696 nit_abort("Uninitialized attribute %s", "_global_classes", LOCATE_abstractmetamodel, 129);
697 }
698 fra.me.REG[0] = ATTR_abstractmetamodel___MMModule____global_classes(fra.me.REG[0]);
699 stack_frame_head = fra.me.prev;
700 return fra.me.REG[0];
701 }
702 val_t abstractmetamodel___MMModule___local_classes(val_t p0){
703 struct {struct stack_frame_t me;} fra;
704 val_t REGB0;
705 val_t tmp;
706 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
707 fra.me.file = LOCATE_abstractmetamodel;
708 fra.me.line = 132;
709 fra.me.meth = LOCATE_abstractmetamodel___MMModule___local_classes;
710 fra.me.has_broke = 0;
711 fra.me.REG_size = 1;
712 fra.me.REG[0] = NIT_NULL;
713 fra.me.REG[0] = p0;
714 /* ./metamodel//abstractmetamodel.nit:132 */
715 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____local_classes(fra.me.REG[0])!=NIT_NULL);
716 if (UNTAG_Bool(REGB0)) {
717 } else {
718 nit_abort("Uninitialized attribute %s", "_local_classes", LOCATE_abstractmetamodel, 132);
719 }
720 fra.me.REG[0] = ATTR_abstractmetamodel___MMModule____local_classes(fra.me.REG[0]);
721 stack_frame_head = fra.me.prev;
722 return fra.me.REG[0];
723 }
724 val_t abstractmetamodel___MMModule___class_specialization_hierarchy(val_t p0){
725 struct {struct stack_frame_t me;} fra;
726 val_t REGB0;
727 val_t tmp;
728 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
729 fra.me.file = LOCATE_abstractmetamodel;
730 fra.me.line = 135;
731 fra.me.meth = LOCATE_abstractmetamodel___MMModule___class_specialization_hierarchy;
732 fra.me.has_broke = 0;
733 fra.me.REG_size = 1;
734 fra.me.REG[0] = NIT_NULL;
735 fra.me.REG[0] = p0;
736 /* ./metamodel//abstractmetamodel.nit:135 */
737 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy(fra.me.REG[0])!=NIT_NULL);
738 if (UNTAG_Bool(REGB0)) {
739 } else {
740 nit_abort("Uninitialized attribute %s", "_class_specialization_hierarchy", LOCATE_abstractmetamodel, 135);
741 }
742 fra.me.REG[0] = ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy(fra.me.REG[0]);
743 stack_frame_head = fra.me.prev;
744 return fra.me.REG[0];
745 }
746 val_t abstractmetamodel___MMModule___explicit_imported_modules(val_t p0){
747 struct {struct stack_frame_t me;} fra;
748 val_t REGB0;
749 val_t tmp;
750 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
751 fra.me.file = LOCATE_abstractmetamodel;
752 fra.me.line = 147;
753 fra.me.meth = LOCATE_abstractmetamodel___MMModule___explicit_imported_modules;
754 fra.me.has_broke = 0;
755 fra.me.REG_size = 1;
756 fra.me.REG[0] = NIT_NULL;
757 fra.me.REG[0] = p0;
758 /* ./metamodel//abstractmetamodel.nit:147 */
759 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____explicit_imported_modules(fra.me.REG[0])!=NIT_NULL);
760 if (UNTAG_Bool(REGB0)) {
761 } else {
762 nit_abort("Uninitialized attribute %s", "_explicit_imported_modules", LOCATE_abstractmetamodel, 147);
763 }
764 fra.me.REG[0] = ATTR_abstractmetamodel___MMModule____explicit_imported_modules(fra.me.REG[0]);
765 stack_frame_head = fra.me.prev;
766 return fra.me.REG[0];
767 }
768 void abstractmetamodel___MMModule___init(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
769 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMModule].i;
770 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
771 val_t tmp;
772 if (init_table[itpos2]) return;
773 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
774 fra.me.file = LOCATE_abstractmetamodel;
775 fra.me.line = 156;
776 fra.me.meth = LOCATE_abstractmetamodel___MMModule___init;
777 fra.me.has_broke = 0;
778 fra.me.REG_size = 5;
779 fra.me.REG[0] = NIT_NULL;
780 fra.me.REG[1] = NIT_NULL;
781 fra.me.REG[2] = NIT_NULL;
782 fra.me.REG[3] = NIT_NULL;
783 fra.me.REG[4] = NIT_NULL;
784 fra.me.REG[0] = p0;
785 fra.me.REG[1] = p1;
786 fra.me.REG[2] = p2;
787 fra.me.REG[3] = p3;
788 fra.me.REG[4] = p4;
789 /* ./metamodel//abstractmetamodel.nit:158 */
790 ATTR_abstractmetamodel___MMModule____name(fra.me.REG[0]) = fra.me.REG[1];
791 /* ./metamodel//abstractmetamodel.nit:159 */
792 ATTR_abstractmetamodel___MMModule____directory(fra.me.REG[0]) = fra.me.REG[2];
793 /* ./metamodel//abstractmetamodel.nit:160 */
794 ATTR_abstractmetamodel___MMModule____context(fra.me.REG[0]) = fra.me.REG[3];
795 /* ./metamodel//abstractmetamodel.nit:161 */
796 fra.me.REG[1] = CALL_abstractmetamodel___MMDirectory___full_name_for(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
797 ATTR_abstractmetamodel___MMModule____full_name(fra.me.REG[0]) = fra.me.REG[1];
798 /* ./metamodel//abstractmetamodel.nit:162 */
799 ATTR_abstractmetamodel___MMModule____location(fra.me.REG[0]) = fra.me.REG[4];
800 stack_frame_head = fra.me.prev;
801 init_table[itpos2] = 1;
802 return;
803 }
804 void abstractmetamodel___MMModule___add_super_module(val_t p0, val_t p1, val_t p2){
805 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
806 val_t REGB0;
807 val_t REGB1;
808 val_t REGB2;
809 val_t tmp;
810 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
811 fra.me.file = LOCATE_abstractmetamodel;
812 fra.me.line = 165;
813 fra.me.meth = LOCATE_abstractmetamodel___MMModule___add_super_module;
814 fra.me.has_broke = 0;
815 fra.me.REG_size = 4;
816 fra.me.REG[0] = NIT_NULL;
817 fra.me.REG[1] = NIT_NULL;
818 fra.me.REG[2] = NIT_NULL;
819 fra.me.REG[3] = NIT_NULL;
820 fra.me.REG[0] = p0;
821 fra.me.REG[1] = p1;
822 REGB0 = p2;
823 /* ./metamodel//abstractmetamodel.nit:171 */
824 REGB1 = TAG_Bool(ATTR_abstractmetamodel___MMModule____explicit_imported_modules(fra.me.REG[0])!=NIT_NULL);
825 if (UNTAG_Bool(REGB1)) {
826 } else {
827 nit_abort("Uninitialized attribute %s", "_explicit_imported_modules", LOCATE_abstractmetamodel, 171);
828 }
829 fra.me.REG[2] = ATTR_abstractmetamodel___MMModule____explicit_imported_modules(fra.me.REG[0]);
830 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
831 /* ./metamodel//abstractmetamodel.nit:172 */
832 REGB1 = TAG_Int(0);
833 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
834 if (UNTAG_Bool(REGB2)) {
835 } else {
836 /* ./../lib/standard//kernel.nit:207 */
837 REGB1 = TAG_Bool((REGB0)==(REGB1));
838 /* ./metamodel//abstractmetamodel.nit:172 */
839 REGB2 = REGB1;
840 }
841 if (UNTAG_Bool(REGB2)) {
842 /* ./metamodel//abstractmetamodel.nit:173 */
843 REGB2 = TAG_Bool(ATTR_abstractmetamodel___MMModule____intrude_modules(fra.me.REG[0])!=NIT_NULL);
844 if (UNTAG_Bool(REGB2)) {
845 } else {
846 nit_abort("Uninitialized attribute %s", "_intrude_modules", LOCATE_abstractmetamodel, 173);
847 }
848 fra.me.REG[2] = ATTR_abstractmetamodel___MMModule____intrude_modules(fra.me.REG[0]);
849 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
850 /* ./metamodel//abstractmetamodel.nit:174 */
851 REGB2 = TAG_Bool(ATTR_abstractmetamodel___MMModule____intrude_modules(fra.me.REG[0])!=NIT_NULL);
852 if (UNTAG_Bool(REGB2)) {
853 } else {
854 nit_abort("Uninitialized attribute %s", "_intrude_modules", LOCATE_abstractmetamodel, 174);
855 }
856 fra.me.REG[2] = ATTR_abstractmetamodel___MMModule____intrude_modules(fra.me.REG[0]);
857 REGB2 = TAG_Bool(ATTR_abstractmetamodel___MMModule____intrude_modules(fra.me.REG[1])!=NIT_NULL);
858 if (UNTAG_Bool(REGB2)) {
859 } else {
860 nit_abort("Uninitialized attribute %s", "_intrude_modules", LOCATE_abstractmetamodel, 174);
861 }
862 fra.me.REG[3] = ATTR_abstractmetamodel___MMModule____intrude_modules(fra.me.REG[1]);
863 CALL_abstract_collection___SimpleCollection___add_all(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
864 /* ./metamodel//abstractmetamodel.nit:175 */
865 REGB2 = TAG_Bool(ATTR_abstractmetamodel___MMModule____public_modules(fra.me.REG[0])!=NIT_NULL);
866 if (UNTAG_Bool(REGB2)) {
867 } else {
868 nit_abort("Uninitialized attribute %s", "_public_modules", LOCATE_abstractmetamodel, 175);
869 }
870 fra.me.REG[3] = ATTR_abstractmetamodel___MMModule____public_modules(fra.me.REG[0]);
871 REGB2 = TAG_Bool(ATTR_abstractmetamodel___MMModule____public_modules(fra.me.REG[1])!=NIT_NULL);
872 if (UNTAG_Bool(REGB2)) {
873 } else {
874 nit_abort("Uninitialized attribute %s", "_public_modules", LOCATE_abstractmetamodel, 175);
875 }
876 fra.me.REG[2] = ATTR_abstractmetamodel___MMModule____public_modules(fra.me.REG[1]);
877 CALL_abstract_collection___SimpleCollection___add_all(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
878 /* ./metamodel//abstractmetamodel.nit:176 */
879 REGB2 = TAG_Bool(ATTR_abstractmetamodel___MMModule____private_modules(fra.me.REG[0])!=NIT_NULL);
880 if (UNTAG_Bool(REGB2)) {
881 } else {
882 nit_abort("Uninitialized attribute %s", "_private_modules", LOCATE_abstractmetamodel, 176);
883 }
884 fra.me.REG[2] = ATTR_abstractmetamodel___MMModule____private_modules(fra.me.REG[0]);
885 REGB2 = TAG_Bool(ATTR_abstractmetamodel___MMModule____private_modules(fra.me.REG[1])!=NIT_NULL);
886 if (UNTAG_Bool(REGB2)) {
887 } else {
888 nit_abort("Uninitialized attribute %s", "_private_modules", LOCATE_abstractmetamodel, 176);
889 }
890 fra.me.REG[3] = ATTR_abstractmetamodel___MMModule____private_modules(fra.me.REG[1]);
891 CALL_abstract_collection___SimpleCollection___add_all(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
892 } else {
893 /* ./metamodel//abstractmetamodel.nit:177 */
894 REGB2 = TAG_Int(1);
895 REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
896 if (UNTAG_Bool(REGB1)) {
897 } else {
898 /* ./../lib/standard//kernel.nit:207 */
899 REGB2 = TAG_Bool((REGB0)==(REGB2));
900 /* ./metamodel//abstractmetamodel.nit:177 */
901 REGB1 = REGB2;
902 }
903 if (UNTAG_Bool(REGB1)) {
904 /* ./metamodel//abstractmetamodel.nit:178 */
905 REGB1 = TAG_Bool(ATTR_abstractmetamodel___MMModule____public_modules(fra.me.REG[0])!=NIT_NULL);
906 if (UNTAG_Bool(REGB1)) {
907 } else {
908 nit_abort("Uninitialized attribute %s", "_public_modules", LOCATE_abstractmetamodel, 178);
909 }
910 fra.me.REG[3] = ATTR_abstractmetamodel___MMModule____public_modules(fra.me.REG[0]);
911 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
912 /* ./metamodel//abstractmetamodel.nit:179 */
913 REGB1 = TAG_Bool(ATTR_abstractmetamodel___MMModule____public_modules(fra.me.REG[0])!=NIT_NULL);
914 if (UNTAG_Bool(REGB1)) {
915 } else {
916 nit_abort("Uninitialized attribute %s", "_public_modules", LOCATE_abstractmetamodel, 179);
917 }
918 fra.me.REG[3] = ATTR_abstractmetamodel___MMModule____public_modules(fra.me.REG[0]);
919 REGB1 = TAG_Bool(ATTR_abstractmetamodel___MMModule____intrude_modules(fra.me.REG[1])!=NIT_NULL);
920 if (UNTAG_Bool(REGB1)) {
921 } else {
922 nit_abort("Uninitialized attribute %s", "_intrude_modules", LOCATE_abstractmetamodel, 179);
923 }
924 fra.me.REG[2] = ATTR_abstractmetamodel___MMModule____intrude_modules(fra.me.REG[1]);
925 CALL_abstract_collection___SimpleCollection___add_all(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
926 /* ./metamodel//abstractmetamodel.nit:180 */
927 REGB1 = TAG_Bool(ATTR_abstractmetamodel___MMModule____public_modules(fra.me.REG[0])!=NIT_NULL);
928 if (UNTAG_Bool(REGB1)) {
929 } else {
930 nit_abort("Uninitialized attribute %s", "_public_modules", LOCATE_abstractmetamodel, 180);
931 }
932 fra.me.REG[2] = ATTR_abstractmetamodel___MMModule____public_modules(fra.me.REG[0]);
933 REGB1 = TAG_Bool(ATTR_abstractmetamodel___MMModule____public_modules(fra.me.REG[1])!=NIT_NULL);
934 if (UNTAG_Bool(REGB1)) {
935 } else {
936 nit_abort("Uninitialized attribute %s", "_public_modules", LOCATE_abstractmetamodel, 180);
937 }
938 fra.me.REG[3] = ATTR_abstractmetamodel___MMModule____public_modules(fra.me.REG[1]);
939 CALL_abstract_collection___SimpleCollection___add_all(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
940 } else {
941 /* ./metamodel//abstractmetamodel.nit:182 */
942 REGB1 = TAG_Bool(ATTR_abstractmetamodel___MMModule____private_modules(fra.me.REG[0])!=NIT_NULL);
943 if (UNTAG_Bool(REGB1)) {
944 } else {
945 nit_abort("Uninitialized attribute %s", "_private_modules", LOCATE_abstractmetamodel, 182);
946 }
947 fra.me.REG[3] = ATTR_abstractmetamodel___MMModule____private_modules(fra.me.REG[0]);
948 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
949 /* ./metamodel//abstractmetamodel.nit:183 */
950 REGB1 = TAG_Bool(ATTR_abstractmetamodel___MMModule____private_modules(fra.me.REG[0])!=NIT_NULL);
951 if (UNTAG_Bool(REGB1)) {
952 } else {
953 nit_abort("Uninitialized attribute %s", "_private_modules", LOCATE_abstractmetamodel, 183);
954 }
955 fra.me.REG[3] = ATTR_abstractmetamodel___MMModule____private_modules(fra.me.REG[0]);
956 REGB1 = TAG_Bool(ATTR_abstractmetamodel___MMModule____intrude_modules(fra.me.REG[1])!=NIT_NULL);
957 if (UNTAG_Bool(REGB1)) {
958 } else {
959 nit_abort("Uninitialized attribute %s", "_intrude_modules", LOCATE_abstractmetamodel, 183);
960 }
961 fra.me.REG[2] = ATTR_abstractmetamodel___MMModule____intrude_modules(fra.me.REG[1]);
962 CALL_abstract_collection___SimpleCollection___add_all(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
963 /* ./metamodel//abstractmetamodel.nit:184 */
964 REGB1 = TAG_Bool(ATTR_abstractmetamodel___MMModule____private_modules(fra.me.REG[0])!=NIT_NULL);
965 if (UNTAG_Bool(REGB1)) {
966 } else {
967 nit_abort("Uninitialized attribute %s", "_private_modules", LOCATE_abstractmetamodel, 184);
968 }
969 fra.me.REG[0] = ATTR_abstractmetamodel___MMModule____private_modules(fra.me.REG[0]);
970 REGB1 = TAG_Bool(ATTR_abstractmetamodel___MMModule____public_modules(fra.me.REG[1])!=NIT_NULL);
971 if (UNTAG_Bool(REGB1)) {
972 } else {
973 nit_abort("Uninitialized attribute %s", "_public_modules", LOCATE_abstractmetamodel, 184);
974 }
975 fra.me.REG[1] = ATTR_abstractmetamodel___MMModule____public_modules(fra.me.REG[1]);
976 CALL_abstract_collection___SimpleCollection___add_all(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
977 }
978 }
979 stack_frame_head = fra.me.prev;
980 return;
981 }
982 val_t abstractmetamodel___MMModule___visibility_for(val_t p0, val_t p1){
983 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
984 val_t REGB0;
985 val_t REGB1;
986 val_t tmp;
987 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
988 fra.me.file = LOCATE_abstractmetamodel;
989 fra.me.line = 189;
990 fra.me.meth = LOCATE_abstractmetamodel___MMModule___visibility_for;
991 fra.me.has_broke = 0;
992 fra.me.REG_size = 3;
993 fra.me.REG[0] = NIT_NULL;
994 fra.me.REG[1] = NIT_NULL;
995 fra.me.REG[2] = NIT_NULL;
996 fra.me.REG[0] = p0;
997 fra.me.REG[1] = p1;
998 /* ./metamodel//abstractmetamodel.nit:196 */
999 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
1000 if (UNTAG_Bool(REGB0)) {
1001 } else {
1002 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1003 REGB0 = REGB1;
1004 }
1005 if (UNTAG_Bool(REGB0)) {
1006 REGB0 = TAG_Bool(true);
1007 } else {
1008 REGB1 = TAG_Bool(ATTR_abstractmetamodel___MMModule____intrude_modules(fra.me.REG[0])!=NIT_NULL);
1009 if (UNTAG_Bool(REGB1)) {
1010 } else {
1011 nit_abort("Uninitialized attribute %s", "_intrude_modules", LOCATE_abstractmetamodel, 196);
1012 }
1013 fra.me.REG[2] = ATTR_abstractmetamodel___MMModule____intrude_modules(fra.me.REG[0]);
1014 REGB1 = CALL_abstract_collection___Collection___has(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1015 REGB0 = REGB1;
1016 }
1017 if (UNTAG_Bool(REGB0)) {
1018 /* ./metamodel//abstractmetamodel.nit:197 */
1019 REGB0 = TAG_Int(3);
1020 goto label1;
1021 } else {
1022 /* ./metamodel//abstractmetamodel.nit:198 */
1023 REGB1 = TAG_Bool(ATTR_abstractmetamodel___MMModule____public_modules(fra.me.REG[0])!=NIT_NULL);
1024 if (UNTAG_Bool(REGB1)) {
1025 } else {
1026 nit_abort("Uninitialized attribute %s", "_public_modules", LOCATE_abstractmetamodel, 198);
1027 }
1028 fra.me.REG[2] = ATTR_abstractmetamodel___MMModule____public_modules(fra.me.REG[0]);
1029 REGB1 = CALL_abstract_collection___Collection___has(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1030 if (UNTAG_Bool(REGB1)) {
1031 /* ./metamodel//abstractmetamodel.nit:199 */
1032 REGB1 = TAG_Int(2);
1033 REGB0 = REGB1;
1034 goto label1;
1035 } else {
1036 /* ./metamodel//abstractmetamodel.nit:200 */
1037 REGB1 = TAG_Bool(ATTR_abstractmetamodel___MMModule____private_modules(fra.me.REG[0])!=NIT_NULL);
1038 if (UNTAG_Bool(REGB1)) {
1039 } else {
1040 nit_abort("Uninitialized attribute %s", "_private_modules", LOCATE_abstractmetamodel, 200);
1041 }
1042 fra.me.REG[0] = ATTR_abstractmetamodel___MMModule____private_modules(fra.me.REG[0]);
1043 REGB1 = CALL_abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1044 if (UNTAG_Bool(REGB1)) {
1045 /* ./metamodel//abstractmetamodel.nit:201 */
1046 REGB1 = TAG_Int(1);
1047 REGB0 = REGB1;
1048 goto label1;
1049 } else {
1050 /* ./metamodel//abstractmetamodel.nit:203 */
1051 REGB1 = TAG_Int(0);
1052 REGB0 = REGB1;
1053 goto label1;
1054 }
1055 }
1056 }
1057 label1: while(0);
1058 stack_frame_head = fra.me.prev;
1059 return REGB0;
1060 }
1061 val_t abstractmetamodel___MMModule_____bra(val_t p0, val_t p1){
1062 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1063 val_t REGB0;
1064 val_t tmp;
1065 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1066 fra.me.file = LOCATE_abstractmetamodel;
1067 fra.me.line = 208;
1068 fra.me.meth = LOCATE_abstractmetamodel___MMModule_____bra;
1069 fra.me.has_broke = 0;
1070 fra.me.REG_size = 2;
1071 fra.me.REG[0] = NIT_NULL;
1072 fra.me.REG[1] = NIT_NULL;
1073 fra.me.REG[0] = p0;
1074 fra.me.REG[1] = p1;
1075 /* ./metamodel//abstractmetamodel.nit:211 */
1076 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____local_class_by_global(fra.me.REG[0])!=NIT_NULL);
1077 if (UNTAG_Bool(REGB0)) {
1078 } else {
1079 nit_abort("Uninitialized attribute %s", "_local_class_by_global", LOCATE_abstractmetamodel, 211);
1080 }
1081 fra.me.REG[0] = ATTR_abstractmetamodel___MMModule____local_class_by_global(fra.me.REG[0]);
1082 fra.me.REG[1] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1083 goto label1;
1084 label1: while(0);
1085 stack_frame_head = fra.me.prev;
1086 return fra.me.REG[1];
1087 }
1088 val_t abstractmetamodel___MMModule___class_by_name(val_t p0, val_t p1){
1089 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1090 val_t REGB0;
1091 val_t tmp;
1092 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1093 fra.me.file = LOCATE_abstractmetamodel;
1094 fra.me.line = 214;
1095 fra.me.meth = LOCATE_abstractmetamodel___MMModule___class_by_name;
1096 fra.me.has_broke = 0;
1097 fra.me.REG_size = 3;
1098 fra.me.REG[0] = NIT_NULL;
1099 fra.me.REG[1] = NIT_NULL;
1100 fra.me.REG[2] = NIT_NULL;
1101 fra.me.REG[0] = p0;
1102 fra.me.REG[1] = p1;
1103 /* ./metamodel//abstractmetamodel.nit:217 */
1104 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____global_class_by_name(fra.me.REG[0])!=NIT_NULL);
1105 if (UNTAG_Bool(REGB0)) {
1106 } else {
1107 nit_abort("Uninitialized attribute %s", "_global_class_by_name", LOCATE_abstractmetamodel, 217);
1108 }
1109 fra.me.REG[2] = ATTR_abstractmetamodel___MMModule____global_class_by_name(fra.me.REG[0]);
1110 fra.me.REG[1] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1111 fra.me.REG[1] = CALL_abstractmetamodel___MMModule_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1112 goto label1;
1113 label1: while(0);
1114 stack_frame_head = fra.me.prev;
1115 return fra.me.REG[1];
1116 }
1117 val_t abstractmetamodel___MMModule___has_global_class_named(val_t p0, val_t p1){
1118 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1119 val_t REGB0;
1120 val_t tmp;
1121 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1122 fra.me.file = LOCATE_abstractmetamodel;
1123 fra.me.line = 220;
1124 fra.me.meth = LOCATE_abstractmetamodel___MMModule___has_global_class_named;
1125 fra.me.has_broke = 0;
1126 fra.me.REG_size = 2;
1127 fra.me.REG[0] = NIT_NULL;
1128 fra.me.REG[1] = NIT_NULL;
1129 fra.me.REG[0] = p0;
1130 fra.me.REG[1] = p1;
1131 /* ./metamodel//abstractmetamodel.nit:223 */
1132 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____global_class_by_name(fra.me.REG[0])!=NIT_NULL);
1133 if (UNTAG_Bool(REGB0)) {
1134 } else {
1135 nit_abort("Uninitialized attribute %s", "_global_class_by_name", LOCATE_abstractmetamodel, 223);
1136 }
1137 fra.me.REG[0] = ATTR_abstractmetamodel___MMModule____global_class_by_name(fra.me.REG[0]);
1138 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1139 goto label1;
1140 label1: while(0);
1141 stack_frame_head = fra.me.prev;
1142 return REGB0;
1143 }
1144 val_t abstractmetamodel___MMModule___global_class_named(val_t p0, val_t p1){
1145 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1146 val_t REGB0;
1147 val_t tmp;
1148 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1149 fra.me.file = LOCATE_abstractmetamodel;
1150 fra.me.line = 226;
1151 fra.me.meth = LOCATE_abstractmetamodel___MMModule___global_class_named;
1152 fra.me.has_broke = 0;
1153 fra.me.REG_size = 2;
1154 fra.me.REG[0] = NIT_NULL;
1155 fra.me.REG[1] = NIT_NULL;
1156 fra.me.REG[0] = p0;
1157 fra.me.REG[1] = p1;
1158 /* ./metamodel//abstractmetamodel.nit:230 */
1159 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____global_class_by_name(fra.me.REG[0])!=NIT_NULL);
1160 if (UNTAG_Bool(REGB0)) {
1161 } else {
1162 nit_abort("Uninitialized attribute %s", "_global_class_by_name", LOCATE_abstractmetamodel, 230);
1163 }
1164 fra.me.REG[0] = ATTR_abstractmetamodel___MMModule____global_class_by_name(fra.me.REG[0]);
1165 fra.me.REG[1] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1166 goto label1;
1167 label1: while(0);
1168 stack_frame_head = fra.me.prev;
1169 return fra.me.REG[1];
1170 }
1171 val_t abstractmetamodel___MMModule___to_s(val_t p0){
1172 struct {struct stack_frame_t me;} fra;
1173 val_t tmp;
1174 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1175 fra.me.file = LOCATE_abstractmetamodel;
1176 fra.me.line = 233;
1177 fra.me.meth = LOCATE_abstractmetamodel___MMModule___to_s;
1178 fra.me.has_broke = 0;
1179 fra.me.REG_size = 1;
1180 fra.me.REG[0] = NIT_NULL;
1181 fra.me.REG[0] = p0;
1182 /* ./metamodel//abstractmetamodel.nit:233 */
1183 fra.me.REG[0] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[0])(fra.me.REG[0]);
1184 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
1185 goto label1;
1186 label1: while(0);
1187 stack_frame_head = fra.me.prev;
1188 return fra.me.REG[0];
1189 }
1190 void abstractmetamodel___MMModule___set_supers_class(val_t p0, val_t p1, val_t p2){
1191 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1192 val_t REGB0;
1193 val_t tmp;
1194 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1195 fra.me.file = LOCATE_abstractmetamodel;
1196 fra.me.line = 235;
1197 fra.me.meth = LOCATE_abstractmetamodel___MMModule___set_supers_class;
1198 fra.me.has_broke = 0;
1199 fra.me.REG_size = 4;
1200 fra.me.REG[0] = NIT_NULL;
1201 fra.me.REG[1] = NIT_NULL;
1202 fra.me.REG[2] = NIT_NULL;
1203 fra.me.REG[3] = NIT_NULL;
1204 fra.me.REG[0] = p0;
1205 fra.me.REG[1] = p1;
1206 fra.me.REG[2] = p2;
1207 /* ./metamodel//abstractmetamodel.nit:238 */
1208 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy(fra.me.REG[0])!=NIT_NULL);
1209 if (UNTAG_Bool(REGB0)) {
1210 } else {
1211 nit_abort("Uninitialized attribute %s", "_class_specialization_hierarchy", LOCATE_abstractmetamodel, 238);
1212 }
1213 fra.me.REG[3] = ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy(fra.me.REG[0]);
1214 fra.me.REG[2] = CALL_partial_order___PartialOrder___select_smallests(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
1215 /* ./metamodel//abstractmetamodel.nit:239 */
1216 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy(fra.me.REG[0])!=NIT_NULL);
1217 if (UNTAG_Bool(REGB0)) {
1218 } else {
1219 nit_abort("Uninitialized attribute %s", "_class_specialization_hierarchy", LOCATE_abstractmetamodel, 239);
1220 }
1221 fra.me.REG[3] = ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy(fra.me.REG[0]);
1222 fra.me.REG[3] = CALL_partial_order___PartialOrder___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[2]);
1223 ATTR_abstractmetamodel___MMLocalClass____cshe(fra.me.REG[1]) = fra.me.REG[3];
1224 /* ./metamodel//abstractmetamodel.nit:240 */
1225 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___crhe(fra.me.REG[1])(fra.me.REG[1]);
1226 fra.me.REG[3] = CALL_partial_order___PartialOrderElement___direct_greaters(fra.me.REG[3])(fra.me.REG[3]);
1227 fra.me.REG[3] = CALL_array___Collection___to_a(fra.me.REG[3])(fra.me.REG[3]);
1228 /* ./metamodel//abstractmetamodel.nit:241 */
1229 CALL_abstract_collection___SimpleCollection___add_all(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
1230 /* ./metamodel//abstractmetamodel.nit:242 */
1231 fra.me.REG[0] = CALL_abstractmetamodel___MMModule___context(fra.me.REG[0])(fra.me.REG[0]);
1232 CALL_abstractmetamodel___MMContext___add_local_class(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
1233 stack_frame_head = fra.me.prev;
1234 return;
1235 }
1236 void abstractmetamodel___MMModule___register_global_class(val_t p0, val_t p1){
1237 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1238 val_t REGB0;
1239 val_t tmp;
1240 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1241 fra.me.file = LOCATE_abstractmetamodel;
1242 fra.me.line = 245;
1243 fra.me.meth = LOCATE_abstractmetamodel___MMModule___register_global_class;
1244 fra.me.has_broke = 0;
1245 fra.me.REG_size = 3;
1246 fra.me.REG[0] = NIT_NULL;
1247 fra.me.REG[1] = NIT_NULL;
1248 fra.me.REG[2] = NIT_NULL;
1249 fra.me.REG[0] = p0;
1250 fra.me.REG[1] = p1;
1251 /* ./metamodel//abstractmetamodel.nit:248 */
1252 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____local_class_by_global(fra.me.REG[0])!=NIT_NULL);
1253 if (UNTAG_Bool(REGB0)) {
1254 } else {
1255 nit_abort("Uninitialized attribute %s", "_local_class_by_global", LOCATE_abstractmetamodel, 248);
1256 }
1257 fra.me.REG[0] = ATTR_abstractmetamodel___MMModule____local_class_by_global(fra.me.REG[0]);
1258 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
1259 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[1]);
1260 stack_frame_head = fra.me.prev;
1261 return;
1262 }
1263 val_t abstractmetamodel___MMGlobalClass___intro(val_t p0){
1264 struct {struct stack_frame_t me;} fra;
1265 val_t REGB0;
1266 val_t tmp;
1267 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1268 fra.me.file = LOCATE_abstractmetamodel;
1269 fra.me.line = 253;
1270 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalClass___intro;
1271 fra.me.has_broke = 0;
1272 fra.me.REG_size = 1;
1273 fra.me.REG[0] = NIT_NULL;
1274 fra.me.REG[0] = p0;
1275 /* ./metamodel//abstractmetamodel.nit:253 */
1276 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalClass____intro(fra.me.REG[0])!=NIT_NULL);
1277 if (UNTAG_Bool(REGB0)) {
1278 } else {
1279 nit_abort("Uninitialized attribute %s", "_intro", LOCATE_abstractmetamodel, 253);
1280 }
1281 fra.me.REG[0] = ATTR_abstractmetamodel___MMGlobalClass____intro(fra.me.REG[0]);
1282 stack_frame_head = fra.me.prev;
1283 return fra.me.REG[0];
1284 }
1285 val_t abstractmetamodel___MMGlobalClass___class_refinement_hierarchy(val_t p0){
1286 struct {struct stack_frame_t me;} fra;
1287 val_t REGB0;
1288 val_t tmp;
1289 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1290 fra.me.file = LOCATE_abstractmetamodel;
1291 fra.me.line = 256;
1292 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalClass___class_refinement_hierarchy;
1293 fra.me.has_broke = 0;
1294 fra.me.REG_size = 1;
1295 fra.me.REG[0] = NIT_NULL;
1296 fra.me.REG[0] = p0;
1297 /* ./metamodel//abstractmetamodel.nit:256 */
1298 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalClass____class_refinement_hierarchy(fra.me.REG[0])!=NIT_NULL);
1299 if (UNTAG_Bool(REGB0)) {
1300 } else {
1301 nit_abort("Uninitialized attribute %s", "_class_refinement_hierarchy", LOCATE_abstractmetamodel, 256);
1302 }
1303 fra.me.REG[0] = ATTR_abstractmetamodel___MMGlobalClass____class_refinement_hierarchy(fra.me.REG[0]);
1304 stack_frame_head = fra.me.prev;
1305 return fra.me.REG[0];
1306 }
1307 void abstractmetamodel___MMGlobalClass___init(val_t p0, val_t p1, int* init_table){
1308 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMGlobalClass].i;
1309 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1310 val_t tmp;
1311 if (init_table[itpos3]) return;
1312 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1313 fra.me.file = LOCATE_abstractmetamodel;
1314 fra.me.line = 260;
1315 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalClass___init;
1316 fra.me.has_broke = 0;
1317 fra.me.REG_size = 2;
1318 fra.me.REG[0] = NIT_NULL;
1319 fra.me.REG[1] = NIT_NULL;
1320 fra.me.REG[0] = p0;
1321 fra.me.REG[1] = p1;
1322 /* ./metamodel//abstractmetamodel.nit:263 */
1323 ATTR_abstractmetamodel___MMGlobalClass____intro(fra.me.REG[0]) = fra.me.REG[1];
1324 /* ./metamodel//abstractmetamodel.nit:264 */
1325 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___context(fra.me.REG[1])(fra.me.REG[1]);
1326 CALL_abstractmetamodel___MMContext___add_global_class(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1327 stack_frame_head = fra.me.prev;
1328 init_table[itpos3] = 1;
1329 return;
1330 }
1331 val_t abstractmetamodel___MMGlobalClass___name(val_t p0){
1332 struct {struct stack_frame_t me;} fra;
1333 val_t tmp;
1334 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1335 fra.me.file = LOCATE_abstractmetamodel;
1336 fra.me.line = 267;
1337 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalClass___name;
1338 fra.me.has_broke = 0;
1339 fra.me.REG_size = 1;
1340 fra.me.REG[0] = NIT_NULL;
1341 fra.me.REG[0] = p0;
1342 /* ./metamodel//abstractmetamodel.nit:270 */
1343 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[0])(fra.me.REG[0]);
1344 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
1345 goto label1;
1346 label1: while(0);
1347 stack_frame_head = fra.me.prev;
1348 return fra.me.REG[0];
1349 }
1350 val_t abstractmetamodel___MMGlobalClass___mmmodule(val_t p0){
1351 struct {struct stack_frame_t me;} fra;
1352 val_t tmp;
1353 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1354 fra.me.file = LOCATE_abstractmetamodel;
1355 fra.me.line = 273;
1356 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalClass___mmmodule;
1357 fra.me.has_broke = 0;
1358 fra.me.REG_size = 1;
1359 fra.me.REG[0] = NIT_NULL;
1360 fra.me.REG[0] = p0;
1361 /* ./metamodel//abstractmetamodel.nit:276 */
1362 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[0])(fra.me.REG[0]);
1363 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
1364 goto label1;
1365 label1: while(0);
1366 stack_frame_head = fra.me.prev;
1367 return fra.me.REG[0];
1368 }
1369 val_t abstractmetamodel___MMGlobalClass___to_s(val_t p0){
1370 struct {struct stack_frame_t me;} fra;
1371 val_t tmp;
1372 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1373 fra.me.file = LOCATE_abstractmetamodel;
1374 fra.me.line = 279;
1375 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalClass___to_s;
1376 fra.me.has_broke = 0;
1377 fra.me.REG_size = 1;
1378 fra.me.REG[0] = NIT_NULL;
1379 fra.me.REG[0] = p0;
1380 /* ./metamodel//abstractmetamodel.nit:281 */
1381 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[0])(fra.me.REG[0]);
1382 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
1383 goto label1;
1384 label1: while(0);
1385 stack_frame_head = fra.me.prev;
1386 return fra.me.REG[0];
1387 }
1388 void abstractmetamodel___MMGlobalClass___register_local_class(val_t p0, val_t p1){
1389 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1390 val_t REGB0;
1391 val_t tmp;
1392 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1393 fra.me.file = LOCATE_abstractmetamodel;
1394 fra.me.line = 284;
1395 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalClass___register_local_class;
1396 fra.me.has_broke = 0;
1397 fra.me.REG_size = 4;
1398 fra.me.REG[0] = NIT_NULL;
1399 fra.me.REG[1] = NIT_NULL;
1400 fra.me.REG[2] = NIT_NULL;
1401 fra.me.REG[3] = NIT_NULL;
1402 fra.me.REG[0] = p0;
1403 fra.me.REG[1] = p1;
1404 /* ./metamodel//abstractmetamodel.nit:287 */
1405 fra.me.REG[2] = NEW_Array_array___Array___init();
1406 /* ./metamodel//abstractmetamodel.nit:288 */
1407 fra.me.REG[3] = CALL_abstractmetamodel___MMGlobalClass___class_refinement_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
1408 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_abstractmetamodel___MMGlobalClass___register_local_class_1));
1409 /* ./metamodel//abstractmetamodel.nit:293 */
1410 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalClass____class_refinement_hierarchy(fra.me.REG[0])!=NIT_NULL);
1411 if (UNTAG_Bool(REGB0)) {
1412 } else {
1413 nit_abort("Uninitialized attribute %s", "_class_refinement_hierarchy", LOCATE_abstractmetamodel, 293);
1414 }
1415 fra.me.REG[0] = ATTR_abstractmetamodel___MMGlobalClass____class_refinement_hierarchy(fra.me.REG[0]);
1416 fra.me.REG[2] = CALL_partial_order___PartialOrder___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
1417 ATTR_abstractmetamodel___MMLocalClass____crhe(fra.me.REG[1]) = fra.me.REG[2];
1418 stack_frame_head = fra.me.prev;
1419 return;
1420 }
1421 void OC_abstractmetamodel___MMGlobalClass___register_local_class_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
1422 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1423 val_t REGB0;
1424 val_t REGB1;
1425 fun_t CREG[1];
1426 val_t tmp;
1427 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1428 fra.me.file = LOCATE_abstractmetamodel;
1429 fra.me.line = 0;
1430 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalClass___register_local_class;
1431 fra.me.has_broke = 0;
1432 fra.me.REG_size = 3;
1433 fra.me.REG[0] = NIT_NULL;
1434 fra.me.REG[1] = NIT_NULL;
1435 fra.me.REG[2] = NIT_NULL;
1436 fra.me.closure_ctx = closctx_param;
1437 fra.me.closure_funs = CREG;
1438 fra.me.REG[0] = p0;
1439 CREG[0] = clos_fun0;
1440 /* ./metamodel//abstractmetamodel.nit:289 */
1441 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___mmmodule(closctx->REG[1])(closctx->REG[1]);
1442 fra.me.REG[1] = CALL_abstractmetamodel___MMModule___mhe(fra.me.REG[1])(fra.me.REG[1]);
1443 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
1444 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1445 if (UNTAG_Bool(REGB0)) {
1446 nit_abort("Reciever is null", NULL, LOCATE_abstractmetamodel, 289);
1447 }
1448 REGB0 = CALL_partial_order___PartialOrderElement_____l(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1449 if (UNTAG_Bool(REGB0)) {
1450 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_MMConcreteClass, ID_MMConcreteClass)) /*cast MMConcreteClass*/;
1451 } else {
1452 REGB1 = TAG_Bool(false);
1453 REGB0 = REGB1;
1454 }
1455 if (UNTAG_Bool(REGB0)) {
1456 /* ./metamodel//abstractmetamodel.nit:290 */
1457 CALL_abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
1458 }
1459 stack_frame_head = fra.me.prev;
1460 return;
1461 }
1462 val_t abstractmetamodel___MMGlobalClass___is_interface(val_t p0){
1463 struct {struct stack_frame_t me;} fra;
1464 val_t REGB0;
1465 val_t tmp;
1466 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1467 fra.me.file = LOCATE_abstractmetamodel;
1468 fra.me.line = 296;
1469 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalClass___is_interface;
1470 fra.me.has_broke = 0;
1471 fra.me.REG_size = 1;
1472 fra.me.REG[0] = NIT_NULL;
1473 fra.me.REG[0] = p0;
1474 /* ./metamodel//abstractmetamodel.nit:296 */
1475 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalClass____is_interface(fra.me.REG[0])!=NIT_NULL);
1476 if (UNTAG_Bool(REGB0)) {
1477 } else {
1478 nit_abort("Uninitialized attribute %s", "_is_interface", LOCATE_abstractmetamodel, 296);
1479 }
1480 REGB0 = ATTR_abstractmetamodel___MMGlobalClass____is_interface(fra.me.REG[0]);
1481 stack_frame_head = fra.me.prev;
1482 return REGB0;
1483 }
1484 void abstractmetamodel___MMGlobalClass___is_interface__eq(val_t p0, val_t p1){
1485 struct {struct stack_frame_t me;} fra;
1486 val_t REGB0;
1487 val_t tmp;
1488 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1489 fra.me.file = LOCATE_abstractmetamodel;
1490 fra.me.line = 296;
1491 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalClass___is_interface__eq;
1492 fra.me.has_broke = 0;
1493 fra.me.REG_size = 1;
1494 fra.me.REG[0] = NIT_NULL;
1495 fra.me.REG[0] = p0;
1496 REGB0 = p1;
1497 /* ./metamodel//abstractmetamodel.nit:296 */
1498 ATTR_abstractmetamodel___MMGlobalClass____is_interface(fra.me.REG[0]) = REGB0;
1499 stack_frame_head = fra.me.prev;
1500 return;
1501 }
1502 val_t abstractmetamodel___MMGlobalClass___is_abstract(val_t p0){
1503 struct {struct stack_frame_t me;} fra;
1504 val_t REGB0;
1505 val_t tmp;
1506 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1507 fra.me.file = LOCATE_abstractmetamodel;
1508 fra.me.line = 299;
1509 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalClass___is_abstract;
1510 fra.me.has_broke = 0;
1511 fra.me.REG_size = 1;
1512 fra.me.REG[0] = NIT_NULL;
1513 fra.me.REG[0] = p0;
1514 /* ./metamodel//abstractmetamodel.nit:299 */
1515 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalClass____is_abstract(fra.me.REG[0])!=NIT_NULL);
1516 if (UNTAG_Bool(REGB0)) {
1517 } else {
1518 nit_abort("Uninitialized attribute %s", "_is_abstract", LOCATE_abstractmetamodel, 299);
1519 }
1520 REGB0 = ATTR_abstractmetamodel___MMGlobalClass____is_abstract(fra.me.REG[0]);
1521 stack_frame_head = fra.me.prev;
1522 return REGB0;
1523 }
1524 void abstractmetamodel___MMGlobalClass___is_abstract__eq(val_t p0, val_t p1){
1525 struct {struct stack_frame_t me;} fra;
1526 val_t REGB0;
1527 val_t tmp;
1528 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1529 fra.me.file = LOCATE_abstractmetamodel;
1530 fra.me.line = 299;
1531 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalClass___is_abstract__eq;
1532 fra.me.has_broke = 0;
1533 fra.me.REG_size = 1;
1534 fra.me.REG[0] = NIT_NULL;
1535 fra.me.REG[0] = p0;
1536 REGB0 = p1;
1537 /* ./metamodel//abstractmetamodel.nit:299 */
1538 ATTR_abstractmetamodel___MMGlobalClass____is_abstract(fra.me.REG[0]) = REGB0;
1539 stack_frame_head = fra.me.prev;
1540 return;
1541 }
1542 val_t abstractmetamodel___MMGlobalClass___is_enum(val_t p0){
1543 struct {struct stack_frame_t me;} fra;
1544 val_t REGB0;
1545 val_t tmp;
1546 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1547 fra.me.file = LOCATE_abstractmetamodel;
1548 fra.me.line = 302;
1549 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalClass___is_enum;
1550 fra.me.has_broke = 0;
1551 fra.me.REG_size = 1;
1552 fra.me.REG[0] = NIT_NULL;
1553 fra.me.REG[0] = p0;
1554 /* ./metamodel//abstractmetamodel.nit:302 */
1555 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalClass____is_enum(fra.me.REG[0])!=NIT_NULL);
1556 if (UNTAG_Bool(REGB0)) {
1557 } else {
1558 nit_abort("Uninitialized attribute %s", "_is_enum", LOCATE_abstractmetamodel, 302);
1559 }
1560 REGB0 = ATTR_abstractmetamodel___MMGlobalClass____is_enum(fra.me.REG[0]);
1561 stack_frame_head = fra.me.prev;
1562 return REGB0;
1563 }
1564 void abstractmetamodel___MMGlobalClass___is_enum__eq(val_t p0, val_t p1){
1565 struct {struct stack_frame_t me;} fra;
1566 val_t REGB0;
1567 val_t tmp;
1568 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1569 fra.me.file = LOCATE_abstractmetamodel;
1570 fra.me.line = 302;
1571 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalClass___is_enum__eq;
1572 fra.me.has_broke = 0;
1573 fra.me.REG_size = 1;
1574 fra.me.REG[0] = NIT_NULL;
1575 fra.me.REG[0] = p0;
1576 REGB0 = p1;
1577 /* ./metamodel//abstractmetamodel.nit:302 */
1578 ATTR_abstractmetamodel___MMGlobalClass____is_enum(fra.me.REG[0]) = REGB0;
1579 stack_frame_head = fra.me.prev;
1580 return;
1581 }
1582 val_t abstractmetamodel___MMGlobalClass___visibility_level(val_t p0){
1583 struct {struct stack_frame_t me;} fra;
1584 val_t REGB0;
1585 val_t tmp;
1586 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1587 fra.me.file = LOCATE_abstractmetamodel;
1588 fra.me.line = 305;
1589 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalClass___visibility_level;
1590 fra.me.has_broke = 0;
1591 fra.me.REG_size = 1;
1592 fra.me.REG[0] = NIT_NULL;
1593 fra.me.REG[0] = p0;
1594 /* ./metamodel//abstractmetamodel.nit:305 */
1595 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalClass____visibility_level(fra.me.REG[0])!=NIT_NULL);
1596 if (UNTAG_Bool(REGB0)) {
1597 } else {
1598 nit_abort("Uninitialized attribute %s", "_visibility_level", LOCATE_abstractmetamodel, 305);
1599 }
1600 REGB0 = ATTR_abstractmetamodel___MMGlobalClass____visibility_level(fra.me.REG[0]);
1601 stack_frame_head = fra.me.prev;
1602 return REGB0;
1603 }
1604 void abstractmetamodel___MMGlobalClass___visibility_level__eq(val_t p0, val_t p1){
1605 struct {struct stack_frame_t me;} fra;
1606 val_t REGB0;
1607 val_t tmp;
1608 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1609 fra.me.file = LOCATE_abstractmetamodel;
1610 fra.me.line = 305;
1611 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalClass___visibility_level__eq;
1612 fra.me.has_broke = 0;
1613 fra.me.REG_size = 1;
1614 fra.me.REG[0] = NIT_NULL;
1615 fra.me.REG[0] = p0;
1616 REGB0 = p1;
1617 /* ./metamodel//abstractmetamodel.nit:305 */
1618 ATTR_abstractmetamodel___MMGlobalClass____visibility_level(fra.me.REG[0]) = REGB0;
1619 stack_frame_head = fra.me.prev;
1620 return;
1621 }
1622 val_t abstractmetamodel___MMGlobalClass___is_mixin(val_t p0){
1623 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1624 val_t REGB0;
1625 val_t REGB1;
1626 val_t tmp;
1627 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1628 fra.me.file = LOCATE_abstractmetamodel;
1629 fra.me.line = 310;
1630 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalClass___is_mixin;
1631 fra.me.has_broke = 0;
1632 fra.me.REG_size = 2;
1633 fra.me.REG[0] = NIT_NULL;
1634 fra.me.REG[1] = NIT_NULL;
1635 fra.me.REG[0] = p0;
1636 /* ./metamodel//abstractmetamodel.nit:314 */
1637 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalClass____mixin_of(fra.me.REG[0])!=NIT_NULL);
1638 if (UNTAG_Bool(REGB0)) {
1639 } else {
1640 nit_abort("Uninitialized attribute %s", "_mixin_of", LOCATE_abstractmetamodel, 314);
1641 }
1642 fra.me.REG[1] = ATTR_abstractmetamodel___MMGlobalClass____mixin_of(fra.me.REG[0]);
1643 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
1644 if (UNTAG_Bool(REGB0)) {
1645 } else {
1646 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1647 REGB0 = REGB1;
1648 }
1649 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1650 goto label1;
1651 label1: while(0);
1652 stack_frame_head = fra.me.prev;
1653 return REGB0;
1654 }
1655 val_t abstractmetamodel___MMGlobalClass___mixin_of(val_t p0){
1656 struct {struct stack_frame_t me;} fra;
1657 val_t REGB0;
1658 val_t tmp;
1659 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1660 fra.me.file = LOCATE_abstractmetamodel;
1661 fra.me.line = 317;
1662 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalClass___mixin_of;
1663 fra.me.has_broke = 0;
1664 fra.me.REG_size = 1;
1665 fra.me.REG[0] = NIT_NULL;
1666 fra.me.REG[0] = p0;
1667 /* ./metamodel//abstractmetamodel.nit:317 */
1668 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalClass____mixin_of(fra.me.REG[0])!=NIT_NULL);
1669 if (UNTAG_Bool(REGB0)) {
1670 } else {
1671 nit_abort("Uninitialized attribute %s", "_mixin_of", LOCATE_abstractmetamodel, 317);
1672 }
1673 fra.me.REG[0] = ATTR_abstractmetamodel___MMGlobalClass____mixin_of(fra.me.REG[0]);
1674 stack_frame_head = fra.me.prev;
1675 return fra.me.REG[0];
1676 }
1677 void abstractmetamodel___MMGlobalClass___mixin_of__eq(val_t p0, val_t p1){
1678 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1679 val_t tmp;
1680 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1681 fra.me.file = LOCATE_abstractmetamodel;
1682 fra.me.line = 317;
1683 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalClass___mixin_of__eq;
1684 fra.me.has_broke = 0;
1685 fra.me.REG_size = 2;
1686 fra.me.REG[0] = NIT_NULL;
1687 fra.me.REG[1] = NIT_NULL;
1688 fra.me.REG[0] = p0;
1689 fra.me.REG[1] = p1;
1690 /* ./metamodel//abstractmetamodel.nit:317 */
1691 ATTR_abstractmetamodel___MMGlobalClass____mixin_of(fra.me.REG[0]) = fra.me.REG[1];
1692 stack_frame_head = fra.me.prev;
1693 return;
1694 }
1695 val_t abstractmetamodel___MMLocalClass___name(val_t p0){
1696 struct {struct stack_frame_t me;} fra;
1697 val_t REGB0;
1698 val_t tmp;
1699 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1700 fra.me.file = LOCATE_abstractmetamodel;
1701 fra.me.line = 326;
1702 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___name;
1703 fra.me.has_broke = 0;
1704 fra.me.REG_size = 1;
1705 fra.me.REG[0] = NIT_NULL;
1706 fra.me.REG[0] = p0;
1707 /* ./metamodel//abstractmetamodel.nit:326 */
1708 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____name(fra.me.REG[0])!=NIT_NULL);
1709 if (UNTAG_Bool(REGB0)) {
1710 } else {
1711 nit_abort("Uninitialized attribute %s", "_name", LOCATE_abstractmetamodel, 326);
1712 }
1713 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____name(fra.me.REG[0]);
1714 stack_frame_head = fra.me.prev;
1715 return fra.me.REG[0];
1716 }
1717 val_t abstractmetamodel___MMLocalClass___arity(val_t p0){
1718 struct {struct stack_frame_t me;} fra;
1719 val_t REGB0;
1720 val_t tmp;
1721 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1722 fra.me.file = LOCATE_abstractmetamodel;
1723 fra.me.line = 329;
1724 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___arity;
1725 fra.me.has_broke = 0;
1726 fra.me.REG_size = 1;
1727 fra.me.REG[0] = NIT_NULL;
1728 fra.me.REG[0] = p0;
1729 /* ./metamodel//abstractmetamodel.nit:329 */
1730 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____arity(fra.me.REG[0])!=NIT_NULL);
1731 if (UNTAG_Bool(REGB0)) {
1732 } else {
1733 nit_abort("Uninitialized attribute %s", "_arity", LOCATE_abstractmetamodel, 329);
1734 }
1735 REGB0 = ATTR_abstractmetamodel___MMLocalClass____arity(fra.me.REG[0]);
1736 stack_frame_head = fra.me.prev;
1737 return REGB0;
1738 }
1739 val_t abstractmetamodel___MMLocalClass___mmmodule(val_t p0){
1740 struct {struct stack_frame_t me;} fra;
1741 val_t REGB0;
1742 val_t tmp;
1743 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1744 fra.me.file = LOCATE_abstractmetamodel;
1745 fra.me.line = 333;
1746 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___mmmodule;
1747 fra.me.has_broke = 0;
1748 fra.me.REG_size = 1;
1749 fra.me.REG[0] = NIT_NULL;
1750 fra.me.REG[0] = p0;
1751 /* ./metamodel//abstractmetamodel.nit:333 */
1752 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0])!=NIT_NULL);
1753 if (UNTAG_Bool(REGB0)) {
1754 } else {
1755 nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_abstractmetamodel, 333);
1756 }
1757 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0]);
1758 stack_frame_head = fra.me.prev;
1759 return fra.me.REG[0];
1760 }
1761 val_t abstractmetamodel___MMLocalClass___global(val_t p0){
1762 struct {struct stack_frame_t me;} fra;
1763 val_t REGB0;
1764 val_t tmp;
1765 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1766 fra.me.file = LOCATE_abstractmetamodel;
1767 fra.me.line = 336;
1768 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___global;
1769 fra.me.has_broke = 0;
1770 fra.me.REG_size = 1;
1771 fra.me.REG[0] = NIT_NULL;
1772 fra.me.REG[0] = p0;
1773 /* ./metamodel//abstractmetamodel.nit:337 */
1774 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____global(fra.me.REG[0]);
1775 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
1776 if (UNTAG_Bool(REGB0)) {
1777 } else {
1778 nit_abort("Cast failed", NULL, LOCATE_abstractmetamodel, 337);
1779 }
1780 goto label1;
1781 label1: while(0);
1782 stack_frame_head = fra.me.prev;
1783 return fra.me.REG[0];
1784 }
1785 val_t abstractmetamodel___MMLocalClass___crhe(val_t p0){
1786 struct {struct stack_frame_t me;} fra;
1787 val_t REGB0;
1788 val_t tmp;
1789 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1790 fra.me.file = LOCATE_abstractmetamodel;
1791 fra.me.line = 340;
1792 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___crhe;
1793 fra.me.has_broke = 0;
1794 fra.me.REG_size = 1;
1795 fra.me.REG[0] = NIT_NULL;
1796 fra.me.REG[0] = p0;
1797 /* ./metamodel//abstractmetamodel.nit:341 */
1798 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____crhe(fra.me.REG[0]);
1799 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
1800 if (UNTAG_Bool(REGB0)) {
1801 } else {
1802 nit_abort("Cast failed", NULL, LOCATE_abstractmetamodel, 341);
1803 }
1804 goto label1;
1805 label1: while(0);
1806 stack_frame_head = fra.me.prev;
1807 return fra.me.REG[0];
1808 }
1809 val_t abstractmetamodel___MMLocalClass___cshe(val_t p0){
1810 struct {struct stack_frame_t me;} fra;
1811 val_t REGB0;
1812 val_t tmp;
1813 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1814 fra.me.file = LOCATE_abstractmetamodel;
1815 fra.me.line = 344;
1816 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___cshe;
1817 fra.me.has_broke = 0;
1818 fra.me.REG_size = 1;
1819 fra.me.REG[0] = NIT_NULL;
1820 fra.me.REG[0] = p0;
1821 /* ./metamodel//abstractmetamodel.nit:345 */
1822 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____cshe(fra.me.REG[0]);
1823 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
1824 if (UNTAG_Bool(REGB0)) {
1825 } else {
1826 nit_abort("Cast failed", NULL, LOCATE_abstractmetamodel, 345);
1827 }
1828 goto label1;
1829 label1: while(0);
1830 stack_frame_head = fra.me.prev;
1831 return fra.me.REG[0];
1832 }
1833 val_t abstractmetamodel___MMLocalClass___che(val_t p0){
1834 struct {struct stack_frame_t me;} fra;
1835 val_t REGB0;
1836 val_t tmp;
1837 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1838 fra.me.file = LOCATE_abstractmetamodel;
1839 fra.me.line = 348;
1840 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___che;
1841 fra.me.has_broke = 0;
1842 fra.me.REG_size = 1;
1843 fra.me.REG[0] = NIT_NULL;
1844 fra.me.REG[0] = p0;
1845 /* ./metamodel//abstractmetamodel.nit:349 */
1846 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____che(fra.me.REG[0]);
1847 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
1848 if (UNTAG_Bool(REGB0)) {
1849 } else {
1850 nit_abort("Cast failed", NULL, LOCATE_abstractmetamodel, 349);
1851 }
1852 goto label1;
1853 label1: while(0);
1854 stack_frame_head = fra.me.prev;
1855 return fra.me.REG[0];
1856 }
1857 val_t abstractmetamodel___MMLocalClass___global_properties(val_t p0){
1858 struct {struct stack_frame_t me;} fra;
1859 val_t REGB0;
1860 val_t tmp;
1861 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1862 fra.me.file = LOCATE_abstractmetamodel;
1863 fra.me.line = 355;
1864 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___global_properties;
1865 fra.me.has_broke = 0;
1866 fra.me.REG_size = 1;
1867 fra.me.REG[0] = NIT_NULL;
1868 fra.me.REG[0] = p0;
1869 /* ./metamodel//abstractmetamodel.nit:355 */
1870 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0])!=NIT_NULL);
1871 if (UNTAG_Bool(REGB0)) {
1872 } else {
1873 nit_abort("Uninitialized attribute %s", "_global_properties", LOCATE_abstractmetamodel, 355);
1874 }
1875 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0]);
1876 stack_frame_head = fra.me.prev;
1877 return fra.me.REG[0];
1878 }
1879 val_t abstractmetamodel___MMLocalClass___local_local_properties(val_t p0){
1880 struct {struct stack_frame_t me;} fra;
1881 val_t REGB0;
1882 val_t tmp;
1883 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1884 fra.me.file = LOCATE_abstractmetamodel;
1885 fra.me.line = 358;
1886 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___local_local_properties;
1887 fra.me.has_broke = 0;
1888 fra.me.REG_size = 1;
1889 fra.me.REG[0] = NIT_NULL;
1890 fra.me.REG[0] = p0;
1891 /* ./metamodel//abstractmetamodel.nit:358 */
1892 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0])!=NIT_NULL);
1893 if (UNTAG_Bool(REGB0)) {
1894 } else {
1895 nit_abort("Uninitialized attribute %s", "_local_local_properties", LOCATE_abstractmetamodel, 358);
1896 }
1897 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0]);
1898 stack_frame_head = fra.me.prev;
1899 return fra.me.REG[0];
1900 }
1901 void abstractmetamodel___MMLocalClass___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1902 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMLocalClass].i;
1903 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1904 val_t REGB0;
1905 val_t tmp;
1906 if (init_table[itpos4]) return;
1907 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1908 fra.me.file = LOCATE_abstractmetamodel;
1909 fra.me.line = 364;
1910 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___init;
1911 fra.me.has_broke = 0;
1912 fra.me.REG_size = 3;
1913 fra.me.REG[0] = NIT_NULL;
1914 fra.me.REG[1] = NIT_NULL;
1915 fra.me.REG[2] = NIT_NULL;
1916 fra.me.REG[0] = p0;
1917 fra.me.REG[1] = p1;
1918 fra.me.REG[2] = p2;
1919 REGB0 = p3;
1920 /* ./metamodel//abstractmetamodel.nit:367 */
1921 ATTR_abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0]) = fra.me.REG[1];
1922 /* ./metamodel//abstractmetamodel.nit:368 */
1923 ATTR_abstractmetamodel___MMLocalClass____name(fra.me.REG[0]) = fra.me.REG[2];
1924 /* ./metamodel//abstractmetamodel.nit:369 */
1925 ATTR_abstractmetamodel___MMLocalClass____arity(fra.me.REG[0]) = REGB0;
1926 /* ./metamodel//abstractmetamodel.nit:370 */
1927 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____local_classes(fra.me.REG[1])!=NIT_NULL);
1928 if (UNTAG_Bool(REGB0)) {
1929 } else {
1930 nit_abort("Uninitialized attribute %s", "_local_classes", LOCATE_abstractmetamodel, 370);
1931 }
1932 fra.me.REG[1] = ATTR_abstractmetamodel___MMModule____local_classes(fra.me.REG[1]);
1933 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1934 stack_frame_head = fra.me.prev;
1935 init_table[itpos4] = 1;
1936 return;
1937 }
1938 val_t abstractmetamodel___MMLocalClass___for_module(val_t p0, val_t p1){
1939 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1940 val_t tmp;
1941 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1942 fra.me.file = LOCATE_abstractmetamodel;
1943 fra.me.line = 373;
1944 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___for_module;
1945 fra.me.has_broke = 0;
1946 fra.me.REG_size = 2;
1947 fra.me.REG[0] = NIT_NULL;
1948 fra.me.REG[1] = NIT_NULL;
1949 fra.me.REG[0] = p0;
1950 fra.me.REG[1] = p1;
1951 /* ./metamodel//abstractmetamodel.nit:376 */
1952 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
1953 fra.me.REG[0] = CALL_abstractmetamodel___MMModule_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1954 goto label1;
1955 label1: while(0);
1956 stack_frame_head = fra.me.prev;
1957 return fra.me.REG[0];
1958 }
1959 void abstractmetamodel___MMLocalClass___new_global(val_t p0){
1960 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1961 val_t REGB0;
1962 val_t tmp;
1963 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1964 fra.me.file = LOCATE_abstractmetamodel;
1965 fra.me.line = 379;
1966 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___new_global;
1967 fra.me.has_broke = 0;
1968 fra.me.REG_size = 4;
1969 fra.me.REG[0] = NIT_NULL;
1970 fra.me.REG[1] = NIT_NULL;
1971 fra.me.REG[2] = NIT_NULL;
1972 fra.me.REG[3] = NIT_NULL;
1973 fra.me.REG[0] = p0;
1974 /* ./metamodel//abstractmetamodel.nit:382 */
1975 fra.me.REG[1] = NEW_MMGlobalClass_abstractmetamodel___MMGlobalClass___init(fra.me.REG[0]);
1976 /* ./metamodel//abstractmetamodel.nit:383 */
1977 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0])!=NIT_NULL);
1978 if (UNTAG_Bool(REGB0)) {
1979 } else {
1980 nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_abstractmetamodel, 383);
1981 }
1982 fra.me.REG[2] = ATTR_abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0]);
1983 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____global_classes(fra.me.REG[2])!=NIT_NULL);
1984 if (UNTAG_Bool(REGB0)) {
1985 } else {
1986 nit_abort("Uninitialized attribute %s", "_global_classes", LOCATE_abstractmetamodel, 383);
1987 }
1988 fra.me.REG[2] = ATTR_abstractmetamodel___MMModule____global_classes(fra.me.REG[2]);
1989 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1990 /* ./metamodel//abstractmetamodel.nit:384 */
1991 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0])!=NIT_NULL);
1992 if (UNTAG_Bool(REGB0)) {
1993 } else {
1994 nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_abstractmetamodel, 384);
1995 }
1996 fra.me.REG[2] = ATTR_abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0]);
1997 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____global_class_by_name(fra.me.REG[2])!=NIT_NULL);
1998 if (UNTAG_Bool(REGB0)) {
1999 } else {
2000 nit_abort("Uninitialized attribute %s", "_global_class_by_name", LOCATE_abstractmetamodel, 384);
2001 }
2002 fra.me.REG[2] = ATTR_abstractmetamodel___MMModule____global_class_by_name(fra.me.REG[2]);
2003 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
2004 CALL_abstract_collection___Map_____braeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[1]);
2005 /* ./metamodel//abstractmetamodel.nit:385 */
2006 CALL_abstractmetamodel___MMLocalClass___set_global(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2007 stack_frame_head = fra.me.prev;
2008 return;
2009 }
2010 void abstractmetamodel___MMLocalClass___set_global(val_t p0, val_t p1){
2011 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2012 val_t REGB0;
2013 val_t tmp;
2014 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2015 fra.me.file = LOCATE_abstractmetamodel;
2016 fra.me.line = 388;
2017 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___set_global;
2018 fra.me.has_broke = 0;
2019 fra.me.REG_size = 2;
2020 fra.me.REG[0] = NIT_NULL;
2021 fra.me.REG[1] = NIT_NULL;
2022 fra.me.REG[0] = p0;
2023 fra.me.REG[1] = p1;
2024 /* ./metamodel//abstractmetamodel.nit:393 */
2025 ATTR_abstractmetamodel___MMLocalClass____global(fra.me.REG[0]) = fra.me.REG[1];
2026 /* ./metamodel//abstractmetamodel.nit:394 */
2027 fra.me.REG[1] = ATTR_abstractmetamodel___MMLocalClass____global(fra.me.REG[0]);
2028 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2029 if (UNTAG_Bool(REGB0)) {
2030 nit_abort("Reciever is null", NULL, LOCATE_abstractmetamodel, 394);
2031 }
2032 CALL_abstractmetamodel___MMGlobalClass___register_local_class(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2033 /* ./metamodel//abstractmetamodel.nit:395 */
2034 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0])!=NIT_NULL);
2035 if (UNTAG_Bool(REGB0)) {
2036 } else {
2037 nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_abstractmetamodel, 395);
2038 }
2039 fra.me.REG[1] = ATTR_abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0]);
2040 CALL_abstractmetamodel___MMModule___register_global_class(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2041 stack_frame_head = fra.me.prev;
2042 return;
2043 }
2044 val_t abstractmetamodel___MMLocalClass___has_global_property_by_name(val_t p0, val_t p1){
2045 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2046 val_t REGB0;
2047 val_t REGB1;
2048 val_t REGB2;
2049 val_t tmp;
2050 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2051 fra.me.file = LOCATE_abstractmetamodel;
2052 fra.me.line = 398;
2053 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___has_global_property_by_name;
2054 fra.me.has_broke = 0;
2055 fra.me.REG_size = 3;
2056 fra.me.REG[0] = NIT_NULL;
2057 fra.me.REG[1] = NIT_NULL;
2058 fra.me.REG[2] = NIT_NULL;
2059 fra.me.REG[0] = p0;
2060 fra.me.REG[1] = p1;
2061 /* ./metamodel//abstractmetamodel.nit:402 */
2062 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
2063 if (UNTAG_Bool(REGB0)) {
2064 } else {
2065 nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_abstractmetamodel, 402);
2066 }
2067 fra.me.REG[2] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]);
2068 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2069 if (UNTAG_Bool(REGB0)) {
2070 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
2071 if (UNTAG_Bool(REGB0)) {
2072 } else {
2073 nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_abstractmetamodel, 402);
2074 }
2075 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]);
2076 fra.me.REG[1] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2077 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2078 if (UNTAG_Bool(REGB0)) {
2079 nit_abort("Reciever is null", NULL, LOCATE_abstractmetamodel, 402);
2080 }
2081 /* ./../lib/standard//collection//array.nit:23 */
2082 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
2083 if (UNTAG_Bool(REGB0)) {
2084 } else {
2085 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
2086 }
2087 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
2088 /* ./metamodel//abstractmetamodel.nit:402 */
2089 REGB1 = TAG_Int(1);
2090 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
2091 if (UNTAG_Bool(REGB2)) {
2092 } else {
2093 /* ./../lib/standard//kernel.nit:207 */
2094 REGB1 = TAG_Bool((REGB0)==(REGB1));
2095 /* ./metamodel//abstractmetamodel.nit:402 */
2096 REGB2 = REGB1;
2097 }
2098 } else {
2099 REGB1 = TAG_Bool(false);
2100 REGB2 = REGB1;
2101 }
2102 goto label1;
2103 label1: while(0);
2104 stack_frame_head = fra.me.prev;
2105 return REGB2;
2106 }
2107 val_t abstractmetamodel___MMLocalClass___get_property_by_name(val_t p0, val_t p1){
2108 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2109 val_t REGB0;
2110 val_t tmp;
2111 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2112 fra.me.file = LOCATE_abstractmetamodel;
2113 fra.me.line = 405;
2114 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___get_property_by_name;
2115 fra.me.has_broke = 0;
2116 fra.me.REG_size = 2;
2117 fra.me.REG[0] = NIT_NULL;
2118 fra.me.REG[1] = NIT_NULL;
2119 fra.me.REG[0] = p0;
2120 fra.me.REG[1] = p1;
2121 /* ./metamodel//abstractmetamodel.nit:409 */
2122 REGB0 = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2123 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2124 if (UNTAG_Bool(REGB0)) {
2125 nit_abort("Aborted", NULL, LOCATE_abstractmetamodel, 409);
2126 }
2127 /* ./metamodel//abstractmetamodel.nit:410 */
2128 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
2129 if (UNTAG_Bool(REGB0)) {
2130 } else {
2131 nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_abstractmetamodel, 410);
2132 }
2133 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]);
2134 fra.me.REG[1] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2135 /* ./metamodel//abstractmetamodel.nit:411 */
2136 fra.me.REG[1] = CALL_abstract_collection___Collection___first(fra.me.REG[1])(fra.me.REG[1]);
2137 goto label1;
2138 label1: while(0);
2139 stack_frame_head = fra.me.prev;
2140 return fra.me.REG[1];
2141 }
2142 val_t abstractmetamodel___MMLocalClass___attribute(val_t p0, val_t p1){
2143 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2144 val_t tmp;
2145 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2146 fra.me.file = LOCATE_abstractmetamodel;
2147 fra.me.line = 414;
2148 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___attribute;
2149 fra.me.has_broke = 0;
2150 fra.me.REG_size = 2;
2151 fra.me.REG[0] = NIT_NULL;
2152 fra.me.REG[1] = NIT_NULL;
2153 fra.me.REG[0] = p0;
2154 fra.me.REG[1] = p1;
2155 /* ./metamodel//abstractmetamodel.nit:418 */
2156 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2157 goto label1;
2158 label1: while(0);
2159 stack_frame_head = fra.me.prev;
2160 return fra.me.REG[1];
2161 }
2162 val_t abstractmetamodel___MMLocalClass___method(val_t p0, val_t p1){
2163 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2164 val_t REGB0;
2165 val_t tmp;
2166 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2167 fra.me.file = LOCATE_abstractmetamodel;
2168 fra.me.line = 421;
2169 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___method;
2170 fra.me.has_broke = 0;
2171 fra.me.REG_size = 2;
2172 fra.me.REG[0] = NIT_NULL;
2173 fra.me.REG[1] = NIT_NULL;
2174 fra.me.REG[0] = p0;
2175 fra.me.REG[1] = p1;
2176 /* ./metamodel//abstractmetamodel.nit:425 */
2177 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
2178 if (UNTAG_Bool(REGB0)) {
2179 } else {
2180 nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_abstractmetamodel, 425);
2181 }
2182 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]);
2183 fra.me.REG[1] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2184 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2185 if (UNTAG_Bool(REGB0)) {
2186 nit_abort("Reciever is null", NULL, LOCATE_abstractmetamodel, 425);
2187 }
2188 fra.me.REG[1] = CALL_abstract_collection___Collection___first(fra.me.REG[1])(fra.me.REG[1]);
2189 goto label1;
2190 label1: while(0);
2191 stack_frame_head = fra.me.prev;
2192 return fra.me.REG[1];
2193 }
2194 val_t abstractmetamodel___MMLocalClass___select_method(val_t p0, val_t p1){
2195 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2196 val_t REGB0;
2197 val_t tmp;
2198 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2199 fra.me.file = LOCATE_abstractmetamodel;
2200 fra.me.line = 428;
2201 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___select_method;
2202 fra.me.has_broke = 0;
2203 fra.me.REG_size = 2;
2204 fra.me.REG[0] = NIT_NULL;
2205 fra.me.REG[1] = NIT_NULL;
2206 fra.me.REG[0] = p0;
2207 fra.me.REG[1] = p1;
2208 /* ./metamodel//abstractmetamodel.nit:432 */
2209 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___method(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2210 /* ./metamodel//abstractmetamodel.nit:433 */
2211 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2212 /* ./metamodel//abstractmetamodel.nit:434 */
2213 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
2214 if (UNTAG_Bool(REGB0)) {
2215 } else {
2216 nit_abort("Assert failed", NULL, LOCATE_abstractmetamodel, 434);
2217 }
2218 /* ./metamodel//abstractmetamodel.nit:435 */
2219 goto label1;
2220 label1: while(0);
2221 stack_frame_head = fra.me.prev;
2222 return fra.me.REG[1];
2223 }
2224 val_t abstractmetamodel___MMLocalClass___select_attribute(val_t p0, val_t p1){
2225 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2226 val_t REGB0;
2227 val_t tmp;
2228 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2229 fra.me.file = LOCATE_abstractmetamodel;
2230 fra.me.line = 438;
2231 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___select_attribute;
2232 fra.me.has_broke = 0;
2233 fra.me.REG_size = 2;
2234 fra.me.REG[0] = NIT_NULL;
2235 fra.me.REG[1] = NIT_NULL;
2236 fra.me.REG[0] = p0;
2237 fra.me.REG[1] = p1;
2238 /* ./metamodel//abstractmetamodel.nit:442 */
2239 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___attribute(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2240 /* ./metamodel//abstractmetamodel.nit:443 */
2241 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2242 /* ./metamodel//abstractmetamodel.nit:444 */
2243 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
2244 if (UNTAG_Bool(REGB0)) {
2245 } else {
2246 nit_abort("Assert failed", NULL, LOCATE_abstractmetamodel, 444);
2247 }
2248 /* ./metamodel//abstractmetamodel.nit:445 */
2249 goto label1;
2250 label1: while(0);
2251 stack_frame_head = fra.me.prev;
2252 return fra.me.REG[1];
2253 }
2254 val_t abstractmetamodel___MMLocalClass___super_methods_named(val_t p0, val_t p1){
2255 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
2256 val_t REGB0;
2257 val_t REGB1;
2258 val_t tmp;
2259 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2260 fra.me.file = LOCATE_abstractmetamodel;
2261 fra.me.line = 448;
2262 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___super_methods_named;
2263 fra.me.has_broke = 0;
2264 fra.me.REG_size = 6;
2265 fra.me.REG[0] = NIT_NULL;
2266 fra.me.REG[1] = NIT_NULL;
2267 fra.me.REG[2] = NIT_NULL;
2268 fra.me.REG[3] = NIT_NULL;
2269 fra.me.REG[4] = NIT_NULL;
2270 fra.me.REG[5] = NIT_NULL;
2271 fra.me.REG[0] = p0;
2272 fra.me.REG[1] = p1;
2273 /* ./metamodel//abstractmetamodel.nit:452 */
2274 fra.me.REG[2] = NEW_Array_array___Array___init();
2275 /* ./metamodel//abstractmetamodel.nit:453 */
2276 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
2277 fra.me.REG[3] = CALL_partial_order___PartialOrderElement___greaters(fra.me.REG[3])(fra.me.REG[3]);
2278 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_abstractmetamodel___MMLocalClass___super_methods_named_1));
2279 /* ./metamodel//abstractmetamodel.nit:456 */
2280 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
2281 fra.me.REG[0] = CALL_partial_order___PartialOrderElement___order(fra.me.REG[0])(fra.me.REG[0]);
2282 fra.me.REG[0] = CALL_partial_order___PartialOrder___select_smallests(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
2283 fra.me.REG[2] = fra.me.REG[0];
2284 /* ./metamodel//abstractmetamodel.nit:457 */
2285 fra.me.REG[0] = NEW_Array_array___Array___init();
2286 /* ./../lib/standard//collection//array.nit:234 */
2287 REGB0 = TAG_Int(0);
2288 /* ./../lib/standard//collection//array.nit:235 */
2289 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2290 if (UNTAG_Bool(REGB1)) {
2291 } else {
2292 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
2293 }
2294 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
2295 /* ./../lib/standard//collection//array.nit:236 */
2296 fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[2]);
2297 /* ./../lib/standard//collection//array.nit:237 */
2298 while(1) {
2299 /* ./../lib/standard//collection//array.nit:23 */
2300 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2301 if (UNTAG_Bool(REGB1)) {
2302 } else {
2303 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
2304 }
2305 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
2306 /* ./../lib/standard//kernel.nit:212 */
2307 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2308 /* ./../lib/standard//collection//array.nit:237 */
2309 if (UNTAG_Bool(REGB1)) {
2310 /* ./../lib/standard//collection//array.nit:238 */
2311 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2312 if (UNTAG_Bool(REGB1)) {
2313 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
2314 }
2315 /* ./../lib/standard//collection//array.nit:654 */
2316 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
2317 /* ./metamodel//abstractmetamodel.nit:459 */
2318 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___method(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
2319 /* ./metamodel//abstractmetamodel.nit:461 */
2320 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2321 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
2322 /* ./../lib/standard//collection//array.nit:239 */
2323 REGB1 = TAG_Int(1);
2324 /* ./../lib/standard//kernel.nit:215 */
2325 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
2326 /* ./../lib/standard//collection//array.nit:239 */
2327 REGB0 = REGB1;
2328 } else {
2329 /* ./../lib/standard//collection//array.nit:237 */
2330 goto label2;
2331 }
2332 }
2333 label2: while(0);
2334 /* ./metamodel//abstractmetamodel.nit:463 */
2335 goto label3;
2336 label3: while(0);
2337 stack_frame_head = fra.me.prev;
2338 return fra.me.REG[0];
2339 }
2340 void OC_abstractmetamodel___MMLocalClass___super_methods_named_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
2341 struct {struct stack_frame_t me;} fra;
2342 val_t REGB0;
2343 fun_t CREG[1];
2344 val_t tmp;
2345 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2346 fra.me.file = LOCATE_abstractmetamodel;
2347 fra.me.line = 0;
2348 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___super_methods_named;
2349 fra.me.has_broke = 0;
2350 fra.me.REG_size = 1;
2351 fra.me.REG[0] = NIT_NULL;
2352 fra.me.closure_ctx = closctx_param;
2353 fra.me.closure_funs = CREG;
2354 fra.me.REG[0] = p0;
2355 CREG[0] = clos_fun0;
2356 /* ./metamodel//abstractmetamodel.nit:454 */
2357 REGB0 = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
2358 if (UNTAG_Bool(REGB0)) {
2359 CALL_abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
2360 }
2361 stack_frame_head = fra.me.prev;
2362 return;
2363 }
2364 void abstractmetamodel___MMLocalClass___register_local_property(val_t p0, val_t p1){
2365 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2366 val_t REGB0;
2367 val_t REGB1;
2368 val_t tmp;
2369 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2370 fra.me.file = LOCATE_abstractmetamodel;
2371 fra.me.line = 466;
2372 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___register_local_property;
2373 fra.me.has_broke = 0;
2374 fra.me.REG_size = 4;
2375 fra.me.REG[0] = NIT_NULL;
2376 fra.me.REG[1] = NIT_NULL;
2377 fra.me.REG[2] = NIT_NULL;
2378 fra.me.REG[3] = NIT_NULL;
2379 fra.me.REG[0] = p0;
2380 fra.me.REG[1] = p1;
2381 /* ./metamodel//abstractmetamodel.nit:469 */
2382 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0])!=NIT_NULL);
2383 if (UNTAG_Bool(REGB0)) {
2384 } else {
2385 nit_abort("Uninitialized attribute %s", "_local_property_by_global", LOCATE_abstractmetamodel, 469);
2386 }
2387 fra.me.REG[2] = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0]);
2388 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[1])(fra.me.REG[1]);
2389 CALL_abstract_collection___Map_____braeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[1]);
2390 /* ./metamodel//abstractmetamodel.nit:470 */
2391 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[1])(fra.me.REG[1]);
2392 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[0]));
2393 if (UNTAG_Bool(REGB0)) {
2394 } else {
2395 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
2396 REGB0 = REGB1;
2397 }
2398 if (UNTAG_Bool(REGB0)) {
2399 /* ./metamodel//abstractmetamodel.nit:471 */
2400 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0])!=NIT_NULL);
2401 if (UNTAG_Bool(REGB0)) {
2402 } else {
2403 nit_abort("Uninitialized attribute %s", "_local_local_properties", LOCATE_abstractmetamodel, 471);
2404 }
2405 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0]);
2406 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2407 }
2408 stack_frame_head = fra.me.prev;
2409 return;
2410 }
2411 void abstractmetamodel___MMLocalClass___register_global_property(val_t p0, val_t p1){
2412 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
2413 val_t REGB0;
2414 val_t tmp;
2415 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2416 fra.me.file = LOCATE_abstractmetamodel;
2417 fra.me.line = 475;
2418 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___register_global_property;
2419 fra.me.has_broke = 0;
2420 fra.me.REG_size = 6;
2421 fra.me.REG[0] = NIT_NULL;
2422 fra.me.REG[1] = NIT_NULL;
2423 fra.me.REG[2] = NIT_NULL;
2424 fra.me.REG[3] = NIT_NULL;
2425 fra.me.REG[4] = NIT_NULL;
2426 fra.me.REG[5] = NIT_NULL;
2427 fra.me.REG[0] = p0;
2428 fra.me.REG[1] = p1;
2429 /* ./metamodel//abstractmetamodel.nit:478 */
2430 fra.me.REG[2] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[1])(fra.me.REG[1]);
2431 /* ./metamodel//abstractmetamodel.nit:479 */
2432 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
2433 /* ./metamodel//abstractmetamodel.nit:480 */
2434 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
2435 if (UNTAG_Bool(REGB0)) {
2436 } else {
2437 nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_abstractmetamodel, 480);
2438 }
2439 fra.me.REG[4] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]);
2440 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
2441 if (UNTAG_Bool(REGB0)) {
2442 /* ./metamodel//abstractmetamodel.nit:481 */
2443 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
2444 if (UNTAG_Bool(REGB0)) {
2445 } else {
2446 nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_abstractmetamodel, 481);
2447 }
2448 fra.me.REG[4] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]);
2449 fra.me.REG[4] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
2450 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2451 if (UNTAG_Bool(REGB0)) {
2452 nit_abort("Reciever is null", NULL, LOCATE_abstractmetamodel, 481);
2453 }
2454 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
2455 } else {
2456 /* ./metamodel//abstractmetamodel.nit:483 */
2457 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
2458 if (UNTAG_Bool(REGB0)) {
2459 } else {
2460 nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_abstractmetamodel, 483);
2461 }
2462 fra.me.REG[4] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]);
2463 REGB0 = TAG_Int(1);
2464 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
2465 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
2466 CALL_abstract_collection___Map_____braeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3], fra.me.REG[5]);
2467 }
2468 /* ./metamodel//abstractmetamodel.nit:485 */
2469 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0])!=NIT_NULL);
2470 if (UNTAG_Bool(REGB0)) {
2471 } else {
2472 nit_abort("Uninitialized attribute %s", "_global_properties", LOCATE_abstractmetamodel, 485);
2473 }
2474 fra.me.REG[5] = ATTR_abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0]);
2475 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
2476 /* ./metamodel//abstractmetamodel.nit:486 */
2477 CALL_abstractmetamodel___MMLocalClass___register_local_property(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
2478 stack_frame_head = fra.me.prev;
2479 return;
2480 }
2481 val_t abstractmetamodel___MMLocalClass___has_global_property(val_t p0, val_t p1){
2482 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2483 val_t REGB0;
2484 val_t tmp;
2485 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2486 fra.me.file = LOCATE_abstractmetamodel;
2487 fra.me.line = 489;
2488 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___has_global_property;
2489 fra.me.has_broke = 0;
2490 fra.me.REG_size = 2;
2491 fra.me.REG[0] = NIT_NULL;
2492 fra.me.REG[1] = NIT_NULL;
2493 fra.me.REG[0] = p0;
2494 fra.me.REG[1] = p1;
2495 /* ./metamodel//abstractmetamodel.nit:492 */
2496 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0])!=NIT_NULL);
2497 if (UNTAG_Bool(REGB0)) {
2498 } else {
2499 nit_abort("Uninitialized attribute %s", "_global_properties", LOCATE_abstractmetamodel, 492);
2500 }
2501 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0]);
2502 REGB0 = CALL_abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2503 goto label1;
2504 label1: while(0);
2505 stack_frame_head = fra.me.prev;
2506 return REGB0;
2507 }
2508 val_t abstractmetamodel___MMLocalClass_____bra(val_t p0, val_t p1){
2509 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2510 val_t REGB0;
2511 val_t tmp;
2512 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2513 fra.me.file = LOCATE_abstractmetamodel;
2514 fra.me.line = 495;
2515 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass_____bra;
2516 fra.me.has_broke = 0;
2517 fra.me.REG_size = 2;
2518 fra.me.REG[0] = NIT_NULL;
2519 fra.me.REG[1] = NIT_NULL;
2520 fra.me.REG[0] = p0;
2521 fra.me.REG[1] = p1;
2522 /* ./metamodel//abstractmetamodel.nit:498 */
2523 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0])!=NIT_NULL);
2524 if (UNTAG_Bool(REGB0)) {
2525 } else {
2526 nit_abort("Uninitialized attribute %s", "_local_property_by_global", LOCATE_abstractmetamodel, 498);
2527 }
2528 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0]);
2529 fra.me.REG[1] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2530 goto label1;
2531 label1: while(0);
2532 stack_frame_head = fra.me.prev;
2533 return fra.me.REG[1];
2534 }
2535 val_t abstractmetamodel___MMLocalClass___context(val_t p0){
2536 struct {struct stack_frame_t me;} fra;
2537 val_t tmp;
2538 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2539 fra.me.file = LOCATE_abstractmetamodel;
2540 fra.me.line = 501;
2541 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___context;
2542 fra.me.has_broke = 0;
2543 fra.me.REG_size = 1;
2544 fra.me.REG[0] = NIT_NULL;
2545 fra.me.REG[0] = p0;
2546 /* ./metamodel//abstractmetamodel.nit:502 */
2547 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
2548 fra.me.REG[0] = CALL_abstractmetamodel___MMModule___context(fra.me.REG[0])(fra.me.REG[0]);
2549 goto label1;
2550 label1: while(0);
2551 stack_frame_head = fra.me.prev;
2552 return fra.me.REG[0];
2553 }
2554 val_t abstractmetamodel___MMLocalClass___to_s(val_t p0){
2555 struct {struct stack_frame_t me;} fra;
2556 val_t REGB0;
2557 val_t tmp;
2558 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2559 fra.me.file = LOCATE_abstractmetamodel;
2560 fra.me.line = 504;
2561 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___to_s;
2562 fra.me.has_broke = 0;
2563 fra.me.REG_size = 1;
2564 fra.me.REG[0] = NIT_NULL;
2565 fra.me.REG[0] = p0;
2566 /* ./metamodel//abstractmetamodel.nit:506 */
2567 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____name(fra.me.REG[0])!=NIT_NULL);
2568 if (UNTAG_Bool(REGB0)) {
2569 } else {
2570 nit_abort("Uninitialized attribute %s", "_name", LOCATE_abstractmetamodel, 506);
2571 }
2572 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____name(fra.me.REG[0]);
2573 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2574 goto label1;
2575 label1: while(0);
2576 stack_frame_head = fra.me.prev;
2577 return fra.me.REG[0];
2578 }
2579 val_t abstractmetamodel___MMLocalClass___total_order_compare(val_t p0, val_t p1){
2580 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2581 val_t REGB0;
2582 val_t REGB1;
2583 val_t REGB2;
2584 val_t REGB3;
2585 val_t tmp;
2586 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2587 fra.me.file = LOCATE_abstractmetamodel;
2588 fra.me.line = 509;
2589 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___total_order_compare;
2590 fra.me.has_broke = 0;
2591 fra.me.REG_size = 4;
2592 fra.me.REG[0] = NIT_NULL;
2593 fra.me.REG[1] = NIT_NULL;
2594 fra.me.REG[2] = NIT_NULL;
2595 fra.me.REG[3] = NIT_NULL;
2596 fra.me.REG[0] = p0;
2597 fra.me.REG[1] = p1;
2598 /* ./metamodel//abstractmetamodel.nit:513 */
2599 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[1]));
2600 if (UNTAG_Bool(REGB0)) {
2601 } else {
2602 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2603 REGB0 = REGB1;
2604 }
2605 if (UNTAG_Bool(REGB0)) {
2606 /* ./metamodel//abstractmetamodel.nit:514 */
2607 REGB0 = TAG_Int(0);
2608 goto label1;
2609 } else {
2610 /* ./metamodel//abstractmetamodel.nit:515 */
2611 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
2612 fra.me.REG[2] = CALL_abstractmetamodel___MMModule___mhe(fra.me.REG[2])(fra.me.REG[2]);
2613 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
2614 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2615 if (UNTAG_Bool(REGB1)) {
2616 nit_abort("Reciever is null", NULL, LOCATE_abstractmetamodel, 515);
2617 }
2618 REGB1 = CALL_partial_order___PartialOrderElement_____l(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2619 if (UNTAG_Bool(REGB1)) {
2620 /* ./metamodel//abstractmetamodel.nit:516 */
2621 REGB1 = TAG_Int(1);
2622 REGB0 = REGB1;
2623 goto label1;
2624 } else {
2625 /* ./metamodel//abstractmetamodel.nit:517 */
2626 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
2627 fra.me.REG[3] = CALL_abstractmetamodel___MMModule___mhe(fra.me.REG[3])(fra.me.REG[3]);
2628 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
2629 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2630 if (UNTAG_Bool(REGB1)) {
2631 nit_abort("Reciever is null", NULL, LOCATE_abstractmetamodel, 517);
2632 }
2633 REGB1 = CALL_partial_order___PartialOrderElement_____l(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
2634 if (UNTAG_Bool(REGB1)) {
2635 /* ./metamodel//abstractmetamodel.nit:518 */
2636 REGB1 = TAG_Int(1);
2637 /* ./../lib/standard//kernel.nit:216 */
2638 REGB1 = TAG_Int(-UNTAG_Int(REGB1));
2639 /* ./metamodel//abstractmetamodel.nit:518 */
2640 REGB0 = REGB1;
2641 goto label1;
2642 }
2643 }
2644 }
2645 /* ./metamodel//abstractmetamodel.nit:520 */
2646 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
2647 REGB1 = CALL_partial_order___PartialOrderElement___rank(fra.me.REG[2])(fra.me.REG[2]);
2648 /* ./metamodel//abstractmetamodel.nit:521 */
2649 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[1])(fra.me.REG[1]);
2650 REGB2 = CALL_partial_order___PartialOrderElement___rank(fra.me.REG[2])(fra.me.REG[2]);
2651 /* ./../lib/standard//kernel.nit:214 */
2652 REGB3 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
2653 /* ./metamodel//abstractmetamodel.nit:522 */
2654 if (UNTAG_Bool(REGB3)) {
2655 /* ./metamodel//abstractmetamodel.nit:523 */
2656 REGB3 = TAG_Int(1);
2657 REGB0 = REGB3;
2658 goto label1;
2659 } else {
2660 /* ./../lib/standard//kernel.nit:214 */
2661 REGB1 = TAG_Bool(UNTAG_Int(REGB2)>UNTAG_Int(REGB1));
2662 /* ./metamodel//abstractmetamodel.nit:524 */
2663 if (UNTAG_Bool(REGB1)) {
2664 /* ./metamodel//abstractmetamodel.nit:525 */
2665 REGB1 = TAG_Int(1);
2666 /* ./../lib/standard//kernel.nit:216 */
2667 REGB1 = TAG_Int(-UNTAG_Int(REGB1));
2668 /* ./metamodel//abstractmetamodel.nit:525 */
2669 REGB0 = REGB1;
2670 goto label1;
2671 } else {
2672 /* ./metamodel//abstractmetamodel.nit:527 */
2673 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[1])(fra.me.REG[1]);
2674 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
2675 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
2676 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2677 REGB1 = CALL_kernel___Comparable_____leqg(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2678 REGB0 = REGB1;
2679 goto label1;
2680 }
2681 }
2682 label1: while(0);
2683 stack_frame_head = fra.me.prev;
2684 return REGB0;
2685 }
2686 val_t abstractmetamodel___MMGlobalProperty___intro(val_t p0){
2687 struct {struct stack_frame_t me;} fra;
2688 val_t REGB0;
2689 val_t tmp;
2690 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2691 fra.me.file = LOCATE_abstractmetamodel;
2692 fra.me.line = 536;
2693 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___intro;
2694 fra.me.has_broke = 0;
2695 fra.me.REG_size = 1;
2696 fra.me.REG[0] = NIT_NULL;
2697 fra.me.REG[0] = p0;
2698 /* ./metamodel//abstractmetamodel.nit:536 */
2699 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalProperty____intro(fra.me.REG[0])!=NIT_NULL);
2700 if (UNTAG_Bool(REGB0)) {
2701 } else {
2702 nit_abort("Uninitialized attribute %s", "_intro", LOCATE_abstractmetamodel, 536);
2703 }
2704 fra.me.REG[0] = ATTR_abstractmetamodel___MMGlobalProperty____intro(fra.me.REG[0]);
2705 stack_frame_head = fra.me.prev;
2706 return fra.me.REG[0];
2707 }
2708 val_t abstractmetamodel___MMGlobalProperty___local_class(val_t p0){
2709 struct {struct stack_frame_t me;} fra;
2710 val_t tmp;
2711 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2712 fra.me.file = LOCATE_abstractmetamodel;
2713 fra.me.line = 539;
2714 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___local_class;
2715 fra.me.has_broke = 0;
2716 fra.me.REG_size = 1;
2717 fra.me.REG[0] = NIT_NULL;
2718 fra.me.REG[0] = p0;
2719 /* ./metamodel//abstractmetamodel.nit:542 */
2720 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
2721 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
2722 goto label1;
2723 label1: while(0);
2724 stack_frame_head = fra.me.prev;
2725 return fra.me.REG[0];
2726 }
2727 val_t abstractmetamodel___MMGlobalProperty___property_hierarchy(val_t p0){
2728 struct {struct stack_frame_t me;} fra;
2729 val_t REGB0;
2730 val_t tmp;
2731 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2732 fra.me.file = LOCATE_abstractmetamodel;
2733 fra.me.line = 545;
2734 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___property_hierarchy;
2735 fra.me.has_broke = 0;
2736 fra.me.REG_size = 1;
2737 fra.me.REG[0] = NIT_NULL;
2738 fra.me.REG[0] = p0;
2739 /* ./metamodel//abstractmetamodel.nit:545 */
2740 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalProperty____property_hierarchy(fra.me.REG[0])!=NIT_NULL);
2741 if (UNTAG_Bool(REGB0)) {
2742 } else {
2743 nit_abort("Uninitialized attribute %s", "_property_hierarchy", LOCATE_abstractmetamodel, 545);
2744 }
2745 fra.me.REG[0] = ATTR_abstractmetamodel___MMGlobalProperty____property_hierarchy(fra.me.REG[0]);
2746 stack_frame_head = fra.me.prev;
2747 return fra.me.REG[0];
2748 }
2749 void abstractmetamodel___MMGlobalProperty___init(val_t p0, val_t p1, int* init_table){
2750 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMGlobalProperty].i;
2751 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2752 val_t tmp;
2753 if (init_table[itpos5]) return;
2754 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2755 fra.me.file = LOCATE_abstractmetamodel;
2756 fra.me.line = 548;
2757 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___init;
2758 fra.me.has_broke = 0;
2759 fra.me.REG_size = 3;
2760 fra.me.REG[0] = NIT_NULL;
2761 fra.me.REG[1] = NIT_NULL;
2762 fra.me.REG[2] = NIT_NULL;
2763 fra.me.REG[0] = p0;
2764 fra.me.REG[1] = p1;
2765 /* ./metamodel//abstractmetamodel.nit:551 */
2766 ATTR_abstractmetamodel___MMGlobalProperty____intro(fra.me.REG[0]) = fra.me.REG[1];
2767 /* ./metamodel//abstractmetamodel.nit:552 */
2768 fra.me.REG[2] = NEW_Array_array___Array___init();
2769 CALL_abstractmetamodel___MMGlobalProperty___add_local_property(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
2770 stack_frame_head = fra.me.prev;
2771 init_table[itpos5] = 1;
2772 return;
2773 }
2774 val_t abstractmetamodel___MMGlobalProperty___to_s(val_t p0){
2775 struct {struct stack_frame_t me;} fra;
2776 val_t tmp;
2777 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2778 fra.me.file = LOCATE_abstractmetamodel;
2779 fra.me.line = 555;
2780 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___to_s;
2781 fra.me.has_broke = 0;
2782 fra.me.REG_size = 1;
2783 fra.me.REG[0] = NIT_NULL;
2784 fra.me.REG[0] = p0;
2785 /* ./metamodel//abstractmetamodel.nit:555 */
2786 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
2787 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[0])(fra.me.REG[0]);
2788 goto label1;
2789 label1: while(0);
2790 stack_frame_head = fra.me.prev;
2791 return fra.me.REG[0];
2792 }
2793 void abstractmetamodel___MMGlobalProperty___add_local_property(val_t p0, val_t p1, val_t p2){
2794 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2795 val_t REGB0;
2796 val_t tmp;
2797 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2798 fra.me.file = LOCATE_abstractmetamodel;
2799 fra.me.line = 557;
2800 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___add_local_property;
2801 fra.me.has_broke = 0;
2802 fra.me.REG_size = 3;
2803 fra.me.REG[0] = NIT_NULL;
2804 fra.me.REG[1] = NIT_NULL;
2805 fra.me.REG[2] = NIT_NULL;
2806 fra.me.REG[0] = p0;
2807 fra.me.REG[1] = p1;
2808 fra.me.REG[2] = p2;
2809 /* ./metamodel//abstractmetamodel.nit:560 */
2810 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalProperty____property_hierarchy(fra.me.REG[0])!=NIT_NULL);
2811 if (UNTAG_Bool(REGB0)) {
2812 } else {
2813 nit_abort("Uninitialized attribute %s", "_property_hierarchy", LOCATE_abstractmetamodel, 560);
2814 }
2815 fra.me.REG[0] = ATTR_abstractmetamodel___MMGlobalProperty____property_hierarchy(fra.me.REG[0]);
2816 fra.me.REG[2] = CALL_partial_order___PartialOrder___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
2817 ATTR_abstractmetamodel___MMLocalProperty____prhe(fra.me.REG[1]) = fra.me.REG[2];
2818 stack_frame_head = fra.me.prev;
2819 return;
2820 }
2821 val_t abstractmetamodel___MMGlobalProperty___is_attribute(val_t p0){
2822 struct {struct stack_frame_t me;} fra;
2823 val_t REGB0;
2824 val_t tmp;
2825 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2826 fra.me.file = LOCATE_abstractmetamodel;
2827 fra.me.line = 563;
2828 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___is_attribute;
2829 fra.me.has_broke = 0;
2830 fra.me.REG_size = 1;
2831 fra.me.REG[0] = NIT_NULL;
2832 fra.me.REG[0] = p0;
2833 /* ./metamodel//abstractmetamodel.nit:564 */
2834 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
2835 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
2836 goto label1;
2837 label1: while(0);
2838 stack_frame_head = fra.me.prev;
2839 return REGB0;
2840 }
2841 val_t abstractmetamodel___MMGlobalProperty___is_method(val_t p0){
2842 struct {struct stack_frame_t me;} fra;
2843 val_t REGB0;
2844 val_t tmp;
2845 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2846 fra.me.file = LOCATE_abstractmetamodel;
2847 fra.me.line = 566;
2848 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___is_method;
2849 fra.me.has_broke = 0;
2850 fra.me.REG_size = 1;
2851 fra.me.REG[0] = NIT_NULL;
2852 fra.me.REG[0] = p0;
2853 /* ./metamodel//abstractmetamodel.nit:567 */
2854 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
2855 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
2856 goto label1;
2857 label1: while(0);
2858 stack_frame_head = fra.me.prev;
2859 return REGB0;
2860 }
2861 val_t abstractmetamodel___MMGlobalProperty___is_init(val_t p0){
2862 struct {struct stack_frame_t me;} fra;
2863 val_t REGB0;
2864 val_t tmp;
2865 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2866 fra.me.file = LOCATE_abstractmetamodel;
2867 fra.me.line = 569;
2868 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___is_init;
2869 fra.me.has_broke = 0;
2870 fra.me.REG_size = 1;
2871 fra.me.REG[0] = NIT_NULL;
2872 fra.me.REG[0] = p0;
2873 /* ./metamodel//abstractmetamodel.nit:569 */
2874 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalProperty____is_init(fra.me.REG[0])!=NIT_NULL);
2875 if (UNTAG_Bool(REGB0)) {
2876 } else {
2877 nit_abort("Uninitialized attribute %s", "_is_init", LOCATE_abstractmetamodel, 569);
2878 }
2879 REGB0 = ATTR_abstractmetamodel___MMGlobalProperty____is_init(fra.me.REG[0]);
2880 stack_frame_head = fra.me.prev;
2881 return REGB0;
2882 }
2883 void abstractmetamodel___MMGlobalProperty___is_init__eq(val_t p0, val_t p1){
2884 struct {struct stack_frame_t me;} fra;
2885 val_t REGB0;
2886 val_t tmp;
2887 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2888 fra.me.file = LOCATE_abstractmetamodel;
2889 fra.me.line = 569;
2890 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___is_init__eq;
2891 fra.me.has_broke = 0;
2892 fra.me.REG_size = 1;
2893 fra.me.REG[0] = NIT_NULL;
2894 fra.me.REG[0] = p0;
2895 REGB0 = p1;
2896 /* ./metamodel//abstractmetamodel.nit:569 */
2897 ATTR_abstractmetamodel___MMGlobalProperty____is_init(fra.me.REG[0]) = REGB0;
2898 stack_frame_head = fra.me.prev;
2899 return;
2900 }
2901 val_t abstractmetamodel___MMGlobalProperty___is_init_for(val_t p0, val_t p1){
2902 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2903 val_t REGB0;
2904 val_t REGB1;
2905 val_t REGB2;
2906 val_t tmp;
2907 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2908 fra.me.file = LOCATE_abstractmetamodel;
2909 fra.me.line = 572;
2910 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___is_init_for;
2911 fra.me.has_broke = 0;
2912 fra.me.REG_size = 3;
2913 fra.me.REG[0] = NIT_NULL;
2914 fra.me.REG[1] = NIT_NULL;
2915 fra.me.REG[2] = NIT_NULL;
2916 fra.me.REG[0] = p0;
2917 fra.me.REG[1] = p1;
2918 /* ./metamodel//abstractmetamodel.nit:575 */
2919 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
2920 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2921 if (UNTAG_Bool(REGB0)) {
2922 REGB0 = TAG_Bool(false);
2923 goto label1;
2924 }
2925 /* ./metamodel//abstractmetamodel.nit:576 */
2926 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
2927 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
2928 /* ./metamodel//abstractmetamodel.nit:577 */
2929 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___che(fra.me.REG[1])(fra.me.REG[1]);
2930 REGB1 = CALL_partial_order___PartialOrderElement_____leq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2931 if (UNTAG_Bool(REGB1)) {
2932 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
2933 fra.me.REG[1] = CALL_abstractmetamodel___MMGlobalClass___mixin_of(fra.me.REG[1])(fra.me.REG[1]);
2934 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
2935 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalClass___mixin_of(fra.me.REG[0])(fra.me.REG[0]);
2936 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
2937 if (UNTAG_Bool(REGB1)) {
2938 } else {
2939 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2940 REGB1 = REGB2;
2941 }
2942 } else {
2943 REGB2 = TAG_Bool(false);
2944 REGB1 = REGB2;
2945 }
2946 /* ./metamodel//abstractmetamodel.nit:578 */
2947 REGB0 = REGB1;
2948 goto label1;
2949 label1: while(0);
2950 stack_frame_head = fra.me.prev;
2951 return REGB0;
2952 }
2953 val_t abstractmetamodel___MMGlobalProperty___visibility_level(val_t p0){
2954 struct {struct stack_frame_t me;} fra;
2955 val_t REGB0;
2956 val_t tmp;
2957 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2958 fra.me.file = LOCATE_abstractmetamodel;
2959 fra.me.line = 581;
2960 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___visibility_level;
2961 fra.me.has_broke = 0;
2962 fra.me.REG_size = 1;
2963 fra.me.REG[0] = NIT_NULL;
2964 fra.me.REG[0] = p0;
2965 /* ./metamodel//abstractmetamodel.nit:581 */
2966 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalProperty____visibility_level(fra.me.REG[0])!=NIT_NULL);
2967 if (UNTAG_Bool(REGB0)) {
2968 } else {
2969 nit_abort("Uninitialized attribute %s", "_visibility_level", LOCATE_abstractmetamodel, 581);
2970 }
2971 REGB0 = ATTR_abstractmetamodel___MMGlobalProperty____visibility_level(fra.me.REG[0]);
2972 stack_frame_head = fra.me.prev;
2973 return REGB0;
2974 }
2975 void abstractmetamodel___MMGlobalProperty___visibility_level__eq(val_t p0, val_t p1){
2976 struct {struct stack_frame_t me;} fra;
2977 val_t REGB0;
2978 val_t tmp;
2979 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2980 fra.me.file = LOCATE_abstractmetamodel;
2981 fra.me.line = 581;
2982 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___visibility_level__eq;
2983 fra.me.has_broke = 0;
2984 fra.me.REG_size = 1;
2985 fra.me.REG[0] = NIT_NULL;
2986 fra.me.REG[0] = p0;
2987 REGB0 = p1;
2988 /* ./metamodel//abstractmetamodel.nit:581 */
2989 ATTR_abstractmetamodel___MMGlobalProperty____visibility_level(fra.me.REG[0]) = REGB0;
2990 stack_frame_head = fra.me.prev;
2991 return;
2992 }
2993 val_t abstractmetamodel___MMLocalProperty___name(val_t p0){
2994 struct {struct stack_frame_t me;} fra;
2995 val_t REGB0;
2996 val_t tmp;
2997 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2998 fra.me.file = LOCATE_abstractmetamodel;
2999 fra.me.line = 590;
3000 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___name;
3001 fra.me.has_broke = 0;
3002 fra.me.REG_size = 1;
3003 fra.me.REG[0] = NIT_NULL;
3004 fra.me.REG[0] = p0;
3005 /* ./metamodel//abstractmetamodel.nit:590 */
3006 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____name(fra.me.REG[0])!=NIT_NULL);
3007 if (UNTAG_Bool(REGB0)) {
3008 } else {
3009 nit_abort("Uninitialized attribute %s", "_name", LOCATE_abstractmetamodel, 590);
3010 }
3011 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalProperty____name(fra.me.REG[0]);
3012 stack_frame_head = fra.me.prev;
3013 return fra.me.REG[0];
3014 }
3015 val_t abstractmetamodel___MMLocalProperty___local_class(val_t p0){
3016 struct {struct stack_frame_t me;} fra;
3017 val_t REGB0;
3018 val_t tmp;
3019 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3020 fra.me.file = LOCATE_abstractmetamodel;
3021 fra.me.line = 593;
3022 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___local_class;
3023 fra.me.has_broke = 0;
3024 fra.me.REG_size = 1;
3025 fra.me.REG[0] = NIT_NULL;
3026 fra.me.REG[0] = p0;
3027 /* ./metamodel//abstractmetamodel.nit:593 */
3028 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
3029 if (UNTAG_Bool(REGB0)) {
3030 } else {
3031 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_abstractmetamodel, 593);
3032 }
3033 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0]);
3034 stack_frame_head = fra.me.prev;
3035 return fra.me.REG[0];
3036 }
3037 val_t abstractmetamodel___MMLocalProperty___global(val_t p0){
3038 struct {struct stack_frame_t me;} fra;
3039 val_t REGB0;
3040 val_t tmp;
3041 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3042 fra.me.file = LOCATE_abstractmetamodel;
3043 fra.me.line = 599;
3044 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___global;
3045 fra.me.has_broke = 0;
3046 fra.me.REG_size = 1;
3047 fra.me.REG[0] = NIT_NULL;
3048 fra.me.REG[0] = p0;
3049 /* ./metamodel//abstractmetamodel.nit:599 */
3050 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalProperty____global(fra.me.REG[0]);
3051 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
3052 if (UNTAG_Bool(REGB0)) {
3053 } else {
3054 nit_abort("Cast failed", NULL, LOCATE_abstractmetamodel, 599);
3055 }
3056 goto label1;
3057 label1: while(0);
3058 stack_frame_head = fra.me.prev;
3059 return fra.me.REG[0];
3060 }
3061 val_t abstractmetamodel___MMLocalProperty___is_global_set(val_t p0){
3062 struct {struct stack_frame_t me;} fra;
3063 val_t REGB0;
3064 val_t REGB1;
3065 val_t tmp;
3066 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3067 fra.me.file = LOCATE_abstractmetamodel;
3068 fra.me.line = 600;
3069 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___is_global_set;
3070 fra.me.has_broke = 0;
3071 fra.me.REG_size = 1;
3072 fra.me.REG[0] = NIT_NULL;
3073 fra.me.REG[0] = p0;
3074 /* ./metamodel//abstractmetamodel.nit:600 */
3075 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalProperty____global(fra.me.REG[0]);
3076 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3077 if (UNTAG_Bool(REGB0)) {
3078 } else {
3079 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3080 if (UNTAG_Bool(REGB1)) {
3081 REGB1 = TAG_Bool(false);
3082 REGB0 = REGB1;
3083 } else {
3084 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
3085 REGB0 = REGB1;
3086 }
3087 }
3088 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3089 goto label1;
3090 label1: while(0);
3091 stack_frame_head = fra.me.prev;
3092 return REGB0;
3093 }
3094 val_t abstractmetamodel___MMLocalProperty___prhe(val_t p0){
3095 struct {struct stack_frame_t me;} fra;
3096 val_t REGB0;
3097 val_t tmp;
3098 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3099 fra.me.file = LOCATE_abstractmetamodel;
3100 fra.me.line = 605;
3101 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___prhe;
3102 fra.me.has_broke = 0;
3103 fra.me.REG_size = 1;
3104 fra.me.REG[0] = NIT_NULL;
3105 fra.me.REG[0] = p0;
3106 /* ./metamodel//abstractmetamodel.nit:605 */
3107 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalProperty____prhe(fra.me.REG[0]);
3108 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
3109 if (UNTAG_Bool(REGB0)) {
3110 } else {
3111 nit_abort("Cast failed", NULL, LOCATE_abstractmetamodel, 605);
3112 }
3113 goto label1;
3114 label1: while(0);
3115 stack_frame_head = fra.me.prev;
3116 return fra.me.REG[0];
3117 }
3118 val_t abstractmetamodel___MMLocalProperty___mmmodule(val_t p0){
3119 struct {struct stack_frame_t me;} fra;
3120 val_t REGB0;
3121 val_t tmp;
3122 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3123 fra.me.file = LOCATE_abstractmetamodel;
3124 fra.me.line = 607;
3125 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___mmmodule;
3126 fra.me.has_broke = 0;
3127 fra.me.REG_size = 1;
3128 fra.me.REG[0] = NIT_NULL;
3129 fra.me.REG[0] = p0;
3130 /* ./metamodel//abstractmetamodel.nit:608 */
3131 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
3132 if (UNTAG_Bool(REGB0)) {
3133 } else {
3134 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_abstractmetamodel, 608);
3135 }
3136 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0]);
3137 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
3138 goto label1;
3139 label1: while(0);
3140 stack_frame_head = fra.me.prev;
3141 return fra.me.REG[0];
3142 }
3143 val_t abstractmetamodel___MMLocalProperty___full_name(val_t p0){
3144 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3145 val_t REGB0;
3146 val_t REGB1;
3147 val_t tmp;
3148 static val_t once_value_1; /* Once value */
3149 static val_t once_value_2; /* Once value */
3150 static val_t once_value_3; /* Once value */
3151 static val_t once_value_4; /* Once value */
3152 static val_t once_value_6; /* Once value */
3153 static val_t once_value_7; /* Once value */
3154 static val_t once_value_8; /* Once value */
3155 static val_t once_value_9; /* Once value */
3156 static val_t once_value_10; /* Once value */
3157 static val_t once_value_11; /* Once value */
3158 static val_t once_value_12; /* Once value */
3159 static val_t once_value_13; /* Once value */
3160 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3161 fra.me.file = LOCATE_abstractmetamodel;
3162 fra.me.line = 610;
3163 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___full_name;
3164 fra.me.has_broke = 0;
3165 fra.me.REG_size = 4;
3166 fra.me.REG[0] = NIT_NULL;
3167 fra.me.REG[1] = NIT_NULL;
3168 fra.me.REG[2] = NIT_NULL;
3169 fra.me.REG[3] = NIT_NULL;
3170 fra.me.REG[0] = p0;
3171 /* ./metamodel//abstractmetamodel.nit:613 */
3172 fra.me.REG[1] = ATTR_abstractmetamodel___MMLocalProperty____global(fra.me.REG[0]);
3173 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3174 if (UNTAG_Bool(REGB0)) {
3175 } else {
3176 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3177 if (UNTAG_Bool(REGB1)) {
3178 REGB1 = TAG_Bool(false);
3179 REGB0 = REGB1;
3180 } else {
3181 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
3182 REGB0 = REGB1;
3183 }
3184 }
3185 if (UNTAG_Bool(REGB0)) {
3186 /* ./metamodel//abstractmetamodel.nit:614 */
3187 REGB0 = TAG_Int(7);
3188 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
3189 if (!once_value_1) {
3190 fra.me.REG[2] = BOX_NativeString("");
3191 REGB0 = TAG_Int(0);
3192 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
3193 once_value_1 = fra.me.REG[2];
3194 register_static_object(&once_value_1);
3195 } else fra.me.REG[2] = once_value_1;
3196 fra.me.REG[2] = fra.me.REG[2];
3197 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3198 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
3199 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[2])(fra.me.REG[2]);
3200 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3201 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3202 if (!once_value_2) {
3203 fra.me.REG[2] = BOX_NativeString("::");
3204 REGB0 = TAG_Int(2);
3205 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
3206 once_value_2 = fra.me.REG[2];
3207 register_static_object(&once_value_2);
3208 } else fra.me.REG[2] = once_value_2;
3209 fra.me.REG[2] = fra.me.REG[2];
3210 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3211 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
3212 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3213 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3214 if (!once_value_3) {
3215 fra.me.REG[2] = BOX_NativeString("::(?::");
3216 REGB0 = TAG_Int(6);
3217 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
3218 once_value_3 = fra.me.REG[2];
3219 register_static_object(&once_value_3);
3220 } else fra.me.REG[2] = once_value_3;
3221 fra.me.REG[2] = fra.me.REG[2];
3222 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3223 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]);
3224 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3225 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3226 if (!once_value_4) {
3227 fra.me.REG[2] = BOX_NativeString(")");
3228 REGB0 = TAG_Int(1);
3229 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
3230 once_value_4 = fra.me.REG[2];
3231 register_static_object(&once_value_4);
3232 } else fra.me.REG[2] = once_value_4;
3233 fra.me.REG[2] = fra.me.REG[2];
3234 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3235 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
3236 goto label5;
3237 } else {
3238 /* ./metamodel//abstractmetamodel.nit:615 */
3239 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
3240 fra.me.REG[2] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[2])(fra.me.REG[2]);
3241 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[0]));
3242 if (UNTAG_Bool(REGB0)) {
3243 } else {
3244 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3245 REGB0 = REGB1;
3246 }
3247 if (UNTAG_Bool(REGB0)) {
3248 /* ./metamodel//abstractmetamodel.nit:616 */
3249 REGB0 = TAG_Int(7);
3250 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
3251 if (!once_value_6) {
3252 fra.me.REG[3] = BOX_NativeString("");
3253 REGB0 = TAG_Int(0);
3254 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
3255 once_value_6 = fra.me.REG[3];
3256 register_static_object(&once_value_6);
3257 } else fra.me.REG[3] = once_value_6;
3258 fra.me.REG[3] = fra.me.REG[3];
3259 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3260 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
3261 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
3262 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3263 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3264 if (!once_value_7) {
3265 fra.me.REG[3] = BOX_NativeString("::");
3266 REGB0 = TAG_Int(2);
3267 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
3268 once_value_7 = fra.me.REG[3];
3269 register_static_object(&once_value_7);
3270 } else fra.me.REG[3] = once_value_7;
3271 fra.me.REG[3] = fra.me.REG[3];
3272 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3273 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
3274 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3275 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3276 if (!once_value_8) {
3277 fra.me.REG[3] = BOX_NativeString("::");
3278 REGB0 = TAG_Int(2);
3279 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
3280 once_value_8 = fra.me.REG[3];
3281 register_static_object(&once_value_8);
3282 } else fra.me.REG[3] = once_value_8;
3283 fra.me.REG[3] = fra.me.REG[3];
3284 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3285 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]);
3286 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3287 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3288 if (!once_value_9) {
3289 fra.me.REG[3] = BOX_NativeString("");
3290 REGB0 = TAG_Int(0);
3291 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
3292 once_value_9 = fra.me.REG[3];
3293 register_static_object(&once_value_9);
3294 } else fra.me.REG[3] = once_value_9;
3295 fra.me.REG[3] = fra.me.REG[3];
3296 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3297 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3298 fra.me.REG[1] = fra.me.REG[2];
3299 goto label5;
3300 } else {
3301 /* ./metamodel//abstractmetamodel.nit:618 */
3302 REGB0 = TAG_Int(7);
3303 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
3304 if (!once_value_10) {
3305 fra.me.REG[3] = BOX_NativeString("");
3306 REGB0 = TAG_Int(0);
3307 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
3308 once_value_10 = fra.me.REG[3];
3309 register_static_object(&once_value_10);
3310 } else fra.me.REG[3] = once_value_10;
3311 fra.me.REG[3] = fra.me.REG[3];
3312 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3313 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
3314 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
3315 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3316 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3317 if (!once_value_11) {
3318 fra.me.REG[3] = BOX_NativeString("::");
3319 REGB0 = TAG_Int(2);
3320 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
3321 once_value_11 = fra.me.REG[3];
3322 register_static_object(&once_value_11);
3323 } else fra.me.REG[3] = once_value_11;
3324 fra.me.REG[3] = fra.me.REG[3];
3325 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3326 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
3327 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3328 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3329 if (!once_value_12) {
3330 fra.me.REG[3] = BOX_NativeString("::(");
3331 REGB0 = TAG_Int(3);
3332 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
3333 once_value_12 = fra.me.REG[3];
3334 register_static_object(&once_value_12);
3335 } else fra.me.REG[3] = once_value_12;
3336 fra.me.REG[3] = fra.me.REG[3];
3337 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3338 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
3339 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
3340 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[0])(fra.me.REG[0]);
3341 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3342 if (!once_value_13) {
3343 fra.me.REG[0] = BOX_NativeString(")");
3344 REGB0 = TAG_Int(1);
3345 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
3346 once_value_13 = fra.me.REG[0];
3347 register_static_object(&once_value_13);
3348 } else fra.me.REG[0] = once_value_13;
3349 fra.me.REG[0] = fra.me.REG[0];
3350 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3351 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3352 fra.me.REG[1] = fra.me.REG[2];
3353 goto label5;
3354 }
3355 }
3356 label5: while(0);
3357 stack_frame_head = fra.me.prev;
3358 return fra.me.REG[1];
3359 }
3360 void abstractmetamodel___MMLocalProperty___set_global(val_t p0, val_t p1){
3361 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3362 val_t REGB0;
3363 val_t tmp;
3364 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3365 fra.me.file = LOCATE_abstractmetamodel;
3366 fra.me.line = 622;
3367 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___set_global;
3368 fra.me.has_broke = 0;
3369 fra.me.REG_size = 2;
3370 fra.me.REG[0] = NIT_NULL;
3371 fra.me.REG[1] = NIT_NULL;
3372 fra.me.REG[0] = p0;
3373 fra.me.REG[1] = p1;
3374 /* ./metamodel//abstractmetamodel.nit:625 */
3375 ATTR_abstractmetamodel___MMLocalProperty____global(fra.me.REG[0]) = fra.me.REG[1];
3376 /* ./metamodel//abstractmetamodel.nit:626 */
3377 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
3378 if (UNTAG_Bool(REGB0)) {
3379 } else {
3380 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_abstractmetamodel, 626);
3381 }
3382 fra.me.REG[1] = ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0]);
3383 CALL_abstractmetamodel___MMLocalClass___register_local_property(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3384 stack_frame_head = fra.me.prev;
3385 return;
3386 }
3387 void abstractmetamodel___MMLocalProperty___new_global(val_t p0){
3388 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3389 val_t REGB0;
3390 val_t REGB1;
3391 val_t tmp;
3392 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3393 fra.me.file = LOCATE_abstractmetamodel;
3394 fra.me.line = 629;
3395 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___new_global;
3396 fra.me.has_broke = 0;
3397 fra.me.REG_size = 2;
3398 fra.me.REG[0] = NIT_NULL;
3399 fra.me.REG[1] = NIT_NULL;
3400 fra.me.REG[0] = p0;
3401 /* ./metamodel//abstractmetamodel.nit:632 */
3402 fra.me.REG[1] = ATTR_abstractmetamodel___MMLocalProperty____global(fra.me.REG[0]);
3403 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3404 if (UNTAG_Bool(REGB0)) {
3405 } else {
3406 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3407 if (UNTAG_Bool(REGB1)) {
3408 REGB1 = TAG_Bool(false);
3409 REGB0 = REGB1;
3410 } else {
3411 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
3412 REGB0 = REGB1;
3413 }
3414 }
3415 if (UNTAG_Bool(REGB0)) {
3416 } else {
3417 nit_abort("Assert failed", NULL, LOCATE_abstractmetamodel, 632);
3418 }
3419 /* ./metamodel//abstractmetamodel.nit:633 */
3420 fra.me.REG[1] = NEW_MMGlobalProperty_abstractmetamodel___MMGlobalProperty___init(fra.me.REG[0]);
3421 /* ./metamodel//abstractmetamodel.nit:634 */
3422 ATTR_abstractmetamodel___MMLocalProperty____global(fra.me.REG[0]) = fra.me.REG[1];
3423 /* ./metamodel//abstractmetamodel.nit:635 */
3424 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
3425 if (UNTAG_Bool(REGB0)) {
3426 } else {
3427 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_abstractmetamodel, 635);
3428 }
3429 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0]);
3430 CALL_abstractmetamodel___MMLocalClass___register_global_property(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3431 stack_frame_head = fra.me.prev;
3432 return;
3433 }
3434 val_t abstractmetamodel___MMLocalProperty___to_s(val_t p0){
3435 struct {struct stack_frame_t me;} fra;
3436 val_t tmp;
3437 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3438 fra.me.file = LOCATE_abstractmetamodel;
3439 fra.me.line = 638;
3440 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___to_s;
3441 fra.me.has_broke = 0;
3442 fra.me.REG_size = 1;
3443 fra.me.REG[0] = NIT_NULL;
3444 fra.me.REG[0] = p0;
3445 /* ./metamodel//abstractmetamodel.nit:638 */
3446 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]);
3447 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
3448 goto label1;
3449 label1: while(0);
3450 stack_frame_head = fra.me.prev;
3451 return fra.me.REG[0];
3452 }
3453 val_t abstractmetamodel___MMLocalProperty___need_super(val_t p0){
3454 struct {struct stack_frame_t me;} fra;
3455 val_t REGB0;
3456 val_t tmp;
3457 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3458 fra.me.file = LOCATE_abstractmetamodel;
3459 fra.me.line = 640;
3460 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___need_super;
3461 fra.me.has_broke = 0;
3462 fra.me.REG_size = 1;
3463 fra.me.REG[0] = NIT_NULL;
3464 fra.me.REG[0] = p0;
3465 /* ./metamodel//abstractmetamodel.nit:640 */
3466 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0])!=NIT_NULL);
3467 if (UNTAG_Bool(REGB0)) {
3468 } else {
3469 nit_abort("Uninitialized attribute %s", "_need_super", LOCATE_abstractmetamodel, 640);
3470 }
3471 REGB0 = ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]);
3472 stack_frame_head = fra.me.prev;
3473 return REGB0;
3474 }
3475 void abstractmetamodel___MMLocalProperty___need_super__eq(val_t p0, val_t p1){
3476 struct {struct stack_frame_t me;} fra;
3477 val_t REGB0;
3478 val_t tmp;
3479 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3480 fra.me.file = LOCATE_abstractmetamodel;
3481 fra.me.line = 640;
3482 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___need_super__eq;
3483 fra.me.has_broke = 0;
3484 fra.me.REG_size = 1;
3485 fra.me.REG[0] = NIT_NULL;
3486 fra.me.REG[0] = p0;
3487 REGB0 = p1;
3488 /* ./metamodel//abstractmetamodel.nit:640 */
3489 ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
3490 stack_frame_head = fra.me.prev;
3491 return;
3492 }
3493 void abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1, val_t p2, int* init_table){
3494 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMLocalProperty].i;
3495 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3496 val_t tmp;
3497 if (init_table[itpos6]) return;
3498 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3499 fra.me.file = LOCATE_abstractmetamodel;
3500 fra.me.line = 643;
3501 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___init;
3502 fra.me.has_broke = 0;
3503 fra.me.REG_size = 3;
3504 fra.me.REG[0] = NIT_NULL;
3505 fra.me.REG[1] = NIT_NULL;
3506 fra.me.REG[2] = NIT_NULL;
3507 fra.me.REG[0] = p0;
3508 fra.me.REG[1] = p1;
3509 fra.me.REG[2] = p2;
3510 /* ./metamodel//abstractmetamodel.nit:645 */
3511 ATTR_abstractmetamodel___MMLocalProperty____name(fra.me.REG[0]) = fra.me.REG[1];
3512 /* ./metamodel//abstractmetamodel.nit:646 */
3513 ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0]) = fra.me.REG[2];
3514 stack_frame_head = fra.me.prev;
3515 init_table[itpos6] = 1;
3516 return;
3517 }
3518 val_t abstractmetamodel___MMMethod___is_intern(val_t p0){
3519 struct {struct stack_frame_t me;} fra;
3520 val_t tmp;
3521 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3522 fra.me.file = LOCATE_abstractmetamodel;
3523 fra.me.line = 658;
3524 fra.me.meth = LOCATE_abstractmetamodel___MMMethod___is_intern;
3525 fra.me.has_broke = 0;
3526 fra.me.REG_size = 0;
3527 /* ./metamodel//abstractmetamodel.nit:658 */
3528 nit_abort("Deferred method called", NULL, LOCATE_abstractmetamodel, 658);
3529 stack_frame_head = fra.me.prev;
3530 return NIT_NULL;
3531 }
3532 val_t abstractmetamodel___MMMethod___is_abstract(val_t p0){
3533 struct {struct stack_frame_t me;} fra;
3534 val_t tmp;
3535 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3536 fra.me.file = LOCATE_abstractmetamodel;
3537 fra.me.line = 661;
3538 fra.me.meth = LOCATE_abstractmetamodel___MMMethod___is_abstract;
3539 fra.me.has_broke = 0;
3540 fra.me.REG_size = 0;
3541 /* ./metamodel//abstractmetamodel.nit:661 */
3542 nit_abort("Deferred method called", NULL, LOCATE_abstractmetamodel, 661);
3543 stack_frame_head = fra.me.prev;
3544 return NIT_NULL;
3545 }
3546 val_t abstractmetamodel___MMMethod___extern_name(val_t p0){
3547 struct {struct stack_frame_t me;} fra;
3548 val_t tmp;
3549 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3550 fra.me.file = LOCATE_abstractmetamodel;
3551 fra.me.line = 664;
3552 fra.me.meth = LOCATE_abstractmetamodel___MMMethod___extern_name;
3553 fra.me.has_broke = 0;
3554 fra.me.REG_size = 0;
3555 /* ./metamodel//abstractmetamodel.nit:664 */
3556 nit_abort("Deferred method called", NULL, LOCATE_abstractmetamodel, 664);
3557 stack_frame_head = fra.me.prev;
3558 return NIT_NULL;
3559 }