nitg & niti: add intern methods `successor` and `predecessor`
[nit.git] / c_src / collect_super_sends.sep.1.c
1 #include "collect_super_sends.sep.0.h"
2 /* method collect_super_sends#CollectSuperSends#modelbuilder for (self: CollectSuperSends): ModelBuilder */
3 val* collect_super_sends__CollectSuperSends__modelbuilder(val* self) {
4 val* var /* : ModelBuilder */;
5 val* var1 /* : ModelBuilder */;
6 var1 = self->attrs[COLOR_collect_super_sends__CollectSuperSends___64dmodelbuilder].val; /* @modelbuilder on <self:CollectSuperSends> */
7 if (var1 == NULL) {
8 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @modelbuilder");
9 fprintf(stderr, " (%s:%d)\n", "src/collect_super_sends.nit", 24);
10 show_backtrace(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method collect_super_sends#CollectSuperSends#modelbuilder for (self: Object): ModelBuilder */
17 val* VIRTUAL_collect_super_sends__CollectSuperSends__modelbuilder(val* self) {
18 val* var /* : ModelBuilder */;
19 val* var1 /* : ModelBuilder */;
20 var1 = collect_super_sends__CollectSuperSends__modelbuilder(self);
21 var = var1;
22 RET_LABEL:;
23 return var;
24 }
25 /* method collect_super_sends#CollectSuperSends#modelbuilder= for (self: CollectSuperSends, ModelBuilder) */
26 void collect_super_sends__CollectSuperSends__modelbuilder_61d(val* self, val* p0) {
27 self->attrs[COLOR_collect_super_sends__CollectSuperSends___64dmodelbuilder].val = p0; /* @modelbuilder on <self:CollectSuperSends> */
28 RET_LABEL:;
29 }
30 /* method collect_super_sends#CollectSuperSends#modelbuilder= for (self: Object, ModelBuilder) */
31 void VIRTUAL_collect_super_sends__CollectSuperSends__modelbuilder_61d(val* self, val* p0) {
32 collect_super_sends__CollectSuperSends__modelbuilder_61d(self, p0);
33 RET_LABEL:;
34 }
35 /* method collect_super_sends#CollectSuperSends#res for (self: CollectSuperSends): ArraySet[MMethodDef] */
36 val* collect_super_sends__CollectSuperSends__res(val* self) {
37 val* var /* : ArraySet[MMethodDef] */;
38 val* var1 /* : ArraySet[MMethodDef] */;
39 var1 = self->attrs[COLOR_collect_super_sends__CollectSuperSends___64dres].val; /* @res on <self:CollectSuperSends> */
40 if (var1 == NULL) {
41 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @res");
42 fprintf(stderr, " (%s:%d)\n", "src/collect_super_sends.nit", 25);
43 show_backtrace(1);
44 }
45 var = var1;
46 RET_LABEL:;
47 return var;
48 }
49 /* method collect_super_sends#CollectSuperSends#res for (self: Object): ArraySet[MMethodDef] */
50 val* VIRTUAL_collect_super_sends__CollectSuperSends__res(val* self) {
51 val* var /* : ArraySet[MMethodDef] */;
52 val* var1 /* : ArraySet[MMethodDef] */;
53 var1 = collect_super_sends__CollectSuperSends__res(self);
54 var = var1;
55 RET_LABEL:;
56 return var;
57 }
58 /* method collect_super_sends#CollectSuperSends#res= for (self: CollectSuperSends, ArraySet[MMethodDef]) */
59 void collect_super_sends__CollectSuperSends__res_61d(val* self, val* p0) {
60 self->attrs[COLOR_collect_super_sends__CollectSuperSends___64dres].val = p0; /* @res on <self:CollectSuperSends> */
61 RET_LABEL:;
62 }
63 /* method collect_super_sends#CollectSuperSends#res= for (self: Object, ArraySet[MMethodDef]) */
64 void VIRTUAL_collect_super_sends__CollectSuperSends__res_61d(val* self, val* p0) {
65 collect_super_sends__CollectSuperSends__res_61d(self, p0);
66 RET_LABEL:;
67 }
68 /* method collect_super_sends#CollectSuperSends#mpropdef for (self: CollectSuperSends): nullable MMethodDef */
69 val* collect_super_sends__CollectSuperSends__mpropdef(val* self) {
70 val* var /* : nullable MMethodDef */;
71 val* var1 /* : nullable MMethodDef */;
72 var1 = self->attrs[COLOR_collect_super_sends__CollectSuperSends___64dmpropdef].val; /* @mpropdef on <self:CollectSuperSends> */
73 var = var1;
74 RET_LABEL:;
75 return var;
76 }
77 /* method collect_super_sends#CollectSuperSends#mpropdef for (self: Object): nullable MMethodDef */
78 val* VIRTUAL_collect_super_sends__CollectSuperSends__mpropdef(val* self) {
79 val* var /* : nullable MMethodDef */;
80 val* var1 /* : nullable MMethodDef */;
81 var1 = collect_super_sends__CollectSuperSends__mpropdef(self);
82 var = var1;
83 RET_LABEL:;
84 return var;
85 }
86 /* method collect_super_sends#CollectSuperSends#mpropdef= for (self: CollectSuperSends, nullable MMethodDef) */
87 void collect_super_sends__CollectSuperSends__mpropdef_61d(val* self, val* p0) {
88 self->attrs[COLOR_collect_super_sends__CollectSuperSends___64dmpropdef].val = p0; /* @mpropdef on <self:CollectSuperSends> */
89 RET_LABEL:;
90 }
91 /* method collect_super_sends#CollectSuperSends#mpropdef= for (self: Object, nullable MMethodDef) */
92 void VIRTUAL_collect_super_sends__CollectSuperSends__mpropdef_61d(val* self, val* p0) {
93 collect_super_sends__CollectSuperSends__mpropdef_61d(self, p0);
94 RET_LABEL:;
95 }
96 /* method collect_super_sends#CollectSuperSends#init for (self: CollectSuperSends, ModelBuilder) */
97 void collect_super_sends__CollectSuperSends__init(val* self, val* p0) {
98 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
99 var_modelbuilder = p0;
100 ((void (*)(val*))(self->class->vft[COLOR_parser_nodes__Visitor__init]))(self) /* init on <self:CollectSuperSends>*/;
101 ((void (*)(val*, val*))(self->class->vft[COLOR_collect_super_sends__CollectSuperSends__modelbuilder_61d]))(self, var_modelbuilder) /* modelbuilder= on <self:CollectSuperSends>*/;
102 RET_LABEL:;
103 }
104 /* method collect_super_sends#CollectSuperSends#init for (self: Object, ModelBuilder) */
105 void VIRTUAL_collect_super_sends__CollectSuperSends__init(val* self, val* p0) {
106 collect_super_sends__CollectSuperSends__init(self, p0);
107 RET_LABEL:;
108 }
109 /* method collect_super_sends#CollectSuperSends#visit for (self: CollectSuperSends, ANode) */
110 void collect_super_sends__CollectSuperSends__visit(val* self, val* p0) {
111 val* var_n /* var n: ANode */;
112 short int var /* : Bool */;
113 int cltype;
114 int idtype;
115 val* var1 /* : nullable MMethodDef */;
116 val* var2 /* : null */;
117 short int var3 /* : Bool */;
118 val* var4 /* : nullable MPropDef */;
119 val* var5 /* : null */;
120 short int var6 /* : Bool */;
121 short int var7 /* : Bool */;
122 int cltype8;
123 int idtype9;
124 short int var_ /* var : Bool */;
125 val* var10 /* : nullable MMethod */;
126 val* var11 /* : null */;
127 short int var12 /* : Bool */;
128 val* var13 /* : nullable MMethodDef */;
129 val* var_mprop /* var mprop: nullable MMethodDef */;
130 val* var14 /* : null */;
131 short int var15 /* : Bool */;
132 val* var16 /* : ArraySet[MMethodDef] */;
133 var_n = p0;
134 /* <var_n:ANode> isa AMethPropdef */
135 cltype = type_parser_nodes__AMethPropdef.color;
136 idtype = type_parser_nodes__AMethPropdef.id;
137 if(cltype >= var_n->type->table_size) {
138 var = 0;
139 } else {
140 var = var_n->type->type_table[cltype] == idtype;
141 }
142 if (var){
143 var1 = ((val* (*)(val*))(self->class->vft[COLOR_collect_super_sends__CollectSuperSends__mpropdef]))(self) /* mpropdef on <self:CollectSuperSends>*/;
144 var2 = NULL;
145 if (var1 == NULL) {
146 var3 = 1; /* is null */
147 } else {
148 var3 = 0; /* arg is null but recv is not */
149 }
150 if (!var3) {
151 fprintf(stderr, "Runtime error: %s", "Assert failed");
152 fprintf(stderr, " (%s:%d)\n", "src/collect_super_sends.nit", 37);
153 show_backtrace(1);
154 }
155 var4 = ((val* (*)(val*))(var_n->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(var_n) /* mpropdef on <var_n:ANode(AMethPropdef)>*/;
156 ((void (*)(val*, val*))(self->class->vft[COLOR_collect_super_sends__CollectSuperSends__mpropdef_61d]))(self, var4) /* mpropdef= on <self:CollectSuperSends>*/;
157 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__visit_all]))(var_n, self) /* visit_all on <var_n:ANode(AMethPropdef)>*/;
158 var5 = NULL;
159 ((void (*)(val*, val*))(self->class->vft[COLOR_collect_super_sends__CollectSuperSends__mpropdef_61d]))(self, var5) /* mpropdef= on <self:CollectSuperSends>*/;
160 goto RET_LABEL;
161 } else {
162 }
163 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__visit_all]))(var_n, self) /* visit_all on <var_n:ANode>*/;
164 /* <var_n:ANode> isa ASuperExpr */
165 cltype8 = type_parser_nodes__ASuperExpr.color;
166 idtype9 = type_parser_nodes__ASuperExpr.id;
167 if(cltype8 >= var_n->type->table_size) {
168 var7 = 0;
169 } else {
170 var7 = var_n->type->type_table[cltype8] == idtype9;
171 }
172 var_ = var7;
173 if (var7){
174 var10 = ((val* (*)(val*))(var_n->class->vft[COLOR_typing__ASuperExpr__mproperty]))(var_n) /* mproperty on <var_n:ANode(ASuperExpr)>*/;
175 var11 = NULL;
176 if (var10 == NULL) {
177 var12 = 1; /* is null */
178 } else {
179 var12 = 0; /* arg is null but recv is not */
180 }
181 var6 = var12;
182 } else {
183 var6 = var_;
184 }
185 if (var6){
186 var13 = ((val* (*)(val*))(self->class->vft[COLOR_collect_super_sends__CollectSuperSends__mpropdef]))(self) /* mpropdef on <self:CollectSuperSends>*/;
187 var_mprop = var13;
188 var14 = NULL;
189 if (var_mprop == NULL) {
190 var15 = 0; /* is null */
191 } else {
192 var15 = 1; /* arg is null and recv is not */
193 }
194 if (!var15) {
195 fprintf(stderr, "Runtime error: %s", "Assert failed");
196 fprintf(stderr, " (%s:%d)\n", "src/collect_super_sends.nit", 46);
197 show_backtrace(1);
198 }
199 var16 = ((val* (*)(val*))(self->class->vft[COLOR_collect_super_sends__CollectSuperSends__res]))(self) /* res on <self:CollectSuperSends>*/;
200 ((void (*)(val*, val*))(var16->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var16, var_mprop) /* add on <var16:ArraySet[MMethodDef]>*/;
201 } else {
202 }
203 RET_LABEL:;
204 }
205 /* method collect_super_sends#CollectSuperSends#visit for (self: Object, ANode) */
206 void VIRTUAL_collect_super_sends__CollectSuperSends__visit(val* self, val* p0) {
207 collect_super_sends__CollectSuperSends__visit(self, p0);
208 RET_LABEL:;
209 }
210 /* method collect_super_sends#ModelBuilder#collect_super_sends for (self: ModelBuilder): Set[MMethodDef] */
211 val* collect_super_sends__ModelBuilder__collect_super_sends(val* self) {
212 val* var /* : Set[MMethodDef] */;
213 val* var1 /* : CollectSuperSends */;
214 val* var_visitor /* var visitor: CollectSuperSends */;
215 val* var2 /* : Array[AModule] */;
216 val* var3 /* : Iterator[nullable Object] */;
217 short int var4 /* : Bool */;
218 val* var5 /* : nullable Object */;
219 val* var_nmodule /* var nmodule: AModule */;
220 val* var6 /* : ArraySet[MMethodDef] */;
221 var1 = NEW_collect_super_sends__CollectSuperSends(&type_collect_super_sends__CollectSuperSends);
222 ((void (*)(val*, val*))(var1->class->vft[COLOR_collect_super_sends__CollectSuperSends__init]))(var1, self) /* init on <var1:CollectSuperSends>*/;
223 var_visitor = var1;
224 var2 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__nmodules]))(self) /* nmodules on <self:ModelBuilder>*/;
225 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__iterator]))(var2) /* iterator on <var2:Array[AModule]>*/;
226 for(;;) {
227 var4 = ((short int (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var3) /* is_ok on <var3:Iterator[nullable Object]>*/;
228 if(!var4) break;
229 var5 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__item]))(var3) /* item on <var3:Iterator[nullable Object]>*/;
230 var_nmodule = var5;
231 ((void (*)(val*, val*))(var_visitor->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_visitor, var_nmodule) /* enter_visit on <var_visitor:CollectSuperSends>*/;
232 CONTINUE_label: (void)0;
233 ((void (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__next]))(var3) /* next on <var3:Iterator[nullable Object]>*/;
234 }
235 BREAK_label: (void)0;
236 var6 = ((val* (*)(val*))(var_visitor->class->vft[COLOR_collect_super_sends__CollectSuperSends__res]))(var_visitor) /* res on <var_visitor:CollectSuperSends>*/;
237 var = var6;
238 goto RET_LABEL;
239 RET_LABEL:;
240 return var;
241 }
242 /* method collect_super_sends#ModelBuilder#collect_super_sends for (self: Object): Set[MMethodDef] */
243 val* VIRTUAL_collect_super_sends__ModelBuilder__collect_super_sends(val* self) {
244 val* var /* : Set[MMethodDef] */;
245 val* var1 /* : Set[MMethodDef] */;
246 var1 = collect_super_sends__ModelBuilder__collect_super_sends(self);
247 var = var1;
248 RET_LABEL:;
249 return var;
250 }