update NOTICE and LICENSE
[nit.git] / c_src / mmbuilder._sep.c
1 /* This C file is generated by NIT to compile module mmbuilder. */
2 #include "mmbuilder._sep.h"
3 val_t mmbuilder___CSHSorter___compare(val_t p0, val_t p1, val_t p2){
4 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
5 val_t REGB0;
6 val_t REGB1;
7 val_t tmp;
8 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9 fra.me.file = LOCATE_mmbuilder;
10 fra.me.line = 27;
11 fra.me.meth = LOCATE_mmbuilder___CSHSorter___compare;
12 fra.me.has_broke = 0;
13 fra.me.REG_size = 3;
14 fra.me.REG[0] = NIT_NULL;
15 fra.me.REG[1] = NIT_NULL;
16 fra.me.REG[2] = NIT_NULL;
17 fra.me.REG[0] = p0;
18 fra.me.REG[1] = p1;
19 fra.me.REG[2] = p2;
20 /* ./syntax//mmbuilder.nit:29 */
21 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[1])(fra.me.REG[1]);
22 REGB0 = CALL_partial_order___PartialOrderElement___rank(fra.me.REG[1])(fra.me.REG[1]);
23 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[2])(fra.me.REG[2]);
24 REGB1 = CALL_partial_order___PartialOrderElement___rank(fra.me.REG[2])(fra.me.REG[2]);
25 REGB1 = CALL_kernel___Comparable_____leqg(REGB0)(REGB0, REGB1);
26 goto label1;
27 label1: while(0);
28 stack_frame_head = fra.me.prev;
29 return REGB1;
30 }
31 void mmbuilder___CSHSorter___init(val_t p0, int* init_table){
32 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_CSHSorter].i;
33 struct {struct stack_frame_t me;} fra;
34 val_t tmp;
35 if (init_table[itpos0]) return;
36 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37 fra.me.file = LOCATE_mmbuilder;
38 fra.me.line = 32;
39 fra.me.meth = LOCATE_mmbuilder___CSHSorter___init;
40 fra.me.has_broke = 0;
41 fra.me.REG_size = 1;
42 fra.me.REG[0] = NIT_NULL;
43 fra.me.REG[0] = p0;
44 /* ./syntax//mmbuilder.nit:32 */
45 CALL_sorter___AbstractSorter___init(fra.me.REG[0])(fra.me.REG[0], init_table);
46 stack_frame_head = fra.me.prev;
47 init_table[itpos0] = 1;
48 return;
49 }
50 void mmbuilder___MMSrcModule___do_mmbuilder(val_t p0, val_t p1){
51 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
52 val_t REGB0;
53 val_t REGB1;
54 val_t REGB2;
55 val_t tmp;
56 static val_t once_value_3; /* Once value */
57 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
58 fra.me.file = LOCATE_mmbuilder;
59 fra.me.line = 36;
60 fra.me.meth = LOCATE_mmbuilder___MMSrcModule___do_mmbuilder;
61 fra.me.has_broke = 0;
62 fra.me.REG_size = 8;
63 fra.me.REG[0] = NIT_NULL;
64 fra.me.REG[1] = NIT_NULL;
65 fra.me.REG[2] = NIT_NULL;
66 fra.me.REG[3] = NIT_NULL;
67 fra.me.REG[4] = NIT_NULL;
68 fra.me.REG[5] = NIT_NULL;
69 fra.me.REG[6] = NIT_NULL;
70 fra.me.REG[7] = NIT_NULL;
71 fra.me.REG[0] = p0;
72 fra.me.REG[1] = p1;
73 /* ./syntax//mmbuilder.nit:41 */
74 CALL_inheritance___MMModule___import_global_classes(fra.me.REG[0])(fra.me.REG[0]);
75 /* ./syntax//mmbuilder.nit:44 */
76 fra.me.REG[2] = NEW_ClassBuilderVisitor_mmbuilder___ClassBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]);
77 /* ./syntax//mmbuilder.nit:45 */
78 fra.me.REG[3] = CALL_syntax_base___MMSrcModule___node(fra.me.REG[0])(fra.me.REG[0]);
79 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
80 /* ./syntax//mmbuilder.nit:46 */
81 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
82 /* ./syntax//mmbuilder.nit:48 */
83 fra.me.REG[3] = CALL_abstractmetamodel___MMModule___mhe(fra.me.REG[0])(fra.me.REG[0]);
84 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
85 if (UNTAG_Bool(REGB0)) {
86 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 48);
87 }
88 fra.me.REG[3] = CALL_partial_order___PartialOrderElement___direct_greaters(fra.me.REG[3])(fra.me.REG[3]);
89 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
90 if (UNTAG_Bool(REGB0)) {
91 /* ./syntax//mmbuilder.nit:49 */
92 CALL_mmbuilder___MMSrcModule___process_default_classes(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
93 }
94 /* ./syntax//mmbuilder.nit:53 */
95 CALL_inheritance___MMModule___import_local_classes(fra.me.REG[0])(fra.me.REG[0]);
96 /* ./syntax//mmbuilder.nit:56 */
97 fra.me.REG[3] = NEW_ClassSpecializationBuilderVisitor_mmbuilder___ClassSpecializationBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]);
98 /* ./syntax//mmbuilder.nit:57 */
99 fra.me.REG[2] = CALL_syntax_base___MMSrcModule___node(fra.me.REG[0])(fra.me.REG[0]);
100 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
101 /* ./syntax//mmbuilder.nit:58 */
102 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
103 /* ./syntax//mmbuilder.nit:61 */
104 fra.me.REG[2] = CALL_abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
105 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_mmbuilder___MMSrcModule___do_mmbuilder_1));
106 /* ./syntax//mmbuilder.nit:67 */
107 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
108 /* ./syntax//mmbuilder.nit:72 */
109 fra.me.REG[2] = CALL_abstractmetamodel___MMModule___class_specialization_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
110 fra.me.REG[2] = CALL_array___Collection___to_a(fra.me.REG[2])(fra.me.REG[2]);
111 /* ./syntax//mmbuilder.nit:75 */
112 if (!once_value_3) {
113 fra.me.REG[3] = NEW_CSHSorter_mmbuilder___CSHSorter___init();
114 once_value_3 = fra.me.REG[3];
115 register_static_object(&once_value_3);
116 } else fra.me.REG[3] = once_value_3;
117 fra.me.REG[3] = fra.me.REG[3];
118 /* ./syntax//mmbuilder.nit:76 */
119 CALL_sorter___AbstractSorter___sort(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
120 /* ./syntax//mmbuilder.nit:79 */
121 fra.me.REG[3] = NEW_ClassAncestorBuilder_mmbuilder___ClassAncestorBuilder___init(fra.me.REG[1], fra.me.REG[0]);
122 /* ./../lib/standard//collection//array.nit:231 */
123 fra.me.REG[4] = fra.me.REG[2];
124 /* ./../lib/standard//collection//array.nit:234 */
125 REGB0 = TAG_Int(0);
126 /* ./../lib/standard//collection//array.nit:235 */
127 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
128 if (UNTAG_Bool(REGB1)) {
129 } else {
130 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
131 }
132 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
133 /* ./../lib/standard//collection//array.nit:236 */
134 fra.me.REG[5] = ATTR_array___Array____items(fra.me.REG[4]);
135 /* ./../lib/standard//collection//array.nit:237 */
136 while(1) {
137 /* ./../lib/standard//collection//array.nit:23 */
138 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
139 if (UNTAG_Bool(REGB1)) {
140 } else {
141 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
142 }
143 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
144 /* ./../lib/standard//kernel.nit:212 */
145 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
146 /* ./../lib/standard//collection//array.nit:237 */
147 if (UNTAG_Bool(REGB1)) {
148 /* ./../lib/standard//collection//array.nit:238 */
149 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
150 if (UNTAG_Bool(REGB1)) {
151 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
152 }
153 /* ./../lib/standard//collection//array.nit:654 */
154 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
155 /* ./syntax//mmbuilder.nit:81 */
156 CALL_mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
157 /* ./syntax//mmbuilder.nit:82 */
158 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
159 /* ./syntax//mmbuilder.nit:83 */
160 CALL_inheritance___MMLocalClass___compute_ancestors(fra.me.REG[6])(fra.me.REG[6]);
161 /* ./../lib/standard//collection//array.nit:239 */
162 REGB1 = TAG_Int(1);
163 /* ./../lib/standard//kernel.nit:215 */
164 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
165 /* ./../lib/standard//collection//array.nit:239 */
166 REGB0 = REGB1;
167 } else {
168 /* ./../lib/standard//collection//array.nit:237 */
169 goto label4;
170 }
171 }
172 label4: while(0);
173 /* ./syntax//mmbuilder.nit:87 */
174 fra.me.REG[3] = NEW_ClassVerifierVisitor_mmbuilder___ClassVerifierVisitor___init(fra.me.REG[1], fra.me.REG[0]);
175 /* ./../lib/standard//collection//array.nit:231 */
176 fra.me.REG[5] = fra.me.REG[2];
177 /* ./../lib/standard//collection//array.nit:234 */
178 REGB0 = TAG_Int(0);
179 /* ./../lib/standard//collection//array.nit:235 */
180 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
181 if (UNTAG_Bool(REGB1)) {
182 } else {
183 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
184 }
185 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]);
186 /* ./../lib/standard//collection//array.nit:236 */
187 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[5]);
188 /* ./../lib/standard//collection//array.nit:237 */
189 while(1) {
190 /* ./../lib/standard//collection//array.nit:23 */
191 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
192 if (UNTAG_Bool(REGB1)) {
193 } else {
194 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
195 }
196 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]);
197 /* ./../lib/standard//kernel.nit:212 */
198 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
199 /* ./../lib/standard//collection//array.nit:237 */
200 if (UNTAG_Bool(REGB1)) {
201 /* ./../lib/standard//collection//array.nit:238 */
202 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
203 if (UNTAG_Bool(REGB1)) {
204 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
205 }
206 /* ./../lib/standard//collection//array.nit:654 */
207 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
208 /* ./syntax//mmbuilder.nit:89 */
209 CALL_mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
210 /* ./../lib/standard//collection//array.nit:239 */
211 REGB1 = TAG_Int(1);
212 /* ./../lib/standard//kernel.nit:215 */
213 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
214 /* ./../lib/standard//collection//array.nit:239 */
215 REGB0 = REGB1;
216 } else {
217 /* ./../lib/standard//collection//array.nit:237 */
218 goto label5;
219 }
220 }
221 label5: while(0);
222 /* ./syntax//mmbuilder.nit:91 */
223 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
224 /* ./syntax//mmbuilder.nit:94 */
225 fra.me.REG[3] = NEW_PropertyBuilderVisitor_mmbuilder___PropertyBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]);
226 /* ./../lib/standard//collection//array.nit:231 */
227 fra.me.REG[4] = fra.me.REG[2];
228 /* ./../lib/standard//collection//array.nit:234 */
229 REGB0 = TAG_Int(0);
230 /* ./../lib/standard//collection//array.nit:235 */
231 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
232 if (UNTAG_Bool(REGB1)) {
233 } else {
234 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
235 }
236 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
237 /* ./../lib/standard//collection//array.nit:236 */
238 fra.me.REG[5] = ATTR_array___Array____items(fra.me.REG[4]);
239 /* ./../lib/standard//collection//array.nit:237 */
240 while(1) {
241 /* ./../lib/standard//collection//array.nit:23 */
242 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
243 if (UNTAG_Bool(REGB1)) {
244 } else {
245 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
246 }
247 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
248 /* ./../lib/standard//kernel.nit:212 */
249 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
250 /* ./../lib/standard//collection//array.nit:237 */
251 if (UNTAG_Bool(REGB1)) {
252 /* ./../lib/standard//collection//array.nit:238 */
253 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
254 if (UNTAG_Bool(REGB1)) {
255 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
256 }
257 /* ./../lib/standard//collection//array.nit:654 */
258 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
259 /* ./syntax//mmbuilder.nit:97 */
260 CALL_mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
261 /* ./syntax//mmbuilder.nit:100 */
262 REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[6], COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
263 if (UNTAG_Bool(REGB1)) {
264 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
265 fra.me.REG[7] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[7])(fra.me.REG[7]);
266 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[7],fra.me.REG[6]));
267 if (UNTAG_Bool(REGB1)) {
268 } else {
269 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
270 REGB1 = REGB2;
271 }
272 } else {
273 REGB2 = TAG_Bool(false);
274 REGB1 = REGB2;
275 }
276 if (UNTAG_Bool(REGB1)) {
277 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
278 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[7])(fra.me.REG[7]);
279 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
280 } else {
281 REGB2 = TAG_Bool(false);
282 REGB1 = REGB2;
283 }
284 if (UNTAG_Bool(REGB1)) {
285 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
286 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[7])(fra.me.REG[7]);
287 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
288 } else {
289 REGB2 = TAG_Bool(false);
290 REGB1 = REGB2;
291 }
292 if (UNTAG_Bool(REGB1)) {
293 /* ./syntax//mmbuilder.nit:101 */
294 CALL_mmbuilder___MMSrcLocalClass___process_default_constructors(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
295 }
296 /* ./../lib/standard//collection//array.nit:239 */
297 REGB1 = TAG_Int(1);
298 /* ./../lib/standard//kernel.nit:215 */
299 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
300 /* ./../lib/standard//collection//array.nit:239 */
301 REGB0 = REGB1;
302 } else {
303 /* ./../lib/standard//collection//array.nit:237 */
304 goto label6;
305 }
306 }
307 label6: while(0);
308 /* ./syntax//mmbuilder.nit:106 */
309 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
310 /* ./syntax//mmbuilder.nit:109 */
311 fra.me.REG[0] = NEW_PropertyVerifierVisitor_mmbuilder___PropertyVerifierVisitor___init(fra.me.REG[1], fra.me.REG[0]);
312 /* ./../lib/standard//collection//array.nit:234 */
313 REGB0 = TAG_Int(0);
314 /* ./../lib/standard//collection//array.nit:235 */
315 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
316 if (UNTAG_Bool(REGB1)) {
317 } else {
318 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
319 }
320 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
321 /* ./../lib/standard//collection//array.nit:236 */
322 fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[2]);
323 /* ./../lib/standard//collection//array.nit:237 */
324 while(1) {
325 /* ./../lib/standard//collection//array.nit:23 */
326 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
327 if (UNTAG_Bool(REGB1)) {
328 } else {
329 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
330 }
331 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
332 /* ./../lib/standard//kernel.nit:212 */
333 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
334 /* ./../lib/standard//collection//array.nit:237 */
335 if (UNTAG_Bool(REGB1)) {
336 /* ./../lib/standard//collection//array.nit:238 */
337 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
338 if (UNTAG_Bool(REGB1)) {
339 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
340 }
341 /* ./../lib/standard//collection//array.nit:654 */
342 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
343 /* ./syntax//mmbuilder.nit:111 */
344 CALL_mmbuilder___MMLocalClass___accept_properties_visitor(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
345 /* ./../lib/standard//collection//array.nit:239 */
346 REGB1 = TAG_Int(1);
347 /* ./../lib/standard//kernel.nit:215 */
348 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
349 /* ./../lib/standard//collection//array.nit:239 */
350 REGB0 = REGB1;
351 } else {
352 /* ./../lib/standard//collection//array.nit:237 */
353 goto label7;
354 }
355 }
356 label7: while(0);
357 /* ./syntax//mmbuilder.nit:114 */
358 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
359 stack_frame_head = fra.me.prev;
360 return;
361 }
362 void OC_mmbuilder___MMSrcModule___do_mmbuilder_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
363 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
364 val_t REGB0;
365 val_t REGB1;
366 fun_t CREG[1];
367 val_t tmp;
368 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
369 fra.me.file = LOCATE_mmbuilder;
370 fra.me.line = 0;
371 fra.me.meth = LOCATE_mmbuilder___MMSrcModule___do_mmbuilder;
372 fra.me.has_broke = 0;
373 fra.me.REG_size = 2;
374 fra.me.REG[0] = NIT_NULL;
375 fra.me.REG[1] = NIT_NULL;
376 fra.me.closure_ctx = closctx_param;
377 fra.me.closure_funs = CREG;
378 fra.me.REG[0] = p0;
379 CREG[0] = clos_fun0;
380 /* ./syntax//mmbuilder.nit:62 */
381 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
382 fra.me.REG[1] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
383 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
384 REGB0 = CALL_abstractmetamodel___MMModule___visibility_for(closctx->REG[0])(closctx->REG[0], fra.me.REG[1]);
385 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
386 REGB1 = CALL_abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[1])(fra.me.REG[1]);
387 /* ./../lib/standard//kernel.nit:212 */
388 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
389 /* ./syntax//mmbuilder.nit:62 */
390 if (UNTAG_Bool(REGB1)) {
391 /* ./syntax//mmbuilder.nit:63 */
392 goto label2;
393 }
394 /* ./syntax//mmbuilder.nit:65 */
395 CALL_inheritance___MMLocalClass___compute_super_classes(fra.me.REG[0])(fra.me.REG[0]);
396 label2: while(0);
397 stack_frame_head = fra.me.prev;
398 return;
399 }
400 void mmbuilder___MMSrcModule___process_default_classes(val_t p0, val_t p1){
401 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
402 val_t REGB0;
403 val_t tmp;
404 static val_t once_value_1; /* Once value */
405 static val_t once_value_2; /* Once value */
406 static val_t once_value_3; /* Once value */
407 static val_t once_value_4; /* Once value */
408 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
409 fra.me.file = LOCATE_mmbuilder;
410 fra.me.line = 117;
411 fra.me.meth = LOCATE_mmbuilder___MMSrcModule___process_default_classes;
412 fra.me.has_broke = 0;
413 fra.me.REG_size = 4;
414 fra.me.REG[0] = NIT_NULL;
415 fra.me.REG[1] = NIT_NULL;
416 fra.me.REG[2] = NIT_NULL;
417 fra.me.REG[3] = NIT_NULL;
418 fra.me.REG[0] = p0;
419 fra.me.REG[1] = p1;
420 /* ./syntax//mmbuilder.nit:120 */
421 if (!once_value_1) {
422 if (!once_value_2) {
423 fra.me.REG[1] = BOX_NativeString("Object");
424 REGB0 = TAG_Int(6);
425 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
426 once_value_2 = fra.me.REG[1];
427 register_static_object(&once_value_2);
428 } else fra.me.REG[1] = once_value_2;
429 fra.me.REG[1] = fra.me.REG[1];
430 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
431 once_value_1 = fra.me.REG[1];
432 register_static_object(&once_value_1);
433 } else fra.me.REG[1] = once_value_1;
434 fra.me.REG[1] = fra.me.REG[1];
435 /* ./syntax//mmbuilder.nit:121 */
436 REGB0 = CALL_abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
437 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
438 if (UNTAG_Bool(REGB0)) {
439 /* ./syntax//mmbuilder.nit:122 */
440 REGB0 = TAG_Int(0);
441 fra.me.REG[2] = NEW_MMSrcLocalClass_syntax_base___MMSrcLocalClass___init(fra.me.REG[0], fra.me.REG[1], NIT_NULL, REGB0);
442 /* ./syntax//mmbuilder.nit:123 */
443 CALL_abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
444 /* ./syntax//mmbuilder.nit:124 */
445 fra.me.REG[3] = CALL_syntax_base___MMSrcModule___src_local_classes(fra.me.REG[0])(fra.me.REG[0]);
446 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[2]);
447 }
448 /* ./syntax//mmbuilder.nit:126 */
449 if (!once_value_3) {
450 if (!once_value_4) {
451 fra.me.REG[2] = BOX_NativeString("Bool");
452 REGB0 = TAG_Int(4);
453 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
454 once_value_4 = fra.me.REG[2];
455 register_static_object(&once_value_4);
456 } else fra.me.REG[2] = once_value_4;
457 fra.me.REG[2] = fra.me.REG[2];
458 fra.me.REG[2] = CALL_symbol___String___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
459 once_value_3 = fra.me.REG[2];
460 register_static_object(&once_value_3);
461 } else fra.me.REG[2] = once_value_3;
462 fra.me.REG[2] = fra.me.REG[2];
463 fra.me.REG[1] = fra.me.REG[2];
464 /* ./syntax//mmbuilder.nit:127 */
465 REGB0 = CALL_abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
466 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
467 if (UNTAG_Bool(REGB0)) {
468 /* ./syntax//mmbuilder.nit:128 */
469 REGB0 = TAG_Int(0);
470 fra.me.REG[2] = NEW_MMSrcLocalClass_syntax_base___MMSrcLocalClass___init(fra.me.REG[0], fra.me.REG[1], NIT_NULL, REGB0);
471 /* ./syntax//mmbuilder.nit:129 */
472 CALL_abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
473 /* ./syntax//mmbuilder.nit:130 */
474 fra.me.REG[0] = CALL_syntax_base___MMSrcModule___src_local_classes(fra.me.REG[0])(fra.me.REG[0]);
475 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
476 }
477 stack_frame_head = fra.me.prev;
478 return;
479 }
480 void mmbuilder___MMLocalClass___accept_class_visitor(val_t p0, val_t p1){
481 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
482 val_t tmp;
483 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
484 fra.me.file = LOCATE_mmbuilder;
485 fra.me.line = 136;
486 fra.me.meth = LOCATE_mmbuilder___MMLocalClass___accept_class_visitor;
487 fra.me.has_broke = 0;
488 fra.me.REG_size = 2;
489 fra.me.REG[0] = NIT_NULL;
490 fra.me.REG[1] = NIT_NULL;
491 fra.me.REG[0] = p0;
492 fra.me.REG[1] = p1;
493 stack_frame_head = fra.me.prev;
494 return;
495 }
496 void mmbuilder___MMLocalClass___accept_properties_visitor(val_t p0, val_t p1){
497 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
498 val_t tmp;
499 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
500 fra.me.file = LOCATE_mmbuilder;
501 fra.me.line = 141;
502 fra.me.meth = LOCATE_mmbuilder___MMLocalClass___accept_properties_visitor;
503 fra.me.has_broke = 0;
504 fra.me.REG_size = 2;
505 fra.me.REG[0] = NIT_NULL;
506 fra.me.REG[1] = NIT_NULL;
507 fra.me.REG[0] = p0;
508 fra.me.REG[1] = p1;
509 stack_frame_head = fra.me.prev;
510 return;
511 }
512 void mmbuilder___MMSrcLocalClass___accept_class_visitor(val_t p0, val_t p1){
513 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
514 val_t REGB0;
515 val_t REGB1;
516 val_t tmp;
517 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
518 fra.me.file = LOCATE_mmbuilder;
519 fra.me.line = 148;
520 fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___accept_class_visitor;
521 fra.me.has_broke = 0;
522 fra.me.REG_size = 3;
523 fra.me.REG[0] = NIT_NULL;
524 fra.me.REG[1] = NIT_NULL;
525 fra.me.REG[2] = NIT_NULL;
526 fra.me.REG[0] = p0;
527 fra.me.REG[1] = p1;
528 /* ./syntax//mmbuilder.nit:150 */
529 fra.me.REG[0] = CALL_syntax_base___MMSrcLocalClass___node(fra.me.REG[0])(fra.me.REG[0]);
530 /* ./syntax//mmbuilder.nit:151 */
531 while(1) {
532 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
533 if (UNTAG_Bool(REGB0)) {
534 } else {
535 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
536 if (UNTAG_Bool(REGB1)) {
537 REGB1 = TAG_Bool(false);
538 REGB0 = REGB1;
539 } else {
540 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
541 REGB0 = REGB1;
542 }
543 }
544 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
545 if (UNTAG_Bool(REGB0)) {
546 /* ./syntax//mmbuilder.nit:152 */
547 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
548 /* ./syntax//mmbuilder.nit:153 */
549 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
550 if (UNTAG_Bool(REGB0)) {
551 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 153);
552 }
553 fra.me.REG[2] = CALL_syntax_base___AClassdef___next_node(fra.me.REG[0])(fra.me.REG[0]);
554 fra.me.REG[0] = fra.me.REG[2];
555 } else {
556 /* ./syntax//mmbuilder.nit:151 */
557 goto label1;
558 }
559 }
560 label1: while(0);
561 stack_frame_head = fra.me.prev;
562 return;
563 }
564 void mmbuilder___MMSrcLocalClass___accept_properties_visitor(val_t p0, val_t p1){
565 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
566 val_t REGB0;
567 val_t REGB1;
568 val_t tmp;
569 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
570 fra.me.file = LOCATE_mmbuilder;
571 fra.me.line = 157;
572 fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___accept_properties_visitor;
573 fra.me.has_broke = 0;
574 fra.me.REG_size = 4;
575 fra.me.REG[0] = NIT_NULL;
576 fra.me.REG[1] = NIT_NULL;
577 fra.me.REG[2] = NIT_NULL;
578 fra.me.REG[3] = NIT_NULL;
579 fra.me.REG[0] = p0;
580 fra.me.REG[1] = p1;
581 /* ./syntax//mmbuilder.nit:160 */
582 fra.me.REG[2] = CALL_syntax_base___MMSrcLocalClass___node(fra.me.REG[0])(fra.me.REG[0]);
583 /* ./syntax//mmbuilder.nit:161 */
584 while(1) {
585 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
586 if (UNTAG_Bool(REGB0)) {
587 } else {
588 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
589 if (UNTAG_Bool(REGB1)) {
590 REGB1 = TAG_Bool(false);
591 REGB0 = REGB1;
592 } else {
593 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
594 REGB0 = REGB1;
595 }
596 }
597 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
598 if (UNTAG_Bool(REGB0)) {
599 /* ./syntax//mmbuilder.nit:162 */
600 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
601 /* ./syntax//mmbuilder.nit:163 */
602 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
603 if (UNTAG_Bool(REGB0)) {
604 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 163);
605 }
606 fra.me.REG[3] = CALL_syntax_base___AClassdef___next_node(fra.me.REG[2])(fra.me.REG[2]);
607 fra.me.REG[2] = fra.me.REG[3];
608 } else {
609 /* ./syntax//mmbuilder.nit:161 */
610 goto label1;
611 }
612 }
613 label1: while(0);
614 /* ./syntax//mmbuilder.nit:166 */
615 fra.me.REG[0] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
616 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_mmbuilder___MMSrcLocalClass___accept_properties_visitor_2));
617 stack_frame_head = fra.me.prev;
618 return;
619 }
620 void OC_mmbuilder___MMSrcLocalClass___accept_properties_visitor_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
621 struct {struct stack_frame_t me;} fra;
622 fun_t CREG[1];
623 val_t tmp;
624 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
625 fra.me.file = LOCATE_mmbuilder;
626 fra.me.line = 0;
627 fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___accept_properties_visitor;
628 fra.me.has_broke = 0;
629 fra.me.REG_size = 1;
630 fra.me.REG[0] = NIT_NULL;
631 fra.me.closure_ctx = closctx_param;
632 fra.me.closure_funs = CREG;
633 fra.me.REG[0] = p0;
634 CREG[0] = clos_fun0;
635 /* ./syntax//mmbuilder.nit:167 */
636 CALL_mmbuilder___MMLocalProperty___accept_property_visitor(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
637 stack_frame_head = fra.me.prev;
638 return;
639 }
640 void mmbuilder___MMSrcLocalClass___process_default_constructors(val_t p0, val_t p1){
641 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
642 val_t REGB0;
643 val_t REGB1;
644 val_t REGB2;
645 val_t tmp;
646 static val_t once_value_7; /* Once value */
647 static val_t once_value_8; /* Once value */
648 static val_t once_value_13; /* Once value */
649 static val_t once_value_14; /* Once value */
650 static val_t once_value_15; /* Once value */
651 static val_t once_value_16; /* Once value */
652 static val_t once_value_17; /* Once value */
653 static val_t once_value_18; /* Once value */
654 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
655 fra.me.file = LOCATE_mmbuilder;
656 fra.me.line = 171;
657 fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___process_default_constructors;
658 fra.me.has_broke = 0;
659 fra.me.REG_size = 10;
660 fra.me.REG[0] = NIT_NULL;
661 fra.me.REG[1] = NIT_NULL;
662 fra.me.REG[2] = NIT_NULL;
663 fra.me.REG[3] = NIT_NULL;
664 fra.me.REG[4] = NIT_NULL;
665 fra.me.REG[5] = NIT_NULL;
666 fra.me.REG[6] = NIT_NULL;
667 fra.me.REG[7] = NIT_NULL;
668 fra.me.REG[8] = NIT_NULL;
669 fra.me.REG[9] = NIT_NULL;
670 fra.me.REG[0] = p0;
671 fra.me.REG[1] = p1;
672 /* ./syntax//mmbuilder.nit:175 */
673 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[0])(fra.me.REG[0]);
674 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_mmbuilder___MMSrcLocalClass___process_default_constructors_1));
675 switch ((&(fra.me))->has_broke) {
676 case 0: break;
677 case 1: (&(fra.me))->has_broke = 0; goto label3;
678 }
679 /* ./syntax//mmbuilder.nit:183 */
680 fra.me.REG[2] = NEW_ArraySet_array___ArraySet___init();
681 /* ./syntax//mmbuilder.nit:184 */
682 fra.me.REG[3] = NEW_ArraySet_array___ArraySet___init();
683 /* ./syntax//mmbuilder.nit:185 */
684 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___che(fra.me.REG[0])(fra.me.REG[0]);
685 fra.me.REG[4] = CALL_partial_order___PartialOrderElement___direct_greaters(fra.me.REG[4])(fra.me.REG[4]);
686 /* ./../lib/standard//collection//array.nit:234 */
687 REGB0 = TAG_Int(0);
688 /* ./../lib/standard//collection//array.nit:235 */
689 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
690 if (UNTAG_Bool(REGB1)) {
691 } else {
692 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
693 }
694 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
695 /* ./../lib/standard//collection//array.nit:236 */
696 fra.me.REG[5] = ATTR_array___Array____items(fra.me.REG[4]);
697 /* ./../lib/standard//collection//array.nit:237 */
698 while(1) {
699 /* ./../lib/standard//collection//array.nit:23 */
700 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
701 if (UNTAG_Bool(REGB1)) {
702 } else {
703 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
704 }
705 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
706 /* ./../lib/standard//kernel.nit:212 */
707 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
708 /* ./../lib/standard//collection//array.nit:237 */
709 if (UNTAG_Bool(REGB1)) {
710 /* ./../lib/standard//collection//array.nit:238 */
711 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
712 if (UNTAG_Bool(REGB1)) {
713 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
714 }
715 /* ./../lib/standard//collection//array.nit:654 */
716 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
717 /* ./syntax//mmbuilder.nit:186 */
718 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
719 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[7])(fra.me.REG[7]);
720 if (UNTAG_Bool(REGB1)) {
721 REGB1 = TAG_Bool(true);
722 } else {
723 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
724 REGB2 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[7])(fra.me.REG[7]);
725 REGB1 = REGB2;
726 }
727 if (UNTAG_Bool(REGB1)) {
728 goto label4;
729 }
730 /* ./syntax//mmbuilder.nit:187 */
731 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[6])(fra.me.REG[6]);
732 CALL_abstract_collection___Collection___iterate(fra.me.REG[7])(fra.me.REG[7], (&(fra.me)), ((fun_t)OC_mmbuilder___MMSrcLocalClass___process_default_constructors_5));
733 /* ./syntax//mmbuilder.nit:191 */
734 if (!once_value_7) {
735 if (!once_value_8) {
736 fra.me.REG[7] = BOX_NativeString("init");
737 REGB1 = TAG_Int(4);
738 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
739 once_value_8 = fra.me.REG[7];
740 register_static_object(&once_value_8);
741 } else fra.me.REG[7] = once_value_8;
742 fra.me.REG[7] = fra.me.REG[7];
743 fra.me.REG[7] = CALL_symbol___String___to_symbol(fra.me.REG[7])(fra.me.REG[7]);
744 once_value_7 = fra.me.REG[7];
745 register_static_object(&once_value_7);
746 } else fra.me.REG[7] = once_value_7;
747 fra.me.REG[7] = fra.me.REG[7];
748 /* ./syntax//mmbuilder.nit:192 */
749 REGB1 = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
750 if (UNTAG_Bool(REGB1)) {
751 /* ./syntax//mmbuilder.nit:193 */
752 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
753 /* ./syntax//mmbuilder.nit:194 */
754 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7]);
755 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
756 }
757 label4: while(0);
758 /* ./../lib/standard//collection//array.nit:239 */
759 REGB1 = TAG_Int(1);
760 /* ./../lib/standard//kernel.nit:215 */
761 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
762 /* ./../lib/standard//collection//array.nit:239 */
763 REGB0 = REGB1;
764 } else {
765 /* ./../lib/standard//collection//array.nit:237 */
766 goto label9;
767 }
768 }
769 label9: while(0);
770 /* ./syntax//mmbuilder.nit:199 */
771 fra.me.REG[5] = NEW_Array_array___Array___init();
772 /* ./syntax//mmbuilder.nit:200 */
773 fra.me.REG[4] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
774 CALL_abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_mmbuilder___MMSrcLocalClass___process_default_constructors_10));
775 /* ./syntax//mmbuilder.nit:207 */
776 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
777 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
778 if (UNTAG_Bool(REGB0)) {
779 /* ./syntax//mmbuilder.nit:210 */
780 fra.me.REG[4] = NEW_Array_array___Array___init();
781 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_mmbuilder___MMSrcLocalClass___process_default_constructors_11));
782 /* ./syntax//mmbuilder.nit:218 */
783 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___che(fra.me.REG[0])(fra.me.REG[0]);
784 fra.me.REG[7] = CALL_partial_order___PartialOrderElement___order(fra.me.REG[7])(fra.me.REG[7]);
785 fra.me.REG[7] = CALL_partial_order___PartialOrder___select_smallests(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
786 fra.me.REG[4] = fra.me.REG[7];
787 /* ./syntax//mmbuilder.nit:221 */
788 fra.me.REG[7] = NIT_NULL;
789 /* ./../lib/standard//collection//array.nit:23 */
790 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
791 if (UNTAG_Bool(REGB0)) {
792 } else {
793 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
794 }
795 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
796 /* ./syntax//mmbuilder.nit:223 */
797 REGB1 = TAG_Int(1);
798 /* ./../lib/standard//kernel.nit:214 */
799 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
800 /* ./syntax//mmbuilder.nit:223 */
801 if (UNTAG_Bool(REGB1)) {
802 /* ./syntax//mmbuilder.nit:224 */
803 fra.me.REG[6] = CALL_syntax_base___MMSrcLocalClass___node(fra.me.REG[0])(fra.me.REG[0]);
804 REGB1 = TAG_Int(7);
805 fra.me.REG[8] = NEW_Array_array___Array___with_capacity(REGB1);
806 if (!once_value_13) {
807 fra.me.REG[9] = BOX_NativeString("Error: Explicit constructor required in ");
808 REGB1 = TAG_Int(40);
809 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1);
810 once_value_13 = fra.me.REG[9];
811 register_static_object(&once_value_13);
812 } else fra.me.REG[9] = once_value_13;
813 fra.me.REG[9] = fra.me.REG[9];
814 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
815 fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
816 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
817 if (!once_value_14) {
818 fra.me.REG[9] = BOX_NativeString(" since multiple inheritance of constructor is forbiden. Conflicting classes are ");
819 REGB1 = TAG_Int(80);
820 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1);
821 once_value_14 = fra.me.REG[9];
822 register_static_object(&once_value_14);
823 } else fra.me.REG[9] = once_value_14;
824 fra.me.REG[9] = fra.me.REG[9];
825 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
826 if (!once_value_15) {
827 fra.me.REG[9] = BOX_NativeString(", ");
828 REGB1 = TAG_Int(2);
829 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1);
830 once_value_15 = fra.me.REG[9];
831 register_static_object(&once_value_15);
832 } else fra.me.REG[9] = once_value_15;
833 fra.me.REG[9] = fra.me.REG[9];
834 fra.me.REG[9] = CALL_string___Collection___join(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9]);
835 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
836 if (!once_value_16) {
837 fra.me.REG[9] = BOX_NativeString(". Costructors are ");
838 REGB1 = TAG_Int(18);
839 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1);
840 once_value_16 = fra.me.REG[9];
841 register_static_object(&once_value_16);
842 } else fra.me.REG[9] = once_value_16;
843 fra.me.REG[9] = fra.me.REG[9];
844 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
845 if (!once_value_17) {
846 fra.me.REG[9] = BOX_NativeString(", ");
847 REGB1 = TAG_Int(2);
848 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1);
849 once_value_17 = fra.me.REG[9];
850 register_static_object(&once_value_17);
851 } else fra.me.REG[9] = once_value_17;
852 fra.me.REG[9] = fra.me.REG[9];
853 fra.me.REG[9] = CALL_string___Collection___join(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[9]);
854 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
855 if (!once_value_18) {
856 fra.me.REG[9] = BOX_NativeString(".");
857 REGB1 = TAG_Int(1);
858 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1);
859 once_value_18 = fra.me.REG[9];
860 register_static_object(&once_value_18);
861 } else fra.me.REG[9] = once_value_18;
862 fra.me.REG[9] = fra.me.REG[9];
863 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
864 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
865 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6], fra.me.REG[8]);
866 /* ./syntax//mmbuilder.nit:225 */
867 goto label3;
868 } else {
869 /* ./../lib/standard//collection//array.nit:23 */
870 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
871 if (UNTAG_Bool(REGB1)) {
872 } else {
873 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
874 }
875 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
876 /* ./syntax//mmbuilder.nit:226 */
877 REGB0 = TAG_Int(1);
878 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0));
879 if (UNTAG_Bool(REGB2)) {
880 } else {
881 /* ./../lib/standard//kernel.nit:207 */
882 REGB0 = TAG_Bool((REGB1)==(REGB0));
883 /* ./syntax//mmbuilder.nit:226 */
884 REGB2 = REGB0;
885 }
886 if (UNTAG_Bool(REGB2)) {
887 /* ./syntax//mmbuilder.nit:227 */
888 fra.me.REG[4] = CALL_abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
889 fra.me.REG[7] = fra.me.REG[4];
890 }
891 }
892 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_mmbuilder___MMSrcLocalClass___process_default_constructors_19));
893 /* ./syntax//mmbuilder.nit:236 */
894 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
895 REGB2 = TAG_Bool(fra.me.REG[7]!=NIT_NULL);
896 if (UNTAG_Bool(REGB2)) {
897 } else {
898 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 236);
899 }
900 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
901 if (UNTAG_Bool(REGB2)) {
902 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 236);
903 }
904 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
905 CALL_abstractmetamodel___MMGlobalClass___mixin_of__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
906 } else {
907 /* ./syntax//mmbuilder.nit:241 */
908 fra.me.REG[2] = CALL_array___Collection___to_a(fra.me.REG[2])(fra.me.REG[2]);
909 fra.me.REG[2] = NEW_MMImplicitInit_syntax_base___MMImplicitInit___init(fra.me.REG[0], fra.me.REG[5], fra.me.REG[2]);
910 /* ./syntax//mmbuilder.nit:242 */
911 CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
912 }
913 label3: while(0);
914 stack_frame_head = fra.me.prev;
915 return;
916 }
917 void OC_mmbuilder___MMSrcLocalClass___process_default_constructors_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
918 struct {struct stack_frame_t me;} fra;
919 val_t REGB0;
920 val_t REGB1;
921 fun_t CREG[1];
922 val_t tmp;
923 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
924 fra.me.file = LOCATE_mmbuilder;
925 fra.me.line = 0;
926 fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___process_default_constructors;
927 fra.me.has_broke = 0;
928 fra.me.REG_size = 1;
929 fra.me.REG[0] = NIT_NULL;
930 fra.me.closure_ctx = closctx_param;
931 fra.me.closure_funs = CREG;
932 fra.me.REG[0] = p0;
933 CREG[0] = clos_fun0;
934 /* ./syntax//mmbuilder.nit:176 */
935 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
936 if (UNTAG_Bool(REGB0)) {
937 /* ./syntax//mmbuilder.nit:178 */
938 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
939 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
940 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],closctx->REG[0]));
941 if (UNTAG_Bool(REGB0)) {
942 } else {
943 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
944 REGB0 = REGB1;
945 }
946 if (UNTAG_Bool(REGB0)) {
947 closctx->has_broke = 1;
948 goto label2;
949 }
950 }
951 label2: while(0);
952 stack_frame_head = fra.me.prev;
953 return;
954 }
955 void OC_mmbuilder___MMSrcLocalClass___process_default_constructors_5(struct stack_frame_t *closctx, val_t p0){
956 struct {struct stack_frame_t me;} fra;
957 val_t REGB0;
958 val_t tmp;
959 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
960 fra.me.file = LOCATE_mmbuilder;
961 fra.me.line = 0;
962 fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___process_default_constructors;
963 fra.me.has_broke = 0;
964 fra.me.REG_size = 1;
965 fra.me.REG[0] = NIT_NULL;
966 fra.me.REG[0] = p0;
967 /* ./syntax//mmbuilder.nit:188 */
968 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
969 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
970 if (UNTAG_Bool(REGB0)) {
971 goto label6;
972 }
973 /* ./syntax//mmbuilder.nit:189 */
974 CALL_abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[0]);
975 label6: while(0);
976 stack_frame_head = fra.me.prev;
977 return;
978 }
979 void OC_mmbuilder___MMSrcLocalClass___process_default_constructors_10(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
980 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
981 val_t REGB0;
982 val_t REGB1;
983 fun_t CREG[1];
984 val_t tmp;
985 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
986 fra.me.file = LOCATE_mmbuilder;
987 fra.me.line = 0;
988 fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___process_default_constructors;
989 fra.me.has_broke = 0;
990 fra.me.REG_size = 2;
991 fra.me.REG[0] = NIT_NULL;
992 fra.me.REG[1] = NIT_NULL;
993 fra.me.closure_ctx = closctx_param;
994 fra.me.closure_funs = CREG;
995 fra.me.REG[0] = p0;
996 CREG[0] = clos_fun0;
997 /* ./syntax//mmbuilder.nit:201 */
998 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_MMSrcAttribute, ID_MMSrcAttribute)) /*cast MMSrcAttribute*/;
999 if (UNTAG_Bool(REGB0)) {
1000 /* ./syntax//mmbuilder.nit:202 */
1001 fra.me.REG[1] = CALL_syntax_base___MMLocalProperty___node(fra.me.REG[0])(fra.me.REG[0]);
1002 /* ./syntax//mmbuilder.nit:203 */
1003 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1004 if (UNTAG_Bool(REGB0)) {
1005 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 203);
1006 }
1007 fra.me.REG[1] = CALL_parser_nodes___AAttrPropdef___n_expr(fra.me.REG[1])(fra.me.REG[1]);
1008 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1009 if (UNTAG_Bool(REGB0)) {
1010 } else {
1011 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1012 if (UNTAG_Bool(REGB1)) {
1013 REGB1 = TAG_Bool(false);
1014 REGB0 = REGB1;
1015 } else {
1016 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
1017 REGB0 = REGB1;
1018 }
1019 }
1020 if (UNTAG_Bool(REGB0)) {
1021 CALL_abstract_collection___SimpleCollection___add(closctx->REG[5])(closctx->REG[5], fra.me.REG[0]);
1022 }
1023 }
1024 stack_frame_head = fra.me.prev;
1025 return;
1026 }
1027 void OC_mmbuilder___MMSrcLocalClass___process_default_constructors_11(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
1028 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1029 val_t REGB0;
1030 fun_t CREG[1];
1031 val_t tmp;
1032 /* ./syntax//mmbuilder.nit:211 */
1033 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1034 fra.me.file = LOCATE_mmbuilder;
1035 fra.me.line = 0;
1036 fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___process_default_constructors;
1037 fra.me.has_broke = 0;
1038 fra.me.REG_size = 2;
1039 fra.me.REG[0] = NIT_NULL;
1040 fra.me.REG[1] = NIT_NULL;
1041 fra.me.closure_ctx = closctx_param;
1042 fra.me.closure_funs = CREG;
1043 fra.me.REG[0] = p0;
1044 CREG[0] = clos_fun0;
1045 /* ./syntax//mmbuilder.nit:212 */
1046 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1047 /* ./syntax//mmbuilder.nit:213 */
1048 REGB0 = CALL_abstract_collection___Collection___has(closctx->REG[4])(closctx->REG[4], fra.me.REG[0]);
1049 if (UNTAG_Bool(REGB0)) {
1050 goto label12;
1051 }
1052 /* ./syntax//mmbuilder.nit:214 */
1053 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
1054 REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_mixin(fra.me.REG[1])(fra.me.REG[1]);
1055 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1056 if (UNTAG_Bool(REGB0)) {
1057 /* ./syntax//mmbuilder.nit:215 */
1058 CALL_abstract_collection___SimpleCollection___add(closctx->REG[4])(closctx->REG[4], fra.me.REG[0]);
1059 }
1060 label12: while(0);
1061 stack_frame_head = fra.me.prev;
1062 return;
1063 }
1064 void OC_mmbuilder___MMSrcLocalClass___process_default_constructors_19(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
1065 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1066 val_t REGB0;
1067 val_t REGB1;
1068 val_t REGB2;
1069 fun_t CREG[1];
1070 val_t tmp;
1071 /* ./syntax//mmbuilder.nit:230 */
1072 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1073 fra.me.file = LOCATE_mmbuilder;
1074 fra.me.line = 0;
1075 fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___process_default_constructors;
1076 fra.me.has_broke = 0;
1077 fra.me.REG_size = 2;
1078 fra.me.REG[0] = NIT_NULL;
1079 fra.me.REG[1] = NIT_NULL;
1080 fra.me.closure_ctx = closctx_param;
1081 fra.me.closure_funs = CREG;
1082 fra.me.REG[0] = p0;
1083 CREG[0] = clos_fun0;
1084 /* ./syntax//mmbuilder.nit:232 */
1085 REGB0 = TAG_Bool(closctx->REG[7]==NIT_NULL);
1086 if (UNTAG_Bool(REGB0)) {
1087 } else {
1088 REGB1 = TAG_Bool(closctx->REG[7]==NIT_NULL);
1089 if (UNTAG_Bool(REGB1)) {
1090 REGB1 = TAG_Bool(false);
1091 REGB0 = REGB1;
1092 } else {
1093 REGB1 = CALL_kernel___Object_____eqeq(closctx->REG[7])(closctx->REG[7], NIT_NULL);
1094 REGB0 = REGB1;
1095 }
1096 }
1097 if (UNTAG_Bool(REGB0)) {
1098 REGB0 = TAG_Bool(true);
1099 } else {
1100 fra.me.REG[1] = CALL_abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1101 REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],closctx->REG[7]));
1102 if (UNTAG_Bool(REGB1)) {
1103 } else {
1104 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], closctx->REG[7]);
1105 REGB1 = REGB2;
1106 }
1107 REGB0 = REGB1;
1108 }
1109 if (UNTAG_Bool(REGB0)) {
1110 /* ./syntax//mmbuilder.nit:233 */
1111 CALL_inheritance___MMLocalClass___make_visible_an_inherited_global_property(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
1112 }
1113 stack_frame_head = fra.me.prev;
1114 return;
1115 }
1116 void mmbuilder___MMSrcLocalClass___add_src_local_property(val_t p0, val_t p1, val_t p2){
1117 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
1118 val_t REGB0;
1119 val_t tmp;
1120 static val_t once_value_1; /* Once value */
1121 static val_t once_value_2; /* Once value */
1122 static val_t once_value_3; /* Once value */
1123 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1124 fra.me.file = LOCATE_mmbuilder;
1125 fra.me.line = 247;
1126 fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___add_src_local_property;
1127 fra.me.has_broke = 0;
1128 fra.me.REG_size = 7;
1129 fra.me.REG[0] = NIT_NULL;
1130 fra.me.REG[1] = NIT_NULL;
1131 fra.me.REG[2] = NIT_NULL;
1132 fra.me.REG[3] = NIT_NULL;
1133 fra.me.REG[4] = NIT_NULL;
1134 fra.me.REG[5] = NIT_NULL;
1135 fra.me.REG[6] = NIT_NULL;
1136 fra.me.REG[0] = p0;
1137 fra.me.REG[1] = p1;
1138 fra.me.REG[2] = p2;
1139 /* ./syntax//mmbuilder.nit:251 */
1140 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
1141 /* ./syntax//mmbuilder.nit:253 */
1142 fra.me.REG[4] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
1143 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1144 if (UNTAG_Bool(REGB0)) {
1145 /* ./syntax//mmbuilder.nit:254 */
1146 fra.me.REG[4] = CALL_syntax_base___MMLocalProperty___node(fra.me.REG[2])(fra.me.REG[2]);
1147 REGB0 = TAG_Int(5);
1148 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
1149 if (!once_value_1) {
1150 fra.me.REG[6] = BOX_NativeString("Error: A property ");
1151 REGB0 = TAG_Int(18);
1152 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
1153 once_value_1 = fra.me.REG[6];
1154 register_static_object(&once_value_1);
1155 } else fra.me.REG[6] = once_value_1;
1156 fra.me.REG[6] = fra.me.REG[6];
1157 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1158 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1159 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1160 if (!once_value_2) {
1161 fra.me.REG[6] = BOX_NativeString(" is already defined in class ");
1162 REGB0 = TAG_Int(29);
1163 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
1164 once_value_2 = fra.me.REG[6];
1165 register_static_object(&once_value_2);
1166 } else fra.me.REG[6] = once_value_2;
1167 fra.me.REG[6] = fra.me.REG[6];
1168 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1169 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
1170 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
1171 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1172 if (!once_value_3) {
1173 fra.me.REG[6] = BOX_NativeString(".");
1174 REGB0 = TAG_Int(1);
1175 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
1176 once_value_3 = fra.me.REG[6];
1177 register_static_object(&once_value_3);
1178 } else fra.me.REG[6] = once_value_3;
1179 fra.me.REG[6] = fra.me.REG[6];
1180 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1181 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
1182 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[5]);
1183 /* ./syntax//mmbuilder.nit:255 */
1184 goto label4;
1185 }
1186 /* ./syntax//mmbuilder.nit:257 */
1187 fra.me.REG[5] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
1188 CALL_abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[2]);
1189 /* ./syntax//mmbuilder.nit:260 */
1190 REGB0 = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
1191 if (UNTAG_Bool(REGB0)) {
1192 /* ./syntax//mmbuilder.nit:261 */
1193 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
1194 /* ./syntax//mmbuilder.nit:262 */
1195 CALL_inheritance___MMLocalProperty___inherit_global(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1196 }
1197 /* ./syntax//mmbuilder.nit:265 */
1198 REGB0 = CALL_abstractmetamodel___MMLocalProperty___is_global_set(fra.me.REG[2])(fra.me.REG[2]);
1199 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1200 if (UNTAG_Bool(REGB0)) {
1201 /* ./syntax//mmbuilder.nit:266 */
1202 CALL_abstractmetamodel___MMLocalProperty___new_global(fra.me.REG[2])(fra.me.REG[2]);
1203 /* ./syntax//mmbuilder.nit:267 */
1204 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
1205 REGB0 = CALL_syntax_base___MMLocalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
1206 CALL_abstractmetamodel___MMGlobalProperty___is_init__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
1207 }
1208 label4: while(0);
1209 stack_frame_head = fra.me.prev;
1210 return;
1211 }
1212 void mmbuilder___MMLocalProperty___accept_property_visitor(val_t p0, val_t p1){
1213 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1214 val_t tmp;
1215 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1216 fra.me.file = LOCATE_mmbuilder;
1217 fra.me.line = 273;
1218 fra.me.meth = LOCATE_mmbuilder___MMLocalProperty___accept_property_visitor;
1219 fra.me.has_broke = 0;
1220 fra.me.REG_size = 2;
1221 fra.me.REG[0] = NIT_NULL;
1222 fra.me.REG[1] = NIT_NULL;
1223 fra.me.REG[0] = p0;
1224 fra.me.REG[1] = p1;
1225 stack_frame_head = fra.me.prev;
1226 return;
1227 }
1228 val_t mmbuilder___MMImplicitInit___super_init(val_t p0){
1229 struct {struct stack_frame_t me;} fra;
1230 val_t tmp;
1231 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1232 fra.me.file = LOCATE_mmbuilder;
1233 fra.me.line = 279;
1234 fra.me.meth = LOCATE_mmbuilder___MMImplicitInit___super_init;
1235 fra.me.has_broke = 0;
1236 fra.me.REG_size = 1;
1237 fra.me.REG[0] = NIT_NULL;
1238 fra.me.REG[0] = p0;
1239 /* ./syntax//mmbuilder.nit:279 */
1240 fra.me.REG[0] = ATTR_mmbuilder___MMImplicitInit____super_init(fra.me.REG[0]);
1241 stack_frame_head = fra.me.prev;
1242 return fra.me.REG[0];
1243 }
1244 void mmbuilder___MMImplicitInit___accept_property_visitor(val_t p0, val_t p1){
1245 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
1246 val_t REGB0;
1247 val_t REGB1;
1248 val_t REGB2;
1249 val_t REGB3;
1250 val_t tmp;
1251 static val_t once_value_1; /* Once value */
1252 static val_t once_value_2; /* Once value */
1253 static val_t once_value_3; /* Once value */
1254 static val_t once_value_4; /* Once value */
1255 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1256 fra.me.file = LOCATE_mmbuilder;
1257 fra.me.line = 280;
1258 fra.me.meth = LOCATE_mmbuilder___MMImplicitInit___accept_property_visitor;
1259 fra.me.has_broke = 0;
1260 fra.me.REG_size = 8;
1261 fra.me.REG[0] = NIT_NULL;
1262 fra.me.REG[1] = NIT_NULL;
1263 fra.me.REG[2] = NIT_NULL;
1264 fra.me.REG[3] = NIT_NULL;
1265 fra.me.REG[4] = NIT_NULL;
1266 fra.me.REG[5] = NIT_NULL;
1267 fra.me.REG[6] = NIT_NULL;
1268 fra.me.REG[7] = NIT_NULL;
1269 fra.me.REG[0] = p0;
1270 fra.me.REG[1] = p1;
1271 /* ./syntax//mmbuilder.nit:282 */
1272 fra.me.REG[2] = NIT_NULL;
1273 /* ./syntax//mmbuilder.nit:283 */
1274 fra.me.REG[3] = CALL_syntax_base___MMImplicitInit___super_inits(fra.me.REG[0])(fra.me.REG[0]);
1275 /* ./../lib/standard//collection//array.nit:234 */
1276 REGB0 = TAG_Int(0);
1277 /* ./../lib/standard//collection//array.nit:235 */
1278 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1279 if (UNTAG_Bool(REGB1)) {
1280 } else {
1281 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
1282 }
1283 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
1284 /* ./../lib/standard//collection//array.nit:236 */
1285 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[3]);
1286 /* ./../lib/standard//collection//array.nit:237 */
1287 while(1) {
1288 /* ./../lib/standard//collection//array.nit:23 */
1289 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1290 if (UNTAG_Bool(REGB1)) {
1291 } else {
1292 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
1293 }
1294 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
1295 /* ./../lib/standard//kernel.nit:212 */
1296 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1297 /* ./../lib/standard//collection//array.nit:237 */
1298 if (UNTAG_Bool(REGB1)) {
1299 /* ./../lib/standard//collection//array.nit:238 */
1300 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1301 if (UNTAG_Bool(REGB1)) {
1302 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
1303 }
1304 /* ./../lib/standard//collection//array.nit:654 */
1305 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
1306 /* ./syntax//mmbuilder.nit:284 */
1307 fra.me.REG[6] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[5])(fra.me.REG[5]);
1308 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
1309 if (UNTAG_Bool(REGB1)) {
1310 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 284);
1311 }
1312 REGB1 = CALL_static_type___MMSignature___arity(fra.me.REG[6])(fra.me.REG[6]);
1313 REGB2 = TAG_Int(0);
1314 /* ./../lib/standard//kernel.nit:214 */
1315 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
1316 /* ./syntax//mmbuilder.nit:284 */
1317 if (UNTAG_Bool(REGB2)) {
1318 /* ./syntax//mmbuilder.nit:285 */
1319 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1320 if (UNTAG_Bool(REGB2)) {
1321 } else {
1322 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1323 if (UNTAG_Bool(REGB1)) {
1324 REGB1 = TAG_Bool(false);
1325 REGB2 = REGB1;
1326 } else {
1327 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1328 REGB2 = REGB1;
1329 }
1330 }
1331 if (UNTAG_Bool(REGB2)) {
1332 /* ./syntax//mmbuilder.nit:286 */
1333 fra.me.REG[2] = fra.me.REG[5];
1334 } else {
1335 /* ./syntax//mmbuilder.nit:288 */
1336 REGB2 = TAG_Int(7);
1337 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB2);
1338 if (!once_value_1) {
1339 fra.me.REG[7] = BOX_NativeString("Error: explicit constructor needed in ");
1340 REGB2 = TAG_Int(38);
1341 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
1342 once_value_1 = fra.me.REG[7];
1343 register_static_object(&once_value_1);
1344 } else fra.me.REG[7] = once_value_1;
1345 fra.me.REG[7] = fra.me.REG[7];
1346 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
1347 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1348 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
1349 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
1350 if (!once_value_2) {
1351 fra.me.REG[7] = BOX_NativeString(" since both super-constructor ");
1352 REGB2 = TAG_Int(30);
1353 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
1354 once_value_2 = fra.me.REG[7];
1355 register_static_object(&once_value_2);
1356 } else fra.me.REG[7] = once_value_2;
1357 fra.me.REG[7] = fra.me.REG[7];
1358 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
1359 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1360 if (UNTAG_Bool(REGB2)) {
1361 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 288);
1362 }
1363 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[2])(fra.me.REG[2]);
1364 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
1365 if (!once_value_3) {
1366 fra.me.REG[7] = BOX_NativeString(" and ");
1367 REGB2 = TAG_Int(5);
1368 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
1369 once_value_3 = fra.me.REG[7];
1370 register_static_object(&once_value_3);
1371 } else fra.me.REG[7] = once_value_3;
1372 fra.me.REG[7] = fra.me.REG[7];
1373 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
1374 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[5])(fra.me.REG[5]);
1375 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
1376 if (!once_value_4) {
1377 fra.me.REG[5] = BOX_NativeString(" have paramters");
1378 REGB2 = TAG_Int(15);
1379 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
1380 once_value_4 = fra.me.REG[5];
1381 register_static_object(&once_value_4);
1382 } else fra.me.REG[5] = once_value_4;
1383 fra.me.REG[5] = fra.me.REG[5];
1384 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
1385 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
1386 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[6]);
1387 /* ./syntax//mmbuilder.nit:289 */
1388 goto label5;
1389 }
1390 }
1391 /* ./../lib/standard//collection//array.nit:239 */
1392 REGB2 = TAG_Int(1);
1393 /* ./../lib/standard//kernel.nit:215 */
1394 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1395 /* ./../lib/standard//collection//array.nit:239 */
1396 REGB0 = REGB2;
1397 } else {
1398 /* ./../lib/standard//collection//array.nit:237 */
1399 goto label6;
1400 }
1401 }
1402 label6: while(0);
1403 /* ./syntax//mmbuilder.nit:293 */
1404 ATTR_mmbuilder___MMImplicitInit____super_init(fra.me.REG[0]) = fra.me.REG[2];
1405 /* ./syntax//mmbuilder.nit:295 */
1406 fra.me.REG[1] = NEW_Array_array___Array___init();
1407 /* ./syntax//mmbuilder.nit:296 */
1408 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1409 if (UNTAG_Bool(REGB0)) {
1410 } else {
1411 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1412 if (UNTAG_Bool(REGB2)) {
1413 REGB2 = TAG_Bool(false);
1414 REGB0 = REGB2;
1415 } else {
1416 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1417 REGB0 = REGB2;
1418 }
1419 }
1420 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1421 if (UNTAG_Bool(REGB0)) {
1422 /* ./syntax//mmbuilder.nit:297 */
1423 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1424 if (UNTAG_Bool(REGB0)) {
1425 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 297);
1426 }
1427 fra.me.REG[2] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
1428 /* ./syntax//mmbuilder.nit:298 */
1429 REGB0 = TAG_Int(0);
1430 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1431 if (UNTAG_Bool(REGB2)) {
1432 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 298);
1433 }
1434 REGB2 = CALL_static_type___MMSignature___arity(fra.me.REG[2])(fra.me.REG[2]);
1435 /* ./../lib/standard//kernel.nit:332 */
1436 while(1) {
1437 /* ./../lib/standard//kernel.nit:212 */
1438 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
1439 /* ./../lib/standard//kernel.nit:332 */
1440 if (UNTAG_Bool(REGB1)) {
1441 /* ./syntax//mmbuilder.nit:298 */
1442 REGB1 = REGB0;
1443 /* ./syntax//mmbuilder.nit:299 */
1444 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1445 if (UNTAG_Bool(REGB3)) {
1446 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 299);
1447 }
1448 fra.me.REG[4] = CALL_static_type___MMSignature_____bra(fra.me.REG[2])(fra.me.REG[2], REGB1);
1449 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
1450 /* ./../lib/standard//kernel.nit:334 */
1451 REGB1 = TAG_Int(1);
1452 /* ./../lib/standard//kernel.nit:215 */
1453 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1454 /* ./../lib/standard//kernel.nit:334 */
1455 REGB0 = REGB1;
1456 } else {
1457 /* ./../lib/standard//kernel.nit:332 */
1458 goto label7;
1459 }
1460 }
1461 label7: while(0);
1462 }
1463 /* ./syntax//mmbuilder.nit:302 */
1464 fra.me.REG[2] = CALL_syntax_base___MMImplicitInit___unassigned_attributes(fra.me.REG[0])(fra.me.REG[0]);
1465 /* ./../lib/standard//collection//array.nit:234 */
1466 REGB0 = TAG_Int(0);
1467 /* ./../lib/standard//collection//array.nit:235 */
1468 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1469 if (UNTAG_Bool(REGB2)) {
1470 } else {
1471 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
1472 }
1473 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
1474 /* ./../lib/standard//collection//array.nit:236 */
1475 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[2]);
1476 /* ./../lib/standard//collection//array.nit:237 */
1477 while(1) {
1478 /* ./../lib/standard//collection//array.nit:23 */
1479 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1480 if (UNTAG_Bool(REGB2)) {
1481 } else {
1482 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
1483 }
1484 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
1485 /* ./../lib/standard//kernel.nit:212 */
1486 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
1487 /* ./../lib/standard//collection//array.nit:237 */
1488 if (UNTAG_Bool(REGB2)) {
1489 /* ./../lib/standard//collection//array.nit:238 */
1490 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1491 if (UNTAG_Bool(REGB2)) {
1492 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
1493 }
1494 /* ./../lib/standard//collection//array.nit:654 */
1495 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
1496 /* ./syntax//mmbuilder.nit:303 */
1497 fra.me.REG[3] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[3])(fra.me.REG[3]);
1498 /* ./syntax//mmbuilder.nit:304 */
1499 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1500 if (UNTAG_Bool(REGB2)) {
1501 } else {
1502 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1503 if (UNTAG_Bool(REGB1)) {
1504 REGB1 = TAG_Bool(false);
1505 REGB2 = REGB1;
1506 } else {
1507 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1508 REGB2 = REGB1;
1509 }
1510 }
1511 if (UNTAG_Bool(REGB2)) {
1512 goto label5;
1513 }
1514 /* ./syntax//mmbuilder.nit:305 */
1515 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1516 if (UNTAG_Bool(REGB2)) {
1517 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 305);
1518 }
1519 fra.me.REG[3] = CALL_static_type___MMSignature___return_type(fra.me.REG[3])(fra.me.REG[3]);
1520 REGB2 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_MMType, ID_MMType)) /*cast MMType*/;
1521 if (UNTAG_Bool(REGB2)) {
1522 } else {
1523 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 305);
1524 }
1525 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1526 /* ./../lib/standard//collection//array.nit:239 */
1527 REGB2 = TAG_Int(1);
1528 /* ./../lib/standard//kernel.nit:215 */
1529 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1530 /* ./../lib/standard//collection//array.nit:239 */
1531 REGB0 = REGB2;
1532 } else {
1533 /* ./../lib/standard//collection//array.nit:237 */
1534 goto label8;
1535 }
1536 }
1537 label8: while(0);
1538 /* ./syntax//mmbuilder.nit:307 */
1539 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1540 fra.me.REG[4] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
1541 fra.me.REG[4] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[1], NIT_NULL, fra.me.REG[4]);
1542 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
1543 label5: while(0);
1544 stack_frame_head = fra.me.prev;
1545 return;
1546 }
1547 val_t mmbuilder___MMSrcAncestor___local_class(val_t p0){
1548 struct {struct stack_frame_t me;} fra;
1549 val_t REGB0;
1550 val_t tmp;
1551 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1552 fra.me.file = LOCATE_mmbuilder;
1553 fra.me.line = 315;
1554 fra.me.meth = LOCATE_mmbuilder___MMSrcAncestor___local_class;
1555 fra.me.has_broke = 0;
1556 fra.me.REG_size = 1;
1557 fra.me.REG[0] = NIT_NULL;
1558 fra.me.REG[0] = p0;
1559 /* ./syntax//mmbuilder.nit:315 */
1560 REGB0 = TAG_Bool(ATTR_mmbuilder___MMSrcAncestor____local_class(fra.me.REG[0])!=NIT_NULL);
1561 if (UNTAG_Bool(REGB0)) {
1562 } else {
1563 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_mmbuilder, 315);
1564 }
1565 fra.me.REG[0] = ATTR_mmbuilder___MMSrcAncestor____local_class(fra.me.REG[0]);
1566 stack_frame_head = fra.me.prev;
1567 return fra.me.REG[0];
1568 }
1569 void mmbuilder___MMSrcAncestor___init(val_t p0, val_t p1, int* init_table){
1570 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMSrcAncestor].i;
1571 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1572 val_t tmp;
1573 if (init_table[itpos1]) return;
1574 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1575 fra.me.file = LOCATE_mmbuilder;
1576 fra.me.line = 317;
1577 fra.me.meth = LOCATE_mmbuilder___MMSrcAncestor___init;
1578 fra.me.has_broke = 0;
1579 fra.me.REG_size = 3;
1580 fra.me.REG[0] = NIT_NULL;
1581 fra.me.REG[1] = NIT_NULL;
1582 fra.me.REG[2] = NIT_NULL;
1583 fra.me.REG[0] = p0;
1584 fra.me.REG[1] = p1;
1585 /* ./syntax//mmbuilder.nit:317 */
1586 fra.me.REG[2] = fra.me.REG[0];
1587 CALL_static_type___MMAncestor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
1588 /* ./syntax//mmbuilder.nit:319 */
1589 ATTR_mmbuilder___MMSrcAncestor____local_class(fra.me.REG[2]) = fra.me.REG[1];
1590 stack_frame_head = fra.me.prev;
1591 init_table[itpos1] = 1;
1592 return;
1593 }
1594 val_t mmbuilder___ClassBuilderVisitor___local_class_arity(val_t p0){
1595 struct {struct stack_frame_t me;} fra;
1596 val_t REGB0;
1597 val_t tmp;
1598 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1599 fra.me.file = LOCATE_mmbuilder;
1600 fra.me.line = 330;
1601 fra.me.meth = LOCATE_mmbuilder___ClassBuilderVisitor___local_class_arity;
1602 fra.me.has_broke = 0;
1603 fra.me.REG_size = 1;
1604 fra.me.REG[0] = NIT_NULL;
1605 fra.me.REG[0] = p0;
1606 /* ./syntax//mmbuilder.nit:330 */
1607 REGB0 = TAG_Bool(ATTR_mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0])!=NIT_NULL);
1608 if (UNTAG_Bool(REGB0)) {
1609 } else {
1610 nit_abort("Uninitialized attribute %s", "_local_class_arity", LOCATE_mmbuilder, 330);
1611 }
1612 REGB0 = ATTR_mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0]);
1613 stack_frame_head = fra.me.prev;
1614 return REGB0;
1615 }
1616 void mmbuilder___ClassBuilderVisitor___local_class_arity__eq(val_t p0, val_t p1){
1617 struct {struct stack_frame_t me;} fra;
1618 val_t REGB0;
1619 val_t tmp;
1620 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1621 fra.me.file = LOCATE_mmbuilder;
1622 fra.me.line = 330;
1623 fra.me.meth = LOCATE_mmbuilder___ClassBuilderVisitor___local_class_arity__eq;
1624 fra.me.has_broke = 0;
1625 fra.me.REG_size = 1;
1626 fra.me.REG[0] = NIT_NULL;
1627 fra.me.REG[0] = p0;
1628 REGB0 = p1;
1629 /* ./syntax//mmbuilder.nit:330 */
1630 ATTR_mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0]) = REGB0;
1631 stack_frame_head = fra.me.prev;
1632 return;
1633 }
1634 val_t mmbuilder___ClassBuilderVisitor___formals(val_t p0){
1635 struct {struct stack_frame_t me;} fra;
1636 val_t tmp;
1637 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1638 fra.me.file = LOCATE_mmbuilder;
1639 fra.me.line = 333;
1640 fra.me.meth = LOCATE_mmbuilder___ClassBuilderVisitor___formals;
1641 fra.me.has_broke = 0;
1642 fra.me.REG_size = 1;
1643 fra.me.REG[0] = NIT_NULL;
1644 fra.me.REG[0] = p0;
1645 /* ./syntax//mmbuilder.nit:333 */
1646 fra.me.REG[0] = ATTR_mmbuilder___ClassBuilderVisitor____formals(fra.me.REG[0]);
1647 stack_frame_head = fra.me.prev;
1648 return fra.me.REG[0];
1649 }
1650 void mmbuilder___ClassBuilderVisitor___formals__eq(val_t p0, val_t p1){
1651 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1652 val_t tmp;
1653 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1654 fra.me.file = LOCATE_mmbuilder;
1655 fra.me.line = 333;
1656 fra.me.meth = LOCATE_mmbuilder___ClassBuilderVisitor___formals__eq;
1657 fra.me.has_broke = 0;
1658 fra.me.REG_size = 2;
1659 fra.me.REG[0] = NIT_NULL;
1660 fra.me.REG[1] = NIT_NULL;
1661 fra.me.REG[0] = p0;
1662 fra.me.REG[1] = p1;
1663 /* ./syntax//mmbuilder.nit:333 */
1664 ATTR_mmbuilder___ClassBuilderVisitor____formals(fra.me.REG[0]) = fra.me.REG[1];
1665 stack_frame_head = fra.me.prev;
1666 return;
1667 }
1668 void mmbuilder___ClassBuilderVisitor___visit(val_t p0, val_t p1){
1669 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1670 val_t REGB0;
1671 val_t tmp;
1672 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1673 fra.me.file = LOCATE_mmbuilder;
1674 fra.me.line = 336;
1675 fra.me.meth = LOCATE_mmbuilder___ClassBuilderVisitor___visit;
1676 fra.me.has_broke = 0;
1677 fra.me.REG_size = 2;
1678 fra.me.REG[0] = NIT_NULL;
1679 fra.me.REG[1] = NIT_NULL;
1680 fra.me.REG[0] = p0;
1681 fra.me.REG[1] = p1;
1682 /* ./syntax//mmbuilder.nit:336 */
1683 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1684 if (UNTAG_Bool(REGB0)) {
1685 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 336);
1686 }
1687 CALL_mmbuilder___ANode___accept_class_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1688 stack_frame_head = fra.me.prev;
1689 return;
1690 }
1691 void mmbuilder___ClassBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
1692 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ClassBuilderVisitor].i;
1693 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1694 val_t tmp;
1695 if (init_table[itpos2]) return;
1696 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1697 fra.me.file = LOCATE_mmbuilder;
1698 fra.me.line = 337;
1699 fra.me.meth = LOCATE_mmbuilder___ClassBuilderVisitor___init;
1700 fra.me.has_broke = 0;
1701 fra.me.REG_size = 3;
1702 fra.me.REG[0] = NIT_NULL;
1703 fra.me.REG[1] = NIT_NULL;
1704 fra.me.REG[2] = NIT_NULL;
1705 fra.me.REG[0] = p0;
1706 fra.me.REG[1] = p1;
1707 fra.me.REG[2] = p2;
1708 /* ./syntax//mmbuilder.nit:337 */
1709 CALL_syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1710 stack_frame_head = fra.me.prev;
1711 init_table[itpos2] = 1;
1712 return;
1713 }
1714 void mmbuilder___ClassSpecializationBuilderVisitor___visit(val_t p0, val_t p1){
1715 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1716 val_t REGB0;
1717 val_t tmp;
1718 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1719 fra.me.file = LOCATE_mmbuilder;
1720 fra.me.line = 344;
1721 fra.me.meth = LOCATE_mmbuilder___ClassSpecializationBuilderVisitor___visit;
1722 fra.me.has_broke = 0;
1723 fra.me.REG_size = 2;
1724 fra.me.REG[0] = NIT_NULL;
1725 fra.me.REG[1] = NIT_NULL;
1726 fra.me.REG[0] = p0;
1727 fra.me.REG[1] = p1;
1728 /* ./syntax//mmbuilder.nit:344 */
1729 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1730 if (UNTAG_Bool(REGB0)) {
1731 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 344);
1732 }
1733 CALL_mmbuilder___ANode___accept_class_specialization_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1734 stack_frame_head = fra.me.prev;
1735 return;
1736 }
1737 void mmbuilder___ClassSpecializationBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
1738 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ClassSpecializationBuilderVisitor].i;
1739 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1740 val_t tmp;
1741 if (init_table[itpos3]) return;
1742 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1743 fra.me.file = LOCATE_mmbuilder;
1744 fra.me.line = 345;
1745 fra.me.meth = LOCATE_mmbuilder___ClassSpecializationBuilderVisitor___init;
1746 fra.me.has_broke = 0;
1747 fra.me.REG_size = 3;
1748 fra.me.REG[0] = NIT_NULL;
1749 fra.me.REG[1] = NIT_NULL;
1750 fra.me.REG[2] = NIT_NULL;
1751 fra.me.REG[0] = p0;
1752 fra.me.REG[1] = p1;
1753 fra.me.REG[2] = p2;
1754 /* ./syntax//mmbuilder.nit:345 */
1755 CALL_syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1756 stack_frame_head = fra.me.prev;
1757 init_table[itpos3] = 1;
1758 return;
1759 }
1760 void mmbuilder___ClassAncestorBuilder___visit(val_t p0, val_t p1){
1761 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1762 val_t REGB0;
1763 val_t tmp;
1764 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1765 fra.me.file = LOCATE_mmbuilder;
1766 fra.me.line = 352;
1767 fra.me.meth = LOCATE_mmbuilder___ClassAncestorBuilder___visit;
1768 fra.me.has_broke = 0;
1769 fra.me.REG_size = 2;
1770 fra.me.REG[0] = NIT_NULL;
1771 fra.me.REG[1] = NIT_NULL;
1772 fra.me.REG[0] = p0;
1773 fra.me.REG[1] = p1;
1774 /* ./syntax//mmbuilder.nit:352 */
1775 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1776 if (UNTAG_Bool(REGB0)) {
1777 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 352);
1778 }
1779 CALL_mmbuilder___ANode___accept_class_ancestor_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1780 stack_frame_head = fra.me.prev;
1781 return;
1782 }
1783 void mmbuilder___ClassAncestorBuilder___init(val_t p0, val_t p1, val_t p2, int* init_table){
1784 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ClassAncestorBuilder].i;
1785 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1786 val_t tmp;
1787 if (init_table[itpos4]) return;
1788 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1789 fra.me.file = LOCATE_mmbuilder;
1790 fra.me.line = 353;
1791 fra.me.meth = LOCATE_mmbuilder___ClassAncestorBuilder___init;
1792 fra.me.has_broke = 0;
1793 fra.me.REG_size = 3;
1794 fra.me.REG[0] = NIT_NULL;
1795 fra.me.REG[1] = NIT_NULL;
1796 fra.me.REG[2] = NIT_NULL;
1797 fra.me.REG[0] = p0;
1798 fra.me.REG[1] = p1;
1799 fra.me.REG[2] = p2;
1800 /* ./syntax//mmbuilder.nit:353 */
1801 CALL_syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1802 stack_frame_head = fra.me.prev;
1803 init_table[itpos4] = 1;
1804 return;
1805 }
1806 void mmbuilder___ClassVerifierVisitor___visit(val_t p0, val_t p1){
1807 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1808 val_t REGB0;
1809 val_t tmp;
1810 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1811 fra.me.file = LOCATE_mmbuilder;
1812 fra.me.line = 360;
1813 fra.me.meth = LOCATE_mmbuilder___ClassVerifierVisitor___visit;
1814 fra.me.has_broke = 0;
1815 fra.me.REG_size = 2;
1816 fra.me.REG[0] = NIT_NULL;
1817 fra.me.REG[1] = NIT_NULL;
1818 fra.me.REG[0] = p0;
1819 fra.me.REG[1] = p1;
1820 /* ./syntax//mmbuilder.nit:360 */
1821 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1822 if (UNTAG_Bool(REGB0)) {
1823 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 360);
1824 }
1825 CALL_mmbuilder___ANode___accept_class_verifier(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1826 stack_frame_head = fra.me.prev;
1827 return;
1828 }
1829 void mmbuilder___ClassVerifierVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
1830 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ClassVerifierVisitor].i;
1831 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1832 val_t tmp;
1833 if (init_table[itpos5]) return;
1834 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1835 fra.me.file = LOCATE_mmbuilder;
1836 fra.me.line = 361;
1837 fra.me.meth = LOCATE_mmbuilder___ClassVerifierVisitor___init;
1838 fra.me.has_broke = 0;
1839 fra.me.REG_size = 3;
1840 fra.me.REG[0] = NIT_NULL;
1841 fra.me.REG[1] = NIT_NULL;
1842 fra.me.REG[2] = NIT_NULL;
1843 fra.me.REG[0] = p0;
1844 fra.me.REG[1] = p1;
1845 fra.me.REG[2] = p2;
1846 /* ./syntax//mmbuilder.nit:361 */
1847 CALL_syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1848 stack_frame_head = fra.me.prev;
1849 init_table[itpos5] = 1;
1850 return;
1851 }
1852 void mmbuilder___PropertyBuilderVisitor___visit(val_t p0, val_t p1){
1853 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1854 val_t REGB0;
1855 val_t tmp;
1856 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1857 fra.me.file = LOCATE_mmbuilder;
1858 fra.me.line = 371;
1859 fra.me.meth = LOCATE_mmbuilder___PropertyBuilderVisitor___visit;
1860 fra.me.has_broke = 0;
1861 fra.me.REG_size = 2;
1862 fra.me.REG[0] = NIT_NULL;
1863 fra.me.REG[1] = NIT_NULL;
1864 fra.me.REG[0] = p0;
1865 fra.me.REG[1] = p1;
1866 /* ./syntax//mmbuilder.nit:371 */
1867 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1868 if (UNTAG_Bool(REGB0)) {
1869 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 371);
1870 }
1871 CALL_mmbuilder___ANode___accept_property_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1872 stack_frame_head = fra.me.prev;
1873 return;
1874 }
1875 void mmbuilder___PropertyBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
1876 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_PropertyBuilderVisitor].i;
1877 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1878 val_t tmp;
1879 if (init_table[itpos6]) return;
1880 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1881 fra.me.file = LOCATE_mmbuilder;
1882 fra.me.line = 372;
1883 fra.me.meth = LOCATE_mmbuilder___PropertyBuilderVisitor___init;
1884 fra.me.has_broke = 0;
1885 fra.me.REG_size = 3;
1886 fra.me.REG[0] = NIT_NULL;
1887 fra.me.REG[1] = NIT_NULL;
1888 fra.me.REG[2] = NIT_NULL;
1889 fra.me.REG[0] = p0;
1890 fra.me.REG[1] = p1;
1891 fra.me.REG[2] = p2;
1892 /* ./syntax//mmbuilder.nit:372 */
1893 CALL_syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1894 stack_frame_head = fra.me.prev;
1895 init_table[itpos6] = 1;
1896 return;
1897 }
1898 val_t mmbuilder___PropertyVerifierVisitor___signature_builder(val_t p0){
1899 struct {struct stack_frame_t me;} fra;
1900 val_t REGB0;
1901 val_t tmp;
1902 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1903 fra.me.file = LOCATE_mmbuilder;
1904 fra.me.line = 380;
1905 fra.me.meth = LOCATE_mmbuilder___PropertyVerifierVisitor___signature_builder;
1906 fra.me.has_broke = 0;
1907 fra.me.REG_size = 1;
1908 fra.me.REG[0] = NIT_NULL;
1909 fra.me.REG[0] = p0;
1910 /* ./syntax//mmbuilder.nit:380 */
1911 REGB0 = TAG_Bool(ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0])!=NIT_NULL);
1912 if (UNTAG_Bool(REGB0)) {
1913 } else {
1914 nit_abort("Uninitialized attribute %s", "_signature_builder", LOCATE_mmbuilder, 380);
1915 }
1916 fra.me.REG[0] = ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0]);
1917 stack_frame_head = fra.me.prev;
1918 return fra.me.REG[0];
1919 }
1920 void mmbuilder___PropertyVerifierVisitor___signature_builder__eq(val_t p0, val_t p1){
1921 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1922 val_t tmp;
1923 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1924 fra.me.file = LOCATE_mmbuilder;
1925 fra.me.line = 380;
1926 fra.me.meth = LOCATE_mmbuilder___PropertyVerifierVisitor___signature_builder__eq;
1927 fra.me.has_broke = 0;
1928 fra.me.REG_size = 2;
1929 fra.me.REG[0] = NIT_NULL;
1930 fra.me.REG[1] = NIT_NULL;
1931 fra.me.REG[0] = p0;
1932 fra.me.REG[1] = p1;
1933 /* ./syntax//mmbuilder.nit:380 */
1934 ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0]) = fra.me.REG[1];
1935 stack_frame_head = fra.me.prev;
1936 return;
1937 }
1938 void mmbuilder___PropertyVerifierVisitor___visit(val_t p0, val_t p1){
1939 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1940 val_t REGB0;
1941 val_t tmp;
1942 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1943 fra.me.file = LOCATE_mmbuilder;
1944 fra.me.line = 383;
1945 fra.me.meth = LOCATE_mmbuilder___PropertyVerifierVisitor___visit;
1946 fra.me.has_broke = 0;
1947 fra.me.REG_size = 2;
1948 fra.me.REG[0] = NIT_NULL;
1949 fra.me.REG[1] = NIT_NULL;
1950 fra.me.REG[0] = p0;
1951 fra.me.REG[1] = p1;
1952 /* ./syntax//mmbuilder.nit:383 */
1953 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1954 if (UNTAG_Bool(REGB0)) {
1955 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 383);
1956 }
1957 CALL_mmbuilder___ANode___accept_property_verifier(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1958 stack_frame_head = fra.me.prev;
1959 return;
1960 }
1961 void mmbuilder___PropertyVerifierVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
1962 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_PropertyVerifierVisitor].i;
1963 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1964 val_t tmp;
1965 if (init_table[itpos7]) return;
1966 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1967 fra.me.file = LOCATE_mmbuilder;
1968 fra.me.line = 385;
1969 fra.me.meth = LOCATE_mmbuilder___PropertyVerifierVisitor___init;
1970 fra.me.has_broke = 0;
1971 fra.me.REG_size = 4;
1972 fra.me.REG[0] = NIT_NULL;
1973 fra.me.REG[1] = NIT_NULL;
1974 fra.me.REG[2] = NIT_NULL;
1975 fra.me.REG[3] = NIT_NULL;
1976 fra.me.REG[0] = p0;
1977 fra.me.REG[1] = p1;
1978 fra.me.REG[2] = p2;
1979 /* ./syntax//mmbuilder.nit:385 */
1980 fra.me.REG[3] = fra.me.REG[0];
1981 /* ./syntax//mmbuilder.nit:387 */
1982 CALL_syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1983 /* ./syntax//mmbuilder.nit:388 */
1984 fra.me.REG[2] = NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init();
1985 ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[3]) = fra.me.REG[2];
1986 stack_frame_head = fra.me.prev;
1987 init_table[itpos7] = 1;
1988 return;
1989 }
1990 val_t mmbuilder___SignatureBuilder___params(val_t p0){
1991 struct {struct stack_frame_t me;} fra;
1992 val_t REGB0;
1993 val_t tmp;
1994 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1995 fra.me.file = LOCATE_mmbuilder;
1996 fra.me.line = 394;
1997 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___params;
1998 fra.me.has_broke = 0;
1999 fra.me.REG_size = 1;
2000 fra.me.REG[0] = NIT_NULL;
2001 fra.me.REG[0] = p0;
2002 /* ./syntax//mmbuilder.nit:394 */
2003 REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____params(fra.me.REG[0])!=NIT_NULL);
2004 if (UNTAG_Bool(REGB0)) {
2005 } else {
2006 nit_abort("Uninitialized attribute %s", "_params", LOCATE_mmbuilder, 394);
2007 }
2008 fra.me.REG[0] = ATTR_mmbuilder___SignatureBuilder____params(fra.me.REG[0]);
2009 stack_frame_head = fra.me.prev;
2010 return fra.me.REG[0];
2011 }
2012 void mmbuilder___SignatureBuilder___params__eq(val_t p0, val_t p1){
2013 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2014 val_t tmp;
2015 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2016 fra.me.file = LOCATE_mmbuilder;
2017 fra.me.line = 394;
2018 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___params__eq;
2019 fra.me.has_broke = 0;
2020 fra.me.REG_size = 2;
2021 fra.me.REG[0] = NIT_NULL;
2022 fra.me.REG[1] = NIT_NULL;
2023 fra.me.REG[0] = p0;
2024 fra.me.REG[1] = p1;
2025 /* ./syntax//mmbuilder.nit:394 */
2026 ATTR_mmbuilder___SignatureBuilder____params(fra.me.REG[0]) = fra.me.REG[1];
2027 stack_frame_head = fra.me.prev;
2028 return;
2029 }
2030 val_t mmbuilder___SignatureBuilder___untyped_params(val_t p0){
2031 struct {struct stack_frame_t me;} fra;
2032 val_t REGB0;
2033 val_t tmp;
2034 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2035 fra.me.file = LOCATE_mmbuilder;
2036 fra.me.line = 397;
2037 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___untyped_params;
2038 fra.me.has_broke = 0;
2039 fra.me.REG_size = 1;
2040 fra.me.REG[0] = NIT_NULL;
2041 fra.me.REG[0] = p0;
2042 /* ./syntax//mmbuilder.nit:397 */
2043 REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0])!=NIT_NULL);
2044 if (UNTAG_Bool(REGB0)) {
2045 } else {
2046 nit_abort("Uninitialized attribute %s", "_untyped_params", LOCATE_mmbuilder, 397);
2047 }
2048 fra.me.REG[0] = ATTR_mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0]);
2049 stack_frame_head = fra.me.prev;
2050 return fra.me.REG[0];
2051 }
2052 void mmbuilder___SignatureBuilder___untyped_params__eq(val_t p0, val_t p1){
2053 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2054 val_t tmp;
2055 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2056 fra.me.file = LOCATE_mmbuilder;
2057 fra.me.line = 397;
2058 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___untyped_params__eq;
2059 fra.me.has_broke = 0;
2060 fra.me.REG_size = 2;
2061 fra.me.REG[0] = NIT_NULL;
2062 fra.me.REG[1] = NIT_NULL;
2063 fra.me.REG[0] = p0;
2064 fra.me.REG[1] = p1;
2065 /* ./syntax//mmbuilder.nit:397 */
2066 ATTR_mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0]) = fra.me.REG[1];
2067 stack_frame_head = fra.me.prev;
2068 return;
2069 }
2070 val_t mmbuilder___SignatureBuilder___vararg_rank(val_t p0){
2071 struct {struct stack_frame_t me;} fra;
2072 val_t REGB0;
2073 val_t tmp;
2074 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2075 fra.me.file = LOCATE_mmbuilder;
2076 fra.me.line = 400;
2077 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___vararg_rank;
2078 fra.me.has_broke = 0;
2079 fra.me.REG_size = 1;
2080 fra.me.REG[0] = NIT_NULL;
2081 fra.me.REG[0] = p0;
2082 /* ./syntax//mmbuilder.nit:400 */
2083 REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0])!=NIT_NULL);
2084 if (UNTAG_Bool(REGB0)) {
2085 } else {
2086 nit_abort("Uninitialized attribute %s", "_vararg_rank", LOCATE_mmbuilder, 400);
2087 }
2088 REGB0 = ATTR_mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]);
2089 stack_frame_head = fra.me.prev;
2090 return REGB0;
2091 }
2092 void mmbuilder___SignatureBuilder___vararg_rank__eq(val_t p0, val_t p1){
2093 struct {struct stack_frame_t me;} fra;
2094 val_t REGB0;
2095 val_t tmp;
2096 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2097 fra.me.file = LOCATE_mmbuilder;
2098 fra.me.line = 400;
2099 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___vararg_rank__eq;
2100 fra.me.has_broke = 0;
2101 fra.me.REG_size = 1;
2102 fra.me.REG[0] = NIT_NULL;
2103 fra.me.REG[0] = p0;
2104 REGB0 = p1;
2105 /* ./syntax//mmbuilder.nit:400 */
2106 ATTR_mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]) = REGB0;
2107 stack_frame_head = fra.me.prev;
2108 return;
2109 }
2110 val_t mmbuilder___SignatureBuilder___closure_decls(val_t p0){
2111 struct {struct stack_frame_t me;} fra;
2112 val_t REGB0;
2113 val_t tmp;
2114 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2115 fra.me.file = LOCATE_mmbuilder;
2116 fra.me.line = 403;
2117 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___closure_decls;
2118 fra.me.has_broke = 0;
2119 fra.me.REG_size = 1;
2120 fra.me.REG[0] = NIT_NULL;
2121 fra.me.REG[0] = p0;
2122 /* ./syntax//mmbuilder.nit:403 */
2123 REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0])!=NIT_NULL);
2124 if (UNTAG_Bool(REGB0)) {
2125 } else {
2126 nit_abort("Uninitialized attribute %s", "_closure_decls", LOCATE_mmbuilder, 403);
2127 }
2128 fra.me.REG[0] = ATTR_mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0]);
2129 stack_frame_head = fra.me.prev;
2130 return fra.me.REG[0];
2131 }
2132 void mmbuilder___SignatureBuilder___closure_decls__eq(val_t p0, val_t p1){
2133 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2134 val_t tmp;
2135 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2136 fra.me.file = LOCATE_mmbuilder;
2137 fra.me.line = 403;
2138 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___closure_decls__eq;
2139 fra.me.has_broke = 0;
2140 fra.me.REG_size = 2;
2141 fra.me.REG[0] = NIT_NULL;
2142 fra.me.REG[1] = NIT_NULL;
2143 fra.me.REG[0] = p0;
2144 fra.me.REG[1] = p1;
2145 /* ./syntax//mmbuilder.nit:403 */
2146 ATTR_mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0]) = fra.me.REG[1];
2147 stack_frame_head = fra.me.prev;
2148 return;
2149 }
2150 val_t mmbuilder___SignatureBuilder___has_error_occured(val_t p0){
2151 struct {struct stack_frame_t me;} fra;
2152 val_t REGB0;
2153 val_t tmp;
2154 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2155 fra.me.file = LOCATE_mmbuilder;
2156 fra.me.line = 406;
2157 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___has_error_occured;
2158 fra.me.has_broke = 0;
2159 fra.me.REG_size = 1;
2160 fra.me.REG[0] = NIT_NULL;
2161 fra.me.REG[0] = p0;
2162 /* ./syntax//mmbuilder.nit:406 */
2163 REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0])!=NIT_NULL);
2164 if (UNTAG_Bool(REGB0)) {
2165 } else {
2166 nit_abort("Uninitialized attribute %s", "_has_error_occured", LOCATE_mmbuilder, 406);
2167 }
2168 REGB0 = ATTR_mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]);
2169 stack_frame_head = fra.me.prev;
2170 return REGB0;
2171 }
2172 void mmbuilder___SignatureBuilder___has_error_occured__eq(val_t p0, val_t p1){
2173 struct {struct stack_frame_t me;} fra;
2174 val_t REGB0;
2175 val_t tmp;
2176 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2177 fra.me.file = LOCATE_mmbuilder;
2178 fra.me.line = 406;
2179 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___has_error_occured__eq;
2180 fra.me.has_broke = 0;
2181 fra.me.REG_size = 1;
2182 fra.me.REG[0] = NIT_NULL;
2183 fra.me.REG[0] = p0;
2184 REGB0 = p1;
2185 /* ./syntax//mmbuilder.nit:406 */
2186 ATTR_mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]) = REGB0;
2187 stack_frame_head = fra.me.prev;
2188 return;
2189 }
2190 val_t mmbuilder___SignatureBuilder___signature(val_t p0){
2191 struct {struct stack_frame_t me;} fra;
2192 val_t tmp;
2193 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2194 fra.me.file = LOCATE_mmbuilder;
2195 fra.me.line = 409;
2196 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___signature;
2197 fra.me.has_broke = 0;
2198 fra.me.REG_size = 1;
2199 fra.me.REG[0] = NIT_NULL;
2200 fra.me.REG[0] = p0;
2201 /* ./syntax//mmbuilder.nit:409 */
2202 fra.me.REG[0] = ATTR_mmbuilder___SignatureBuilder____signature(fra.me.REG[0]);
2203 stack_frame_head = fra.me.prev;
2204 return fra.me.REG[0];
2205 }
2206 void mmbuilder___SignatureBuilder___signature__eq(val_t p0, val_t p1){
2207 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2208 val_t tmp;
2209 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2210 fra.me.file = LOCATE_mmbuilder;
2211 fra.me.line = 409;
2212 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___signature__eq;
2213 fra.me.has_broke = 0;
2214 fra.me.REG_size = 2;
2215 fra.me.REG[0] = NIT_NULL;
2216 fra.me.REG[1] = NIT_NULL;
2217 fra.me.REG[0] = p0;
2218 fra.me.REG[1] = p1;
2219 /* ./syntax//mmbuilder.nit:409 */
2220 ATTR_mmbuilder___SignatureBuilder____signature(fra.me.REG[0]) = fra.me.REG[1];
2221 stack_frame_head = fra.me.prev;
2222 return;
2223 }
2224 void mmbuilder___SignatureBuilder___init(val_t p0, int* init_table){
2225 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_SignatureBuilder].i;
2226 struct {struct stack_frame_t me;} fra;
2227 val_t tmp;
2228 if (init_table[itpos8]) return;
2229 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2230 fra.me.file = LOCATE_mmbuilder;
2231 fra.me.line = 0;
2232 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___init;
2233 fra.me.has_broke = 0;
2234 fra.me.REG_size = 0;
2235 stack_frame_head = fra.me.prev;
2236 init_table[itpos8] = 1;
2237 return;
2238 }
2239 void mmbuilder___ANode___accept_class_builder(val_t p0, val_t p1){
2240 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2241 val_t tmp;
2242 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2243 fra.me.file = LOCATE_mmbuilder;
2244 fra.me.line = 416;
2245 fra.me.meth = LOCATE_mmbuilder___ANode___accept_class_builder;
2246 fra.me.has_broke = 0;
2247 fra.me.REG_size = 2;
2248 fra.me.REG[0] = NIT_NULL;
2249 fra.me.REG[1] = NIT_NULL;
2250 fra.me.REG[0] = p0;
2251 fra.me.REG[1] = p1;
2252 /* ./syntax//mmbuilder.nit:416 */
2253 CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2254 stack_frame_head = fra.me.prev;
2255 return;
2256 }
2257 void mmbuilder___ANode___accept_class_specialization_builder(val_t p0, val_t p1){
2258 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2259 val_t tmp;
2260 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2261 fra.me.file = LOCATE_mmbuilder;
2262 fra.me.line = 417;
2263 fra.me.meth = LOCATE_mmbuilder___ANode___accept_class_specialization_builder;
2264 fra.me.has_broke = 0;
2265 fra.me.REG_size = 2;
2266 fra.me.REG[0] = NIT_NULL;
2267 fra.me.REG[1] = NIT_NULL;
2268 fra.me.REG[0] = p0;
2269 fra.me.REG[1] = p1;
2270 /* ./syntax//mmbuilder.nit:417 */
2271 CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2272 stack_frame_head = fra.me.prev;
2273 return;
2274 }
2275 void mmbuilder___ANode___accept_class_ancestor_builder(val_t p0, val_t p1){
2276 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2277 val_t tmp;
2278 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2279 fra.me.file = LOCATE_mmbuilder;
2280 fra.me.line = 418;
2281 fra.me.meth = LOCATE_mmbuilder___ANode___accept_class_ancestor_builder;
2282 fra.me.has_broke = 0;
2283 fra.me.REG_size = 2;
2284 fra.me.REG[0] = NIT_NULL;
2285 fra.me.REG[1] = NIT_NULL;
2286 fra.me.REG[0] = p0;
2287 fra.me.REG[1] = p1;
2288 /* ./syntax//mmbuilder.nit:418 */
2289 CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2290 stack_frame_head = fra.me.prev;
2291 return;
2292 }
2293 void mmbuilder___ANode___accept_class_verifier(val_t p0, val_t p1){
2294 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2295 val_t tmp;
2296 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2297 fra.me.file = LOCATE_mmbuilder;
2298 fra.me.line = 419;
2299 fra.me.meth = LOCATE_mmbuilder___ANode___accept_class_verifier;
2300 fra.me.has_broke = 0;
2301 fra.me.REG_size = 2;
2302 fra.me.REG[0] = NIT_NULL;
2303 fra.me.REG[1] = NIT_NULL;
2304 fra.me.REG[0] = p0;
2305 fra.me.REG[1] = p1;
2306 /* ./syntax//mmbuilder.nit:419 */
2307 CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2308 stack_frame_head = fra.me.prev;
2309 return;
2310 }
2311 void mmbuilder___ANode___accept_property_builder(val_t p0, val_t p1){
2312 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2313 val_t tmp;
2314 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2315 fra.me.file = LOCATE_mmbuilder;
2316 fra.me.line = 420;
2317 fra.me.meth = LOCATE_mmbuilder___ANode___accept_property_builder;
2318 fra.me.has_broke = 0;
2319 fra.me.REG_size = 2;
2320 fra.me.REG[0] = NIT_NULL;
2321 fra.me.REG[1] = NIT_NULL;
2322 fra.me.REG[0] = p0;
2323 fra.me.REG[1] = p1;
2324 /* ./syntax//mmbuilder.nit:420 */
2325 CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2326 stack_frame_head = fra.me.prev;
2327 return;
2328 }
2329 void mmbuilder___ANode___accept_property_verifier(val_t p0, val_t p1){
2330 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2331 val_t tmp;
2332 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2333 fra.me.file = LOCATE_mmbuilder;
2334 fra.me.line = 421;
2335 fra.me.meth = LOCATE_mmbuilder___ANode___accept_property_verifier;
2336 fra.me.has_broke = 0;
2337 fra.me.REG_size = 2;
2338 fra.me.REG[0] = NIT_NULL;
2339 fra.me.REG[1] = NIT_NULL;
2340 fra.me.REG[0] = p0;
2341 fra.me.REG[1] = p1;
2342 /* ./syntax//mmbuilder.nit:421 */
2343 CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2344 stack_frame_head = fra.me.prev;
2345 return;
2346 }
2347 void mmbuilder___AModule___import_super_modules(val_t p0, val_t p1, val_t p2){
2348 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
2349 val_t REGB0;
2350 val_t REGB1;
2351 val_t tmp;
2352 static val_t once_value_2; /* Once value */
2353 static val_t once_value_3; /* Once value */
2354 static val_t once_value_4; /* Once value */
2355 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2356 fra.me.file = LOCATE_mmbuilder;
2357 fra.me.line = 425;
2358 fra.me.meth = LOCATE_mmbuilder___AModule___import_super_modules;
2359 fra.me.has_broke = 0;
2360 fra.me.REG_size = 7;
2361 fra.me.REG[0] = NIT_NULL;
2362 fra.me.REG[1] = NIT_NULL;
2363 fra.me.REG[2] = NIT_NULL;
2364 fra.me.REG[3] = NIT_NULL;
2365 fra.me.REG[4] = NIT_NULL;
2366 fra.me.REG[5] = NIT_NULL;
2367 fra.me.REG[6] = NIT_NULL;
2368 fra.me.REG[0] = p0;
2369 fra.me.REG[1] = p1;
2370 fra.me.REG[2] = p2;
2371 /* ./syntax//mmbuilder.nit:429 */
2372 fra.me.REG[3] = NEW_Array_array___Array___init();
2373 /* ./syntax//mmbuilder.nit:430 */
2374 fra.me.REG[4] = NEW_HashMap_hash_collection___HashMap___init();
2375 /* ./syntax//mmbuilder.nit:431 */
2376 fra.me.REG[5] = NIT_NULL;
2377 /* ./syntax//mmbuilder.nit:432 */
2378 fra.me.REG[0] = CALL_parser_nodes___AModule___n_imports(fra.me.REG[0])(fra.me.REG[0]);
2379 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_mmbuilder___AModule___import_super_modules_1));
2380 /* ./syntax//mmbuilder.nit:441 */
2381 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2382 if (UNTAG_Bool(REGB0)) {
2383 } else {
2384 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2385 if (UNTAG_Bool(REGB1)) {
2386 REGB1 = TAG_Bool(false);
2387 REGB0 = REGB1;
2388 } else {
2389 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
2390 REGB0 = REGB1;
2391 }
2392 }
2393 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2394 if (UNTAG_Bool(REGB0)) {
2395 /* ./syntax//mmbuilder.nit:442 */
2396 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
2397 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2398 if (UNTAG_Bool(REGB0)) {
2399 /* ./syntax//mmbuilder.nit:443 */
2400 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2401 if (UNTAG_Bool(REGB0)) {
2402 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 443);
2403 }
2404 fra.me.REG[5] = CALL_parser_nodes___ANode___location(fra.me.REG[5])(fra.me.REG[5]);
2405 if (!once_value_2) {
2406 fra.me.REG[0] = BOX_NativeString("Error: Top modules cannot import other modules.");
2407 REGB0 = TAG_Int(47);
2408 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
2409 once_value_2 = fra.me.REG[0];
2410 register_static_object(&once_value_2);
2411 } else fra.me.REG[0] = once_value_2;
2412 fra.me.REG[0] = fra.me.REG[0];
2413 CALL_mmloader___ToolContext___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5], fra.me.REG[0]);
2414 }
2415 } else {
2416 /* ./syntax//mmbuilder.nit:445 */
2417 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
2418 if (UNTAG_Bool(REGB0)) {
2419 /* ./syntax//mmbuilder.nit:446 */
2420 if (!once_value_3) {
2421 if (!once_value_4) {
2422 fra.me.REG[0] = BOX_NativeString("standard");
2423 REGB0 = TAG_Int(8);
2424 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
2425 once_value_4 = fra.me.REG[0];
2426 register_static_object(&once_value_4);
2427 } else fra.me.REG[0] = once_value_4;
2428 fra.me.REG[0] = fra.me.REG[0];
2429 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
2430 once_value_3 = fra.me.REG[0];
2431 register_static_object(&once_value_3);
2432 } else fra.me.REG[0] = once_value_3;
2433 fra.me.REG[0] = fra.me.REG[0];
2434 /* ./syntax//mmbuilder.nit:447 */
2435 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
2436 /* ./syntax//mmbuilder.nit:448 */
2437 REGB0 = TAG_Int(1);
2438 CALL_abstract_collection___Map_____braeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0], REGB0);
2439 }
2440 }
2441 /* ./syntax//mmbuilder.nit:451 */
2442 CALL_mmloader___MMModule___import_supers_modules(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2443 /* ./../lib/standard//collection//array.nit:234 */
2444 REGB0 = TAG_Int(0);
2445 /* ./../lib/standard//collection//array.nit:235 */
2446 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
2447 if (UNTAG_Bool(REGB1)) {
2448 } else {
2449 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
2450 }
2451 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
2452 /* ./../lib/standard//collection//array.nit:236 */
2453 fra.me.REG[0] = ATTR_array___Array____items(fra.me.REG[3]);
2454 /* ./../lib/standard//collection//array.nit:237 */
2455 while(1) {
2456 /* ./../lib/standard//collection//array.nit:23 */
2457 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
2458 if (UNTAG_Bool(REGB1)) {
2459 } else {
2460 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
2461 }
2462 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
2463 /* ./../lib/standard//kernel.nit:212 */
2464 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2465 /* ./../lib/standard//collection//array.nit:237 */
2466 if (UNTAG_Bool(REGB1)) {
2467 /* ./../lib/standard//collection//array.nit:238 */
2468 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2469 if (UNTAG_Bool(REGB1)) {
2470 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
2471 }
2472 /* ./../lib/standard//collection//array.nit:654 */
2473 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
2474 /* ./syntax//mmbuilder.nit:454 */
2475 fra.me.REG[6] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2476 REGB1 = fra.me.REG[6];
2477 /* ./syntax//mmbuilder.nit:455 */
2478 fra.me.REG[5] = CALL_mmloader___ToolContext___get_module(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5], fra.me.REG[2]);
2479 /* ./syntax//mmbuilder.nit:456 */
2480 CALL_abstractmetamodel___MMModule___add_super_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5], REGB1);
2481 /* ./../lib/standard//collection//array.nit:239 */
2482 REGB1 = TAG_Int(1);
2483 /* ./../lib/standard//kernel.nit:215 */
2484 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
2485 /* ./../lib/standard//collection//array.nit:239 */
2486 REGB0 = REGB1;
2487 } else {
2488 /* ./../lib/standard//collection//array.nit:237 */
2489 goto label5;
2490 }
2491 }
2492 label5: while(0);
2493 stack_frame_head = fra.me.prev;
2494 return;
2495 }
2496 void OC_mmbuilder___AModule___import_super_modules_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
2497 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2498 val_t REGB0;
2499 val_t REGB1;
2500 fun_t CREG[1];
2501 val_t tmp;
2502 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2503 fra.me.file = LOCATE_mmbuilder;
2504 fra.me.line = 0;
2505 fra.me.meth = LOCATE_mmbuilder___AModule___import_super_modules;
2506 fra.me.has_broke = 0;
2507 fra.me.REG_size = 2;
2508 fra.me.REG[0] = NIT_NULL;
2509 fra.me.REG[1] = NIT_NULL;
2510 fra.me.closure_ctx = closctx_param;
2511 fra.me.closure_funs = CREG;
2512 fra.me.REG[0] = p0;
2513 CREG[0] = clos_fun0;
2514 /* ./syntax//mmbuilder.nit:433 */
2515 fra.me.REG[1] = CALL_mmbuilder___AImport___module_name(fra.me.REG[0])(fra.me.REG[0]);
2516 /* ./syntax//mmbuilder.nit:434 */
2517 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2518 if (UNTAG_Bool(REGB0)) {
2519 } else {
2520 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2521 if (UNTAG_Bool(REGB1)) {
2522 REGB1 = TAG_Bool(false);
2523 REGB0 = REGB1;
2524 } else {
2525 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2526 REGB0 = REGB1;
2527 }
2528 }
2529 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2530 if (UNTAG_Bool(REGB0)) {
2531 /* ./syntax//mmbuilder.nit:435 */
2532 CALL_abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[1]);
2533 /* ./syntax//mmbuilder.nit:436 */
2534 REGB0 = CALL_mmbuilder___AImport___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
2535 CALL_abstract_collection___Map_____braeq(closctx->REG[4])(closctx->REG[4], fra.me.REG[1], REGB0);
2536 } else {
2537 /* ./syntax//mmbuilder.nit:438 */
2538 closctx->REG[5] = fra.me.REG[0];
2539 }
2540 stack_frame_head = fra.me.prev;
2541 return;
2542 }
2543 void mmbuilder___AModuledecl___accept_class_builder(val_t p0, val_t p1){
2544 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
2545 val_t REGB0;
2546 val_t REGB1;
2547 val_t tmp;
2548 static val_t once_value_1; /* Once value */
2549 static val_t once_value_2; /* Once value */
2550 static val_t once_value_3; /* Once value */
2551 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2552 fra.me.file = LOCATE_mmbuilder;
2553 fra.me.line = 462;
2554 fra.me.meth = LOCATE_mmbuilder___AModuledecl___accept_class_builder;
2555 fra.me.has_broke = 0;
2556 fra.me.REG_size = 5;
2557 fra.me.REG[0] = NIT_NULL;
2558 fra.me.REG[1] = NIT_NULL;
2559 fra.me.REG[2] = NIT_NULL;
2560 fra.me.REG[3] = NIT_NULL;
2561 fra.me.REG[4] = NIT_NULL;
2562 fra.me.REG[0] = p0;
2563 fra.me.REG[1] = p1;
2564 /* ./syntax//mmbuilder.nit:464 */
2565 fra.me.REG[2] = CALL_parser_nodes___AModuledecl___n_id(fra.me.REG[0])(fra.me.REG[0]);
2566 fra.me.REG[2] = CALL_syntax_base___Token___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
2567 fra.me.REG[3] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
2568 fra.me.REG[3] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[3])(fra.me.REG[3]);
2569 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
2570 if (UNTAG_Bool(REGB0)) {
2571 } else {
2572 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2573 REGB0 = REGB1;
2574 }
2575 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2576 if (UNTAG_Bool(REGB0)) {
2577 /* ./syntax//mmbuilder.nit:465 */
2578 fra.me.REG[3] = CALL_parser_nodes___AModuledecl___n_id(fra.me.REG[0])(fra.me.REG[0]);
2579 REGB0 = TAG_Int(5);
2580 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
2581 if (!once_value_1) {
2582 fra.me.REG[4] = BOX_NativeString("Error: Module name missmatch between ");
2583 REGB0 = TAG_Int(37);
2584 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
2585 once_value_1 = fra.me.REG[4];
2586 register_static_object(&once_value_1);
2587 } else fra.me.REG[4] = once_value_1;
2588 fra.me.REG[4] = fra.me.REG[4];
2589 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
2590 fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
2591 fra.me.REG[4] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[4])(fra.me.REG[4]);
2592 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
2593 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
2594 if (!once_value_2) {
2595 fra.me.REG[4] = BOX_NativeString(" and ");
2596 REGB0 = TAG_Int(5);
2597 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
2598 once_value_2 = fra.me.REG[4];
2599 register_static_object(&once_value_2);
2600 } else fra.me.REG[4] = once_value_2;
2601 fra.me.REG[4] = fra.me.REG[4];
2602 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
2603 fra.me.REG[0] = CALL_parser_nodes___AModuledecl___n_id(fra.me.REG[0])(fra.me.REG[0]);
2604 fra.me.REG[0] = CALL_syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
2605 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2606 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2607 if (!once_value_3) {
2608 fra.me.REG[0] = BOX_NativeString("");
2609 REGB0 = TAG_Int(0);
2610 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
2611 once_value_3 = fra.me.REG[0];
2612 register_static_object(&once_value_3);
2613 } else fra.me.REG[0] = once_value_3;
2614 fra.me.REG[0] = fra.me.REG[0];
2615 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2616 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2617 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2]);
2618 }
2619 stack_frame_head = fra.me.prev;
2620 return;
2621 }
2622 val_t mmbuilder___AImport___module_name(val_t p0){
2623 struct {struct stack_frame_t me;} fra;
2624 val_t tmp;
2625 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2626 fra.me.file = LOCATE_mmbuilder;
2627 fra.me.line = 471;
2628 fra.me.meth = LOCATE_mmbuilder___AImport___module_name;
2629 fra.me.has_broke = 0;
2630 fra.me.REG_size = 0;
2631 /* ./syntax//mmbuilder.nit:471 */
2632 nit_abort("Deferred method called", NULL, LOCATE_mmbuilder, 471);
2633 stack_frame_head = fra.me.prev;
2634 return NIT_NULL;
2635 }
2636 val_t mmbuilder___AImport___visibility_level(val_t p0){
2637 struct {struct stack_frame_t me;} fra;
2638 val_t tmp;
2639 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2640 fra.me.file = LOCATE_mmbuilder;
2641 fra.me.line = 474;
2642 fra.me.meth = LOCATE_mmbuilder___AImport___visibility_level;
2643 fra.me.has_broke = 0;
2644 fra.me.REG_size = 0;
2645 /* ./syntax//mmbuilder.nit:474 */
2646 nit_abort("Deferred method called", NULL, LOCATE_mmbuilder, 474);
2647 stack_frame_head = fra.me.prev;
2648 return NIT_NULL;
2649 }
2650 val_t mmbuilder___AStdImport___module_name(val_t p0){
2651 struct {struct stack_frame_t me;} fra;
2652 val_t tmp;
2653 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2654 fra.me.file = LOCATE_mmbuilder;
2655 fra.me.line = 478;
2656 fra.me.meth = LOCATE_mmbuilder___AStdImport___module_name;
2657 fra.me.has_broke = 0;
2658 fra.me.REG_size = 1;
2659 fra.me.REG[0] = NIT_NULL;
2660 fra.me.REG[0] = p0;
2661 /* ./syntax//mmbuilder.nit:480 */
2662 fra.me.REG[0] = CALL_parser_nodes___AStdImport___n_id(fra.me.REG[0])(fra.me.REG[0]);
2663 fra.me.REG[0] = CALL_syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
2664 goto label1;
2665 label1: while(0);
2666 stack_frame_head = fra.me.prev;
2667 return fra.me.REG[0];
2668 }
2669 val_t mmbuilder___AStdImport___visibility_level(val_t p0){
2670 struct {struct stack_frame_t me;} fra;
2671 val_t REGB0;
2672 val_t tmp;
2673 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2674 fra.me.file = LOCATE_mmbuilder;
2675 fra.me.line = 482;
2676 fra.me.meth = LOCATE_mmbuilder___AStdImport___visibility_level;
2677 fra.me.has_broke = 0;
2678 fra.me.REG_size = 1;
2679 fra.me.REG[0] = NIT_NULL;
2680 fra.me.REG[0] = p0;
2681 /* ./syntax//mmbuilder.nit:484 */
2682 fra.me.REG[0] = CALL_parser_nodes___AStdImport___n_visibility(fra.me.REG[0])(fra.me.REG[0]);
2683 REGB0 = CALL_mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
2684 goto label1;
2685 label1: while(0);
2686 stack_frame_head = fra.me.prev;
2687 return REGB0;
2688 }
2689 val_t mmbuilder___ANoImport___module_name(val_t p0){
2690 struct {struct stack_frame_t me;} fra;
2691 val_t tmp;
2692 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2693 fra.me.file = LOCATE_mmbuilder;
2694 fra.me.line = 488;
2695 fra.me.meth = LOCATE_mmbuilder___ANoImport___module_name;
2696 fra.me.has_broke = 0;
2697 fra.me.REG_size = 1;
2698 fra.me.REG[0] = NIT_NULL;
2699 fra.me.REG[0] = p0;
2700 /* ./syntax//mmbuilder.nit:490 */
2701 fra.me.REG[0] = NIT_NULL;
2702 goto label1;
2703 label1: while(0);
2704 stack_frame_head = fra.me.prev;
2705 return fra.me.REG[0];
2706 }
2707 val_t mmbuilder___AVisibility___level(val_t p0){
2708 struct {struct stack_frame_t me;} fra;
2709 val_t tmp;
2710 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2711 fra.me.file = LOCATE_mmbuilder;
2712 fra.me.line = 495;
2713 fra.me.meth = LOCATE_mmbuilder___AVisibility___level;
2714 fra.me.has_broke = 0;
2715 fra.me.REG_size = 0;
2716 /* ./syntax//mmbuilder.nit:495 */
2717 nit_abort("Deferred method called", NULL, LOCATE_mmbuilder, 495);
2718 stack_frame_head = fra.me.prev;
2719 return NIT_NULL;
2720 }
2721 val_t mmbuilder___APublicVisibility___level(val_t p0){
2722 struct {struct stack_frame_t me;} fra;
2723 val_t REGB0;
2724 val_t tmp;
2725 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2726 fra.me.file = LOCATE_mmbuilder;
2727 fra.me.line = 499;
2728 fra.me.meth = LOCATE_mmbuilder___APublicVisibility___level;
2729 fra.me.has_broke = 0;
2730 fra.me.REG_size = 1;
2731 fra.me.REG[0] = NIT_NULL;
2732 fra.me.REG[0] = p0;
2733 /* ./syntax//mmbuilder.nit:499 */
2734 REGB0 = TAG_Int(1);
2735 goto label1;
2736 label1: while(0);
2737 stack_frame_head = fra.me.prev;
2738 return REGB0;
2739 }
2740 val_t mmbuilder___AProtectedVisibility___level(val_t p0){
2741 struct {struct stack_frame_t me;} fra;
2742 val_t REGB0;
2743 val_t tmp;
2744 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2745 fra.me.file = LOCATE_mmbuilder;
2746 fra.me.line = 502;
2747 fra.me.meth = LOCATE_mmbuilder___AProtectedVisibility___level;
2748 fra.me.has_broke = 0;
2749 fra.me.REG_size = 1;
2750 fra.me.REG[0] = NIT_NULL;
2751 fra.me.REG[0] = p0;
2752 /* ./syntax//mmbuilder.nit:502 */
2753 REGB0 = TAG_Int(2);
2754 goto label1;
2755 label1: while(0);
2756 stack_frame_head = fra.me.prev;
2757 return REGB0;
2758 }
2759 val_t mmbuilder___APrivateVisibility___level(val_t p0){
2760 struct {struct stack_frame_t me;} fra;
2761 val_t REGB0;
2762 val_t tmp;
2763 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2764 fra.me.file = LOCATE_mmbuilder;
2765 fra.me.line = 505;
2766 fra.me.meth = LOCATE_mmbuilder___APrivateVisibility___level;
2767 fra.me.has_broke = 0;
2768 fra.me.REG_size = 1;
2769 fra.me.REG[0] = NIT_NULL;
2770 fra.me.REG[0] = p0;
2771 /* ./syntax//mmbuilder.nit:505 */
2772 REGB0 = TAG_Int(3);
2773 goto label1;
2774 label1: while(0);
2775 stack_frame_head = fra.me.prev;
2776 return REGB0;
2777 }
2778 val_t mmbuilder___AIntrudeVisibility___level(val_t p0){
2779 struct {struct stack_frame_t me;} fra;
2780 val_t REGB0;
2781 val_t tmp;
2782 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2783 fra.me.file = LOCATE_mmbuilder;
2784 fra.me.line = 508;
2785 fra.me.meth = LOCATE_mmbuilder___AIntrudeVisibility___level;
2786 fra.me.has_broke = 0;
2787 fra.me.REG_size = 1;
2788 fra.me.REG[0] = NIT_NULL;
2789 fra.me.REG[0] = p0;
2790 /* ./syntax//mmbuilder.nit:508 */
2791 REGB0 = TAG_Int(0);
2792 goto label1;
2793 label1: while(0);
2794 stack_frame_head = fra.me.prev;
2795 return REGB0;
2796 }
2797 val_t mmbuilder___AClassdef___local_class(val_t p0){
2798 struct {struct stack_frame_t me;} fra;
2799 val_t REGB0;
2800 val_t tmp;
2801 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2802 fra.me.file = LOCATE_mmbuilder;
2803 fra.me.line = 513;
2804 fra.me.meth = LOCATE_mmbuilder___AClassdef___local_class;
2805 fra.me.has_broke = 0;
2806 fra.me.REG_size = 1;
2807 fra.me.REG[0] = NIT_NULL;
2808 fra.me.REG[0] = p0;
2809 /* ./syntax//mmbuilder.nit:513 */
2810 fra.me.REG[0] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[0]);
2811 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
2812 if (UNTAG_Bool(REGB0)) {
2813 } else {
2814 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 513);
2815 }
2816 goto label1;
2817 label1: while(0);
2818 stack_frame_head = fra.me.prev;
2819 return fra.me.REG[0];
2820 }
2821 val_t mmbuilder___AClassdef___name(val_t p0){
2822 struct {struct stack_frame_t me;} fra;
2823 val_t tmp;
2824 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2825 fra.me.file = LOCATE_mmbuilder;
2826 fra.me.line = 516;
2827 fra.me.meth = LOCATE_mmbuilder___AClassdef___name;
2828 fra.me.has_broke = 0;
2829 fra.me.REG_size = 0;
2830 /* ./syntax//mmbuilder.nit:516 */
2831 nit_abort("Deferred method called", NULL, LOCATE_mmbuilder, 516);
2832 stack_frame_head = fra.me.prev;
2833 return NIT_NULL;
2834 }
2835 val_t mmbuilder___AClassdef___arity(val_t p0){
2836 struct {struct stack_frame_t me;} fra;
2837 val_t REGB0;
2838 val_t tmp;
2839 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2840 fra.me.file = LOCATE_mmbuilder;
2841 fra.me.line = 519;
2842 fra.me.meth = LOCATE_mmbuilder___AClassdef___arity;
2843 fra.me.has_broke = 0;
2844 fra.me.REG_size = 1;
2845 fra.me.REG[0] = NIT_NULL;
2846 fra.me.REG[0] = p0;
2847 /* ./syntax//mmbuilder.nit:520 */
2848 REGB0 = TAG_Int(0);
2849 goto label1;
2850 label1: while(0);
2851 stack_frame_head = fra.me.prev;
2852 return REGB0;
2853 }
2854 val_t mmbuilder___AClassdef___visibility_level(val_t p0){
2855 struct {struct stack_frame_t me;} fra;
2856 val_t REGB0;
2857 val_t tmp;
2858 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2859 fra.me.file = LOCATE_mmbuilder;
2860 fra.me.line = 522;
2861 fra.me.meth = LOCATE_mmbuilder___AClassdef___visibility_level;
2862 fra.me.has_broke = 0;
2863 fra.me.REG_size = 1;
2864 fra.me.REG[0] = NIT_NULL;
2865 fra.me.REG[0] = p0;
2866 /* ./syntax//mmbuilder.nit:523 */
2867 REGB0 = TAG_Int(1);
2868 goto label1;
2869 label1: while(0);
2870 stack_frame_head = fra.me.prev;
2871 return REGB0;
2872 }
2873 void mmbuilder___AClassdef___accept_class_builder(val_t p0, val_t p1){
2874 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
2875 val_t REGB0;
2876 val_t REGB1;
2877 val_t tmp;
2878 static val_t once_value_1; /* Once value */
2879 static val_t once_value_2; /* Once value */
2880 static val_t once_value_3; /* Once value */
2881 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2882 fra.me.file = LOCATE_mmbuilder;
2883 fra.me.line = 525;
2884 fra.me.meth = LOCATE_mmbuilder___AClassdef___accept_class_builder;
2885 fra.me.has_broke = 0;
2886 fra.me.REG_size = 9;
2887 fra.me.REG[0] = NIT_NULL;
2888 fra.me.REG[1] = NIT_NULL;
2889 fra.me.REG[2] = NIT_NULL;
2890 fra.me.REG[3] = NIT_NULL;
2891 fra.me.REG[4] = NIT_NULL;
2892 fra.me.REG[5] = NIT_NULL;
2893 fra.me.REG[6] = NIT_NULL;
2894 fra.me.REG[7] = NIT_NULL;
2895 fra.me.REG[8] = NIT_NULL;
2896 fra.me.REG[0] = p0;
2897 fra.me.REG[1] = p1;
2898 /* ./syntax//mmbuilder.nit:525 */
2899 fra.me.REG[2] = fra.me.REG[0];
2900 fra.me.REG[3] = fra.me.REG[1];
2901 /* ./syntax//mmbuilder.nit:528 */
2902 fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
2903 /* ./syntax//mmbuilder.nit:529 */
2904 fra.me.REG[5] = CALL_syntax_base___MMSrcModule___src_local_classes(fra.me.REG[4])(fra.me.REG[4]);
2905 /* ./syntax//mmbuilder.nit:530 */
2906 fra.me.REG[6] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
2907 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2908 if (UNTAG_Bool(REGB0)) {
2909 /* ./syntax//mmbuilder.nit:531 */
2910 fra.me.REG[6] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
2911 fra.me.REG[6] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2912 /* ./syntax//mmbuilder.nit:532 */
2913 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_AStdClassdef, ID_AStdClassdef)) /*cast AStdClassdef*/;
2914 if (UNTAG_Bool(REGB0)) {
2915 /* ./syntax//mmbuilder.nit:534 */
2916 REGB0 = TAG_Int(5);
2917 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB0);
2918 if (!once_value_1) {
2919 fra.me.REG[8] = BOX_NativeString("Error: A class ");
2920 REGB0 = TAG_Int(15);
2921 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
2922 once_value_1 = fra.me.REG[8];
2923 register_static_object(&once_value_1);
2924 } else fra.me.REG[8] = once_value_1;
2925 fra.me.REG[8] = fra.me.REG[8];
2926 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
2927 fra.me.REG[8] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
2928 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
2929 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
2930 if (!once_value_2) {
2931 fra.me.REG[8] = BOX_NativeString(" is already defined at line ");
2932 REGB0 = TAG_Int(28);
2933 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
2934 once_value_2 = fra.me.REG[8];
2935 register_static_object(&once_value_2);
2936 } else fra.me.REG[8] = once_value_2;
2937 fra.me.REG[8] = fra.me.REG[8];
2938 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
2939 fra.me.REG[8] = CALL_syntax_base___MMSrcLocalClass___node(fra.me.REG[6])(fra.me.REG[6]);
2940 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
2941 if (UNTAG_Bool(REGB0)) {
2942 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 534);
2943 }
2944 fra.me.REG[8] = CALL_parser_nodes___ANode___location(fra.me.REG[8])(fra.me.REG[8]);
2945 REGB0 = CALL_location___Location___line_start(fra.me.REG[8])(fra.me.REG[8]);
2946 fra.me.REG[8] = CALL_string___Object___to_s(REGB0)(REGB0);
2947 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
2948 if (!once_value_3) {
2949 fra.me.REG[8] = BOX_NativeString(".");
2950 REGB0 = TAG_Int(1);
2951 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
2952 once_value_3 = fra.me.REG[8];
2953 register_static_object(&once_value_3);
2954 } else fra.me.REG[8] = once_value_3;
2955 fra.me.REG[8] = fra.me.REG[8];
2956 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
2957 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
2958 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
2959 /* ./syntax//mmbuilder.nit:535 */
2960 goto label4;
2961 }
2962 /* ./syntax//mmbuilder.nit:538 */
2963 fra.me.REG[7] = CALL_syntax_base___MMSrcLocalClass___node(fra.me.REG[6])(fra.me.REG[6]);
2964 /* ./syntax//mmbuilder.nit:539 */
2965 while(1) {
2966 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2967 if (UNTAG_Bool(REGB0)) {
2968 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 539);
2969 }
2970 fra.me.REG[8] = CALL_syntax_base___AClassdef___next_node(fra.me.REG[7])(fra.me.REG[7]);
2971 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
2972 if (UNTAG_Bool(REGB0)) {
2973 } else {
2974 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
2975 if (UNTAG_Bool(REGB1)) {
2976 REGB1 = TAG_Bool(false);
2977 REGB0 = REGB1;
2978 } else {
2979 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
2980 REGB0 = REGB1;
2981 }
2982 }
2983 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2984 if (UNTAG_Bool(REGB0)) {
2985 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2986 if (UNTAG_Bool(REGB0)) {
2987 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 539);
2988 }
2989 fra.me.REG[8] = CALL_syntax_base___AClassdef___next_node(fra.me.REG[7])(fra.me.REG[7]);
2990 fra.me.REG[7] = fra.me.REG[8];
2991 } else {
2992 goto label5;
2993 }
2994 }
2995 label5: while(0);
2996 /* ./syntax//mmbuilder.nit:540 */
2997 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2998 if (UNTAG_Bool(REGB0)) {
2999 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 540);
3000 }
3001 CALL_syntax_base___AClassdef___next_node__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]);
3002 } else {
3003 /* ./syntax//mmbuilder.nit:542 */
3004 fra.me.REG[7] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3005 REGB0 = CALL_mmbuilder___AClassdef___arity(fra.me.REG[2])(fra.me.REG[2]);
3006 fra.me.REG[7] = NEW_MMSrcLocalClass_syntax_base___MMSrcLocalClass___init(fra.me.REG[4], fra.me.REG[7], fra.me.REG[2], REGB0);
3007 fra.me.REG[6] = fra.me.REG[7];
3008 /* ./syntax//mmbuilder.nit:543 */
3009 fra.me.REG[7] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3010 CALL_abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7], fra.me.REG[6]);
3011 /* ./syntax//mmbuilder.nit:544 */
3012 fra.me.REG[7] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3013 REGB0 = CALL_abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
3014 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3015 if (UNTAG_Bool(REGB0)) {
3016 /* ./syntax//mmbuilder.nit:545 */
3017 CALL_abstractmetamodel___MMLocalClass___new_global(fra.me.REG[6])(fra.me.REG[6]);
3018 } else {
3019 /* ./syntax//mmbuilder.nit:547 */
3020 fra.me.REG[7] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3021 fra.me.REG[7] = CALL_abstractmetamodel___MMModule___global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
3022 CALL_abstractmetamodel___MMLocalClass___set_global(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
3023 }
3024 }
3025 /* ./syntax//mmbuilder.nit:551 */
3026 ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]) = fra.me.REG[6];
3027 /* ./syntax//mmbuilder.nit:552 */
3028 REGB0 = TAG_Int(0);
3029 CALL_mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
3030 /* ./syntax//mmbuilder.nit:553 */
3031 fra.me.REG[6] = CALL_syntax_base___MMSrcLocalClass___formal_dict(fra.me.REG[6])(fra.me.REG[6]);
3032 CALL_mmbuilder___ClassBuilderVisitor___formals__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
3033 /* ./syntax//mmbuilder.nit:556 */
3034 CALL_SUPER_mmbuilder___AClassdef___accept_class_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3035 /* ./syntax//mmbuilder.nit:559 */
3036 CALL_mmbuilder___ClassBuilderVisitor___formals__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3037 label4: while(0);
3038 stack_frame_head = fra.me.prev;
3039 return;
3040 }
3041 void mmbuilder___AClassdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
3042 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3043 val_t tmp;
3044 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3045 fra.me.file = LOCATE_mmbuilder;
3046 fra.me.line = 562;
3047 fra.me.meth = LOCATE_mmbuilder___AClassdef___accept_abs_syntax_visitor;
3048 fra.me.has_broke = 0;
3049 fra.me.REG_size = 4;
3050 fra.me.REG[0] = NIT_NULL;
3051 fra.me.REG[1] = NIT_NULL;
3052 fra.me.REG[2] = NIT_NULL;
3053 fra.me.REG[3] = NIT_NULL;
3054 fra.me.REG[0] = p0;
3055 fra.me.REG[1] = p1;
3056 /* ./syntax//mmbuilder.nit:562 */
3057 fra.me.REG[2] = fra.me.REG[0];
3058 fra.me.REG[3] = fra.me.REG[1];
3059 /* ./syntax//mmbuilder.nit:564 */
3060 fra.me.REG[2] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3061 CALL_syntax_base___AbsSyntaxVisitor___local_class__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
3062 /* ./syntax//mmbuilder.nit:565 */
3063 CALL_SUPER_mmbuilder___AClassdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3064 /* ./syntax//mmbuilder.nit:566 */
3065 CALL_syntax_base___AbsSyntaxVisitor___local_class__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3066 stack_frame_head = fra.me.prev;
3067 return;
3068 }
3069 val_t mmbuilder___AClasskind___is_interface(val_t p0){
3070 struct {struct stack_frame_t me;} fra;
3071 val_t REGB0;
3072 val_t tmp;
3073 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3074 fra.me.file = LOCATE_mmbuilder;
3075 fra.me.line = 571;
3076 fra.me.meth = LOCATE_mmbuilder___AClasskind___is_interface;
3077 fra.me.has_broke = 0;
3078 fra.me.REG_size = 1;
3079 fra.me.REG[0] = NIT_NULL;
3080 fra.me.REG[0] = p0;
3081 /* ./syntax//mmbuilder.nit:571 */
3082 REGB0 = TAG_Bool(false);
3083 goto label1;
3084 label1: while(0);
3085 stack_frame_head = fra.me.prev;
3086 return REGB0;
3087 }
3088 val_t mmbuilder___AClasskind___is_enum(val_t p0){
3089 struct {struct stack_frame_t me;} fra;
3090 val_t REGB0;
3091 val_t tmp;
3092 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3093 fra.me.file = LOCATE_mmbuilder;
3094 fra.me.line = 572;
3095 fra.me.meth = LOCATE_mmbuilder___AClasskind___is_enum;
3096 fra.me.has_broke = 0;
3097 fra.me.REG_size = 1;
3098 fra.me.REG[0] = NIT_NULL;
3099 fra.me.REG[0] = p0;
3100 /* ./syntax//mmbuilder.nit:572 */
3101 REGB0 = TAG_Bool(false);
3102 goto label1;
3103 label1: while(0);
3104 stack_frame_head = fra.me.prev;
3105 return REGB0;
3106 }
3107 val_t mmbuilder___AClasskind___is_abstract(val_t p0){
3108 struct {struct stack_frame_t me;} fra;
3109 val_t REGB0;
3110 val_t tmp;
3111 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3112 fra.me.file = LOCATE_mmbuilder;
3113 fra.me.line = 573;
3114 fra.me.meth = LOCATE_mmbuilder___AClasskind___is_abstract;
3115 fra.me.has_broke = 0;
3116 fra.me.REG_size = 1;
3117 fra.me.REG[0] = NIT_NULL;
3118 fra.me.REG[0] = p0;
3119 /* ./syntax//mmbuilder.nit:573 */
3120 REGB0 = TAG_Bool(false);
3121 goto label1;
3122 label1: while(0);
3123 stack_frame_head = fra.me.prev;
3124 return REGB0;
3125 }
3126 val_t mmbuilder___AInterfaceClasskind___is_interface(val_t p0){
3127 struct {struct stack_frame_t me;} fra;
3128 val_t REGB0;
3129 val_t tmp;
3130 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3131 fra.me.file = LOCATE_mmbuilder;
3132 fra.me.line = 577;
3133 fra.me.meth = LOCATE_mmbuilder___AInterfaceClasskind___is_interface;
3134 fra.me.has_broke = 0;
3135 fra.me.REG_size = 1;
3136 fra.me.REG[0] = NIT_NULL;
3137 fra.me.REG[0] = p0;
3138 /* ./syntax//mmbuilder.nit:577 */
3139 REGB0 = TAG_Bool(true);
3140 goto label1;
3141 label1: while(0);
3142 stack_frame_head = fra.me.prev;
3143 return REGB0;
3144 }
3145 val_t mmbuilder___AEnumClasskind___is_enum(val_t p0){
3146 struct {struct stack_frame_t me;} fra;
3147 val_t REGB0;
3148 val_t tmp;
3149 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3150 fra.me.file = LOCATE_mmbuilder;
3151 fra.me.line = 580;
3152 fra.me.meth = LOCATE_mmbuilder___AEnumClasskind___is_enum;
3153 fra.me.has_broke = 0;
3154 fra.me.REG_size = 1;
3155 fra.me.REG[0] = NIT_NULL;
3156 fra.me.REG[0] = p0;
3157 /* ./syntax//mmbuilder.nit:580 */
3158 REGB0 = TAG_Bool(true);
3159 goto label1;
3160 label1: while(0);
3161 stack_frame_head = fra.me.prev;
3162 return REGB0;
3163 }
3164 val_t mmbuilder___AAbstractClasskind___is_abstract(val_t p0){
3165 struct {struct stack_frame_t me;} fra;
3166 val_t REGB0;
3167 val_t tmp;
3168 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3169 fra.me.file = LOCATE_mmbuilder;
3170 fra.me.line = 583;
3171 fra.me.meth = LOCATE_mmbuilder___AAbstractClasskind___is_abstract;
3172 fra.me.has_broke = 0;
3173 fra.me.REG_size = 1;
3174 fra.me.REG[0] = NIT_NULL;
3175 fra.me.REG[0] = p0;
3176 /* ./syntax//mmbuilder.nit:583 */
3177 REGB0 = TAG_Bool(true);
3178 goto label1;
3179 label1: while(0);
3180 stack_frame_head = fra.me.prev;
3181 return REGB0;
3182 }
3183 val_t mmbuilder___AStdClassdef___name(val_t p0){
3184 struct {struct stack_frame_t me;} fra;
3185 val_t REGB0;
3186 val_t tmp;
3187 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3188 fra.me.file = LOCATE_mmbuilder;
3189 fra.me.line = 587;
3190 fra.me.meth = LOCATE_mmbuilder___AStdClassdef___name;
3191 fra.me.has_broke = 0;
3192 fra.me.REG_size = 1;
3193 fra.me.REG[0] = NIT_NULL;
3194 fra.me.REG[0] = p0;
3195 /* ./syntax//mmbuilder.nit:589 */
3196 fra.me.REG[0] = CALL_parser_nodes___AStdClassdef___n_id(fra.me.REG[0])(fra.me.REG[0]);
3197 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3198 if (UNTAG_Bool(REGB0)) {
3199 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 589);
3200 }
3201 fra.me.REG[0] = CALL_syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
3202 goto label1;
3203 label1: while(0);
3204 stack_frame_head = fra.me.prev;
3205 return fra.me.REG[0];
3206 }
3207 val_t mmbuilder___AStdClassdef___arity(val_t p0){
3208 struct {struct stack_frame_t me;} fra;
3209 val_t REGB0;
3210 val_t tmp;
3211 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3212 fra.me.file = LOCATE_mmbuilder;
3213 fra.me.line = 591;
3214 fra.me.meth = LOCATE_mmbuilder___AStdClassdef___arity;
3215 fra.me.has_broke = 0;
3216 fra.me.REG_size = 1;
3217 fra.me.REG[0] = NIT_NULL;
3218 fra.me.REG[0] = p0;
3219 /* ./syntax//mmbuilder.nit:593 */
3220 fra.me.REG[0] = CALL_parser_nodes___AStdClassdef___n_formaldefs(fra.me.REG[0])(fra.me.REG[0]);
3221 REGB0 = CALL_abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
3222 goto label1;
3223 label1: while(0);
3224 stack_frame_head = fra.me.prev;
3225 return REGB0;
3226 }
3227 void mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p1){
3228 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
3229 val_t REGB0;
3230 val_t REGB1;
3231 val_t REGB2;
3232 val_t tmp;
3233 static val_t once_value_1; /* Once value */
3234 static val_t once_value_2; /* Once value */
3235 static val_t once_value_3; /* Once value */
3236 static val_t once_value_4; /* Once value */
3237 static val_t once_value_5; /* Once value */
3238 static val_t once_value_6; /* Once value */
3239 static val_t once_value_7; /* Once value */
3240 static val_t once_value_8; /* Once value */
3241 static val_t once_value_9; /* Once value */
3242 static val_t once_value_10; /* Once value */
3243 static val_t once_value_11; /* Once value */
3244 static val_t once_value_12; /* Once value */
3245 static val_t once_value_13; /* Once value */
3246 static val_t once_value_14; /* Once value */
3247 static val_t once_value_17; /* Once value */
3248 static val_t once_value_18; /* Once value */
3249 static val_t once_value_19; /* Once value */
3250 static val_t once_value_20; /* Once value */
3251 static val_t once_value_21; /* Once value */
3252 static val_t once_value_22; /* Once value */
3253 static val_t once_value_23; /* Once value */
3254 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3255 fra.me.file = LOCATE_mmbuilder;
3256 fra.me.line = 595;
3257 fra.me.meth = LOCATE_mmbuilder___AStdClassdef___accept_class_verifier;
3258 fra.me.has_broke = 0;
3259 fra.me.REG_size = 9;
3260 fra.me.REG[0] = NIT_NULL;
3261 fra.me.REG[1] = NIT_NULL;
3262 fra.me.REG[2] = NIT_NULL;
3263 fra.me.REG[3] = NIT_NULL;
3264 fra.me.REG[4] = NIT_NULL;
3265 fra.me.REG[5] = NIT_NULL;
3266 fra.me.REG[6] = NIT_NULL;
3267 fra.me.REG[7] = NIT_NULL;
3268 fra.me.REG[8] = NIT_NULL;
3269 fra.me.REG[0] = p0;
3270 fra.me.REG[1] = p1;
3271 /* ./syntax//mmbuilder.nit:595 */
3272 fra.me.REG[2] = fra.me.REG[0];
3273 fra.me.REG[3] = fra.me.REG[1];
3274 /* ./syntax//mmbuilder.nit:597 */
3275 CALL_SUPER_mmbuilder___AStdClassdef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3276 /* ./syntax//mmbuilder.nit:598 */
3277 fra.me.REG[1] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3278 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3279 if (UNTAG_Bool(REGB0)) {
3280 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 598);
3281 }
3282 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
3283 /* ./syntax//mmbuilder.nit:599 */
3284 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
3285 fra.me.REG[4] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3286 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[0],fra.me.REG[4]));
3287 if (UNTAG_Bool(REGB0)) {
3288 } else {
3289 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
3290 REGB0 = REGB1;
3291 }
3292 if (UNTAG_Bool(REGB0)) {
3293 /* ./syntax//mmbuilder.nit:601 */
3294 REGB0 = CALL_mmbuilder___AClassdef___visibility_level(fra.me.REG[2])(fra.me.REG[2]);
3295 CALL_abstractmetamodel___MMGlobalClass___visibility_level__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
3296 /* ./syntax//mmbuilder.nit:602 */
3297 fra.me.REG[4] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
3298 REGB0 = CALL_mmbuilder___AClasskind___is_interface(fra.me.REG[4])(fra.me.REG[4]);
3299 CALL_abstractmetamodel___MMGlobalClass___is_interface__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
3300 /* ./syntax//mmbuilder.nit:603 */
3301 fra.me.REG[4] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
3302 REGB0 = CALL_mmbuilder___AClasskind___is_abstract(fra.me.REG[4])(fra.me.REG[4]);
3303 CALL_abstractmetamodel___MMGlobalClass___is_abstract__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
3304 /* ./syntax//mmbuilder.nit:604 */
3305 fra.me.REG[4] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
3306 REGB0 = CALL_mmbuilder___AClasskind___is_enum(fra.me.REG[4])(fra.me.REG[4]);
3307 CALL_abstractmetamodel___MMGlobalClass___is_enum__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
3308 /* ./syntax//mmbuilder.nit:605 */
3309 fra.me.REG[4] = CALL_parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
3310 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3311 if (UNTAG_Bool(REGB0)) {
3312 } else {
3313 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3314 if (UNTAG_Bool(REGB1)) {
3315 REGB1 = TAG_Bool(false);
3316 REGB0 = REGB1;
3317 } else {
3318 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
3319 REGB0 = REGB1;
3320 }
3321 }
3322 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3323 if (UNTAG_Bool(REGB0)) {
3324 /* ./syntax//mmbuilder.nit:606 */
3325 REGB0 = TAG_Int(3);
3326 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
3327 if (!once_value_1) {
3328 fra.me.REG[0] = BOX_NativeString("Redef error: No class ");
3329 REGB0 = TAG_Int(22);
3330 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
3331 once_value_1 = fra.me.REG[0];
3332 register_static_object(&once_value_1);
3333 } else fra.me.REG[0] = once_value_1;
3334 fra.me.REG[0] = fra.me.REG[0];
3335 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
3336 fra.me.REG[0] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3337 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
3338 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
3339 if (!once_value_2) {
3340 fra.me.REG[0] = BOX_NativeString(" is imported. Remove the redef keyword to define a new class.");
3341 REGB0 = TAG_Int(61);
3342 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
3343 once_value_2 = fra.me.REG[0];
3344 register_static_object(&once_value_2);
3345 } else fra.me.REG[0] = once_value_2;
3346 fra.me.REG[0] = fra.me.REG[0];
3347 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
3348 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3349 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]);
3350 }
3351 /* ./syntax//mmbuilder.nit:609 */
3352 fra.me.REG[4] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3353 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3354 if (UNTAG_Bool(REGB0)) {
3355 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 609);
3356 }
3357 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[4])(fra.me.REG[4]);
3358 fra.me.REG[4] = CALL_partial_order___PartialOrderElement___direct_greaters(fra.me.REG[4])(fra.me.REG[4]);
3359 /* ./../lib/standard//collection//array.nit:234 */
3360 REGB0 = TAG_Int(0);
3361 /* ./../lib/standard//collection//array.nit:235 */
3362 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
3363 if (UNTAG_Bool(REGB1)) {
3364 } else {
3365 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
3366 }
3367 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
3368 /* ./../lib/standard//collection//array.nit:236 */
3369 fra.me.REG[0] = ATTR_array___Array____items(fra.me.REG[4]);
3370 /* ./../lib/standard//collection//array.nit:237 */
3371 while(1) {
3372 /* ./../lib/standard//collection//array.nit:23 */
3373 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
3374 if (UNTAG_Bool(REGB1)) {
3375 } else {
3376 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
3377 }
3378 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
3379 /* ./../lib/standard//kernel.nit:212 */
3380 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3381 /* ./../lib/standard//collection//array.nit:237 */
3382 if (UNTAG_Bool(REGB1)) {
3383 /* ./../lib/standard//collection//array.nit:238 */
3384 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3385 if (UNTAG_Bool(REGB1)) {
3386 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
3387 }
3388 /* ./../lib/standard//collection//array.nit:654 */
3389 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
3390 /* ./syntax//mmbuilder.nit:610 */
3391 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
3392 /* ./syntax//mmbuilder.nit:611 */
3393 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
3394 if (UNTAG_Bool(REGB1)) {
3395 /* ./syntax//mmbuilder.nit:612 */
3396 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
3397 if (UNTAG_Bool(REGB1)) {
3398 /* ./syntax//mmbuilder.nit:613 */
3399 REGB1 = TAG_Int(5);
3400 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB1);
3401 if (!once_value_3) {
3402 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
3403 REGB1 = TAG_Int(25);
3404 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3405 once_value_3 = fra.me.REG[8];
3406 register_static_object(&once_value_3);
3407 } else fra.me.REG[8] = once_value_3;
3408 fra.me.REG[8] = fra.me.REG[8];
3409 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3410 fra.me.REG[8] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3411 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3412 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3413 if (!once_value_4) {
3414 fra.me.REG[8] = BOX_NativeString(" try to specialise enum class ");
3415 REGB1 = TAG_Int(30);
3416 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3417 once_value_4 = fra.me.REG[8];
3418 register_static_object(&once_value_4);
3419 } else fra.me.REG[8] = once_value_4;
3420 fra.me.REG[8] = fra.me.REG[8];
3421 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3422 fra.me.REG[8] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3423 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3424 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3425 if (!once_value_5) {
3426 fra.me.REG[8] = BOX_NativeString(".");
3427 REGB1 = TAG_Int(1);
3428 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3429 once_value_5 = fra.me.REG[8];
3430 register_static_object(&once_value_5);
3431 } else fra.me.REG[8] = once_value_5;
3432 fra.me.REG[8] = fra.me.REG[8];
3433 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3434 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3435 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3436 } else {
3437 /* ./syntax//mmbuilder.nit:614 */
3438 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
3439 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3440 if (UNTAG_Bool(REGB1)) {
3441 /* ./syntax//mmbuilder.nit:615 */
3442 REGB1 = TAG_Int(5);
3443 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB1);
3444 if (!once_value_6) {
3445 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
3446 REGB1 = TAG_Int(25);
3447 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3448 once_value_6 = fra.me.REG[8];
3449 register_static_object(&once_value_6);
3450 } else fra.me.REG[8] = once_value_6;
3451 fra.me.REG[8] = fra.me.REG[8];
3452 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3453 fra.me.REG[8] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3454 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3455 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3456 if (!once_value_7) {
3457 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
3458 REGB1 = TAG_Int(25);
3459 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3460 once_value_7 = fra.me.REG[8];
3461 register_static_object(&once_value_7);
3462 } else fra.me.REG[8] = once_value_7;
3463 fra.me.REG[8] = fra.me.REG[8];
3464 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3465 fra.me.REG[8] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3466 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3467 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3468 if (!once_value_8) {
3469 fra.me.REG[8] = BOX_NativeString(".");
3470 REGB1 = TAG_Int(1);
3471 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3472 once_value_8 = fra.me.REG[8];
3473 register_static_object(&once_value_8);
3474 } else fra.me.REG[8] = once_value_8;
3475 fra.me.REG[8] = fra.me.REG[8];
3476 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3477 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3478 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3479 }
3480 }
3481 } else {
3482 /* ./syntax//mmbuilder.nit:617 */
3483 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
3484 if (UNTAG_Bool(REGB1)) {
3485 /* ./syntax//mmbuilder.nit:618 */
3486 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
3487 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3488 if (UNTAG_Bool(REGB1)) {
3489 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
3490 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3491 } else {
3492 REGB2 = TAG_Bool(false);
3493 REGB1 = REGB2;
3494 }
3495 if (UNTAG_Bool(REGB1)) {
3496 /* ./syntax//mmbuilder.nit:619 */
3497 REGB1 = TAG_Int(5);
3498 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB1);
3499 if (!once_value_9) {
3500 fra.me.REG[8] = BOX_NativeString("Special error: Enum class ");
3501 REGB1 = TAG_Int(26);
3502 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3503 once_value_9 = fra.me.REG[8];
3504 register_static_object(&once_value_9);
3505 } else fra.me.REG[8] = once_value_9;
3506 fra.me.REG[8] = fra.me.REG[8];
3507 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3508 fra.me.REG[8] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3509 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3510 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3511 if (!once_value_10) {
3512 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
3513 REGB1 = TAG_Int(25);
3514 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3515 once_value_10 = fra.me.REG[8];
3516 register_static_object(&once_value_10);
3517 } else fra.me.REG[8] = once_value_10;
3518 fra.me.REG[8] = fra.me.REG[8];
3519 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3520 fra.me.REG[8] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3521 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3522 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3523 if (!once_value_11) {
3524 fra.me.REG[8] = BOX_NativeString(".");
3525 REGB1 = TAG_Int(1);
3526 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3527 once_value_11 = fra.me.REG[8];
3528 register_static_object(&once_value_11);
3529 } else fra.me.REG[8] = once_value_11;
3530 fra.me.REG[8] = fra.me.REG[8];
3531 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3532 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3533 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3534 }
3535 } else {
3536 /* ./syntax//mmbuilder.nit:622 */
3537 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
3538 if (UNTAG_Bool(REGB1)) {
3539 /* ./syntax//mmbuilder.nit:623 */
3540 REGB1 = TAG_Int(5);
3541 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
3542 if (!once_value_12) {
3543 fra.me.REG[7] = BOX_NativeString("Special error: Class ");
3544 REGB1 = TAG_Int(21);
3545 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
3546 once_value_12 = fra.me.REG[7];
3547 register_static_object(&once_value_12);
3548 } else fra.me.REG[7] = once_value_12;
3549 fra.me.REG[7] = fra.me.REG[7];
3550 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
3551 fra.me.REG[7] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3552 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3553 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
3554 if (!once_value_13) {
3555 fra.me.REG[7] = BOX_NativeString(" try to specialise enum class ");
3556 REGB1 = TAG_Int(30);
3557 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
3558 once_value_13 = fra.me.REG[7];
3559 register_static_object(&once_value_13);
3560 } else fra.me.REG[7] = once_value_13;
3561 fra.me.REG[7] = fra.me.REG[7];
3562 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
3563 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3564 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
3565 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
3566 if (!once_value_14) {
3567 fra.me.REG[5] = BOX_NativeString(".");
3568 REGB1 = TAG_Int(1);
3569 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
3570 once_value_14 = fra.me.REG[5];
3571 register_static_object(&once_value_14);
3572 } else fra.me.REG[5] = once_value_14;
3573 fra.me.REG[5] = fra.me.REG[5];
3574 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
3575 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
3576 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
3577 }
3578 }
3579 }
3580 /* ./../lib/standard//collection//array.nit:239 */
3581 REGB1 = TAG_Int(1);
3582 /* ./../lib/standard//kernel.nit:215 */
3583 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
3584 /* ./../lib/standard//collection//array.nit:239 */
3585 REGB0 = REGB1;
3586 } else {
3587 /* ./../lib/standard//collection//array.nit:237 */
3588 goto label15;
3589 }
3590 }
3591 label15: while(0);
3592 /* ./syntax//mmbuilder.nit:628 */
3593 goto label16;
3594 }
3595 /* ./syntax//mmbuilder.nit:633 */
3596 fra.me.REG[0] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
3597 CALL_syntax_base___MMGlobalClass___check_visibility(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
3598 /* ./syntax//mmbuilder.nit:634 */
3599 fra.me.REG[0] = CALL_parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
3600 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3601 if (UNTAG_Bool(REGB0)) {
3602 } else {
3603 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3604 if (UNTAG_Bool(REGB1)) {
3605 REGB1 = TAG_Bool(false);
3606 REGB0 = REGB1;
3607 } else {
3608 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
3609 REGB0 = REGB1;
3610 }
3611 }
3612 if (UNTAG_Bool(REGB0)) {
3613 /* ./syntax//mmbuilder.nit:635 */
3614 REGB0 = TAG_Int(3);
3615 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0);
3616 if (!once_value_17) {
3617 fra.me.REG[4] = BOX_NativeString("Redef error: ");
3618 REGB0 = TAG_Int(13);
3619 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
3620 once_value_17 = fra.me.REG[4];
3621 register_static_object(&once_value_17);
3622 } else fra.me.REG[4] = once_value_17;
3623 fra.me.REG[4] = fra.me.REG[4];
3624 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
3625 fra.me.REG[4] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3626 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3627 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
3628 if (!once_value_18) {
3629 fra.me.REG[4] = BOX_NativeString(" is an imported class. Add the redef keyword to refine it.");
3630 REGB0 = TAG_Int(58);
3631 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
3632 once_value_18 = fra.me.REG[4];
3633 register_static_object(&once_value_18);
3634 } else fra.me.REG[4] = once_value_18;
3635 fra.me.REG[4] = fra.me.REG[4];
3636 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
3637 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
3638 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
3639 /* ./syntax//mmbuilder.nit:636 */
3640 goto label16;
3641 }
3642 /* ./syntax//mmbuilder.nit:639 */
3643 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
3644 REGB0 = CALL_abstractmetamodel___MMLocalClass___arity(fra.me.REG[0])(fra.me.REG[0]);
3645 fra.me.REG[0] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3646 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3647 if (UNTAG_Bool(REGB1)) {
3648 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 639);
3649 }
3650 REGB1 = CALL_abstractmetamodel___MMLocalClass___arity(fra.me.REG[0])(fra.me.REG[0]);
3651 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
3652 if (UNTAG_Bool(REGB2)) {
3653 } else {
3654 /* ./../lib/standard//kernel.nit:207 */
3655 REGB1 = TAG_Bool((REGB0)==(REGB1));
3656 /* ./syntax//mmbuilder.nit:639 */
3657 REGB2 = REGB1;
3658 }
3659 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
3660 if (UNTAG_Bool(REGB2)) {
3661 /* ./syntax//mmbuilder.nit:640 */
3662 REGB2 = TAG_Int(5);
3663 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB2);
3664 if (!once_value_19) {
3665 fra.me.REG[4] = BOX_NativeString("Redef error: Formal parameter arity missmatch; got ");
3666 REGB2 = TAG_Int(51);
3667 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
3668 once_value_19 = fra.me.REG[4];
3669 register_static_object(&once_value_19);
3670 } else fra.me.REG[4] = once_value_19;
3671 fra.me.REG[4] = fra.me.REG[4];
3672 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
3673 fra.me.REG[4] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3674 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3675 if (UNTAG_Bool(REGB2)) {
3676 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 640);
3677 }
3678 REGB2 = CALL_abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
3679 fra.me.REG[4] = CALL_string___Object___to_s(REGB2)(REGB2);
3680 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
3681 if (!once_value_20) {
3682 fra.me.REG[4] = BOX_NativeString(", expected ");
3683 REGB2 = TAG_Int(11);
3684 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
3685 once_value_20 = fra.me.REG[4];
3686 register_static_object(&once_value_20);
3687 } else fra.me.REG[4] = once_value_20;
3688 fra.me.REG[4] = fra.me.REG[4];
3689 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
3690 fra.me.REG[4] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
3691 REGB2 = CALL_abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
3692 fra.me.REG[4] = CALL_string___Object___to_s(REGB2)(REGB2);
3693 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
3694 if (!once_value_21) {
3695 fra.me.REG[4] = BOX_NativeString(".");
3696 REGB2 = TAG_Int(1);
3697 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
3698 once_value_21 = fra.me.REG[4];
3699 register_static_object(&once_value_21);
3700 } else fra.me.REG[4] = once_value_21;
3701 fra.me.REG[4] = fra.me.REG[4];
3702 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
3703 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
3704 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
3705 }
3706 /* ./syntax//mmbuilder.nit:644 */
3707 REGB2 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
3708 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
3709 if (UNTAG_Bool(REGB2)) {
3710 fra.me.REG[0] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
3711 REGB2 = CALL_mmbuilder___AClasskind___is_interface(fra.me.REG[0])(fra.me.REG[0]);
3712 } else {
3713 REGB1 = TAG_Bool(false);
3714 REGB2 = REGB1;
3715 }
3716 if (UNTAG_Bool(REGB2)) {
3717 REGB2 = TAG_Bool(true);
3718 } else {
3719 /* ./syntax//mmbuilder.nit:645 */
3720 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[1])(fra.me.REG[1]);
3721 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3722 /* ./syntax//mmbuilder.nit:644 */
3723 REGB2 = REGB1;
3724 }
3725 if (UNTAG_Bool(REGB2)) {
3726 /* ./syntax//mmbuilder.nit:645 */
3727 fra.me.REG[0] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
3728 REGB2 = CALL_mmbuilder___AClasskind___is_abstract(fra.me.REG[0])(fra.me.REG[0]);
3729 } else {
3730 /* ./syntax//mmbuilder.nit:644 */
3731 REGB1 = TAG_Bool(false);
3732 REGB2 = REGB1;
3733 }
3734 if (UNTAG_Bool(REGB2)) {
3735 REGB2 = TAG_Bool(true);
3736 } else {
3737 /* ./syntax//mmbuilder.nit:646 */
3738 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
3739 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3740 /* ./syntax//mmbuilder.nit:644 */
3741 REGB2 = REGB1;
3742 }
3743 if (UNTAG_Bool(REGB2)) {
3744 /* ./syntax//mmbuilder.nit:646 */
3745 fra.me.REG[1] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
3746 REGB2 = CALL_mmbuilder___AClasskind___is_enum(fra.me.REG[1])(fra.me.REG[1]);
3747 } else {
3748 /* ./syntax//mmbuilder.nit:644 */
3749 REGB1 = TAG_Bool(false);
3750 REGB2 = REGB1;
3751 }
3752 /* ./syntax//mmbuilder.nit:643 */
3753 if (UNTAG_Bool(REGB2)) {
3754 /* ./syntax//mmbuilder.nit:648 */
3755 REGB2 = TAG_Int(3);
3756 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB2);
3757 if (!once_value_22) {
3758 fra.me.REG[0] = BOX_NativeString("Redef error: cannot change kind of class ");
3759 REGB2 = TAG_Int(41);
3760 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB2);
3761 once_value_22 = fra.me.REG[0];
3762 register_static_object(&once_value_22);
3763 } else fra.me.REG[0] = once_value_22;
3764 fra.me.REG[0] = fra.me.REG[0];
3765 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3766 fra.me.REG[0] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3767 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
3768 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3769 if (!once_value_23) {
3770 fra.me.REG[0] = BOX_NativeString(".");
3771 REGB2 = TAG_Int(1);
3772 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB2);
3773 once_value_23 = fra.me.REG[0];
3774 register_static_object(&once_value_23);
3775 } else fra.me.REG[0] = once_value_23;
3776 fra.me.REG[0] = fra.me.REG[0];
3777 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3778 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
3779 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[1]);
3780 }
3781 label16: while(0);
3782 stack_frame_head = fra.me.prev;
3783 return;
3784 }
3785 val_t mmbuilder___AStdClassdef___visibility_level(val_t p0){
3786 struct {struct stack_frame_t me;} fra;
3787 val_t REGB0;
3788 val_t tmp;
3789 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3790 fra.me.file = LOCATE_mmbuilder;
3791 fra.me.line = 652;
3792 fra.me.meth = LOCATE_mmbuilder___AStdClassdef___visibility_level;
3793 fra.me.has_broke = 0;
3794 fra.me.REG_size = 1;
3795 fra.me.REG[0] = NIT_NULL;
3796 fra.me.REG[0] = p0;
3797 /* ./syntax//mmbuilder.nit:654 */
3798 fra.me.REG[0] = CALL_parser_nodes___AStdClassdef___n_visibility(fra.me.REG[0])(fra.me.REG[0]);
3799 REGB0 = CALL_mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
3800 goto label1;
3801 label1: while(0);
3802 stack_frame_head = fra.me.prev;
3803 return REGB0;
3804 }
3805 val_t mmbuilder___AMainClassdef___name(val_t p0){
3806 struct {struct stack_frame_t me;} fra;
3807 val_t REGB0;
3808 val_t tmp;
3809 static val_t once_value_1; /* Once value */
3810 static val_t once_value_2; /* Once value */
3811 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3812 fra.me.file = LOCATE_mmbuilder;
3813 fra.me.line = 659;
3814 fra.me.meth = LOCATE_mmbuilder___AMainClassdef___name;
3815 fra.me.has_broke = 0;
3816 fra.me.REG_size = 1;
3817 fra.me.REG[0] = NIT_NULL;
3818 fra.me.REG[0] = p0;
3819 /* ./syntax//mmbuilder.nit:661 */
3820 if (!once_value_1) {
3821 if (!once_value_2) {
3822 fra.me.REG[0] = BOX_NativeString("Sys");
3823 REGB0 = TAG_Int(3);
3824 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
3825 once_value_2 = fra.me.REG[0];
3826 register_static_object(&once_value_2);
3827 } else fra.me.REG[0] = once_value_2;
3828 fra.me.REG[0] = fra.me.REG[0];
3829 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
3830 once_value_1 = fra.me.REG[0];
3831 register_static_object(&once_value_1);
3832 } else fra.me.REG[0] = once_value_1;
3833 fra.me.REG[0] = fra.me.REG[0];
3834 goto label3;
3835 label3: while(0);
3836 stack_frame_head = fra.me.prev;
3837 return fra.me.REG[0];
3838 }
3839 val_t mmbuilder___ATopClassdef___name(val_t p0){
3840 struct {struct stack_frame_t me;} fra;
3841 val_t REGB0;
3842 val_t tmp;
3843 static val_t once_value_1; /* Once value */
3844 static val_t once_value_2; /* Once value */
3845 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3846 fra.me.file = LOCATE_mmbuilder;
3847 fra.me.line = 666;
3848 fra.me.meth = LOCATE_mmbuilder___ATopClassdef___name;
3849 fra.me.has_broke = 0;
3850 fra.me.REG_size = 1;
3851 fra.me.REG[0] = NIT_NULL;
3852 fra.me.REG[0] = p0;
3853 /* ./syntax//mmbuilder.nit:668 */
3854 if (!once_value_1) {
3855 if (!once_value_2) {
3856 fra.me.REG[0] = BOX_NativeString("Object");
3857 REGB0 = TAG_Int(6);
3858 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
3859 once_value_2 = fra.me.REG[0];
3860 register_static_object(&once_value_2);
3861 } else fra.me.REG[0] = once_value_2;
3862 fra.me.REG[0] = fra.me.REG[0];
3863 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
3864 once_value_1 = fra.me.REG[0];
3865 register_static_object(&once_value_1);
3866 } else fra.me.REG[0] = once_value_1;
3867 fra.me.REG[0] = fra.me.REG[0];
3868 goto label3;
3869 label3: while(0);
3870 stack_frame_head = fra.me.prev;
3871 return fra.me.REG[0];
3872 }
3873 void mmbuilder___AFormaldef___accept_class_builder(val_t p0, val_t p1){
3874 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
3875 val_t REGB0;
3876 val_t REGB1;
3877 val_t tmp;
3878 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3879 fra.me.file = LOCATE_mmbuilder;
3880 fra.me.line = 676;
3881 fra.me.meth = LOCATE_mmbuilder___AFormaldef___accept_class_builder;
3882 fra.me.has_broke = 0;
3883 fra.me.REG_size = 6;
3884 fra.me.REG[0] = NIT_NULL;
3885 fra.me.REG[1] = NIT_NULL;
3886 fra.me.REG[2] = NIT_NULL;
3887 fra.me.REG[3] = NIT_NULL;
3888 fra.me.REG[4] = NIT_NULL;
3889 fra.me.REG[5] = NIT_NULL;
3890 fra.me.REG[0] = p0;
3891 fra.me.REG[1] = p1;
3892 /* ./syntax//mmbuilder.nit:676 */
3893 fra.me.REG[2] = fra.me.REG[0];
3894 fra.me.REG[3] = fra.me.REG[1];
3895 /* ./syntax//mmbuilder.nit:678 */
3896 fra.me.REG[4] = CALL_parser_nodes___AFormaldef___n_id(fra.me.REG[2])(fra.me.REG[2]);
3897 fra.me.REG[4] = CALL_syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
3898 /* ./syntax//mmbuilder.nit:679 */
3899 REGB0 = CALL_mmbuilder___ClassBuilderVisitor___local_class_arity(fra.me.REG[3])(fra.me.REG[3]);
3900 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
3901 fra.me.REG[5] = NEW_MMTypeFormalParameter_genericity___MMTypeFormalParameter___init(fra.me.REG[4], REGB0, fra.me.REG[5]);
3902 /* ./syntax//mmbuilder.nit:680 */
3903 ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]) = fra.me.REG[5];
3904 /* ./syntax//mmbuilder.nit:681 */
3905 REGB0 = CALL_mmbuilder___ClassBuilderVisitor___local_class_arity(fra.me.REG[3])(fra.me.REG[3]);
3906 REGB1 = TAG_Int(1);
3907 /* ./../lib/standard//kernel.nit:215 */
3908 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
3909 /* ./syntax//mmbuilder.nit:681 */
3910 CALL_mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB1);
3911 /* ./syntax//mmbuilder.nit:682 */
3912 fra.me.REG[2] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
3913 CALL_genericity___MMLocalClass___register_formal(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
3914 /* ./syntax//mmbuilder.nit:683 */
3915 fra.me.REG[3] = CALL_mmbuilder___ClassBuilderVisitor___formals(fra.me.REG[3])(fra.me.REG[3]);
3916 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3917 if (UNTAG_Bool(REGB1)) {
3918 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 683);
3919 }
3920 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]);
3921 /* ./syntax//mmbuilder.nit:684 */
3922 CALL_SUPER_mmbuilder___AFormaldef___accept_class_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3923 stack_frame_head = fra.me.prev;
3924 return;
3925 }
3926 void mmbuilder___AFormaldef___accept_class_verifier(val_t p0, val_t p1){
3927 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
3928 val_t REGB0;
3929 val_t REGB1;
3930 val_t tmp;
3931 static val_t once_value_2; /* Once value */
3932 static val_t once_value_3; /* Once value */
3933 static val_t once_value_4; /* Once value */
3934 static val_t once_value_5; /* Once value */
3935 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3936 fra.me.file = LOCATE_mmbuilder;
3937 fra.me.line = 687;
3938 fra.me.meth = LOCATE_mmbuilder___AFormaldef___accept_class_verifier;
3939 fra.me.has_broke = 0;
3940 fra.me.REG_size = 6;
3941 fra.me.REG[0] = NIT_NULL;
3942 fra.me.REG[1] = NIT_NULL;
3943 fra.me.REG[2] = NIT_NULL;
3944 fra.me.REG[3] = NIT_NULL;
3945 fra.me.REG[4] = NIT_NULL;
3946 fra.me.REG[5] = NIT_NULL;
3947 fra.me.REG[0] = p0;
3948 fra.me.REG[1] = p1;
3949 /* ./syntax//mmbuilder.nit:687 */
3950 fra.me.REG[2] = fra.me.REG[0];
3951 fra.me.REG[3] = fra.me.REG[1];
3952 /* ./syntax//mmbuilder.nit:689 */
3953 CALL_SUPER_mmbuilder___AFormaldef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3954 /* ./syntax//mmbuilder.nit:690 */
3955 fra.me.REG[1] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
3956 /* ./syntax//mmbuilder.nit:691 */
3957 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
3958 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[0])(fra.me.REG[0]);
3959 /* ./syntax//mmbuilder.nit:692 */
3960 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
3961 if (UNTAG_Bool(REGB0)) {
3962 } else {
3963 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3964 REGB0 = REGB1;
3965 }
3966 if (UNTAG_Bool(REGB0)) {
3967 /* ./syntax//mmbuilder.nit:693 */
3968 fra.me.REG[4] = CALL_parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
3969 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3970 if (UNTAG_Bool(REGB0)) {
3971 } else {
3972 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3973 if (UNTAG_Bool(REGB1)) {
3974 REGB1 = TAG_Bool(false);
3975 REGB0 = REGB1;
3976 } else {
3977 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
3978 REGB0 = REGB1;
3979 }
3980 }
3981 if (UNTAG_Bool(REGB0)) {
3982 /* ./syntax//mmbuilder.nit:694 */
3983 fra.me.REG[4] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]);
3984 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
3985 fra.me.REG[5] = CALL_inheritance___MMModule___type_any(fra.me.REG[5])(fra.me.REG[5]);
3986 fra.me.REG[5] = CALL_static_type___MMType___as_nullable(fra.me.REG[5])(fra.me.REG[5]);
3987 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3988 if (UNTAG_Bool(REGB0)) {
3989 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 694);
3990 }
3991 CALL_genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
3992 } else {
3993 /* ./syntax//mmbuilder.nit:696 */
3994 fra.me.REG[5] = CALL_parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
3995 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3996 if (UNTAG_Bool(REGB0)) {
3997 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 696);
3998 }
3999 fra.me.REG[5] = CALL_syntax_base___AType___get_stype(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
4000 /* ./syntax//mmbuilder.nit:697 */
4001 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4002 if (UNTAG_Bool(REGB0)) {
4003 } else {
4004 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4005 if (UNTAG_Bool(REGB1)) {
4006 REGB1 = TAG_Bool(false);
4007 REGB0 = REGB1;
4008 } else {
4009 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
4010 REGB0 = REGB1;
4011 }
4012 }
4013 if (UNTAG_Bool(REGB0)) {
4014 goto label1;
4015 }
4016 /* ./syntax//mmbuilder.nit:698 */
4017 fra.me.REG[4] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]);
4018 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4019 if (UNTAG_Bool(REGB0)) {
4020 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 698);
4021 }
4022 CALL_genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
4023 }
4024 } else {
4025 /* ./syntax//mmbuilder.nit:701 */
4026 fra.me.REG[5] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]);
4027 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4028 if (UNTAG_Bool(REGB0)) {
4029 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 701);
4030 }
4031 REGB0 = CALL_genericity___MMTypeFormalParameter___position(fra.me.REG[5])(fra.me.REG[5]);
4032 fra.me.REG[0] = CALL_genericity___MMLocalClass___get_formal(fra.me.REG[0])(fra.me.REG[0], REGB0);
4033 fra.me.REG[0] = CALL_type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]);
4034 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
4035 fra.me.REG[5] = CALL_static_type___MMType___for_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
4036 /* ./syntax//mmbuilder.nit:702 */
4037 fra.me.REG[0] = CALL_parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
4038 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4039 if (UNTAG_Bool(REGB0)) {
4040 } else {
4041 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4042 if (UNTAG_Bool(REGB1)) {
4043 REGB1 = TAG_Bool(false);
4044 REGB0 = REGB1;
4045 } else {
4046 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
4047 REGB0 = REGB1;
4048 }
4049 }
4050 if (UNTAG_Bool(REGB0)) {
4051 /* ./syntax//mmbuilder.nit:703 */
4052 fra.me.REG[0] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]);
4053 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4054 if (UNTAG_Bool(REGB0)) {
4055 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 703);
4056 }
4057 CALL_genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
4058 } else {
4059 /* ./syntax//mmbuilder.nit:705 */
4060 fra.me.REG[0] = CALL_parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
4061 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4062 if (UNTAG_Bool(REGB0)) {
4063 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 705);
4064 }
4065 fra.me.REG[0] = CALL_syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
4066 /* ./syntax//mmbuilder.nit:706 */
4067 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4068 if (UNTAG_Bool(REGB0)) {
4069 } else {
4070 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4071 if (UNTAG_Bool(REGB1)) {
4072 REGB1 = TAG_Bool(false);
4073 REGB0 = REGB1;
4074 } else {
4075 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
4076 REGB0 = REGB1;
4077 }
4078 }
4079 if (UNTAG_Bool(REGB0)) {
4080 goto label1;
4081 }
4082 /* ./syntax//mmbuilder.nit:707 */
4083 fra.me.REG[4] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]);
4084 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4085 if (UNTAG_Bool(REGB0)) {
4086 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 707);
4087 }
4088 CALL_genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
4089 /* ./syntax//mmbuilder.nit:708 */
4090 fra.me.REG[0] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]);
4091 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4092 if (UNTAG_Bool(REGB0)) {
4093 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 708);
4094 }
4095 fra.me.REG[0] = CALL_type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]);
4096 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[5]));
4097 if (UNTAG_Bool(REGB0)) {
4098 } else {
4099 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
4100 REGB0 = REGB1;
4101 }
4102 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4103 if (UNTAG_Bool(REGB0)) {
4104 /* ./syntax//mmbuilder.nit:709 */
4105 REGB0 = TAG_Int(7);
4106 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0);
4107 if (!once_value_2) {
4108 fra.me.REG[4] = BOX_NativeString("Redef error: Cannot change formal parameter type of class ");
4109 REGB0 = TAG_Int(58);
4110 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
4111 once_value_2 = fra.me.REG[4];
4112 register_static_object(&once_value_2);
4113 } else fra.me.REG[4] = once_value_2;
4114 fra.me.REG[4] = fra.me.REG[4];
4115 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4116 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
4117 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4118 if (!once_value_3) {
4119 fra.me.REG[1] = BOX_NativeString("; got ");
4120 REGB0 = TAG_Int(6);
4121 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
4122 once_value_3 = fra.me.REG[1];
4123 register_static_object(&once_value_3);
4124 } else fra.me.REG[1] = once_value_3;
4125 fra.me.REG[1] = fra.me.REG[1];
4126 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4127 fra.me.REG[1] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]);
4128 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4129 if (UNTAG_Bool(REGB0)) {
4130 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 709);
4131 }
4132 fra.me.REG[1] = CALL_type_formal___MMTypeFormal___bound(fra.me.REG[1])(fra.me.REG[1]);
4133 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
4134 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4135 if (!once_value_4) {
4136 fra.me.REG[1] = BOX_NativeString(", expected ");
4137 REGB0 = TAG_Int(11);
4138 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
4139 once_value_4 = fra.me.REG[1];
4140 register_static_object(&once_value_4);
4141 } else fra.me.REG[1] = once_value_4;
4142 fra.me.REG[1] = fra.me.REG[1];
4143 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4144 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4145 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
4146 if (!once_value_5) {
4147 fra.me.REG[5] = BOX_NativeString(".");
4148 REGB0 = TAG_Int(1);
4149 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
4150 once_value_5 = fra.me.REG[5];
4151 register_static_object(&once_value_5);
4152 } else fra.me.REG[5] = once_value_5;
4153 fra.me.REG[5] = fra.me.REG[5];
4154 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
4155 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
4156 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
4157 }
4158 }
4159 }
4160 label1: while(0);
4161 stack_frame_head = fra.me.prev;
4162 return;
4163 }
4164 val_t mmbuilder___ASuperclass___ancestor(val_t p0){
4165 struct {struct stack_frame_t me;} fra;
4166 val_t tmp;
4167 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4168 fra.me.file = LOCATE_mmbuilder;
4169 fra.me.line = 717;
4170 fra.me.meth = LOCATE_mmbuilder___ASuperclass___ancestor;
4171 fra.me.has_broke = 0;
4172 fra.me.REG_size = 1;
4173 fra.me.REG[0] = NIT_NULL;
4174 fra.me.REG[0] = p0;
4175 /* ./syntax//mmbuilder.nit:717 */
4176 fra.me.REG[0] = ATTR_mmbuilder___ASuperclass____ancestor(fra.me.REG[0]);
4177 stack_frame_head = fra.me.prev;
4178 return fra.me.REG[0];
4179 }
4180 void mmbuilder___ASuperclass___accept_class_specialization_builder(val_t p0, val_t p1){
4181 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4182 val_t REGB0;
4183 val_t REGB1;
4184 val_t tmp;
4185 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4186 fra.me.file = LOCATE_mmbuilder;
4187 fra.me.line = 719;
4188 fra.me.meth = LOCATE_mmbuilder___ASuperclass___accept_class_specialization_builder;
4189 fra.me.has_broke = 0;
4190 fra.me.REG_size = 4;
4191 fra.me.REG[0] = NIT_NULL;
4192 fra.me.REG[1] = NIT_NULL;
4193 fra.me.REG[2] = NIT_NULL;
4194 fra.me.REG[3] = NIT_NULL;
4195 fra.me.REG[0] = p0;
4196 fra.me.REG[1] = p1;
4197 /* ./syntax//mmbuilder.nit:719 */
4198 fra.me.REG[2] = fra.me.REG[0];
4199 fra.me.REG[3] = fra.me.REG[1];
4200 /* ./syntax//mmbuilder.nit:721 */
4201 CALL_SUPER_mmbuilder___ASuperclass___accept_class_specialization_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4202 /* ./syntax//mmbuilder.nit:722 */
4203 fra.me.REG[1] = CALL_parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
4204 fra.me.REG[1] = CALL_syntax_base___AType___get_local_class(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
4205 /* ./syntax//mmbuilder.nit:723 */
4206 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4207 if (UNTAG_Bool(REGB0)) {
4208 } else {
4209 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4210 if (UNTAG_Bool(REGB1)) {
4211 REGB1 = TAG_Bool(false);
4212 REGB0 = REGB1;
4213 } else {
4214 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
4215 REGB0 = REGB1;
4216 }
4217 }
4218 if (UNTAG_Bool(REGB0)) {
4219 goto label1;
4220 }
4221 /* ./syntax//mmbuilder.nit:724 */
4222 fra.me.REG[1] = NEW_MMSrcAncestor_mmbuilder___MMSrcAncestor___init(fra.me.REG[1]);
4223 /* ./syntax//mmbuilder.nit:725 */
4224 ATTR_mmbuilder___ASuperclass____ancestor(fra.me.REG[2]) = fra.me.REG[1];
4225 /* ./syntax//mmbuilder.nit:726 */
4226 fra.me.REG[3] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
4227 CALL_inheritance___MMLocalClass___add_direct_parent(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4228 label1: while(0);
4229 stack_frame_head = fra.me.prev;
4230 return;
4231 }
4232 void mmbuilder___ASuperclass___accept_class_ancestor_builder(val_t p0, val_t p1){
4233 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4234 val_t REGB0;
4235 val_t tmp;
4236 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4237 fra.me.file = LOCATE_mmbuilder;
4238 fra.me.line = 729;
4239 fra.me.meth = LOCATE_mmbuilder___ASuperclass___accept_class_ancestor_builder;
4240 fra.me.has_broke = 0;
4241 fra.me.REG_size = 4;
4242 fra.me.REG[0] = NIT_NULL;
4243 fra.me.REG[1] = NIT_NULL;
4244 fra.me.REG[2] = NIT_NULL;
4245 fra.me.REG[3] = NIT_NULL;
4246 fra.me.REG[0] = p0;
4247 fra.me.REG[1] = p1;
4248 /* ./syntax//mmbuilder.nit:729 */
4249 fra.me.REG[2] = fra.me.REG[0];
4250 fra.me.REG[3] = fra.me.REG[1];
4251 /* ./syntax//mmbuilder.nit:731 */
4252 CALL_SUPER_mmbuilder___ASuperclass___accept_class_ancestor_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4253 /* ./syntax//mmbuilder.nit:732 */
4254 fra.me.REG[1] = ATTR_mmbuilder___ASuperclass____ancestor(fra.me.REG[2]);
4255 fra.me.REG[0] = CALL_parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
4256 fra.me.REG[0] = CALL_syntax_base___AType___get_unchecked_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
4257 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4258 if (UNTAG_Bool(REGB0)) {
4259 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 732);
4260 }
4261 CALL_static_type___MMAncestor___stype__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4262 /* ./syntax//mmbuilder.nit:733 */
4263 fra.me.REG[2] = ATTR_mmbuilder___ASuperclass____ancestor(fra.me.REG[2]);
4264 fra.me.REG[3] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
4265 fra.me.REG[3] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[3])(fra.me.REG[3]);
4266 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4267 if (UNTAG_Bool(REGB0)) {
4268 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 733);
4269 }
4270 CALL_static_type___MMAncestor___inheriter__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4271 stack_frame_head = fra.me.prev;
4272 return;
4273 }
4274 void mmbuilder___ASuperclass___accept_class_verifier(val_t p0, val_t p1){
4275 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4276 val_t tmp;
4277 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4278 fra.me.file = LOCATE_mmbuilder;
4279 fra.me.line = 736;
4280 fra.me.meth = LOCATE_mmbuilder___ASuperclass___accept_class_verifier;
4281 fra.me.has_broke = 0;
4282 fra.me.REG_size = 4;
4283 fra.me.REG[0] = NIT_NULL;
4284 fra.me.REG[1] = NIT_NULL;
4285 fra.me.REG[2] = NIT_NULL;
4286 fra.me.REG[3] = NIT_NULL;
4287 fra.me.REG[0] = p0;
4288 fra.me.REG[1] = p1;
4289 /* ./syntax//mmbuilder.nit:736 */
4290 fra.me.REG[2] = fra.me.REG[0];
4291 fra.me.REG[3] = fra.me.REG[1];
4292 /* ./syntax//mmbuilder.nit:738 */
4293 CALL_SUPER_mmbuilder___ASuperclass___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4294 /* ./syntax//mmbuilder.nit:739 */
4295 fra.me.REG[2] = CALL_parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
4296 CALL_syntax_base___AType___check_conform(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4297 stack_frame_head = fra.me.prev;
4298 return;
4299 }
4300 void mmbuilder___APropdef___process_and_check(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
4301 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4302 val_t REGB0;
4303 val_t REGB1;
4304 val_t REGB2;
4305 val_t REGB3;
4306 val_t tmp;
4307 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4308 fra.me.file = LOCATE_mmbuilder;
4309 fra.me.line = 744;
4310 fra.me.meth = LOCATE_mmbuilder___APropdef___process_and_check;
4311 fra.me.has_broke = 0;
4312 fra.me.REG_size = 4;
4313 fra.me.REG[0] = NIT_NULL;
4314 fra.me.REG[1] = NIT_NULL;
4315 fra.me.REG[2] = NIT_NULL;
4316 fra.me.REG[3] = NIT_NULL;
4317 fra.me.REG[0] = p0;
4318 fra.me.REG[1] = p1;
4319 fra.me.REG[2] = p2;
4320 REGB0 = p3;
4321 REGB1 = p4;
4322 /* ./syntax//mmbuilder.nit:752 */
4323 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
4324 fra.me.REG[3] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[3])(fra.me.REG[3]);
4325 REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[2]));
4326 if (UNTAG_Bool(REGB2)) {
4327 } else {
4328 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
4329 REGB2 = REGB3;
4330 }
4331 if (UNTAG_Bool(REGB2)) {
4332 /* ./syntax//mmbuilder.nit:753 */
4333 CALL_mmbuilder___APropdef___do_and_check_intro(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, REGB1);
4334 } else {
4335 /* ./syntax//mmbuilder.nit:755 */
4336 CALL_mmbuilder___APropdef___do_and_check_redef(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, REGB1);
4337 }
4338 stack_frame_head = fra.me.prev;
4339 return;
4340 }
4341 void mmbuilder___APropdef___do_and_check_intro(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
4342 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
4343 val_t REGB0;
4344 val_t REGB1;
4345 val_t REGB2;
4346 val_t REGB3;
4347 val_t tmp;
4348 static val_t once_value_1; /* Once value */
4349 static val_t once_value_2; /* Once value */
4350 static val_t once_value_3; /* Once value */
4351 static val_t once_value_4; /* Once value */
4352 static val_t once_value_5; /* Once value */
4353 static val_t once_value_6; /* Once value */
4354 static val_t once_value_7; /* Once value */
4355 static val_t once_value_8; /* Once value */
4356 static val_t once_value_9; /* Once value */
4357 static val_t once_value_10; /* Once value */
4358 static val_t once_value_11; /* Once value */
4359 static val_t once_value_12; /* Once value */
4360 static val_t once_value_13; /* Once value */
4361 static val_t once_value_14; /* Once value */
4362 static val_t once_value_15; /* Once value */
4363 static val_t once_value_16; /* Once value */
4364 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4365 fra.me.file = LOCATE_mmbuilder;
4366 fra.me.line = 759;
4367 fra.me.meth = LOCATE_mmbuilder___APropdef___do_and_check_intro;
4368 fra.me.has_broke = 0;
4369 fra.me.REG_size = 7;
4370 fra.me.REG[0] = NIT_NULL;
4371 fra.me.REG[1] = NIT_NULL;
4372 fra.me.REG[2] = NIT_NULL;
4373 fra.me.REG[3] = NIT_NULL;
4374 fra.me.REG[4] = NIT_NULL;
4375 fra.me.REG[5] = NIT_NULL;
4376 fra.me.REG[6] = NIT_NULL;
4377 fra.me.REG[0] = p0;
4378 fra.me.REG[1] = p1;
4379 fra.me.REG[2] = p2;
4380 REGB0 = p3;
4381 REGB1 = p4;
4382 /* ./syntax//mmbuilder.nit:762 */
4383 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
4384 /* ./syntax//mmbuilder.nit:763 */
4385 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4386 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
4387 /* ./syntax//mmbuilder.nit:764 */
4388 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
4389 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
4390 REGB2 = CALL_abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[5])(fra.me.REG[5]);
4391 REGB3 = TAG_Int(3);
4392 /* ./../lib/standard//kernel.nit:213 */
4393 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
4394 /* ./syntax//mmbuilder.nit:764 */
4395 if (UNTAG_Bool(REGB3)) {
4396 /* ./syntax//mmbuilder.nit:766 */
4397 REGB3 = TAG_Int(3);
4398 REGB1 = REGB3;
4399 }
4400 /* ./syntax//mmbuilder.nit:768 */
4401 CALL_abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[3])(fra.me.REG[3], REGB1);
4402 /* ./syntax//mmbuilder.nit:769 */
4403 if (UNTAG_Bool(REGB0)) {
4404 /* ./syntax//mmbuilder.nit:770 */
4405 REGB0 = TAG_Int(5);
4406 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
4407 if (!once_value_1) {
4408 fra.me.REG[6] = BOX_NativeString("Error: No property ");
4409 REGB0 = TAG_Int(19);
4410 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4411 once_value_1 = fra.me.REG[6];
4412 register_static_object(&once_value_1);
4413 } else fra.me.REG[6] = once_value_1;
4414 fra.me.REG[6] = fra.me.REG[6];
4415 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4416 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4417 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4418 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4419 if (!once_value_2) {
4420 fra.me.REG[6] = BOX_NativeString("::");
4421 REGB0 = TAG_Int(2);
4422 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4423 once_value_2 = fra.me.REG[6];
4424 register_static_object(&once_value_2);
4425 } else fra.me.REG[6] = once_value_2;
4426 fra.me.REG[6] = fra.me.REG[6];
4427 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4428 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4429 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4430 if (!once_value_3) {
4431 fra.me.REG[6] = BOX_NativeString(" is inherited. Remove the redef keyword to define a new property.");
4432 REGB0 = TAG_Int(65);
4433 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4434 once_value_3 = fra.me.REG[6];
4435 register_static_object(&once_value_3);
4436 } else fra.me.REG[6] = once_value_3;
4437 fra.me.REG[6] = fra.me.REG[6];
4438 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4439 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4440 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
4441 }
4442 /* ./syntax//mmbuilder.nit:772 */
4443 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_attribute(fra.me.REG[3])(fra.me.REG[3]);
4444 if (UNTAG_Bool(REGB0)) {
4445 /* ./syntax//mmbuilder.nit:773 */
4446 REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]);
4447 if (UNTAG_Bool(REGB0)) {
4448 /* ./syntax//mmbuilder.nit:774 */
4449 REGB0 = TAG_Int(5);
4450 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
4451 if (!once_value_4) {
4452 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
4453 REGB0 = TAG_Int(35);
4454 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4455 once_value_4 = fra.me.REG[6];
4456 register_static_object(&once_value_4);
4457 } else fra.me.REG[6] = once_value_4;
4458 fra.me.REG[6] = fra.me.REG[6];
4459 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4460 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4461 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4462 if (!once_value_5) {
4463 fra.me.REG[6] = BOX_NativeString(" in the interface ");
4464 REGB0 = TAG_Int(18);
4465 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4466 once_value_5 = fra.me.REG[6];
4467 register_static_object(&once_value_5);
4468 } else fra.me.REG[6] = once_value_5;
4469 fra.me.REG[6] = fra.me.REG[6];
4470 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4471 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4472 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4473 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4474 if (!once_value_6) {
4475 fra.me.REG[6] = BOX_NativeString(".");
4476 REGB0 = TAG_Int(1);
4477 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4478 once_value_6 = fra.me.REG[6];
4479 register_static_object(&once_value_6);
4480 } else fra.me.REG[6] = once_value_6;
4481 fra.me.REG[6] = fra.me.REG[6];
4482 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4483 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4484 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
4485 } else {
4486 /* ./syntax//mmbuilder.nit:775 */
4487 REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[4])(fra.me.REG[4]);
4488 if (UNTAG_Bool(REGB0)) {
4489 /* ./syntax//mmbuilder.nit:776 */
4490 REGB0 = TAG_Int(5);
4491 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
4492 if (!once_value_7) {
4493 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
4494 REGB0 = TAG_Int(35);
4495 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4496 once_value_7 = fra.me.REG[6];
4497 register_static_object(&once_value_7);
4498 } else fra.me.REG[6] = once_value_7;
4499 fra.me.REG[6] = fra.me.REG[6];
4500 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4501 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4502 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4503 if (!once_value_8) {
4504 fra.me.REG[6] = BOX_NativeString(" in the enum class ");
4505 REGB0 = TAG_Int(19);
4506 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4507 once_value_8 = fra.me.REG[6];
4508 register_static_object(&once_value_8);
4509 } else fra.me.REG[6] = once_value_8;
4510 fra.me.REG[6] = fra.me.REG[6];
4511 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4512 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4513 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4514 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4515 if (!once_value_9) {
4516 fra.me.REG[6] = BOX_NativeString(".");
4517 REGB0 = TAG_Int(1);
4518 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4519 once_value_9 = fra.me.REG[6];
4520 register_static_object(&once_value_9);
4521 } else fra.me.REG[6] = once_value_9;
4522 fra.me.REG[6] = fra.me.REG[6];
4523 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4524 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4525 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
4526 }
4527 }
4528 } else {
4529 /* ./syntax//mmbuilder.nit:778 */
4530 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
4531 if (UNTAG_Bool(REGB0)) {
4532 /* ./syntax//mmbuilder.nit:779 */
4533 REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]);
4534 if (UNTAG_Bool(REGB0)) {
4535 /* ./syntax//mmbuilder.nit:780 */
4536 REGB0 = TAG_Int(5);
4537 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
4538 if (!once_value_10) {
4539 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define a constructor ");
4540 REGB0 = TAG_Int(39);
4541 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4542 once_value_10 = fra.me.REG[6];
4543 register_static_object(&once_value_10);
4544 } else fra.me.REG[6] = once_value_10;
4545 fra.me.REG[6] = fra.me.REG[6];
4546 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4547 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4548 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4549 if (!once_value_11) {
4550 fra.me.REG[6] = BOX_NativeString(" in the class ");
4551 REGB0 = TAG_Int(14);
4552 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4553 once_value_11 = fra.me.REG[6];
4554 register_static_object(&once_value_11);
4555 } else fra.me.REG[6] = once_value_11;
4556 fra.me.REG[6] = fra.me.REG[6];
4557 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4558 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4559 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4560 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4561 if (!once_value_12) {
4562 fra.me.REG[6] = BOX_NativeString(".");
4563 REGB0 = TAG_Int(1);
4564 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4565 once_value_12 = fra.me.REG[6];
4566 register_static_object(&once_value_12);
4567 } else fra.me.REG[6] = once_value_12;
4568 fra.me.REG[6] = fra.me.REG[6];
4569 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4570 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4571 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
4572 } else {
4573 /* ./syntax//mmbuilder.nit:781 */
4574 REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[4])(fra.me.REG[4]);
4575 if (UNTAG_Bool(REGB0)) {
4576 /* ./syntax//mmbuilder.nit:782 */
4577 REGB0 = TAG_Int(5);
4578 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
4579 if (!once_value_13) {
4580 fra.me.REG[5] = BOX_NativeString("Error: Attempt to define a constructor ");
4581 REGB0 = TAG_Int(39);
4582 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
4583 once_value_13 = fra.me.REG[5];
4584 register_static_object(&once_value_13);
4585 } else fra.me.REG[5] = once_value_13;
4586 fra.me.REG[5] = fra.me.REG[5];
4587 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
4588 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4589 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
4590 if (!once_value_14) {
4591 fra.me.REG[5] = BOX_NativeString(" in the enum ");
4592 REGB0 = TAG_Int(13);
4593 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
4594 once_value_14 = fra.me.REG[5];
4595 register_static_object(&once_value_14);
4596 } else fra.me.REG[5] = once_value_14;
4597 fra.me.REG[5] = fra.me.REG[5];
4598 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
4599 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4600 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4601 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
4602 if (!once_value_15) {
4603 fra.me.REG[5] = BOX_NativeString(".");
4604 REGB0 = TAG_Int(1);
4605 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
4606 once_value_15 = fra.me.REG[5];
4607 register_static_object(&once_value_15);
4608 } else fra.me.REG[5] = once_value_15;
4609 fra.me.REG[5] = fra.me.REG[5];
4610 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
4611 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4612 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
4613 }
4614 }
4615 }
4616 }
4617 /* ./syntax//mmbuilder.nit:785 */
4618 fra.me.REG[4] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
4619 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4620 if (UNTAG_Bool(REGB0)) {
4621 } else {
4622 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4623 if (UNTAG_Bool(REGB1)) {
4624 REGB1 = TAG_Bool(false);
4625 REGB0 = REGB1;
4626 } else {
4627 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
4628 REGB0 = REGB1;
4629 }
4630 }
4631 if (UNTAG_Bool(REGB0)) {
4632 /* ./syntax//mmbuilder.nit:786 */
4633 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
4634 if (UNTAG_Bool(REGB0)) {
4635 /* ./syntax//mmbuilder.nit:787 */
4636 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4637 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
4638 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___super_methods_named(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
4639 /* ./syntax//mmbuilder.nit:788 */
4640 CALL_mmbuilder___APropdef___inherit_signature(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[4]);
4641 }
4642 /* ./syntax//mmbuilder.nit:790 */
4643 fra.me.REG[4] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
4644 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4645 if (UNTAG_Bool(REGB0)) {
4646 } else {
4647 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4648 if (UNTAG_Bool(REGB1)) {
4649 REGB1 = TAG_Bool(false);
4650 REGB0 = REGB1;
4651 } else {
4652 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
4653 REGB0 = REGB1;
4654 }
4655 }
4656 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4657 if (UNTAG_Bool(REGB0)) {
4658 REGB0 = TAG_Bool(true);
4659 } else {
4660 fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
4661 REGB1 = CALL_mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[4])(fra.me.REG[4]);
4662 REGB0 = REGB1;
4663 }
4664 if (UNTAG_Bool(REGB0)) {
4665 } else {
4666 /* ./syntax//mmbuilder.nit:792 */
4667 fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
4668 fra.me.REG[4] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
4669 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[4])(fra.me.REG[4]);
4670 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4671 if (UNTAG_Bool(REGB0)) {
4672 /* ./syntax//mmbuilder.nit:793 */
4673 fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
4674 fra.me.REG[4] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
4675 fra.me.REG[4] = CALL_abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
4676 if (!once_value_16) {
4677 fra.me.REG[0] = BOX_NativeString("Error: Untyped parameter.");
4678 REGB0 = TAG_Int(25);
4679 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
4680 once_value_16 = fra.me.REG[0];
4681 register_static_object(&once_value_16);
4682 } else fra.me.REG[0] = once_value_16;
4683 fra.me.REG[0] = fra.me.REG[0];
4684 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]);
4685 } else {
4686 /* ./syntax//mmbuilder.nit:795 */
4687 fra.me.REG[0] = NEW_Array_array___Array___init();
4688 fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
4689 fra.me.REG[4] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
4690 fra.me.REG[4] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[4]);
4691 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
4692 /* ./syntax//mmbuilder.nit:796 */
4693 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
4694 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[1])(fra.me.REG[1]);
4695 /* ./../lib/standard//collection//array.nit:234 */
4696 REGB0 = TAG_Int(0);
4697 /* ./../lib/standard//collection//array.nit:235 */
4698 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
4699 if (UNTAG_Bool(REGB1)) {
4700 } else {
4701 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
4702 }
4703 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
4704 /* ./../lib/standard//collection//array.nit:236 */
4705 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[1]);
4706 /* ./../lib/standard//collection//array.nit:237 */
4707 while(1) {
4708 /* ./../lib/standard//collection//array.nit:23 */
4709 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
4710 if (UNTAG_Bool(REGB1)) {
4711 } else {
4712 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
4713 }
4714 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
4715 /* ./../lib/standard//kernel.nit:212 */
4716 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
4717 /* ./../lib/standard//collection//array.nit:237 */
4718 if (UNTAG_Bool(REGB1)) {
4719 /* ./../lib/standard//collection//array.nit:238 */
4720 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4721 if (UNTAG_Bool(REGB1)) {
4722 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
4723 }
4724 /* ./../lib/standard//collection//array.nit:654 */
4725 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
4726 /* ./syntax//mmbuilder.nit:797 */
4727 fra.me.REG[3] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
4728 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4729 if (UNTAG_Bool(REGB1)) {
4730 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 797);
4731 }
4732 fra.me.REG[3] = CALL_static_type___MMSignature___closures(fra.me.REG[3])(fra.me.REG[3]);
4733 fra.me.REG[0] = CALL_syntax_base___AClosureDecl___variable(fra.me.REG[0])(fra.me.REG[0]);
4734 fra.me.REG[0] = CALL_syntax_base___ClosureVariable___closure(fra.me.REG[0])(fra.me.REG[0]);
4735 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
4736 /* ./../lib/standard//collection//array.nit:239 */
4737 REGB1 = TAG_Int(1);
4738 /* ./../lib/standard//kernel.nit:215 */
4739 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
4740 /* ./../lib/standard//collection//array.nit:239 */
4741 REGB0 = REGB1;
4742 } else {
4743 /* ./../lib/standard//collection//array.nit:237 */
4744 goto label17;
4745 }
4746 }
4747 label17: while(0);
4748 }
4749 }
4750 }
4751 stack_frame_head = fra.me.prev;
4752 return;
4753 }
4754 void mmbuilder___APropdef___inherit_signature(val_t p0, val_t p1, val_t p2, val_t p3){
4755 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
4756 val_t REGB0;
4757 val_t REGB1;
4758 val_t REGB2;
4759 val_t REGB3;
4760 val_t REGB4;
4761 val_t tmp;
4762 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4763 fra.me.file = LOCATE_mmbuilder;
4764 fra.me.line = 803;
4765 fra.me.meth = LOCATE_mmbuilder___APropdef___inherit_signature;
4766 fra.me.has_broke = 0;
4767 fra.me.REG_size = 11;
4768 fra.me.REG[0] = NIT_NULL;
4769 fra.me.REG[1] = NIT_NULL;
4770 fra.me.REG[2] = NIT_NULL;
4771 fra.me.REG[3] = NIT_NULL;
4772 fra.me.REG[4] = NIT_NULL;
4773 fra.me.REG[5] = NIT_NULL;
4774 fra.me.REG[6] = NIT_NULL;
4775 fra.me.REG[7] = NIT_NULL;
4776 fra.me.REG[8] = NIT_NULL;
4777 fra.me.REG[9] = NIT_NULL;
4778 fra.me.REG[10] = NIT_NULL;
4779 fra.me.REG[0] = p0;
4780 fra.me.REG[1] = p1;
4781 fra.me.REG[2] = p2;
4782 fra.me.REG[3] = p3;
4783 /* ./syntax//mmbuilder.nit:805 */
4784 fra.me.REG[0] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
4785 /* ./../lib/standard//collection//array.nit:234 */
4786 REGB0 = TAG_Int(0);
4787 /* ./../lib/standard//collection//array.nit:235 */
4788 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
4789 if (UNTAG_Bool(REGB1)) {
4790 } else {
4791 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
4792 }
4793 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
4794 /* ./../lib/standard//collection//array.nit:236 */
4795 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[3]);
4796 /* ./../lib/standard//collection//array.nit:237 */
4797 while(1) {
4798 /* ./../lib/standard//collection//array.nit:23 */
4799 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
4800 if (UNTAG_Bool(REGB1)) {
4801 } else {
4802 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
4803 }
4804 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
4805 /* ./../lib/standard//kernel.nit:212 */
4806 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
4807 /* ./../lib/standard//collection//array.nit:237 */
4808 if (UNTAG_Bool(REGB1)) {
4809 /* ./../lib/standard//collection//array.nit:238 */
4810 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4811 if (UNTAG_Bool(REGB1)) {
4812 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
4813 }
4814 /* ./../lib/standard//collection//array.nit:654 */
4815 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
4816 /* ./syntax//mmbuilder.nit:807 */
4817 fra.me.REG[5] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[5])(fra.me.REG[5]);
4818 fra.me.REG[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
4819 fra.me.REG[6] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[6])(fra.me.REG[6]);
4820 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4821 if (UNTAG_Bool(REGB1)) {
4822 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 807);
4823 }
4824 fra.me.REG[6] = CALL_static_type___MMSignature___adaptation_to(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4825 /* ./syntax//mmbuilder.nit:809 */
4826 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4827 if (UNTAG_Bool(REGB1)) {
4828 } else {
4829 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4830 if (UNTAG_Bool(REGB2)) {
4831 REGB2 = TAG_Bool(false);
4832 REGB1 = REGB2;
4833 } else {
4834 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
4835 REGB1 = REGB2;
4836 }
4837 }
4838 if (UNTAG_Bool(REGB1)) {
4839 /* ./syntax//mmbuilder.nit:810 */
4840 fra.me.REG[5] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
4841 fra.me.REG[5] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[5])(fra.me.REG[5]);
4842 /* ./../lib/standard//collection//array.nit:23 */
4843 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
4844 if (UNTAG_Bool(REGB1)) {
4845 } else {
4846 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
4847 }
4848 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]);
4849 /* ./syntax//mmbuilder.nit:810 */
4850 REGB2 = CALL_static_type___MMSignature___arity(fra.me.REG[6])(fra.me.REG[6]);
4851 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
4852 if (UNTAG_Bool(REGB3)) {
4853 } else {
4854 /* ./../lib/standard//kernel.nit:207 */
4855 REGB2 = TAG_Bool((REGB1)==(REGB2));
4856 /* ./syntax//mmbuilder.nit:810 */
4857 REGB3 = REGB2;
4858 }
4859 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
4860 if (UNTAG_Bool(REGB3)) {
4861 /* ./syntax//mmbuilder.nit:811 */
4862 goto label1;
4863 }
4864 /* ./syntax//mmbuilder.nit:813 */
4865 fra.me.REG[5] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
4866 fra.me.REG[5] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[5])(fra.me.REG[5]);
4867 /* ./../lib/standard//collection//array.nit:234 */
4868 REGB3 = TAG_Int(0);
4869 /* ./../lib/standard//collection//array.nit:235 */
4870 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
4871 if (UNTAG_Bool(REGB2)) {
4872 } else {
4873 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
4874 }
4875 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]);
4876 /* ./../lib/standard//collection//array.nit:236 */
4877 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[5]);
4878 /* ./../lib/standard//collection//array.nit:237 */
4879 while(1) {
4880 /* ./../lib/standard//collection//array.nit:23 */
4881 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
4882 if (UNTAG_Bool(REGB2)) {
4883 } else {
4884 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
4885 }
4886 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]);
4887 /* ./../lib/standard//kernel.nit:212 */
4888 REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB2));
4889 /* ./../lib/standard//collection//array.nit:237 */
4890 if (UNTAG_Bool(REGB2)) {
4891 /* ./../lib/standard//collection//array.nit:238 */
4892 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
4893 if (UNTAG_Bool(REGB2)) {
4894 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
4895 }
4896 /* ./../lib/standard//collection//array.nit:654 */
4897 fra.me.REG[8] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB3)];
4898 /* ./syntax//mmbuilder.nit:814 */
4899 REGB2 = CALL_syntax_base___AParam___position(fra.me.REG[8])(fra.me.REG[8]);
4900 fra.me.REG[9] = CALL_static_type___MMSignature_____bra(fra.me.REG[6])(fra.me.REG[6], REGB2);
4901 /* ./syntax//mmbuilder.nit:815 */
4902 CALL_mmbuilder___AParam___stype__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
4903 /* ./syntax//mmbuilder.nit:816 */
4904 REGB2 = CALL_syntax_base___AParam___position(fra.me.REG[8])(fra.me.REG[8]);
4905 REGB1 = CALL_vararg___MMSignature___vararg_rank(fra.me.REG[6])(fra.me.REG[6]);
4906 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
4907 if (UNTAG_Bool(REGB4)) {
4908 } else {
4909 /* ./../lib/standard//kernel.nit:207 */
4910 REGB1 = TAG_Bool((REGB2)==(REGB1));
4911 /* ./syntax//mmbuilder.nit:816 */
4912 REGB4 = REGB1;
4913 }
4914 if (UNTAG_Bool(REGB4)) {
4915 /* ./syntax//mmbuilder.nit:817 */
4916 fra.me.REG[10] = CALL_syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
4917 fra.me.REG[9] = fra.me.REG[10];
4918 }
4919 /* ./syntax//mmbuilder.nit:819 */
4920 fra.me.REG[8] = CALL_syntax_base___AParam___variable(fra.me.REG[8])(fra.me.REG[8]);
4921 CALL_syntax_base___Variable___stype__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
4922 /* ./../lib/standard//collection//array.nit:239 */
4923 REGB4 = TAG_Int(1);
4924 /* ./../lib/standard//kernel.nit:215 */
4925 REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB4));
4926 /* ./../lib/standard//collection//array.nit:239 */
4927 REGB3 = REGB4;
4928 } else {
4929 /* ./../lib/standard//collection//array.nit:237 */
4930 goto label2;
4931 }
4932 }
4933 label2: while(0);
4934 /* ./syntax//mmbuilder.nit:822 */
4935 fra.me.REG[0] = fra.me.REG[6];
4936 /* ./syntax//mmbuilder.nit:823 */
4937 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4938 }
4939 /* ./../lib/standard//collection//array.nit:239 */
4940 REGB3 = TAG_Int(1);
4941 /* ./../lib/standard//kernel.nit:215 */
4942 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
4943 /* ./../lib/standard//collection//array.nit:239 */
4944 REGB0 = REGB3;
4945 } else {
4946 /* ./../lib/standard//collection//array.nit:237 */
4947 goto label3;
4948 }
4949 }
4950 label3: while(0);
4951 label1: while(0);
4952 stack_frame_head = fra.me.prev;
4953 return;
4954 }
4955 void mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
4956 struct {struct stack_frame_t me; val_t MORE_REG[13];} fra;
4957 val_t REGB0;
4958 val_t REGB1;
4959 val_t REGB2;
4960 val_t REGB3;
4961 val_t REGB4;
4962 val_t REGB5;
4963 val_t REGB6;
4964 val_t REGB7;
4965 val_t tmp;
4966 static val_t once_value_1; /* Once value */
4967 static val_t once_value_2; /* Once value */
4968 static val_t once_value_3; /* Once value */
4969 static val_t once_value_5; /* Once value */
4970 static val_t once_value_6; /* Once value */
4971 static val_t once_value_7; /* Once value */
4972 static val_t once_value_8; /* Once value */
4973 static val_t once_value_9; /* Once value */
4974 static val_t once_value_10; /* Once value */
4975 static val_t once_value_11; /* Once value */
4976 static val_t once_value_12; /* Once value */
4977 static val_t once_value_13; /* Once value */
4978 static val_t once_value_14; /* Once value */
4979 static val_t once_value_15; /* Once value */
4980 static val_t once_value_16; /* Once value */
4981 static val_t once_value_17; /* Once value */
4982 static val_t once_value_18; /* Once value */
4983 static val_t once_value_19; /* Once value */
4984 static val_t once_value_20; /* Once value */
4985 static val_t once_value_21; /* Once value */
4986 static val_t once_value_22; /* Once value */
4987 static val_t once_value_24; /* Once value */
4988 static val_t once_value_25; /* Once value */
4989 static val_t once_value_26; /* Once value */
4990 static val_t once_value_27; /* Once value */
4991 static val_t once_value_28; /* Once value */
4992 static val_t once_value_29; /* Once value */
4993 static val_t once_value_30; /* Once value */
4994 static val_t once_value_31; /* Once value */
4995 static val_t once_value_32; /* Once value */
4996 static val_t once_value_33; /* Once value */
4997 static val_t once_value_34; /* Once value */
4998 static val_t once_value_35; /* Once value */
4999 static val_t once_value_36; /* Once value */
5000 static val_t once_value_38; /* Once value */
5001 static val_t once_value_39; /* Once value */
5002 static val_t once_value_40; /* Once value */
5003 static val_t once_value_41; /* Once value */
5004 static val_t once_value_42; /* Once value */
5005 static val_t once_value_43; /* Once value */
5006 static val_t once_value_44; /* Once value */
5007 static val_t once_value_45; /* Once value */
5008 static val_t once_value_46; /* Once value */
5009 static val_t once_value_47; /* Once value */
5010 static val_t once_value_48; /* Once value */
5011 static val_t once_value_49; /* Once value */
5012 static val_t once_value_50; /* Once value */
5013 static val_t once_value_51; /* Once value */
5014 static val_t once_value_52; /* Once value */
5015 static val_t once_value_53; /* Once value */
5016 static val_t once_value_54; /* Once value */
5017 static val_t once_value_55; /* Once value */
5018 static val_t once_value_56; /* Once value */
5019 static val_t once_value_57; /* Once value */
5020 static val_t once_value_58; /* Once value */
5021 static val_t once_value_59; /* Once value */
5022 static val_t once_value_60; /* Once value */
5023 static val_t once_value_61; /* Once value */
5024 static val_t once_value_62; /* Once value */
5025 static val_t once_value_63; /* Once value */
5026 static val_t once_value_64; /* Once value */
5027 static val_t once_value_65; /* Once value */
5028 static val_t once_value_66; /* Once value */
5029 static val_t once_value_68; /* Once value */
5030 static val_t once_value_69; /* Once value */
5031 static val_t once_value_70; /* Once value */
5032 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5033 fra.me.file = LOCATE_mmbuilder;
5034 fra.me.line = 828;
5035 fra.me.meth = LOCATE_mmbuilder___APropdef___do_and_check_redef;
5036 fra.me.has_broke = 0;
5037 fra.me.REG_size = 14;
5038 fra.me.REG[0] = NIT_NULL;
5039 fra.me.REG[1] = NIT_NULL;
5040 fra.me.REG[2] = NIT_NULL;
5041 fra.me.REG[3] = NIT_NULL;
5042 fra.me.REG[4] = NIT_NULL;
5043 fra.me.REG[5] = NIT_NULL;
5044 fra.me.REG[6] = NIT_NULL;
5045 fra.me.REG[7] = NIT_NULL;
5046 fra.me.REG[8] = NIT_NULL;
5047 fra.me.REG[9] = NIT_NULL;
5048 fra.me.REG[10] = NIT_NULL;
5049 fra.me.REG[11] = NIT_NULL;
5050 fra.me.REG[12] = NIT_NULL;
5051 fra.me.REG[13] = NIT_NULL;
5052 fra.me.REG[0] = p0;
5053 fra.me.REG[1] = p1;
5054 fra.me.REG[2] = p2;
5055 REGB0 = p3;
5056 REGB1 = p4;
5057 /* ./syntax//mmbuilder.nit:831 */
5058 REGB2 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
5059 /* ./syntax//mmbuilder.nit:832 */
5060 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
5061 /* ./syntax//mmbuilder.nit:834 */
5062 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5063 if (UNTAG_Bool(REGB0)) {
5064 /* ./syntax//mmbuilder.nit:835 */
5065 REGB0 = TAG_Int(5);
5066 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
5067 if (!once_value_1) {
5068 fra.me.REG[5] = BOX_NativeString("Redef error: ");
5069 REGB0 = TAG_Int(13);
5070 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
5071 once_value_1 = fra.me.REG[5];
5072 register_static_object(&once_value_1);
5073 } else fra.me.REG[5] = once_value_1;
5074 fra.me.REG[5] = fra.me.REG[5];
5075 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5076 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5077 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5078 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5079 if (!once_value_2) {
5080 fra.me.REG[5] = BOX_NativeString("::");
5081 REGB0 = TAG_Int(2);
5082 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
5083 once_value_2 = fra.me.REG[5];
5084 register_static_object(&once_value_2);
5085 } else fra.me.REG[5] = once_value_2;
5086 fra.me.REG[5] = fra.me.REG[5];
5087 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5088 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5089 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5090 if (!once_value_3) {
5091 fra.me.REG[5] = BOX_NativeString(" is an inherited property. To redefine it, add the redef keyword.");
5092 REGB0 = TAG_Int(65);
5093 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
5094 once_value_3 = fra.me.REG[5];
5095 register_static_object(&once_value_3);
5096 } else fra.me.REG[5] = once_value_3;
5097 fra.me.REG[5] = fra.me.REG[5];
5098 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5099 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
5100 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
5101 /* ./syntax//mmbuilder.nit:836 */
5102 goto label4;
5103 }
5104 /* ./syntax//mmbuilder.nit:838 */
5105 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
5106 if (UNTAG_Bool(REGB0)) {
5107 REGB0 = TAG_Bool(!UNTAG_Bool(REGB2));
5108 } else {
5109 REGB3 = TAG_Bool(false);
5110 REGB0 = REGB3;
5111 }
5112 if (UNTAG_Bool(REGB0)) {
5113 /* ./syntax//mmbuilder.nit:839 */
5114 REGB0 = TAG_Int(5);
5115 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
5116 if (!once_value_5) {
5117 fra.me.REG[5] = BOX_NativeString("Redef error: A method ");
5118 REGB0 = TAG_Int(22);
5119 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
5120 once_value_5 = fra.me.REG[5];
5121 register_static_object(&once_value_5);
5122 } else fra.me.REG[5] = once_value_5;
5123 fra.me.REG[5] = fra.me.REG[5];
5124 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5125 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5126 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5127 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5128 if (!once_value_6) {
5129 fra.me.REG[5] = BOX_NativeString("::");
5130 REGB0 = TAG_Int(2);
5131 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
5132 once_value_6 = fra.me.REG[5];
5133 register_static_object(&once_value_6);
5134 } else fra.me.REG[5] = once_value_6;
5135 fra.me.REG[5] = fra.me.REG[5];
5136 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5137 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5138 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5139 if (!once_value_7) {
5140 fra.me.REG[5] = BOX_NativeString(" cannot redefine a constructor.");
5141 REGB0 = TAG_Int(31);
5142 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
5143 once_value_7 = fra.me.REG[5];
5144 register_static_object(&once_value_7);
5145 } else fra.me.REG[5] = once_value_7;
5146 fra.me.REG[5] = fra.me.REG[5];
5147 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5148 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
5149 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
5150 } else {
5151 /* ./syntax//mmbuilder.nit:840 */
5152 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
5153 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5154 if (UNTAG_Bool(REGB0)) {
5155 } else {
5156 REGB0 = TAG_Bool(false);
5157 REGB2 = REGB0;
5158 }
5159 if (UNTAG_Bool(REGB2)) {
5160 /* ./syntax//mmbuilder.nit:841 */
5161 REGB2 = TAG_Int(5);
5162 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB2);
5163 if (!once_value_8) {
5164 fra.me.REG[5] = BOX_NativeString("Redef error: A constructor ");
5165 REGB2 = TAG_Int(27);
5166 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
5167 once_value_8 = fra.me.REG[5];
5168 register_static_object(&once_value_8);
5169 } else fra.me.REG[5] = once_value_8;
5170 fra.me.REG[5] = fra.me.REG[5];
5171 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5172 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5173 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5174 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5175 if (!once_value_9) {
5176 fra.me.REG[5] = BOX_NativeString("::");
5177 REGB2 = TAG_Int(2);
5178 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
5179 once_value_9 = fra.me.REG[5];
5180 register_static_object(&once_value_9);
5181 } else fra.me.REG[5] = once_value_9;
5182 fra.me.REG[5] = fra.me.REG[5];
5183 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5184 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5185 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5186 if (!once_value_10) {
5187 fra.me.REG[5] = BOX_NativeString(" cannot redefine a method.");
5188 REGB2 = TAG_Int(26);
5189 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
5190 once_value_10 = fra.me.REG[5];
5191 register_static_object(&once_value_10);
5192 } else fra.me.REG[5] = once_value_10;
5193 fra.me.REG[5] = fra.me.REG[5];
5194 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5195 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
5196 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
5197 }
5198 }
5199 /* ./syntax//mmbuilder.nit:844 */
5200 fra.me.REG[4] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
5201 /* ./syntax//mmbuilder.nit:846 */
5202 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[2])(fra.me.REG[2]);
5203 fra.me.REG[5] = CALL_partial_order___PartialOrderElement___direct_greaters(fra.me.REG[5])(fra.me.REG[5]);
5204 /* ./../lib/standard//collection//array.nit:234 */
5205 REGB2 = TAG_Int(0);
5206 /* ./../lib/standard//collection//array.nit:235 */
5207 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
5208 if (UNTAG_Bool(REGB0)) {
5209 } else {
5210 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
5211 }
5212 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]);
5213 /* ./../lib/standard//collection//array.nit:236 */
5214 fra.me.REG[6] = ATTR_array___Array____items(fra.me.REG[5]);
5215 /* ./../lib/standard//collection//array.nit:237 */
5216 while(1) {
5217 /* ./../lib/standard//collection//array.nit:23 */
5218 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
5219 if (UNTAG_Bool(REGB0)) {
5220 } else {
5221 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
5222 }
5223 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]);
5224 /* ./../lib/standard//kernel.nit:212 */
5225 REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
5226 /* ./../lib/standard//collection//array.nit:237 */
5227 if (UNTAG_Bool(REGB0)) {
5228 /* ./../lib/standard//collection//array.nit:238 */
5229 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5230 if (UNTAG_Bool(REGB0)) {
5231 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
5232 }
5233 /* ./../lib/standard//collection//array.nit:654 */
5234 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB2)];
5235 /* ./syntax//mmbuilder.nit:847 */
5236 fra.me.REG[8] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[7])(fra.me.REG[7]);
5237 fra.me.REG[9] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
5238 fra.me.REG[9] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
5239 /* ./syntax//mmbuilder.nit:848 */
5240 fra.me.REG[7] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[7])(fra.me.REG[7]);
5241 fra.me.REG[8] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
5242 fra.me.REG[8] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[8])(fra.me.REG[8]);
5243 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5244 if (UNTAG_Bool(REGB0)) {
5245 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 848);
5246 }
5247 fra.me.REG[8] = CALL_static_type___MMSignature___adaptation_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
5248 /* ./syntax//mmbuilder.nit:850 */
5249 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5250 if (UNTAG_Bool(REGB0)) {
5251 } else {
5252 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5253 if (UNTAG_Bool(REGB3)) {
5254 REGB3 = TAG_Bool(false);
5255 REGB0 = REGB3;
5256 } else {
5257 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5258 REGB0 = REGB3;
5259 }
5260 }
5261 if (UNTAG_Bool(REGB0)) {
5262 /* ./syntax//mmbuilder.nit:852 */
5263 fra.me.REG[7] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5264 fra.me.REG[7] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[7])(fra.me.REG[7]);
5265 /* ./../lib/standard//collection//array.nit:23 */
5266 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5267 if (UNTAG_Bool(REGB0)) {
5268 } else {
5269 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
5270 }
5271 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5272 /* ./syntax//mmbuilder.nit:852 */
5273 REGB3 = CALL_static_type___MMSignature___arity(fra.me.REG[8])(fra.me.REG[8]);
5274 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB3));
5275 if (UNTAG_Bool(REGB4)) {
5276 } else {
5277 /* ./../lib/standard//kernel.nit:207 */
5278 REGB3 = TAG_Bool((REGB0)==(REGB3));
5279 /* ./syntax//mmbuilder.nit:852 */
5280 REGB4 = REGB3;
5281 }
5282 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
5283 if (UNTAG_Bool(REGB4)) {
5284 /* ./syntax//mmbuilder.nit:853 */
5285 REGB4 = TAG_Int(11);
5286 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB4);
5287 if (!once_value_11) {
5288 fra.me.REG[10] = BOX_NativeString("Redef error: ");
5289 REGB4 = TAG_Int(13);
5290 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5291 once_value_11 = fra.me.REG[10];
5292 register_static_object(&once_value_11);
5293 } else fra.me.REG[10] = once_value_11;
5294 fra.me.REG[10] = fra.me.REG[10];
5295 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5296 fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5297 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5298 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5299 if (!once_value_12) {
5300 fra.me.REG[10] = BOX_NativeString("::");
5301 REGB4 = TAG_Int(2);
5302 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5303 once_value_12 = fra.me.REG[10];
5304 register_static_object(&once_value_12);
5305 } else fra.me.REG[10] = once_value_12;
5306 fra.me.REG[10] = fra.me.REG[10];
5307 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5308 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5309 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5310 if (!once_value_13) {
5311 fra.me.REG[10] = BOX_NativeString(" redefines ");
5312 REGB4 = TAG_Int(11);
5313 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5314 once_value_13 = fra.me.REG[10];
5315 register_static_object(&once_value_13);
5316 } else fra.me.REG[10] = once_value_13;
5317 fra.me.REG[10] = fra.me.REG[10];
5318 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5319 fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
5320 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5321 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5322 if (!once_value_14) {
5323 fra.me.REG[10] = BOX_NativeString("::");
5324 REGB4 = TAG_Int(2);
5325 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5326 once_value_14 = fra.me.REG[10];
5327 register_static_object(&once_value_14);
5328 } else fra.me.REG[10] = once_value_14;
5329 fra.me.REG[10] = fra.me.REG[10];
5330 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5331 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
5332 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5333 if (!once_value_15) {
5334 fra.me.REG[10] = BOX_NativeString(" with ");
5335 REGB4 = TAG_Int(6);
5336 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5337 once_value_15 = fra.me.REG[10];
5338 register_static_object(&once_value_15);
5339 } else fra.me.REG[10] = once_value_15;
5340 fra.me.REG[10] = fra.me.REG[10];
5341 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5342 REGB4 = CALL_static_type___MMSignature___arity(fra.me.REG[8])(fra.me.REG[8]);
5343 fra.me.REG[10] = CALL_string___Object___to_s(REGB4)(REGB4);
5344 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5345 if (!once_value_16) {
5346 fra.me.REG[10] = BOX_NativeString(" parameter(s).");
5347 REGB4 = TAG_Int(14);
5348 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5349 once_value_16 = fra.me.REG[10];
5350 register_static_object(&once_value_16);
5351 } else fra.me.REG[10] = once_value_16;
5352 fra.me.REG[10] = fra.me.REG[10];
5353 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5354 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
5355 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[7]);
5356 /* ./syntax//mmbuilder.nit:854 */
5357 goto label4;
5358 }
5359 /* ./syntax//mmbuilder.nit:856 */
5360 fra.me.REG[7] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5361 fra.me.REG[7] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[7])(fra.me.REG[7]);
5362 /* ./../lib/standard//collection//array.nit:23 */
5363 REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5364 if (UNTAG_Bool(REGB4)) {
5365 } else {
5366 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
5367 }
5368 REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5369 /* ./syntax//mmbuilder.nit:856 */
5370 fra.me.REG[7] = CALL_static_type___MMSignature___closures(fra.me.REG[8])(fra.me.REG[8]);
5371 /* ./../lib/standard//collection//array.nit:23 */
5372 REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5373 if (UNTAG_Bool(REGB3)) {
5374 } else {
5375 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
5376 }
5377 REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5378 /* ./syntax//mmbuilder.nit:856 */
5379 REGB0 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB3));
5380 if (UNTAG_Bool(REGB0)) {
5381 } else {
5382 /* ./../lib/standard//kernel.nit:207 */
5383 REGB3 = TAG_Bool((REGB4)==(REGB3));
5384 /* ./syntax//mmbuilder.nit:856 */
5385 REGB0 = REGB3;
5386 }
5387 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5388 if (UNTAG_Bool(REGB0)) {
5389 /* ./syntax//mmbuilder.nit:857 */
5390 REGB0 = TAG_Int(11);
5391 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB0);
5392 if (!once_value_17) {
5393 fra.me.REG[10] = BOX_NativeString("Redef error: ");
5394 REGB0 = TAG_Int(13);
5395 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB0);
5396 once_value_17 = fra.me.REG[10];
5397 register_static_object(&once_value_17);
5398 } else fra.me.REG[10] = once_value_17;
5399 fra.me.REG[10] = fra.me.REG[10];
5400 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5401 fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5402 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5403 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5404 if (!once_value_18) {
5405 fra.me.REG[10] = BOX_NativeString("::");
5406 REGB0 = TAG_Int(2);
5407 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB0);
5408 once_value_18 = fra.me.REG[10];
5409 register_static_object(&once_value_18);
5410 } else fra.me.REG[10] = once_value_18;
5411 fra.me.REG[10] = fra.me.REG[10];
5412 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5413 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5414 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5415 if (!once_value_19) {
5416 fra.me.REG[10] = BOX_NativeString(" redefines ");
5417 REGB0 = TAG_Int(11);
5418 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB0);
5419 once_value_19 = fra.me.REG[10];
5420 register_static_object(&once_value_19);
5421 } else fra.me.REG[10] = once_value_19;
5422 fra.me.REG[10] = fra.me.REG[10];
5423 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5424 fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
5425 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5426 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5427 if (!once_value_20) {
5428 fra.me.REG[10] = BOX_NativeString("::");
5429 REGB0 = TAG_Int(2);
5430 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB0);
5431 once_value_20 = fra.me.REG[10];
5432 register_static_object(&once_value_20);
5433 } else fra.me.REG[10] = once_value_20;
5434 fra.me.REG[10] = fra.me.REG[10];
5435 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5436 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
5437 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5438 if (!once_value_21) {
5439 fra.me.REG[10] = BOX_NativeString(" with ");
5440 REGB0 = TAG_Int(6);
5441 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB0);
5442 once_value_21 = fra.me.REG[10];
5443 register_static_object(&once_value_21);
5444 } else fra.me.REG[10] = once_value_21;
5445 fra.me.REG[10] = fra.me.REG[10];
5446 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5447 REGB0 = CALL_static_type___MMSignature___arity(fra.me.REG[8])(fra.me.REG[8]);
5448 fra.me.REG[10] = CALL_string___Object___to_s(REGB0)(REGB0);
5449 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5450 if (!once_value_22) {
5451 fra.me.REG[10] = BOX_NativeString(" closure(s).");
5452 REGB0 = TAG_Int(12);
5453 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB0);
5454 once_value_22 = fra.me.REG[10];
5455 register_static_object(&once_value_22);
5456 } else fra.me.REG[10] = once_value_22;
5457 fra.me.REG[10] = fra.me.REG[10];
5458 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5459 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
5460 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[7]);
5461 /* ./syntax//mmbuilder.nit:858 */
5462 goto label4;
5463 }
5464 /* ./syntax//mmbuilder.nit:860 */
5465 fra.me.REG[7] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5466 fra.me.REG[7] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[7])(fra.me.REG[7]);
5467 /* ./../lib/standard//collection//array.nit:234 */
5468 REGB0 = TAG_Int(0);
5469 /* ./../lib/standard//collection//array.nit:235 */
5470 REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5471 if (UNTAG_Bool(REGB3)) {
5472 } else {
5473 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
5474 }
5475 REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5476 /* ./../lib/standard//collection//array.nit:236 */
5477 fra.me.REG[10] = ATTR_array___Array____items(fra.me.REG[7]);
5478 /* ./../lib/standard//collection//array.nit:237 */
5479 while(1) {
5480 /* ./../lib/standard//collection//array.nit:23 */
5481 REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5482 if (UNTAG_Bool(REGB3)) {
5483 } else {
5484 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
5485 }
5486 REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5487 /* ./../lib/standard//kernel.nit:212 */
5488 REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB3));
5489 /* ./../lib/standard//collection//array.nit:237 */
5490 if (UNTAG_Bool(REGB3)) {
5491 /* ./../lib/standard//collection//array.nit:238 */
5492 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
5493 if (UNTAG_Bool(REGB3)) {
5494 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
5495 }
5496 /* ./../lib/standard//collection//array.nit:654 */
5497 fra.me.REG[11] = ((Nit_NativeArray)fra.me.REG[10])->val[UNTAG_Int(REGB0)];
5498 /* ./syntax//mmbuilder.nit:861 */
5499 REGB3 = CALL_syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]);
5500 fra.me.REG[12] = CALL_static_type___MMSignature_____bra(fra.me.REG[8])(fra.me.REG[8], REGB3);
5501 /* ./syntax//mmbuilder.nit:862 */
5502 CALL_mmbuilder___AParam___stype__eq(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
5503 /* ./syntax//mmbuilder.nit:863 */
5504 REGB3 = CALL_syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]);
5505 REGB4 = CALL_vararg___MMSignature___vararg_rank(fra.me.REG[8])(fra.me.REG[8]);
5506 REGB5 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB4));
5507 if (UNTAG_Bool(REGB5)) {
5508 } else {
5509 /* ./../lib/standard//kernel.nit:207 */
5510 REGB4 = TAG_Bool((REGB3)==(REGB4));
5511 /* ./syntax//mmbuilder.nit:863 */
5512 REGB5 = REGB4;
5513 }
5514 if (UNTAG_Bool(REGB5)) {
5515 /* ./syntax//mmbuilder.nit:864 */
5516 fra.me.REG[13] = CALL_syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[12]);
5517 fra.me.REG[12] = fra.me.REG[13];
5518 }
5519 /* ./syntax//mmbuilder.nit:866 */
5520 fra.me.REG[11] = CALL_syntax_base___AParam___variable(fra.me.REG[11])(fra.me.REG[11]);
5521 CALL_syntax_base___Variable___stype__eq(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
5522 /* ./../lib/standard//collection//array.nit:239 */
5523 REGB5 = TAG_Int(1);
5524 /* ./../lib/standard//kernel.nit:215 */
5525 REGB5 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB5));
5526 /* ./../lib/standard//collection//array.nit:239 */
5527 REGB0 = REGB5;
5528 } else {
5529 /* ./../lib/standard//collection//array.nit:237 */
5530 goto label23;
5531 }
5532 }
5533 label23: while(0);
5534 /* ./syntax//mmbuilder.nit:868 */
5535 fra.me.REG[4] = fra.me.REG[8];
5536 /* ./syntax//mmbuilder.nit:869 */
5537 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
5538 }
5539 /* ./syntax//mmbuilder.nit:873 */
5540 fra.me.REG[10] = CALL_syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
5541 REGB0 = CALL_mmloader___ToolContext___error_count(fra.me.REG[10])(fra.me.REG[10]);
5542 /* ./syntax//mmbuilder.nit:881 */
5543 REGB5 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5544 if (UNTAG_Bool(REGB5)) {
5545 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 881);
5546 }
5547 REGB5 = CALL_static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
5548 REGB4 = CALL_static_type___MMSignature___arity(fra.me.REG[8])(fra.me.REG[8]);
5549 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB5,REGB4));
5550 if (UNTAG_Bool(REGB3)) {
5551 } else {
5552 /* ./../lib/standard//kernel.nit:207 */
5553 REGB4 = TAG_Bool((REGB5)==(REGB4));
5554 /* ./syntax//mmbuilder.nit:881 */
5555 REGB3 = REGB4;
5556 }
5557 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
5558 if (UNTAG_Bool(REGB3)) {
5559 /* ./syntax//mmbuilder.nit:882 */
5560 REGB3 = TAG_Int(11);
5561 fra.me.REG[10] = NEW_Array_array___Array___with_capacity(REGB3);
5562 if (!once_value_24) {
5563 fra.me.REG[7] = BOX_NativeString("Redef error: ");
5564 REGB3 = TAG_Int(13);
5565 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB3);
5566 once_value_24 = fra.me.REG[7];
5567 register_static_object(&once_value_24);
5568 } else fra.me.REG[7] = once_value_24;
5569 fra.me.REG[7] = fra.me.REG[7];
5570 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
5571 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5572 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
5573 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
5574 if (!once_value_25) {
5575 fra.me.REG[7] = BOX_NativeString("::");
5576 REGB3 = TAG_Int(2);
5577 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB3);
5578 once_value_25 = fra.me.REG[7];
5579 register_static_object(&once_value_25);
5580 } else fra.me.REG[7] = once_value_25;
5581 fra.me.REG[7] = fra.me.REG[7];
5582 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
5583 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5584 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
5585 if (!once_value_26) {
5586 fra.me.REG[7] = BOX_NativeString(" redefines ");
5587 REGB3 = TAG_Int(11);
5588 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB3);
5589 once_value_26 = fra.me.REG[7];
5590 register_static_object(&once_value_26);
5591 } else fra.me.REG[7] = once_value_26;
5592 fra.me.REG[7] = fra.me.REG[7];
5593 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
5594 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
5595 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
5596 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
5597 if (!once_value_27) {
5598 fra.me.REG[7] = BOX_NativeString("::");
5599 REGB3 = TAG_Int(2);
5600 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB3);
5601 once_value_27 = fra.me.REG[7];
5602 register_static_object(&once_value_27);
5603 } else fra.me.REG[7] = once_value_27;
5604 fra.me.REG[7] = fra.me.REG[7];
5605 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
5606 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
5607 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
5608 if (!once_value_28) {
5609 fra.me.REG[7] = BOX_NativeString(" with ");
5610 REGB3 = TAG_Int(6);
5611 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB3);
5612 once_value_28 = fra.me.REG[7];
5613 register_static_object(&once_value_28);
5614 } else fra.me.REG[7] = once_value_28;
5615 fra.me.REG[7] = fra.me.REG[7];
5616 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
5617 REGB3 = CALL_static_type___MMSignature___arity(fra.me.REG[8])(fra.me.REG[8]);
5618 fra.me.REG[7] = CALL_string___Object___to_s(REGB3)(REGB3);
5619 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
5620 if (!once_value_29) {
5621 fra.me.REG[7] = BOX_NativeString(" parameter(s).");
5622 REGB3 = TAG_Int(14);
5623 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB3);
5624 once_value_29 = fra.me.REG[7];
5625 register_static_object(&once_value_29);
5626 } else fra.me.REG[7] = once_value_29;
5627 fra.me.REG[7] = fra.me.REG[7];
5628 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
5629 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5630 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[10]);
5631 } else {
5632 /* ./syntax//mmbuilder.nit:884 */
5633 REGB3 = TAG_Int(0);
5634 REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5635 if (UNTAG_Bool(REGB4)) {
5636 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 884);
5637 }
5638 REGB4 = CALL_static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
5639 /* ./../lib/standard//kernel.nit:332 */
5640 while(1) {
5641 /* ./../lib/standard//kernel.nit:212 */
5642 REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
5643 /* ./../lib/standard//kernel.nit:332 */
5644 if (UNTAG_Bool(REGB5)) {
5645 /* ./syntax//mmbuilder.nit:884 */
5646 REGB5 = REGB3;
5647 /* ./syntax//mmbuilder.nit:885 */
5648 REGB6 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5649 if (UNTAG_Bool(REGB6)) {
5650 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 885);
5651 }
5652 fra.me.REG[10] = CALL_static_type___MMSignature_____bra(fra.me.REG[4])(fra.me.REG[4], REGB5);
5653 fra.me.REG[7] = CALL_static_type___MMSignature_____bra(fra.me.REG[8])(fra.me.REG[8], REGB5);
5654 REGB6 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[10],fra.me.REG[7]));
5655 if (UNTAG_Bool(REGB6)) {
5656 } else {
5657 REGB7 = CALL_kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
5658 REGB6 = REGB7;
5659 }
5660 REGB6 = TAG_Bool(!UNTAG_Bool(REGB6));
5661 if (UNTAG_Bool(REGB6)) {
5662 /* ./syntax//mmbuilder.nit:886 */
5663 REGB6 = TAG_Int(13);
5664 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB6);
5665 if (!once_value_30) {
5666 fra.me.REG[10] = BOX_NativeString("Redef error: Expected ");
5667 REGB6 = TAG_Int(22);
5668 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB6);
5669 once_value_30 = fra.me.REG[10];
5670 register_static_object(&once_value_30);
5671 } else fra.me.REG[10] = once_value_30;
5672 fra.me.REG[10] = fra.me.REG[10];
5673 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5674 fra.me.REG[10] = CALL_static_type___MMSignature_____bra(fra.me.REG[8])(fra.me.REG[8], REGB5);
5675 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5676 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5677 if (!once_value_31) {
5678 fra.me.REG[10] = BOX_NativeString(" (as in ");
5679 REGB6 = TAG_Int(8);
5680 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB6);
5681 once_value_31 = fra.me.REG[10];
5682 register_static_object(&once_value_31);
5683 } else fra.me.REG[10] = once_value_31;
5684 fra.me.REG[10] = fra.me.REG[10];
5685 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5686 fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
5687 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5688 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5689 if (!once_value_32) {
5690 fra.me.REG[10] = BOX_NativeString("::");
5691 REGB6 = TAG_Int(2);
5692 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB6);
5693 once_value_32 = fra.me.REG[10];
5694 register_static_object(&once_value_32);
5695 } else fra.me.REG[10] = once_value_32;
5696 fra.me.REG[10] = fra.me.REG[10];
5697 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5698 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
5699 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5700 if (!once_value_33) {
5701 fra.me.REG[10] = BOX_NativeString("), got ");
5702 REGB6 = TAG_Int(7);
5703 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB6);
5704 once_value_33 = fra.me.REG[10];
5705 register_static_object(&once_value_33);
5706 } else fra.me.REG[10] = once_value_33;
5707 fra.me.REG[10] = fra.me.REG[10];
5708 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5709 REGB6 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5710 if (UNTAG_Bool(REGB6)) {
5711 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 886);
5712 }
5713 fra.me.REG[10] = CALL_static_type___MMSignature_____bra(fra.me.REG[4])(fra.me.REG[4], REGB5);
5714 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5715 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5716 if (!once_value_34) {
5717 fra.me.REG[10] = BOX_NativeString(" in ");
5718 REGB5 = TAG_Int(4);
5719 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB5);
5720 once_value_34 = fra.me.REG[10];
5721 register_static_object(&once_value_34);
5722 } else fra.me.REG[10] = once_value_34;
5723 fra.me.REG[10] = fra.me.REG[10];
5724 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5725 fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5726 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5727 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5728 if (!once_value_35) {
5729 fra.me.REG[10] = BOX_NativeString("::");
5730 REGB5 = TAG_Int(2);
5731 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB5);
5732 once_value_35 = fra.me.REG[10];
5733 register_static_object(&once_value_35);
5734 } else fra.me.REG[10] = once_value_35;
5735 fra.me.REG[10] = fra.me.REG[10];
5736 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5737 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5738 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5739 if (!once_value_36) {
5740 fra.me.REG[10] = BOX_NativeString(".");
5741 REGB5 = TAG_Int(1);
5742 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB5);
5743 once_value_36 = fra.me.REG[10];
5744 register_static_object(&once_value_36);
5745 } else fra.me.REG[10] = once_value_36;
5746 fra.me.REG[10] = fra.me.REG[10];
5747 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5748 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
5749 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[7]);
5750 }
5751 /* ./../lib/standard//kernel.nit:334 */
5752 REGB5 = TAG_Int(1);
5753 /* ./../lib/standard//kernel.nit:215 */
5754 REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5));
5755 /* ./../lib/standard//kernel.nit:334 */
5756 REGB3 = REGB5;
5757 } else {
5758 /* ./../lib/standard//kernel.nit:332 */
5759 goto label37;
5760 }
5761 }
5762 label37: while(0);
5763 }
5764 /* ./syntax//mmbuilder.nit:891 */
5765 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5766 if (UNTAG_Bool(REGB3)) {
5767 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 891);
5768 }
5769 fra.me.REG[7] = CALL_static_type___MMSignature___return_type(fra.me.REG[4])(fra.me.REG[4]);
5770 /* ./syntax//mmbuilder.nit:892 */
5771 fra.me.REG[10] = CALL_static_type___MMSignature___return_type(fra.me.REG[8])(fra.me.REG[8]);
5772 /* ./syntax//mmbuilder.nit:893 */
5773 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5774 if (UNTAG_Bool(REGB3)) {
5775 } else {
5776 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5777 if (UNTAG_Bool(REGB4)) {
5778 REGB4 = TAG_Bool(false);
5779 REGB3 = REGB4;
5780 } else {
5781 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
5782 REGB3 = REGB4;
5783 }
5784 }
5785 if (UNTAG_Bool(REGB3)) {
5786 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
5787 if (UNTAG_Bool(REGB3)) {
5788 } else {
5789 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
5790 if (UNTAG_Bool(REGB4)) {
5791 REGB4 = TAG_Bool(false);
5792 REGB3 = REGB4;
5793 } else {
5794 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
5795 REGB3 = REGB4;
5796 }
5797 }
5798 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
5799 } else {
5800 REGB4 = TAG_Bool(false);
5801 REGB3 = REGB4;
5802 }
5803 if (UNTAG_Bool(REGB3)) {
5804 /* ./syntax//mmbuilder.nit:894 */
5805 REGB3 = TAG_Int(9);
5806 fra.me.REG[12] = NEW_Array_array___Array___with_capacity(REGB3);
5807 if (!once_value_38) {
5808 fra.me.REG[11] = BOX_NativeString("Redef error: The procedure ");
5809 REGB3 = TAG_Int(27);
5810 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
5811 once_value_38 = fra.me.REG[11];
5812 register_static_object(&once_value_38);
5813 } else fra.me.REG[11] = once_value_38;
5814 fra.me.REG[11] = fra.me.REG[11];
5815 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
5816 fra.me.REG[11] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5817 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
5818 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
5819 if (!once_value_39) {
5820 fra.me.REG[11] = BOX_NativeString("::");
5821 REGB3 = TAG_Int(2);
5822 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
5823 once_value_39 = fra.me.REG[11];
5824 register_static_object(&once_value_39);
5825 } else fra.me.REG[11] = once_value_39;
5826 fra.me.REG[11] = fra.me.REG[11];
5827 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
5828 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5829 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
5830 if (!once_value_40) {
5831 fra.me.REG[11] = BOX_NativeString(" redefines the function ");
5832 REGB3 = TAG_Int(24);
5833 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
5834 once_value_40 = fra.me.REG[11];
5835 register_static_object(&once_value_40);
5836 } else fra.me.REG[11] = once_value_40;
5837 fra.me.REG[11] = fra.me.REG[11];
5838 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
5839 fra.me.REG[11] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
5840 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
5841 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
5842 if (!once_value_41) {
5843 fra.me.REG[11] = BOX_NativeString("::");
5844 REGB3 = TAG_Int(2);
5845 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
5846 once_value_41 = fra.me.REG[11];
5847 register_static_object(&once_value_41);
5848 } else fra.me.REG[11] = once_value_41;
5849 fra.me.REG[11] = fra.me.REG[11];
5850 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
5851 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
5852 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
5853 if (!once_value_42) {
5854 fra.me.REG[11] = BOX_NativeString(".");
5855 REGB3 = TAG_Int(1);
5856 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
5857 once_value_42 = fra.me.REG[11];
5858 register_static_object(&once_value_42);
5859 } else fra.me.REG[11] = once_value_42;
5860 fra.me.REG[11] = fra.me.REG[11];
5861 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
5862 fra.me.REG[12] = CALL_string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
5863 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[12]);
5864 } else {
5865 /* ./syntax//mmbuilder.nit:895 */
5866 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5867 if (UNTAG_Bool(REGB3)) {
5868 } else {
5869 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5870 if (UNTAG_Bool(REGB4)) {
5871 REGB4 = TAG_Bool(false);
5872 REGB3 = REGB4;
5873 } else {
5874 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
5875 REGB3 = REGB4;
5876 }
5877 }
5878 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
5879 if (UNTAG_Bool(REGB3)) {
5880 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
5881 if (UNTAG_Bool(REGB3)) {
5882 } else {
5883 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
5884 if (UNTAG_Bool(REGB4)) {
5885 REGB4 = TAG_Bool(false);
5886 REGB3 = REGB4;
5887 } else {
5888 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
5889 REGB3 = REGB4;
5890 }
5891 }
5892 } else {
5893 REGB4 = TAG_Bool(false);
5894 REGB3 = REGB4;
5895 }
5896 if (UNTAG_Bool(REGB3)) {
5897 /* ./syntax//mmbuilder.nit:896 */
5898 REGB3 = TAG_Int(9);
5899 fra.me.REG[12] = NEW_Array_array___Array___with_capacity(REGB3);
5900 if (!once_value_43) {
5901 fra.me.REG[11] = BOX_NativeString("Redef error: The function ");
5902 REGB3 = TAG_Int(26);
5903 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
5904 once_value_43 = fra.me.REG[11];
5905 register_static_object(&once_value_43);
5906 } else fra.me.REG[11] = once_value_43;
5907 fra.me.REG[11] = fra.me.REG[11];
5908 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
5909 fra.me.REG[11] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5910 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
5911 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
5912 if (!once_value_44) {
5913 fra.me.REG[11] = BOX_NativeString("::");
5914 REGB3 = TAG_Int(2);
5915 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
5916 once_value_44 = fra.me.REG[11];
5917 register_static_object(&once_value_44);
5918 } else fra.me.REG[11] = once_value_44;
5919 fra.me.REG[11] = fra.me.REG[11];
5920 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
5921 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5922 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
5923 if (!once_value_45) {
5924 fra.me.REG[11] = BOX_NativeString(" redefines the procedure ");
5925 REGB3 = TAG_Int(25);
5926 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
5927 once_value_45 = fra.me.REG[11];
5928 register_static_object(&once_value_45);
5929 } else fra.me.REG[11] = once_value_45;
5930 fra.me.REG[11] = fra.me.REG[11];
5931 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
5932 fra.me.REG[11] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
5933 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
5934 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
5935 if (!once_value_46) {
5936 fra.me.REG[11] = BOX_NativeString("::");
5937 REGB3 = TAG_Int(2);
5938 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
5939 once_value_46 = fra.me.REG[11];
5940 register_static_object(&once_value_46);
5941 } else fra.me.REG[11] = once_value_46;
5942 fra.me.REG[11] = fra.me.REG[11];
5943 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
5944 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
5945 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
5946 if (!once_value_47) {
5947 fra.me.REG[11] = BOX_NativeString(".");
5948 REGB3 = TAG_Int(1);
5949 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
5950 once_value_47 = fra.me.REG[11];
5951 register_static_object(&once_value_47);
5952 } else fra.me.REG[11] = once_value_47;
5953 fra.me.REG[11] = fra.me.REG[11];
5954 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
5955 fra.me.REG[12] = CALL_string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
5956 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[12]);
5957 } else {
5958 /* ./syntax//mmbuilder.nit:897 */
5959 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5960 if (UNTAG_Bool(REGB3)) {
5961 } else {
5962 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5963 if (UNTAG_Bool(REGB4)) {
5964 REGB4 = TAG_Bool(false);
5965 REGB3 = REGB4;
5966 } else {
5967 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
5968 REGB3 = REGB4;
5969 }
5970 }
5971 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
5972 if (UNTAG_Bool(REGB3)) {
5973 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
5974 if (UNTAG_Bool(REGB3)) {
5975 } else {
5976 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
5977 if (UNTAG_Bool(REGB4)) {
5978 REGB4 = TAG_Bool(false);
5979 REGB3 = REGB4;
5980 } else {
5981 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
5982 REGB3 = REGB4;
5983 }
5984 }
5985 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
5986 } else {
5987 REGB4 = TAG_Bool(false);
5988 REGB3 = REGB4;
5989 }
5990 if (UNTAG_Bool(REGB3)) {
5991 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5992 if (UNTAG_Bool(REGB3)) {
5993 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 897);
5994 }
5995 REGB3 = CALL_static_type___MMType_____l(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5996 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
5997 } else {
5998 REGB4 = TAG_Bool(false);
5999 REGB3 = REGB4;
6000 }
6001 if (UNTAG_Bool(REGB3)) {
6002 /* ./syntax//mmbuilder.nit:898 */
6003 REGB3 = TAG_Int(13);
6004 fra.me.REG[12] = NEW_Array_array___Array___with_capacity(REGB3);
6005 if (!once_value_48) {
6006 fra.me.REG[11] = BOX_NativeString("Redef error: Expected ");
6007 REGB3 = TAG_Int(22);
6008 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
6009 once_value_48 = fra.me.REG[11];
6010 register_static_object(&once_value_48);
6011 } else fra.me.REG[11] = once_value_48;
6012 fra.me.REG[11] = fra.me.REG[11];
6013 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6014 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6015 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6016 if (!once_value_49) {
6017 fra.me.REG[11] = BOX_NativeString(" (as in ");
6018 REGB3 = TAG_Int(8);
6019 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
6020 once_value_49 = fra.me.REG[11];
6021 register_static_object(&once_value_49);
6022 } else fra.me.REG[11] = once_value_49;
6023 fra.me.REG[11] = fra.me.REG[11];
6024 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6025 fra.me.REG[11] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6026 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
6027 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6028 if (!once_value_50) {
6029 fra.me.REG[11] = BOX_NativeString("::");
6030 REGB3 = TAG_Int(2);
6031 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
6032 once_value_50 = fra.me.REG[11];
6033 register_static_object(&once_value_50);
6034 } else fra.me.REG[11] = once_value_50;
6035 fra.me.REG[11] = fra.me.REG[11];
6036 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6037 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6038 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6039 if (!once_value_51) {
6040 fra.me.REG[11] = BOX_NativeString("), got ");
6041 REGB3 = TAG_Int(7);
6042 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
6043 once_value_51 = fra.me.REG[11];
6044 register_static_object(&once_value_51);
6045 } else fra.me.REG[11] = once_value_51;
6046 fra.me.REG[11] = fra.me.REG[11];
6047 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6048 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
6049 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6050 if (!once_value_52) {
6051 fra.me.REG[11] = BOX_NativeString(" in ");
6052 REGB3 = TAG_Int(4);
6053 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
6054 once_value_52 = fra.me.REG[11];
6055 register_static_object(&once_value_52);
6056 } else fra.me.REG[11] = once_value_52;
6057 fra.me.REG[11] = fra.me.REG[11];
6058 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6059 fra.me.REG[11] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6060 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
6061 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6062 if (!once_value_53) {
6063 fra.me.REG[11] = BOX_NativeString("::");
6064 REGB3 = TAG_Int(2);
6065 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
6066 once_value_53 = fra.me.REG[11];
6067 register_static_object(&once_value_53);
6068 } else fra.me.REG[11] = once_value_53;
6069 fra.me.REG[11] = fra.me.REG[11];
6070 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6071 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6072 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6073 if (!once_value_54) {
6074 fra.me.REG[11] = BOX_NativeString(".");
6075 REGB3 = TAG_Int(1);
6076 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
6077 once_value_54 = fra.me.REG[11];
6078 register_static_object(&once_value_54);
6079 } else fra.me.REG[11] = once_value_54;
6080 fra.me.REG[11] = fra.me.REG[11];
6081 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6082 fra.me.REG[12] = CALL_string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
6083 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[12]);
6084 } else {
6085 /* ./syntax//mmbuilder.nit:899 */
6086 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6087 if (UNTAG_Bool(REGB3)) {
6088 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 899);
6089 }
6090 REGB3 = CALL_static_type___MMSignature_____l(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
6091 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
6092 if (UNTAG_Bool(REGB3)) {
6093 fra.me.REG[8] = CALL_syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
6094 REGB3 = CALL_mmloader___ToolContext___error_count(fra.me.REG[8])(fra.me.REG[8]);
6095 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB3));
6096 if (UNTAG_Bool(REGB4)) {
6097 } else {
6098 /* ./../lib/standard//kernel.nit:207 */
6099 REGB3 = TAG_Bool((REGB0)==(REGB3));
6100 /* ./syntax//mmbuilder.nit:899 */
6101 REGB4 = REGB3;
6102 }
6103 } else {
6104 REGB3 = TAG_Bool(false);
6105 REGB4 = REGB3;
6106 }
6107 if (UNTAG_Bool(REGB4)) {
6108 /* ./syntax//mmbuilder.nit:901 */
6109 REGB4 = TAG_Int(9);
6110 fra.me.REG[8] = NEW_Array_array___Array___with_capacity(REGB4);
6111 if (!once_value_55) {
6112 fra.me.REG[12] = BOX_NativeString("Redef error: Incompatible redefinition of ");
6113 REGB4 = TAG_Int(42);
6114 fra.me.REG[12] = NEW_String_string___String___with_native(fra.me.REG[12], REGB4);
6115 once_value_55 = fra.me.REG[12];
6116 register_static_object(&once_value_55);
6117 } else fra.me.REG[12] = once_value_55;
6118 fra.me.REG[12] = fra.me.REG[12];
6119 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[12]);
6120 fra.me.REG[12] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6121 fra.me.REG[12] = CALL_string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
6122 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[12]);
6123 if (!once_value_56) {
6124 fra.me.REG[12] = BOX_NativeString("::");
6125 REGB4 = TAG_Int(2);
6126 fra.me.REG[12] = NEW_String_string___String___with_native(fra.me.REG[12], REGB4);
6127 once_value_56 = fra.me.REG[12];
6128 register_static_object(&once_value_56);
6129 } else fra.me.REG[12] = once_value_56;
6130 fra.me.REG[12] = fra.me.REG[12];
6131 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[12]);
6132 fra.me.REG[12] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6133 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[12]);
6134 if (!once_value_57) {
6135 fra.me.REG[12] = BOX_NativeString(" with ");
6136 REGB4 = TAG_Int(6);
6137 fra.me.REG[12] = NEW_String_string___String___with_native(fra.me.REG[12], REGB4);
6138 once_value_57 = fra.me.REG[12];
6139 register_static_object(&once_value_57);
6140 } else fra.me.REG[12] = once_value_57;
6141 fra.me.REG[12] = fra.me.REG[12];
6142 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[12]);
6143 fra.me.REG[12] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6144 fra.me.REG[12] = CALL_string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
6145 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[12]);
6146 if (!once_value_58) {
6147 fra.me.REG[12] = BOX_NativeString("::");
6148 REGB4 = TAG_Int(2);
6149 fra.me.REG[12] = NEW_String_string___String___with_native(fra.me.REG[12], REGB4);
6150 once_value_58 = fra.me.REG[12];
6151 register_static_object(&once_value_58);
6152 } else fra.me.REG[12] = once_value_58;
6153 fra.me.REG[12] = fra.me.REG[12];
6154 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[12]);
6155 fra.me.REG[12] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6156 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[12]);
6157 if (!once_value_59) {
6158 fra.me.REG[12] = BOX_NativeString("");
6159 REGB4 = TAG_Int(0);
6160 fra.me.REG[12] = NEW_String_string___String___with_native(fra.me.REG[12], REGB4);
6161 once_value_59 = fra.me.REG[12];
6162 register_static_object(&once_value_59);
6163 } else fra.me.REG[12] = once_value_59;
6164 fra.me.REG[12] = fra.me.REG[12];
6165 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[12]);
6166 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
6167 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]);
6168 } else {
6169 /* ./syntax//mmbuilder.nit:902 */
6170 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6171 if (UNTAG_Bool(REGB4)) {
6172 } else {
6173 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6174 if (UNTAG_Bool(REGB3)) {
6175 REGB3 = TAG_Bool(false);
6176 REGB4 = REGB3;
6177 } else {
6178 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
6179 REGB4 = REGB3;
6180 }
6181 }
6182 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
6183 if (UNTAG_Bool(REGB4)) {
6184 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6185 if (UNTAG_Bool(REGB4)) {
6186 } else {
6187 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6188 if (UNTAG_Bool(REGB3)) {
6189 REGB3 = TAG_Bool(false);
6190 REGB4 = REGB3;
6191 } else {
6192 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
6193 REGB4 = REGB3;
6194 }
6195 }
6196 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
6197 } else {
6198 REGB3 = TAG_Bool(false);
6199 REGB4 = REGB3;
6200 }
6201 if (UNTAG_Bool(REGB4)) {
6202 REGB4 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[7],fra.me.REG[10]));
6203 if (UNTAG_Bool(REGB4)) {
6204 } else {
6205 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6206 if (UNTAG_Bool(REGB3)) {
6207 REGB3 = TAG_Bool(false);
6208 REGB4 = REGB3;
6209 } else {
6210 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
6211 REGB4 = REGB3;
6212 }
6213 }
6214 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
6215 } else {
6216 REGB3 = TAG_Bool(false);
6217 REGB4 = REGB3;
6218 }
6219 if (UNTAG_Bool(REGB4)) {
6220 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
6221 } else {
6222 REGB3 = TAG_Bool(false);
6223 REGB4 = REGB3;
6224 }
6225 if (UNTAG_Bool(REGB4)) {
6226 /* ./syntax//mmbuilder.nit:904 */
6227 REGB4 = TAG_Int(13);
6228 fra.me.REG[8] = NEW_Array_array___Array___with_capacity(REGB4);
6229 if (!once_value_60) {
6230 fra.me.REG[12] = BOX_NativeString("Redef warning: Expected ");
6231 REGB4 = TAG_Int(24);
6232 fra.me.REG[12] = NEW_String_string___String___with_native(fra.me.REG[12], REGB4);
6233 once_value_60 = fra.me.REG[12];
6234 register_static_object(&once_value_60);
6235 } else fra.me.REG[12] = once_value_60;
6236 fra.me.REG[12] = fra.me.REG[12];
6237 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[12]);
6238 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6239 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6240 if (!once_value_61) {
6241 fra.me.REG[10] = BOX_NativeString(" (as in ");
6242 REGB4 = TAG_Int(8);
6243 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
6244 once_value_61 = fra.me.REG[10];
6245 register_static_object(&once_value_61);
6246 } else fra.me.REG[10] = once_value_61;
6247 fra.me.REG[10] = fra.me.REG[10];
6248 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6249 fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6250 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6251 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6252 if (!once_value_62) {
6253 fra.me.REG[10] = BOX_NativeString("::");
6254 REGB4 = TAG_Int(2);
6255 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
6256 once_value_62 = fra.me.REG[10];
6257 register_static_object(&once_value_62);
6258 } else fra.me.REG[10] = once_value_62;
6259 fra.me.REG[10] = fra.me.REG[10];
6260 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6261 fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6262 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
6263 if (!once_value_63) {
6264 fra.me.REG[9] = BOX_NativeString("), got ");
6265 REGB4 = TAG_Int(7);
6266 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB4);
6267 once_value_63 = fra.me.REG[9];
6268 register_static_object(&once_value_63);
6269 } else fra.me.REG[9] = once_value_63;
6270 fra.me.REG[9] = fra.me.REG[9];
6271 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
6272 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
6273 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
6274 if (!once_value_64) {
6275 fra.me.REG[7] = BOX_NativeString(" in ");
6276 REGB4 = TAG_Int(4);
6277 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB4);
6278 once_value_64 = fra.me.REG[7];
6279 register_static_object(&once_value_64);
6280 } else fra.me.REG[7] = once_value_64;
6281 fra.me.REG[7] = fra.me.REG[7];
6282 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
6283 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6284 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
6285 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
6286 if (!once_value_65) {
6287 fra.me.REG[7] = BOX_NativeString("::");
6288 REGB4 = TAG_Int(2);
6289 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB4);
6290 once_value_65 = fra.me.REG[7];
6291 register_static_object(&once_value_65);
6292 } else fra.me.REG[7] = once_value_65;
6293 fra.me.REG[7] = fra.me.REG[7];
6294 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
6295 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6296 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
6297 if (!once_value_66) {
6298 fra.me.REG[7] = BOX_NativeString(".");
6299 REGB4 = TAG_Int(1);
6300 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB4);
6301 once_value_66 = fra.me.REG[7];
6302 register_static_object(&once_value_66);
6303 } else fra.me.REG[7] = once_value_66;
6304 fra.me.REG[7] = fra.me.REG[7];
6305 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
6306 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
6307 CALL_syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]);
6308 }
6309 }
6310 }
6311 }
6312 }
6313 /* ./../lib/standard//collection//array.nit:239 */
6314 REGB4 = TAG_Int(1);
6315 /* ./../lib/standard//kernel.nit:215 */
6316 REGB4 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB4));
6317 /* ./../lib/standard//collection//array.nit:239 */
6318 REGB2 = REGB4;
6319 } else {
6320 /* ./../lib/standard//collection//array.nit:237 */
6321 goto label67;
6322 }
6323 }
6324 label67: while(0);
6325 /* ./syntax//mmbuilder.nit:908 */
6326 REGB2 = TAG_Int(1);
6327 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
6328 if (UNTAG_Bool(REGB4)) {
6329 } else {
6330 /* ./../lib/standard//kernel.nit:207 */
6331 REGB2 = TAG_Bool((REGB1)==(REGB2));
6332 /* ./syntax//mmbuilder.nit:908 */
6333 REGB4 = REGB2;
6334 }
6335 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
6336 if (UNTAG_Bool(REGB4)) {
6337 REGB4 = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
6338 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB1));
6339 if (UNTAG_Bool(REGB2)) {
6340 } else {
6341 /* ./../lib/standard//kernel.nit:207 */
6342 REGB1 = TAG_Bool((REGB4)==(REGB1));
6343 /* ./syntax//mmbuilder.nit:908 */
6344 REGB2 = REGB1;
6345 }
6346 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
6347 } else {
6348 REGB1 = TAG_Bool(false);
6349 REGB2 = REGB1;
6350 }
6351 if (UNTAG_Bool(REGB2)) {
6352 /* ./syntax//mmbuilder.nit:909 */
6353 REGB2 = TAG_Int(5);
6354 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB2);
6355 if (!once_value_68) {
6356 fra.me.REG[6] = BOX_NativeString("Redef error: ");
6357 REGB2 = TAG_Int(13);
6358 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2);
6359 once_value_68 = fra.me.REG[6];
6360 register_static_object(&once_value_68);
6361 } else fra.me.REG[6] = once_value_68;
6362 fra.me.REG[6] = fra.me.REG[6];
6363 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
6364 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6365 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6366 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
6367 if (!once_value_69) {
6368 fra.me.REG[6] = BOX_NativeString("::");
6369 REGB2 = TAG_Int(2);
6370 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2);
6371 once_value_69 = fra.me.REG[6];
6372 register_static_object(&once_value_69);
6373 } else fra.me.REG[6] = once_value_69;
6374 fra.me.REG[6] = fra.me.REG[6];
6375 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
6376 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6377 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
6378 if (!once_value_70) {
6379 fra.me.REG[2] = BOX_NativeString(" redefinition cannot change visibility.");
6380 REGB2 = TAG_Int(39);
6381 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2);
6382 once_value_70 = fra.me.REG[2];
6383 register_static_object(&once_value_70);
6384 } else fra.me.REG[2] = once_value_70;
6385 fra.me.REG[2] = fra.me.REG[2];
6386 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
6387 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
6388 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
6389 }
6390 /* ./syntax//mmbuilder.nit:911 */
6391 fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
6392 REGB2 = TAG_Bool(true);
6393 CALL_syntax_base___MMGlobalProperty___check_visibility(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[0], fra.me.REG[4], REGB2);
6394 label4: while(0);
6395 stack_frame_head = fra.me.prev;
6396 return;
6397 }
6398 val_t mmbuilder___AAttrPropdef___readmethod(val_t p0){
6399 struct {struct stack_frame_t me;} fra;
6400 val_t tmp;
6401 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6402 fra.me.file = LOCATE_mmbuilder;
6403 fra.me.line = 916;
6404 fra.me.meth = LOCATE_mmbuilder___AAttrPropdef___readmethod;
6405 fra.me.has_broke = 0;
6406 fra.me.REG_size = 1;
6407 fra.me.REG[0] = NIT_NULL;
6408 fra.me.REG[0] = p0;
6409 /* ./syntax//mmbuilder.nit:916 */
6410 fra.me.REG[0] = ATTR_mmbuilder___AAttrPropdef____readmethod(fra.me.REG[0]);
6411 stack_frame_head = fra.me.prev;
6412 return fra.me.REG[0];
6413 }
6414 val_t mmbuilder___AAttrPropdef___writemethod(val_t p0){
6415 struct {struct stack_frame_t me;} fra;
6416 val_t tmp;
6417 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6418 fra.me.file = LOCATE_mmbuilder;
6419 fra.me.line = 917;
6420 fra.me.meth = LOCATE_mmbuilder___AAttrPropdef___writemethod;
6421 fra.me.has_broke = 0;
6422 fra.me.REG_size = 1;
6423 fra.me.REG[0] = NIT_NULL;
6424 fra.me.REG[0] = p0;
6425 /* ./syntax//mmbuilder.nit:917 */
6426 fra.me.REG[0] = ATTR_mmbuilder___AAttrPropdef____writemethod(fra.me.REG[0]);
6427 stack_frame_head = fra.me.prev;
6428 return fra.me.REG[0];
6429 }
6430 val_t mmbuilder___AAttrPropdef___prop(val_t p0){
6431 struct {struct stack_frame_t me;} fra;
6432 val_t REGB0;
6433 val_t tmp;
6434 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6435 fra.me.file = LOCATE_mmbuilder;
6436 fra.me.line = 919;
6437 fra.me.meth = LOCATE_mmbuilder___AAttrPropdef___prop;
6438 fra.me.has_broke = 0;
6439 fra.me.REG_size = 1;
6440 fra.me.REG[0] = NIT_NULL;
6441 fra.me.REG[0] = p0;
6442 /* ./syntax//mmbuilder.nit:919 */
6443 fra.me.REG[0] = ATTR_mmbuilder___AAttrPropdef____prop(fra.me.REG[0]);
6444 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
6445 if (UNTAG_Bool(REGB0)) {
6446 } else {
6447 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 919);
6448 }
6449 goto label1;
6450 label1: while(0);
6451 stack_frame_head = fra.me.prev;
6452 return fra.me.REG[0];
6453 }
6454 void mmbuilder___AAttrPropdef___accept_property_builder(val_t p0, val_t p1){
6455 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
6456 val_t REGB0;
6457 val_t REGB1;
6458 val_t REGB2;
6459 val_t tmp;
6460 static val_t once_value_1; /* Once value */
6461 static val_t once_value_2; /* Once value */
6462 static val_t once_value_3; /* Once value */
6463 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6464 fra.me.file = LOCATE_mmbuilder;
6465 fra.me.line = 921;
6466 fra.me.meth = LOCATE_mmbuilder___AAttrPropdef___accept_property_builder;
6467 fra.me.has_broke = 0;
6468 fra.me.REG_size = 6;
6469 fra.me.REG[0] = NIT_NULL;
6470 fra.me.REG[1] = NIT_NULL;
6471 fra.me.REG[2] = NIT_NULL;
6472 fra.me.REG[3] = NIT_NULL;
6473 fra.me.REG[4] = NIT_NULL;
6474 fra.me.REG[5] = NIT_NULL;
6475 fra.me.REG[0] = p0;
6476 fra.me.REG[1] = p1;
6477 /* ./syntax//mmbuilder.nit:921 */
6478 fra.me.REG[2] = fra.me.REG[0];
6479 fra.me.REG[3] = fra.me.REG[1];
6480 /* ./syntax//mmbuilder.nit:923 */
6481 CALL_SUPER_mmbuilder___AAttrPropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
6482 /* ./syntax//mmbuilder.nit:925 */
6483 fra.me.REG[1] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
6484 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6485 if (UNTAG_Bool(REGB0)) {
6486 } else {
6487 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6488 if (UNTAG_Bool(REGB1)) {
6489 REGB1 = TAG_Bool(false);
6490 REGB0 = REGB1;
6491 } else {
6492 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
6493 REGB0 = REGB1;
6494 }
6495 }
6496 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6497 if (UNTAG_Bool(REGB0)) {
6498 /* ./syntax//mmbuilder.nit:926 */
6499 fra.me.REG[1] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
6500 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6501 if (UNTAG_Bool(REGB0)) {
6502 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 926);
6503 }
6504 fra.me.REG[1] = CALL_syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
6505 } else {
6506 /* ./syntax//mmbuilder.nit:928 */
6507 if (!once_value_1) {
6508 fra.me.REG[0] = BOX_NativeString("@");
6509 REGB0 = TAG_Int(1);
6510 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
6511 once_value_1 = fra.me.REG[0];
6512 register_static_object(&once_value_1);
6513 } else fra.me.REG[0] = once_value_1;
6514 fra.me.REG[0] = fra.me.REG[0];
6515 fra.me.REG[4] = CALL_parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
6516 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6517 if (UNTAG_Bool(REGB0)) {
6518 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 928);
6519 }
6520 fra.me.REG[4] = CALL_lexer___Token___text(fra.me.REG[4])(fra.me.REG[4]);
6521 fra.me.REG[4] = CALL_string___String_____plus(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
6522 fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
6523 fra.me.REG[1] = fra.me.REG[4];
6524 }
6525 /* ./syntax//mmbuilder.nit:930 */
6526 fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
6527 /* ./syntax//mmbuilder.nit:931 */
6528 fra.me.REG[0] = NEW_MMSrcAttribute_syntax_base___MMSrcAttribute___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
6529 /* ./syntax//mmbuilder.nit:932 */
6530 ATTR_mmbuilder___AAttrPropdef____prop(fra.me.REG[2]) = fra.me.REG[0];
6531 /* ./syntax//mmbuilder.nit:933 */
6532 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
6533 CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[0]);
6534 /* ./syntax//mmbuilder.nit:935 */
6535 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
6536 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6537 if (UNTAG_Bool(REGB0)) {
6538 } else {
6539 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6540 if (UNTAG_Bool(REGB1)) {
6541 REGB1 = TAG_Bool(false);
6542 REGB0 = REGB1;
6543 } else {
6544 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
6545 REGB0 = REGB1;
6546 }
6547 }
6548 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6549 if (UNTAG_Bool(REGB0)) {
6550 REGB0 = TAG_Bool(true);
6551 } else {
6552 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
6553 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6554 if (UNTAG_Bool(REGB1)) {
6555 } else {
6556 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6557 if (UNTAG_Bool(REGB2)) {
6558 REGB2 = TAG_Bool(false);
6559 REGB1 = REGB2;
6560 } else {
6561 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
6562 REGB1 = REGB2;
6563 }
6564 }
6565 REGB0 = REGB1;
6566 }
6567 if (UNTAG_Bool(REGB0)) {
6568 /* ./syntax//mmbuilder.nit:936 */
6569 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
6570 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6571 if (UNTAG_Bool(REGB0)) {
6572 } else {
6573 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6574 if (UNTAG_Bool(REGB1)) {
6575 REGB1 = TAG_Bool(false);
6576 REGB0 = REGB1;
6577 } else {
6578 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
6579 REGB0 = REGB1;
6580 }
6581 }
6582 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6583 if (UNTAG_Bool(REGB0)) {
6584 /* ./syntax//mmbuilder.nit:937 */
6585 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
6586 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6587 if (UNTAG_Bool(REGB0)) {
6588 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 937);
6589 }
6590 fra.me.REG[0] = CALL_lexer___Token___text(fra.me.REG[0])(fra.me.REG[0]);
6591 REGB0 = TAG_Int(1);
6592 fra.me.REG[0] = CALL_string___AbstractString___substring_from(fra.me.REG[0])(fra.me.REG[0], REGB0);
6593 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
6594 fra.me.REG[1] = fra.me.REG[0];
6595 } else {
6596 /* ./syntax//mmbuilder.nit:939 */
6597 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
6598 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6599 if (UNTAG_Bool(REGB0)) {
6600 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 939);
6601 }
6602 fra.me.REG[0] = CALL_syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
6603 fra.me.REG[1] = fra.me.REG[0];
6604 }
6605 /* ./syntax//mmbuilder.nit:941 */
6606 fra.me.REG[0] = NEW_MMReadImplementationMethod_syntax_base___MMReadImplementationMethod___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
6607 /* ./syntax//mmbuilder.nit:942 */
6608 ATTR_mmbuilder___AAttrPropdef____readmethod(fra.me.REG[2]) = fra.me.REG[0];
6609 /* ./syntax//mmbuilder.nit:943 */
6610 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
6611 CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[0]);
6612 }
6613 /* ./syntax//mmbuilder.nit:945 */
6614 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
6615 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6616 if (UNTAG_Bool(REGB0)) {
6617 } else {
6618 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6619 if (UNTAG_Bool(REGB1)) {
6620 REGB1 = TAG_Bool(false);
6621 REGB0 = REGB1;
6622 } else {
6623 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
6624 REGB0 = REGB1;
6625 }
6626 }
6627 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6628 if (UNTAG_Bool(REGB0)) {
6629 REGB0 = TAG_Bool(true);
6630 } else {
6631 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
6632 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6633 if (UNTAG_Bool(REGB1)) {
6634 } else {
6635 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6636 if (UNTAG_Bool(REGB2)) {
6637 REGB2 = TAG_Bool(false);
6638 REGB1 = REGB2;
6639 } else {
6640 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
6641 REGB1 = REGB2;
6642 }
6643 }
6644 REGB0 = REGB1;
6645 }
6646 if (UNTAG_Bool(REGB0)) {
6647 /* ./syntax//mmbuilder.nit:946 */
6648 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
6649 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6650 if (UNTAG_Bool(REGB0)) {
6651 } else {
6652 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6653 if (UNTAG_Bool(REGB1)) {
6654 REGB1 = TAG_Bool(false);
6655 REGB0 = REGB1;
6656 } else {
6657 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
6658 REGB0 = REGB1;
6659 }
6660 }
6661 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6662 if (UNTAG_Bool(REGB0)) {
6663 /* ./syntax//mmbuilder.nit:947 */
6664 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
6665 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6666 if (UNTAG_Bool(REGB0)) {
6667 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 947);
6668 }
6669 fra.me.REG[0] = CALL_lexer___Token___text(fra.me.REG[0])(fra.me.REG[0]);
6670 REGB0 = TAG_Int(1);
6671 fra.me.REG[0] = CALL_string___AbstractString___substring_from(fra.me.REG[0])(fra.me.REG[0], REGB0);
6672 if (!once_value_2) {
6673 fra.me.REG[5] = BOX_NativeString("=");
6674 REGB0 = TAG_Int(1);
6675 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
6676 once_value_2 = fra.me.REG[5];
6677 register_static_object(&once_value_2);
6678 } else fra.me.REG[5] = once_value_2;
6679 fra.me.REG[5] = fra.me.REG[5];
6680 fra.me.REG[5] = CALL_string___String_____plus(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
6681 fra.me.REG[5] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
6682 fra.me.REG[1] = fra.me.REG[5];
6683 } else {
6684 /* ./syntax//mmbuilder.nit:949 */
6685 fra.me.REG[5] = CALL_parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
6686 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6687 if (UNTAG_Bool(REGB0)) {
6688 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 949);
6689 }
6690 fra.me.REG[5] = CALL_lexer___Token___text(fra.me.REG[5])(fra.me.REG[5]);
6691 if (!once_value_3) {
6692 fra.me.REG[0] = BOX_NativeString("=");
6693 REGB0 = TAG_Int(1);
6694 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
6695 once_value_3 = fra.me.REG[0];
6696 register_static_object(&once_value_3);
6697 } else fra.me.REG[0] = once_value_3;
6698 fra.me.REG[0] = fra.me.REG[0];
6699 fra.me.REG[0] = CALL_string___String_____plus(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
6700 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
6701 fra.me.REG[1] = fra.me.REG[0];
6702 }
6703 /* ./syntax//mmbuilder.nit:951 */
6704 fra.me.REG[4] = NEW_MMWriteImplementationMethod_syntax_base___MMWriteImplementationMethod___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
6705 /* ./syntax//mmbuilder.nit:952 */
6706 ATTR_mmbuilder___AAttrPropdef____writemethod(fra.me.REG[2]) = fra.me.REG[4];
6707 /* ./syntax//mmbuilder.nit:953 */
6708 fra.me.REG[2] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
6709 CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
6710 }
6711 stack_frame_head = fra.me.prev;
6712 return;
6713 }
6714 void mmbuilder___AAttrPropdef___accept_property_verifier(val_t p0, val_t p1){
6715 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
6716 val_t REGB0;
6717 val_t REGB1;
6718 val_t REGB2;
6719 val_t REGB3;
6720 val_t tmp;
6721 static val_t once_value_2; /* Once value */
6722 static val_t once_value_3; /* Once value */
6723 static val_t once_value_4; /* Once value */
6724 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6725 fra.me.file = LOCATE_mmbuilder;
6726 fra.me.line = 957;
6727 fra.me.meth = LOCATE_mmbuilder___AAttrPropdef___accept_property_verifier;
6728 fra.me.has_broke = 0;
6729 fra.me.REG_size = 6;
6730 fra.me.REG[0] = NIT_NULL;
6731 fra.me.REG[1] = NIT_NULL;
6732 fra.me.REG[2] = NIT_NULL;
6733 fra.me.REG[3] = NIT_NULL;
6734 fra.me.REG[4] = NIT_NULL;
6735 fra.me.REG[5] = NIT_NULL;
6736 fra.me.REG[0] = p0;
6737 fra.me.REG[1] = p1;
6738 /* ./syntax//mmbuilder.nit:957 */
6739 fra.me.REG[2] = fra.me.REG[0];
6740 fra.me.REG[3] = fra.me.REG[1];
6741 /* ./syntax//mmbuilder.nit:959 */
6742 CALL_SUPER_mmbuilder___AAttrPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
6743 /* ./syntax//mmbuilder.nit:961 */
6744 fra.me.REG[1] = CALL_parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
6745 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6746 if (UNTAG_Bool(REGB0)) {
6747 } else {
6748 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6749 if (UNTAG_Bool(REGB1)) {
6750 REGB1 = TAG_Bool(false);
6751 REGB0 = REGB1;
6752 } else {
6753 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
6754 REGB0 = REGB1;
6755 }
6756 }
6757 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6758 if (UNTAG_Bool(REGB0)) {
6759 /* ./syntax//mmbuilder.nit:962 */
6760 fra.me.REG[1] = CALL_parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
6761 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6762 if (UNTAG_Bool(REGB0)) {
6763 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 962);
6764 }
6765 fra.me.REG[1] = CALL_syntax_base___AType___get_stype(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6766 /* ./syntax//mmbuilder.nit:963 */
6767 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6768 if (UNTAG_Bool(REGB0)) {
6769 } else {
6770 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6771 if (UNTAG_Bool(REGB1)) {
6772 REGB1 = TAG_Bool(false);
6773 REGB0 = REGB1;
6774 } else {
6775 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
6776 REGB0 = REGB1;
6777 }
6778 }
6779 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6780 if (UNTAG_Bool(REGB0)) {
6781 } else {
6782 goto label1;
6783 }
6784 } else {
6785 /* ./syntax//mmbuilder.nit:965 */
6786 REGB0 = TAG_Int(5);
6787 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0);
6788 if (!once_value_2) {
6789 fra.me.REG[4] = BOX_NativeString("Not yet implemented: Attribute definition ");
6790 REGB0 = TAG_Int(42);
6791 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
6792 once_value_2 = fra.me.REG[4];
6793 register_static_object(&once_value_2);
6794 } else fra.me.REG[4] = once_value_2;
6795 fra.me.REG[4] = fra.me.REG[4];
6796 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
6797 fra.me.REG[4] = CALL_syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
6798 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[4])(fra.me.REG[4]);
6799 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
6800 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
6801 if (!once_value_3) {
6802 fra.me.REG[4] = BOX_NativeString("::");
6803 REGB0 = TAG_Int(2);
6804 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
6805 once_value_3 = fra.me.REG[4];
6806 register_static_object(&once_value_3);
6807 } else fra.me.REG[4] = once_value_3;
6808 fra.me.REG[4] = fra.me.REG[4];
6809 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
6810 fra.me.REG[4] = CALL_syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
6811 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
6812 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
6813 if (!once_value_4) {
6814 fra.me.REG[4] = BOX_NativeString(" requires an explicit type.");
6815 REGB0 = TAG_Int(27);
6816 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
6817 once_value_4 = fra.me.REG[4];
6818 register_static_object(&once_value_4);
6819 } else fra.me.REG[4] = once_value_4;
6820 fra.me.REG[4] = fra.me.REG[4];
6821 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
6822 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
6823 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
6824 /* ./syntax//mmbuilder.nit:966 */
6825 goto label1;
6826 }
6827 /* ./syntax//mmbuilder.nit:969 */
6828 fra.me.REG[0] = CALL_syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
6829 /* ./syntax//mmbuilder.nit:970 */
6830 fra.me.REG[4] = NEW_Array_array___Array___init();
6831 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
6832 fra.me.REG[5] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]);
6833 fra.me.REG[5] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[4], fra.me.REG[1], fra.me.REG[5]);
6834 /* ./syntax//mmbuilder.nit:971 */
6835 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
6836 /* ./syntax//mmbuilder.nit:972 */
6837 fra.me.REG[4] = CALL_parser_nodes___AAttrPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
6838 REGB0 = CALL_mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
6839 /* ./syntax//mmbuilder.nit:973 */
6840 fra.me.REG[4] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
6841 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6842 if (UNTAG_Bool(REGB1)) {
6843 } else {
6844 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6845 if (UNTAG_Bool(REGB2)) {
6846 REGB2 = TAG_Bool(false);
6847 REGB1 = REGB2;
6848 } else {
6849 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
6850 REGB1 = REGB2;
6851 }
6852 }
6853 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
6854 if (UNTAG_Bool(REGB1)) {
6855 fra.me.REG[4] = CALL_parser_nodes___AAttrPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
6856 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6857 if (UNTAG_Bool(REGB1)) {
6858 } else {
6859 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6860 if (UNTAG_Bool(REGB2)) {
6861 REGB2 = TAG_Bool(false);
6862 REGB1 = REGB2;
6863 } else {
6864 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
6865 REGB1 = REGB2;
6866 }
6867 }
6868 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
6869 } else {
6870 REGB2 = TAG_Bool(false);
6871 REGB1 = REGB2;
6872 }
6873 CALL_mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0], REGB1, REGB0);
6874 /* ./syntax//mmbuilder.nit:974 */
6875 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
6876 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6877 if (UNTAG_Bool(REGB1)) {
6878 } else {
6879 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6880 if (UNTAG_Bool(REGB2)) {
6881 REGB2 = TAG_Bool(false);
6882 REGB1 = REGB2;
6883 } else {
6884 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
6885 REGB1 = REGB2;
6886 }
6887 }
6888 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
6889 if (UNTAG_Bool(REGB1)) {
6890 REGB1 = TAG_Bool(true);
6891 } else {
6892 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
6893 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6894 if (UNTAG_Bool(REGB2)) {
6895 } else {
6896 REGB3 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6897 if (UNTAG_Bool(REGB3)) {
6898 REGB3 = TAG_Bool(false);
6899 REGB2 = REGB3;
6900 } else {
6901 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
6902 REGB2 = REGB3;
6903 }
6904 }
6905 REGB1 = REGB2;
6906 }
6907 if (UNTAG_Bool(REGB1)) {
6908 /* ./syntax//mmbuilder.nit:975 */
6909 fra.me.REG[0] = ATTR_mmbuilder___AAttrPropdef____readmethod(fra.me.REG[2]);
6910 REGB1 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
6911 if (UNTAG_Bool(REGB1)) {
6912 } else {
6913 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 975);
6914 }
6915 /* ./syntax//mmbuilder.nit:976 */
6916 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
6917 /* ./syntax//mmbuilder.nit:977 */
6918 fra.me.REG[5] = CALL_parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
6919 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6920 if (UNTAG_Bool(REGB1)) {
6921 } else {
6922 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6923 if (UNTAG_Bool(REGB2)) {
6924 REGB2 = TAG_Bool(false);
6925 REGB1 = REGB2;
6926 } else {
6927 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
6928 REGB1 = REGB2;
6929 }
6930 }
6931 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
6932 if (UNTAG_Bool(REGB1)) {
6933 fra.me.REG[5] = CALL_parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
6934 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6935 if (UNTAG_Bool(REGB1)) {
6936 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 977);
6937 }
6938 fra.me.REG[5] = CALL_parser_nodes___AAble___n_kwredef(fra.me.REG[5])(fra.me.REG[5]);
6939 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6940 if (UNTAG_Bool(REGB1)) {
6941 } else {
6942 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6943 if (UNTAG_Bool(REGB2)) {
6944 REGB2 = TAG_Bool(false);
6945 REGB1 = REGB2;
6946 } else {
6947 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
6948 REGB1 = REGB2;
6949 }
6950 }
6951 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
6952 } else {
6953 REGB2 = TAG_Bool(false);
6954 REGB1 = REGB2;
6955 }
6956 if (UNTAG_Bool(REGB1)) {
6957 REGB1 = TAG_Bool(true);
6958 } else {
6959 fra.me.REG[5] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
6960 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6961 if (UNTAG_Bool(REGB2)) {
6962 } else {
6963 REGB3 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6964 if (UNTAG_Bool(REGB3)) {
6965 REGB3 = TAG_Bool(false);
6966 REGB2 = REGB3;
6967 } else {
6968 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
6969 REGB2 = REGB3;
6970 }
6971 }
6972 if (UNTAG_Bool(REGB2)) {
6973 fra.me.REG[5] = CALL_parser_nodes___AAttrPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
6974 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6975 if (UNTAG_Bool(REGB2)) {
6976 } else {
6977 REGB3 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6978 if (UNTAG_Bool(REGB3)) {
6979 REGB3 = TAG_Bool(false);
6980 REGB2 = REGB3;
6981 } else {
6982 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
6983 REGB2 = REGB3;
6984 }
6985 }
6986 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
6987 } else {
6988 REGB3 = TAG_Bool(false);
6989 REGB2 = REGB3;
6990 }
6991 REGB1 = REGB2;
6992 }
6993 CALL_mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0], REGB1, REGB0);
6994 /* ./syntax//mmbuilder.nit:978 */
6995 fra.me.REG[5] = CALL_parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
6996 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6997 if (UNTAG_Bool(REGB1)) {
6998 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 978);
6999 }
7000 CALL_mmbuilder___AType___check_visibility(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[0]);
7001 }
7002 /* ./syntax//mmbuilder.nit:980 */
7003 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
7004 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7005 if (UNTAG_Bool(REGB1)) {
7006 } else {
7007 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7008 if (UNTAG_Bool(REGB2)) {
7009 REGB2 = TAG_Bool(false);
7010 REGB1 = REGB2;
7011 } else {
7012 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7013 REGB1 = REGB2;
7014 }
7015 }
7016 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7017 if (UNTAG_Bool(REGB1)) {
7018 REGB1 = TAG_Bool(true);
7019 } else {
7020 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7021 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7022 if (UNTAG_Bool(REGB2)) {
7023 } else {
7024 REGB3 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7025 if (UNTAG_Bool(REGB3)) {
7026 REGB3 = TAG_Bool(false);
7027 REGB2 = REGB3;
7028 } else {
7029 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7030 REGB2 = REGB3;
7031 }
7032 }
7033 REGB1 = REGB2;
7034 }
7035 if (UNTAG_Bool(REGB1)) {
7036 /* ./syntax//mmbuilder.nit:981 */
7037 fra.me.REG[0] = ATTR_mmbuilder___AAttrPropdef____writemethod(fra.me.REG[2]);
7038 REGB1 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
7039 if (UNTAG_Bool(REGB1)) {
7040 } else {
7041 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 981);
7042 }
7043 /* ./syntax//mmbuilder.nit:982 */
7044 REGB1 = TAG_Int(0);
7045 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB1);
7046 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
7047 fra.me.REG[5] = NEW_Array_array___Array___with_items(fra.me.REG[5]);
7048 fra.me.REG[1] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
7049 fra.me.REG[1] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
7050 fra.me.REG[1] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[5], NIT_NULL, fra.me.REG[1]);
7051 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
7052 /* ./syntax//mmbuilder.nit:984 */
7053 fra.me.REG[1] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7054 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7055 if (UNTAG_Bool(REGB1)) {
7056 } else {
7057 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7058 if (UNTAG_Bool(REGB2)) {
7059 REGB2 = TAG_Bool(false);
7060 REGB1 = REGB2;
7061 } else {
7062 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7063 REGB1 = REGB2;
7064 }
7065 }
7066 if (UNTAG_Bool(REGB1)) {
7067 /* ./syntax//mmbuilder.nit:985 */
7068 fra.me.REG[1] = CALL_parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
7069 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7070 if (UNTAG_Bool(REGB1)) {
7071 } else {
7072 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7073 if (UNTAG_Bool(REGB2)) {
7074 REGB2 = TAG_Bool(false);
7075 REGB1 = REGB2;
7076 } else {
7077 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7078 REGB1 = REGB2;
7079 }
7080 }
7081 if (UNTAG_Bool(REGB1)) {
7082 REGB1 = TAG_Int(3);
7083 REGB0 = REGB1;
7084 } else {
7085 fra.me.REG[1] = CALL_parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
7086 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7087 if (UNTAG_Bool(REGB1)) {
7088 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 985);
7089 }
7090 fra.me.REG[1] = CALL_parser_nodes___AAble___n_visibility(fra.me.REG[1])(fra.me.REG[1]);
7091 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7092 if (UNTAG_Bool(REGB1)) {
7093 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 985);
7094 }
7095 REGB1 = CALL_mmbuilder___AVisibility___level(fra.me.REG[1])(fra.me.REG[1]);
7096 REGB0 = REGB1;
7097 }
7098 }
7099 /* ./syntax//mmbuilder.nit:987 */
7100 fra.me.REG[1] = CALL_parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
7101 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7102 if (UNTAG_Bool(REGB1)) {
7103 } else {
7104 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7105 if (UNTAG_Bool(REGB2)) {
7106 REGB2 = TAG_Bool(false);
7107 REGB1 = REGB2;
7108 } else {
7109 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7110 REGB1 = REGB2;
7111 }
7112 }
7113 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7114 if (UNTAG_Bool(REGB1)) {
7115 fra.me.REG[1] = CALL_parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
7116 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7117 if (UNTAG_Bool(REGB1)) {
7118 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 987);
7119 }
7120 fra.me.REG[1] = CALL_parser_nodes___AAble___n_kwredef(fra.me.REG[1])(fra.me.REG[1]);
7121 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7122 if (UNTAG_Bool(REGB1)) {
7123 } else {
7124 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7125 if (UNTAG_Bool(REGB2)) {
7126 REGB2 = TAG_Bool(false);
7127 REGB1 = REGB2;
7128 } else {
7129 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7130 REGB1 = REGB2;
7131 }
7132 }
7133 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7134 } else {
7135 REGB2 = TAG_Bool(false);
7136 REGB1 = REGB2;
7137 }
7138 CALL_mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0], REGB1, REGB0);
7139 /* ./syntax//mmbuilder.nit:988 */
7140 fra.me.REG[2] = CALL_parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
7141 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7142 if (UNTAG_Bool(REGB0)) {
7143 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 988);
7144 }
7145 CALL_mmbuilder___AType___check_visibility(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0]);
7146 }
7147 label1: while(0);
7148 stack_frame_head = fra.me.prev;
7149 return;
7150 }
7151 void mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
7152 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7153 val_t tmp;
7154 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7155 fra.me.file = LOCATE_mmbuilder;
7156 fra.me.line = 992;
7157 fra.me.meth = LOCATE_mmbuilder___AAttrPropdef___accept_abs_syntax_visitor;
7158 fra.me.has_broke = 0;
7159 fra.me.REG_size = 4;
7160 fra.me.REG[0] = NIT_NULL;
7161 fra.me.REG[1] = NIT_NULL;
7162 fra.me.REG[2] = NIT_NULL;
7163 fra.me.REG[3] = NIT_NULL;
7164 fra.me.REG[0] = p0;
7165 fra.me.REG[1] = p1;
7166 /* ./syntax//mmbuilder.nit:992 */
7167 fra.me.REG[2] = fra.me.REG[0];
7168 fra.me.REG[3] = fra.me.REG[1];
7169 /* ./syntax//mmbuilder.nit:994 */
7170 fra.me.REG[2] = ATTR_mmbuilder___AAttrPropdef____prop(fra.me.REG[2]);
7171 CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
7172 /* ./syntax//mmbuilder.nit:995 */
7173 CALL_SUPER_mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
7174 /* ./syntax//mmbuilder.nit:996 */
7175 CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7176 stack_frame_head = fra.me.prev;
7177 return;
7178 }
7179 val_t mmbuilder___AMethPropdef___name(val_t p0){
7180 struct {struct stack_frame_t me;} fra;
7181 val_t tmp;
7182 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7183 fra.me.file = LOCATE_mmbuilder;
7184 fra.me.line = 1001;
7185 fra.me.meth = LOCATE_mmbuilder___AMethPropdef___name;
7186 fra.me.has_broke = 0;
7187 fra.me.REG_size = 1;
7188 fra.me.REG[0] = NIT_NULL;
7189 fra.me.REG[0] = p0;
7190 /* ./syntax//mmbuilder.nit:1001 */
7191 fra.me.REG[0] = ATTR_mmbuilder___AMethPropdef____name(fra.me.REG[0]);
7192 stack_frame_head = fra.me.prev;
7193 return fra.me.REG[0];
7194 }
7195 val_t mmbuilder___AMethPropdef___method(val_t p0){
7196 struct {struct stack_frame_t me;} fra;
7197 val_t REGB0;
7198 val_t tmp;
7199 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7200 fra.me.file = LOCATE_mmbuilder;
7201 fra.me.line = 1005;
7202 fra.me.meth = LOCATE_mmbuilder___AMethPropdef___method;
7203 fra.me.has_broke = 0;
7204 fra.me.REG_size = 1;
7205 fra.me.REG[0] = NIT_NULL;
7206 fra.me.REG[0] = p0;
7207 /* ./syntax//mmbuilder.nit:1005 */
7208 fra.me.REG[0] = ATTR_mmbuilder___AMethPropdef____method(fra.me.REG[0]);
7209 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
7210 if (UNTAG_Bool(REGB0)) {
7211 } else {
7212 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 1005);
7213 }
7214 goto label1;
7215 label1: while(0);
7216 stack_frame_head = fra.me.prev;
7217 return fra.me.REG[0];
7218 }
7219 void mmbuilder___AMethPropdef___accept_property_builder(val_t p0, val_t p1){
7220 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
7221 val_t REGB0;
7222 val_t REGB1;
7223 val_t REGB2;
7224 val_t tmp;
7225 static val_t once_value_1; /* Once value */
7226 static val_t once_value_2; /* Once value */
7227 static val_t once_value_3; /* Once value */
7228 static val_t once_value_4; /* Once value */
7229 static val_t once_value_5; /* Once value */
7230 static val_t once_value_6; /* Once value */
7231 static val_t once_value_7; /* Once value */
7232 static val_t once_value_8; /* Once value */
7233 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7234 fra.me.file = LOCATE_mmbuilder;
7235 fra.me.line = 1007;
7236 fra.me.meth = LOCATE_mmbuilder___AMethPropdef___accept_property_builder;
7237 fra.me.has_broke = 0;
7238 fra.me.REG_size = 5;
7239 fra.me.REG[0] = NIT_NULL;
7240 fra.me.REG[1] = NIT_NULL;
7241 fra.me.REG[2] = NIT_NULL;
7242 fra.me.REG[3] = NIT_NULL;
7243 fra.me.REG[4] = NIT_NULL;
7244 fra.me.REG[0] = p0;
7245 fra.me.REG[1] = p1;
7246 /* ./syntax//mmbuilder.nit:1007 */
7247 fra.me.REG[2] = fra.me.REG[0];
7248 fra.me.REG[3] = fra.me.REG[1];
7249 /* ./syntax//mmbuilder.nit:1009 */
7250 CALL_SUPER_mmbuilder___AMethPropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
7251 /* ./syntax//mmbuilder.nit:1011 */
7252 fra.me.REG[1] = CALL_parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
7253 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7254 if (UNTAG_Bool(REGB0)) {
7255 } else {
7256 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7257 if (UNTAG_Bool(REGB1)) {
7258 REGB1 = TAG_Bool(false);
7259 REGB0 = REGB1;
7260 } else {
7261 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7262 REGB0 = REGB1;
7263 }
7264 }
7265 if (UNTAG_Bool(REGB0)) {
7266 /* ./syntax//mmbuilder.nit:1012 */
7267 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
7268 if (UNTAG_Bool(REGB0)) {
7269 /* ./syntax//mmbuilder.nit:1013 */
7270 if (!once_value_1) {
7271 if (!once_value_2) {
7272 fra.me.REG[1] = BOX_NativeString("init");
7273 REGB0 = TAG_Int(4);
7274 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
7275 once_value_2 = fra.me.REG[1];
7276 register_static_object(&once_value_2);
7277 } else fra.me.REG[1] = once_value_2;
7278 fra.me.REG[1] = fra.me.REG[1];
7279 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
7280 once_value_1 = fra.me.REG[1];
7281 register_static_object(&once_value_1);
7282 } else fra.me.REG[1] = once_value_1;
7283 fra.me.REG[1] = fra.me.REG[1];
7284 } else {
7285 /* ./syntax//mmbuilder.nit:1015 */
7286 if (!once_value_3) {
7287 if (!once_value_4) {
7288 fra.me.REG[0] = BOX_NativeString("main");
7289 REGB0 = TAG_Int(4);
7290 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
7291 once_value_4 = fra.me.REG[0];
7292 register_static_object(&once_value_4);
7293 } else fra.me.REG[0] = once_value_4;
7294 fra.me.REG[0] = fra.me.REG[0];
7295 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
7296 once_value_3 = fra.me.REG[0];
7297 register_static_object(&once_value_3);
7298 } else fra.me.REG[0] = once_value_3;
7299 fra.me.REG[0] = fra.me.REG[0];
7300 fra.me.REG[1] = fra.me.REG[0];
7301 }
7302 } else {
7303 /* ./syntax//mmbuilder.nit:1018 */
7304 fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
7305 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7306 if (UNTAG_Bool(REGB0)) {
7307 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1018);
7308 }
7309 fra.me.REG[0] = CALL_mmbuilder___AMethid___name(fra.me.REG[0])(fra.me.REG[0]);
7310 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
7311 if (UNTAG_Bool(REGB0)) {
7312 } else {
7313 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 1018);
7314 }
7315 fra.me.REG[1] = fra.me.REG[0];
7316 /* ./syntax//mmbuilder.nit:1020 */
7317 fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
7318 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7319 if (UNTAG_Bool(REGB0)) {
7320 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1020);
7321 }
7322 fra.me.REG[0] = CALL_mmbuilder___AMethid___name(fra.me.REG[0])(fra.me.REG[0]);
7323 if (!once_value_5) {
7324 if (!once_value_6) {
7325 fra.me.REG[4] = BOX_NativeString("-");
7326 REGB0 = TAG_Int(1);
7327 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
7328 once_value_6 = fra.me.REG[4];
7329 register_static_object(&once_value_6);
7330 } else fra.me.REG[4] = once_value_6;
7331 fra.me.REG[4] = fra.me.REG[4];
7332 fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
7333 once_value_5 = fra.me.REG[4];
7334 register_static_object(&once_value_5);
7335 } else fra.me.REG[4] = once_value_5;
7336 fra.me.REG[4] = fra.me.REG[4];
7337 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[4],fra.me.REG[0]));
7338 if (UNTAG_Bool(REGB0)) {
7339 } else {
7340 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7341 if (UNTAG_Bool(REGB1)) {
7342 REGB1 = TAG_Bool(false);
7343 REGB0 = REGB1;
7344 } else {
7345 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
7346 REGB0 = REGB1;
7347 }
7348 }
7349 if (UNTAG_Bool(REGB0)) {
7350 /* ./syntax//mmbuilder.nit:1021 */
7351 fra.me.REG[4] = CALL_parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
7352 /* ./syntax//mmbuilder.nit:1022 */
7353 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7354 if (UNTAG_Bool(REGB0)) {
7355 } else {
7356 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7357 if (UNTAG_Bool(REGB1)) {
7358 REGB1 = TAG_Bool(false);
7359 REGB0 = REGB1;
7360 } else {
7361 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
7362 REGB0 = REGB1;
7363 }
7364 }
7365 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7366 if (UNTAG_Bool(REGB0)) {
7367 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7368 if (UNTAG_Bool(REGB0)) {
7369 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1022);
7370 }
7371 fra.me.REG[4] = CALL_parser_nodes___ASignature___n_params(fra.me.REG[4])(fra.me.REG[4]);
7372 REGB0 = CALL_abstract_collection___Collection___length(fra.me.REG[4])(fra.me.REG[4]);
7373 REGB1 = TAG_Int(0);
7374 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
7375 if (UNTAG_Bool(REGB2)) {
7376 } else {
7377 /* ./../lib/standard//kernel.nit:207 */
7378 REGB1 = TAG_Bool((REGB0)==(REGB1));
7379 /* ./syntax//mmbuilder.nit:1022 */
7380 REGB2 = REGB1;
7381 }
7382 } else {
7383 REGB1 = TAG_Bool(false);
7384 REGB2 = REGB1;
7385 }
7386 if (UNTAG_Bool(REGB2)) {
7387 /* ./syntax//mmbuilder.nit:1023 */
7388 if (!once_value_7) {
7389 if (!once_value_8) {
7390 fra.me.REG[4] = BOX_NativeString("unary -");
7391 REGB2 = TAG_Int(7);
7392 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
7393 once_value_8 = fra.me.REG[4];
7394 register_static_object(&once_value_8);
7395 } else fra.me.REG[4] = once_value_8;
7396 fra.me.REG[4] = fra.me.REG[4];
7397 fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
7398 once_value_7 = fra.me.REG[4];
7399 register_static_object(&once_value_7);
7400 } else fra.me.REG[4] = once_value_7;
7401 fra.me.REG[4] = fra.me.REG[4];
7402 fra.me.REG[1] = fra.me.REG[4];
7403 }
7404 }
7405 }
7406 /* ./syntax//mmbuilder.nit:1027 */
7407 ATTR_mmbuilder___AMethPropdef____name(fra.me.REG[2]) = fra.me.REG[1];
7408 /* ./syntax//mmbuilder.nit:1028 */
7409 fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
7410 fra.me.REG[4] = NEW_MMMethSrcMethod_syntax_base___MMMethSrcMethod___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
7411 /* ./syntax//mmbuilder.nit:1029 */
7412 ATTR_mmbuilder___AMethPropdef____method(fra.me.REG[2]) = fra.me.REG[4];
7413 /* ./syntax//mmbuilder.nit:1030 */
7414 fra.me.REG[2] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
7415 CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
7416 stack_frame_head = fra.me.prev;
7417 return;
7418 }
7419 void mmbuilder___AMethPropdef___accept_property_verifier(val_t p0, val_t p1){
7420 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
7421 val_t REGB0;
7422 val_t REGB1;
7423 val_t REGB2;
7424 val_t tmp;
7425 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7426 fra.me.file = LOCATE_mmbuilder;
7427 fra.me.line = 1033;
7428 fra.me.meth = LOCATE_mmbuilder___AMethPropdef___accept_property_verifier;
7429 fra.me.has_broke = 0;
7430 fra.me.REG_size = 5;
7431 fra.me.REG[0] = NIT_NULL;
7432 fra.me.REG[1] = NIT_NULL;
7433 fra.me.REG[2] = NIT_NULL;
7434 fra.me.REG[3] = NIT_NULL;
7435 fra.me.REG[4] = NIT_NULL;
7436 fra.me.REG[0] = p0;
7437 fra.me.REG[1] = p1;
7438 /* ./syntax//mmbuilder.nit:1033 */
7439 fra.me.REG[2] = fra.me.REG[0];
7440 fra.me.REG[3] = fra.me.REG[1];
7441 /* ./syntax//mmbuilder.nit:1035 */
7442 fra.me.REG[4] = NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init();
7443 CALL_mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
7444 /* ./syntax//mmbuilder.nit:1036 */
7445 CALL_SUPER_mmbuilder___AMethPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
7446 /* ./syntax//mmbuilder.nit:1038 */
7447 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7448 REGB0 = CALL_mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
7449 if (UNTAG_Bool(REGB0)) {
7450 goto label1;
7451 }
7452 /* ./syntax//mmbuilder.nit:1040 */
7453 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7454 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
7455 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7456 if (UNTAG_Bool(REGB0)) {
7457 } else {
7458 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7459 if (UNTAG_Bool(REGB1)) {
7460 REGB1 = TAG_Bool(false);
7461 REGB0 = REGB1;
7462 } else {
7463 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7464 REGB0 = REGB1;
7465 }
7466 }
7467 if (UNTAG_Bool(REGB0)) {
7468 } else {
7469 /* ./syntax//mmbuilder.nit:1043 */
7470 fra.me.REG[1] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
7471 fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7472 fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___signature(fra.me.REG[0])(fra.me.REG[0]);
7473 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
7474 if (UNTAG_Bool(REGB0)) {
7475 } else {
7476 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 1043);
7477 }
7478 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
7479 }
7480 /* ./syntax//mmbuilder.nit:1045 */
7481 REGB0 = TAG_Int(1);
7482 /* ./syntax//mmbuilder.nit:1046 */
7483 fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
7484 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7485 if (UNTAG_Bool(REGB1)) {
7486 } else {
7487 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7488 if (UNTAG_Bool(REGB2)) {
7489 REGB2 = TAG_Bool(false);
7490 REGB1 = REGB2;
7491 } else {
7492 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7493 REGB1 = REGB2;
7494 }
7495 }
7496 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7497 if (UNTAG_Bool(REGB1)) {
7498 fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
7499 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7500 if (UNTAG_Bool(REGB1)) {
7501 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1046);
7502 }
7503 REGB1 = CALL_mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
7504 REGB2 = TAG_Int(1);
7505 /* ./../lib/standard//kernel.nit:214 */
7506 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
7507 } else {
7508 /* ./syntax//mmbuilder.nit:1046 */
7509 REGB1 = TAG_Bool(false);
7510 REGB2 = REGB1;
7511 }
7512 if (UNTAG_Bool(REGB2)) {
7513 /* ./syntax//mmbuilder.nit:1047 */
7514 fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
7515 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7516 if (UNTAG_Bool(REGB2)) {
7517 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1047);
7518 }
7519 REGB2 = CALL_mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
7520 REGB0 = REGB2;
7521 }
7522 /* ./syntax//mmbuilder.nit:1049 */
7523 fra.me.REG[0] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
7524 fra.me.REG[1] = CALL_parser_nodes___AMethPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
7525 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7526 if (UNTAG_Bool(REGB2)) {
7527 } else {
7528 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7529 if (UNTAG_Bool(REGB1)) {
7530 REGB1 = TAG_Bool(false);
7531 REGB2 = REGB1;
7532 } else {
7533 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7534 REGB2 = REGB1;
7535 }
7536 }
7537 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
7538 CALL_mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0], REGB2, REGB0);
7539 /* ./syntax//mmbuilder.nit:1050 */
7540 fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
7541 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7542 if (UNTAG_Bool(REGB0)) {
7543 } else {
7544 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7545 if (UNTAG_Bool(REGB2)) {
7546 REGB2 = TAG_Bool(false);
7547 REGB0 = REGB2;
7548 } else {
7549 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7550 REGB0 = REGB2;
7551 }
7552 }
7553 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7554 if (UNTAG_Bool(REGB0)) {
7555 fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
7556 fra.me.REG[2] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
7557 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7558 if (UNTAG_Bool(REGB0)) {
7559 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1050);
7560 }
7561 CALL_mmbuilder___ASignature___check_visibility(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
7562 }
7563 label1: while(0);
7564 stack_frame_head = fra.me.prev;
7565 return;
7566 }
7567 void mmbuilder___AMethPropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
7568 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7569 val_t tmp;
7570 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7571 fra.me.file = LOCATE_mmbuilder;
7572 fra.me.line = 1053;
7573 fra.me.meth = LOCATE_mmbuilder___AMethPropdef___accept_abs_syntax_visitor;
7574 fra.me.has_broke = 0;
7575 fra.me.REG_size = 4;
7576 fra.me.REG[0] = NIT_NULL;
7577 fra.me.REG[1] = NIT_NULL;
7578 fra.me.REG[2] = NIT_NULL;
7579 fra.me.REG[3] = NIT_NULL;
7580 fra.me.REG[0] = p0;
7581 fra.me.REG[1] = p1;
7582 /* ./syntax//mmbuilder.nit:1053 */
7583 fra.me.REG[2] = fra.me.REG[0];
7584 fra.me.REG[3] = fra.me.REG[1];
7585 /* ./syntax//mmbuilder.nit:1055 */
7586 fra.me.REG[2] = ATTR_mmbuilder___AMethPropdef____method(fra.me.REG[2]);
7587 CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
7588 /* ./syntax//mmbuilder.nit:1056 */
7589 CALL_SUPER_mmbuilder___AMethPropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
7590 /* ./syntax//mmbuilder.nit:1057 */
7591 CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7592 stack_frame_head = fra.me.prev;
7593 return;
7594 }
7595 void mmbuilder___AMainMethPropdef___process_and_check(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
7596 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
7597 val_t REGB0;
7598 val_t REGB1;
7599 val_t tmp;
7600 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7601 fra.me.file = LOCATE_mmbuilder;
7602 fra.me.line = 1062;
7603 fra.me.meth = LOCATE_mmbuilder___AMainMethPropdef___process_and_check;
7604 fra.me.has_broke = 0;
7605 fra.me.REG_size = 3;
7606 fra.me.REG[0] = NIT_NULL;
7607 fra.me.REG[1] = NIT_NULL;
7608 fra.me.REG[2] = NIT_NULL;
7609 fra.me.REG[0] = p0;
7610 fra.me.REG[1] = p1;
7611 fra.me.REG[2] = p2;
7612 REGB0 = p3;
7613 REGB1 = p4;
7614 /* ./syntax//mmbuilder.nit:1064 */
7615 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
7616 CALL_abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[0])(fra.me.REG[0], REGB1);
7617 /* ./syntax//mmbuilder.nit:1065 */
7618 fra.me.REG[0] = NEW_Array_array___Array___init();
7619 fra.me.REG[1] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
7620 fra.me.REG[1] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
7621 fra.me.REG[1] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[1]);
7622 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
7623 stack_frame_head = fra.me.prev;
7624 return;
7625 }
7626 void mmbuilder___AExternMethPropdef___accept_property_verifier(val_t p0, val_t p1){
7627 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7628 val_t REGB0;
7629 val_t REGB1;
7630 val_t REGB2;
7631 val_t tmp;
7632 static val_t once_value_1; /* Once value */
7633 static val_t once_value_2; /* Once value */
7634 static val_t once_value_3; /* Once value */
7635 static val_t once_value_4; /* Once value */
7636 static val_t once_value_5; /* Once value */
7637 static val_t once_value_6; /* Once value */
7638 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7639 fra.me.file = LOCATE_mmbuilder;
7640 fra.me.line = 1071;
7641 fra.me.meth = LOCATE_mmbuilder___AExternMethPropdef___accept_property_verifier;
7642 fra.me.has_broke = 0;
7643 fra.me.REG_size = 4;
7644 fra.me.REG[0] = NIT_NULL;
7645 fra.me.REG[1] = NIT_NULL;
7646 fra.me.REG[2] = NIT_NULL;
7647 fra.me.REG[3] = NIT_NULL;
7648 fra.me.REG[0] = p0;
7649 fra.me.REG[1] = p1;
7650 /* ./syntax//mmbuilder.nit:1071 */
7651 fra.me.REG[2] = fra.me.REG[0];
7652 /* ./syntax//mmbuilder.nit:1073 */
7653 CALL_SUPER_mmbuilder___AExternMethPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
7654 /* ./syntax//mmbuilder.nit:1075 */
7655 fra.me.REG[1] = CALL_parser_nodes___AExternMethPropdef___n_extern(fra.me.REG[2])(fra.me.REG[2]);
7656 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7657 if (UNTAG_Bool(REGB0)) {
7658 } else {
7659 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7660 if (UNTAG_Bool(REGB1)) {
7661 REGB1 = TAG_Bool(false);
7662 REGB0 = REGB1;
7663 } else {
7664 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7665 REGB0 = REGB1;
7666 }
7667 }
7668 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7669 if (UNTAG_Bool(REGB0)) {
7670 /* ./syntax//mmbuilder.nit:1076 */
7671 fra.me.REG[1] = CALL_parser_nodes___AExternMethPropdef___n_extern(fra.me.REG[2])(fra.me.REG[2]);
7672 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7673 if (UNTAG_Bool(REGB0)) {
7674 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1076);
7675 }
7676 fra.me.REG[1] = CALL_lexer___Token___text(fra.me.REG[1])(fra.me.REG[1]);
7677 /* ./syntax//mmbuilder.nit:1077 */
7678 REGB0 = TAG_Int(1);
7679 /* ./../lib/standard//collection//array.nit:23 */
7680 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
7681 if (UNTAG_Bool(REGB1)) {
7682 } else {
7683 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
7684 }
7685 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
7686 /* ./syntax//mmbuilder.nit:1077 */
7687 REGB2 = TAG_Int(2);
7688 /* ./../lib/standard//kernel.nit:217 */
7689 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
7690 /* ./syntax//mmbuilder.nit:1077 */
7691 fra.me.REG[0] = CALL_string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB0, REGB2);
7692 fra.me.REG[1] = fra.me.REG[0];
7693 } else {
7694 /* ./syntax//mmbuilder.nit:1079 */
7695 REGB2 = TAG_Int(11);
7696 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB2);
7697 if (!once_value_1) {
7698 fra.me.REG[3] = BOX_NativeString("");
7699 REGB2 = TAG_Int(0);
7700 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
7701 once_value_1 = fra.me.REG[3];
7702 register_static_object(&once_value_1);
7703 } else fra.me.REG[3] = once_value_1;
7704 fra.me.REG[3] = fra.me.REG[3];
7705 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
7706 fra.me.REG[3] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
7707 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
7708 fra.me.REG[3] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[3])(fra.me.REG[3]);
7709 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
7710 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
7711 if (!once_value_2) {
7712 fra.me.REG[3] = BOX_NativeString("_");
7713 REGB2 = TAG_Int(1);
7714 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
7715 once_value_2 = fra.me.REG[3];
7716 register_static_object(&once_value_2);
7717 } else fra.me.REG[3] = once_value_2;
7718 fra.me.REG[3] = fra.me.REG[3];
7719 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
7720 fra.me.REG[3] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
7721 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[3])(fra.me.REG[3]);
7722 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[3])(fra.me.REG[3]);
7723 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
7724 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
7725 if (!once_value_3) {
7726 fra.me.REG[3] = BOX_NativeString("_");
7727 REGB2 = TAG_Int(1);
7728 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
7729 once_value_3 = fra.me.REG[3];
7730 register_static_object(&once_value_3);
7731 } else fra.me.REG[3] = once_value_3;
7732 fra.me.REG[3] = fra.me.REG[3];
7733 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
7734 fra.me.REG[3] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
7735 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[3])(fra.me.REG[3]);
7736 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[3])(fra.me.REG[3]);
7737 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
7738 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
7739 if (!once_value_4) {
7740 fra.me.REG[3] = BOX_NativeString("_");
7741 REGB2 = TAG_Int(1);
7742 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
7743 once_value_4 = fra.me.REG[3];
7744 register_static_object(&once_value_4);
7745 } else fra.me.REG[3] = once_value_4;
7746 fra.me.REG[3] = fra.me.REG[3];
7747 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
7748 fra.me.REG[3] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
7749 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[3])(fra.me.REG[3]);
7750 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
7751 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
7752 if (!once_value_5) {
7753 fra.me.REG[3] = BOX_NativeString("_");
7754 REGB2 = TAG_Int(1);
7755 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
7756 once_value_5 = fra.me.REG[3];
7757 register_static_object(&once_value_5);
7758 } else fra.me.REG[3] = once_value_5;
7759 fra.me.REG[3] = fra.me.REG[3];
7760 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
7761 fra.me.REG[3] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
7762 fra.me.REG[3] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[3])(fra.me.REG[3]);
7763 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7764 if (UNTAG_Bool(REGB2)) {
7765 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1079);
7766 }
7767 REGB2 = CALL_static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]);
7768 fra.me.REG[3] = CALL_string___Object___to_s(REGB2)(REGB2);
7769 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
7770 if (!once_value_6) {
7771 fra.me.REG[3] = BOX_NativeString("");
7772 REGB2 = TAG_Int(0);
7773 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
7774 once_value_6 = fra.me.REG[3];
7775 register_static_object(&once_value_6);
7776 } else fra.me.REG[3] = once_value_6;
7777 fra.me.REG[3] = fra.me.REG[3];
7778 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
7779 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
7780 fra.me.REG[1] = fra.me.REG[0];
7781 }
7782 /* ./syntax//mmbuilder.nit:1081 */
7783 fra.me.REG[2] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
7784 CALL_syntax_base___MMMethSrcMethod___extern_name__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
7785 stack_frame_head = fra.me.prev;
7786 return;
7787 }
7788 val_t mmbuilder___ATypePropdef___prop(val_t p0){
7789 struct {struct stack_frame_t me;} fra;
7790 val_t REGB0;
7791 val_t tmp;
7792 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7793 fra.me.file = LOCATE_mmbuilder;
7794 fra.me.line = 1086;
7795 fra.me.meth = LOCATE_mmbuilder___ATypePropdef___prop;
7796 fra.me.has_broke = 0;
7797 fra.me.REG_size = 1;
7798 fra.me.REG[0] = NIT_NULL;
7799 fra.me.REG[0] = p0;
7800 /* ./syntax//mmbuilder.nit:1086 */
7801 fra.me.REG[0] = ATTR_mmbuilder___ATypePropdef____prop(fra.me.REG[0]);
7802 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
7803 if (UNTAG_Bool(REGB0)) {
7804 } else {
7805 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 1086);
7806 }
7807 goto label1;
7808 label1: while(0);
7809 stack_frame_head = fra.me.prev;
7810 return fra.me.REG[0];
7811 }
7812 void mmbuilder___ATypePropdef___accept_property_builder(val_t p0, val_t p1){
7813 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7814 val_t tmp;
7815 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7816 fra.me.file = LOCATE_mmbuilder;
7817 fra.me.line = 1089;
7818 fra.me.meth = LOCATE_mmbuilder___ATypePropdef___accept_property_builder;
7819 fra.me.has_broke = 0;
7820 fra.me.REG_size = 4;
7821 fra.me.REG[0] = NIT_NULL;
7822 fra.me.REG[1] = NIT_NULL;
7823 fra.me.REG[2] = NIT_NULL;
7824 fra.me.REG[3] = NIT_NULL;
7825 fra.me.REG[0] = p0;
7826 fra.me.REG[1] = p1;
7827 /* ./syntax//mmbuilder.nit:1089 */
7828 fra.me.REG[2] = fra.me.REG[0];
7829 fra.me.REG[3] = fra.me.REG[1];
7830 /* ./syntax//mmbuilder.nit:1091 */
7831 CALL_SUPER_mmbuilder___ATypePropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
7832 /* ./syntax//mmbuilder.nit:1092 */
7833 fra.me.REG[1] = CALL_parser_nodes___ATypePropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7834 fra.me.REG[1] = CALL_syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
7835 /* ./syntax//mmbuilder.nit:1093 */
7836 fra.me.REG[0] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
7837 fra.me.REG[0] = NEW_MMSrcTypeProperty_syntax_base___MMSrcTypeProperty___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
7838 /* ./syntax//mmbuilder.nit:1094 */
7839 ATTR_mmbuilder___ATypePropdef____prop(fra.me.REG[2]) = fra.me.REG[0];
7840 /* ./syntax//mmbuilder.nit:1095 */
7841 fra.me.REG[2] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
7842 CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0]);
7843 stack_frame_head = fra.me.prev;
7844 return;
7845 }
7846 void mmbuilder___ATypePropdef___accept_property_verifier(val_t p0, val_t p1){
7847 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
7848 val_t REGB0;
7849 val_t REGB1;
7850 val_t REGB2;
7851 val_t tmp;
7852 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7853 fra.me.file = LOCATE_mmbuilder;
7854 fra.me.line = 1098;
7855 fra.me.meth = LOCATE_mmbuilder___ATypePropdef___accept_property_verifier;
7856 fra.me.has_broke = 0;
7857 fra.me.REG_size = 5;
7858 fra.me.REG[0] = NIT_NULL;
7859 fra.me.REG[1] = NIT_NULL;
7860 fra.me.REG[2] = NIT_NULL;
7861 fra.me.REG[3] = NIT_NULL;
7862 fra.me.REG[4] = NIT_NULL;
7863 fra.me.REG[0] = p0;
7864 fra.me.REG[1] = p1;
7865 /* ./syntax//mmbuilder.nit:1098 */
7866 fra.me.REG[2] = fra.me.REG[0];
7867 fra.me.REG[3] = fra.me.REG[1];
7868 /* ./syntax//mmbuilder.nit:1100 */
7869 CALL_SUPER_mmbuilder___ATypePropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
7870 /* ./syntax//mmbuilder.nit:1101 */
7871 fra.me.REG[1] = NEW_Array_array___Array___init();
7872 fra.me.REG[0] = CALL_parser_nodes___ATypePropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
7873 fra.me.REG[0] = CALL_syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
7874 fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
7875 fra.me.REG[4] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
7876 fra.me.REG[4] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
7877 /* ./syntax//mmbuilder.nit:1102 */
7878 fra.me.REG[0] = CALL_syntax_base___ATypePropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
7879 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
7880 /* ./syntax//mmbuilder.nit:1103 */
7881 fra.me.REG[4] = CALL_parser_nodes___ATypePropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
7882 REGB0 = CALL_mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
7883 /* ./syntax//mmbuilder.nit:1104 */
7884 fra.me.REG[4] = CALL_syntax_base___ATypePropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
7885 fra.me.REG[0] = CALL_parser_nodes___ATypePropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
7886 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7887 if (UNTAG_Bool(REGB1)) {
7888 } else {
7889 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7890 if (UNTAG_Bool(REGB2)) {
7891 REGB2 = TAG_Bool(false);
7892 REGB1 = REGB2;
7893 } else {
7894 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7895 REGB1 = REGB2;
7896 }
7897 }
7898 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7899 CALL_mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], REGB1, REGB0);
7900 stack_frame_head = fra.me.prev;
7901 return;
7902 }
7903 void mmbuilder___ATypePropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
7904 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7905 val_t tmp;
7906 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7907 fra.me.file = LOCATE_mmbuilder;
7908 fra.me.line = 1107;
7909 fra.me.meth = LOCATE_mmbuilder___ATypePropdef___accept_abs_syntax_visitor;
7910 fra.me.has_broke = 0;
7911 fra.me.REG_size = 4;
7912 fra.me.REG[0] = NIT_NULL;
7913 fra.me.REG[1] = NIT_NULL;
7914 fra.me.REG[2] = NIT_NULL;
7915 fra.me.REG[3] = NIT_NULL;
7916 fra.me.REG[0] = p0;
7917 fra.me.REG[1] = p1;
7918 /* ./syntax//mmbuilder.nit:1107 */
7919 fra.me.REG[2] = fra.me.REG[0];
7920 fra.me.REG[3] = fra.me.REG[1];
7921 /* ./syntax//mmbuilder.nit:1109 */
7922 fra.me.REG[2] = ATTR_mmbuilder___ATypePropdef____prop(fra.me.REG[2]);
7923 CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
7924 /* ./syntax//mmbuilder.nit:1110 */
7925 CALL_SUPER_mmbuilder___ATypePropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
7926 /* ./syntax//mmbuilder.nit:1111 */
7927 CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7928 stack_frame_head = fra.me.prev;
7929 return;
7930 }
7931 val_t mmbuilder___MethidAccumulator___name(val_t p0){
7932 struct {struct stack_frame_t me;} fra;
7933 val_t REGB0;
7934 val_t tmp;
7935 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7936 fra.me.file = LOCATE_mmbuilder;
7937 fra.me.line = 1118;
7938 fra.me.meth = LOCATE_mmbuilder___MethidAccumulator___name;
7939 fra.me.has_broke = 0;
7940 fra.me.REG_size = 1;
7941 fra.me.REG[0] = NIT_NULL;
7942 fra.me.REG[0] = p0;
7943 /* ./syntax//mmbuilder.nit:1118 */
7944 REGB0 = TAG_Bool(ATTR_mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL);
7945 if (UNTAG_Bool(REGB0)) {
7946 } else {
7947 nit_abort("Uninitialized attribute %s", "_name", LOCATE_mmbuilder, 1118);
7948 }
7949 fra.me.REG[0] = ATTR_mmbuilder___MethidAccumulator____name(fra.me.REG[0]);
7950 stack_frame_head = fra.me.prev;
7951 return fra.me.REG[0];
7952 }
7953 void mmbuilder___MethidAccumulator___visit(val_t p0, val_t p1){
7954 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7955 val_t REGB0;
7956 val_t tmp;
7957 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7958 fra.me.file = LOCATE_mmbuilder;
7959 fra.me.line = 1119;
7960 fra.me.meth = LOCATE_mmbuilder___MethidAccumulator___visit;
7961 fra.me.has_broke = 0;
7962 fra.me.REG_size = 4;
7963 fra.me.REG[0] = NIT_NULL;
7964 fra.me.REG[1] = NIT_NULL;
7965 fra.me.REG[2] = NIT_NULL;
7966 fra.me.REG[3] = NIT_NULL;
7967 fra.me.REG[0] = p0;
7968 fra.me.REG[1] = p1;
7969 /* ./syntax//mmbuilder.nit:1121 */
7970 REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_Token, ID_Token)) /*cast Token*/;
7971 if (UNTAG_Bool(REGB0)) {
7972 /* ./syntax//mmbuilder.nit:1122 */
7973 REGB0 = TAG_Bool(ATTR_mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL);
7974 if (UNTAG_Bool(REGB0)) {
7975 } else {
7976 nit_abort("Uninitialized attribute %s", "_name", LOCATE_mmbuilder, 1122);
7977 }
7978 fra.me.REG[2] = ATTR_mmbuilder___MethidAccumulator____name(fra.me.REG[0]);
7979 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7980 if (UNTAG_Bool(REGB0)) {
7981 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1122);
7982 }
7983 fra.me.REG[3] = CALL_lexer___Token___text(fra.me.REG[1])(fra.me.REG[1]);
7984 CALL_abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
7985 } else {
7986 /* ./syntax//mmbuilder.nit:1124 */
7987 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7988 if (UNTAG_Bool(REGB0)) {
7989 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1124);
7990 }
7991 CALL_parser_prod___ANode___visit_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
7992 }
7993 stack_frame_head = fra.me.prev;
7994 return;
7995 }
7996 val_t mmbuilder___AMethid___name(val_t p0){
7997 struct {struct stack_frame_t me;} fra;
7998 val_t tmp;
7999 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8000 fra.me.file = LOCATE_mmbuilder;
8001 fra.me.line = 1130;
8002 fra.me.meth = LOCATE_mmbuilder___AMethid___name;
8003 fra.me.has_broke = 0;
8004 fra.me.REG_size = 1;
8005 fra.me.REG[0] = NIT_NULL;
8006 fra.me.REG[0] = p0;
8007 /* ./syntax//mmbuilder.nit:1130 */
8008 fra.me.REG[0] = ATTR_mmbuilder___AMethid____name(fra.me.REG[0]);
8009 stack_frame_head = fra.me.prev;
8010 return fra.me.REG[0];
8011 }
8012 void mmbuilder___AMethid___accept_property_builder(val_t p0, val_t p1){
8013 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8014 val_t tmp;
8015 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8016 fra.me.file = LOCATE_mmbuilder;
8017 fra.me.line = 1133;
8018 fra.me.meth = LOCATE_mmbuilder___AMethid___accept_property_builder;
8019 fra.me.has_broke = 0;
8020 fra.me.REG_size = 4;
8021 fra.me.REG[0] = NIT_NULL;
8022 fra.me.REG[1] = NIT_NULL;
8023 fra.me.REG[2] = NIT_NULL;
8024 fra.me.REG[3] = NIT_NULL;
8025 fra.me.REG[0] = p0;
8026 fra.me.REG[1] = p1;
8027 /* ./syntax//mmbuilder.nit:1133 */
8028 fra.me.REG[2] = fra.me.REG[0];
8029 /* ./syntax//mmbuilder.nit:1135 */
8030 fra.me.REG[3] = NEW_MethidAccumulator_parser_prod___Visitor___init();
8031 /* ./syntax//mmbuilder.nit:1136 */
8032 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
8033 /* ./syntax//mmbuilder.nit:1137 */
8034 fra.me.REG[3] = CALL_mmbuilder___MethidAccumulator___name(fra.me.REG[3])(fra.me.REG[3]);
8035 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
8036 fra.me.REG[3] = CALL_symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
8037 ATTR_mmbuilder___AMethid____name(fra.me.REG[2]) = fra.me.REG[3];
8038 /* ./syntax//mmbuilder.nit:1138 */
8039 CALL_SUPER_mmbuilder___AMethid___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8040 stack_frame_head = fra.me.prev;
8041 return;
8042 }
8043 void mmbuilder___ASignature___accept_property_verifier(val_t p0, val_t p1){
8044 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
8045 val_t REGB0;
8046 val_t REGB1;
8047 val_t REGB2;
8048 val_t tmp;
8049 static val_t once_value_2; /* Once value */
8050 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8051 fra.me.file = LOCATE_mmbuilder;
8052 fra.me.line = 1143;
8053 fra.me.meth = LOCATE_mmbuilder___ASignature___accept_property_verifier;
8054 fra.me.has_broke = 0;
8055 fra.me.REG_size = 6;
8056 fra.me.REG[0] = NIT_NULL;
8057 fra.me.REG[1] = NIT_NULL;
8058 fra.me.REG[2] = NIT_NULL;
8059 fra.me.REG[3] = NIT_NULL;
8060 fra.me.REG[4] = NIT_NULL;
8061 fra.me.REG[5] = NIT_NULL;
8062 fra.me.REG[0] = p0;
8063 fra.me.REG[1] = p1;
8064 /* ./syntax//mmbuilder.nit:1143 */
8065 fra.me.REG[2] = fra.me.REG[0];
8066 fra.me.REG[3] = fra.me.REG[1];
8067 /* ./syntax//mmbuilder.nit:1145 */
8068 CALL_SUPER_mmbuilder___ASignature___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8069 /* ./syntax//mmbuilder.nit:1146 */
8070 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8071 REGB0 = CALL_mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
8072 if (UNTAG_Bool(REGB0)) {
8073 /* ./syntax//mmbuilder.nit:1147 */
8074 goto label1;
8075 } else {
8076 /* ./syntax//mmbuilder.nit:1148 */
8077 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8078 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
8079 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
8080 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8081 if (UNTAG_Bool(REGB0)) {
8082 /* ./syntax//mmbuilder.nit:1149 */
8083 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8084 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
8085 fra.me.REG[1] = CALL_abstract_collection___Collection___first(fra.me.REG[1])(fra.me.REG[1]);
8086 fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8087 fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[0])(fra.me.REG[0]);
8088 fra.me.REG[0] = CALL_abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]);
8089 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[1],fra.me.REG[0]));
8090 if (UNTAG_Bool(REGB0)) {
8091 } else {
8092 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8093 if (UNTAG_Bool(REGB1)) {
8094 REGB1 = TAG_Bool(false);
8095 REGB0 = REGB1;
8096 } else {
8097 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
8098 REGB0 = REGB1;
8099 }
8100 }
8101 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8102 if (UNTAG_Bool(REGB0)) {
8103 REGB0 = TAG_Bool(true);
8104 } else {
8105 fra.me.REG[0] = CALL_parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
8106 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8107 if (UNTAG_Bool(REGB1)) {
8108 } else {
8109 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8110 if (UNTAG_Bool(REGB2)) {
8111 REGB2 = TAG_Bool(false);
8112 REGB1 = REGB2;
8113 } else {
8114 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8115 REGB1 = REGB2;
8116 }
8117 }
8118 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8119 REGB0 = REGB1;
8120 }
8121 if (UNTAG_Bool(REGB0)) {
8122 /* ./syntax//mmbuilder.nit:1150 */
8123 fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8124 fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[0])(fra.me.REG[0]);
8125 fra.me.REG[0] = CALL_abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]);
8126 if (!once_value_2) {
8127 fra.me.REG[1] = BOX_NativeString("Syntax error: untyped parameter.");
8128 REGB0 = TAG_Int(32);
8129 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
8130 once_value_2 = fra.me.REG[1];
8131 register_static_object(&once_value_2);
8132 } else fra.me.REG[1] = once_value_2;
8133 fra.me.REG[1] = fra.me.REG[1];
8134 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1]);
8135 /* ./syntax//mmbuilder.nit:1151 */
8136 goto label1;
8137 }
8138 } else {
8139 /* ./syntax//mmbuilder.nit:1153 */
8140 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8141 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[1])(fra.me.REG[1]);
8142 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
8143 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8144 if (UNTAG_Bool(REGB0)) {
8145 REGB0 = TAG_Bool(true);
8146 } else {
8147 fra.me.REG[1] = CALL_parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
8148 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8149 if (UNTAG_Bool(REGB1)) {
8150 } else {
8151 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8152 if (UNTAG_Bool(REGB2)) {
8153 REGB2 = TAG_Bool(false);
8154 REGB1 = REGB2;
8155 } else {
8156 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8157 REGB1 = REGB2;
8158 }
8159 }
8160 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8161 REGB0 = REGB1;
8162 }
8163 if (UNTAG_Bool(REGB0)) {
8164 /* ./syntax//mmbuilder.nit:1154 */
8165 fra.me.REG[1] = NEW_Array_array___Array___init();
8166 /* ./syntax//mmbuilder.nit:1155 */
8167 fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8168 fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[0])(fra.me.REG[0]);
8169 /* ./../lib/standard//collection//array.nit:234 */
8170 REGB0 = TAG_Int(0);
8171 /* ./../lib/standard//collection//array.nit:235 */
8172 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
8173 if (UNTAG_Bool(REGB1)) {
8174 } else {
8175 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
8176 }
8177 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
8178 /* ./../lib/standard//collection//array.nit:236 */
8179 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[0]);
8180 /* ./../lib/standard//collection//array.nit:237 */
8181 while(1) {
8182 /* ./../lib/standard//collection//array.nit:23 */
8183 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
8184 if (UNTAG_Bool(REGB1)) {
8185 } else {
8186 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
8187 }
8188 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
8189 /* ./../lib/standard//kernel.nit:212 */
8190 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
8191 /* ./../lib/standard//collection//array.nit:237 */
8192 if (UNTAG_Bool(REGB1)) {
8193 /* ./../lib/standard//collection//array.nit:238 */
8194 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8195 if (UNTAG_Bool(REGB1)) {
8196 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
8197 }
8198 /* ./../lib/standard//collection//array.nit:654 */
8199 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
8200 /* ./syntax//mmbuilder.nit:1156 */
8201 fra.me.REG[5] = CALL_mmbuilder___AParam___stype(fra.me.REG[5])(fra.me.REG[5]);
8202 REGB1 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
8203 if (UNTAG_Bool(REGB1)) {
8204 } else {
8205 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 1156);
8206 }
8207 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
8208 /* ./../lib/standard//collection//array.nit:239 */
8209 REGB1 = TAG_Int(1);
8210 /* ./../lib/standard//kernel.nit:215 */
8211 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
8212 /* ./../lib/standard//collection//array.nit:239 */
8213 REGB0 = REGB1;
8214 } else {
8215 /* ./../lib/standard//collection//array.nit:237 */
8216 goto label3;
8217 }
8218 }
8219 label3: while(0);
8220 /* ./syntax//mmbuilder.nit:1158 */
8221 fra.me.REG[4] = NIT_NULL;
8222 /* ./syntax//mmbuilder.nit:1159 */
8223 fra.me.REG[0] = CALL_parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
8224 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8225 if (UNTAG_Bool(REGB0)) {
8226 } else {
8227 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8228 if (UNTAG_Bool(REGB1)) {
8229 REGB1 = TAG_Bool(false);
8230 REGB0 = REGB1;
8231 } else {
8232 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8233 REGB0 = REGB1;
8234 }
8235 }
8236 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8237 if (UNTAG_Bool(REGB0)) {
8238 /* ./syntax//mmbuilder.nit:1160 */
8239 fra.me.REG[2] = CALL_parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
8240 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8241 if (UNTAG_Bool(REGB0)) {
8242 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1160);
8243 }
8244 fra.me.REG[2] = CALL_syntax_base___AType___get_stype(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
8245 fra.me.REG[4] = fra.me.REG[2];
8246 /* ./syntax//mmbuilder.nit:1161 */
8247 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8248 if (UNTAG_Bool(REGB0)) {
8249 } else {
8250 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8251 if (UNTAG_Bool(REGB1)) {
8252 REGB1 = TAG_Bool(false);
8253 REGB0 = REGB1;
8254 } else {
8255 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8256 REGB0 = REGB1;
8257 }
8258 }
8259 if (UNTAG_Bool(REGB0)) {
8260 /* ./syntax//mmbuilder.nit:1162 */
8261 fra.me.REG[2] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8262 REGB0 = TAG_Bool(true);
8263 CALL_mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
8264 /* ./syntax//mmbuilder.nit:1163 */
8265 goto label1;
8266 }
8267 }
8268 /* ./syntax//mmbuilder.nit:1166 */
8269 fra.me.REG[2] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8270 fra.me.REG[0] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8271 fra.me.REG[0] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[0])(fra.me.REG[0]);
8272 fra.me.REG[0] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]);
8273 CALL_mmbuilder___SignatureBuilder___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8274 /* ./syntax//mmbuilder.nit:1167 */
8275 fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8276 REGB0 = CALL_mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[0])(fra.me.REG[0]);
8277 REGB1 = TAG_Int(0);
8278 /* ./../lib/standard//kernel.nit:213 */
8279 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
8280 /* ./syntax//mmbuilder.nit:1167 */
8281 if (UNTAG_Bool(REGB1)) {
8282 /* ./syntax//mmbuilder.nit:1168 */
8283 fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8284 fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___signature(fra.me.REG[0])(fra.me.REG[0]);
8285 fra.me.REG[2] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8286 REGB1 = CALL_mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[2])(fra.me.REG[2]);
8287 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8288 if (UNTAG_Bool(REGB0)) {
8289 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1168);
8290 }
8291 CALL_vararg___MMSignature___vararg_rank__eq(fra.me.REG[0])(fra.me.REG[0], REGB1);
8292 }
8293 /* ./syntax//mmbuilder.nit:1170 */
8294 fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8295 fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[0])(fra.me.REG[0]);
8296 /* ./../lib/standard//collection//array.nit:234 */
8297 REGB1 = TAG_Int(0);
8298 /* ./../lib/standard//collection//array.nit:235 */
8299 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
8300 if (UNTAG_Bool(REGB0)) {
8301 } else {
8302 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
8303 }
8304 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
8305 /* ./../lib/standard//collection//array.nit:236 */
8306 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[0]);
8307 /* ./../lib/standard//collection//array.nit:237 */
8308 while(1) {
8309 /* ./../lib/standard//collection//array.nit:23 */
8310 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
8311 if (UNTAG_Bool(REGB0)) {
8312 } else {
8313 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
8314 }
8315 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
8316 /* ./../lib/standard//kernel.nit:212 */
8317 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
8318 /* ./../lib/standard//collection//array.nit:237 */
8319 if (UNTAG_Bool(REGB0)) {
8320 /* ./../lib/standard//collection//array.nit:238 */
8321 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8322 if (UNTAG_Bool(REGB0)) {
8323 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
8324 }
8325 /* ./../lib/standard//collection//array.nit:654 */
8326 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
8327 /* ./syntax//mmbuilder.nit:1171 */
8328 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8329 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
8330 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8331 if (UNTAG_Bool(REGB0)) {
8332 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1171);
8333 }
8334 fra.me.REG[1] = CALL_static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
8335 fra.me.REG[4] = CALL_syntax_base___AClosureDecl___variable(fra.me.REG[4])(fra.me.REG[4]);
8336 fra.me.REG[4] = CALL_syntax_base___ClosureVariable___closure(fra.me.REG[4])(fra.me.REG[4]);
8337 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
8338 /* ./../lib/standard//collection//array.nit:239 */
8339 REGB0 = TAG_Int(1);
8340 /* ./../lib/standard//kernel.nit:215 */
8341 REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
8342 /* ./../lib/standard//collection//array.nit:239 */
8343 REGB1 = REGB0;
8344 } else {
8345 /* ./../lib/standard//collection//array.nit:237 */
8346 goto label4;
8347 }
8348 }
8349 label4: while(0);
8350 }
8351 }
8352 }
8353 label1: while(0);
8354 stack_frame_head = fra.me.prev;
8355 return;
8356 }
8357 void mmbuilder___ASignature___check_visibility(val_t p0, val_t p1, val_t p2){
8358 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8359 val_t REGB0;
8360 val_t REGB1;
8361 val_t tmp;
8362 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8363 fra.me.file = LOCATE_mmbuilder;
8364 fra.me.line = 1176;
8365 fra.me.meth = LOCATE_mmbuilder___ASignature___check_visibility;
8366 fra.me.has_broke = 0;
8367 fra.me.REG_size = 4;
8368 fra.me.REG[0] = NIT_NULL;
8369 fra.me.REG[1] = NIT_NULL;
8370 fra.me.REG[2] = NIT_NULL;
8371 fra.me.REG[3] = NIT_NULL;
8372 fra.me.REG[0] = p0;
8373 fra.me.REG[1] = p1;
8374 fra.me.REG[2] = p2;
8375 /* ./syntax//mmbuilder.nit:1179 */
8376 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
8377 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
8378 REGB1 = TAG_Int(3);
8379 /* ./../lib/standard//kernel.nit:213 */
8380 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
8381 /* ./syntax//mmbuilder.nit:1179 */
8382 if (UNTAG_Bool(REGB1)) {
8383 goto label1;
8384 }
8385 /* ./syntax//mmbuilder.nit:1180 */
8386 fra.me.REG[3] = CALL_parser_nodes___ASignature___n_params(fra.me.REG[0])(fra.me.REG[0]);
8387 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_mmbuilder___ASignature___check_visibility_2));
8388 /* ./syntax//mmbuilder.nit:1183 */
8389 fra.me.REG[3] = CALL_parser_nodes___ASignature___n_type(fra.me.REG[0])(fra.me.REG[0]);
8390 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8391 if (UNTAG_Bool(REGB1)) {
8392 } else {
8393 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8394 if (UNTAG_Bool(REGB0)) {
8395 REGB0 = TAG_Bool(false);
8396 REGB1 = REGB0;
8397 } else {
8398 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8399 REGB1 = REGB0;
8400 }
8401 }
8402 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8403 if (UNTAG_Bool(REGB1)) {
8404 fra.me.REG[0] = CALL_parser_nodes___ASignature___n_type(fra.me.REG[0])(fra.me.REG[0]);
8405 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8406 if (UNTAG_Bool(REGB1)) {
8407 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1183);
8408 }
8409 CALL_mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
8410 }
8411 label1: while(0);
8412 stack_frame_head = fra.me.prev;
8413 return;
8414 }
8415 void OC_mmbuilder___ASignature___check_visibility_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
8416 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8417 val_t REGB0;
8418 val_t REGB1;
8419 fun_t CREG[1];
8420 val_t tmp;
8421 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8422 fra.me.file = LOCATE_mmbuilder;
8423 fra.me.line = 0;
8424 fra.me.meth = LOCATE_mmbuilder___ASignature___check_visibility;
8425 fra.me.has_broke = 0;
8426 fra.me.REG_size = 2;
8427 fra.me.REG[0] = NIT_NULL;
8428 fra.me.REG[1] = NIT_NULL;
8429 fra.me.closure_ctx = closctx_param;
8430 fra.me.closure_funs = CREG;
8431 fra.me.REG[0] = p0;
8432 CREG[0] = clos_fun0;
8433 /* ./syntax//mmbuilder.nit:1181 */
8434 fra.me.REG[1] = CALL_parser_nodes___AParam___n_type(fra.me.REG[0])(fra.me.REG[0]);
8435 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8436 if (UNTAG_Bool(REGB0)) {
8437 } else {
8438 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8439 if (UNTAG_Bool(REGB1)) {
8440 REGB1 = TAG_Bool(false);
8441 REGB0 = REGB1;
8442 } else {
8443 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8444 REGB0 = REGB1;
8445 }
8446 }
8447 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8448 if (UNTAG_Bool(REGB0)) {
8449 fra.me.REG[0] = CALL_parser_nodes___AParam___n_type(fra.me.REG[0])(fra.me.REG[0]);
8450 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8451 if (UNTAG_Bool(REGB0)) {
8452 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1181);
8453 }
8454 CALL_mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1], closctx->REG[2]);
8455 }
8456 stack_frame_head = fra.me.prev;
8457 return;
8458 }
8459 val_t mmbuilder___AParam___position(val_t p0){
8460 struct {struct stack_frame_t me;} fra;
8461 val_t REGB0;
8462 val_t tmp;
8463 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8464 fra.me.file = LOCATE_mmbuilder;
8465 fra.me.line = 1188;
8466 fra.me.meth = LOCATE_mmbuilder___AParam___position;
8467 fra.me.has_broke = 0;
8468 fra.me.REG_size = 1;
8469 fra.me.REG[0] = NIT_NULL;
8470 fra.me.REG[0] = p0;
8471 /* ./syntax//mmbuilder.nit:1188 */
8472 REGB0 = TAG_Bool(ATTR_mmbuilder___AParam____position(fra.me.REG[0])!=NIT_NULL);
8473 if (UNTAG_Bool(REGB0)) {
8474 } else {
8475 nit_abort("Uninitialized attribute %s", "_position", LOCATE_mmbuilder, 1188);
8476 }
8477 REGB0 = ATTR_mmbuilder___AParam____position(fra.me.REG[0]);
8478 stack_frame_head = fra.me.prev;
8479 return REGB0;
8480 }
8481 val_t mmbuilder___AParam___variable(val_t p0){
8482 struct {struct stack_frame_t me;} fra;
8483 val_t REGB0;
8484 val_t tmp;
8485 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8486 fra.me.file = LOCATE_mmbuilder;
8487 fra.me.line = 1190;
8488 fra.me.meth = LOCATE_mmbuilder___AParam___variable;
8489 fra.me.has_broke = 0;
8490 fra.me.REG_size = 1;
8491 fra.me.REG[0] = NIT_NULL;
8492 fra.me.REG[0] = p0;
8493 /* ./syntax//mmbuilder.nit:1190 */
8494 fra.me.REG[0] = ATTR_mmbuilder___AParam____variable(fra.me.REG[0]);
8495 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
8496 if (UNTAG_Bool(REGB0)) {
8497 } else {
8498 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 1190);
8499 }
8500 goto label1;
8501 label1: while(0);
8502 stack_frame_head = fra.me.prev;
8503 return fra.me.REG[0];
8504 }
8505 val_t mmbuilder___AParam___stype(val_t p0){
8506 struct {struct stack_frame_t me;} fra;
8507 val_t tmp;
8508 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8509 fra.me.file = LOCATE_mmbuilder;
8510 fra.me.line = 1193;
8511 fra.me.meth = LOCATE_mmbuilder___AParam___stype;
8512 fra.me.has_broke = 0;
8513 fra.me.REG_size = 1;
8514 fra.me.REG[0] = NIT_NULL;
8515 fra.me.REG[0] = p0;
8516 /* ./syntax//mmbuilder.nit:1193 */
8517 fra.me.REG[0] = ATTR_mmbuilder___AParam____stype(fra.me.REG[0]);
8518 stack_frame_head = fra.me.prev;
8519 return fra.me.REG[0];
8520 }
8521 void mmbuilder___AParam___stype__eq(val_t p0, val_t p1){
8522 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8523 val_t tmp;
8524 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8525 fra.me.file = LOCATE_mmbuilder;
8526 fra.me.line = 1193;
8527 fra.me.meth = LOCATE_mmbuilder___AParam___stype__eq;
8528 fra.me.has_broke = 0;
8529 fra.me.REG_size = 2;
8530 fra.me.REG[0] = NIT_NULL;
8531 fra.me.REG[1] = NIT_NULL;
8532 fra.me.REG[0] = p0;
8533 fra.me.REG[1] = p1;
8534 /* ./syntax//mmbuilder.nit:1193 */
8535 ATTR_mmbuilder___AParam____stype(fra.me.REG[0]) = fra.me.REG[1];
8536 stack_frame_head = fra.me.prev;
8537 return;
8538 }
8539 void mmbuilder___AParam___accept_property_verifier(val_t p0, val_t p1){
8540 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
8541 val_t REGB0;
8542 val_t REGB1;
8543 val_t REGB2;
8544 val_t REGB3;
8545 val_t tmp;
8546 static val_t once_value_2; /* Once value */
8547 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8548 fra.me.file = LOCATE_mmbuilder;
8549 fra.me.line = 1196;
8550 fra.me.meth = LOCATE_mmbuilder___AParam___accept_property_verifier;
8551 fra.me.has_broke = 0;
8552 fra.me.REG_size = 7;
8553 fra.me.REG[0] = NIT_NULL;
8554 fra.me.REG[1] = NIT_NULL;
8555 fra.me.REG[2] = NIT_NULL;
8556 fra.me.REG[3] = NIT_NULL;
8557 fra.me.REG[4] = NIT_NULL;
8558 fra.me.REG[5] = NIT_NULL;
8559 fra.me.REG[6] = NIT_NULL;
8560 fra.me.REG[0] = p0;
8561 fra.me.REG[1] = p1;
8562 /* ./syntax//mmbuilder.nit:1196 */
8563 fra.me.REG[2] = fra.me.REG[0];
8564 fra.me.REG[3] = fra.me.REG[1];
8565 /* ./syntax//mmbuilder.nit:1198 */
8566 CALL_SUPER_mmbuilder___AParam___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8567 /* ./syntax//mmbuilder.nit:1199 */
8568 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8569 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[1])(fra.me.REG[1]);
8570 /* ./../lib/standard//collection//array.nit:23 */
8571 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
8572 if (UNTAG_Bool(REGB0)) {
8573 } else {
8574 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
8575 }
8576 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
8577 /* ./syntax//mmbuilder.nit:1199 */
8578 ATTR_mmbuilder___AParam____position(fra.me.REG[2]) = REGB0;
8579 /* ./syntax//mmbuilder.nit:1200 */
8580 fra.me.REG[1] = CALL_parser_nodes___AParam___n_id(fra.me.REG[2])(fra.me.REG[2]);
8581 fra.me.REG[1] = CALL_syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
8582 fra.me.REG[0] = CALL_parser_nodes___AParam___n_id(fra.me.REG[2])(fra.me.REG[2]);
8583 fra.me.REG[0] = NEW_ParamVariable_syntax_base___ParamVariable___init(fra.me.REG[1], fra.me.REG[0]);
8584 ATTR_mmbuilder___AParam____variable(fra.me.REG[2]) = fra.me.REG[0];
8585 /* ./syntax//mmbuilder.nit:1201 */
8586 fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8587 fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[0])(fra.me.REG[0]);
8588 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
8589 /* ./syntax//mmbuilder.nit:1202 */
8590 fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8591 fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[0])(fra.me.REG[0]);
8592 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
8593 /* ./syntax//mmbuilder.nit:1203 */
8594 fra.me.REG[0] = CALL_parser_nodes___AParam___n_type(fra.me.REG[2])(fra.me.REG[2]);
8595 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8596 if (UNTAG_Bool(REGB0)) {
8597 } else {
8598 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8599 if (UNTAG_Bool(REGB1)) {
8600 REGB1 = TAG_Bool(false);
8601 REGB0 = REGB1;
8602 } else {
8603 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8604 REGB0 = REGB1;
8605 }
8606 }
8607 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8608 if (UNTAG_Bool(REGB0)) {
8609 /* ./syntax//mmbuilder.nit:1204 */
8610 fra.me.REG[0] = CALL_parser_nodes___AParam___n_type(fra.me.REG[2])(fra.me.REG[2]);
8611 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8612 if (UNTAG_Bool(REGB0)) {
8613 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1204);
8614 }
8615 fra.me.REG[0] = CALL_syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8616 /* ./syntax//mmbuilder.nit:1205 */
8617 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8618 if (UNTAG_Bool(REGB0)) {
8619 } else {
8620 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8621 if (UNTAG_Bool(REGB1)) {
8622 REGB1 = TAG_Bool(false);
8623 REGB0 = REGB1;
8624 } else {
8625 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8626 REGB0 = REGB1;
8627 }
8628 }
8629 if (UNTAG_Bool(REGB0)) {
8630 /* ./syntax//mmbuilder.nit:1206 */
8631 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8632 REGB0 = TAG_Bool(true);
8633 CALL_mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
8634 /* ./syntax//mmbuilder.nit:1207 */
8635 goto label1;
8636 }
8637 /* ./syntax//mmbuilder.nit:1209 */
8638 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8639 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
8640 /* ./../lib/standard//collection//array.nit:234 */
8641 REGB0 = TAG_Int(0);
8642 /* ./../lib/standard//collection//array.nit:235 */
8643 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
8644 if (UNTAG_Bool(REGB1)) {
8645 } else {
8646 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
8647 }
8648 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
8649 /* ./../lib/standard//collection//array.nit:236 */
8650 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[1]);
8651 /* ./../lib/standard//collection//array.nit:237 */
8652 while(1) {
8653 /* ./../lib/standard//collection//array.nit:23 */
8654 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
8655 if (UNTAG_Bool(REGB1)) {
8656 } else {
8657 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
8658 }
8659 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
8660 /* ./../lib/standard//kernel.nit:212 */
8661 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
8662 /* ./../lib/standard//collection//array.nit:237 */
8663 if (UNTAG_Bool(REGB1)) {
8664 /* ./../lib/standard//collection//array.nit:238 */
8665 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8666 if (UNTAG_Bool(REGB1)) {
8667 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
8668 }
8669 /* ./../lib/standard//collection//array.nit:654 */
8670 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
8671 /* ./syntax//mmbuilder.nit:1210 */
8672 CALL_mmbuilder___AParam___stype__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
8673 /* ./syntax//mmbuilder.nit:1211 */
8674 REGB1 = CALL_mmbuilder___AParam___is_vararg(fra.me.REG[2])(fra.me.REG[2]);
8675 if (UNTAG_Bool(REGB1)) {
8676 /* ./syntax//mmbuilder.nit:1212 */
8677 fra.me.REG[6] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8678 REGB1 = CALL_mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[6])(fra.me.REG[6]);
8679 REGB2 = TAG_Int(1);
8680 /* ./../lib/standard//kernel.nit:216 */
8681 REGB2 = TAG_Int(-UNTAG_Int(REGB2));
8682 /* ./syntax//mmbuilder.nit:1212 */
8683 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
8684 if (UNTAG_Bool(REGB3)) {
8685 } else {
8686 /* ./../lib/standard//kernel.nit:207 */
8687 REGB2 = TAG_Bool((REGB1)==(REGB2));
8688 /* ./syntax//mmbuilder.nit:1212 */
8689 REGB3 = REGB2;
8690 }
8691 if (UNTAG_Bool(REGB3)) {
8692 /* ./syntax//mmbuilder.nit:1213 */
8693 fra.me.REG[6] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8694 REGB3 = CALL_syntax_base___AParam___position(fra.me.REG[5])(fra.me.REG[5]);
8695 CALL_mmbuilder___SignatureBuilder___vararg_rank__eq(fra.me.REG[6])(fra.me.REG[6], REGB3);
8696 } else {
8697 /* ./syntax//mmbuilder.nit:1215 */
8698 if (!once_value_2) {
8699 fra.me.REG[6] = BOX_NativeString("Error: A vararg parameter is already defined.");
8700 REGB3 = TAG_Int(45);
8701 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB3);
8702 once_value_2 = fra.me.REG[6];
8703 register_static_object(&once_value_2);
8704 } else fra.me.REG[6] = once_value_2;
8705 fra.me.REG[6] = fra.me.REG[6];
8706 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
8707 }
8708 /* ./syntax//mmbuilder.nit:1217 */
8709 fra.me.REG[6] = CALL_syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
8710 fra.me.REG[0] = fra.me.REG[6];
8711 }
8712 /* ./syntax//mmbuilder.nit:1219 */
8713 fra.me.REG[5] = CALL_syntax_base___AParam___variable(fra.me.REG[5])(fra.me.REG[5]);
8714 CALL_syntax_base___Variable___stype__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
8715 /* ./../lib/standard//collection//array.nit:239 */
8716 REGB3 = TAG_Int(1);
8717 /* ./../lib/standard//kernel.nit:215 */
8718 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
8719 /* ./../lib/standard//collection//array.nit:239 */
8720 REGB0 = REGB3;
8721 } else {
8722 /* ./../lib/standard//collection//array.nit:237 */
8723 goto label3;
8724 }
8725 }
8726 label3: while(0);
8727 /* ./syntax//mmbuilder.nit:1221 */
8728 fra.me.REG[3] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8729 fra.me.REG[3] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[3])(fra.me.REG[3]);
8730 CALL_abstract_collection___RemovableCollection___clear(fra.me.REG[3])(fra.me.REG[3]);
8731 }
8732 label1: while(0);
8733 stack_frame_head = fra.me.prev;
8734 return;
8735 }
8736 val_t mmbuilder___AParam___is_vararg(val_t p0){
8737 struct {struct stack_frame_t me;} fra;
8738 val_t REGB0;
8739 val_t REGB1;
8740 val_t tmp;
8741 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8742 fra.me.file = LOCATE_mmbuilder;
8743 fra.me.line = 1225;
8744 fra.me.meth = LOCATE_mmbuilder___AParam___is_vararg;
8745 fra.me.has_broke = 0;
8746 fra.me.REG_size = 1;
8747 fra.me.REG[0] = NIT_NULL;
8748 fra.me.REG[0] = p0;
8749 /* ./syntax//mmbuilder.nit:1225 */
8750 fra.me.REG[0] = CALL_parser_nodes___AParam___n_dotdotdot(fra.me.REG[0])(fra.me.REG[0]);
8751 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8752 if (UNTAG_Bool(REGB0)) {
8753 } else {
8754 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8755 if (UNTAG_Bool(REGB1)) {
8756 REGB1 = TAG_Bool(false);
8757 REGB0 = REGB1;
8758 } else {
8759 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8760 REGB0 = REGB1;
8761 }
8762 }
8763 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8764 goto label1;
8765 label1: while(0);
8766 stack_frame_head = fra.me.prev;
8767 return REGB0;
8768 }
8769 val_t mmbuilder___AClosureDecl___position(val_t p0){
8770 struct {struct stack_frame_t me;} fra;
8771 val_t REGB0;
8772 val_t tmp;
8773 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8774 fra.me.file = LOCATE_mmbuilder;
8775 fra.me.line = 1229;
8776 fra.me.meth = LOCATE_mmbuilder___AClosureDecl___position;
8777 fra.me.has_broke = 0;
8778 fra.me.REG_size = 1;
8779 fra.me.REG[0] = NIT_NULL;
8780 fra.me.REG[0] = p0;
8781 /* ./syntax//mmbuilder.nit:1229 */
8782 REGB0 = TAG_Bool(ATTR_mmbuilder___AClosureDecl____position(fra.me.REG[0])!=NIT_NULL);
8783 if (UNTAG_Bool(REGB0)) {
8784 } else {
8785 nit_abort("Uninitialized attribute %s", "_position", LOCATE_mmbuilder, 1229);
8786 }
8787 REGB0 = ATTR_mmbuilder___AClosureDecl____position(fra.me.REG[0]);
8788 stack_frame_head = fra.me.prev;
8789 return REGB0;
8790 }
8791 val_t mmbuilder___AClosureDecl___variable(val_t p0){
8792 struct {struct stack_frame_t me;} fra;
8793 val_t REGB0;
8794 val_t tmp;
8795 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8796 fra.me.file = LOCATE_mmbuilder;
8797 fra.me.line = 1231;
8798 fra.me.meth = LOCATE_mmbuilder___AClosureDecl___variable;
8799 fra.me.has_broke = 0;
8800 fra.me.REG_size = 1;
8801 fra.me.REG[0] = NIT_NULL;
8802 fra.me.REG[0] = p0;
8803 /* ./syntax//mmbuilder.nit:1231 */
8804 fra.me.REG[0] = ATTR_mmbuilder___AClosureDecl____variable(fra.me.REG[0]);
8805 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
8806 if (UNTAG_Bool(REGB0)) {
8807 } else {
8808 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 1231);
8809 }
8810 goto label1;
8811 label1: while(0);
8812 stack_frame_head = fra.me.prev;
8813 return fra.me.REG[0];
8814 }
8815 void mmbuilder___AClosureDecl___accept_property_verifier(val_t p0, val_t p1){
8816 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
8817 val_t REGB0;
8818 val_t REGB1;
8819 val_t REGB2;
8820 val_t tmp;
8821 static val_t once_value_2; /* Once value */
8822 static val_t once_value_3; /* Once value */
8823 static val_t once_value_4; /* Once value */
8824 static val_t once_value_5; /* Once value */
8825 static val_t once_value_6; /* Once value */
8826 static val_t once_value_7; /* Once value */
8827 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8828 fra.me.file = LOCATE_mmbuilder;
8829 fra.me.line = 1234;
8830 fra.me.meth = LOCATE_mmbuilder___AClosureDecl___accept_property_verifier;
8831 fra.me.has_broke = 0;
8832 fra.me.REG_size = 11;
8833 fra.me.REG[0] = NIT_NULL;
8834 fra.me.REG[1] = NIT_NULL;
8835 fra.me.REG[2] = NIT_NULL;
8836 fra.me.REG[3] = NIT_NULL;
8837 fra.me.REG[4] = NIT_NULL;
8838 fra.me.REG[5] = NIT_NULL;
8839 fra.me.REG[6] = NIT_NULL;
8840 fra.me.REG[7] = NIT_NULL;
8841 fra.me.REG[8] = NIT_NULL;
8842 fra.me.REG[9] = NIT_NULL;
8843 fra.me.REG[10] = NIT_NULL;
8844 fra.me.REG[0] = p0;
8845 fra.me.REG[1] = p1;
8846 /* ./syntax//mmbuilder.nit:1234 */
8847 fra.me.REG[2] = fra.me.REG[0];
8848 fra.me.REG[3] = fra.me.REG[1];
8849 /* ./syntax//mmbuilder.nit:1236 */
8850 fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8851 /* ./syntax//mmbuilder.nit:1237 */
8852 fra.me.REG[5] = NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init();
8853 CALL_mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
8854 /* ./syntax//mmbuilder.nit:1238 */
8855 CALL_SUPER_mmbuilder___AClosureDecl___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8856 /* ./syntax//mmbuilder.nit:1239 */
8857 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8858 REGB0 = CALL_mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
8859 if (UNTAG_Bool(REGB0)) {
8860 /* ./syntax//mmbuilder.nit:1240 */
8861 goto label1;
8862 }
8863 /* ./syntax//mmbuilder.nit:1242 */
8864 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8865 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
8866 /* ./syntax//mmbuilder.nit:1243 */
8867 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8868 if (UNTAG_Bool(REGB0)) {
8869 } else {
8870 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8871 if (UNTAG_Bool(REGB1)) {
8872 REGB1 = TAG_Bool(false);
8873 REGB0 = REGB1;
8874 } else {
8875 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8876 REGB0 = REGB1;
8877 }
8878 }
8879 if (UNTAG_Bool(REGB0)) {
8880 /* ./syntax//mmbuilder.nit:1244 */
8881 fra.me.REG[0] = NEW_Array_array___Array___init();
8882 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8883 fra.me.REG[5] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]);
8884 fra.me.REG[5] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[5]);
8885 fra.me.REG[1] = fra.me.REG[5];
8886 }
8887 /* ./syntax//mmbuilder.nit:1246 */
8888 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8889 if (UNTAG_Bool(REGB0)) {
8890 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1246);
8891 }
8892 fra.me.REG[5] = CALL_static_type___MMSignature___return_type(fra.me.REG[1])(fra.me.REG[1]);
8893 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8894 if (UNTAG_Bool(REGB0)) {
8895 } else {
8896 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8897 if (UNTAG_Bool(REGB1)) {
8898 REGB1 = TAG_Bool(false);
8899 REGB0 = REGB1;
8900 } else {
8901 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
8902 REGB0 = REGB1;
8903 }
8904 }
8905 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8906 if (UNTAG_Bool(REGB0)) {
8907 fra.me.REG[5] = CALL_parser_nodes___AClosureDecl___n_kwbreak(fra.me.REG[2])(fra.me.REG[2]);
8908 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8909 if (UNTAG_Bool(REGB0)) {
8910 } else {
8911 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8912 if (UNTAG_Bool(REGB1)) {
8913 REGB1 = TAG_Bool(false);
8914 REGB0 = REGB1;
8915 } else {
8916 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
8917 REGB0 = REGB1;
8918 }
8919 }
8920 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8921 } else {
8922 REGB1 = TAG_Bool(false);
8923 REGB0 = REGB1;
8924 }
8925 if (UNTAG_Bool(REGB0)) {
8926 /* ./syntax//mmbuilder.nit:1247 */
8927 if (!once_value_2) {
8928 fra.me.REG[5] = BOX_NativeString("Syntax Error: A break block cannot have a return value.");
8929 REGB0 = TAG_Int(55);
8930 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
8931 once_value_2 = fra.me.REG[5];
8932 register_static_object(&once_value_2);
8933 } else fra.me.REG[5] = once_value_2;
8934 fra.me.REG[5] = fra.me.REG[5];
8935 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[5]);
8936 }
8937 /* ./syntax//mmbuilder.nit:1251 */
8938 fra.me.REG[5] = NEW_Array_array___Array___init();
8939 fra.me.REG[0] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
8940 fra.me.REG[0] = CALL_inheritance___MMModule___type_any(fra.me.REG[0])(fra.me.REG[0]);
8941 fra.me.REG[0] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[5], NIT_NULL, fra.me.REG[0]);
8942 /* ./syntax//mmbuilder.nit:1252 */
8943 if (!once_value_3) {
8944 if (!once_value_4) {
8945 fra.me.REG[5] = BOX_NativeString("break");
8946 REGB0 = TAG_Int(5);
8947 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
8948 once_value_4 = fra.me.REG[5];
8949 register_static_object(&once_value_4);
8950 } else fra.me.REG[5] = once_value_4;
8951 fra.me.REG[5] = fra.me.REG[5];
8952 fra.me.REG[5] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
8953 once_value_3 = fra.me.REG[5];
8954 register_static_object(&once_value_3);
8955 } else fra.me.REG[5] = once_value_3;
8956 fra.me.REG[5] = fra.me.REG[5];
8957 REGB0 = TAG_Bool(false);
8958 REGB1 = TAG_Bool(true);
8959 fra.me.REG[0] = NEW_MMClosure_static_type___MMClosure___init(fra.me.REG[5], fra.me.REG[0], REGB0, REGB1);
8960 /* ./syntax//mmbuilder.nit:1253 */
8961 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8962 if (UNTAG_Bool(REGB1)) {
8963 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1253);
8964 }
8965 fra.me.REG[5] = CALL_static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
8966 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
8967 /* ./syntax//mmbuilder.nit:1255 */
8968 fra.me.REG[0] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
8969 fra.me.REG[0] = CALL_syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
8970 /* ./syntax//mmbuilder.nit:1256 */
8971 fra.me.REG[5] = CALL_parser_nodes___AClosureDecl___n_kwbreak(fra.me.REG[2])(fra.me.REG[2]);
8972 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8973 if (UNTAG_Bool(REGB1)) {
8974 } else {
8975 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8976 if (UNTAG_Bool(REGB0)) {
8977 REGB0 = TAG_Bool(false);
8978 REGB1 = REGB0;
8979 } else {
8980 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
8981 REGB1 = REGB0;
8982 }
8983 }
8984 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8985 fra.me.REG[5] = CALL_parser_nodes___AClosureDecl___n_expr(fra.me.REG[2])(fra.me.REG[2]);
8986 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8987 if (UNTAG_Bool(REGB0)) {
8988 } else {
8989 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8990 if (UNTAG_Bool(REGB2)) {
8991 REGB2 = TAG_Bool(false);
8992 REGB0 = REGB2;
8993 } else {
8994 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
8995 REGB0 = REGB2;
8996 }
8997 }
8998 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8999 fra.me.REG[1] = NEW_MMClosure_static_type___MMClosure___init(fra.me.REG[0], fra.me.REG[1], REGB1, REGB0);
9000 /* ./syntax//mmbuilder.nit:1257 */
9001 fra.me.REG[5] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
9002 /* ./../lib/standard//collection//array.nit:234 */
9003 REGB0 = TAG_Int(0);
9004 /* ./../lib/standard//collection//array.nit:235 */
9005 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
9006 if (UNTAG_Bool(REGB1)) {
9007 } else {
9008 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
9009 }
9010 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]);
9011 /* ./../lib/standard//collection//array.nit:236 */
9012 fra.me.REG[6] = ATTR_array___Array____items(fra.me.REG[5]);
9013 /* ./../lib/standard//collection//array.nit:237 */
9014 while(1) {
9015 /* ./../lib/standard//collection//array.nit:23 */
9016 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
9017 if (UNTAG_Bool(REGB1)) {
9018 } else {
9019 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
9020 }
9021 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]);
9022 /* ./../lib/standard//kernel.nit:212 */
9023 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
9024 /* ./../lib/standard//collection//array.nit:237 */
9025 if (UNTAG_Bool(REGB1)) {
9026 /* ./../lib/standard//collection//array.nit:238 */
9027 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
9028 if (UNTAG_Bool(REGB1)) {
9029 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
9030 }
9031 /* ./../lib/standard//collection//array.nit:654 */
9032 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
9033 /* ./syntax//mmbuilder.nit:1258 */
9034 fra.me.REG[8] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[7])(fra.me.REG[7]);
9035 fra.me.REG[8] = CALL_syntax_base___Token___to_symbol(fra.me.REG[8])(fra.me.REG[8]);
9036 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[8],fra.me.REG[0]));
9037 if (UNTAG_Bool(REGB1)) {
9038 } else {
9039 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
9040 REGB1 = REGB2;
9041 }
9042 if (UNTAG_Bool(REGB1)) {
9043 /* ./syntax//mmbuilder.nit:1259 */
9044 fra.me.REG[8] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
9045 REGB1 = TAG_Int(5);
9046 fra.me.REG[9] = NEW_Array_array___Array___with_capacity(REGB1);
9047 if (!once_value_5) {
9048 fra.me.REG[10] = BOX_NativeString("A closure '!");
9049 REGB1 = TAG_Int(12);
9050 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB1);
9051 once_value_5 = fra.me.REG[10];
9052 register_static_object(&once_value_5);
9053 } else fra.me.REG[10] = once_value_5;
9054 fra.me.REG[10] = fra.me.REG[10];
9055 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
9056 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
9057 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
9058 if (!once_value_6) {
9059 fra.me.REG[10] = BOX_NativeString("' already defined at ");
9060 REGB1 = TAG_Int(21);
9061 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB1);
9062 once_value_6 = fra.me.REG[10];
9063 register_static_object(&once_value_6);
9064 } else fra.me.REG[10] = once_value_6;
9065 fra.me.REG[10] = fra.me.REG[10];
9066 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
9067 fra.me.REG[7] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[7])(fra.me.REG[7]);
9068 fra.me.REG[7] = CALL_parser_nodes___ANode___location(fra.me.REG[7])(fra.me.REG[7]);
9069 fra.me.REG[10] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
9070 fra.me.REG[10] = CALL_parser_nodes___ANode___location(fra.me.REG[10])(fra.me.REG[10]);
9071 fra.me.REG[10] = CALL_location___Location___relative_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
9072 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
9073 if (!once_value_7) {
9074 fra.me.REG[10] = BOX_NativeString(".");
9075 REGB1 = TAG_Int(1);
9076 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB1);
9077 once_value_7 = fra.me.REG[10];
9078 register_static_object(&once_value_7);
9079 } else fra.me.REG[10] = once_value_7;
9080 fra.me.REG[10] = fra.me.REG[10];
9081 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
9082 fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
9083 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8], fra.me.REG[9]);
9084 /* ./syntax//mmbuilder.nit:1260 */
9085 goto label1;
9086 }
9087 /* ./../lib/standard//collection//array.nit:239 */
9088 REGB1 = TAG_Int(1);
9089 /* ./../lib/standard//kernel.nit:215 */
9090 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
9091 /* ./../lib/standard//collection//array.nit:239 */
9092 REGB0 = REGB1;
9093 } else {
9094 /* ./../lib/standard//collection//array.nit:237 */
9095 goto label8;
9096 }
9097 }
9098 label8: while(0);
9099 /* ./syntax//mmbuilder.nit:1263 */
9100 CALL_mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
9101 /* ./syntax//mmbuilder.nit:1264 */
9102 fra.me.REG[3] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
9103 /* ./../lib/standard//collection//array.nit:23 */
9104 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
9105 if (UNTAG_Bool(REGB0)) {
9106 } else {
9107 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
9108 }
9109 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
9110 /* ./syntax//mmbuilder.nit:1264 */
9111 ATTR_mmbuilder___AClosureDecl____position(fra.me.REG[2]) = REGB0;
9112 /* ./syntax//mmbuilder.nit:1265 */
9113 fra.me.REG[4] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
9114 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
9115 /* ./syntax//mmbuilder.nit:1266 */
9116 fra.me.REG[4] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
9117 fra.me.REG[4] = CALL_syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
9118 fra.me.REG[3] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
9119 fra.me.REG[1] = NEW_ClosureVariable_syntax_base___ClosureVariable___init(fra.me.REG[4], fra.me.REG[3], fra.me.REG[1]);
9120 ATTR_mmbuilder___AClosureDecl____variable(fra.me.REG[2]) = fra.me.REG[1];
9121 label1: while(0);
9122 stack_frame_head = fra.me.prev;
9123 return;
9124 }
9125 void mmbuilder___AType___check_visibility(val_t p0, val_t p1, val_t p2){
9126 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
9127 val_t REGB0;
9128 val_t REGB1;
9129 val_t tmp;
9130 static val_t once_value_2; /* Once value */
9131 static val_t once_value_3; /* Once value */
9132 static val_t once_value_4; /* Once value */
9133 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9134 fra.me.file = LOCATE_mmbuilder;
9135 fra.me.line = 1271;
9136 fra.me.meth = LOCATE_mmbuilder___AType___check_visibility;
9137 fra.me.has_broke = 0;
9138 fra.me.REG_size = 6;
9139 fra.me.REG[0] = NIT_NULL;
9140 fra.me.REG[1] = NIT_NULL;
9141 fra.me.REG[2] = NIT_NULL;
9142 fra.me.REG[3] = NIT_NULL;
9143 fra.me.REG[4] = NIT_NULL;
9144 fra.me.REG[5] = NIT_NULL;
9145 fra.me.REG[0] = p0;
9146 fra.me.REG[1] = p1;
9147 fra.me.REG[2] = p2;
9148 /* ./syntax//mmbuilder.nit:1274 */
9149 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
9150 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
9151 REGB1 = TAG_Int(3);
9152 /* ./../lib/standard//kernel.nit:213 */
9153 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
9154 /* ./syntax//mmbuilder.nit:1274 */
9155 if (UNTAG_Bool(REGB1)) {
9156 goto label1;
9157 }
9158 /* ./syntax//mmbuilder.nit:1275 */
9159 fra.me.REG[3] = CALL_syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9160 /* ./syntax//mmbuilder.nit:1276 */
9161 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9162 if (UNTAG_Bool(REGB1)) {
9163 } else {
9164 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9165 if (UNTAG_Bool(REGB0)) {
9166 REGB0 = TAG_Bool(false);
9167 REGB1 = REGB0;
9168 } else {
9169 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9170 REGB1 = REGB0;
9171 }
9172 }
9173 if (UNTAG_Bool(REGB1)) {
9174 goto label1;
9175 }
9176 /* ./syntax//mmbuilder.nit:1277 */
9177 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9178 if (UNTAG_Bool(REGB1)) {
9179 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1277);
9180 }
9181 fra.me.REG[3] = CALL_static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]);
9182 /* ./syntax//mmbuilder.nit:1278 */
9183 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
9184 REGB1 = CALL_abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[4])(fra.me.REG[4]);
9185 REGB0 = TAG_Int(3);
9186 /* ./../lib/standard//kernel.nit:213 */
9187 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
9188 /* ./syntax//mmbuilder.nit:1278 */
9189 if (UNTAG_Bool(REGB0)) {
9190 /* ./syntax//mmbuilder.nit:1279 */
9191 REGB0 = TAG_Int(5);
9192 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
9193 if (!once_value_2) {
9194 fra.me.REG[5] = BOX_NativeString("Access error: Class ");
9195 REGB0 = TAG_Int(20);
9196 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
9197 once_value_2 = fra.me.REG[5];
9198 register_static_object(&once_value_2);
9199 } else fra.me.REG[5] = once_value_2;
9200 fra.me.REG[5] = fra.me.REG[5];
9201 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
9202 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
9203 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
9204 if (!once_value_3) {
9205 fra.me.REG[3] = BOX_NativeString(" is private and cannot be used in the signature of the non-private property ");
9206 REGB0 = TAG_Int(76);
9207 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
9208 once_value_3 = fra.me.REG[3];
9209 register_static_object(&once_value_3);
9210 } else fra.me.REG[3] = once_value_3;
9211 fra.me.REG[3] = fra.me.REG[3];
9212 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
9213 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
9214 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
9215 if (!once_value_4) {
9216 fra.me.REG[3] = BOX_NativeString(".");
9217 REGB0 = TAG_Int(1);
9218 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
9219 once_value_4 = fra.me.REG[3];
9220 register_static_object(&once_value_4);
9221 } else fra.me.REG[3] = once_value_4;
9222 fra.me.REG[3] = fra.me.REG[3];
9223 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
9224 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
9225 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
9226 }
9227 /* ./syntax//mmbuilder.nit:1281 */
9228 fra.me.REG[0] = CALL_parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
9229 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_mmbuilder___AType___check_visibility_5));
9230 label1: while(0);
9231 stack_frame_head = fra.me.prev;
9232 return;
9233 }
9234 void OC_mmbuilder___AType___check_visibility_5(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
9235 struct {struct stack_frame_t me;} fra;
9236 fun_t CREG[1];
9237 val_t tmp;
9238 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9239 fra.me.file = LOCATE_mmbuilder;
9240 fra.me.line = 0;
9241 fra.me.meth = LOCATE_mmbuilder___AType___check_visibility;
9242 fra.me.has_broke = 0;
9243 fra.me.REG_size = 1;
9244 fra.me.REG[0] = NIT_NULL;
9245 fra.me.closure_ctx = closctx_param;
9246 fra.me.closure_funs = CREG;
9247 fra.me.REG[0] = p0;
9248 CREG[0] = clos_fun0;
9249 /* ./syntax//mmbuilder.nit:1282 */
9250 CALL_mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1], closctx->REG[2]);
9251 stack_frame_head = fra.me.prev;
9252 return;
9253 }
9254 void mmbuilder___AExpr___accept_class_builder(val_t p0, val_t p1){
9255 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9256 val_t tmp;
9257 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9258 fra.me.file = LOCATE_mmbuilder;
9259 fra.me.line = 1288;
9260 fra.me.meth = LOCATE_mmbuilder___AExpr___accept_class_builder;
9261 fra.me.has_broke = 0;
9262 fra.me.REG_size = 2;
9263 fra.me.REG[0] = NIT_NULL;
9264 fra.me.REG[1] = NIT_NULL;
9265 fra.me.REG[0] = p0;
9266 fra.me.REG[1] = p1;
9267 stack_frame_head = fra.me.prev;
9268 return;
9269 }
9270 void mmbuilder___AExpr___accept_property_builder(val_t p0, val_t p1){
9271 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9272 val_t tmp;
9273 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9274 fra.me.file = LOCATE_mmbuilder;
9275 fra.me.line = 1289;
9276 fra.me.meth = LOCATE_mmbuilder___AExpr___accept_property_builder;
9277 fra.me.has_broke = 0;
9278 fra.me.REG_size = 2;
9279 fra.me.REG[0] = NIT_NULL;
9280 fra.me.REG[1] = NIT_NULL;
9281 fra.me.REG[0] = p0;
9282 fra.me.REG[1] = p1;
9283 stack_frame_head = fra.me.prev;
9284 return;
9285 }
9286 void mmbuilder___AExpr___accept_property_verifier(val_t p0, val_t p1){
9287 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9288 val_t tmp;
9289 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9290 fra.me.file = LOCATE_mmbuilder;
9291 fra.me.line = 1290;
9292 fra.me.meth = LOCATE_mmbuilder___AExpr___accept_property_verifier;
9293 fra.me.has_broke = 0;
9294 fra.me.REG_size = 2;
9295 fra.me.REG[0] = NIT_NULL;
9296 fra.me.REG[1] = NIT_NULL;
9297 fra.me.REG[0] = p0;
9298 fra.me.REG[1] = p1;
9299 stack_frame_head = fra.me.prev;
9300 return;
9301 }