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
;
7 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8 fra
.me
.file
= LOCATE_virtualtype
;
10 fra
.me
.meth
= LOCATE_virtualtype___MMGlobalProperty___is_virtual_type
;
13 fra
.me
.REG
[0] = NIT_NULL
;
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 */
20 stack_frame_head
= fra
.me
.prev
;
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
;
27 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
28 fra
.me
.file
= LOCATE_virtualtype
;
30 fra
.me
.meth
= LOCATE_virtualtype___MMTypeProperty___stype_for
;
33 fra
.me
.REG
[0] = NIT_NULL
;
34 fra
.me
.REG
[1] = NIT_NULL
;
35 fra
.me
.REG
[2] = NIT_NULL
;
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
)) {
45 fprintf(stderr
, "Assert failed");
46 fprintf(stderr
, " (%s:%d)\n", LOCATE_virtualtype
, 35);
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 */
53 stack_frame_head
= fra
.me
.prev
;
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
;
61 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
62 fra
.me
.file
= LOCATE_virtualtype
;
64 fra
.me
.meth
= LOCATE_virtualtype___MMTypeProperty___real_stype_for
;
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
;
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
)) {
78 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
79 if (UNTAG_Bool(REGB1
)) {
80 REGB1
= TAG_Bool(false);
83 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
87 if (UNTAG_Bool(REGB0
)) {
88 fra
.me
.REG
[2] = NIT_NULL
;
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
)) {
95 fprintf(stderr
, "Uninitialized attribute %s", "_stypes_cache");
96 fprintf(stderr
, " (%s:%d)\n", LOCATE_virtualtype
, 47);
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
)) {
105 fprintf(stderr
, "Uninitialized attribute %s", "_stypes_cache");
106 fprintf(stderr
, " (%s:%d)\n", LOCATE_virtualtype
, 47);
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];
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
)) {
119 fprintf(stderr
, "Uninitialized attribute %s", "_stypes_cache");
120 fprintf(stderr
, " (%s:%d)\n", LOCATE_virtualtype
, 50);
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 */
129 stack_frame_head
= fra
.me
.prev
;
130 return fra
.me
.REG
[2];
132 val_t
virtualtype___MMVirtualType___module(val_t p0
){
133 struct {struct stack_frame_t me
;} fra
;
136 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
137 fra
.me
.file
= LOCATE_virtualtype
;
139 fra
.me
.meth
= LOCATE_virtualtype___MMVirtualType___module
;
140 fra
.me
.has_broke
= 0;
142 fra
.me
.REG
[0] = NIT_NULL
;
144 REGB0
= TAG_Bool(ATTR_virtualtype___MMVirtualType____recv(fra
.me
.REG
[0])!=NIT_NULL
);
145 /* ./metamodel//virtualtype.nit:71 */
146 if (UNTAG_Bool(REGB0
)) {
148 fprintf(stderr
, "Uninitialized attribute %s", "_recv");
149 fprintf(stderr
, " (%s:%d)\n", LOCATE_virtualtype
, 71);
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]);
156 stack_frame_head
= fra
.me
.prev
;
157 return fra
.me
.REG
[0];
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
;
164 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
165 fra
.me
.file
= LOCATE_virtualtype
;
167 fra
.me
.meth
= LOCATE_virtualtype___MMVirtualType___for_module
;
168 fra
.me
.has_broke
= 0;
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
;
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
)) {
181 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
184 if (UNTAG_Bool(REGB0
)) {
185 fra
.me
.REG
[2] = fra
.me
.REG
[0];
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 */
195 stack_frame_head
= fra
.me
.prev
;
196 return fra
.me
.REG
[2];
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
;
202 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
203 fra
.me
.file
= LOCATE_virtualtype
;
205 fra
.me
.meth
= LOCATE_virtualtype___MMVirtualType___adapt_to
;
206 fra
.me
.has_broke
= 0;
208 fra
.me
.REG
[0] = NIT_NULL
;
209 fra
.me
.REG
[1] = NIT_NULL
;
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
)) {
218 fprintf(stderr
, "Cast failed");
219 fprintf(stderr
, " (%s:%d)\n", LOCATE_virtualtype
, 86);
224 stack_frame_head
= fra
.me
.prev
;
225 return fra
.me
.REG
[1];
227 val_t
virtualtype___MMVirtualType___not_for_self(val_t p0
){
228 struct {struct stack_frame_t me
;} fra
;
230 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
231 fra
.me
.file
= LOCATE_virtualtype
;
233 fra
.me
.meth
= LOCATE_virtualtype___MMVirtualType___not_for_self
;
234 fra
.me
.has_broke
= 0;
236 fra
.me
.REG
[0] = NIT_NULL
;
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 */
243 stack_frame_head
= fra
.me
.prev
;
244 return fra
.me
.REG
[0];
246 val_t
virtualtype___MMVirtualType___property(val_t p0
){
247 struct {struct stack_frame_t me
;} fra
;
250 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
251 fra
.me
.file
= LOCATE_virtualtype
;
253 fra
.me
.meth
= LOCATE_virtualtype___MMVirtualType___property
;
254 fra
.me
.has_broke
= 0;
256 fra
.me
.REG
[0] = NIT_NULL
;
258 REGB0
= TAG_Bool(ATTR_virtualtype___MMVirtualType____property(fra
.me
.REG
[0])!=NIT_NULL
);
259 /* ./metamodel//virtualtype.nit:58 */
260 if (UNTAG_Bool(REGB0
)) {
262 fprintf(stderr
, "Uninitialized attribute %s", "_property");
263 fprintf(stderr
, " (%s:%d)\n", LOCATE_virtualtype
, 58);
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];
270 val_t
virtualtype___MMVirtualType___recv(val_t p0
){
271 struct {struct stack_frame_t me
;} fra
;
274 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
275 fra
.me
.file
= LOCATE_virtualtype
;
277 fra
.me
.meth
= LOCATE_virtualtype___MMVirtualType___recv
;
278 fra
.me
.has_broke
= 0;
280 fra
.me
.REG
[0] = NIT_NULL
;
282 REGB0
= TAG_Bool(ATTR_virtualtype___MMVirtualType____recv(fra
.me
.REG
[0])!=NIT_NULL
);
283 /* ./metamodel//virtualtype.nit:61 */
284 if (UNTAG_Bool(REGB0
)) {
286 fprintf(stderr
, "Uninitialized attribute %s", "_recv");
287 fprintf(stderr
, " (%s:%d)\n", LOCATE_virtualtype
, 61);
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];
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
;
298 if (init_table
[itpos0
]) return;
299 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
300 fra
.me
.file
= LOCATE_virtualtype
;
302 fra
.me
.meth
= LOCATE_virtualtype___MMVirtualType___init
;
303 fra
.me
.has_broke
= 0;
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
;
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;
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
;
332 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
333 fra
.me
.file
= LOCATE_virtualtype
;
335 fra
.me
.meth
= LOCATE_virtualtype___MMLocalClass___virtual_type
;
336 fra
.me
.has_broke
= 0;
338 fra
.me
.REG
[0] = NIT_NULL
;
339 fra
.me
.REG
[1] = NIT_NULL
;
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 */
349 /* ./metamodel//virtualtype.nit:97 */
350 fprintf(stderr
, "Aborted");
351 fprintf(stderr
, " (%s:%d)\n", LOCATE_virtualtype
, 97);
354 stack_frame_head
= fra
.me
.prev
;
355 return fra
.me
.REG
[1];
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
;
361 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
362 fra
.me
.file
= LOCATE_virtualtype
;
364 fra
.me
.meth
= LOCATE_virtualtype___MMLocalClass___select_virtual_type
;
365 fra
.me
.has_broke
= 0;
367 fra
.me
.REG
[0] = NIT_NULL
;
368 fra
.me
.REG
[1] = NIT_NULL
;
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
)) {
377 fprintf(stderr
, "Assert failed");
378 fprintf(stderr
, " (%s:%d)\n", LOCATE_virtualtype
, 105);
381 /* ./metamodel//virtualtype.nit:106 */
384 stack_frame_head
= fra
.me
.prev
;
385 return fra
.me
.REG
[1];