1 /* This C file is generated by NIT to compile module metamodel___vararg. */
2 #include "metamodel___vararg._sep.h"
3 val_t
metamodel___vararg___MMSignature___vararg_rank(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_metamodel___vararg
;
10 fra
.me
.meth
= LOCATE_metamodel___vararg___MMSignature___vararg_rank
;
13 fra
.me
.REG
[0] = NIT_NULL
;
15 /* ./metamodel//vararg.nit:24 */
16 REGB0
= TAG_Bool(ATTR_metamodel___vararg___MMSignature____vararg_rank(fra
.me
.REG
[0])!=NIT_NULL
);
17 if (UNTAG_Bool(REGB0
)) {
19 nit_abort("Uninitialized attribute %s", "_vararg_rank", LOCATE_metamodel___vararg
, 24);
21 REGB0
= ATTR_metamodel___vararg___MMSignature____vararg_rank(fra
.me
.REG
[0]);
22 stack_frame_head
= fra
.me
.prev
;
25 void metamodel___vararg___MMSignature___vararg_rank__eq(val_t p0
, val_t p1
){
26 struct {struct stack_frame_t me
;} fra
;
29 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
30 fra
.me
.file
= LOCATE_metamodel___vararg
;
32 fra
.me
.meth
= LOCATE_metamodel___vararg___MMSignature___vararg_rank__eq
;
35 fra
.me
.REG
[0] = NIT_NULL
;
38 /* ./metamodel//vararg.nit:24 */
39 ATTR_metamodel___vararg___MMSignature____vararg_rank(fra
.me
.REG
[0]) = REGB0
;
40 stack_frame_head
= fra
.me
.prev
;
43 val_t
metamodel___vararg___MMSignature___has_vararg(val_t p0
){
44 struct {struct stack_frame_t me
;} fra
;
49 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
50 fra
.me
.file
= LOCATE_metamodel___vararg
;
52 fra
.me
.meth
= LOCATE_metamodel___vararg___MMSignature___has_vararg
;
55 fra
.me
.REG
[0] = NIT_NULL
;
57 /* ./metamodel//vararg.nit:30 */
58 REGB0
= TAG_Bool(ATTR_metamodel___vararg___MMSignature____vararg_rank(fra
.me
.REG
[0])!=NIT_NULL
);
59 if (UNTAG_Bool(REGB0
)) {
61 nit_abort("Uninitialized attribute %s", "_vararg_rank", LOCATE_metamodel___vararg
, 30);
63 REGB0
= ATTR_metamodel___vararg___MMSignature____vararg_rank(fra
.me
.REG
[0]);
65 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
66 if (UNTAG_Bool(REGB2
)) {
68 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
70 /* ./../lib/standard//kernel.nit:233 */
71 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
72 /* ./metamodel//vararg.nit:30 */
75 stack_frame_head
= fra
.me
.prev
;
78 val_t
metamodel___vararg___MMSignature___adaptation_to(val_t p0
, val_t p1
){
79 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
82 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
83 fra
.me
.file
= LOCATE_metamodel___vararg
;
85 fra
.me
.meth
= LOCATE_metamodel___vararg___MMSignature___adaptation_to
;
88 fra
.me
.REG
[0] = NIT_NULL
;
89 fra
.me
.REG
[1] = NIT_NULL
;
90 fra
.me
.REG
[2] = NIT_NULL
;
93 /* ./metamodel//vararg.nit:33 */
94 fra
.me
.REG
[2] = fra
.me
.REG
[0];
95 /* ./metamodel//vararg.nit:35 */
96 fra
.me
.REG
[1] = CALL_SUPER_metamodel___vararg___MMSignature___adaptation_to(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
97 /* ./metamodel//vararg.nit:36 */
98 REGB0
= TAG_Bool(ATTR_metamodel___vararg___MMSignature____vararg_rank(fra
.me
.REG
[2])!=NIT_NULL
);
99 if (UNTAG_Bool(REGB0
)) {
101 nit_abort("Uninitialized attribute %s", "_vararg_rank", LOCATE_metamodel___vararg
, 36);
103 REGB0
= ATTR_metamodel___vararg___MMSignature____vararg_rank(fra
.me
.REG
[2]);
104 CALL_metamodel___vararg___MMSignature___vararg_rank__eq(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB0
);
105 /* ./metamodel//vararg.nit:37 */
108 stack_frame_head
= fra
.me
.prev
;
109 return fra
.me
.REG
[1];
111 val_t
metamodel___vararg___MMSignature___not_for_self(val_t p0
){
112 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
115 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
116 fra
.me
.file
= LOCATE_metamodel___vararg
;
118 fra
.me
.meth
= LOCATE_metamodel___vararg___MMSignature___not_for_self
;
119 fra
.me
.has_broke
= 0;
121 fra
.me
.REG
[0] = NIT_NULL
;
122 fra
.me
.REG
[1] = NIT_NULL
;
124 /* ./metamodel//vararg.nit:40 */
125 fra
.me
.REG
[1] = fra
.me
.REG
[0];
126 /* ./metamodel//vararg.nit:42 */
127 fra
.me
.REG
[0] = CALL_SUPER_metamodel___vararg___MMSignature___not_for_self(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
128 /* ./metamodel//vararg.nit:43 */
129 REGB0
= TAG_Bool(ATTR_metamodel___vararg___MMSignature____vararg_rank(fra
.me
.REG
[1])!=NIT_NULL
);
130 if (UNTAG_Bool(REGB0
)) {
132 nit_abort("Uninitialized attribute %s", "_vararg_rank", LOCATE_metamodel___vararg
, 43);
134 REGB0
= ATTR_metamodel___vararg___MMSignature____vararg_rank(fra
.me
.REG
[1]);
135 CALL_metamodel___vararg___MMSignature___vararg_rank__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
136 /* ./metamodel//vararg.nit:44 */
139 stack_frame_head
= fra
.me
.prev
;
140 return fra
.me
.REG
[0];
142 void metamodel___vararg___MMSignature___init(val_t p0
, val_t p1
, val_t p2
, val_t p3
, int* init_table
){
143 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_metamodel___static_type___MMSignature
].i
;
144 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
147 if (init_table
[itpos0
]) return;
148 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
149 fra
.me
.file
= LOCATE_metamodel___vararg
;
151 fra
.me
.meth
= LOCATE_metamodel___vararg___MMSignature___init
;
152 fra
.me
.has_broke
= 0;
154 fra
.me
.REG
[0] = NIT_NULL
;
155 fra
.me
.REG
[1] = NIT_NULL
;
156 fra
.me
.REG
[2] = NIT_NULL
;
157 fra
.me
.REG
[3] = NIT_NULL
;
158 fra
.me
.REG
[4] = NIT_NULL
;
163 /* ./metamodel//vararg.nit:47 */
164 fra
.me
.REG
[4] = fra
.me
.REG
[0];
165 /* ./metamodel//vararg.nit:49 */
166 CALL_SUPER_metamodel___vararg___MMSignature___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[3], init_table
);
167 /* ./metamodel//vararg.nit:50 */
169 /* ./../lib/standard//kernel.nit:236 */
170 REGB0
= TAG_Int(-UNTAG_Int(REGB0
));
171 /* ./metamodel//vararg.nit:50 */
172 ATTR_metamodel___vararg___MMSignature____vararg_rank(fra
.me
.REG
[4]) = REGB0
;
173 stack_frame_head
= fra
.me
.prev
;
174 init_table
[itpos0
] = 1;