grammar: adds extern class kind for extern classes such as Pointer
[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___is_extern(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___is_extern;
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____is_extern(fra.me.REG[0])!=NIT_NULL);
1596 if (UNTAG_Bool(REGB0)) {
1597 } else {
1598 nit_abort("Uninitialized attribute %s", "_is_extern", LOCATE_abstractmetamodel, 305);
1599 }
1600 REGB0 = ATTR_abstractmetamodel___MMGlobalClass____is_extern(fra.me.REG[0]);
1601 stack_frame_head = fra.me.prev;
1602 return REGB0;
1603 }
1604 void abstractmetamodel___MMGlobalClass___is_extern__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___is_extern__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____is_extern(fra.me.REG[0]) = REGB0;
1619 stack_frame_head = fra.me.prev;
1620 return;
1621 }
1622 val_t abstractmetamodel___MMGlobalClass___visibility_level(val_t p0){
1623 struct {struct stack_frame_t me;} fra;
1624 val_t REGB0;
1625 val_t tmp;
1626 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1627 fra.me.file = LOCATE_abstractmetamodel;
1628 fra.me.line = 308;
1629 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalClass___visibility_level;
1630 fra.me.has_broke = 0;
1631 fra.me.REG_size = 1;
1632 fra.me.REG[0] = NIT_NULL;
1633 fra.me.REG[0] = p0;
1634 /* ./metamodel//abstractmetamodel.nit:308 */
1635 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalClass____visibility_level(fra.me.REG[0])!=NIT_NULL);
1636 if (UNTAG_Bool(REGB0)) {
1637 } else {
1638 nit_abort("Uninitialized attribute %s", "_visibility_level", LOCATE_abstractmetamodel, 308);
1639 }
1640 REGB0 = ATTR_abstractmetamodel___MMGlobalClass____visibility_level(fra.me.REG[0]);
1641 stack_frame_head = fra.me.prev;
1642 return REGB0;
1643 }
1644 void abstractmetamodel___MMGlobalClass___visibility_level__eq(val_t p0, val_t p1){
1645 struct {struct stack_frame_t me;} fra;
1646 val_t REGB0;
1647 val_t tmp;
1648 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1649 fra.me.file = LOCATE_abstractmetamodel;
1650 fra.me.line = 308;
1651 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalClass___visibility_level__eq;
1652 fra.me.has_broke = 0;
1653 fra.me.REG_size = 1;
1654 fra.me.REG[0] = NIT_NULL;
1655 fra.me.REG[0] = p0;
1656 REGB0 = p1;
1657 /* ./metamodel//abstractmetamodel.nit:308 */
1658 ATTR_abstractmetamodel___MMGlobalClass____visibility_level(fra.me.REG[0]) = REGB0;
1659 stack_frame_head = fra.me.prev;
1660 return;
1661 }
1662 val_t abstractmetamodel___MMGlobalClass___is_mixin(val_t p0){
1663 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1664 val_t REGB0;
1665 val_t REGB1;
1666 val_t tmp;
1667 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1668 fra.me.file = LOCATE_abstractmetamodel;
1669 fra.me.line = 313;
1670 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalClass___is_mixin;
1671 fra.me.has_broke = 0;
1672 fra.me.REG_size = 2;
1673 fra.me.REG[0] = NIT_NULL;
1674 fra.me.REG[1] = NIT_NULL;
1675 fra.me.REG[0] = p0;
1676 /* ./metamodel//abstractmetamodel.nit:317 */
1677 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalClass____mixin_of(fra.me.REG[0])!=NIT_NULL);
1678 if (UNTAG_Bool(REGB0)) {
1679 } else {
1680 nit_abort("Uninitialized attribute %s", "_mixin_of", LOCATE_abstractmetamodel, 317);
1681 }
1682 fra.me.REG[1] = ATTR_abstractmetamodel___MMGlobalClass____mixin_of(fra.me.REG[0]);
1683 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
1684 if (UNTAG_Bool(REGB0)) {
1685 } else {
1686 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1687 REGB0 = REGB1;
1688 }
1689 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1690 goto label1;
1691 label1: while(0);
1692 stack_frame_head = fra.me.prev;
1693 return REGB0;
1694 }
1695 val_t abstractmetamodel___MMGlobalClass___mixin_of(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 = 320;
1702 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalClass___mixin_of;
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:320 */
1708 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalClass____mixin_of(fra.me.REG[0])!=NIT_NULL);
1709 if (UNTAG_Bool(REGB0)) {
1710 } else {
1711 nit_abort("Uninitialized attribute %s", "_mixin_of", LOCATE_abstractmetamodel, 320);
1712 }
1713 fra.me.REG[0] = ATTR_abstractmetamodel___MMGlobalClass____mixin_of(fra.me.REG[0]);
1714 stack_frame_head = fra.me.prev;
1715 return fra.me.REG[0];
1716 }
1717 void abstractmetamodel___MMGlobalClass___mixin_of__eq(val_t p0, val_t p1){
1718 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1719 val_t tmp;
1720 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1721 fra.me.file = LOCATE_abstractmetamodel;
1722 fra.me.line = 320;
1723 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalClass___mixin_of__eq;
1724 fra.me.has_broke = 0;
1725 fra.me.REG_size = 2;
1726 fra.me.REG[0] = NIT_NULL;
1727 fra.me.REG[1] = NIT_NULL;
1728 fra.me.REG[0] = p0;
1729 fra.me.REG[1] = p1;
1730 /* ./metamodel//abstractmetamodel.nit:320 */
1731 ATTR_abstractmetamodel___MMGlobalClass____mixin_of(fra.me.REG[0]) = fra.me.REG[1];
1732 stack_frame_head = fra.me.prev;
1733 return;
1734 }
1735 val_t abstractmetamodel___MMLocalClass___name(val_t p0){
1736 struct {struct stack_frame_t me;} fra;
1737 val_t REGB0;
1738 val_t tmp;
1739 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1740 fra.me.file = LOCATE_abstractmetamodel;
1741 fra.me.line = 329;
1742 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___name;
1743 fra.me.has_broke = 0;
1744 fra.me.REG_size = 1;
1745 fra.me.REG[0] = NIT_NULL;
1746 fra.me.REG[0] = p0;
1747 /* ./metamodel//abstractmetamodel.nit:329 */
1748 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____name(fra.me.REG[0])!=NIT_NULL);
1749 if (UNTAG_Bool(REGB0)) {
1750 } else {
1751 nit_abort("Uninitialized attribute %s", "_name", LOCATE_abstractmetamodel, 329);
1752 }
1753 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____name(fra.me.REG[0]);
1754 stack_frame_head = fra.me.prev;
1755 return fra.me.REG[0];
1756 }
1757 val_t abstractmetamodel___MMLocalClass___arity(val_t p0){
1758 struct {struct stack_frame_t me;} fra;
1759 val_t REGB0;
1760 val_t tmp;
1761 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1762 fra.me.file = LOCATE_abstractmetamodel;
1763 fra.me.line = 332;
1764 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___arity;
1765 fra.me.has_broke = 0;
1766 fra.me.REG_size = 1;
1767 fra.me.REG[0] = NIT_NULL;
1768 fra.me.REG[0] = p0;
1769 /* ./metamodel//abstractmetamodel.nit:332 */
1770 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____arity(fra.me.REG[0])!=NIT_NULL);
1771 if (UNTAG_Bool(REGB0)) {
1772 } else {
1773 nit_abort("Uninitialized attribute %s", "_arity", LOCATE_abstractmetamodel, 332);
1774 }
1775 REGB0 = ATTR_abstractmetamodel___MMLocalClass____arity(fra.me.REG[0]);
1776 stack_frame_head = fra.me.prev;
1777 return REGB0;
1778 }
1779 val_t abstractmetamodel___MMLocalClass___mmmodule(val_t p0){
1780 struct {struct stack_frame_t me;} fra;
1781 val_t REGB0;
1782 val_t tmp;
1783 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1784 fra.me.file = LOCATE_abstractmetamodel;
1785 fra.me.line = 336;
1786 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___mmmodule;
1787 fra.me.has_broke = 0;
1788 fra.me.REG_size = 1;
1789 fra.me.REG[0] = NIT_NULL;
1790 fra.me.REG[0] = p0;
1791 /* ./metamodel//abstractmetamodel.nit:336 */
1792 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0])!=NIT_NULL);
1793 if (UNTAG_Bool(REGB0)) {
1794 } else {
1795 nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_abstractmetamodel, 336);
1796 }
1797 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0]);
1798 stack_frame_head = fra.me.prev;
1799 return fra.me.REG[0];
1800 }
1801 val_t abstractmetamodel___MMLocalClass___global(val_t p0){
1802 struct {struct stack_frame_t me;} fra;
1803 val_t REGB0;
1804 val_t tmp;
1805 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1806 fra.me.file = LOCATE_abstractmetamodel;
1807 fra.me.line = 339;
1808 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___global;
1809 fra.me.has_broke = 0;
1810 fra.me.REG_size = 1;
1811 fra.me.REG[0] = NIT_NULL;
1812 fra.me.REG[0] = p0;
1813 /* ./metamodel//abstractmetamodel.nit:340 */
1814 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____global(fra.me.REG[0]);
1815 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
1816 if (UNTAG_Bool(REGB0)) {
1817 } else {
1818 nit_abort("Cast failed", NULL, LOCATE_abstractmetamodel, 340);
1819 }
1820 goto label1;
1821 label1: while(0);
1822 stack_frame_head = fra.me.prev;
1823 return fra.me.REG[0];
1824 }
1825 val_t abstractmetamodel___MMLocalClass___crhe(val_t p0){
1826 struct {struct stack_frame_t me;} fra;
1827 val_t REGB0;
1828 val_t tmp;
1829 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1830 fra.me.file = LOCATE_abstractmetamodel;
1831 fra.me.line = 343;
1832 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___crhe;
1833 fra.me.has_broke = 0;
1834 fra.me.REG_size = 1;
1835 fra.me.REG[0] = NIT_NULL;
1836 fra.me.REG[0] = p0;
1837 /* ./metamodel//abstractmetamodel.nit:344 */
1838 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____crhe(fra.me.REG[0]);
1839 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
1840 if (UNTAG_Bool(REGB0)) {
1841 } else {
1842 nit_abort("Cast failed", NULL, LOCATE_abstractmetamodel, 344);
1843 }
1844 goto label1;
1845 label1: while(0);
1846 stack_frame_head = fra.me.prev;
1847 return fra.me.REG[0];
1848 }
1849 val_t abstractmetamodel___MMLocalClass___cshe(val_t p0){
1850 struct {struct stack_frame_t me;} fra;
1851 val_t REGB0;
1852 val_t tmp;
1853 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1854 fra.me.file = LOCATE_abstractmetamodel;
1855 fra.me.line = 347;
1856 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___cshe;
1857 fra.me.has_broke = 0;
1858 fra.me.REG_size = 1;
1859 fra.me.REG[0] = NIT_NULL;
1860 fra.me.REG[0] = p0;
1861 /* ./metamodel//abstractmetamodel.nit:348 */
1862 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____cshe(fra.me.REG[0]);
1863 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
1864 if (UNTAG_Bool(REGB0)) {
1865 } else {
1866 nit_abort("Cast failed", NULL, LOCATE_abstractmetamodel, 348);
1867 }
1868 goto label1;
1869 label1: while(0);
1870 stack_frame_head = fra.me.prev;
1871 return fra.me.REG[0];
1872 }
1873 val_t abstractmetamodel___MMLocalClass___che(val_t p0){
1874 struct {struct stack_frame_t me;} fra;
1875 val_t REGB0;
1876 val_t tmp;
1877 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1878 fra.me.file = LOCATE_abstractmetamodel;
1879 fra.me.line = 351;
1880 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___che;
1881 fra.me.has_broke = 0;
1882 fra.me.REG_size = 1;
1883 fra.me.REG[0] = NIT_NULL;
1884 fra.me.REG[0] = p0;
1885 /* ./metamodel//abstractmetamodel.nit:352 */
1886 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____che(fra.me.REG[0]);
1887 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
1888 if (UNTAG_Bool(REGB0)) {
1889 } else {
1890 nit_abort("Cast failed", NULL, LOCATE_abstractmetamodel, 352);
1891 }
1892 goto label1;
1893 label1: while(0);
1894 stack_frame_head = fra.me.prev;
1895 return fra.me.REG[0];
1896 }
1897 val_t abstractmetamodel___MMLocalClass___global_properties(val_t p0){
1898 struct {struct stack_frame_t me;} fra;
1899 val_t REGB0;
1900 val_t tmp;
1901 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1902 fra.me.file = LOCATE_abstractmetamodel;
1903 fra.me.line = 358;
1904 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___global_properties;
1905 fra.me.has_broke = 0;
1906 fra.me.REG_size = 1;
1907 fra.me.REG[0] = NIT_NULL;
1908 fra.me.REG[0] = p0;
1909 /* ./metamodel//abstractmetamodel.nit:358 */
1910 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0])!=NIT_NULL);
1911 if (UNTAG_Bool(REGB0)) {
1912 } else {
1913 nit_abort("Uninitialized attribute %s", "_global_properties", LOCATE_abstractmetamodel, 358);
1914 }
1915 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0]);
1916 stack_frame_head = fra.me.prev;
1917 return fra.me.REG[0];
1918 }
1919 val_t abstractmetamodel___MMLocalClass___local_local_properties(val_t p0){
1920 struct {struct stack_frame_t me;} fra;
1921 val_t REGB0;
1922 val_t tmp;
1923 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1924 fra.me.file = LOCATE_abstractmetamodel;
1925 fra.me.line = 361;
1926 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___local_local_properties;
1927 fra.me.has_broke = 0;
1928 fra.me.REG_size = 1;
1929 fra.me.REG[0] = NIT_NULL;
1930 fra.me.REG[0] = p0;
1931 /* ./metamodel//abstractmetamodel.nit:361 */
1932 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0])!=NIT_NULL);
1933 if (UNTAG_Bool(REGB0)) {
1934 } else {
1935 nit_abort("Uninitialized attribute %s", "_local_local_properties", LOCATE_abstractmetamodel, 361);
1936 }
1937 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0]);
1938 stack_frame_head = fra.me.prev;
1939 return fra.me.REG[0];
1940 }
1941 void abstractmetamodel___MMLocalClass___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1942 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMLocalClass].i;
1943 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1944 val_t REGB0;
1945 val_t tmp;
1946 if (init_table[itpos4]) return;
1947 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1948 fra.me.file = LOCATE_abstractmetamodel;
1949 fra.me.line = 367;
1950 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___init;
1951 fra.me.has_broke = 0;
1952 fra.me.REG_size = 3;
1953 fra.me.REG[0] = NIT_NULL;
1954 fra.me.REG[1] = NIT_NULL;
1955 fra.me.REG[2] = NIT_NULL;
1956 fra.me.REG[0] = p0;
1957 fra.me.REG[1] = p1;
1958 fra.me.REG[2] = p2;
1959 REGB0 = p3;
1960 /* ./metamodel//abstractmetamodel.nit:370 */
1961 ATTR_abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0]) = fra.me.REG[1];
1962 /* ./metamodel//abstractmetamodel.nit:371 */
1963 ATTR_abstractmetamodel___MMLocalClass____name(fra.me.REG[0]) = fra.me.REG[2];
1964 /* ./metamodel//abstractmetamodel.nit:372 */
1965 ATTR_abstractmetamodel___MMLocalClass____arity(fra.me.REG[0]) = REGB0;
1966 /* ./metamodel//abstractmetamodel.nit:373 */
1967 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____local_classes(fra.me.REG[1])!=NIT_NULL);
1968 if (UNTAG_Bool(REGB0)) {
1969 } else {
1970 nit_abort("Uninitialized attribute %s", "_local_classes", LOCATE_abstractmetamodel, 373);
1971 }
1972 fra.me.REG[1] = ATTR_abstractmetamodel___MMModule____local_classes(fra.me.REG[1]);
1973 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1974 stack_frame_head = fra.me.prev;
1975 init_table[itpos4] = 1;
1976 return;
1977 }
1978 val_t abstractmetamodel___MMLocalClass___for_module(val_t p0, val_t p1){
1979 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1980 val_t tmp;
1981 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1982 fra.me.file = LOCATE_abstractmetamodel;
1983 fra.me.line = 376;
1984 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___for_module;
1985 fra.me.has_broke = 0;
1986 fra.me.REG_size = 2;
1987 fra.me.REG[0] = NIT_NULL;
1988 fra.me.REG[1] = NIT_NULL;
1989 fra.me.REG[0] = p0;
1990 fra.me.REG[1] = p1;
1991 /* ./metamodel//abstractmetamodel.nit:379 */
1992 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
1993 fra.me.REG[0] = CALL_abstractmetamodel___MMModule_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1994 goto label1;
1995 label1: while(0);
1996 stack_frame_head = fra.me.prev;
1997 return fra.me.REG[0];
1998 }
1999 void abstractmetamodel___MMLocalClass___new_global(val_t p0){
2000 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2001 val_t REGB0;
2002 val_t tmp;
2003 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2004 fra.me.file = LOCATE_abstractmetamodel;
2005 fra.me.line = 382;
2006 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___new_global;
2007 fra.me.has_broke = 0;
2008 fra.me.REG_size = 4;
2009 fra.me.REG[0] = NIT_NULL;
2010 fra.me.REG[1] = NIT_NULL;
2011 fra.me.REG[2] = NIT_NULL;
2012 fra.me.REG[3] = NIT_NULL;
2013 fra.me.REG[0] = p0;
2014 /* ./metamodel//abstractmetamodel.nit:385 */
2015 fra.me.REG[1] = NEW_MMGlobalClass_abstractmetamodel___MMGlobalClass___init(fra.me.REG[0]);
2016 /* ./metamodel//abstractmetamodel.nit:386 */
2017 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0])!=NIT_NULL);
2018 if (UNTAG_Bool(REGB0)) {
2019 } else {
2020 nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_abstractmetamodel, 386);
2021 }
2022 fra.me.REG[2] = ATTR_abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0]);
2023 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____global_classes(fra.me.REG[2])!=NIT_NULL);
2024 if (UNTAG_Bool(REGB0)) {
2025 } else {
2026 nit_abort("Uninitialized attribute %s", "_global_classes", LOCATE_abstractmetamodel, 386);
2027 }
2028 fra.me.REG[2] = ATTR_abstractmetamodel___MMModule____global_classes(fra.me.REG[2]);
2029 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2030 /* ./metamodel//abstractmetamodel.nit:387 */
2031 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0])!=NIT_NULL);
2032 if (UNTAG_Bool(REGB0)) {
2033 } else {
2034 nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_abstractmetamodel, 387);
2035 }
2036 fra.me.REG[2] = ATTR_abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0]);
2037 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMModule____global_class_by_name(fra.me.REG[2])!=NIT_NULL);
2038 if (UNTAG_Bool(REGB0)) {
2039 } else {
2040 nit_abort("Uninitialized attribute %s", "_global_class_by_name", LOCATE_abstractmetamodel, 387);
2041 }
2042 fra.me.REG[2] = ATTR_abstractmetamodel___MMModule____global_class_by_name(fra.me.REG[2]);
2043 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
2044 CALL_abstract_collection___Map_____braeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[1]);
2045 /* ./metamodel//abstractmetamodel.nit:388 */
2046 CALL_abstractmetamodel___MMLocalClass___set_global(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2047 stack_frame_head = fra.me.prev;
2048 return;
2049 }
2050 void abstractmetamodel___MMLocalClass___set_global(val_t p0, val_t p1){
2051 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2052 val_t REGB0;
2053 val_t tmp;
2054 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2055 fra.me.file = LOCATE_abstractmetamodel;
2056 fra.me.line = 391;
2057 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___set_global;
2058 fra.me.has_broke = 0;
2059 fra.me.REG_size = 2;
2060 fra.me.REG[0] = NIT_NULL;
2061 fra.me.REG[1] = NIT_NULL;
2062 fra.me.REG[0] = p0;
2063 fra.me.REG[1] = p1;
2064 /* ./metamodel//abstractmetamodel.nit:396 */
2065 ATTR_abstractmetamodel___MMLocalClass____global(fra.me.REG[0]) = fra.me.REG[1];
2066 /* ./metamodel//abstractmetamodel.nit:397 */
2067 fra.me.REG[1] = ATTR_abstractmetamodel___MMLocalClass____global(fra.me.REG[0]);
2068 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2069 if (UNTAG_Bool(REGB0)) {
2070 nit_abort("Reciever is null", NULL, LOCATE_abstractmetamodel, 397);
2071 }
2072 CALL_abstractmetamodel___MMGlobalClass___register_local_class(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2073 /* ./metamodel//abstractmetamodel.nit:398 */
2074 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0])!=NIT_NULL);
2075 if (UNTAG_Bool(REGB0)) {
2076 } else {
2077 nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_abstractmetamodel, 398);
2078 }
2079 fra.me.REG[1] = ATTR_abstractmetamodel___MMLocalClass____mmmodule(fra.me.REG[0]);
2080 CALL_abstractmetamodel___MMModule___register_global_class(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2081 stack_frame_head = fra.me.prev;
2082 return;
2083 }
2084 val_t abstractmetamodel___MMLocalClass___has_global_property_by_name(val_t p0, val_t p1){
2085 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2086 val_t REGB0;
2087 val_t REGB1;
2088 val_t REGB2;
2089 val_t tmp;
2090 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2091 fra.me.file = LOCATE_abstractmetamodel;
2092 fra.me.line = 401;
2093 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___has_global_property_by_name;
2094 fra.me.has_broke = 0;
2095 fra.me.REG_size = 3;
2096 fra.me.REG[0] = NIT_NULL;
2097 fra.me.REG[1] = NIT_NULL;
2098 fra.me.REG[2] = NIT_NULL;
2099 fra.me.REG[0] = p0;
2100 fra.me.REG[1] = p1;
2101 /* ./metamodel//abstractmetamodel.nit:405 */
2102 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
2103 if (UNTAG_Bool(REGB0)) {
2104 } else {
2105 nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_abstractmetamodel, 405);
2106 }
2107 fra.me.REG[2] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]);
2108 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
2109 if (UNTAG_Bool(REGB0)) {
2110 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
2111 if (UNTAG_Bool(REGB0)) {
2112 } else {
2113 nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_abstractmetamodel, 405);
2114 }
2115 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]);
2116 fra.me.REG[1] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2117 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2118 if (UNTAG_Bool(REGB0)) {
2119 nit_abort("Reciever is null", NULL, LOCATE_abstractmetamodel, 405);
2120 }
2121 /* ./../lib/standard//collection//array.nit:23 */
2122 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
2123 if (UNTAG_Bool(REGB0)) {
2124 } else {
2125 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
2126 }
2127 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
2128 /* ./metamodel//abstractmetamodel.nit:405 */
2129 REGB1 = TAG_Int(1);
2130 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
2131 if (UNTAG_Bool(REGB2)) {
2132 } else {
2133 /* ./../lib/standard//kernel.nit:207 */
2134 REGB1 = TAG_Bool((REGB0)==(REGB1));
2135 /* ./metamodel//abstractmetamodel.nit:405 */
2136 REGB2 = REGB1;
2137 }
2138 } else {
2139 REGB1 = TAG_Bool(false);
2140 REGB2 = REGB1;
2141 }
2142 goto label1;
2143 label1: while(0);
2144 stack_frame_head = fra.me.prev;
2145 return REGB2;
2146 }
2147 val_t abstractmetamodel___MMLocalClass___get_property_by_name(val_t p0, val_t p1){
2148 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2149 val_t REGB0;
2150 val_t tmp;
2151 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2152 fra.me.file = LOCATE_abstractmetamodel;
2153 fra.me.line = 408;
2154 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___get_property_by_name;
2155 fra.me.has_broke = 0;
2156 fra.me.REG_size = 2;
2157 fra.me.REG[0] = NIT_NULL;
2158 fra.me.REG[1] = NIT_NULL;
2159 fra.me.REG[0] = p0;
2160 fra.me.REG[1] = p1;
2161 /* ./metamodel//abstractmetamodel.nit:412 */
2162 REGB0 = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2163 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2164 if (UNTAG_Bool(REGB0)) {
2165 nit_abort("Aborted", NULL, LOCATE_abstractmetamodel, 412);
2166 }
2167 /* ./metamodel//abstractmetamodel.nit:413 */
2168 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
2169 if (UNTAG_Bool(REGB0)) {
2170 } else {
2171 nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_abstractmetamodel, 413);
2172 }
2173 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]);
2174 fra.me.REG[1] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2175 /* ./metamodel//abstractmetamodel.nit:414 */
2176 fra.me.REG[1] = CALL_abstract_collection___Collection___first(fra.me.REG[1])(fra.me.REG[1]);
2177 goto label1;
2178 label1: while(0);
2179 stack_frame_head = fra.me.prev;
2180 return fra.me.REG[1];
2181 }
2182 val_t abstractmetamodel___MMLocalClass___attribute(val_t p0, val_t p1){
2183 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2184 val_t tmp;
2185 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2186 fra.me.file = LOCATE_abstractmetamodel;
2187 fra.me.line = 417;
2188 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___attribute;
2189 fra.me.has_broke = 0;
2190 fra.me.REG_size = 2;
2191 fra.me.REG[0] = NIT_NULL;
2192 fra.me.REG[1] = NIT_NULL;
2193 fra.me.REG[0] = p0;
2194 fra.me.REG[1] = p1;
2195 /* ./metamodel//abstractmetamodel.nit:421 */
2196 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2197 goto label1;
2198 label1: while(0);
2199 stack_frame_head = fra.me.prev;
2200 return fra.me.REG[1];
2201 }
2202 val_t abstractmetamodel___MMLocalClass___method(val_t p0, val_t p1){
2203 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2204 val_t REGB0;
2205 val_t tmp;
2206 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2207 fra.me.file = LOCATE_abstractmetamodel;
2208 fra.me.line = 424;
2209 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___method;
2210 fra.me.has_broke = 0;
2211 fra.me.REG_size = 2;
2212 fra.me.REG[0] = NIT_NULL;
2213 fra.me.REG[1] = NIT_NULL;
2214 fra.me.REG[0] = p0;
2215 fra.me.REG[1] = p1;
2216 /* ./metamodel//abstractmetamodel.nit:428 */
2217 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
2218 if (UNTAG_Bool(REGB0)) {
2219 } else {
2220 nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_abstractmetamodel, 428);
2221 }
2222 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]);
2223 fra.me.REG[1] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2224 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2225 if (UNTAG_Bool(REGB0)) {
2226 nit_abort("Reciever is null", NULL, LOCATE_abstractmetamodel, 428);
2227 }
2228 fra.me.REG[1] = CALL_abstract_collection___Collection___first(fra.me.REG[1])(fra.me.REG[1]);
2229 goto label1;
2230 label1: while(0);
2231 stack_frame_head = fra.me.prev;
2232 return fra.me.REG[1];
2233 }
2234 val_t abstractmetamodel___MMLocalClass___select_method(val_t p0, val_t p1){
2235 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2236 val_t REGB0;
2237 val_t tmp;
2238 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2239 fra.me.file = LOCATE_abstractmetamodel;
2240 fra.me.line = 431;
2241 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___select_method;
2242 fra.me.has_broke = 0;
2243 fra.me.REG_size = 2;
2244 fra.me.REG[0] = NIT_NULL;
2245 fra.me.REG[1] = NIT_NULL;
2246 fra.me.REG[0] = p0;
2247 fra.me.REG[1] = p1;
2248 /* ./metamodel//abstractmetamodel.nit:435 */
2249 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___method(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2250 /* ./metamodel//abstractmetamodel.nit:436 */
2251 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2252 /* ./metamodel//abstractmetamodel.nit:437 */
2253 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
2254 if (UNTAG_Bool(REGB0)) {
2255 } else {
2256 nit_abort("Assert failed", NULL, LOCATE_abstractmetamodel, 437);
2257 }
2258 /* ./metamodel//abstractmetamodel.nit:438 */
2259 goto label1;
2260 label1: while(0);
2261 stack_frame_head = fra.me.prev;
2262 return fra.me.REG[1];
2263 }
2264 val_t abstractmetamodel___MMLocalClass___select_attribute(val_t p0, val_t p1){
2265 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2266 val_t REGB0;
2267 val_t tmp;
2268 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2269 fra.me.file = LOCATE_abstractmetamodel;
2270 fra.me.line = 441;
2271 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___select_attribute;
2272 fra.me.has_broke = 0;
2273 fra.me.REG_size = 2;
2274 fra.me.REG[0] = NIT_NULL;
2275 fra.me.REG[1] = NIT_NULL;
2276 fra.me.REG[0] = p0;
2277 fra.me.REG[1] = p1;
2278 /* ./metamodel//abstractmetamodel.nit:445 */
2279 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___attribute(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2280 /* ./metamodel//abstractmetamodel.nit:446 */
2281 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2282 /* ./metamodel//abstractmetamodel.nit:447 */
2283 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
2284 if (UNTAG_Bool(REGB0)) {
2285 } else {
2286 nit_abort("Assert failed", NULL, LOCATE_abstractmetamodel, 447);
2287 }
2288 /* ./metamodel//abstractmetamodel.nit:448 */
2289 goto label1;
2290 label1: while(0);
2291 stack_frame_head = fra.me.prev;
2292 return fra.me.REG[1];
2293 }
2294 val_t abstractmetamodel___MMLocalClass___super_methods_named(val_t p0, val_t p1){
2295 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
2296 val_t REGB0;
2297 val_t REGB1;
2298 val_t tmp;
2299 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2300 fra.me.file = LOCATE_abstractmetamodel;
2301 fra.me.line = 451;
2302 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___super_methods_named;
2303 fra.me.has_broke = 0;
2304 fra.me.REG_size = 6;
2305 fra.me.REG[0] = NIT_NULL;
2306 fra.me.REG[1] = NIT_NULL;
2307 fra.me.REG[2] = NIT_NULL;
2308 fra.me.REG[3] = NIT_NULL;
2309 fra.me.REG[4] = NIT_NULL;
2310 fra.me.REG[5] = NIT_NULL;
2311 fra.me.REG[0] = p0;
2312 fra.me.REG[1] = p1;
2313 /* ./metamodel//abstractmetamodel.nit:455 */
2314 fra.me.REG[2] = NEW_Array_array___Array___init();
2315 /* ./metamodel//abstractmetamodel.nit:456 */
2316 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
2317 fra.me.REG[3] = CALL_partial_order___PartialOrderElement___greaters(fra.me.REG[3])(fra.me.REG[3]);
2318 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_abstractmetamodel___MMLocalClass___super_methods_named_1));
2319 /* ./metamodel//abstractmetamodel.nit:459 */
2320 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
2321 fra.me.REG[0] = CALL_partial_order___PartialOrderElement___order(fra.me.REG[0])(fra.me.REG[0]);
2322 fra.me.REG[0] = CALL_partial_order___PartialOrder___select_smallests(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
2323 fra.me.REG[2] = fra.me.REG[0];
2324 /* ./metamodel//abstractmetamodel.nit:460 */
2325 fra.me.REG[0] = NEW_Array_array___Array___init();
2326 /* ./../lib/standard//collection//array.nit:234 */
2327 REGB0 = TAG_Int(0);
2328 /* ./../lib/standard//collection//array.nit:235 */
2329 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2330 if (UNTAG_Bool(REGB1)) {
2331 } else {
2332 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
2333 }
2334 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
2335 /* ./../lib/standard//collection//array.nit:236 */
2336 fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[2]);
2337 /* ./../lib/standard//collection//array.nit:237 */
2338 while(1) {
2339 /* ./../lib/standard//collection//array.nit:23 */
2340 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
2341 if (UNTAG_Bool(REGB1)) {
2342 } else {
2343 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
2344 }
2345 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
2346 /* ./../lib/standard//kernel.nit:212 */
2347 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2348 /* ./../lib/standard//collection//array.nit:237 */
2349 if (UNTAG_Bool(REGB1)) {
2350 /* ./../lib/standard//collection//array.nit:238 */
2351 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2352 if (UNTAG_Bool(REGB1)) {
2353 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
2354 }
2355 /* ./../lib/standard//collection//array.nit:654 */
2356 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
2357 /* ./metamodel//abstractmetamodel.nit:462 */
2358 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___method(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
2359 /* ./metamodel//abstractmetamodel.nit:464 */
2360 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2361 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
2362 /* ./../lib/standard//collection//array.nit:239 */
2363 REGB1 = TAG_Int(1);
2364 /* ./../lib/standard//kernel.nit:215 */
2365 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
2366 /* ./../lib/standard//collection//array.nit:239 */
2367 REGB0 = REGB1;
2368 } else {
2369 /* ./../lib/standard//collection//array.nit:237 */
2370 goto label2;
2371 }
2372 }
2373 label2: while(0);
2374 /* ./metamodel//abstractmetamodel.nit:466 */
2375 goto label3;
2376 label3: while(0);
2377 stack_frame_head = fra.me.prev;
2378 return fra.me.REG[0];
2379 }
2380 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){
2381 struct {struct stack_frame_t me;} fra;
2382 val_t REGB0;
2383 fun_t CREG[1];
2384 val_t tmp;
2385 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2386 fra.me.file = LOCATE_abstractmetamodel;
2387 fra.me.line = 0;
2388 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___super_methods_named;
2389 fra.me.has_broke = 0;
2390 fra.me.REG_size = 1;
2391 fra.me.REG[0] = NIT_NULL;
2392 fra.me.closure_ctx = closctx_param;
2393 fra.me.closure_funs = CREG;
2394 fra.me.REG[0] = p0;
2395 CREG[0] = clos_fun0;
2396 /* ./metamodel//abstractmetamodel.nit:457 */
2397 REGB0 = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
2398 if (UNTAG_Bool(REGB0)) {
2399 CALL_abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
2400 }
2401 stack_frame_head = fra.me.prev;
2402 return;
2403 }
2404 void abstractmetamodel___MMLocalClass___register_local_property(val_t p0, val_t p1){
2405 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2406 val_t REGB0;
2407 val_t REGB1;
2408 val_t tmp;
2409 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2410 fra.me.file = LOCATE_abstractmetamodel;
2411 fra.me.line = 469;
2412 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___register_local_property;
2413 fra.me.has_broke = 0;
2414 fra.me.REG_size = 4;
2415 fra.me.REG[0] = NIT_NULL;
2416 fra.me.REG[1] = NIT_NULL;
2417 fra.me.REG[2] = NIT_NULL;
2418 fra.me.REG[3] = NIT_NULL;
2419 fra.me.REG[0] = p0;
2420 fra.me.REG[1] = p1;
2421 /* ./metamodel//abstractmetamodel.nit:472 */
2422 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0])!=NIT_NULL);
2423 if (UNTAG_Bool(REGB0)) {
2424 } else {
2425 nit_abort("Uninitialized attribute %s", "_local_property_by_global", LOCATE_abstractmetamodel, 472);
2426 }
2427 fra.me.REG[2] = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0]);
2428 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[1])(fra.me.REG[1]);
2429 CALL_abstract_collection___Map_____braeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[1]);
2430 /* ./metamodel//abstractmetamodel.nit:473 */
2431 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[1])(fra.me.REG[1]);
2432 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[0]));
2433 if (UNTAG_Bool(REGB0)) {
2434 } else {
2435 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
2436 REGB0 = REGB1;
2437 }
2438 if (UNTAG_Bool(REGB0)) {
2439 /* ./metamodel//abstractmetamodel.nit:474 */
2440 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0])!=NIT_NULL);
2441 if (UNTAG_Bool(REGB0)) {
2442 } else {
2443 nit_abort("Uninitialized attribute %s", "_local_local_properties", LOCATE_abstractmetamodel, 474);
2444 }
2445 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____local_local_properties(fra.me.REG[0]);
2446 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2447 }
2448 stack_frame_head = fra.me.prev;
2449 return;
2450 }
2451 void abstractmetamodel___MMLocalClass___register_global_property(val_t p0, val_t p1){
2452 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
2453 val_t REGB0;
2454 val_t tmp;
2455 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2456 fra.me.file = LOCATE_abstractmetamodel;
2457 fra.me.line = 478;
2458 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___register_global_property;
2459 fra.me.has_broke = 0;
2460 fra.me.REG_size = 6;
2461 fra.me.REG[0] = NIT_NULL;
2462 fra.me.REG[1] = NIT_NULL;
2463 fra.me.REG[2] = NIT_NULL;
2464 fra.me.REG[3] = NIT_NULL;
2465 fra.me.REG[4] = NIT_NULL;
2466 fra.me.REG[5] = NIT_NULL;
2467 fra.me.REG[0] = p0;
2468 fra.me.REG[1] = p1;
2469 /* ./metamodel//abstractmetamodel.nit:481 */
2470 fra.me.REG[2] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[1])(fra.me.REG[1]);
2471 /* ./metamodel//abstractmetamodel.nit:482 */
2472 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
2473 /* ./metamodel//abstractmetamodel.nit:483 */
2474 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
2475 if (UNTAG_Bool(REGB0)) {
2476 } else {
2477 nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_abstractmetamodel, 483);
2478 }
2479 fra.me.REG[4] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]);
2480 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
2481 if (UNTAG_Bool(REGB0)) {
2482 /* ./metamodel//abstractmetamodel.nit:484 */
2483 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
2484 if (UNTAG_Bool(REGB0)) {
2485 } else {
2486 nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_abstractmetamodel, 484);
2487 }
2488 fra.me.REG[4] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]);
2489 fra.me.REG[4] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
2490 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2491 if (UNTAG_Bool(REGB0)) {
2492 nit_abort("Reciever is null", NULL, LOCATE_abstractmetamodel, 484);
2493 }
2494 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
2495 } else {
2496 /* ./metamodel//abstractmetamodel.nit:486 */
2497 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0])!=NIT_NULL);
2498 if (UNTAG_Bool(REGB0)) {
2499 } else {
2500 nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_abstractmetamodel, 486);
2501 }
2502 fra.me.REG[4] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(fra.me.REG[0]);
2503 REGB0 = TAG_Int(1);
2504 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
2505 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
2506 CALL_abstract_collection___Map_____braeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3], fra.me.REG[5]);
2507 }
2508 /* ./metamodel//abstractmetamodel.nit:488 */
2509 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0])!=NIT_NULL);
2510 if (UNTAG_Bool(REGB0)) {
2511 } else {
2512 nit_abort("Uninitialized attribute %s", "_global_properties", LOCATE_abstractmetamodel, 488);
2513 }
2514 fra.me.REG[5] = ATTR_abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0]);
2515 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
2516 /* ./metamodel//abstractmetamodel.nit:489 */
2517 CALL_abstractmetamodel___MMLocalClass___register_local_property(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
2518 stack_frame_head = fra.me.prev;
2519 return;
2520 }
2521 val_t abstractmetamodel___MMLocalClass___has_global_property(val_t p0, val_t p1){
2522 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2523 val_t REGB0;
2524 val_t tmp;
2525 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2526 fra.me.file = LOCATE_abstractmetamodel;
2527 fra.me.line = 492;
2528 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___has_global_property;
2529 fra.me.has_broke = 0;
2530 fra.me.REG_size = 2;
2531 fra.me.REG[0] = NIT_NULL;
2532 fra.me.REG[1] = NIT_NULL;
2533 fra.me.REG[0] = p0;
2534 fra.me.REG[1] = p1;
2535 /* ./metamodel//abstractmetamodel.nit:495 */
2536 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0])!=NIT_NULL);
2537 if (UNTAG_Bool(REGB0)) {
2538 } else {
2539 nit_abort("Uninitialized attribute %s", "_global_properties", LOCATE_abstractmetamodel, 495);
2540 }
2541 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____global_properties(fra.me.REG[0]);
2542 REGB0 = CALL_abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2543 goto label1;
2544 label1: while(0);
2545 stack_frame_head = fra.me.prev;
2546 return REGB0;
2547 }
2548 val_t abstractmetamodel___MMLocalClass_____bra(val_t p0, val_t p1){
2549 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2550 val_t REGB0;
2551 val_t tmp;
2552 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2553 fra.me.file = LOCATE_abstractmetamodel;
2554 fra.me.line = 498;
2555 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass_____bra;
2556 fra.me.has_broke = 0;
2557 fra.me.REG_size = 2;
2558 fra.me.REG[0] = NIT_NULL;
2559 fra.me.REG[1] = NIT_NULL;
2560 fra.me.REG[0] = p0;
2561 fra.me.REG[1] = p1;
2562 /* ./metamodel//abstractmetamodel.nit:501 */
2563 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0])!=NIT_NULL);
2564 if (UNTAG_Bool(REGB0)) {
2565 } else {
2566 nit_abort("Uninitialized attribute %s", "_local_property_by_global", LOCATE_abstractmetamodel, 501);
2567 }
2568 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(fra.me.REG[0]);
2569 fra.me.REG[1] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2570 goto label1;
2571 label1: while(0);
2572 stack_frame_head = fra.me.prev;
2573 return fra.me.REG[1];
2574 }
2575 val_t abstractmetamodel___MMLocalClass___context(val_t p0){
2576 struct {struct stack_frame_t me;} fra;
2577 val_t tmp;
2578 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2579 fra.me.file = LOCATE_abstractmetamodel;
2580 fra.me.line = 504;
2581 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___context;
2582 fra.me.has_broke = 0;
2583 fra.me.REG_size = 1;
2584 fra.me.REG[0] = NIT_NULL;
2585 fra.me.REG[0] = p0;
2586 /* ./metamodel//abstractmetamodel.nit:505 */
2587 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
2588 fra.me.REG[0] = CALL_abstractmetamodel___MMModule___context(fra.me.REG[0])(fra.me.REG[0]);
2589 goto label1;
2590 label1: while(0);
2591 stack_frame_head = fra.me.prev;
2592 return fra.me.REG[0];
2593 }
2594 val_t abstractmetamodel___MMLocalClass___to_s(val_t p0){
2595 struct {struct stack_frame_t me;} fra;
2596 val_t REGB0;
2597 val_t tmp;
2598 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2599 fra.me.file = LOCATE_abstractmetamodel;
2600 fra.me.line = 507;
2601 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___to_s;
2602 fra.me.has_broke = 0;
2603 fra.me.REG_size = 1;
2604 fra.me.REG[0] = NIT_NULL;
2605 fra.me.REG[0] = p0;
2606 /* ./metamodel//abstractmetamodel.nit:509 */
2607 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalClass____name(fra.me.REG[0])!=NIT_NULL);
2608 if (UNTAG_Bool(REGB0)) {
2609 } else {
2610 nit_abort("Uninitialized attribute %s", "_name", LOCATE_abstractmetamodel, 509);
2611 }
2612 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalClass____name(fra.me.REG[0]);
2613 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2614 goto label1;
2615 label1: while(0);
2616 stack_frame_head = fra.me.prev;
2617 return fra.me.REG[0];
2618 }
2619 val_t abstractmetamodel___MMLocalClass___total_order_compare(val_t p0, val_t p1){
2620 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2621 val_t REGB0;
2622 val_t REGB1;
2623 val_t REGB2;
2624 val_t REGB3;
2625 val_t tmp;
2626 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2627 fra.me.file = LOCATE_abstractmetamodel;
2628 fra.me.line = 512;
2629 fra.me.meth = LOCATE_abstractmetamodel___MMLocalClass___total_order_compare;
2630 fra.me.has_broke = 0;
2631 fra.me.REG_size = 4;
2632 fra.me.REG[0] = NIT_NULL;
2633 fra.me.REG[1] = NIT_NULL;
2634 fra.me.REG[2] = NIT_NULL;
2635 fra.me.REG[3] = NIT_NULL;
2636 fra.me.REG[0] = p0;
2637 fra.me.REG[1] = p1;
2638 /* ./metamodel//abstractmetamodel.nit:516 */
2639 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[1]));
2640 if (UNTAG_Bool(REGB0)) {
2641 } else {
2642 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2643 REGB0 = REGB1;
2644 }
2645 if (UNTAG_Bool(REGB0)) {
2646 /* ./metamodel//abstractmetamodel.nit:517 */
2647 REGB0 = TAG_Int(0);
2648 goto label1;
2649 } else {
2650 /* ./metamodel//abstractmetamodel.nit:518 */
2651 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
2652 fra.me.REG[2] = CALL_abstractmetamodel___MMModule___mhe(fra.me.REG[2])(fra.me.REG[2]);
2653 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
2654 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2655 if (UNTAG_Bool(REGB1)) {
2656 nit_abort("Reciever is null", NULL, LOCATE_abstractmetamodel, 518);
2657 }
2658 REGB1 = CALL_partial_order___PartialOrderElement_____l(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2659 if (UNTAG_Bool(REGB1)) {
2660 /* ./metamodel//abstractmetamodel.nit:519 */
2661 REGB1 = TAG_Int(1);
2662 REGB0 = REGB1;
2663 goto label1;
2664 } else {
2665 /* ./metamodel//abstractmetamodel.nit:520 */
2666 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
2667 fra.me.REG[3] = CALL_abstractmetamodel___MMModule___mhe(fra.me.REG[3])(fra.me.REG[3]);
2668 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
2669 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2670 if (UNTAG_Bool(REGB1)) {
2671 nit_abort("Reciever is null", NULL, LOCATE_abstractmetamodel, 520);
2672 }
2673 REGB1 = CALL_partial_order___PartialOrderElement_____l(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
2674 if (UNTAG_Bool(REGB1)) {
2675 /* ./metamodel//abstractmetamodel.nit:521 */
2676 REGB1 = TAG_Int(1);
2677 /* ./../lib/standard//kernel.nit:216 */
2678 REGB1 = TAG_Int(-UNTAG_Int(REGB1));
2679 /* ./metamodel//abstractmetamodel.nit:521 */
2680 REGB0 = REGB1;
2681 goto label1;
2682 }
2683 }
2684 }
2685 /* ./metamodel//abstractmetamodel.nit:523 */
2686 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
2687 REGB1 = CALL_partial_order___PartialOrderElement___rank(fra.me.REG[2])(fra.me.REG[2]);
2688 /* ./metamodel//abstractmetamodel.nit:524 */
2689 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[1])(fra.me.REG[1]);
2690 REGB2 = CALL_partial_order___PartialOrderElement___rank(fra.me.REG[2])(fra.me.REG[2]);
2691 /* ./../lib/standard//kernel.nit:214 */
2692 REGB3 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
2693 /* ./metamodel//abstractmetamodel.nit:525 */
2694 if (UNTAG_Bool(REGB3)) {
2695 /* ./metamodel//abstractmetamodel.nit:526 */
2696 REGB3 = TAG_Int(1);
2697 REGB0 = REGB3;
2698 goto label1;
2699 } else {
2700 /* ./../lib/standard//kernel.nit:214 */
2701 REGB1 = TAG_Bool(UNTAG_Int(REGB2)>UNTAG_Int(REGB1));
2702 /* ./metamodel//abstractmetamodel.nit:527 */
2703 if (UNTAG_Bool(REGB1)) {
2704 /* ./metamodel//abstractmetamodel.nit:528 */
2705 REGB1 = TAG_Int(1);
2706 /* ./../lib/standard//kernel.nit:216 */
2707 REGB1 = TAG_Int(-UNTAG_Int(REGB1));
2708 /* ./metamodel//abstractmetamodel.nit:528 */
2709 REGB0 = REGB1;
2710 goto label1;
2711 } else {
2712 /* ./metamodel//abstractmetamodel.nit:530 */
2713 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[1])(fra.me.REG[1]);
2714 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
2715 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
2716 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2717 REGB1 = CALL_kernel___Comparable_____leqg(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2718 REGB0 = REGB1;
2719 goto label1;
2720 }
2721 }
2722 label1: while(0);
2723 stack_frame_head = fra.me.prev;
2724 return REGB0;
2725 }
2726 val_t abstractmetamodel___MMGlobalProperty___intro(val_t p0){
2727 struct {struct stack_frame_t me;} fra;
2728 val_t REGB0;
2729 val_t tmp;
2730 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2731 fra.me.file = LOCATE_abstractmetamodel;
2732 fra.me.line = 539;
2733 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___intro;
2734 fra.me.has_broke = 0;
2735 fra.me.REG_size = 1;
2736 fra.me.REG[0] = NIT_NULL;
2737 fra.me.REG[0] = p0;
2738 /* ./metamodel//abstractmetamodel.nit:539 */
2739 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalProperty____intro(fra.me.REG[0])!=NIT_NULL);
2740 if (UNTAG_Bool(REGB0)) {
2741 } else {
2742 nit_abort("Uninitialized attribute %s", "_intro", LOCATE_abstractmetamodel, 539);
2743 }
2744 fra.me.REG[0] = ATTR_abstractmetamodel___MMGlobalProperty____intro(fra.me.REG[0]);
2745 stack_frame_head = fra.me.prev;
2746 return fra.me.REG[0];
2747 }
2748 val_t abstractmetamodel___MMGlobalProperty___local_class(val_t p0){
2749 struct {struct stack_frame_t me;} fra;
2750 val_t tmp;
2751 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2752 fra.me.file = LOCATE_abstractmetamodel;
2753 fra.me.line = 542;
2754 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___local_class;
2755 fra.me.has_broke = 0;
2756 fra.me.REG_size = 1;
2757 fra.me.REG[0] = NIT_NULL;
2758 fra.me.REG[0] = p0;
2759 /* ./metamodel//abstractmetamodel.nit:545 */
2760 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
2761 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
2762 goto label1;
2763 label1: while(0);
2764 stack_frame_head = fra.me.prev;
2765 return fra.me.REG[0];
2766 }
2767 val_t abstractmetamodel___MMGlobalProperty___property_hierarchy(val_t p0){
2768 struct {struct stack_frame_t me;} fra;
2769 val_t REGB0;
2770 val_t tmp;
2771 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2772 fra.me.file = LOCATE_abstractmetamodel;
2773 fra.me.line = 548;
2774 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___property_hierarchy;
2775 fra.me.has_broke = 0;
2776 fra.me.REG_size = 1;
2777 fra.me.REG[0] = NIT_NULL;
2778 fra.me.REG[0] = p0;
2779 /* ./metamodel//abstractmetamodel.nit:548 */
2780 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalProperty____property_hierarchy(fra.me.REG[0])!=NIT_NULL);
2781 if (UNTAG_Bool(REGB0)) {
2782 } else {
2783 nit_abort("Uninitialized attribute %s", "_property_hierarchy", LOCATE_abstractmetamodel, 548);
2784 }
2785 fra.me.REG[0] = ATTR_abstractmetamodel___MMGlobalProperty____property_hierarchy(fra.me.REG[0]);
2786 stack_frame_head = fra.me.prev;
2787 return fra.me.REG[0];
2788 }
2789 void abstractmetamodel___MMGlobalProperty___init(val_t p0, val_t p1, int* init_table){
2790 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMGlobalProperty].i;
2791 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2792 val_t tmp;
2793 if (init_table[itpos5]) return;
2794 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2795 fra.me.file = LOCATE_abstractmetamodel;
2796 fra.me.line = 551;
2797 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___init;
2798 fra.me.has_broke = 0;
2799 fra.me.REG_size = 3;
2800 fra.me.REG[0] = NIT_NULL;
2801 fra.me.REG[1] = NIT_NULL;
2802 fra.me.REG[2] = NIT_NULL;
2803 fra.me.REG[0] = p0;
2804 fra.me.REG[1] = p1;
2805 /* ./metamodel//abstractmetamodel.nit:554 */
2806 ATTR_abstractmetamodel___MMGlobalProperty____intro(fra.me.REG[0]) = fra.me.REG[1];
2807 /* ./metamodel//abstractmetamodel.nit:555 */
2808 fra.me.REG[2] = NEW_Array_array___Array___init();
2809 CALL_abstractmetamodel___MMGlobalProperty___add_local_property(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
2810 stack_frame_head = fra.me.prev;
2811 init_table[itpos5] = 1;
2812 return;
2813 }
2814 val_t abstractmetamodel___MMGlobalProperty___to_s(val_t p0){
2815 struct {struct stack_frame_t me;} fra;
2816 val_t tmp;
2817 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2818 fra.me.file = LOCATE_abstractmetamodel;
2819 fra.me.line = 558;
2820 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___to_s;
2821 fra.me.has_broke = 0;
2822 fra.me.REG_size = 1;
2823 fra.me.REG[0] = NIT_NULL;
2824 fra.me.REG[0] = p0;
2825 /* ./metamodel//abstractmetamodel.nit:558 */
2826 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
2827 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[0])(fra.me.REG[0]);
2828 goto label1;
2829 label1: while(0);
2830 stack_frame_head = fra.me.prev;
2831 return fra.me.REG[0];
2832 }
2833 void abstractmetamodel___MMGlobalProperty___add_local_property(val_t p0, val_t p1, val_t p2){
2834 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2835 val_t REGB0;
2836 val_t tmp;
2837 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2838 fra.me.file = LOCATE_abstractmetamodel;
2839 fra.me.line = 560;
2840 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___add_local_property;
2841 fra.me.has_broke = 0;
2842 fra.me.REG_size = 3;
2843 fra.me.REG[0] = NIT_NULL;
2844 fra.me.REG[1] = NIT_NULL;
2845 fra.me.REG[2] = NIT_NULL;
2846 fra.me.REG[0] = p0;
2847 fra.me.REG[1] = p1;
2848 fra.me.REG[2] = p2;
2849 /* ./metamodel//abstractmetamodel.nit:563 */
2850 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalProperty____property_hierarchy(fra.me.REG[0])!=NIT_NULL);
2851 if (UNTAG_Bool(REGB0)) {
2852 } else {
2853 nit_abort("Uninitialized attribute %s", "_property_hierarchy", LOCATE_abstractmetamodel, 563);
2854 }
2855 fra.me.REG[0] = ATTR_abstractmetamodel___MMGlobalProperty____property_hierarchy(fra.me.REG[0]);
2856 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]);
2857 ATTR_abstractmetamodel___MMLocalProperty____prhe(fra.me.REG[1]) = fra.me.REG[2];
2858 stack_frame_head = fra.me.prev;
2859 return;
2860 }
2861 val_t abstractmetamodel___MMGlobalProperty___is_attribute(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 = 566;
2868 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___is_attribute;
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:567 */
2874 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
2875 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
2876 goto label1;
2877 label1: while(0);
2878 stack_frame_head = fra.me.prev;
2879 return REGB0;
2880 }
2881 val_t abstractmetamodel___MMGlobalProperty___is_method(val_t p0){
2882 struct {struct stack_frame_t me;} fra;
2883 val_t REGB0;
2884 val_t tmp;
2885 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2886 fra.me.file = LOCATE_abstractmetamodel;
2887 fra.me.line = 569;
2888 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___is_method;
2889 fra.me.has_broke = 0;
2890 fra.me.REG_size = 1;
2891 fra.me.REG[0] = NIT_NULL;
2892 fra.me.REG[0] = p0;
2893 /* ./metamodel//abstractmetamodel.nit:570 */
2894 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
2895 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
2896 goto label1;
2897 label1: while(0);
2898 stack_frame_head = fra.me.prev;
2899 return REGB0;
2900 }
2901 val_t abstractmetamodel___MMGlobalProperty___is_init(val_t p0){
2902 struct {struct stack_frame_t me;} fra;
2903 val_t REGB0;
2904 val_t tmp;
2905 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2906 fra.me.file = LOCATE_abstractmetamodel;
2907 fra.me.line = 572;
2908 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___is_init;
2909 fra.me.has_broke = 0;
2910 fra.me.REG_size = 1;
2911 fra.me.REG[0] = NIT_NULL;
2912 fra.me.REG[0] = p0;
2913 /* ./metamodel//abstractmetamodel.nit:572 */
2914 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalProperty____is_init(fra.me.REG[0])!=NIT_NULL);
2915 if (UNTAG_Bool(REGB0)) {
2916 } else {
2917 nit_abort("Uninitialized attribute %s", "_is_init", LOCATE_abstractmetamodel, 572);
2918 }
2919 REGB0 = ATTR_abstractmetamodel___MMGlobalProperty____is_init(fra.me.REG[0]);
2920 stack_frame_head = fra.me.prev;
2921 return REGB0;
2922 }
2923 void abstractmetamodel___MMGlobalProperty___is_init__eq(val_t p0, val_t p1){
2924 struct {struct stack_frame_t me;} fra;
2925 val_t REGB0;
2926 val_t tmp;
2927 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2928 fra.me.file = LOCATE_abstractmetamodel;
2929 fra.me.line = 572;
2930 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___is_init__eq;
2931 fra.me.has_broke = 0;
2932 fra.me.REG_size = 1;
2933 fra.me.REG[0] = NIT_NULL;
2934 fra.me.REG[0] = p0;
2935 REGB0 = p1;
2936 /* ./metamodel//abstractmetamodel.nit:572 */
2937 ATTR_abstractmetamodel___MMGlobalProperty____is_init(fra.me.REG[0]) = REGB0;
2938 stack_frame_head = fra.me.prev;
2939 return;
2940 }
2941 val_t abstractmetamodel___MMGlobalProperty___is_init_for(val_t p0, val_t p1){
2942 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2943 val_t REGB0;
2944 val_t REGB1;
2945 val_t REGB2;
2946 val_t tmp;
2947 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2948 fra.me.file = LOCATE_abstractmetamodel;
2949 fra.me.line = 575;
2950 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___is_init_for;
2951 fra.me.has_broke = 0;
2952 fra.me.REG_size = 3;
2953 fra.me.REG[0] = NIT_NULL;
2954 fra.me.REG[1] = NIT_NULL;
2955 fra.me.REG[2] = NIT_NULL;
2956 fra.me.REG[0] = p0;
2957 fra.me.REG[1] = p1;
2958 /* ./metamodel//abstractmetamodel.nit:578 */
2959 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
2960 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2961 if (UNTAG_Bool(REGB0)) {
2962 REGB0 = TAG_Bool(false);
2963 goto label1;
2964 }
2965 /* ./metamodel//abstractmetamodel.nit:579 */
2966 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
2967 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
2968 /* ./metamodel//abstractmetamodel.nit:580 */
2969 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___che(fra.me.REG[1])(fra.me.REG[1]);
2970 REGB1 = CALL_partial_order___PartialOrderElement_____leq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2971 if (UNTAG_Bool(REGB1)) {
2972 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
2973 fra.me.REG[1] = CALL_abstractmetamodel___MMGlobalClass___mixin_of(fra.me.REG[1])(fra.me.REG[1]);
2974 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
2975 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalClass___mixin_of(fra.me.REG[0])(fra.me.REG[0]);
2976 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
2977 if (UNTAG_Bool(REGB1)) {
2978 } else {
2979 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2980 REGB1 = REGB2;
2981 }
2982 } else {
2983 REGB2 = TAG_Bool(false);
2984 REGB1 = REGB2;
2985 }
2986 /* ./metamodel//abstractmetamodel.nit:581 */
2987 REGB0 = REGB1;
2988 goto label1;
2989 label1: while(0);
2990 stack_frame_head = fra.me.prev;
2991 return REGB0;
2992 }
2993 val_t abstractmetamodel___MMGlobalProperty___visibility_level(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 = 584;
3000 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___visibility_level;
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:584 */
3006 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMGlobalProperty____visibility_level(fra.me.REG[0])!=NIT_NULL);
3007 if (UNTAG_Bool(REGB0)) {
3008 } else {
3009 nit_abort("Uninitialized attribute %s", "_visibility_level", LOCATE_abstractmetamodel, 584);
3010 }
3011 REGB0 = ATTR_abstractmetamodel___MMGlobalProperty____visibility_level(fra.me.REG[0]);
3012 stack_frame_head = fra.me.prev;
3013 return REGB0;
3014 }
3015 void abstractmetamodel___MMGlobalProperty___visibility_level__eq(val_t p0, val_t p1){
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 = 584;
3022 fra.me.meth = LOCATE_abstractmetamodel___MMGlobalProperty___visibility_level__eq;
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 REGB0 = p1;
3028 /* ./metamodel//abstractmetamodel.nit:584 */
3029 ATTR_abstractmetamodel___MMGlobalProperty____visibility_level(fra.me.REG[0]) = REGB0;
3030 stack_frame_head = fra.me.prev;
3031 return;
3032 }
3033 val_t abstractmetamodel___MMLocalProperty___name(val_t p0){
3034 struct {struct stack_frame_t me;} fra;
3035 val_t REGB0;
3036 val_t tmp;
3037 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3038 fra.me.file = LOCATE_abstractmetamodel;
3039 fra.me.line = 593;
3040 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___name;
3041 fra.me.has_broke = 0;
3042 fra.me.REG_size = 1;
3043 fra.me.REG[0] = NIT_NULL;
3044 fra.me.REG[0] = p0;
3045 /* ./metamodel//abstractmetamodel.nit:593 */
3046 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____name(fra.me.REG[0])!=NIT_NULL);
3047 if (UNTAG_Bool(REGB0)) {
3048 } else {
3049 nit_abort("Uninitialized attribute %s", "_name", LOCATE_abstractmetamodel, 593);
3050 }
3051 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalProperty____name(fra.me.REG[0]);
3052 stack_frame_head = fra.me.prev;
3053 return fra.me.REG[0];
3054 }
3055 val_t abstractmetamodel___MMLocalProperty___local_class(val_t p0){
3056 struct {struct stack_frame_t me;} fra;
3057 val_t REGB0;
3058 val_t tmp;
3059 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3060 fra.me.file = LOCATE_abstractmetamodel;
3061 fra.me.line = 596;
3062 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___local_class;
3063 fra.me.has_broke = 0;
3064 fra.me.REG_size = 1;
3065 fra.me.REG[0] = NIT_NULL;
3066 fra.me.REG[0] = p0;
3067 /* ./metamodel//abstractmetamodel.nit:596 */
3068 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
3069 if (UNTAG_Bool(REGB0)) {
3070 } else {
3071 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_abstractmetamodel, 596);
3072 }
3073 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0]);
3074 stack_frame_head = fra.me.prev;
3075 return fra.me.REG[0];
3076 }
3077 val_t abstractmetamodel___MMLocalProperty___global(val_t p0){
3078 struct {struct stack_frame_t me;} fra;
3079 val_t REGB0;
3080 val_t tmp;
3081 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3082 fra.me.file = LOCATE_abstractmetamodel;
3083 fra.me.line = 602;
3084 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___global;
3085 fra.me.has_broke = 0;
3086 fra.me.REG_size = 1;
3087 fra.me.REG[0] = NIT_NULL;
3088 fra.me.REG[0] = p0;
3089 /* ./metamodel//abstractmetamodel.nit:602 */
3090 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalProperty____global(fra.me.REG[0]);
3091 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
3092 if (UNTAG_Bool(REGB0)) {
3093 } else {
3094 nit_abort("Cast failed", NULL, LOCATE_abstractmetamodel, 602);
3095 }
3096 goto label1;
3097 label1: while(0);
3098 stack_frame_head = fra.me.prev;
3099 return fra.me.REG[0];
3100 }
3101 val_t abstractmetamodel___MMLocalProperty___is_global_set(val_t p0){
3102 struct {struct stack_frame_t me;} fra;
3103 val_t REGB0;
3104 val_t REGB1;
3105 val_t tmp;
3106 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3107 fra.me.file = LOCATE_abstractmetamodel;
3108 fra.me.line = 603;
3109 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___is_global_set;
3110 fra.me.has_broke = 0;
3111 fra.me.REG_size = 1;
3112 fra.me.REG[0] = NIT_NULL;
3113 fra.me.REG[0] = p0;
3114 /* ./metamodel//abstractmetamodel.nit:603 */
3115 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalProperty____global(fra.me.REG[0]);
3116 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3117 if (UNTAG_Bool(REGB0)) {
3118 } else {
3119 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3120 if (UNTAG_Bool(REGB1)) {
3121 REGB1 = TAG_Bool(false);
3122 REGB0 = REGB1;
3123 } else {
3124 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
3125 REGB0 = REGB1;
3126 }
3127 }
3128 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3129 goto label1;
3130 label1: while(0);
3131 stack_frame_head = fra.me.prev;
3132 return REGB0;
3133 }
3134 val_t abstractmetamodel___MMLocalProperty___prhe(val_t p0){
3135 struct {struct stack_frame_t me;} fra;
3136 val_t REGB0;
3137 val_t tmp;
3138 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3139 fra.me.file = LOCATE_abstractmetamodel;
3140 fra.me.line = 608;
3141 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___prhe;
3142 fra.me.has_broke = 0;
3143 fra.me.REG_size = 1;
3144 fra.me.REG[0] = NIT_NULL;
3145 fra.me.REG[0] = p0;
3146 /* ./metamodel//abstractmetamodel.nit:608 */
3147 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalProperty____prhe(fra.me.REG[0]);
3148 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
3149 if (UNTAG_Bool(REGB0)) {
3150 } else {
3151 nit_abort("Cast failed", NULL, LOCATE_abstractmetamodel, 608);
3152 }
3153 goto label1;
3154 label1: while(0);
3155 stack_frame_head = fra.me.prev;
3156 return fra.me.REG[0];
3157 }
3158 val_t abstractmetamodel___MMLocalProperty___mmmodule(val_t p0){
3159 struct {struct stack_frame_t me;} fra;
3160 val_t REGB0;
3161 val_t tmp;
3162 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3163 fra.me.file = LOCATE_abstractmetamodel;
3164 fra.me.line = 610;
3165 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___mmmodule;
3166 fra.me.has_broke = 0;
3167 fra.me.REG_size = 1;
3168 fra.me.REG[0] = NIT_NULL;
3169 fra.me.REG[0] = p0;
3170 /* ./metamodel//abstractmetamodel.nit:611 */
3171 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
3172 if (UNTAG_Bool(REGB0)) {
3173 } else {
3174 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_abstractmetamodel, 611);
3175 }
3176 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0]);
3177 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
3178 goto label1;
3179 label1: while(0);
3180 stack_frame_head = fra.me.prev;
3181 return fra.me.REG[0];
3182 }
3183 val_t abstractmetamodel___MMLocalProperty___full_name(val_t p0){
3184 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3185 val_t REGB0;
3186 val_t REGB1;
3187 val_t tmp;
3188 static val_t once_value_1; /* Once value */
3189 static val_t once_value_2; /* Once value */
3190 static val_t once_value_3; /* Once value */
3191 static val_t once_value_4; /* Once value */
3192 static val_t once_value_6; /* Once value */
3193 static val_t once_value_7; /* Once value */
3194 static val_t once_value_8; /* Once value */
3195 static val_t once_value_9; /* Once value */
3196 static val_t once_value_10; /* Once value */
3197 static val_t once_value_11; /* Once value */
3198 static val_t once_value_12; /* Once value */
3199 static val_t once_value_13; /* Once value */
3200 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3201 fra.me.file = LOCATE_abstractmetamodel;
3202 fra.me.line = 613;
3203 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___full_name;
3204 fra.me.has_broke = 0;
3205 fra.me.REG_size = 4;
3206 fra.me.REG[0] = NIT_NULL;
3207 fra.me.REG[1] = NIT_NULL;
3208 fra.me.REG[2] = NIT_NULL;
3209 fra.me.REG[3] = NIT_NULL;
3210 fra.me.REG[0] = p0;
3211 /* ./metamodel//abstractmetamodel.nit:616 */
3212 fra.me.REG[1] = ATTR_abstractmetamodel___MMLocalProperty____global(fra.me.REG[0]);
3213 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3214 if (UNTAG_Bool(REGB0)) {
3215 } else {
3216 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3217 if (UNTAG_Bool(REGB1)) {
3218 REGB1 = TAG_Bool(false);
3219 REGB0 = REGB1;
3220 } else {
3221 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
3222 REGB0 = REGB1;
3223 }
3224 }
3225 if (UNTAG_Bool(REGB0)) {
3226 /* ./metamodel//abstractmetamodel.nit:617 */
3227 REGB0 = TAG_Int(7);
3228 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
3229 if (!once_value_1) {
3230 fra.me.REG[2] = BOX_NativeString("");
3231 REGB0 = TAG_Int(0);
3232 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
3233 once_value_1 = fra.me.REG[2];
3234 register_static_object(&once_value_1);
3235 } else fra.me.REG[2] = once_value_1;
3236 fra.me.REG[2] = fra.me.REG[2];
3237 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3238 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
3239 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[2])(fra.me.REG[2]);
3240 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3241 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3242 if (!once_value_2) {
3243 fra.me.REG[2] = BOX_NativeString("::");
3244 REGB0 = TAG_Int(2);
3245 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
3246 once_value_2 = fra.me.REG[2];
3247 register_static_object(&once_value_2);
3248 } else fra.me.REG[2] = once_value_2;
3249 fra.me.REG[2] = fra.me.REG[2];
3250 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3251 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
3252 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3253 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3254 if (!once_value_3) {
3255 fra.me.REG[2] = BOX_NativeString("::(?::");
3256 REGB0 = TAG_Int(6);
3257 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
3258 once_value_3 = fra.me.REG[2];
3259 register_static_object(&once_value_3);
3260 } else fra.me.REG[2] = once_value_3;
3261 fra.me.REG[2] = fra.me.REG[2];
3262 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3263 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]);
3264 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3265 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3266 if (!once_value_4) {
3267 fra.me.REG[2] = BOX_NativeString(")");
3268 REGB0 = TAG_Int(1);
3269 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
3270 once_value_4 = fra.me.REG[2];
3271 register_static_object(&once_value_4);
3272 } else fra.me.REG[2] = once_value_4;
3273 fra.me.REG[2] = fra.me.REG[2];
3274 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3275 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
3276 goto label5;
3277 } else {
3278 /* ./metamodel//abstractmetamodel.nit:618 */
3279 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
3280 fra.me.REG[2] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[2])(fra.me.REG[2]);
3281 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[0]));
3282 if (UNTAG_Bool(REGB0)) {
3283 } else {
3284 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3285 REGB0 = REGB1;
3286 }
3287 if (UNTAG_Bool(REGB0)) {
3288 /* ./metamodel//abstractmetamodel.nit:619 */
3289 REGB0 = TAG_Int(7);
3290 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
3291 if (!once_value_6) {
3292 fra.me.REG[3] = BOX_NativeString("");
3293 REGB0 = TAG_Int(0);
3294 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
3295 once_value_6 = fra.me.REG[3];
3296 register_static_object(&once_value_6);
3297 } else fra.me.REG[3] = once_value_6;
3298 fra.me.REG[3] = fra.me.REG[3];
3299 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3300 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
3301 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
3302 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3303 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3304 if (!once_value_7) {
3305 fra.me.REG[3] = BOX_NativeString("::");
3306 REGB0 = TAG_Int(2);
3307 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
3308 once_value_7 = fra.me.REG[3];
3309 register_static_object(&once_value_7);
3310 } else fra.me.REG[3] = once_value_7;
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_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3315 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3316 if (!once_value_8) {
3317 fra.me.REG[3] = BOX_NativeString("::");
3318 REGB0 = TAG_Int(2);
3319 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
3320 once_value_8 = fra.me.REG[3];
3321 register_static_object(&once_value_8);
3322 } else fra.me.REG[3] = once_value_8;
3323 fra.me.REG[3] = fra.me.REG[3];
3324 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3325 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]);
3326 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3327 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3328 if (!once_value_9) {
3329 fra.me.REG[3] = BOX_NativeString("");
3330 REGB0 = TAG_Int(0);
3331 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
3332 once_value_9 = fra.me.REG[3];
3333 register_static_object(&once_value_9);
3334 } else fra.me.REG[3] = once_value_9;
3335 fra.me.REG[3] = fra.me.REG[3];
3336 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3337 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3338 fra.me.REG[1] = fra.me.REG[2];
3339 goto label5;
3340 } else {
3341 /* ./metamodel//abstractmetamodel.nit:621 */
3342 REGB0 = TAG_Int(7);
3343 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
3344 if (!once_value_10) {
3345 fra.me.REG[3] = BOX_NativeString("");
3346 REGB0 = TAG_Int(0);
3347 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
3348 once_value_10 = fra.me.REG[3];
3349 register_static_object(&once_value_10);
3350 } else fra.me.REG[3] = once_value_10;
3351 fra.me.REG[3] = fra.me.REG[3];
3352 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3353 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
3354 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
3355 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3356 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3357 if (!once_value_11) {
3358 fra.me.REG[3] = BOX_NativeString("::");
3359 REGB0 = TAG_Int(2);
3360 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
3361 once_value_11 = fra.me.REG[3];
3362 register_static_object(&once_value_11);
3363 } else fra.me.REG[3] = once_value_11;
3364 fra.me.REG[3] = fra.me.REG[3];
3365 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3366 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
3367 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3368 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3369 if (!once_value_12) {
3370 fra.me.REG[3] = BOX_NativeString("::(");
3371 REGB0 = TAG_Int(3);
3372 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
3373 once_value_12 = fra.me.REG[3];
3374 register_static_object(&once_value_12);
3375 } else fra.me.REG[3] = once_value_12;
3376 fra.me.REG[3] = fra.me.REG[3];
3377 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3378 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
3379 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
3380 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[0])(fra.me.REG[0]);
3381 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3382 if (!once_value_13) {
3383 fra.me.REG[0] = BOX_NativeString(")");
3384 REGB0 = TAG_Int(1);
3385 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
3386 once_value_13 = fra.me.REG[0];
3387 register_static_object(&once_value_13);
3388 } else fra.me.REG[0] = once_value_13;
3389 fra.me.REG[0] = fra.me.REG[0];
3390 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3391 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3392 fra.me.REG[1] = fra.me.REG[2];
3393 goto label5;
3394 }
3395 }
3396 label5: while(0);
3397 stack_frame_head = fra.me.prev;
3398 return fra.me.REG[1];
3399 }
3400 void abstractmetamodel___MMLocalProperty___set_global(val_t p0, val_t p1){
3401 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3402 val_t REGB0;
3403 val_t tmp;
3404 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3405 fra.me.file = LOCATE_abstractmetamodel;
3406 fra.me.line = 625;
3407 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___set_global;
3408 fra.me.has_broke = 0;
3409 fra.me.REG_size = 2;
3410 fra.me.REG[0] = NIT_NULL;
3411 fra.me.REG[1] = NIT_NULL;
3412 fra.me.REG[0] = p0;
3413 fra.me.REG[1] = p1;
3414 /* ./metamodel//abstractmetamodel.nit:628 */
3415 ATTR_abstractmetamodel___MMLocalProperty____global(fra.me.REG[0]) = fra.me.REG[1];
3416 /* ./metamodel//abstractmetamodel.nit:629 */
3417 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
3418 if (UNTAG_Bool(REGB0)) {
3419 } else {
3420 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_abstractmetamodel, 629);
3421 }
3422 fra.me.REG[1] = ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0]);
3423 CALL_abstractmetamodel___MMLocalClass___register_local_property(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3424 stack_frame_head = fra.me.prev;
3425 return;
3426 }
3427 void abstractmetamodel___MMLocalProperty___new_global(val_t p0){
3428 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3429 val_t REGB0;
3430 val_t REGB1;
3431 val_t tmp;
3432 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3433 fra.me.file = LOCATE_abstractmetamodel;
3434 fra.me.line = 632;
3435 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___new_global;
3436 fra.me.has_broke = 0;
3437 fra.me.REG_size = 2;
3438 fra.me.REG[0] = NIT_NULL;
3439 fra.me.REG[1] = NIT_NULL;
3440 fra.me.REG[0] = p0;
3441 /* ./metamodel//abstractmetamodel.nit:635 */
3442 fra.me.REG[1] = ATTR_abstractmetamodel___MMLocalProperty____global(fra.me.REG[0]);
3443 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3444 if (UNTAG_Bool(REGB0)) {
3445 } else {
3446 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3447 if (UNTAG_Bool(REGB1)) {
3448 REGB1 = TAG_Bool(false);
3449 REGB0 = REGB1;
3450 } else {
3451 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
3452 REGB0 = REGB1;
3453 }
3454 }
3455 if (UNTAG_Bool(REGB0)) {
3456 } else {
3457 nit_abort("Assert failed", NULL, LOCATE_abstractmetamodel, 635);
3458 }
3459 /* ./metamodel//abstractmetamodel.nit:636 */
3460 fra.me.REG[1] = NEW_MMGlobalProperty_abstractmetamodel___MMGlobalProperty___init(fra.me.REG[0]);
3461 /* ./metamodel//abstractmetamodel.nit:637 */
3462 ATTR_abstractmetamodel___MMLocalProperty____global(fra.me.REG[0]) = fra.me.REG[1];
3463 /* ./metamodel//abstractmetamodel.nit:638 */
3464 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0])!=NIT_NULL);
3465 if (UNTAG_Bool(REGB0)) {
3466 } else {
3467 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_abstractmetamodel, 638);
3468 }
3469 fra.me.REG[0] = ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0]);
3470 CALL_abstractmetamodel___MMLocalClass___register_global_property(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3471 stack_frame_head = fra.me.prev;
3472 return;
3473 }
3474 val_t abstractmetamodel___MMLocalProperty___to_s(val_t p0){
3475 struct {struct stack_frame_t me;} fra;
3476 val_t tmp;
3477 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3478 fra.me.file = LOCATE_abstractmetamodel;
3479 fra.me.line = 641;
3480 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___to_s;
3481 fra.me.has_broke = 0;
3482 fra.me.REG_size = 1;
3483 fra.me.REG[0] = NIT_NULL;
3484 fra.me.REG[0] = p0;
3485 /* ./metamodel//abstractmetamodel.nit:641 */
3486 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]);
3487 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
3488 goto label1;
3489 label1: while(0);
3490 stack_frame_head = fra.me.prev;
3491 return fra.me.REG[0];
3492 }
3493 val_t abstractmetamodel___MMLocalProperty___need_super(val_t p0){
3494 struct {struct stack_frame_t me;} fra;
3495 val_t REGB0;
3496 val_t tmp;
3497 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3498 fra.me.file = LOCATE_abstractmetamodel;
3499 fra.me.line = 643;
3500 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___need_super;
3501 fra.me.has_broke = 0;
3502 fra.me.REG_size = 1;
3503 fra.me.REG[0] = NIT_NULL;
3504 fra.me.REG[0] = p0;
3505 /* ./metamodel//abstractmetamodel.nit:643 */
3506 REGB0 = TAG_Bool(ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0])!=NIT_NULL);
3507 if (UNTAG_Bool(REGB0)) {
3508 } else {
3509 nit_abort("Uninitialized attribute %s", "_need_super", LOCATE_abstractmetamodel, 643);
3510 }
3511 REGB0 = ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]);
3512 stack_frame_head = fra.me.prev;
3513 return REGB0;
3514 }
3515 void abstractmetamodel___MMLocalProperty___need_super__eq(val_t p0, val_t p1){
3516 struct {struct stack_frame_t me;} fra;
3517 val_t REGB0;
3518 val_t tmp;
3519 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3520 fra.me.file = LOCATE_abstractmetamodel;
3521 fra.me.line = 643;
3522 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___need_super__eq;
3523 fra.me.has_broke = 0;
3524 fra.me.REG_size = 1;
3525 fra.me.REG[0] = NIT_NULL;
3526 fra.me.REG[0] = p0;
3527 REGB0 = p1;
3528 /* ./metamodel//abstractmetamodel.nit:643 */
3529 ATTR_abstractmetamodel___MMLocalProperty____need_super(fra.me.REG[0]) = REGB0;
3530 stack_frame_head = fra.me.prev;
3531 return;
3532 }
3533 void abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1, val_t p2, int* init_table){
3534 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMLocalProperty].i;
3535 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3536 val_t tmp;
3537 if (init_table[itpos6]) return;
3538 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3539 fra.me.file = LOCATE_abstractmetamodel;
3540 fra.me.line = 646;
3541 fra.me.meth = LOCATE_abstractmetamodel___MMLocalProperty___init;
3542 fra.me.has_broke = 0;
3543 fra.me.REG_size = 3;
3544 fra.me.REG[0] = NIT_NULL;
3545 fra.me.REG[1] = NIT_NULL;
3546 fra.me.REG[2] = NIT_NULL;
3547 fra.me.REG[0] = p0;
3548 fra.me.REG[1] = p1;
3549 fra.me.REG[2] = p2;
3550 /* ./metamodel//abstractmetamodel.nit:648 */
3551 ATTR_abstractmetamodel___MMLocalProperty____name(fra.me.REG[0]) = fra.me.REG[1];
3552 /* ./metamodel//abstractmetamodel.nit:649 */
3553 ATTR_abstractmetamodel___MMLocalProperty____local_class(fra.me.REG[0]) = fra.me.REG[2];
3554 stack_frame_head = fra.me.prev;
3555 init_table[itpos6] = 1;
3556 return;
3557 }
3558 val_t abstractmetamodel___MMMethod___is_intern(val_t p0){
3559 struct {struct stack_frame_t me;} fra;
3560 val_t tmp;
3561 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3562 fra.me.file = LOCATE_abstractmetamodel;
3563 fra.me.line = 661;
3564 fra.me.meth = LOCATE_abstractmetamodel___MMMethod___is_intern;
3565 fra.me.has_broke = 0;
3566 fra.me.REG_size = 0;
3567 /* ./metamodel//abstractmetamodel.nit:661 */
3568 nit_abort("Deferred method called", NULL, LOCATE_abstractmetamodel, 661);
3569 stack_frame_head = fra.me.prev;
3570 return NIT_NULL;
3571 }
3572 val_t abstractmetamodel___MMMethod___is_abstract(val_t p0){
3573 struct {struct stack_frame_t me;} fra;
3574 val_t tmp;
3575 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3576 fra.me.file = LOCATE_abstractmetamodel;
3577 fra.me.line = 664;
3578 fra.me.meth = LOCATE_abstractmetamodel___MMMethod___is_abstract;
3579 fra.me.has_broke = 0;
3580 fra.me.REG_size = 0;
3581 /* ./metamodel//abstractmetamodel.nit:664 */
3582 nit_abort("Deferred method called", NULL, LOCATE_abstractmetamodel, 664);
3583 stack_frame_head = fra.me.prev;
3584 return NIT_NULL;
3585 }
3586 val_t abstractmetamodel___MMMethod___extern_name(val_t p0){
3587 struct {struct stack_frame_t me;} fra;
3588 val_t tmp;
3589 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3590 fra.me.file = LOCATE_abstractmetamodel;
3591 fra.me.line = 667;
3592 fra.me.meth = LOCATE_abstractmetamodel___MMMethod___extern_name;
3593 fra.me.has_broke = 0;
3594 fra.me.REG_size = 0;
3595 /* ./metamodel//abstractmetamodel.nit:667 */
3596 nit_abort("Deferred method called", NULL, LOCATE_abstractmetamodel, 667);
3597 stack_frame_head = fra.me.prev;
3598 return NIT_NULL;
3599 }