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