prepare changelog for v0.5
[nit.git] / c_src / metamodel___virtualtype._sep.c
1 /* This C file is generated by NIT to compile module metamodel___virtualtype. */
2 #include "metamodel___virtualtype._sep.h"
3 val_t metamodel___virtualtype___MMGlobalProperty___is_virtual_type(val_t p0){
4 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5 val_t REGB0;
6 val_t tmp;
7 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8 fra.me.file = LOCATE_metamodel___virtualtype;
9 fra.me.line = 24;
10 fra.me.meth = LOCATE_metamodel___virtualtype___MMGlobalProperty___is_virtual_type;
11 fra.me.has_broke = 0;
12 fra.me.REG_size = 2;
13 fra.me.nitni_local_ref_head = NULL;
14 fra.me.REG[0] = NIT_NULL;
15 fra.me.REG[1] = NIT_NULL;
16 fra.me.REG[0] = p0;
17 /* metamodel/virtualtype.nit:25 */
18 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
19 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___virtualtype___MMTypeProperty, ID_metamodel___virtualtype___MMTypeProperty)) /*cast MMTypeProperty*/;
20 goto label1;
21 label1: while(0);
22 stack_frame_head = fra.me.prev;
23 return REGB0;
24 }
25 val_t metamodel___virtualtype___MMTypeProperty___stype_for(val_t p0, val_t p1){
26 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27 val_t REGB0;
28 val_t tmp;
29 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30 fra.me.file = LOCATE_metamodel___virtualtype;
31 fra.me.line = 31;
32 fra.me.meth = LOCATE_metamodel___virtualtype___MMTypeProperty___stype_for;
33 fra.me.has_broke = 0;
34 fra.me.REG_size = 4;
35 fra.me.nitni_local_ref_head = NULL;
36 fra.me.REG[0] = NIT_NULL;
37 fra.me.REG[1] = NIT_NULL;
38 fra.me.REG[2] = NIT_NULL;
39 fra.me.REG[3] = NIT_NULL;
40 fra.me.REG[0] = p0;
41 fra.me.REG[1] = p1;
42 /* metamodel/virtualtype.nit:34 */
43 fra.me.REG[2] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[1])(fra.me.REG[1]);
44 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
45 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
46 /* metamodel/virtualtype.nit:35 */
47 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_metamodel___virtualtype___MMTypeProperty, ID_metamodel___virtualtype___MMTypeProperty)) /*cast MMTypeProperty*/;
48 if (UNTAG_Bool(REGB0)) {
49 } else {
50 nit_abort("Assert failed", NULL, LOCATE_metamodel___virtualtype, 35);
51 }
52 /* metamodel/virtualtype.nit:36 */
53 fra.me.REG[1] = CALL_metamodel___virtualtype___MMTypeProperty___real_stype_for(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
54 goto label1;
55 label1: while(0);
56 stack_frame_head = fra.me.prev;
57 return fra.me.REG[1];
58 }
59 val_t metamodel___virtualtype___MMTypeProperty___real_stype_for(val_t p0, val_t p1){
60 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
61 val_t REGB0;
62 val_t REGB1;
63 val_t tmp;
64 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
65 fra.me.file = LOCATE_metamodel___virtualtype;
66 fra.me.line = 42;
67 fra.me.meth = LOCATE_metamodel___virtualtype___MMTypeProperty___real_stype_for;
68 fra.me.has_broke = 0;
69 fra.me.REG_size = 4;
70 fra.me.nitni_local_ref_head = NULL;
71 fra.me.REG[0] = NIT_NULL;
72 fra.me.REG[1] = NIT_NULL;
73 fra.me.REG[2] = NIT_NULL;
74 fra.me.REG[3] = NIT_NULL;
75 fra.me.REG[0] = p0;
76 fra.me.REG[1] = p1;
77 /* metamodel/virtualtype.nit:45 */
78 fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
79 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
80 if (UNTAG_Bool(REGB0)) {
81 } else {
82 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
83 if (UNTAG_Bool(REGB1)) {
84 REGB1 = TAG_Bool(false);
85 REGB0 = REGB1;
86 } else {
87 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
88 REGB0 = REGB1;
89 }
90 }
91 if (UNTAG_Bool(REGB0)) {
92 fra.me.REG[2] = NIT_NULL;
93 goto label1;
94 }
95 /* metamodel/virtualtype.nit:47 */
96 REGB0 = TAG_Bool(ATTR_metamodel___virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0])!=NIT_NULL);
97 if (UNTAG_Bool(REGB0)) {
98 } else {
99 nit_abort("Uninitialized attribute %s", "_stypes_cache", LOCATE_metamodel___virtualtype, 47);
100 }
101 fra.me.REG[3] = ATTR_metamodel___virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0]);
102 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
103 if (UNTAG_Bool(REGB0)) {
104 REGB0 = TAG_Bool(ATTR_metamodel___virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0])!=NIT_NULL);
105 if (UNTAG_Bool(REGB0)) {
106 } else {
107 nit_abort("Uninitialized attribute %s", "_stypes_cache", LOCATE_metamodel___virtualtype, 47);
108 }
109 fra.me.REG[3] = ATTR_metamodel___virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0]);
110 fra.me.REG[3] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
111 fra.me.REG[2] = fra.me.REG[3];
112 goto label1;
113 }
114 /* metamodel/virtualtype.nit:49 */
115 fra.me.REG[3] = NEW_MMVirtualType_metamodel___virtualtype___MMVirtualType___init(fra.me.REG[0], fra.me.REG[1]);
116 /* metamodel/virtualtype.nit:50 */
117 REGB0 = TAG_Bool(ATTR_metamodel___virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0])!=NIT_NULL);
118 if (UNTAG_Bool(REGB0)) {
119 } else {
120 nit_abort("Uninitialized attribute %s", "_stypes_cache", LOCATE_metamodel___virtualtype, 50);
121 }
122 fra.me.REG[0] = ATTR_metamodel___virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0]);
123 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
124 /* metamodel/virtualtype.nit:52 */
125 fra.me.REG[2] = fra.me.REG[3];
126 goto label1;
127 label1: while(0);
128 stack_frame_head = fra.me.prev;
129 return fra.me.REG[2];
130 }
131 val_t metamodel___virtualtype___MMVirtualType___property(val_t p0){
132 struct {struct stack_frame_t me;} fra;
133 val_t REGB0;
134 val_t tmp;
135 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
136 fra.me.file = LOCATE_metamodel___virtualtype;
137 fra.me.line = 58;
138 fra.me.meth = LOCATE_metamodel___virtualtype___MMVirtualType___property;
139 fra.me.has_broke = 0;
140 fra.me.REG_size = 1;
141 fra.me.nitni_local_ref_head = NULL;
142 fra.me.REG[0] = NIT_NULL;
143 fra.me.REG[0] = p0;
144 /* metamodel/virtualtype.nit:58 */
145 REGB0 = TAG_Bool(ATTR_metamodel___virtualtype___MMVirtualType____property(fra.me.REG[0])!=NIT_NULL);
146 if (UNTAG_Bool(REGB0)) {
147 } else {
148 nit_abort("Uninitialized attribute %s", "_property", LOCATE_metamodel___virtualtype, 58);
149 }
150 fra.me.REG[0] = ATTR_metamodel___virtualtype___MMVirtualType____property(fra.me.REG[0]);
151 stack_frame_head = fra.me.prev;
152 return fra.me.REG[0];
153 }
154 val_t metamodel___virtualtype___MMVirtualType___recv(val_t p0){
155 struct {struct stack_frame_t me;} fra;
156 val_t REGB0;
157 val_t tmp;
158 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
159 fra.me.file = LOCATE_metamodel___virtualtype;
160 fra.me.line = 61;
161 fra.me.meth = LOCATE_metamodel___virtualtype___MMVirtualType___recv;
162 fra.me.has_broke = 0;
163 fra.me.REG_size = 1;
164 fra.me.nitni_local_ref_head = NULL;
165 fra.me.REG[0] = NIT_NULL;
166 fra.me.REG[0] = p0;
167 /* metamodel/virtualtype.nit:61 */
168 REGB0 = TAG_Bool(ATTR_metamodel___virtualtype___MMVirtualType____recv(fra.me.REG[0])!=NIT_NULL);
169 if (UNTAG_Bool(REGB0)) {
170 } else {
171 nit_abort("Uninitialized attribute %s", "_recv", LOCATE_metamodel___virtualtype, 61);
172 }
173 fra.me.REG[0] = ATTR_metamodel___virtualtype___MMVirtualType____recv(fra.me.REG[0]);
174 stack_frame_head = fra.me.prev;
175 return fra.me.REG[0];
176 }
177 void metamodel___virtualtype___MMVirtualType___init(val_t p0, val_t p1, val_t p2, int* init_table){
178 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___virtualtype___MMVirtualType].i;
179 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
180 val_t tmp;
181 if (init_table[itpos0]) return;
182 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
183 fra.me.file = LOCATE_metamodel___virtualtype;
184 fra.me.line = 64;
185 fra.me.meth = LOCATE_metamodel___virtualtype___MMVirtualType___init;
186 fra.me.has_broke = 0;
187 fra.me.REG_size = 6;
188 fra.me.nitni_local_ref_head = NULL;
189 fra.me.REG[0] = NIT_NULL;
190 fra.me.REG[1] = NIT_NULL;
191 fra.me.REG[2] = NIT_NULL;
192 fra.me.REG[3] = NIT_NULL;
193 fra.me.REG[4] = NIT_NULL;
194 fra.me.REG[5] = NIT_NULL;
195 fra.me.REG[0] = p0;
196 fra.me.REG[1] = p1;
197 fra.me.REG[2] = p2;
198 /* metamodel/virtualtype.nit:64 */
199 fra.me.REG[3] = fra.me.REG[0];
200 /* metamodel/virtualtype.nit:66 */
201 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[1])(fra.me.REG[1]);
202 fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
203 fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[5])(fra.me.REG[5]);
204 CALL_metamodel___type_formal___MMTypeFormal___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[5], init_table);
205 /* metamodel/virtualtype.nit:67 */
206 ATTR_metamodel___virtualtype___MMVirtualType____property(fra.me.REG[3]) = fra.me.REG[1];
207 /* metamodel/virtualtype.nit:68 */
208 ATTR_metamodel___virtualtype___MMVirtualType____recv(fra.me.REG[3]) = fra.me.REG[2];
209 stack_frame_head = fra.me.prev;
210 init_table[itpos0] = 1;
211 return;
212 }
213 val_t metamodel___virtualtype___MMVirtualType___mmmodule(val_t p0){
214 struct {struct stack_frame_t me;} fra;
215 val_t REGB0;
216 val_t tmp;
217 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
218 fra.me.file = LOCATE_metamodel___virtualtype;
219 fra.me.line = 71;
220 fra.me.meth = LOCATE_metamodel___virtualtype___MMVirtualType___mmmodule;
221 fra.me.has_broke = 0;
222 fra.me.REG_size = 1;
223 fra.me.nitni_local_ref_head = NULL;
224 fra.me.REG[0] = NIT_NULL;
225 fra.me.REG[0] = p0;
226 /* metamodel/virtualtype.nit:71 */
227 REGB0 = TAG_Bool(ATTR_metamodel___virtualtype___MMVirtualType____recv(fra.me.REG[0])!=NIT_NULL);
228 if (UNTAG_Bool(REGB0)) {
229 } else {
230 nit_abort("Uninitialized attribute %s", "_recv", LOCATE_metamodel___virtualtype, 71);
231 }
232 fra.me.REG[0] = ATTR_metamodel___virtualtype___MMVirtualType____recv(fra.me.REG[0]);
233 fra.me.REG[0] = CALL_metamodel___static_type___MMType___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
234 goto label1;
235 label1: while(0);
236 stack_frame_head = fra.me.prev;
237 return fra.me.REG[0];
238 }
239 val_t metamodel___virtualtype___MMVirtualType___for_module(val_t p0, val_t p1){
240 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
241 val_t REGB0;
242 val_t REGB1;
243 val_t tmp;
244 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
245 fra.me.file = LOCATE_metamodel___virtualtype;
246 fra.me.line = 73;
247 fra.me.meth = LOCATE_metamodel___virtualtype___MMVirtualType___for_module;
248 fra.me.has_broke = 0;
249 fra.me.REG_size = 4;
250 fra.me.nitni_local_ref_head = NULL;
251 fra.me.REG[0] = NIT_NULL;
252 fra.me.REG[1] = NIT_NULL;
253 fra.me.REG[2] = NIT_NULL;
254 fra.me.REG[3] = NIT_NULL;
255 fra.me.REG[0] = p0;
256 fra.me.REG[1] = p1;
257 /* metamodel/virtualtype.nit:75 */
258 fra.me.REG[2] = CALL_metamodel___static_type___MMType___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
259 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[2]));
260 if (UNTAG_Bool(REGB0)) {
261 } else {
262 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
263 REGB0 = REGB1;
264 }
265 if (UNTAG_Bool(REGB0)) {
266 fra.me.REG[2] = fra.me.REG[0];
267 goto label1;
268 }
269 /* metamodel/virtualtype.nit:76 */
270 fra.me.REG[3] = CALL_metamodel___virtualtype___MMVirtualType___recv(fra.me.REG[0])(fra.me.REG[0]);
271 fra.me.REG[1] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
272 fra.me.REG[1] = CALL_metamodel___static_type___MMType___adapt_to(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
273 fra.me.REG[2] = fra.me.REG[1];
274 goto label1;
275 label1: while(0);
276 stack_frame_head = fra.me.prev;
277 return fra.me.REG[2];
278 }
279 val_t metamodel___virtualtype___MMVirtualType___not_for_self(val_t p0){
280 struct {struct stack_frame_t me;} fra;
281 val_t tmp;
282 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
283 fra.me.file = LOCATE_metamodel___virtualtype;
284 fra.me.line = 79;
285 fra.me.meth = LOCATE_metamodel___virtualtype___MMVirtualType___not_for_self;
286 fra.me.has_broke = 0;
287 fra.me.REG_size = 1;
288 fra.me.nitni_local_ref_head = NULL;
289 fra.me.REG[0] = NIT_NULL;
290 fra.me.REG[0] = p0;
291 /* metamodel/virtualtype.nit:81 */
292 fra.me.REG[0] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]);
293 fra.me.REG[0] = CALL_metamodel___static_type___MMType___not_for_self(fra.me.REG[0])(fra.me.REG[0]);
294 goto label1;
295 label1: while(0);
296 stack_frame_head = fra.me.prev;
297 return fra.me.REG[0];
298 }
299 val_t metamodel___virtualtype___MMVirtualType___adapt_to(val_t p0, val_t p1){
300 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
301 val_t REGB0;
302 val_t tmp;
303 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
304 fra.me.file = LOCATE_metamodel___virtualtype;
305 fra.me.line = 84;
306 fra.me.meth = LOCATE_metamodel___virtualtype___MMVirtualType___adapt_to;
307 fra.me.has_broke = 0;
308 fra.me.REG_size = 3;
309 fra.me.nitni_local_ref_head = NULL;
310 fra.me.REG[0] = NIT_NULL;
311 fra.me.REG[1] = NIT_NULL;
312 fra.me.REG[2] = NIT_NULL;
313 fra.me.REG[0] = p0;
314 fra.me.REG[1] = p1;
315 /* metamodel/virtualtype.nit:84 */
316 fra.me.REG[2] = fra.me.REG[0];
317 /* metamodel/virtualtype.nit:86 */
318 fra.me.REG[2] = CALL_metamodel___virtualtype___MMVirtualType___property(fra.me.REG[2])(fra.me.REG[2]);
319 fra.me.REG[1] = CALL_metamodel___virtualtype___MMTypeProperty___stype_for(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
320 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
321 if (UNTAG_Bool(REGB0)) {
322 } else {
323 nit_abort("Cast failed", NULL, LOCATE_metamodel___virtualtype, 86);
324 }
325 goto label1;
326 label1: while(0);
327 stack_frame_head = fra.me.prev;
328 return fra.me.REG[1];
329 }
330 val_t metamodel___virtualtype___MMLocalClass___virtual_type(val_t p0, val_t p1){
331 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
332 val_t REGB0;
333 val_t tmp;
334 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
335 fra.me.file = LOCATE_metamodel___virtualtype;
336 fra.me.line = 91;
337 fra.me.meth = LOCATE_metamodel___virtualtype___MMLocalClass___virtual_type;
338 fra.me.has_broke = 0;
339 fra.me.REG_size = 2;
340 fra.me.nitni_local_ref_head = NULL;
341 fra.me.REG[0] = NIT_NULL;
342 fra.me.REG[1] = NIT_NULL;
343 fra.me.REG[0] = p0;
344 fra.me.REG[1] = p1;
345 /* metamodel/virtualtype.nit:93 */
346 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
347 /* metamodel/virtualtype.nit:94 */
348 REGB0 = CALL_metamodel___virtualtype___MMGlobalProperty___is_virtual_type(fra.me.REG[1])(fra.me.REG[1]);
349 if (UNTAG_Bool(REGB0)) {
350 /* metamodel/virtualtype.nit:95 */
351 goto label1;
352 }
353 /* metamodel/virtualtype.nit:97 */
354 nit_abort("Aborted", NULL, LOCATE_metamodel___virtualtype, 97);
355 label1: while(0);
356 stack_frame_head = fra.me.prev;
357 return fra.me.REG[1];
358 }
359 val_t metamodel___virtualtype___MMLocalClass___select_virtual_type(val_t p0, val_t p1){
360 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
361 val_t REGB0;
362 val_t tmp;
363 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
364 fra.me.file = LOCATE_metamodel___virtualtype;
365 fra.me.line = 100;
366 fra.me.meth = LOCATE_metamodel___virtualtype___MMLocalClass___select_virtual_type;
367 fra.me.has_broke = 0;
368 fra.me.REG_size = 2;
369 fra.me.nitni_local_ref_head = NULL;
370 fra.me.REG[0] = NIT_NULL;
371 fra.me.REG[1] = NIT_NULL;
372 fra.me.REG[0] = p0;
373 fra.me.REG[1] = p1;
374 /* metamodel/virtualtype.nit:103 */
375 fra.me.REG[1] = CALL_metamodel___virtualtype___MMLocalClass___virtual_type(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
376 /* metamodel/virtualtype.nit:104 */
377 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
378 /* metamodel/virtualtype.nit:105 */
379 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___virtualtype___MMTypeProperty, ID_metamodel___virtualtype___MMTypeProperty)) /*cast MMTypeProperty*/;
380 if (UNTAG_Bool(REGB0)) {
381 } else {
382 nit_abort("Assert failed", NULL, LOCATE_metamodel___virtualtype, 105);
383 }
384 /* metamodel/virtualtype.nit:106 */
385 goto label1;
386 label1: while(0);
387 stack_frame_head = fra.me.prev;
388 return fra.me.REG[1];
389 }