update NOTICE and LICENSE
[nit.git] / c_src / virtualtype._sep.c
1 /* This C file is generated by NIT to compile module virtualtype. */
2 #include "virtualtype._sep.h"
3 val_t virtualtype___MMGlobalProperty___is_virtual_type(val_t p0){
4 struct {struct stack_frame_t me;} 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_virtualtype;
9 fra.me.line = 24;
10 fra.me.meth = LOCATE_virtualtype___MMGlobalProperty___is_virtual_type;
11 fra.me.has_broke = 0;
12 fra.me.REG_size = 1;
13 fra.me.REG[0] = NIT_NULL;
14 fra.me.REG[0] = p0;
15 /* ./metamodel//virtualtype.nit:25 */
16 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
17 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_MMTypeProperty, ID_MMTypeProperty)) /*cast MMTypeProperty*/;
18 goto label1;
19 label1: while(0);
20 stack_frame_head = fra.me.prev;
21 return REGB0;
22 }
23 val_t virtualtype___MMTypeProperty___stype_for(val_t p0, val_t p1){
24 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25 val_t REGB0;
26 val_t tmp;
27 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28 fra.me.file = LOCATE_virtualtype;
29 fra.me.line = 31;
30 fra.me.meth = LOCATE_virtualtype___MMTypeProperty___stype_for;
31 fra.me.has_broke = 0;
32 fra.me.REG_size = 3;
33 fra.me.REG[0] = NIT_NULL;
34 fra.me.REG[1] = NIT_NULL;
35 fra.me.REG[2] = NIT_NULL;
36 fra.me.REG[0] = p0;
37 fra.me.REG[1] = p1;
38 /* ./metamodel//virtualtype.nit:34 */
39 fra.me.REG[2] = CALL_static_type___MMType___local_class(fra.me.REG[1])(fra.me.REG[1]);
40 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
41 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42 /* ./metamodel//virtualtype.nit:35 */
43 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_MMTypeProperty, ID_MMTypeProperty)) /*cast MMTypeProperty*/;
44 if (UNTAG_Bool(REGB0)) {
45 } else {
46 nit_abort("Assert failed", NULL, LOCATE_virtualtype, 35);
47 }
48 /* ./metamodel//virtualtype.nit:36 */
49 fra.me.REG[1] = CALL_virtualtype___MMTypeProperty___real_stype_for(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
50 goto label1;
51 label1: while(0);
52 stack_frame_head = fra.me.prev;
53 return fra.me.REG[1];
54 }
55 val_t virtualtype___MMTypeProperty___real_stype_for(val_t p0, val_t p1){
56 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
57 val_t REGB0;
58 val_t REGB1;
59 val_t tmp;
60 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
61 fra.me.file = LOCATE_virtualtype;
62 fra.me.line = 42;
63 fra.me.meth = LOCATE_virtualtype___MMTypeProperty___real_stype_for;
64 fra.me.has_broke = 0;
65 fra.me.REG_size = 4;
66 fra.me.REG[0] = NIT_NULL;
67 fra.me.REG[1] = NIT_NULL;
68 fra.me.REG[2] = NIT_NULL;
69 fra.me.REG[3] = NIT_NULL;
70 fra.me.REG[0] = p0;
71 fra.me.REG[1] = p1;
72 /* ./metamodel//virtualtype.nit:45 */
73 fra.me.REG[2] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
74 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
75 if (UNTAG_Bool(REGB0)) {
76 } else {
77 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
78 if (UNTAG_Bool(REGB1)) {
79 REGB1 = TAG_Bool(false);
80 REGB0 = REGB1;
81 } else {
82 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
83 REGB0 = REGB1;
84 }
85 }
86 if (UNTAG_Bool(REGB0)) {
87 fra.me.REG[2] = NIT_NULL;
88 goto label1;
89 }
90 /* ./metamodel//virtualtype.nit:47 */
91 REGB0 = TAG_Bool(ATTR_virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0])!=NIT_NULL);
92 if (UNTAG_Bool(REGB0)) {
93 } else {
94 nit_abort("Uninitialized attribute %s", "_stypes_cache", LOCATE_virtualtype, 47);
95 }
96 fra.me.REG[3] = ATTR_virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0]);
97 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
98 if (UNTAG_Bool(REGB0)) {
99 REGB0 = TAG_Bool(ATTR_virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0])!=NIT_NULL);
100 if (UNTAG_Bool(REGB0)) {
101 } else {
102 nit_abort("Uninitialized attribute %s", "_stypes_cache", LOCATE_virtualtype, 47);
103 }
104 fra.me.REG[3] = ATTR_virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0]);
105 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
106 fra.me.REG[2] = fra.me.REG[3];
107 goto label1;
108 }
109 /* ./metamodel//virtualtype.nit:49 */
110 fra.me.REG[3] = NEW_MMVirtualType_virtualtype___MMVirtualType___init(fra.me.REG[0], fra.me.REG[1]);
111 /* ./metamodel//virtualtype.nit:50 */
112 REGB0 = TAG_Bool(ATTR_virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0])!=NIT_NULL);
113 if (UNTAG_Bool(REGB0)) {
114 } else {
115 nit_abort("Uninitialized attribute %s", "_stypes_cache", LOCATE_virtualtype, 50);
116 }
117 fra.me.REG[0] = ATTR_virtualtype___MMTypeProperty____stypes_cache(fra.me.REG[0]);
118 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
119 /* ./metamodel//virtualtype.nit:52 */
120 fra.me.REG[2] = fra.me.REG[3];
121 goto label1;
122 label1: while(0);
123 stack_frame_head = fra.me.prev;
124 return fra.me.REG[2];
125 }
126 val_t virtualtype___MMVirtualType___property(val_t p0){
127 struct {struct stack_frame_t me;} fra;
128 val_t REGB0;
129 val_t tmp;
130 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
131 fra.me.file = LOCATE_virtualtype;
132 fra.me.line = 58;
133 fra.me.meth = LOCATE_virtualtype___MMVirtualType___property;
134 fra.me.has_broke = 0;
135 fra.me.REG_size = 1;
136 fra.me.REG[0] = NIT_NULL;
137 fra.me.REG[0] = p0;
138 /* ./metamodel//virtualtype.nit:58 */
139 REGB0 = TAG_Bool(ATTR_virtualtype___MMVirtualType____property(fra.me.REG[0])!=NIT_NULL);
140 if (UNTAG_Bool(REGB0)) {
141 } else {
142 nit_abort("Uninitialized attribute %s", "_property", LOCATE_virtualtype, 58);
143 }
144 fra.me.REG[0] = ATTR_virtualtype___MMVirtualType____property(fra.me.REG[0]);
145 stack_frame_head = fra.me.prev;
146 return fra.me.REG[0];
147 }
148 val_t virtualtype___MMVirtualType___recv(val_t p0){
149 struct {struct stack_frame_t me;} fra;
150 val_t REGB0;
151 val_t tmp;
152 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
153 fra.me.file = LOCATE_virtualtype;
154 fra.me.line = 61;
155 fra.me.meth = LOCATE_virtualtype___MMVirtualType___recv;
156 fra.me.has_broke = 0;
157 fra.me.REG_size = 1;
158 fra.me.REG[0] = NIT_NULL;
159 fra.me.REG[0] = p0;
160 /* ./metamodel//virtualtype.nit:61 */
161 REGB0 = TAG_Bool(ATTR_virtualtype___MMVirtualType____recv(fra.me.REG[0])!=NIT_NULL);
162 if (UNTAG_Bool(REGB0)) {
163 } else {
164 nit_abort("Uninitialized attribute %s", "_recv", LOCATE_virtualtype, 61);
165 }
166 fra.me.REG[0] = ATTR_virtualtype___MMVirtualType____recv(fra.me.REG[0]);
167 stack_frame_head = fra.me.prev;
168 return fra.me.REG[0];
169 }
170 void virtualtype___MMVirtualType___init(val_t p0, val_t p1, val_t p2, int* init_table){
171 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMVirtualType].i;
172 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
173 val_t tmp;
174 if (init_table[itpos0]) return;
175 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
176 fra.me.file = LOCATE_virtualtype;
177 fra.me.line = 64;
178 fra.me.meth = LOCATE_virtualtype___MMVirtualType___init;
179 fra.me.has_broke = 0;
180 fra.me.REG_size = 6;
181 fra.me.REG[0] = NIT_NULL;
182 fra.me.REG[1] = NIT_NULL;
183 fra.me.REG[2] = NIT_NULL;
184 fra.me.REG[3] = NIT_NULL;
185 fra.me.REG[4] = NIT_NULL;
186 fra.me.REG[5] = NIT_NULL;
187 fra.me.REG[0] = p0;
188 fra.me.REG[1] = p1;
189 fra.me.REG[2] = p2;
190 /* ./metamodel//virtualtype.nit:64 */
191 fra.me.REG[3] = fra.me.REG[0];
192 /* ./metamodel//virtualtype.nit:66 */
193 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[1])(fra.me.REG[1]);
194 fra.me.REG[5] = CALL_static_type___MMLocalProperty___signature_for(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
195 fra.me.REG[5] = CALL_static_type___MMSignature___return_type(fra.me.REG[5])(fra.me.REG[5]);
196 CALL_type_formal___MMTypeFormal___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[5], init_table);
197 /* ./metamodel//virtualtype.nit:67 */
198 ATTR_virtualtype___MMVirtualType____property(fra.me.REG[3]) = fra.me.REG[1];
199 /* ./metamodel//virtualtype.nit:68 */
200 ATTR_virtualtype___MMVirtualType____recv(fra.me.REG[3]) = fra.me.REG[2];
201 stack_frame_head = fra.me.prev;
202 init_table[itpos0] = 1;
203 return;
204 }
205 val_t virtualtype___MMVirtualType___mmmodule(val_t p0){
206 struct {struct stack_frame_t me;} fra;
207 val_t REGB0;
208 val_t tmp;
209 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
210 fra.me.file = LOCATE_virtualtype;
211 fra.me.line = 71;
212 fra.me.meth = LOCATE_virtualtype___MMVirtualType___mmmodule;
213 fra.me.has_broke = 0;
214 fra.me.REG_size = 1;
215 fra.me.REG[0] = NIT_NULL;
216 fra.me.REG[0] = p0;
217 /* ./metamodel//virtualtype.nit:71 */
218 REGB0 = TAG_Bool(ATTR_virtualtype___MMVirtualType____recv(fra.me.REG[0])!=NIT_NULL);
219 if (UNTAG_Bool(REGB0)) {
220 } else {
221 nit_abort("Uninitialized attribute %s", "_recv", LOCATE_virtualtype, 71);
222 }
223 fra.me.REG[0] = ATTR_virtualtype___MMVirtualType____recv(fra.me.REG[0]);
224 fra.me.REG[0] = CALL_static_type___MMType___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
225 goto label1;
226 label1: while(0);
227 stack_frame_head = fra.me.prev;
228 return fra.me.REG[0];
229 }
230 val_t virtualtype___MMVirtualType___for_module(val_t p0, val_t p1){
231 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
232 val_t REGB0;
233 val_t REGB1;
234 val_t tmp;
235 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
236 fra.me.file = LOCATE_virtualtype;
237 fra.me.line = 73;
238 fra.me.meth = LOCATE_virtualtype___MMVirtualType___for_module;
239 fra.me.has_broke = 0;
240 fra.me.REG_size = 4;
241 fra.me.REG[0] = NIT_NULL;
242 fra.me.REG[1] = NIT_NULL;
243 fra.me.REG[2] = NIT_NULL;
244 fra.me.REG[3] = NIT_NULL;
245 fra.me.REG[0] = p0;
246 fra.me.REG[1] = p1;
247 /* ./metamodel//virtualtype.nit:75 */
248 fra.me.REG[2] = CALL_static_type___MMType___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
249 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[2]));
250 if (UNTAG_Bool(REGB0)) {
251 } else {
252 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
253 REGB0 = REGB1;
254 }
255 if (UNTAG_Bool(REGB0)) {
256 fra.me.REG[2] = fra.me.REG[0];
257 goto label1;
258 }
259 /* ./metamodel//virtualtype.nit:76 */
260 fra.me.REG[3] = CALL_virtualtype___MMVirtualType___recv(fra.me.REG[0])(fra.me.REG[0]);
261 fra.me.REG[1] = CALL_static_type___MMType___for_module(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
262 fra.me.REG[1] = CALL_static_type___MMType___adapt_to(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
263 fra.me.REG[2] = fra.me.REG[1];
264 goto label1;
265 label1: while(0);
266 stack_frame_head = fra.me.prev;
267 return fra.me.REG[2];
268 }
269 val_t virtualtype___MMVirtualType___not_for_self(val_t p0){
270 struct {struct stack_frame_t me;} fra;
271 val_t tmp;
272 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
273 fra.me.file = LOCATE_virtualtype;
274 fra.me.line = 79;
275 fra.me.meth = LOCATE_virtualtype___MMVirtualType___not_for_self;
276 fra.me.has_broke = 0;
277 fra.me.REG_size = 1;
278 fra.me.REG[0] = NIT_NULL;
279 fra.me.REG[0] = p0;
280 /* ./metamodel//virtualtype.nit:81 */
281 fra.me.REG[0] = CALL_type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]);
282 fra.me.REG[0] = CALL_static_type___MMType___not_for_self(fra.me.REG[0])(fra.me.REG[0]);
283 goto label1;
284 label1: while(0);
285 stack_frame_head = fra.me.prev;
286 return fra.me.REG[0];
287 }
288 val_t virtualtype___MMVirtualType___adapt_to(val_t p0, val_t p1){
289 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
290 val_t REGB0;
291 val_t tmp;
292 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
293 fra.me.file = LOCATE_virtualtype;
294 fra.me.line = 84;
295 fra.me.meth = LOCATE_virtualtype___MMVirtualType___adapt_to;
296 fra.me.has_broke = 0;
297 fra.me.REG_size = 2;
298 fra.me.REG[0] = NIT_NULL;
299 fra.me.REG[1] = NIT_NULL;
300 fra.me.REG[0] = p0;
301 fra.me.REG[1] = p1;
302 /* ./metamodel//virtualtype.nit:86 */
303 fra.me.REG[0] = CALL_virtualtype___MMVirtualType___property(fra.me.REG[0])(fra.me.REG[0]);
304 fra.me.REG[1] = CALL_virtualtype___MMTypeProperty___stype_for(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
305 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
306 if (UNTAG_Bool(REGB0)) {
307 } else {
308 nit_abort("Cast failed", NULL, LOCATE_virtualtype, 86);
309 }
310 goto label1;
311 label1: while(0);
312 stack_frame_head = fra.me.prev;
313 return fra.me.REG[1];
314 }
315 val_t virtualtype___MMLocalClass___virtual_type(val_t p0, val_t p1){
316 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
317 val_t REGB0;
318 val_t tmp;
319 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
320 fra.me.file = LOCATE_virtualtype;
321 fra.me.line = 91;
322 fra.me.meth = LOCATE_virtualtype___MMLocalClass___virtual_type;
323 fra.me.has_broke = 0;
324 fra.me.REG_size = 2;
325 fra.me.REG[0] = NIT_NULL;
326 fra.me.REG[1] = NIT_NULL;
327 fra.me.REG[0] = p0;
328 fra.me.REG[1] = p1;
329 /* ./metamodel//virtualtype.nit:93 */
330 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
331 /* ./metamodel//virtualtype.nit:94 */
332 REGB0 = CALL_virtualtype___MMGlobalProperty___is_virtual_type(fra.me.REG[1])(fra.me.REG[1]);
333 if (UNTAG_Bool(REGB0)) {
334 /* ./metamodel//virtualtype.nit:95 */
335 goto label1;
336 }
337 /* ./metamodel//virtualtype.nit:97 */
338 nit_abort("Aborted", NULL, LOCATE_virtualtype, 97);
339 label1: while(0);
340 stack_frame_head = fra.me.prev;
341 return fra.me.REG[1];
342 }
343 val_t virtualtype___MMLocalClass___select_virtual_type(val_t p0, val_t p1){
344 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
345 val_t REGB0;
346 val_t tmp;
347 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
348 fra.me.file = LOCATE_virtualtype;
349 fra.me.line = 100;
350 fra.me.meth = LOCATE_virtualtype___MMLocalClass___select_virtual_type;
351 fra.me.has_broke = 0;
352 fra.me.REG_size = 2;
353 fra.me.REG[0] = NIT_NULL;
354 fra.me.REG[1] = NIT_NULL;
355 fra.me.REG[0] = p0;
356 fra.me.REG[1] = p1;
357 /* ./metamodel//virtualtype.nit:103 */
358 fra.me.REG[1] = CALL_virtualtype___MMLocalClass___virtual_type(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
359 /* ./metamodel//virtualtype.nit:104 */
360 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
361 /* ./metamodel//virtualtype.nit:105 */
362 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_MMTypeProperty, ID_MMTypeProperty)) /*cast MMTypeProperty*/;
363 if (UNTAG_Bool(REGB0)) {
364 } else {
365 nit_abort("Assert failed", NULL, LOCATE_virtualtype, 105);
366 }
367 /* ./metamodel//virtualtype.nit:106 */
368 goto label1;
369 label1: while(0);
370 stack_frame_head = fra.me.prev;
371 return fra.me.REG[1];
372 }