1 /* This C file is generated by NIT to compile module metamodel___virtualtype. */
2 #include "metamodel___virtualtype._sep.h"
3 static const char LOCATE_metamodel___virtualtype___MMGlobalProperty___is_virtual_type
[] = "virtualtype::MMGlobalProperty::is_virtual_type";
4 val_t
metamodel___virtualtype___MMGlobalProperty___is_virtual_type(val_t p0
){
5 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
8 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9 fra
.me
.file
= LOCATE_metamodel___virtualtype
;
11 fra
.me
.meth
= LOCATE_metamodel___virtualtype___MMGlobalProperty___is_virtual_type
;
14 fra
.me
.nitni_local_ref_head
= NULL
;
15 fra
.me
.REG
[0] = NIT_NULL
;
16 fra
.me
.REG
[1] = NIT_NULL
;
18 /* metamodel/virtualtype.nit:25 */
19 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
20 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___virtualtype___MMTypeProperty
, ID_metamodel___virtualtype___MMTypeProperty
)) /*cast MMTypeProperty*/;
23 stack_frame_head
= fra
.me
.prev
;
26 static const char LOCATE_metamodel___virtualtype___MMTypeProperty___stype_for
[] = "virtualtype::MMTypeProperty::stype_for";
27 val_t
metamodel___virtualtype___MMTypeProperty___stype_for(val_t p0
, val_t p1
){
28 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
31 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
32 fra
.me
.file
= LOCATE_metamodel___virtualtype
;
34 fra
.me
.meth
= LOCATE_metamodel___virtualtype___MMTypeProperty___stype_for
;
37 fra
.me
.nitni_local_ref_head
= NULL
;
38 fra
.me
.REG
[0] = NIT_NULL
;
39 fra
.me
.REG
[1] = NIT_NULL
;
40 fra
.me
.REG
[2] = NIT_NULL
;
41 fra
.me
.REG
[3] = NIT_NULL
;
44 /* metamodel/virtualtype.nit:34 */
45 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
46 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
47 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
48 /* metamodel/virtualtype.nit:35 */
49 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_metamodel___virtualtype___MMTypeProperty
, ID_metamodel___virtualtype___MMTypeProperty
)) /*cast MMTypeProperty*/;
50 if (UNTAG_Bool(REGB0
)) {
52 nit_abort("Assert failed", NULL
, LOCATE_metamodel___virtualtype
, 35);
54 /* metamodel/virtualtype.nit:36 */
55 fra
.me
.REG
[1] = CALL_metamodel___virtualtype___MMTypeProperty___real_stype_for(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
58 stack_frame_head
= fra
.me
.prev
;
61 static const char LOCATE_metamodel___virtualtype___MMTypeProperty___real_stype_for
[] = "virtualtype::MMTypeProperty::real_stype_for";
62 val_t
metamodel___virtualtype___MMTypeProperty___real_stype_for(val_t p0
, val_t p1
){
63 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
67 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
68 fra
.me
.file
= LOCATE_metamodel___virtualtype
;
70 fra
.me
.meth
= LOCATE_metamodel___virtualtype___MMTypeProperty___real_stype_for
;
73 fra
.me
.nitni_local_ref_head
= NULL
;
74 fra
.me
.REG
[0] = NIT_NULL
;
75 fra
.me
.REG
[1] = NIT_NULL
;
76 fra
.me
.REG
[2] = NIT_NULL
;
77 fra
.me
.REG
[3] = NIT_NULL
;
80 /* metamodel/virtualtype.nit:45 */
81 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
82 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
83 if (UNTAG_Bool(REGB0
)) {
85 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
86 if (UNTAG_Bool(REGB1
)) {
90 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
94 if (UNTAG_Bool(REGB0
)) {
95 fra
.me
.REG
[2] = NIT_NULL
;
98 /* metamodel/virtualtype.nit:47 */
99 REGB0
= TAG_Bool(ATTR_metamodel___virtualtype___MMTypeProperty____stypes_cache(fra
.me
.REG
[0])!=NIT_NULL
);
100 if (UNTAG_Bool(REGB0
)) {
102 nit_abort("Uninitialized attribute %s", "_stypes_cache", LOCATE_metamodel___virtualtype
, 47);
104 fra
.me
.REG
[3] = ATTR_metamodel___virtualtype___MMTypeProperty____stypes_cache(fra
.me
.REG
[0]);
105 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
106 if (UNTAG_Bool(REGB0
)) {
107 REGB0
= TAG_Bool(ATTR_metamodel___virtualtype___MMTypeProperty____stypes_cache(fra
.me
.REG
[0])!=NIT_NULL
);
108 if (UNTAG_Bool(REGB0
)) {
110 nit_abort("Uninitialized attribute %s", "_stypes_cache", LOCATE_metamodel___virtualtype
, 47);
112 fra
.me
.REG
[3] = ATTR_metamodel___virtualtype___MMTypeProperty____stypes_cache(fra
.me
.REG
[0]);
113 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
114 fra
.me
.REG
[2] = fra
.me
.REG
[3];
117 /* metamodel/virtualtype.nit:49 */
118 fra
.me
.REG
[3] = NEW_MMVirtualType_metamodel___virtualtype___MMVirtualType___init(fra
.me
.REG
[0], fra
.me
.REG
[1]);
119 /* metamodel/virtualtype.nit:50 */
120 REGB0
= TAG_Bool(ATTR_metamodel___virtualtype___MMTypeProperty____stypes_cache(fra
.me
.REG
[0])!=NIT_NULL
);
121 if (UNTAG_Bool(REGB0
)) {
123 nit_abort("Uninitialized attribute %s", "_stypes_cache", LOCATE_metamodel___virtualtype
, 50);
125 fra
.me
.REG
[0] = ATTR_metamodel___virtualtype___MMTypeProperty____stypes_cache(fra
.me
.REG
[0]);
126 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3]);
127 /* metamodel/virtualtype.nit:52 */
128 fra
.me
.REG
[2] = fra
.me
.REG
[3];
131 stack_frame_head
= fra
.me
.prev
;
132 return fra
.me
.REG
[2];
134 static const char LOCATE_metamodel___virtualtype___MMVirtualType___property
[] = "virtualtype::MMVirtualType::property";
135 val_t
metamodel___virtualtype___MMVirtualType___property(val_t p0
){
136 struct {struct stack_frame_t me
;} fra
;
139 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
140 fra
.me
.file
= LOCATE_metamodel___virtualtype
;
142 fra
.me
.meth
= LOCATE_metamodel___virtualtype___MMVirtualType___property
;
143 fra
.me
.has_broke
= 0;
145 fra
.me
.nitni_local_ref_head
= NULL
;
146 fra
.me
.REG
[0] = NIT_NULL
;
148 /* metamodel/virtualtype.nit:58 */
149 REGB0
= TAG_Bool(ATTR_metamodel___virtualtype___MMVirtualType____property(fra
.me
.REG
[0])!=NIT_NULL
);
150 if (UNTAG_Bool(REGB0
)) {
152 nit_abort("Uninitialized attribute %s", "_property", LOCATE_metamodel___virtualtype
, 58);
154 fra
.me
.REG
[0] = ATTR_metamodel___virtualtype___MMVirtualType____property(fra
.me
.REG
[0]);
155 stack_frame_head
= fra
.me
.prev
;
156 return fra
.me
.REG
[0];
158 static const char LOCATE_metamodel___virtualtype___MMVirtualType___recv
[] = "virtualtype::MMVirtualType::recv";
159 val_t
metamodel___virtualtype___MMVirtualType___recv(val_t p0
){
160 struct {struct stack_frame_t me
;} fra
;
163 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
164 fra
.me
.file
= LOCATE_metamodel___virtualtype
;
166 fra
.me
.meth
= LOCATE_metamodel___virtualtype___MMVirtualType___recv
;
167 fra
.me
.has_broke
= 0;
169 fra
.me
.nitni_local_ref_head
= NULL
;
170 fra
.me
.REG
[0] = NIT_NULL
;
172 /* metamodel/virtualtype.nit:61 */
173 REGB0
= TAG_Bool(ATTR_metamodel___virtualtype___MMVirtualType____recv(fra
.me
.REG
[0])!=NIT_NULL
);
174 if (UNTAG_Bool(REGB0
)) {
176 nit_abort("Uninitialized attribute %s", "_recv", LOCATE_metamodel___virtualtype
, 61);
178 fra
.me
.REG
[0] = ATTR_metamodel___virtualtype___MMVirtualType____recv(fra
.me
.REG
[0]);
179 stack_frame_head
= fra
.me
.prev
;
180 return fra
.me
.REG
[0];
182 static const char LOCATE_metamodel___virtualtype___MMVirtualType___init
[] = "virtualtype::MMVirtualType::init";
183 void metamodel___virtualtype___MMVirtualType___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
184 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_metamodel___virtualtype___MMVirtualType
].i
;
185 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
187 if (init_table
[itpos0
]) return;
188 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
189 fra
.me
.file
= LOCATE_metamodel___virtualtype
;
191 fra
.me
.meth
= LOCATE_metamodel___virtualtype___MMVirtualType___init
;
192 fra
.me
.has_broke
= 0;
194 fra
.me
.nitni_local_ref_head
= NULL
;
195 fra
.me
.REG
[0] = NIT_NULL
;
196 fra
.me
.REG
[1] = NIT_NULL
;
197 fra
.me
.REG
[2] = NIT_NULL
;
198 fra
.me
.REG
[3] = NIT_NULL
;
199 fra
.me
.REG
[4] = NIT_NULL
;
200 fra
.me
.REG
[5] = NIT_NULL
;
204 /* metamodel/virtualtype.nit:64 */
205 fra
.me
.REG
[3] = fra
.me
.REG
[0];
206 /* metamodel/virtualtype.nit:66 */
207 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
208 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
209 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMSignature___return_type(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
210 CALL_metamodel___type_formal___MMTypeFormal___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4], fra
.me
.REG
[5], init_table
);
211 /* metamodel/virtualtype.nit:67 */
212 ATTR_metamodel___virtualtype___MMVirtualType____property(fra
.me
.REG
[3]) = fra
.me
.REG
[1];
213 /* metamodel/virtualtype.nit:68 */
214 ATTR_metamodel___virtualtype___MMVirtualType____recv(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
215 stack_frame_head
= fra
.me
.prev
;
216 init_table
[itpos0
] = 1;
219 static const char LOCATE_metamodel___virtualtype___MMVirtualType___mmmodule
[] = "virtualtype::MMVirtualType::(static_type::MMType::mmmodule)";
220 val_t
metamodel___virtualtype___MMVirtualType___mmmodule(val_t p0
){
221 struct {struct stack_frame_t me
;} fra
;
224 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
225 fra
.me
.file
= LOCATE_metamodel___virtualtype
;
227 fra
.me
.meth
= LOCATE_metamodel___virtualtype___MMVirtualType___mmmodule
;
228 fra
.me
.has_broke
= 0;
230 fra
.me
.nitni_local_ref_head
= NULL
;
231 fra
.me
.REG
[0] = NIT_NULL
;
233 /* metamodel/virtualtype.nit:71 */
234 REGB0
= TAG_Bool(ATTR_metamodel___virtualtype___MMVirtualType____recv(fra
.me
.REG
[0])!=NIT_NULL
);
235 if (UNTAG_Bool(REGB0
)) {
237 nit_abort("Uninitialized attribute %s", "_recv", LOCATE_metamodel___virtualtype
, 71);
239 fra
.me
.REG
[0] = ATTR_metamodel___virtualtype___MMVirtualType____recv(fra
.me
.REG
[0]);
240 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
243 stack_frame_head
= fra
.me
.prev
;
244 return fra
.me
.REG
[0];
246 static const char LOCATE_metamodel___virtualtype___MMVirtualType___for_module
[] = "virtualtype::MMVirtualType::(static_type::MMType::for_module)";
247 val_t
metamodel___virtualtype___MMVirtualType___for_module(val_t p0
, val_t p1
){
248 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
252 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
253 fra
.me
.file
= LOCATE_metamodel___virtualtype
;
255 fra
.me
.meth
= LOCATE_metamodel___virtualtype___MMVirtualType___for_module
;
256 fra
.me
.has_broke
= 0;
258 fra
.me
.nitni_local_ref_head
= NULL
;
259 fra
.me
.REG
[0] = NIT_NULL
;
260 fra
.me
.REG
[1] = NIT_NULL
;
261 fra
.me
.REG
[2] = NIT_NULL
;
262 fra
.me
.REG
[3] = NIT_NULL
;
265 /* metamodel/virtualtype.nit:75 */
266 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
267 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[2]));
268 if (UNTAG_Bool(REGB0
)) {
270 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
273 if (UNTAG_Bool(REGB0
)) {
274 fra
.me
.REG
[2] = fra
.me
.REG
[0];
277 /* metamodel/virtualtype.nit:76 */
278 fra
.me
.REG
[3] = CALL_metamodel___virtualtype___MMVirtualType___recv(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
279 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMType___for_module(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
280 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMType___adapt_to(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
281 fra
.me
.REG
[2] = fra
.me
.REG
[1];
284 stack_frame_head
= fra
.me
.prev
;
285 return fra
.me
.REG
[2];
287 static const char LOCATE_metamodel___virtualtype___MMVirtualType___not_for_self
[] = "virtualtype::MMVirtualType::(static_type::MMType::not_for_self)";
288 val_t
metamodel___virtualtype___MMVirtualType___not_for_self(val_t p0
){
289 struct {struct stack_frame_t me
;} fra
;
291 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
292 fra
.me
.file
= LOCATE_metamodel___virtualtype
;
294 fra
.me
.meth
= LOCATE_metamodel___virtualtype___MMVirtualType___not_for_self
;
295 fra
.me
.has_broke
= 0;
297 fra
.me
.nitni_local_ref_head
= NULL
;
298 fra
.me
.REG
[0] = NIT_NULL
;
300 /* metamodel/virtualtype.nit:81 */
301 fra
.me
.REG
[0] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
302 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___not_for_self(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
305 stack_frame_head
= fra
.me
.prev
;
306 return fra
.me
.REG
[0];
308 static const char LOCATE_metamodel___virtualtype___MMVirtualType___adapt_to
[] = "virtualtype::MMVirtualType::(static_type::MMType::adapt_to)";
309 val_t
metamodel___virtualtype___MMVirtualType___adapt_to(val_t p0
, val_t p1
){
310 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
313 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
314 fra
.me
.file
= LOCATE_metamodel___virtualtype
;
316 fra
.me
.meth
= LOCATE_metamodel___virtualtype___MMVirtualType___adapt_to
;
317 fra
.me
.has_broke
= 0;
319 fra
.me
.nitni_local_ref_head
= NULL
;
320 fra
.me
.REG
[0] = NIT_NULL
;
321 fra
.me
.REG
[1] = NIT_NULL
;
322 fra
.me
.REG
[2] = NIT_NULL
;
325 /* metamodel/virtualtype.nit:84 */
326 fra
.me
.REG
[2] = fra
.me
.REG
[0];
327 /* metamodel/virtualtype.nit:86 */
328 fra
.me
.REG
[2] = CALL_metamodel___virtualtype___MMVirtualType___property(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
329 fra
.me
.REG
[1] = CALL_metamodel___virtualtype___MMTypeProperty___stype_for(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
330 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
331 if (UNTAG_Bool(REGB0
)) {
333 nit_abort("Cast failed", NULL
, LOCATE_metamodel___virtualtype
, 86);
337 stack_frame_head
= fra
.me
.prev
;
338 return fra
.me
.REG
[1];
340 static const char LOCATE_metamodel___virtualtype___MMLocalClass___virtual_type
[] = "virtualtype::MMLocalClass::virtual_type";
341 val_t
metamodel___virtualtype___MMLocalClass___virtual_type(val_t p0
, val_t p1
){
342 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
345 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
346 fra
.me
.file
= LOCATE_metamodel___virtualtype
;
348 fra
.me
.meth
= LOCATE_metamodel___virtualtype___MMLocalClass___virtual_type
;
349 fra
.me
.has_broke
= 0;
351 fra
.me
.nitni_local_ref_head
= NULL
;
352 fra
.me
.REG
[0] = NIT_NULL
;
353 fra
.me
.REG
[1] = NIT_NULL
;
356 /* metamodel/virtualtype.nit:93 */
357 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
358 /* metamodel/virtualtype.nit:94 */
359 REGB0
= CALL_metamodel___virtualtype___MMGlobalProperty___is_virtual_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
360 if (UNTAG_Bool(REGB0
)) {
361 /* metamodel/virtualtype.nit:95 */
364 /* metamodel/virtualtype.nit:97 */
365 nit_abort("Aborted", NULL
, LOCATE_metamodel___virtualtype
, 97);
367 stack_frame_head
= fra
.me
.prev
;
368 return fra
.me
.REG
[1];
370 static const char LOCATE_metamodel___virtualtype___MMLocalClass___select_virtual_type
[] = "virtualtype::MMLocalClass::select_virtual_type";
371 val_t
metamodel___virtualtype___MMLocalClass___select_virtual_type(val_t p0
, val_t p1
){
372 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
375 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
376 fra
.me
.file
= LOCATE_metamodel___virtualtype
;
378 fra
.me
.meth
= LOCATE_metamodel___virtualtype___MMLocalClass___select_virtual_type
;
379 fra
.me
.has_broke
= 0;
381 fra
.me
.nitni_local_ref_head
= NULL
;
382 fra
.me
.REG
[0] = NIT_NULL
;
383 fra
.me
.REG
[1] = NIT_NULL
;
386 /* metamodel/virtualtype.nit:103 */
387 fra
.me
.REG
[1] = CALL_metamodel___virtualtype___MMLocalClass___virtual_type(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
388 /* metamodel/virtualtype.nit:104 */
389 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
390 /* metamodel/virtualtype.nit:105 */
391 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___virtualtype___MMTypeProperty
, ID_metamodel___virtualtype___MMTypeProperty
)) /*cast MMTypeProperty*/;
392 if (UNTAG_Bool(REGB0
)) {
394 nit_abort("Assert failed", NULL
, LOCATE_metamodel___virtualtype
, 105);
396 /* metamodel/virtualtype.nit:106 */
399 stack_frame_head
= fra
.me
.prev
;
400 return fra
.me
.REG
[1];