grammar: adds extern class kind for extern classes such as Pointer
[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_extern(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 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
294 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[7])(fra.me.REG[7]);
295 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
296 } else {
297 REGB2 = TAG_Bool(false);
298 REGB1 = REGB2;
299 }
300 if (UNTAG_Bool(REGB1)) {
301 /* ./syntax//mmbuilder.nit:101 */
302 CALL_mmbuilder___MMSrcLocalClass___process_default_constructors(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
303 }
304 /* ./../lib/standard//collection//array.nit:239 */
305 REGB1 = TAG_Int(1);
306 /* ./../lib/standard//kernel.nit:215 */
307 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
308 /* ./../lib/standard//collection//array.nit:239 */
309 REGB0 = REGB1;
310 } else {
311 /* ./../lib/standard//collection//array.nit:237 */
312 goto label6;
313 }
314 }
315 label6: while(0);
316 /* ./syntax//mmbuilder.nit:106 */
317 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
318 /* ./syntax//mmbuilder.nit:109 */
319 fra.me.REG[0] = NEW_PropertyVerifierVisitor_mmbuilder___PropertyVerifierVisitor___init(fra.me.REG[1], fra.me.REG[0]);
320 /* ./../lib/standard//collection//array.nit:234 */
321 REGB0 = TAG_Int(0);
322 /* ./../lib/standard//collection//array.nit:235 */
323 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
324 if (UNTAG_Bool(REGB1)) {
325 } else {
326 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
327 }
328 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
329 /* ./../lib/standard//collection//array.nit:236 */
330 fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[2]);
331 /* ./../lib/standard//collection//array.nit:237 */
332 while(1) {
333 /* ./../lib/standard//collection//array.nit:23 */
334 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
335 if (UNTAG_Bool(REGB1)) {
336 } else {
337 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
338 }
339 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
340 /* ./../lib/standard//kernel.nit:212 */
341 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
342 /* ./../lib/standard//collection//array.nit:237 */
343 if (UNTAG_Bool(REGB1)) {
344 /* ./../lib/standard//collection//array.nit:238 */
345 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
346 if (UNTAG_Bool(REGB1)) {
347 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
348 }
349 /* ./../lib/standard//collection//array.nit:654 */
350 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
351 /* ./syntax//mmbuilder.nit:111 */
352 CALL_mmbuilder___MMLocalClass___accept_properties_visitor(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
353 /* ./../lib/standard//collection//array.nit:239 */
354 REGB1 = TAG_Int(1);
355 /* ./../lib/standard//kernel.nit:215 */
356 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
357 /* ./../lib/standard//collection//array.nit:239 */
358 REGB0 = REGB1;
359 } else {
360 /* ./../lib/standard//collection//array.nit:237 */
361 goto label7;
362 }
363 }
364 label7: while(0);
365 /* ./syntax//mmbuilder.nit:114 */
366 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
367 stack_frame_head = fra.me.prev;
368 return;
369 }
370 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){
371 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
372 val_t REGB0;
373 val_t REGB1;
374 fun_t CREG[1];
375 val_t tmp;
376 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
377 fra.me.file = LOCATE_mmbuilder;
378 fra.me.line = 0;
379 fra.me.meth = LOCATE_mmbuilder___MMSrcModule___do_mmbuilder;
380 fra.me.has_broke = 0;
381 fra.me.REG_size = 2;
382 fra.me.REG[0] = NIT_NULL;
383 fra.me.REG[1] = NIT_NULL;
384 fra.me.closure_ctx = closctx_param;
385 fra.me.closure_funs = CREG;
386 fra.me.REG[0] = p0;
387 CREG[0] = clos_fun0;
388 /* ./syntax//mmbuilder.nit:62 */
389 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
390 fra.me.REG[1] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
391 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
392 REGB0 = CALL_abstractmetamodel___MMModule___visibility_for(closctx->REG[0])(closctx->REG[0], fra.me.REG[1]);
393 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
394 REGB1 = CALL_abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[1])(fra.me.REG[1]);
395 /* ./../lib/standard//kernel.nit:212 */
396 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
397 /* ./syntax//mmbuilder.nit:62 */
398 if (UNTAG_Bool(REGB1)) {
399 /* ./syntax//mmbuilder.nit:63 */
400 goto label2;
401 }
402 /* ./syntax//mmbuilder.nit:65 */
403 CALL_inheritance___MMLocalClass___compute_super_classes(fra.me.REG[0])(fra.me.REG[0]);
404 label2: while(0);
405 stack_frame_head = fra.me.prev;
406 return;
407 }
408 void mmbuilder___MMSrcModule___process_default_classes(val_t p0, val_t p1){
409 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
410 val_t REGB0;
411 val_t tmp;
412 static val_t once_value_1; /* Once value */
413 static val_t once_value_2; /* Once value */
414 static val_t once_value_3; /* Once value */
415 static val_t once_value_4; /* Once value */
416 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
417 fra.me.file = LOCATE_mmbuilder;
418 fra.me.line = 117;
419 fra.me.meth = LOCATE_mmbuilder___MMSrcModule___process_default_classes;
420 fra.me.has_broke = 0;
421 fra.me.REG_size = 4;
422 fra.me.REG[0] = NIT_NULL;
423 fra.me.REG[1] = NIT_NULL;
424 fra.me.REG[2] = NIT_NULL;
425 fra.me.REG[3] = NIT_NULL;
426 fra.me.REG[0] = p0;
427 fra.me.REG[1] = p1;
428 /* ./syntax//mmbuilder.nit:120 */
429 if (!once_value_1) {
430 if (!once_value_2) {
431 fra.me.REG[1] = BOX_NativeString("Object");
432 REGB0 = TAG_Int(6);
433 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
434 once_value_2 = fra.me.REG[1];
435 register_static_object(&once_value_2);
436 } else fra.me.REG[1] = once_value_2;
437 fra.me.REG[1] = fra.me.REG[1];
438 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
439 once_value_1 = fra.me.REG[1];
440 register_static_object(&once_value_1);
441 } else fra.me.REG[1] = once_value_1;
442 fra.me.REG[1] = fra.me.REG[1];
443 /* ./syntax//mmbuilder.nit:121 */
444 REGB0 = CALL_abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
445 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
446 if (UNTAG_Bool(REGB0)) {
447 /* ./syntax//mmbuilder.nit:122 */
448 REGB0 = TAG_Int(0);
449 fra.me.REG[2] = NEW_MMSrcLocalClass_syntax_base___MMSrcLocalClass___init(fra.me.REG[0], fra.me.REG[1], NIT_NULL, REGB0);
450 /* ./syntax//mmbuilder.nit:123 */
451 CALL_abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
452 /* ./syntax//mmbuilder.nit:124 */
453 fra.me.REG[3] = CALL_syntax_base___MMSrcModule___src_local_classes(fra.me.REG[0])(fra.me.REG[0]);
454 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[2]);
455 }
456 /* ./syntax//mmbuilder.nit:126 */
457 if (!once_value_3) {
458 if (!once_value_4) {
459 fra.me.REG[2] = BOX_NativeString("Bool");
460 REGB0 = TAG_Int(4);
461 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
462 once_value_4 = fra.me.REG[2];
463 register_static_object(&once_value_4);
464 } else fra.me.REG[2] = once_value_4;
465 fra.me.REG[2] = fra.me.REG[2];
466 fra.me.REG[2] = CALL_symbol___String___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
467 once_value_3 = fra.me.REG[2];
468 register_static_object(&once_value_3);
469 } else fra.me.REG[2] = once_value_3;
470 fra.me.REG[2] = fra.me.REG[2];
471 fra.me.REG[1] = fra.me.REG[2];
472 /* ./syntax//mmbuilder.nit:127 */
473 REGB0 = CALL_abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
474 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
475 if (UNTAG_Bool(REGB0)) {
476 /* ./syntax//mmbuilder.nit:128 */
477 REGB0 = TAG_Int(0);
478 fra.me.REG[2] = NEW_MMSrcLocalClass_syntax_base___MMSrcLocalClass___init(fra.me.REG[0], fra.me.REG[1], NIT_NULL, REGB0);
479 /* ./syntax//mmbuilder.nit:129 */
480 CALL_abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
481 /* ./syntax//mmbuilder.nit:130 */
482 fra.me.REG[0] = CALL_syntax_base___MMSrcModule___src_local_classes(fra.me.REG[0])(fra.me.REG[0]);
483 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
484 }
485 stack_frame_head = fra.me.prev;
486 return;
487 }
488 void mmbuilder___MMLocalClass___accept_class_visitor(val_t p0, val_t p1){
489 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
490 val_t tmp;
491 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
492 fra.me.file = LOCATE_mmbuilder;
493 fra.me.line = 136;
494 fra.me.meth = LOCATE_mmbuilder___MMLocalClass___accept_class_visitor;
495 fra.me.has_broke = 0;
496 fra.me.REG_size = 2;
497 fra.me.REG[0] = NIT_NULL;
498 fra.me.REG[1] = NIT_NULL;
499 fra.me.REG[0] = p0;
500 fra.me.REG[1] = p1;
501 stack_frame_head = fra.me.prev;
502 return;
503 }
504 void mmbuilder___MMLocalClass___accept_properties_visitor(val_t p0, val_t p1){
505 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
506 val_t tmp;
507 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
508 fra.me.file = LOCATE_mmbuilder;
509 fra.me.line = 141;
510 fra.me.meth = LOCATE_mmbuilder___MMLocalClass___accept_properties_visitor;
511 fra.me.has_broke = 0;
512 fra.me.REG_size = 2;
513 fra.me.REG[0] = NIT_NULL;
514 fra.me.REG[1] = NIT_NULL;
515 fra.me.REG[0] = p0;
516 fra.me.REG[1] = p1;
517 stack_frame_head = fra.me.prev;
518 return;
519 }
520 void mmbuilder___MMSrcLocalClass___accept_class_visitor(val_t p0, val_t p1){
521 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
522 val_t REGB0;
523 val_t REGB1;
524 val_t tmp;
525 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
526 fra.me.file = LOCATE_mmbuilder;
527 fra.me.line = 148;
528 fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___accept_class_visitor;
529 fra.me.has_broke = 0;
530 fra.me.REG_size = 3;
531 fra.me.REG[0] = NIT_NULL;
532 fra.me.REG[1] = NIT_NULL;
533 fra.me.REG[2] = NIT_NULL;
534 fra.me.REG[0] = p0;
535 fra.me.REG[1] = p1;
536 /* ./syntax//mmbuilder.nit:150 */
537 fra.me.REG[0] = CALL_syntax_base___MMSrcLocalClass___node(fra.me.REG[0])(fra.me.REG[0]);
538 /* ./syntax//mmbuilder.nit:151 */
539 while(1) {
540 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
541 if (UNTAG_Bool(REGB0)) {
542 } else {
543 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
544 if (UNTAG_Bool(REGB1)) {
545 REGB1 = TAG_Bool(false);
546 REGB0 = REGB1;
547 } else {
548 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
549 REGB0 = REGB1;
550 }
551 }
552 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
553 if (UNTAG_Bool(REGB0)) {
554 /* ./syntax//mmbuilder.nit:152 */
555 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
556 /* ./syntax//mmbuilder.nit:153 */
557 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
558 if (UNTAG_Bool(REGB0)) {
559 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 153);
560 }
561 fra.me.REG[2] = CALL_syntax_base___AClassdef___next_node(fra.me.REG[0])(fra.me.REG[0]);
562 fra.me.REG[0] = fra.me.REG[2];
563 } else {
564 /* ./syntax//mmbuilder.nit:151 */
565 goto label1;
566 }
567 }
568 label1: while(0);
569 stack_frame_head = fra.me.prev;
570 return;
571 }
572 void mmbuilder___MMSrcLocalClass___accept_properties_visitor(val_t p0, val_t p1){
573 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
574 val_t REGB0;
575 val_t REGB1;
576 val_t tmp;
577 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
578 fra.me.file = LOCATE_mmbuilder;
579 fra.me.line = 157;
580 fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___accept_properties_visitor;
581 fra.me.has_broke = 0;
582 fra.me.REG_size = 4;
583 fra.me.REG[0] = NIT_NULL;
584 fra.me.REG[1] = NIT_NULL;
585 fra.me.REG[2] = NIT_NULL;
586 fra.me.REG[3] = NIT_NULL;
587 fra.me.REG[0] = p0;
588 fra.me.REG[1] = p1;
589 /* ./syntax//mmbuilder.nit:160 */
590 fra.me.REG[2] = CALL_syntax_base___MMSrcLocalClass___node(fra.me.REG[0])(fra.me.REG[0]);
591 /* ./syntax//mmbuilder.nit:161 */
592 while(1) {
593 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
594 if (UNTAG_Bool(REGB0)) {
595 } else {
596 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
597 if (UNTAG_Bool(REGB1)) {
598 REGB1 = TAG_Bool(false);
599 REGB0 = REGB1;
600 } else {
601 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
602 REGB0 = REGB1;
603 }
604 }
605 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
606 if (UNTAG_Bool(REGB0)) {
607 /* ./syntax//mmbuilder.nit:162 */
608 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
609 /* ./syntax//mmbuilder.nit:163 */
610 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
611 if (UNTAG_Bool(REGB0)) {
612 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 163);
613 }
614 fra.me.REG[3] = CALL_syntax_base___AClassdef___next_node(fra.me.REG[2])(fra.me.REG[2]);
615 fra.me.REG[2] = fra.me.REG[3];
616 } else {
617 /* ./syntax//mmbuilder.nit:161 */
618 goto label1;
619 }
620 }
621 label1: while(0);
622 /* ./syntax//mmbuilder.nit:166 */
623 fra.me.REG[0] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
624 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_mmbuilder___MMSrcLocalClass___accept_properties_visitor_2));
625 stack_frame_head = fra.me.prev;
626 return;
627 }
628 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){
629 struct {struct stack_frame_t me;} fra;
630 fun_t CREG[1];
631 val_t tmp;
632 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
633 fra.me.file = LOCATE_mmbuilder;
634 fra.me.line = 0;
635 fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___accept_properties_visitor;
636 fra.me.has_broke = 0;
637 fra.me.REG_size = 1;
638 fra.me.REG[0] = NIT_NULL;
639 fra.me.closure_ctx = closctx_param;
640 fra.me.closure_funs = CREG;
641 fra.me.REG[0] = p0;
642 CREG[0] = clos_fun0;
643 /* ./syntax//mmbuilder.nit:167 */
644 CALL_mmbuilder___MMLocalProperty___accept_property_visitor(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
645 stack_frame_head = fra.me.prev;
646 return;
647 }
648 void mmbuilder___MMSrcLocalClass___process_default_constructors(val_t p0, val_t p1){
649 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
650 val_t REGB0;
651 val_t REGB1;
652 val_t REGB2;
653 val_t tmp;
654 static val_t once_value_7; /* Once value */
655 static val_t once_value_8; /* Once value */
656 static val_t once_value_13; /* Once value */
657 static val_t once_value_14; /* Once value */
658 static val_t once_value_15; /* Once value */
659 static val_t once_value_16; /* Once value */
660 static val_t once_value_17; /* Once value */
661 static val_t once_value_18; /* Once value */
662 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
663 fra.me.file = LOCATE_mmbuilder;
664 fra.me.line = 171;
665 fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___process_default_constructors;
666 fra.me.has_broke = 0;
667 fra.me.REG_size = 10;
668 fra.me.REG[0] = NIT_NULL;
669 fra.me.REG[1] = NIT_NULL;
670 fra.me.REG[2] = NIT_NULL;
671 fra.me.REG[3] = NIT_NULL;
672 fra.me.REG[4] = NIT_NULL;
673 fra.me.REG[5] = NIT_NULL;
674 fra.me.REG[6] = NIT_NULL;
675 fra.me.REG[7] = NIT_NULL;
676 fra.me.REG[8] = NIT_NULL;
677 fra.me.REG[9] = NIT_NULL;
678 fra.me.REG[0] = p0;
679 fra.me.REG[1] = p1;
680 /* ./syntax//mmbuilder.nit:175 */
681 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[0])(fra.me.REG[0]);
682 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_mmbuilder___MMSrcLocalClass___process_default_constructors_1));
683 switch ((&(fra.me))->has_broke) {
684 case 0: break;
685 case 1: (&(fra.me))->has_broke = 0; goto label3;
686 }
687 /* ./syntax//mmbuilder.nit:183 */
688 fra.me.REG[2] = NEW_ArraySet_array___ArraySet___init();
689 /* ./syntax//mmbuilder.nit:184 */
690 fra.me.REG[3] = NEW_ArraySet_array___ArraySet___init();
691 /* ./syntax//mmbuilder.nit:185 */
692 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___che(fra.me.REG[0])(fra.me.REG[0]);
693 fra.me.REG[4] = CALL_partial_order___PartialOrderElement___direct_greaters(fra.me.REG[4])(fra.me.REG[4]);
694 /* ./../lib/standard//collection//array.nit:234 */
695 REGB0 = TAG_Int(0);
696 /* ./../lib/standard//collection//array.nit:235 */
697 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
698 if (UNTAG_Bool(REGB1)) {
699 } else {
700 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
701 }
702 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
703 /* ./../lib/standard//collection//array.nit:236 */
704 fra.me.REG[5] = ATTR_array___Array____items(fra.me.REG[4]);
705 /* ./../lib/standard//collection//array.nit:237 */
706 while(1) {
707 /* ./../lib/standard//collection//array.nit:23 */
708 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
709 if (UNTAG_Bool(REGB1)) {
710 } else {
711 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
712 }
713 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
714 /* ./../lib/standard//kernel.nit:212 */
715 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
716 /* ./../lib/standard//collection//array.nit:237 */
717 if (UNTAG_Bool(REGB1)) {
718 /* ./../lib/standard//collection//array.nit:238 */
719 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
720 if (UNTAG_Bool(REGB1)) {
721 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
722 }
723 /* ./../lib/standard//collection//array.nit:654 */
724 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
725 /* ./syntax//mmbuilder.nit:186 */
726 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
727 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[7])(fra.me.REG[7]);
728 if (UNTAG_Bool(REGB1)) {
729 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
730 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[7])(fra.me.REG[7]);
731 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
732 } else {
733 REGB2 = TAG_Bool(false);
734 REGB1 = REGB2;
735 }
736 if (UNTAG_Bool(REGB1)) {
737 REGB1 = TAG_Bool(true);
738 } else {
739 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
740 REGB2 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[7])(fra.me.REG[7]);
741 REGB1 = REGB2;
742 }
743 if (UNTAG_Bool(REGB1)) {
744 goto label4;
745 }
746 /* ./syntax//mmbuilder.nit:187 */
747 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[6])(fra.me.REG[6]);
748 CALL_abstract_collection___Collection___iterate(fra.me.REG[7])(fra.me.REG[7], (&(fra.me)), ((fun_t)OC_mmbuilder___MMSrcLocalClass___process_default_constructors_5));
749 /* ./syntax//mmbuilder.nit:191 */
750 if (!once_value_7) {
751 if (!once_value_8) {
752 fra.me.REG[7] = BOX_NativeString("init");
753 REGB1 = TAG_Int(4);
754 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
755 once_value_8 = fra.me.REG[7];
756 register_static_object(&once_value_8);
757 } else fra.me.REG[7] = once_value_8;
758 fra.me.REG[7] = fra.me.REG[7];
759 fra.me.REG[7] = CALL_symbol___String___to_symbol(fra.me.REG[7])(fra.me.REG[7]);
760 once_value_7 = fra.me.REG[7];
761 register_static_object(&once_value_7);
762 } else fra.me.REG[7] = once_value_7;
763 fra.me.REG[7] = fra.me.REG[7];
764 /* ./syntax//mmbuilder.nit:192 */
765 REGB1 = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
766 if (UNTAG_Bool(REGB1)) {
767 /* ./syntax//mmbuilder.nit:193 */
768 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
769 /* ./syntax//mmbuilder.nit:194 */
770 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7]);
771 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
772 }
773 label4: while(0);
774 /* ./../lib/standard//collection//array.nit:239 */
775 REGB1 = TAG_Int(1);
776 /* ./../lib/standard//kernel.nit:215 */
777 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
778 /* ./../lib/standard//collection//array.nit:239 */
779 REGB0 = REGB1;
780 } else {
781 /* ./../lib/standard//collection//array.nit:237 */
782 goto label9;
783 }
784 }
785 label9: while(0);
786 /* ./syntax//mmbuilder.nit:199 */
787 fra.me.REG[5] = NEW_Array_array___Array___init();
788 /* ./syntax//mmbuilder.nit:200 */
789 fra.me.REG[4] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
790 CALL_abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_mmbuilder___MMSrcLocalClass___process_default_constructors_10));
791 /* ./syntax//mmbuilder.nit:207 */
792 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
793 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
794 if (UNTAG_Bool(REGB0)) {
795 /* ./syntax//mmbuilder.nit:210 */
796 fra.me.REG[4] = NEW_Array_array___Array___init();
797 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_mmbuilder___MMSrcLocalClass___process_default_constructors_11));
798 /* ./syntax//mmbuilder.nit:218 */
799 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___che(fra.me.REG[0])(fra.me.REG[0]);
800 fra.me.REG[7] = CALL_partial_order___PartialOrderElement___order(fra.me.REG[7])(fra.me.REG[7]);
801 fra.me.REG[7] = CALL_partial_order___PartialOrder___select_smallests(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[4]);
802 fra.me.REG[4] = fra.me.REG[7];
803 /* ./syntax//mmbuilder.nit:221 */
804 fra.me.REG[7] = NIT_NULL;
805 /* ./../lib/standard//collection//array.nit:23 */
806 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
807 if (UNTAG_Bool(REGB0)) {
808 } else {
809 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
810 }
811 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
812 /* ./syntax//mmbuilder.nit:223 */
813 REGB1 = TAG_Int(1);
814 /* ./../lib/standard//kernel.nit:214 */
815 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
816 /* ./syntax//mmbuilder.nit:223 */
817 if (UNTAG_Bool(REGB1)) {
818 /* ./syntax//mmbuilder.nit:224 */
819 fra.me.REG[6] = CALL_syntax_base___MMSrcLocalClass___node(fra.me.REG[0])(fra.me.REG[0]);
820 REGB1 = TAG_Int(7);
821 fra.me.REG[8] = NEW_Array_array___Array___with_capacity(REGB1);
822 if (!once_value_13) {
823 fra.me.REG[9] = BOX_NativeString("Error: Explicit constructor required in ");
824 REGB1 = TAG_Int(40);
825 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1);
826 once_value_13 = fra.me.REG[9];
827 register_static_object(&once_value_13);
828 } else fra.me.REG[9] = once_value_13;
829 fra.me.REG[9] = fra.me.REG[9];
830 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
831 fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
832 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
833 if (!once_value_14) {
834 fra.me.REG[9] = BOX_NativeString(" since multiple inheritance of constructor is forbiden. Conflicting classes are ");
835 REGB1 = TAG_Int(80);
836 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1);
837 once_value_14 = fra.me.REG[9];
838 register_static_object(&once_value_14);
839 } else fra.me.REG[9] = once_value_14;
840 fra.me.REG[9] = fra.me.REG[9];
841 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
842 if (!once_value_15) {
843 fra.me.REG[9] = BOX_NativeString(", ");
844 REGB1 = TAG_Int(2);
845 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1);
846 once_value_15 = fra.me.REG[9];
847 register_static_object(&once_value_15);
848 } else fra.me.REG[9] = once_value_15;
849 fra.me.REG[9] = fra.me.REG[9];
850 fra.me.REG[9] = CALL_string___Collection___join(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9]);
851 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
852 if (!once_value_16) {
853 fra.me.REG[9] = BOX_NativeString(". Costructors are ");
854 REGB1 = TAG_Int(18);
855 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1);
856 once_value_16 = fra.me.REG[9];
857 register_static_object(&once_value_16);
858 } else fra.me.REG[9] = once_value_16;
859 fra.me.REG[9] = fra.me.REG[9];
860 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
861 if (!once_value_17) {
862 fra.me.REG[9] = BOX_NativeString(", ");
863 REGB1 = TAG_Int(2);
864 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1);
865 once_value_17 = fra.me.REG[9];
866 register_static_object(&once_value_17);
867 } else fra.me.REG[9] = once_value_17;
868 fra.me.REG[9] = fra.me.REG[9];
869 fra.me.REG[9] = CALL_string___Collection___join(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[9]);
870 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
871 if (!once_value_18) {
872 fra.me.REG[9] = BOX_NativeString(".");
873 REGB1 = TAG_Int(1);
874 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1);
875 once_value_18 = fra.me.REG[9];
876 register_static_object(&once_value_18);
877 } else fra.me.REG[9] = once_value_18;
878 fra.me.REG[9] = fra.me.REG[9];
879 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
880 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
881 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6], fra.me.REG[8]);
882 /* ./syntax//mmbuilder.nit:225 */
883 goto label3;
884 } else {
885 /* ./../lib/standard//collection//array.nit:23 */
886 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
887 if (UNTAG_Bool(REGB1)) {
888 } else {
889 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
890 }
891 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
892 /* ./syntax//mmbuilder.nit:226 */
893 REGB0 = TAG_Int(1);
894 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0));
895 if (UNTAG_Bool(REGB2)) {
896 } else {
897 /* ./../lib/standard//kernel.nit:207 */
898 REGB0 = TAG_Bool((REGB1)==(REGB0));
899 /* ./syntax//mmbuilder.nit:226 */
900 REGB2 = REGB0;
901 }
902 if (UNTAG_Bool(REGB2)) {
903 /* ./syntax//mmbuilder.nit:227 */
904 fra.me.REG[4] = CALL_abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
905 fra.me.REG[7] = fra.me.REG[4];
906 }
907 }
908 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_mmbuilder___MMSrcLocalClass___process_default_constructors_19));
909 /* ./syntax//mmbuilder.nit:236 */
910 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
911 REGB2 = TAG_Bool(fra.me.REG[7]!=NIT_NULL);
912 if (UNTAG_Bool(REGB2)) {
913 } else {
914 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 236);
915 }
916 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
917 if (UNTAG_Bool(REGB2)) {
918 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 236);
919 }
920 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
921 CALL_abstractmetamodel___MMGlobalClass___mixin_of__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
922 } else {
923 /* ./syntax//mmbuilder.nit:241 */
924 fra.me.REG[2] = CALL_array___Collection___to_a(fra.me.REG[2])(fra.me.REG[2]);
925 fra.me.REG[2] = NEW_MMImplicitInit_syntax_base___MMImplicitInit___init(fra.me.REG[0], fra.me.REG[5], fra.me.REG[2]);
926 /* ./syntax//mmbuilder.nit:242 */
927 CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
928 }
929 label3: while(0);
930 stack_frame_head = fra.me.prev;
931 return;
932 }
933 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){
934 struct {struct stack_frame_t me;} fra;
935 val_t REGB0;
936 val_t REGB1;
937 fun_t CREG[1];
938 val_t tmp;
939 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
940 fra.me.file = LOCATE_mmbuilder;
941 fra.me.line = 0;
942 fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___process_default_constructors;
943 fra.me.has_broke = 0;
944 fra.me.REG_size = 1;
945 fra.me.REG[0] = NIT_NULL;
946 fra.me.closure_ctx = closctx_param;
947 fra.me.closure_funs = CREG;
948 fra.me.REG[0] = p0;
949 CREG[0] = clos_fun0;
950 /* ./syntax//mmbuilder.nit:176 */
951 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
952 if (UNTAG_Bool(REGB0)) {
953 /* ./syntax//mmbuilder.nit:178 */
954 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
955 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
956 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],closctx->REG[0]));
957 if (UNTAG_Bool(REGB0)) {
958 } else {
959 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
960 REGB0 = REGB1;
961 }
962 if (UNTAG_Bool(REGB0)) {
963 closctx->has_broke = 1;
964 goto label2;
965 }
966 }
967 label2: while(0);
968 stack_frame_head = fra.me.prev;
969 return;
970 }
971 void OC_mmbuilder___MMSrcLocalClass___process_default_constructors_5(struct stack_frame_t *closctx, val_t p0){
972 struct {struct stack_frame_t me;} fra;
973 val_t REGB0;
974 val_t tmp;
975 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
976 fra.me.file = LOCATE_mmbuilder;
977 fra.me.line = 0;
978 fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___process_default_constructors;
979 fra.me.has_broke = 0;
980 fra.me.REG_size = 1;
981 fra.me.REG[0] = NIT_NULL;
982 fra.me.REG[0] = p0;
983 /* ./syntax//mmbuilder.nit:188 */
984 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
985 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
986 if (UNTAG_Bool(REGB0)) {
987 goto label6;
988 }
989 /* ./syntax//mmbuilder.nit:189 */
990 CALL_abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[0]);
991 label6: while(0);
992 stack_frame_head = fra.me.prev;
993 return;
994 }
995 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){
996 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
997 val_t REGB0;
998 val_t REGB1;
999 fun_t CREG[1];
1000 val_t tmp;
1001 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1002 fra.me.file = LOCATE_mmbuilder;
1003 fra.me.line = 0;
1004 fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___process_default_constructors;
1005 fra.me.has_broke = 0;
1006 fra.me.REG_size = 2;
1007 fra.me.REG[0] = NIT_NULL;
1008 fra.me.REG[1] = NIT_NULL;
1009 fra.me.closure_ctx = closctx_param;
1010 fra.me.closure_funs = CREG;
1011 fra.me.REG[0] = p0;
1012 CREG[0] = clos_fun0;
1013 /* ./syntax//mmbuilder.nit:201 */
1014 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_MMSrcAttribute, ID_MMSrcAttribute)) /*cast MMSrcAttribute*/;
1015 if (UNTAG_Bool(REGB0)) {
1016 /* ./syntax//mmbuilder.nit:202 */
1017 fra.me.REG[1] = CALL_syntax_base___MMLocalProperty___node(fra.me.REG[0])(fra.me.REG[0]);
1018 /* ./syntax//mmbuilder.nit:203 */
1019 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1020 if (UNTAG_Bool(REGB0)) {
1021 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 203);
1022 }
1023 fra.me.REG[1] = CALL_parser_nodes___AAttrPropdef___n_expr(fra.me.REG[1])(fra.me.REG[1]);
1024 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1025 if (UNTAG_Bool(REGB0)) {
1026 } else {
1027 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1028 if (UNTAG_Bool(REGB1)) {
1029 REGB1 = TAG_Bool(false);
1030 REGB0 = REGB1;
1031 } else {
1032 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
1033 REGB0 = REGB1;
1034 }
1035 }
1036 if (UNTAG_Bool(REGB0)) {
1037 CALL_abstract_collection___SimpleCollection___add(closctx->REG[5])(closctx->REG[5], fra.me.REG[0]);
1038 }
1039 }
1040 stack_frame_head = fra.me.prev;
1041 return;
1042 }
1043 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){
1044 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1045 val_t REGB0;
1046 fun_t CREG[1];
1047 val_t tmp;
1048 /* ./syntax//mmbuilder.nit:211 */
1049 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1050 fra.me.file = LOCATE_mmbuilder;
1051 fra.me.line = 0;
1052 fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___process_default_constructors;
1053 fra.me.has_broke = 0;
1054 fra.me.REG_size = 2;
1055 fra.me.REG[0] = NIT_NULL;
1056 fra.me.REG[1] = NIT_NULL;
1057 fra.me.closure_ctx = closctx_param;
1058 fra.me.closure_funs = CREG;
1059 fra.me.REG[0] = p0;
1060 CREG[0] = clos_fun0;
1061 /* ./syntax//mmbuilder.nit:212 */
1062 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1063 /* ./syntax//mmbuilder.nit:213 */
1064 REGB0 = CALL_abstract_collection___Collection___has(closctx->REG[4])(closctx->REG[4], fra.me.REG[0]);
1065 if (UNTAG_Bool(REGB0)) {
1066 goto label12;
1067 }
1068 /* ./syntax//mmbuilder.nit:214 */
1069 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
1070 REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_mixin(fra.me.REG[1])(fra.me.REG[1]);
1071 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1072 if (UNTAG_Bool(REGB0)) {
1073 /* ./syntax//mmbuilder.nit:215 */
1074 CALL_abstract_collection___SimpleCollection___add(closctx->REG[4])(closctx->REG[4], fra.me.REG[0]);
1075 }
1076 label12: while(0);
1077 stack_frame_head = fra.me.prev;
1078 return;
1079 }
1080 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){
1081 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1082 val_t REGB0;
1083 val_t REGB1;
1084 val_t REGB2;
1085 fun_t CREG[1];
1086 val_t tmp;
1087 /* ./syntax//mmbuilder.nit:230 */
1088 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1089 fra.me.file = LOCATE_mmbuilder;
1090 fra.me.line = 0;
1091 fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___process_default_constructors;
1092 fra.me.has_broke = 0;
1093 fra.me.REG_size = 2;
1094 fra.me.REG[0] = NIT_NULL;
1095 fra.me.REG[1] = NIT_NULL;
1096 fra.me.closure_ctx = closctx_param;
1097 fra.me.closure_funs = CREG;
1098 fra.me.REG[0] = p0;
1099 CREG[0] = clos_fun0;
1100 /* ./syntax//mmbuilder.nit:232 */
1101 REGB0 = TAG_Bool(closctx->REG[7]==NIT_NULL);
1102 if (UNTAG_Bool(REGB0)) {
1103 } else {
1104 REGB1 = TAG_Bool(closctx->REG[7]==NIT_NULL);
1105 if (UNTAG_Bool(REGB1)) {
1106 REGB1 = TAG_Bool(false);
1107 REGB0 = REGB1;
1108 } else {
1109 REGB1 = CALL_kernel___Object_____eqeq(closctx->REG[7])(closctx->REG[7], NIT_NULL);
1110 REGB0 = REGB1;
1111 }
1112 }
1113 if (UNTAG_Bool(REGB0)) {
1114 REGB0 = TAG_Bool(true);
1115 } else {
1116 fra.me.REG[1] = CALL_abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1117 REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],closctx->REG[7]));
1118 if (UNTAG_Bool(REGB1)) {
1119 } else {
1120 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], closctx->REG[7]);
1121 REGB1 = REGB2;
1122 }
1123 REGB0 = REGB1;
1124 }
1125 if (UNTAG_Bool(REGB0)) {
1126 /* ./syntax//mmbuilder.nit:233 */
1127 CALL_inheritance___MMLocalClass___make_visible_an_inherited_global_property(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
1128 }
1129 stack_frame_head = fra.me.prev;
1130 return;
1131 }
1132 void mmbuilder___MMSrcLocalClass___add_src_local_property(val_t p0, val_t p1, val_t p2){
1133 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
1134 val_t REGB0;
1135 val_t tmp;
1136 static val_t once_value_1; /* Once value */
1137 static val_t once_value_2; /* Once value */
1138 static val_t once_value_3; /* Once value */
1139 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1140 fra.me.file = LOCATE_mmbuilder;
1141 fra.me.line = 247;
1142 fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___add_src_local_property;
1143 fra.me.has_broke = 0;
1144 fra.me.REG_size = 7;
1145 fra.me.REG[0] = NIT_NULL;
1146 fra.me.REG[1] = NIT_NULL;
1147 fra.me.REG[2] = NIT_NULL;
1148 fra.me.REG[3] = NIT_NULL;
1149 fra.me.REG[4] = NIT_NULL;
1150 fra.me.REG[5] = NIT_NULL;
1151 fra.me.REG[6] = NIT_NULL;
1152 fra.me.REG[0] = p0;
1153 fra.me.REG[1] = p1;
1154 fra.me.REG[2] = p2;
1155 /* ./syntax//mmbuilder.nit:251 */
1156 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
1157 /* ./syntax//mmbuilder.nit:253 */
1158 fra.me.REG[4] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
1159 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1160 if (UNTAG_Bool(REGB0)) {
1161 /* ./syntax//mmbuilder.nit:254 */
1162 fra.me.REG[4] = CALL_syntax_base___MMLocalProperty___node(fra.me.REG[2])(fra.me.REG[2]);
1163 REGB0 = TAG_Int(5);
1164 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
1165 if (!once_value_1) {
1166 fra.me.REG[6] = BOX_NativeString("Error: A property ");
1167 REGB0 = TAG_Int(18);
1168 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
1169 once_value_1 = fra.me.REG[6];
1170 register_static_object(&once_value_1);
1171 } else fra.me.REG[6] = once_value_1;
1172 fra.me.REG[6] = fra.me.REG[6];
1173 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1174 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1175 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1176 if (!once_value_2) {
1177 fra.me.REG[6] = BOX_NativeString(" is already defined in class ");
1178 REGB0 = TAG_Int(29);
1179 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
1180 once_value_2 = fra.me.REG[6];
1181 register_static_object(&once_value_2);
1182 } else fra.me.REG[6] = once_value_2;
1183 fra.me.REG[6] = fra.me.REG[6];
1184 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1185 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
1186 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
1187 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1188 if (!once_value_3) {
1189 fra.me.REG[6] = BOX_NativeString(".");
1190 REGB0 = TAG_Int(1);
1191 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
1192 once_value_3 = fra.me.REG[6];
1193 register_static_object(&once_value_3);
1194 } else fra.me.REG[6] = once_value_3;
1195 fra.me.REG[6] = fra.me.REG[6];
1196 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1197 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
1198 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[5]);
1199 /* ./syntax//mmbuilder.nit:255 */
1200 goto label4;
1201 }
1202 /* ./syntax//mmbuilder.nit:257 */
1203 fra.me.REG[5] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
1204 CALL_abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[2]);
1205 /* ./syntax//mmbuilder.nit:260 */
1206 REGB0 = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
1207 if (UNTAG_Bool(REGB0)) {
1208 /* ./syntax//mmbuilder.nit:261 */
1209 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
1210 /* ./syntax//mmbuilder.nit:262 */
1211 CALL_inheritance___MMLocalProperty___inherit_global(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1212 }
1213 /* ./syntax//mmbuilder.nit:265 */
1214 REGB0 = CALL_abstractmetamodel___MMLocalProperty___is_global_set(fra.me.REG[2])(fra.me.REG[2]);
1215 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1216 if (UNTAG_Bool(REGB0)) {
1217 /* ./syntax//mmbuilder.nit:266 */
1218 CALL_abstractmetamodel___MMLocalProperty___new_global(fra.me.REG[2])(fra.me.REG[2]);
1219 /* ./syntax//mmbuilder.nit:267 */
1220 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
1221 REGB0 = CALL_syntax_base___MMLocalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
1222 CALL_abstractmetamodel___MMGlobalProperty___is_init__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
1223 }
1224 label4: while(0);
1225 stack_frame_head = fra.me.prev;
1226 return;
1227 }
1228 void mmbuilder___MMLocalProperty___accept_property_visitor(val_t p0, val_t p1){
1229 struct {struct stack_frame_t me; val_t MORE_REG[1];} 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 = 273;
1234 fra.me.meth = LOCATE_mmbuilder___MMLocalProperty___accept_property_visitor;
1235 fra.me.has_broke = 0;
1236 fra.me.REG_size = 2;
1237 fra.me.REG[0] = NIT_NULL;
1238 fra.me.REG[1] = NIT_NULL;
1239 fra.me.REG[0] = p0;
1240 fra.me.REG[1] = p1;
1241 stack_frame_head = fra.me.prev;
1242 return;
1243 }
1244 val_t mmbuilder___MMImplicitInit___super_init(val_t p0){
1245 struct {struct stack_frame_t me;} fra;
1246 val_t tmp;
1247 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1248 fra.me.file = LOCATE_mmbuilder;
1249 fra.me.line = 279;
1250 fra.me.meth = LOCATE_mmbuilder___MMImplicitInit___super_init;
1251 fra.me.has_broke = 0;
1252 fra.me.REG_size = 1;
1253 fra.me.REG[0] = NIT_NULL;
1254 fra.me.REG[0] = p0;
1255 /* ./syntax//mmbuilder.nit:279 */
1256 fra.me.REG[0] = ATTR_mmbuilder___MMImplicitInit____super_init(fra.me.REG[0]);
1257 stack_frame_head = fra.me.prev;
1258 return fra.me.REG[0];
1259 }
1260 void mmbuilder___MMImplicitInit___accept_property_visitor(val_t p0, val_t p1){
1261 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
1262 val_t REGB0;
1263 val_t REGB1;
1264 val_t REGB2;
1265 val_t REGB3;
1266 val_t REGB4;
1267 val_t tmp;
1268 static val_t once_value_1; /* Once value */
1269 static val_t once_value_2; /* Once value */
1270 static val_t once_value_3; /* Once value */
1271 static val_t once_value_4; /* Once value */
1272 static val_t once_value_9; /* Once value */
1273 static val_t once_value_10; /* Once value */
1274 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1275 fra.me.file = LOCATE_mmbuilder;
1276 fra.me.line = 280;
1277 fra.me.meth = LOCATE_mmbuilder___MMImplicitInit___accept_property_visitor;
1278 fra.me.has_broke = 0;
1279 fra.me.REG_size = 8;
1280 fra.me.REG[0] = NIT_NULL;
1281 fra.me.REG[1] = NIT_NULL;
1282 fra.me.REG[2] = NIT_NULL;
1283 fra.me.REG[3] = NIT_NULL;
1284 fra.me.REG[4] = NIT_NULL;
1285 fra.me.REG[5] = NIT_NULL;
1286 fra.me.REG[6] = NIT_NULL;
1287 fra.me.REG[7] = NIT_NULL;
1288 fra.me.REG[0] = p0;
1289 fra.me.REG[1] = p1;
1290 /* ./syntax//mmbuilder.nit:282 */
1291 fra.me.REG[2] = NIT_NULL;
1292 /* ./syntax//mmbuilder.nit:283 */
1293 fra.me.REG[3] = CALL_syntax_base___MMImplicitInit___super_inits(fra.me.REG[0])(fra.me.REG[0]);
1294 /* ./../lib/standard//collection//array.nit:234 */
1295 REGB0 = TAG_Int(0);
1296 /* ./../lib/standard//collection//array.nit:235 */
1297 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1298 if (UNTAG_Bool(REGB1)) {
1299 } else {
1300 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
1301 }
1302 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
1303 /* ./../lib/standard//collection//array.nit:236 */
1304 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[3]);
1305 /* ./../lib/standard//collection//array.nit:237 */
1306 while(1) {
1307 /* ./../lib/standard//collection//array.nit:23 */
1308 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1309 if (UNTAG_Bool(REGB1)) {
1310 } else {
1311 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
1312 }
1313 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
1314 /* ./../lib/standard//kernel.nit:212 */
1315 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1316 /* ./../lib/standard//collection//array.nit:237 */
1317 if (UNTAG_Bool(REGB1)) {
1318 /* ./../lib/standard//collection//array.nit:238 */
1319 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1320 if (UNTAG_Bool(REGB1)) {
1321 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
1322 }
1323 /* ./../lib/standard//collection//array.nit:654 */
1324 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
1325 /* ./syntax//mmbuilder.nit:284 */
1326 fra.me.REG[6] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[5])(fra.me.REG[5]);
1327 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
1328 if (UNTAG_Bool(REGB1)) {
1329 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 284);
1330 }
1331 REGB1 = CALL_static_type___MMSignature___arity(fra.me.REG[6])(fra.me.REG[6]);
1332 REGB2 = TAG_Int(0);
1333 /* ./../lib/standard//kernel.nit:214 */
1334 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
1335 /* ./syntax//mmbuilder.nit:284 */
1336 if (UNTAG_Bool(REGB2)) {
1337 /* ./syntax//mmbuilder.nit:285 */
1338 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1339 if (UNTAG_Bool(REGB2)) {
1340 } else {
1341 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1342 if (UNTAG_Bool(REGB1)) {
1343 REGB1 = TAG_Bool(false);
1344 REGB2 = REGB1;
1345 } else {
1346 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1347 REGB2 = REGB1;
1348 }
1349 }
1350 if (UNTAG_Bool(REGB2)) {
1351 /* ./syntax//mmbuilder.nit:286 */
1352 fra.me.REG[2] = fra.me.REG[5];
1353 } else {
1354 /* ./syntax//mmbuilder.nit:288 */
1355 REGB2 = TAG_Int(7);
1356 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB2);
1357 if (!once_value_1) {
1358 fra.me.REG[7] = BOX_NativeString("Error: explicit constructor needed in ");
1359 REGB2 = TAG_Int(38);
1360 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
1361 once_value_1 = fra.me.REG[7];
1362 register_static_object(&once_value_1);
1363 } else fra.me.REG[7] = once_value_1;
1364 fra.me.REG[7] = fra.me.REG[7];
1365 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
1366 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1367 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
1368 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
1369 if (!once_value_2) {
1370 fra.me.REG[7] = BOX_NativeString(" since both super-constructor ");
1371 REGB2 = TAG_Int(30);
1372 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
1373 once_value_2 = fra.me.REG[7];
1374 register_static_object(&once_value_2);
1375 } else fra.me.REG[7] = once_value_2;
1376 fra.me.REG[7] = fra.me.REG[7];
1377 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
1378 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1379 if (UNTAG_Bool(REGB2)) {
1380 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 288);
1381 }
1382 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[2])(fra.me.REG[2]);
1383 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
1384 if (!once_value_3) {
1385 fra.me.REG[7] = BOX_NativeString(" and ");
1386 REGB2 = TAG_Int(5);
1387 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
1388 once_value_3 = fra.me.REG[7];
1389 register_static_object(&once_value_3);
1390 } else fra.me.REG[7] = once_value_3;
1391 fra.me.REG[7] = fra.me.REG[7];
1392 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
1393 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[5])(fra.me.REG[5]);
1394 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
1395 if (!once_value_4) {
1396 fra.me.REG[5] = BOX_NativeString(" have paramters");
1397 REGB2 = TAG_Int(15);
1398 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
1399 once_value_4 = fra.me.REG[5];
1400 register_static_object(&once_value_4);
1401 } else fra.me.REG[5] = once_value_4;
1402 fra.me.REG[5] = fra.me.REG[5];
1403 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
1404 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
1405 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[6]);
1406 /* ./syntax//mmbuilder.nit:289 */
1407 goto label5;
1408 }
1409 }
1410 /* ./../lib/standard//collection//array.nit:239 */
1411 REGB2 = TAG_Int(1);
1412 /* ./../lib/standard//kernel.nit:215 */
1413 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1414 /* ./../lib/standard//collection//array.nit:239 */
1415 REGB0 = REGB2;
1416 } else {
1417 /* ./../lib/standard//collection//array.nit:237 */
1418 goto label6;
1419 }
1420 }
1421 label6: while(0);
1422 /* ./syntax//mmbuilder.nit:293 */
1423 ATTR_mmbuilder___MMImplicitInit____super_init(fra.me.REG[0]) = fra.me.REG[2];
1424 /* ./syntax//mmbuilder.nit:295 */
1425 fra.me.REG[1] = NEW_Array_array___Array___init();
1426 /* ./syntax//mmbuilder.nit:296 */
1427 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1428 if (UNTAG_Bool(REGB0)) {
1429 } else {
1430 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1431 if (UNTAG_Bool(REGB2)) {
1432 REGB2 = TAG_Bool(false);
1433 REGB0 = REGB2;
1434 } else {
1435 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1436 REGB0 = REGB2;
1437 }
1438 }
1439 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1440 if (UNTAG_Bool(REGB0)) {
1441 /* ./syntax//mmbuilder.nit:297 */
1442 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1443 if (UNTAG_Bool(REGB0)) {
1444 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 297);
1445 }
1446 fra.me.REG[2] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
1447 /* ./syntax//mmbuilder.nit:298 */
1448 REGB0 = TAG_Int(0);
1449 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1450 if (UNTAG_Bool(REGB2)) {
1451 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 298);
1452 }
1453 REGB2 = CALL_static_type___MMSignature___arity(fra.me.REG[2])(fra.me.REG[2]);
1454 /* ./../lib/standard//kernel.nit:332 */
1455 while(1) {
1456 /* ./../lib/standard//kernel.nit:212 */
1457 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
1458 /* ./../lib/standard//kernel.nit:332 */
1459 if (UNTAG_Bool(REGB1)) {
1460 /* ./syntax//mmbuilder.nit:298 */
1461 REGB1 = REGB0;
1462 /* ./syntax//mmbuilder.nit:299 */
1463 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1464 if (UNTAG_Bool(REGB3)) {
1465 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 299);
1466 }
1467 fra.me.REG[4] = CALL_static_type___MMSignature___params(fra.me.REG[2])(fra.me.REG[2]);
1468 /* ./../lib/standard//collection//array.nit:245 */
1469 REGB3 = TAG_Int(0);
1470 /* ./../lib/standard//kernel.nit:213 */
1471 REGB3 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB3));
1472 /* ./../lib/standard//collection//array.nit:245 */
1473 if (UNTAG_Bool(REGB3)) {
1474 REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
1475 if (UNTAG_Bool(REGB3)) {
1476 } else {
1477 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
1478 }
1479 REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
1480 /* ./../lib/standard//kernel.nit:212 */
1481 REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB3));
1482 } else {
1483 /* ./../lib/standard//collection//array.nit:245 */
1484 REGB4 = TAG_Bool(false);
1485 REGB3 = REGB4;
1486 }
1487 if (UNTAG_Bool(REGB3)) {
1488 } else {
1489 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
1490 }
1491 /* ./../lib/standard//collection//array.nit:246 */
1492 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[4]);
1493 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1494 if (UNTAG_Bool(REGB3)) {
1495 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
1496 }
1497 /* ./../lib/standard//collection//array.nit:654 */
1498 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB1)];
1499 /* ./../lib/standard//collection//array.nit:246 */
1500 goto label7;
1501 label7: while(0);
1502 /* ./syntax//mmbuilder.nit:299 */
1503 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
1504 /* ./../lib/standard//kernel.nit:334 */
1505 REGB1 = TAG_Int(1);
1506 /* ./../lib/standard//kernel.nit:215 */
1507 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1508 /* ./../lib/standard//kernel.nit:334 */
1509 REGB0 = REGB1;
1510 } else {
1511 /* ./../lib/standard//kernel.nit:332 */
1512 goto label8;
1513 }
1514 }
1515 label8: while(0);
1516 }
1517 /* ./syntax//mmbuilder.nit:302 */
1518 fra.me.REG[2] = CALL_syntax_base___MMImplicitInit___unassigned_attributes(fra.me.REG[0])(fra.me.REG[0]);
1519 /* ./../lib/standard//collection//array.nit:234 */
1520 REGB0 = TAG_Int(0);
1521 /* ./../lib/standard//collection//array.nit:235 */
1522 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1523 if (UNTAG_Bool(REGB2)) {
1524 } else {
1525 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
1526 }
1527 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
1528 /* ./../lib/standard//collection//array.nit:236 */
1529 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[2]);
1530 /* ./../lib/standard//collection//array.nit:237 */
1531 while(1) {
1532 /* ./../lib/standard//collection//array.nit:23 */
1533 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1534 if (UNTAG_Bool(REGB2)) {
1535 } else {
1536 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
1537 }
1538 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
1539 /* ./../lib/standard//kernel.nit:212 */
1540 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
1541 /* ./../lib/standard//collection//array.nit:237 */
1542 if (UNTAG_Bool(REGB2)) {
1543 /* ./../lib/standard//collection//array.nit:238 */
1544 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1545 if (UNTAG_Bool(REGB2)) {
1546 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
1547 }
1548 /* ./../lib/standard//collection//array.nit:654 */
1549 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
1550 /* ./syntax//mmbuilder.nit:303 */
1551 fra.me.REG[3] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[3])(fra.me.REG[3]);
1552 /* ./syntax//mmbuilder.nit:304 */
1553 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1554 if (UNTAG_Bool(REGB2)) {
1555 } else {
1556 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1557 if (UNTAG_Bool(REGB1)) {
1558 REGB1 = TAG_Bool(false);
1559 REGB2 = REGB1;
1560 } else {
1561 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1562 REGB2 = REGB1;
1563 }
1564 }
1565 if (UNTAG_Bool(REGB2)) {
1566 goto label5;
1567 }
1568 /* ./syntax//mmbuilder.nit:305 */
1569 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1570 if (UNTAG_Bool(REGB2)) {
1571 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 305);
1572 }
1573 fra.me.REG[3] = CALL_static_type___MMSignature___return_type(fra.me.REG[3])(fra.me.REG[3]);
1574 REGB2 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_MMType, ID_MMType)) /*cast MMType*/;
1575 if (UNTAG_Bool(REGB2)) {
1576 } else {
1577 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 305);
1578 }
1579 if (!once_value_9) {
1580 if (!once_value_10) {
1581 fra.me.REG[6] = BOX_NativeString("recv");
1582 REGB2 = TAG_Int(4);
1583 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2);
1584 once_value_10 = fra.me.REG[6];
1585 register_static_object(&once_value_10);
1586 } else fra.me.REG[6] = once_value_10;
1587 fra.me.REG[6] = fra.me.REG[6];
1588 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
1589 once_value_9 = fra.me.REG[6];
1590 register_static_object(&once_value_9);
1591 } else fra.me.REG[6] = once_value_9;
1592 fra.me.REG[6] = fra.me.REG[6];
1593 fra.me.REG[6] = NEW_MMParam_static_type___MMParam___init(fra.me.REG[3], fra.me.REG[6]);
1594 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
1595 /* ./../lib/standard//collection//array.nit:239 */
1596 REGB2 = TAG_Int(1);
1597 /* ./../lib/standard//kernel.nit:215 */
1598 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1599 /* ./../lib/standard//collection//array.nit:239 */
1600 REGB0 = REGB2;
1601 } else {
1602 /* ./../lib/standard//collection//array.nit:237 */
1603 goto label11;
1604 }
1605 }
1606 label11: while(0);
1607 /* ./syntax//mmbuilder.nit:307 */
1608 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1609 fra.me.REG[4] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
1610 fra.me.REG[4] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[1], NIT_NULL, fra.me.REG[4]);
1611 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
1612 label5: while(0);
1613 stack_frame_head = fra.me.prev;
1614 return;
1615 }
1616 val_t mmbuilder___MMSrcAncestor___local_class(val_t p0){
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 = 315;
1623 fra.me.meth = LOCATE_mmbuilder___MMSrcAncestor___local_class;
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 /* ./syntax//mmbuilder.nit:315 */
1629 REGB0 = TAG_Bool(ATTR_mmbuilder___MMSrcAncestor____local_class(fra.me.REG[0])!=NIT_NULL);
1630 if (UNTAG_Bool(REGB0)) {
1631 } else {
1632 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_mmbuilder, 315);
1633 }
1634 fra.me.REG[0] = ATTR_mmbuilder___MMSrcAncestor____local_class(fra.me.REG[0]);
1635 stack_frame_head = fra.me.prev;
1636 return fra.me.REG[0];
1637 }
1638 void mmbuilder___MMSrcAncestor___init(val_t p0, val_t p1, int* init_table){
1639 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMSrcAncestor].i;
1640 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1641 val_t tmp;
1642 if (init_table[itpos1]) return;
1643 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1644 fra.me.file = LOCATE_mmbuilder;
1645 fra.me.line = 317;
1646 fra.me.meth = LOCATE_mmbuilder___MMSrcAncestor___init;
1647 fra.me.has_broke = 0;
1648 fra.me.REG_size = 3;
1649 fra.me.REG[0] = NIT_NULL;
1650 fra.me.REG[1] = NIT_NULL;
1651 fra.me.REG[2] = NIT_NULL;
1652 fra.me.REG[0] = p0;
1653 fra.me.REG[1] = p1;
1654 /* ./syntax//mmbuilder.nit:317 */
1655 fra.me.REG[2] = fra.me.REG[0];
1656 CALL_static_type___MMAncestor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
1657 /* ./syntax//mmbuilder.nit:319 */
1658 ATTR_mmbuilder___MMSrcAncestor____local_class(fra.me.REG[2]) = fra.me.REG[1];
1659 stack_frame_head = fra.me.prev;
1660 init_table[itpos1] = 1;
1661 return;
1662 }
1663 val_t mmbuilder___ClassBuilderVisitor___local_class_arity(val_t p0){
1664 struct {struct stack_frame_t me;} fra;
1665 val_t REGB0;
1666 val_t tmp;
1667 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1668 fra.me.file = LOCATE_mmbuilder;
1669 fra.me.line = 330;
1670 fra.me.meth = LOCATE_mmbuilder___ClassBuilderVisitor___local_class_arity;
1671 fra.me.has_broke = 0;
1672 fra.me.REG_size = 1;
1673 fra.me.REG[0] = NIT_NULL;
1674 fra.me.REG[0] = p0;
1675 /* ./syntax//mmbuilder.nit:330 */
1676 REGB0 = TAG_Bool(ATTR_mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0])!=NIT_NULL);
1677 if (UNTAG_Bool(REGB0)) {
1678 } else {
1679 nit_abort("Uninitialized attribute %s", "_local_class_arity", LOCATE_mmbuilder, 330);
1680 }
1681 REGB0 = ATTR_mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0]);
1682 stack_frame_head = fra.me.prev;
1683 return REGB0;
1684 }
1685 void mmbuilder___ClassBuilderVisitor___local_class_arity__eq(val_t p0, val_t p1){
1686 struct {struct stack_frame_t me;} fra;
1687 val_t REGB0;
1688 val_t tmp;
1689 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1690 fra.me.file = LOCATE_mmbuilder;
1691 fra.me.line = 330;
1692 fra.me.meth = LOCATE_mmbuilder___ClassBuilderVisitor___local_class_arity__eq;
1693 fra.me.has_broke = 0;
1694 fra.me.REG_size = 1;
1695 fra.me.REG[0] = NIT_NULL;
1696 fra.me.REG[0] = p0;
1697 REGB0 = p1;
1698 /* ./syntax//mmbuilder.nit:330 */
1699 ATTR_mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0]) = REGB0;
1700 stack_frame_head = fra.me.prev;
1701 return;
1702 }
1703 val_t mmbuilder___ClassBuilderVisitor___formals(val_t p0){
1704 struct {struct stack_frame_t me;} fra;
1705 val_t tmp;
1706 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1707 fra.me.file = LOCATE_mmbuilder;
1708 fra.me.line = 333;
1709 fra.me.meth = LOCATE_mmbuilder___ClassBuilderVisitor___formals;
1710 fra.me.has_broke = 0;
1711 fra.me.REG_size = 1;
1712 fra.me.REG[0] = NIT_NULL;
1713 fra.me.REG[0] = p0;
1714 /* ./syntax//mmbuilder.nit:333 */
1715 fra.me.REG[0] = ATTR_mmbuilder___ClassBuilderVisitor____formals(fra.me.REG[0]);
1716 stack_frame_head = fra.me.prev;
1717 return fra.me.REG[0];
1718 }
1719 void mmbuilder___ClassBuilderVisitor___formals__eq(val_t p0, val_t p1){
1720 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1721 val_t tmp;
1722 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1723 fra.me.file = LOCATE_mmbuilder;
1724 fra.me.line = 333;
1725 fra.me.meth = LOCATE_mmbuilder___ClassBuilderVisitor___formals__eq;
1726 fra.me.has_broke = 0;
1727 fra.me.REG_size = 2;
1728 fra.me.REG[0] = NIT_NULL;
1729 fra.me.REG[1] = NIT_NULL;
1730 fra.me.REG[0] = p0;
1731 fra.me.REG[1] = p1;
1732 /* ./syntax//mmbuilder.nit:333 */
1733 ATTR_mmbuilder___ClassBuilderVisitor____formals(fra.me.REG[0]) = fra.me.REG[1];
1734 stack_frame_head = fra.me.prev;
1735 return;
1736 }
1737 void mmbuilder___ClassBuilderVisitor___visit(val_t p0, val_t p1){
1738 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1739 val_t REGB0;
1740 val_t tmp;
1741 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1742 fra.me.file = LOCATE_mmbuilder;
1743 fra.me.line = 336;
1744 fra.me.meth = LOCATE_mmbuilder___ClassBuilderVisitor___visit;
1745 fra.me.has_broke = 0;
1746 fra.me.REG_size = 2;
1747 fra.me.REG[0] = NIT_NULL;
1748 fra.me.REG[1] = NIT_NULL;
1749 fra.me.REG[0] = p0;
1750 fra.me.REG[1] = p1;
1751 /* ./syntax//mmbuilder.nit:336 */
1752 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1753 if (UNTAG_Bool(REGB0)) {
1754 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 336);
1755 }
1756 CALL_mmbuilder___ANode___accept_class_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1757 stack_frame_head = fra.me.prev;
1758 return;
1759 }
1760 void mmbuilder___ClassBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
1761 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ClassBuilderVisitor].i;
1762 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1763 val_t tmp;
1764 if (init_table[itpos2]) return;
1765 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1766 fra.me.file = LOCATE_mmbuilder;
1767 fra.me.line = 337;
1768 fra.me.meth = LOCATE_mmbuilder___ClassBuilderVisitor___init;
1769 fra.me.has_broke = 0;
1770 fra.me.REG_size = 3;
1771 fra.me.REG[0] = NIT_NULL;
1772 fra.me.REG[1] = NIT_NULL;
1773 fra.me.REG[2] = NIT_NULL;
1774 fra.me.REG[0] = p0;
1775 fra.me.REG[1] = p1;
1776 fra.me.REG[2] = p2;
1777 /* ./syntax//mmbuilder.nit:337 */
1778 CALL_syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1779 stack_frame_head = fra.me.prev;
1780 init_table[itpos2] = 1;
1781 return;
1782 }
1783 void mmbuilder___ClassSpecializationBuilderVisitor___visit(val_t p0, val_t p1){
1784 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1785 val_t REGB0;
1786 val_t tmp;
1787 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1788 fra.me.file = LOCATE_mmbuilder;
1789 fra.me.line = 344;
1790 fra.me.meth = LOCATE_mmbuilder___ClassSpecializationBuilderVisitor___visit;
1791 fra.me.has_broke = 0;
1792 fra.me.REG_size = 2;
1793 fra.me.REG[0] = NIT_NULL;
1794 fra.me.REG[1] = NIT_NULL;
1795 fra.me.REG[0] = p0;
1796 fra.me.REG[1] = p1;
1797 /* ./syntax//mmbuilder.nit:344 */
1798 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1799 if (UNTAG_Bool(REGB0)) {
1800 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 344);
1801 }
1802 CALL_mmbuilder___ANode___accept_class_specialization_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1803 stack_frame_head = fra.me.prev;
1804 return;
1805 }
1806 void mmbuilder___ClassSpecializationBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
1807 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ClassSpecializationBuilderVisitor].i;
1808 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1809 val_t tmp;
1810 if (init_table[itpos3]) return;
1811 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1812 fra.me.file = LOCATE_mmbuilder;
1813 fra.me.line = 345;
1814 fra.me.meth = LOCATE_mmbuilder___ClassSpecializationBuilderVisitor___init;
1815 fra.me.has_broke = 0;
1816 fra.me.REG_size = 3;
1817 fra.me.REG[0] = NIT_NULL;
1818 fra.me.REG[1] = NIT_NULL;
1819 fra.me.REG[2] = NIT_NULL;
1820 fra.me.REG[0] = p0;
1821 fra.me.REG[1] = p1;
1822 fra.me.REG[2] = p2;
1823 /* ./syntax//mmbuilder.nit:345 */
1824 CALL_syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1825 stack_frame_head = fra.me.prev;
1826 init_table[itpos3] = 1;
1827 return;
1828 }
1829 void mmbuilder___ClassAncestorBuilder___visit(val_t p0, val_t p1){
1830 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1831 val_t REGB0;
1832 val_t tmp;
1833 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1834 fra.me.file = LOCATE_mmbuilder;
1835 fra.me.line = 352;
1836 fra.me.meth = LOCATE_mmbuilder___ClassAncestorBuilder___visit;
1837 fra.me.has_broke = 0;
1838 fra.me.REG_size = 2;
1839 fra.me.REG[0] = NIT_NULL;
1840 fra.me.REG[1] = NIT_NULL;
1841 fra.me.REG[0] = p0;
1842 fra.me.REG[1] = p1;
1843 /* ./syntax//mmbuilder.nit:352 */
1844 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1845 if (UNTAG_Bool(REGB0)) {
1846 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 352);
1847 }
1848 CALL_mmbuilder___ANode___accept_class_ancestor_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1849 stack_frame_head = fra.me.prev;
1850 return;
1851 }
1852 void mmbuilder___ClassAncestorBuilder___init(val_t p0, val_t p1, val_t p2, int* init_table){
1853 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ClassAncestorBuilder].i;
1854 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1855 val_t tmp;
1856 if (init_table[itpos4]) return;
1857 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1858 fra.me.file = LOCATE_mmbuilder;
1859 fra.me.line = 353;
1860 fra.me.meth = LOCATE_mmbuilder___ClassAncestorBuilder___init;
1861 fra.me.has_broke = 0;
1862 fra.me.REG_size = 3;
1863 fra.me.REG[0] = NIT_NULL;
1864 fra.me.REG[1] = NIT_NULL;
1865 fra.me.REG[2] = NIT_NULL;
1866 fra.me.REG[0] = p0;
1867 fra.me.REG[1] = p1;
1868 fra.me.REG[2] = p2;
1869 /* ./syntax//mmbuilder.nit:353 */
1870 CALL_syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1871 stack_frame_head = fra.me.prev;
1872 init_table[itpos4] = 1;
1873 return;
1874 }
1875 void mmbuilder___ClassVerifierVisitor___visit(val_t p0, val_t p1){
1876 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1877 val_t REGB0;
1878 val_t tmp;
1879 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1880 fra.me.file = LOCATE_mmbuilder;
1881 fra.me.line = 360;
1882 fra.me.meth = LOCATE_mmbuilder___ClassVerifierVisitor___visit;
1883 fra.me.has_broke = 0;
1884 fra.me.REG_size = 2;
1885 fra.me.REG[0] = NIT_NULL;
1886 fra.me.REG[1] = NIT_NULL;
1887 fra.me.REG[0] = p0;
1888 fra.me.REG[1] = p1;
1889 /* ./syntax//mmbuilder.nit:360 */
1890 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1891 if (UNTAG_Bool(REGB0)) {
1892 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 360);
1893 }
1894 CALL_mmbuilder___ANode___accept_class_verifier(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1895 stack_frame_head = fra.me.prev;
1896 return;
1897 }
1898 void mmbuilder___ClassVerifierVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
1899 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ClassVerifierVisitor].i;
1900 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1901 val_t tmp;
1902 if (init_table[itpos5]) return;
1903 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1904 fra.me.file = LOCATE_mmbuilder;
1905 fra.me.line = 361;
1906 fra.me.meth = LOCATE_mmbuilder___ClassVerifierVisitor___init;
1907 fra.me.has_broke = 0;
1908 fra.me.REG_size = 3;
1909 fra.me.REG[0] = NIT_NULL;
1910 fra.me.REG[1] = NIT_NULL;
1911 fra.me.REG[2] = NIT_NULL;
1912 fra.me.REG[0] = p0;
1913 fra.me.REG[1] = p1;
1914 fra.me.REG[2] = p2;
1915 /* ./syntax//mmbuilder.nit:361 */
1916 CALL_syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1917 stack_frame_head = fra.me.prev;
1918 init_table[itpos5] = 1;
1919 return;
1920 }
1921 void mmbuilder___PropertyBuilderVisitor___visit(val_t p0, val_t p1){
1922 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1923 val_t REGB0;
1924 val_t tmp;
1925 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1926 fra.me.file = LOCATE_mmbuilder;
1927 fra.me.line = 371;
1928 fra.me.meth = LOCATE_mmbuilder___PropertyBuilderVisitor___visit;
1929 fra.me.has_broke = 0;
1930 fra.me.REG_size = 2;
1931 fra.me.REG[0] = NIT_NULL;
1932 fra.me.REG[1] = NIT_NULL;
1933 fra.me.REG[0] = p0;
1934 fra.me.REG[1] = p1;
1935 /* ./syntax//mmbuilder.nit:371 */
1936 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1937 if (UNTAG_Bool(REGB0)) {
1938 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 371);
1939 }
1940 CALL_mmbuilder___ANode___accept_property_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1941 stack_frame_head = fra.me.prev;
1942 return;
1943 }
1944 void mmbuilder___PropertyBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
1945 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_PropertyBuilderVisitor].i;
1946 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1947 val_t tmp;
1948 if (init_table[itpos6]) return;
1949 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1950 fra.me.file = LOCATE_mmbuilder;
1951 fra.me.line = 372;
1952 fra.me.meth = LOCATE_mmbuilder___PropertyBuilderVisitor___init;
1953 fra.me.has_broke = 0;
1954 fra.me.REG_size = 3;
1955 fra.me.REG[0] = NIT_NULL;
1956 fra.me.REG[1] = NIT_NULL;
1957 fra.me.REG[2] = NIT_NULL;
1958 fra.me.REG[0] = p0;
1959 fra.me.REG[1] = p1;
1960 fra.me.REG[2] = p2;
1961 /* ./syntax//mmbuilder.nit:372 */
1962 CALL_syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1963 stack_frame_head = fra.me.prev;
1964 init_table[itpos6] = 1;
1965 return;
1966 }
1967 val_t mmbuilder___PropertyVerifierVisitor___signature_builder(val_t p0){
1968 struct {struct stack_frame_t me;} fra;
1969 val_t REGB0;
1970 val_t tmp;
1971 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1972 fra.me.file = LOCATE_mmbuilder;
1973 fra.me.line = 380;
1974 fra.me.meth = LOCATE_mmbuilder___PropertyVerifierVisitor___signature_builder;
1975 fra.me.has_broke = 0;
1976 fra.me.REG_size = 1;
1977 fra.me.REG[0] = NIT_NULL;
1978 fra.me.REG[0] = p0;
1979 /* ./syntax//mmbuilder.nit:380 */
1980 REGB0 = TAG_Bool(ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0])!=NIT_NULL);
1981 if (UNTAG_Bool(REGB0)) {
1982 } else {
1983 nit_abort("Uninitialized attribute %s", "_signature_builder", LOCATE_mmbuilder, 380);
1984 }
1985 fra.me.REG[0] = ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0]);
1986 stack_frame_head = fra.me.prev;
1987 return fra.me.REG[0];
1988 }
1989 void mmbuilder___PropertyVerifierVisitor___signature_builder__eq(val_t p0, val_t p1){
1990 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1991 val_t tmp;
1992 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1993 fra.me.file = LOCATE_mmbuilder;
1994 fra.me.line = 380;
1995 fra.me.meth = LOCATE_mmbuilder___PropertyVerifierVisitor___signature_builder__eq;
1996 fra.me.has_broke = 0;
1997 fra.me.REG_size = 2;
1998 fra.me.REG[0] = NIT_NULL;
1999 fra.me.REG[1] = NIT_NULL;
2000 fra.me.REG[0] = p0;
2001 fra.me.REG[1] = p1;
2002 /* ./syntax//mmbuilder.nit:380 */
2003 ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0]) = fra.me.REG[1];
2004 stack_frame_head = fra.me.prev;
2005 return;
2006 }
2007 void mmbuilder___PropertyVerifierVisitor___visit(val_t p0, val_t p1){
2008 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2009 val_t REGB0;
2010 val_t tmp;
2011 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2012 fra.me.file = LOCATE_mmbuilder;
2013 fra.me.line = 383;
2014 fra.me.meth = LOCATE_mmbuilder___PropertyVerifierVisitor___visit;
2015 fra.me.has_broke = 0;
2016 fra.me.REG_size = 2;
2017 fra.me.REG[0] = NIT_NULL;
2018 fra.me.REG[1] = NIT_NULL;
2019 fra.me.REG[0] = p0;
2020 fra.me.REG[1] = p1;
2021 /* ./syntax//mmbuilder.nit:383 */
2022 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2023 if (UNTAG_Bool(REGB0)) {
2024 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 383);
2025 }
2026 CALL_mmbuilder___ANode___accept_property_verifier(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2027 stack_frame_head = fra.me.prev;
2028 return;
2029 }
2030 void mmbuilder___PropertyVerifierVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2031 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_PropertyVerifierVisitor].i;
2032 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2033 val_t tmp;
2034 if (init_table[itpos7]) return;
2035 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2036 fra.me.file = LOCATE_mmbuilder;
2037 fra.me.line = 385;
2038 fra.me.meth = LOCATE_mmbuilder___PropertyVerifierVisitor___init;
2039 fra.me.has_broke = 0;
2040 fra.me.REG_size = 4;
2041 fra.me.REG[0] = NIT_NULL;
2042 fra.me.REG[1] = NIT_NULL;
2043 fra.me.REG[2] = NIT_NULL;
2044 fra.me.REG[3] = NIT_NULL;
2045 fra.me.REG[0] = p0;
2046 fra.me.REG[1] = p1;
2047 fra.me.REG[2] = p2;
2048 /* ./syntax//mmbuilder.nit:385 */
2049 fra.me.REG[3] = fra.me.REG[0];
2050 /* ./syntax//mmbuilder.nit:387 */
2051 CALL_syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2052 /* ./syntax//mmbuilder.nit:388 */
2053 fra.me.REG[2] = NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init();
2054 ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[3]) = fra.me.REG[2];
2055 stack_frame_head = fra.me.prev;
2056 init_table[itpos7] = 1;
2057 return;
2058 }
2059 val_t mmbuilder___SignatureBuilder___params(val_t p0){
2060 struct {struct stack_frame_t me;} fra;
2061 val_t REGB0;
2062 val_t tmp;
2063 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2064 fra.me.file = LOCATE_mmbuilder;
2065 fra.me.line = 394;
2066 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___params;
2067 fra.me.has_broke = 0;
2068 fra.me.REG_size = 1;
2069 fra.me.REG[0] = NIT_NULL;
2070 fra.me.REG[0] = p0;
2071 /* ./syntax//mmbuilder.nit:394 */
2072 REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____params(fra.me.REG[0])!=NIT_NULL);
2073 if (UNTAG_Bool(REGB0)) {
2074 } else {
2075 nit_abort("Uninitialized attribute %s", "_params", LOCATE_mmbuilder, 394);
2076 }
2077 fra.me.REG[0] = ATTR_mmbuilder___SignatureBuilder____params(fra.me.REG[0]);
2078 stack_frame_head = fra.me.prev;
2079 return fra.me.REG[0];
2080 }
2081 void mmbuilder___SignatureBuilder___params__eq(val_t p0, val_t p1){
2082 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2083 val_t tmp;
2084 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2085 fra.me.file = LOCATE_mmbuilder;
2086 fra.me.line = 394;
2087 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___params__eq;
2088 fra.me.has_broke = 0;
2089 fra.me.REG_size = 2;
2090 fra.me.REG[0] = NIT_NULL;
2091 fra.me.REG[1] = NIT_NULL;
2092 fra.me.REG[0] = p0;
2093 fra.me.REG[1] = p1;
2094 /* ./syntax//mmbuilder.nit:394 */
2095 ATTR_mmbuilder___SignatureBuilder____params(fra.me.REG[0]) = fra.me.REG[1];
2096 stack_frame_head = fra.me.prev;
2097 return;
2098 }
2099 val_t mmbuilder___SignatureBuilder___untyped_params(val_t p0){
2100 struct {struct stack_frame_t me;} fra;
2101 val_t REGB0;
2102 val_t tmp;
2103 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2104 fra.me.file = LOCATE_mmbuilder;
2105 fra.me.line = 397;
2106 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___untyped_params;
2107 fra.me.has_broke = 0;
2108 fra.me.REG_size = 1;
2109 fra.me.REG[0] = NIT_NULL;
2110 fra.me.REG[0] = p0;
2111 /* ./syntax//mmbuilder.nit:397 */
2112 REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0])!=NIT_NULL);
2113 if (UNTAG_Bool(REGB0)) {
2114 } else {
2115 nit_abort("Uninitialized attribute %s", "_untyped_params", LOCATE_mmbuilder, 397);
2116 }
2117 fra.me.REG[0] = ATTR_mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0]);
2118 stack_frame_head = fra.me.prev;
2119 return fra.me.REG[0];
2120 }
2121 void mmbuilder___SignatureBuilder___untyped_params__eq(val_t p0, val_t p1){
2122 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2123 val_t tmp;
2124 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2125 fra.me.file = LOCATE_mmbuilder;
2126 fra.me.line = 397;
2127 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___untyped_params__eq;
2128 fra.me.has_broke = 0;
2129 fra.me.REG_size = 2;
2130 fra.me.REG[0] = NIT_NULL;
2131 fra.me.REG[1] = NIT_NULL;
2132 fra.me.REG[0] = p0;
2133 fra.me.REG[1] = p1;
2134 /* ./syntax//mmbuilder.nit:397 */
2135 ATTR_mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0]) = fra.me.REG[1];
2136 stack_frame_head = fra.me.prev;
2137 return;
2138 }
2139 val_t mmbuilder___SignatureBuilder___vararg_rank(val_t p0){
2140 struct {struct stack_frame_t me;} fra;
2141 val_t REGB0;
2142 val_t tmp;
2143 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2144 fra.me.file = LOCATE_mmbuilder;
2145 fra.me.line = 400;
2146 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___vararg_rank;
2147 fra.me.has_broke = 0;
2148 fra.me.REG_size = 1;
2149 fra.me.REG[0] = NIT_NULL;
2150 fra.me.REG[0] = p0;
2151 /* ./syntax//mmbuilder.nit:400 */
2152 REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0])!=NIT_NULL);
2153 if (UNTAG_Bool(REGB0)) {
2154 } else {
2155 nit_abort("Uninitialized attribute %s", "_vararg_rank", LOCATE_mmbuilder, 400);
2156 }
2157 REGB0 = ATTR_mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]);
2158 stack_frame_head = fra.me.prev;
2159 return REGB0;
2160 }
2161 void mmbuilder___SignatureBuilder___vararg_rank__eq(val_t p0, val_t p1){
2162 struct {struct stack_frame_t me;} fra;
2163 val_t REGB0;
2164 val_t tmp;
2165 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2166 fra.me.file = LOCATE_mmbuilder;
2167 fra.me.line = 400;
2168 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___vararg_rank__eq;
2169 fra.me.has_broke = 0;
2170 fra.me.REG_size = 1;
2171 fra.me.REG[0] = NIT_NULL;
2172 fra.me.REG[0] = p0;
2173 REGB0 = p1;
2174 /* ./syntax//mmbuilder.nit:400 */
2175 ATTR_mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]) = REGB0;
2176 stack_frame_head = fra.me.prev;
2177 return;
2178 }
2179 val_t mmbuilder___SignatureBuilder___closure_decls(val_t p0){
2180 struct {struct stack_frame_t me;} fra;
2181 val_t REGB0;
2182 val_t tmp;
2183 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2184 fra.me.file = LOCATE_mmbuilder;
2185 fra.me.line = 403;
2186 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___closure_decls;
2187 fra.me.has_broke = 0;
2188 fra.me.REG_size = 1;
2189 fra.me.REG[0] = NIT_NULL;
2190 fra.me.REG[0] = p0;
2191 /* ./syntax//mmbuilder.nit:403 */
2192 REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0])!=NIT_NULL);
2193 if (UNTAG_Bool(REGB0)) {
2194 } else {
2195 nit_abort("Uninitialized attribute %s", "_closure_decls", LOCATE_mmbuilder, 403);
2196 }
2197 fra.me.REG[0] = ATTR_mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0]);
2198 stack_frame_head = fra.me.prev;
2199 return fra.me.REG[0];
2200 }
2201 void mmbuilder___SignatureBuilder___closure_decls__eq(val_t p0, val_t p1){
2202 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2203 val_t tmp;
2204 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2205 fra.me.file = LOCATE_mmbuilder;
2206 fra.me.line = 403;
2207 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___closure_decls__eq;
2208 fra.me.has_broke = 0;
2209 fra.me.REG_size = 2;
2210 fra.me.REG[0] = NIT_NULL;
2211 fra.me.REG[1] = NIT_NULL;
2212 fra.me.REG[0] = p0;
2213 fra.me.REG[1] = p1;
2214 /* ./syntax//mmbuilder.nit:403 */
2215 ATTR_mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0]) = fra.me.REG[1];
2216 stack_frame_head = fra.me.prev;
2217 return;
2218 }
2219 val_t mmbuilder___SignatureBuilder___has_error_occured(val_t p0){
2220 struct {struct stack_frame_t me;} fra;
2221 val_t REGB0;
2222 val_t tmp;
2223 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2224 fra.me.file = LOCATE_mmbuilder;
2225 fra.me.line = 406;
2226 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___has_error_occured;
2227 fra.me.has_broke = 0;
2228 fra.me.REG_size = 1;
2229 fra.me.REG[0] = NIT_NULL;
2230 fra.me.REG[0] = p0;
2231 /* ./syntax//mmbuilder.nit:406 */
2232 REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0])!=NIT_NULL);
2233 if (UNTAG_Bool(REGB0)) {
2234 } else {
2235 nit_abort("Uninitialized attribute %s", "_has_error_occured", LOCATE_mmbuilder, 406);
2236 }
2237 REGB0 = ATTR_mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]);
2238 stack_frame_head = fra.me.prev;
2239 return REGB0;
2240 }
2241 void mmbuilder___SignatureBuilder___has_error_occured__eq(val_t p0, val_t p1){
2242 struct {struct stack_frame_t me;} fra;
2243 val_t REGB0;
2244 val_t tmp;
2245 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2246 fra.me.file = LOCATE_mmbuilder;
2247 fra.me.line = 406;
2248 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___has_error_occured__eq;
2249 fra.me.has_broke = 0;
2250 fra.me.REG_size = 1;
2251 fra.me.REG[0] = NIT_NULL;
2252 fra.me.REG[0] = p0;
2253 REGB0 = p1;
2254 /* ./syntax//mmbuilder.nit:406 */
2255 ATTR_mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]) = REGB0;
2256 stack_frame_head = fra.me.prev;
2257 return;
2258 }
2259 val_t mmbuilder___SignatureBuilder___signature(val_t p0){
2260 struct {struct stack_frame_t me;} fra;
2261 val_t tmp;
2262 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2263 fra.me.file = LOCATE_mmbuilder;
2264 fra.me.line = 409;
2265 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___signature;
2266 fra.me.has_broke = 0;
2267 fra.me.REG_size = 1;
2268 fra.me.REG[0] = NIT_NULL;
2269 fra.me.REG[0] = p0;
2270 /* ./syntax//mmbuilder.nit:409 */
2271 fra.me.REG[0] = ATTR_mmbuilder___SignatureBuilder____signature(fra.me.REG[0]);
2272 stack_frame_head = fra.me.prev;
2273 return fra.me.REG[0];
2274 }
2275 void mmbuilder___SignatureBuilder___signature__eq(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 = 409;
2281 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___signature__eq;
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:409 */
2289 ATTR_mmbuilder___SignatureBuilder____signature(fra.me.REG[0]) = fra.me.REG[1];
2290 stack_frame_head = fra.me.prev;
2291 return;
2292 }
2293 void mmbuilder___SignatureBuilder___init(val_t p0, int* init_table){
2294 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_SignatureBuilder].i;
2295 struct {struct stack_frame_t me;} fra;
2296 val_t tmp;
2297 if (init_table[itpos8]) return;
2298 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2299 fra.me.file = LOCATE_mmbuilder;
2300 fra.me.line = 0;
2301 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___init;
2302 fra.me.has_broke = 0;
2303 fra.me.REG_size = 0;
2304 stack_frame_head = fra.me.prev;
2305 init_table[itpos8] = 1;
2306 return;
2307 }
2308 void mmbuilder___ANode___accept_class_builder(val_t p0, val_t p1){
2309 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2310 val_t tmp;
2311 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2312 fra.me.file = LOCATE_mmbuilder;
2313 fra.me.line = 416;
2314 fra.me.meth = LOCATE_mmbuilder___ANode___accept_class_builder;
2315 fra.me.has_broke = 0;
2316 fra.me.REG_size = 2;
2317 fra.me.REG[0] = NIT_NULL;
2318 fra.me.REG[1] = NIT_NULL;
2319 fra.me.REG[0] = p0;
2320 fra.me.REG[1] = p1;
2321 /* ./syntax//mmbuilder.nit:416 */
2322 CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2323 stack_frame_head = fra.me.prev;
2324 return;
2325 }
2326 void mmbuilder___ANode___accept_class_specialization_builder(val_t p0, val_t p1){
2327 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2328 val_t tmp;
2329 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2330 fra.me.file = LOCATE_mmbuilder;
2331 fra.me.line = 417;
2332 fra.me.meth = LOCATE_mmbuilder___ANode___accept_class_specialization_builder;
2333 fra.me.has_broke = 0;
2334 fra.me.REG_size = 2;
2335 fra.me.REG[0] = NIT_NULL;
2336 fra.me.REG[1] = NIT_NULL;
2337 fra.me.REG[0] = p0;
2338 fra.me.REG[1] = p1;
2339 /* ./syntax//mmbuilder.nit:417 */
2340 CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2341 stack_frame_head = fra.me.prev;
2342 return;
2343 }
2344 void mmbuilder___ANode___accept_class_ancestor_builder(val_t p0, val_t p1){
2345 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2346 val_t tmp;
2347 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2348 fra.me.file = LOCATE_mmbuilder;
2349 fra.me.line = 418;
2350 fra.me.meth = LOCATE_mmbuilder___ANode___accept_class_ancestor_builder;
2351 fra.me.has_broke = 0;
2352 fra.me.REG_size = 2;
2353 fra.me.REG[0] = NIT_NULL;
2354 fra.me.REG[1] = NIT_NULL;
2355 fra.me.REG[0] = p0;
2356 fra.me.REG[1] = p1;
2357 /* ./syntax//mmbuilder.nit:418 */
2358 CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2359 stack_frame_head = fra.me.prev;
2360 return;
2361 }
2362 void mmbuilder___ANode___accept_class_verifier(val_t p0, val_t p1){
2363 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2364 val_t tmp;
2365 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2366 fra.me.file = LOCATE_mmbuilder;
2367 fra.me.line = 419;
2368 fra.me.meth = LOCATE_mmbuilder___ANode___accept_class_verifier;
2369 fra.me.has_broke = 0;
2370 fra.me.REG_size = 2;
2371 fra.me.REG[0] = NIT_NULL;
2372 fra.me.REG[1] = NIT_NULL;
2373 fra.me.REG[0] = p0;
2374 fra.me.REG[1] = p1;
2375 /* ./syntax//mmbuilder.nit:419 */
2376 CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2377 stack_frame_head = fra.me.prev;
2378 return;
2379 }
2380 void mmbuilder___ANode___accept_property_builder(val_t p0, val_t p1){
2381 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2382 val_t tmp;
2383 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2384 fra.me.file = LOCATE_mmbuilder;
2385 fra.me.line = 420;
2386 fra.me.meth = LOCATE_mmbuilder___ANode___accept_property_builder;
2387 fra.me.has_broke = 0;
2388 fra.me.REG_size = 2;
2389 fra.me.REG[0] = NIT_NULL;
2390 fra.me.REG[1] = NIT_NULL;
2391 fra.me.REG[0] = p0;
2392 fra.me.REG[1] = p1;
2393 /* ./syntax//mmbuilder.nit:420 */
2394 CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2395 stack_frame_head = fra.me.prev;
2396 return;
2397 }
2398 void mmbuilder___ANode___accept_property_verifier(val_t p0, val_t p1){
2399 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2400 val_t tmp;
2401 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2402 fra.me.file = LOCATE_mmbuilder;
2403 fra.me.line = 421;
2404 fra.me.meth = LOCATE_mmbuilder___ANode___accept_property_verifier;
2405 fra.me.has_broke = 0;
2406 fra.me.REG_size = 2;
2407 fra.me.REG[0] = NIT_NULL;
2408 fra.me.REG[1] = NIT_NULL;
2409 fra.me.REG[0] = p0;
2410 fra.me.REG[1] = p1;
2411 /* ./syntax//mmbuilder.nit:421 */
2412 CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2413 stack_frame_head = fra.me.prev;
2414 return;
2415 }
2416 void mmbuilder___AModule___import_super_modules(val_t p0, val_t p1, val_t p2){
2417 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
2418 val_t REGB0;
2419 val_t REGB1;
2420 val_t tmp;
2421 static val_t once_value_2; /* Once value */
2422 static val_t once_value_3; /* Once value */
2423 static val_t once_value_4; /* Once value */
2424 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2425 fra.me.file = LOCATE_mmbuilder;
2426 fra.me.line = 425;
2427 fra.me.meth = LOCATE_mmbuilder___AModule___import_super_modules;
2428 fra.me.has_broke = 0;
2429 fra.me.REG_size = 7;
2430 fra.me.REG[0] = NIT_NULL;
2431 fra.me.REG[1] = NIT_NULL;
2432 fra.me.REG[2] = NIT_NULL;
2433 fra.me.REG[3] = NIT_NULL;
2434 fra.me.REG[4] = NIT_NULL;
2435 fra.me.REG[5] = NIT_NULL;
2436 fra.me.REG[6] = NIT_NULL;
2437 fra.me.REG[0] = p0;
2438 fra.me.REG[1] = p1;
2439 fra.me.REG[2] = p2;
2440 /* ./syntax//mmbuilder.nit:429 */
2441 fra.me.REG[3] = NEW_Array_array___Array___init();
2442 /* ./syntax//mmbuilder.nit:430 */
2443 fra.me.REG[4] = NEW_HashMap_hash_collection___HashMap___init();
2444 /* ./syntax//mmbuilder.nit:431 */
2445 fra.me.REG[5] = NIT_NULL;
2446 /* ./syntax//mmbuilder.nit:432 */
2447 fra.me.REG[0] = CALL_parser_nodes___AModule___n_imports(fra.me.REG[0])(fra.me.REG[0]);
2448 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_mmbuilder___AModule___import_super_modules_1));
2449 /* ./syntax//mmbuilder.nit:441 */
2450 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2451 if (UNTAG_Bool(REGB0)) {
2452 } else {
2453 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2454 if (UNTAG_Bool(REGB1)) {
2455 REGB1 = TAG_Bool(false);
2456 REGB0 = REGB1;
2457 } else {
2458 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
2459 REGB0 = REGB1;
2460 }
2461 }
2462 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2463 if (UNTAG_Bool(REGB0)) {
2464 /* ./syntax//mmbuilder.nit:442 */
2465 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
2466 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2467 if (UNTAG_Bool(REGB0)) {
2468 /* ./syntax//mmbuilder.nit:443 */
2469 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2470 if (UNTAG_Bool(REGB0)) {
2471 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 443);
2472 }
2473 fra.me.REG[5] = CALL_parser_nodes___ANode___location(fra.me.REG[5])(fra.me.REG[5]);
2474 if (!once_value_2) {
2475 fra.me.REG[0] = BOX_NativeString("Error: Top modules cannot import other modules.");
2476 REGB0 = TAG_Int(47);
2477 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
2478 once_value_2 = fra.me.REG[0];
2479 register_static_object(&once_value_2);
2480 } else fra.me.REG[0] = once_value_2;
2481 fra.me.REG[0] = fra.me.REG[0];
2482 CALL_mmloader___ToolContext___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5], fra.me.REG[0]);
2483 }
2484 } else {
2485 /* ./syntax//mmbuilder.nit:445 */
2486 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
2487 if (UNTAG_Bool(REGB0)) {
2488 /* ./syntax//mmbuilder.nit:446 */
2489 if (!once_value_3) {
2490 if (!once_value_4) {
2491 fra.me.REG[0] = BOX_NativeString("standard");
2492 REGB0 = TAG_Int(8);
2493 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
2494 once_value_4 = fra.me.REG[0];
2495 register_static_object(&once_value_4);
2496 } else fra.me.REG[0] = once_value_4;
2497 fra.me.REG[0] = fra.me.REG[0];
2498 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
2499 once_value_3 = fra.me.REG[0];
2500 register_static_object(&once_value_3);
2501 } else fra.me.REG[0] = once_value_3;
2502 fra.me.REG[0] = fra.me.REG[0];
2503 /* ./syntax//mmbuilder.nit:447 */
2504 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
2505 /* ./syntax//mmbuilder.nit:448 */
2506 REGB0 = TAG_Int(1);
2507 CALL_abstract_collection___Map_____braeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0], REGB0);
2508 }
2509 }
2510 /* ./syntax//mmbuilder.nit:451 */
2511 CALL_mmloader___MMModule___import_supers_modules(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2512 /* ./../lib/standard//collection//array.nit:234 */
2513 REGB0 = TAG_Int(0);
2514 /* ./../lib/standard//collection//array.nit:235 */
2515 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
2516 if (UNTAG_Bool(REGB1)) {
2517 } else {
2518 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
2519 }
2520 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
2521 /* ./../lib/standard//collection//array.nit:236 */
2522 fra.me.REG[0] = ATTR_array___Array____items(fra.me.REG[3]);
2523 /* ./../lib/standard//collection//array.nit:237 */
2524 while(1) {
2525 /* ./../lib/standard//collection//array.nit:23 */
2526 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
2527 if (UNTAG_Bool(REGB1)) {
2528 } else {
2529 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
2530 }
2531 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
2532 /* ./../lib/standard//kernel.nit:212 */
2533 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2534 /* ./../lib/standard//collection//array.nit:237 */
2535 if (UNTAG_Bool(REGB1)) {
2536 /* ./../lib/standard//collection//array.nit:238 */
2537 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
2538 if (UNTAG_Bool(REGB1)) {
2539 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
2540 }
2541 /* ./../lib/standard//collection//array.nit:654 */
2542 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
2543 /* ./syntax//mmbuilder.nit:454 */
2544 fra.me.REG[6] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2545 REGB1 = fra.me.REG[6];
2546 /* ./syntax//mmbuilder.nit:455 */
2547 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]);
2548 /* ./syntax//mmbuilder.nit:456 */
2549 CALL_abstractmetamodel___MMModule___add_super_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5], REGB1);
2550 /* ./../lib/standard//collection//array.nit:239 */
2551 REGB1 = TAG_Int(1);
2552 /* ./../lib/standard//kernel.nit:215 */
2553 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
2554 /* ./../lib/standard//collection//array.nit:239 */
2555 REGB0 = REGB1;
2556 } else {
2557 /* ./../lib/standard//collection//array.nit:237 */
2558 goto label5;
2559 }
2560 }
2561 label5: while(0);
2562 stack_frame_head = fra.me.prev;
2563 return;
2564 }
2565 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){
2566 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2567 val_t REGB0;
2568 val_t REGB1;
2569 fun_t CREG[1];
2570 val_t tmp;
2571 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2572 fra.me.file = LOCATE_mmbuilder;
2573 fra.me.line = 0;
2574 fra.me.meth = LOCATE_mmbuilder___AModule___import_super_modules;
2575 fra.me.has_broke = 0;
2576 fra.me.REG_size = 2;
2577 fra.me.REG[0] = NIT_NULL;
2578 fra.me.REG[1] = NIT_NULL;
2579 fra.me.closure_ctx = closctx_param;
2580 fra.me.closure_funs = CREG;
2581 fra.me.REG[0] = p0;
2582 CREG[0] = clos_fun0;
2583 /* ./syntax//mmbuilder.nit:433 */
2584 fra.me.REG[1] = CALL_mmbuilder___AImport___module_name(fra.me.REG[0])(fra.me.REG[0]);
2585 /* ./syntax//mmbuilder.nit:434 */
2586 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2587 if (UNTAG_Bool(REGB0)) {
2588 } else {
2589 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2590 if (UNTAG_Bool(REGB1)) {
2591 REGB1 = TAG_Bool(false);
2592 REGB0 = REGB1;
2593 } else {
2594 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2595 REGB0 = REGB1;
2596 }
2597 }
2598 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2599 if (UNTAG_Bool(REGB0)) {
2600 /* ./syntax//mmbuilder.nit:435 */
2601 CALL_abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[1]);
2602 /* ./syntax//mmbuilder.nit:436 */
2603 REGB0 = CALL_mmbuilder___AImport___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
2604 CALL_abstract_collection___Map_____braeq(closctx->REG[4])(closctx->REG[4], fra.me.REG[1], REGB0);
2605 } else {
2606 /* ./syntax//mmbuilder.nit:438 */
2607 closctx->REG[5] = fra.me.REG[0];
2608 }
2609 stack_frame_head = fra.me.prev;
2610 return;
2611 }
2612 void mmbuilder___AModuledecl___accept_class_builder(val_t p0, val_t p1){
2613 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
2614 val_t REGB0;
2615 val_t REGB1;
2616 val_t tmp;
2617 static val_t once_value_1; /* Once value */
2618 static val_t once_value_2; /* Once value */
2619 static val_t once_value_3; /* Once value */
2620 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2621 fra.me.file = LOCATE_mmbuilder;
2622 fra.me.line = 462;
2623 fra.me.meth = LOCATE_mmbuilder___AModuledecl___accept_class_builder;
2624 fra.me.has_broke = 0;
2625 fra.me.REG_size = 5;
2626 fra.me.REG[0] = NIT_NULL;
2627 fra.me.REG[1] = NIT_NULL;
2628 fra.me.REG[2] = NIT_NULL;
2629 fra.me.REG[3] = NIT_NULL;
2630 fra.me.REG[4] = NIT_NULL;
2631 fra.me.REG[0] = p0;
2632 fra.me.REG[1] = p1;
2633 /* ./syntax//mmbuilder.nit:464 */
2634 fra.me.REG[2] = CALL_parser_nodes___AModuledecl___n_id(fra.me.REG[0])(fra.me.REG[0]);
2635 fra.me.REG[2] = CALL_syntax_base___Token___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
2636 fra.me.REG[3] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
2637 fra.me.REG[3] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[3])(fra.me.REG[3]);
2638 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
2639 if (UNTAG_Bool(REGB0)) {
2640 } else {
2641 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2642 REGB0 = REGB1;
2643 }
2644 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2645 if (UNTAG_Bool(REGB0)) {
2646 /* ./syntax//mmbuilder.nit:465 */
2647 fra.me.REG[3] = CALL_parser_nodes___AModuledecl___n_id(fra.me.REG[0])(fra.me.REG[0]);
2648 REGB0 = TAG_Int(5);
2649 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
2650 if (!once_value_1) {
2651 fra.me.REG[4] = BOX_NativeString("Error: Module name missmatch between ");
2652 REGB0 = TAG_Int(37);
2653 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
2654 once_value_1 = fra.me.REG[4];
2655 register_static_object(&once_value_1);
2656 } else fra.me.REG[4] = once_value_1;
2657 fra.me.REG[4] = fra.me.REG[4];
2658 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
2659 fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
2660 fra.me.REG[4] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[4])(fra.me.REG[4]);
2661 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
2662 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
2663 if (!once_value_2) {
2664 fra.me.REG[4] = BOX_NativeString(" and ");
2665 REGB0 = TAG_Int(5);
2666 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
2667 once_value_2 = fra.me.REG[4];
2668 register_static_object(&once_value_2);
2669 } else fra.me.REG[4] = once_value_2;
2670 fra.me.REG[4] = fra.me.REG[4];
2671 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
2672 fra.me.REG[0] = CALL_parser_nodes___AModuledecl___n_id(fra.me.REG[0])(fra.me.REG[0]);
2673 fra.me.REG[0] = CALL_syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
2674 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2675 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2676 if (!once_value_3) {
2677 fra.me.REG[0] = BOX_NativeString("");
2678 REGB0 = TAG_Int(0);
2679 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
2680 once_value_3 = fra.me.REG[0];
2681 register_static_object(&once_value_3);
2682 } else fra.me.REG[0] = once_value_3;
2683 fra.me.REG[0] = fra.me.REG[0];
2684 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2685 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2686 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2]);
2687 }
2688 stack_frame_head = fra.me.prev;
2689 return;
2690 }
2691 val_t mmbuilder___AImport___module_name(val_t p0){
2692 struct {struct stack_frame_t me;} fra;
2693 val_t tmp;
2694 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2695 fra.me.file = LOCATE_mmbuilder;
2696 fra.me.line = 471;
2697 fra.me.meth = LOCATE_mmbuilder___AImport___module_name;
2698 fra.me.has_broke = 0;
2699 fra.me.REG_size = 0;
2700 /* ./syntax//mmbuilder.nit:471 */
2701 nit_abort("Deferred method called", NULL, LOCATE_mmbuilder, 471);
2702 stack_frame_head = fra.me.prev;
2703 return NIT_NULL;
2704 }
2705 val_t mmbuilder___AImport___visibility_level(val_t p0){
2706 struct {struct stack_frame_t me;} fra;
2707 val_t tmp;
2708 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2709 fra.me.file = LOCATE_mmbuilder;
2710 fra.me.line = 474;
2711 fra.me.meth = LOCATE_mmbuilder___AImport___visibility_level;
2712 fra.me.has_broke = 0;
2713 fra.me.REG_size = 0;
2714 /* ./syntax//mmbuilder.nit:474 */
2715 nit_abort("Deferred method called", NULL, LOCATE_mmbuilder, 474);
2716 stack_frame_head = fra.me.prev;
2717 return NIT_NULL;
2718 }
2719 val_t mmbuilder___AStdImport___module_name(val_t p0){
2720 struct {struct stack_frame_t me;} fra;
2721 val_t tmp;
2722 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2723 fra.me.file = LOCATE_mmbuilder;
2724 fra.me.line = 478;
2725 fra.me.meth = LOCATE_mmbuilder___AStdImport___module_name;
2726 fra.me.has_broke = 0;
2727 fra.me.REG_size = 1;
2728 fra.me.REG[0] = NIT_NULL;
2729 fra.me.REG[0] = p0;
2730 /* ./syntax//mmbuilder.nit:480 */
2731 fra.me.REG[0] = CALL_parser_nodes___AStdImport___n_id(fra.me.REG[0])(fra.me.REG[0]);
2732 fra.me.REG[0] = CALL_syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
2733 goto label1;
2734 label1: while(0);
2735 stack_frame_head = fra.me.prev;
2736 return fra.me.REG[0];
2737 }
2738 val_t mmbuilder___AStdImport___visibility_level(val_t p0){
2739 struct {struct stack_frame_t me;} fra;
2740 val_t REGB0;
2741 val_t tmp;
2742 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2743 fra.me.file = LOCATE_mmbuilder;
2744 fra.me.line = 482;
2745 fra.me.meth = LOCATE_mmbuilder___AStdImport___visibility_level;
2746 fra.me.has_broke = 0;
2747 fra.me.REG_size = 1;
2748 fra.me.REG[0] = NIT_NULL;
2749 fra.me.REG[0] = p0;
2750 /* ./syntax//mmbuilder.nit:484 */
2751 fra.me.REG[0] = CALL_parser_nodes___AStdImport___n_visibility(fra.me.REG[0])(fra.me.REG[0]);
2752 REGB0 = CALL_mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
2753 goto label1;
2754 label1: while(0);
2755 stack_frame_head = fra.me.prev;
2756 return REGB0;
2757 }
2758 val_t mmbuilder___ANoImport___module_name(val_t p0){
2759 struct {struct stack_frame_t me;} fra;
2760 val_t tmp;
2761 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2762 fra.me.file = LOCATE_mmbuilder;
2763 fra.me.line = 488;
2764 fra.me.meth = LOCATE_mmbuilder___ANoImport___module_name;
2765 fra.me.has_broke = 0;
2766 fra.me.REG_size = 1;
2767 fra.me.REG[0] = NIT_NULL;
2768 fra.me.REG[0] = p0;
2769 /* ./syntax//mmbuilder.nit:490 */
2770 fra.me.REG[0] = NIT_NULL;
2771 goto label1;
2772 label1: while(0);
2773 stack_frame_head = fra.me.prev;
2774 return fra.me.REG[0];
2775 }
2776 val_t mmbuilder___AVisibility___level(val_t p0){
2777 struct {struct stack_frame_t me;} fra;
2778 val_t tmp;
2779 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2780 fra.me.file = LOCATE_mmbuilder;
2781 fra.me.line = 495;
2782 fra.me.meth = LOCATE_mmbuilder___AVisibility___level;
2783 fra.me.has_broke = 0;
2784 fra.me.REG_size = 0;
2785 /* ./syntax//mmbuilder.nit:495 */
2786 nit_abort("Deferred method called", NULL, LOCATE_mmbuilder, 495);
2787 stack_frame_head = fra.me.prev;
2788 return NIT_NULL;
2789 }
2790 val_t mmbuilder___APublicVisibility___level(val_t p0){
2791 struct {struct stack_frame_t me;} fra;
2792 val_t REGB0;
2793 val_t tmp;
2794 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2795 fra.me.file = LOCATE_mmbuilder;
2796 fra.me.line = 499;
2797 fra.me.meth = LOCATE_mmbuilder___APublicVisibility___level;
2798 fra.me.has_broke = 0;
2799 fra.me.REG_size = 1;
2800 fra.me.REG[0] = NIT_NULL;
2801 fra.me.REG[0] = p0;
2802 /* ./syntax//mmbuilder.nit:499 */
2803 REGB0 = TAG_Int(1);
2804 goto label1;
2805 label1: while(0);
2806 stack_frame_head = fra.me.prev;
2807 return REGB0;
2808 }
2809 val_t mmbuilder___AProtectedVisibility___level(val_t p0){
2810 struct {struct stack_frame_t me;} fra;
2811 val_t REGB0;
2812 val_t tmp;
2813 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2814 fra.me.file = LOCATE_mmbuilder;
2815 fra.me.line = 502;
2816 fra.me.meth = LOCATE_mmbuilder___AProtectedVisibility___level;
2817 fra.me.has_broke = 0;
2818 fra.me.REG_size = 1;
2819 fra.me.REG[0] = NIT_NULL;
2820 fra.me.REG[0] = p0;
2821 /* ./syntax//mmbuilder.nit:502 */
2822 REGB0 = TAG_Int(2);
2823 goto label1;
2824 label1: while(0);
2825 stack_frame_head = fra.me.prev;
2826 return REGB0;
2827 }
2828 val_t mmbuilder___APrivateVisibility___level(val_t p0){
2829 struct {struct stack_frame_t me;} fra;
2830 val_t REGB0;
2831 val_t tmp;
2832 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2833 fra.me.file = LOCATE_mmbuilder;
2834 fra.me.line = 505;
2835 fra.me.meth = LOCATE_mmbuilder___APrivateVisibility___level;
2836 fra.me.has_broke = 0;
2837 fra.me.REG_size = 1;
2838 fra.me.REG[0] = NIT_NULL;
2839 fra.me.REG[0] = p0;
2840 /* ./syntax//mmbuilder.nit:505 */
2841 REGB0 = TAG_Int(3);
2842 goto label1;
2843 label1: while(0);
2844 stack_frame_head = fra.me.prev;
2845 return REGB0;
2846 }
2847 val_t mmbuilder___AIntrudeVisibility___level(val_t p0){
2848 struct {struct stack_frame_t me;} fra;
2849 val_t REGB0;
2850 val_t tmp;
2851 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2852 fra.me.file = LOCATE_mmbuilder;
2853 fra.me.line = 508;
2854 fra.me.meth = LOCATE_mmbuilder___AIntrudeVisibility___level;
2855 fra.me.has_broke = 0;
2856 fra.me.REG_size = 1;
2857 fra.me.REG[0] = NIT_NULL;
2858 fra.me.REG[0] = p0;
2859 /* ./syntax//mmbuilder.nit:508 */
2860 REGB0 = TAG_Int(0);
2861 goto label1;
2862 label1: while(0);
2863 stack_frame_head = fra.me.prev;
2864 return REGB0;
2865 }
2866 val_t mmbuilder___AClassdef___local_class(val_t p0){
2867 struct {struct stack_frame_t me;} fra;
2868 val_t REGB0;
2869 val_t tmp;
2870 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2871 fra.me.file = LOCATE_mmbuilder;
2872 fra.me.line = 513;
2873 fra.me.meth = LOCATE_mmbuilder___AClassdef___local_class;
2874 fra.me.has_broke = 0;
2875 fra.me.REG_size = 1;
2876 fra.me.REG[0] = NIT_NULL;
2877 fra.me.REG[0] = p0;
2878 /* ./syntax//mmbuilder.nit:513 */
2879 fra.me.REG[0] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[0]);
2880 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
2881 if (UNTAG_Bool(REGB0)) {
2882 } else {
2883 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 513);
2884 }
2885 goto label1;
2886 label1: while(0);
2887 stack_frame_head = fra.me.prev;
2888 return fra.me.REG[0];
2889 }
2890 val_t mmbuilder___AClassdef___name(val_t p0){
2891 struct {struct stack_frame_t me;} fra;
2892 val_t tmp;
2893 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2894 fra.me.file = LOCATE_mmbuilder;
2895 fra.me.line = 516;
2896 fra.me.meth = LOCATE_mmbuilder___AClassdef___name;
2897 fra.me.has_broke = 0;
2898 fra.me.REG_size = 0;
2899 /* ./syntax//mmbuilder.nit:516 */
2900 nit_abort("Deferred method called", NULL, LOCATE_mmbuilder, 516);
2901 stack_frame_head = fra.me.prev;
2902 return NIT_NULL;
2903 }
2904 val_t mmbuilder___AClassdef___arity(val_t p0){
2905 struct {struct stack_frame_t me;} fra;
2906 val_t REGB0;
2907 val_t tmp;
2908 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2909 fra.me.file = LOCATE_mmbuilder;
2910 fra.me.line = 519;
2911 fra.me.meth = LOCATE_mmbuilder___AClassdef___arity;
2912 fra.me.has_broke = 0;
2913 fra.me.REG_size = 1;
2914 fra.me.REG[0] = NIT_NULL;
2915 fra.me.REG[0] = p0;
2916 /* ./syntax//mmbuilder.nit:520 */
2917 REGB0 = TAG_Int(0);
2918 goto label1;
2919 label1: while(0);
2920 stack_frame_head = fra.me.prev;
2921 return REGB0;
2922 }
2923 val_t mmbuilder___AClassdef___visibility_level(val_t p0){
2924 struct {struct stack_frame_t me;} fra;
2925 val_t REGB0;
2926 val_t tmp;
2927 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2928 fra.me.file = LOCATE_mmbuilder;
2929 fra.me.line = 522;
2930 fra.me.meth = LOCATE_mmbuilder___AClassdef___visibility_level;
2931 fra.me.has_broke = 0;
2932 fra.me.REG_size = 1;
2933 fra.me.REG[0] = NIT_NULL;
2934 fra.me.REG[0] = p0;
2935 /* ./syntax//mmbuilder.nit:523 */
2936 REGB0 = TAG_Int(1);
2937 goto label1;
2938 label1: while(0);
2939 stack_frame_head = fra.me.prev;
2940 return REGB0;
2941 }
2942 void mmbuilder___AClassdef___accept_class_builder(val_t p0, val_t p1){
2943 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
2944 val_t REGB0;
2945 val_t REGB1;
2946 val_t tmp;
2947 static val_t once_value_1; /* Once value */
2948 static val_t once_value_2; /* Once value */
2949 static val_t once_value_3; /* Once value */
2950 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2951 fra.me.file = LOCATE_mmbuilder;
2952 fra.me.line = 525;
2953 fra.me.meth = LOCATE_mmbuilder___AClassdef___accept_class_builder;
2954 fra.me.has_broke = 0;
2955 fra.me.REG_size = 9;
2956 fra.me.REG[0] = NIT_NULL;
2957 fra.me.REG[1] = NIT_NULL;
2958 fra.me.REG[2] = NIT_NULL;
2959 fra.me.REG[3] = NIT_NULL;
2960 fra.me.REG[4] = NIT_NULL;
2961 fra.me.REG[5] = NIT_NULL;
2962 fra.me.REG[6] = NIT_NULL;
2963 fra.me.REG[7] = NIT_NULL;
2964 fra.me.REG[8] = NIT_NULL;
2965 fra.me.REG[0] = p0;
2966 fra.me.REG[1] = p1;
2967 /* ./syntax//mmbuilder.nit:525 */
2968 fra.me.REG[2] = fra.me.REG[0];
2969 fra.me.REG[3] = fra.me.REG[1];
2970 /* ./syntax//mmbuilder.nit:528 */
2971 fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
2972 /* ./syntax//mmbuilder.nit:529 */
2973 fra.me.REG[5] = CALL_syntax_base___MMSrcModule___src_local_classes(fra.me.REG[4])(fra.me.REG[4]);
2974 /* ./syntax//mmbuilder.nit:530 */
2975 fra.me.REG[6] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
2976 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2977 if (UNTAG_Bool(REGB0)) {
2978 /* ./syntax//mmbuilder.nit:531 */
2979 fra.me.REG[6] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
2980 fra.me.REG[6] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2981 /* ./syntax//mmbuilder.nit:532 */
2982 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_AStdClassdef, ID_AStdClassdef)) /*cast AStdClassdef*/;
2983 if (UNTAG_Bool(REGB0)) {
2984 /* ./syntax//mmbuilder.nit:534 */
2985 REGB0 = TAG_Int(5);
2986 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB0);
2987 if (!once_value_1) {
2988 fra.me.REG[8] = BOX_NativeString("Error: A class ");
2989 REGB0 = TAG_Int(15);
2990 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
2991 once_value_1 = fra.me.REG[8];
2992 register_static_object(&once_value_1);
2993 } else fra.me.REG[8] = once_value_1;
2994 fra.me.REG[8] = fra.me.REG[8];
2995 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
2996 fra.me.REG[8] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
2997 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
2998 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
2999 if (!once_value_2) {
3000 fra.me.REG[8] = BOX_NativeString(" is already defined at line ");
3001 REGB0 = TAG_Int(28);
3002 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
3003 once_value_2 = fra.me.REG[8];
3004 register_static_object(&once_value_2);
3005 } else fra.me.REG[8] = once_value_2;
3006 fra.me.REG[8] = fra.me.REG[8];
3007 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3008 fra.me.REG[8] = CALL_syntax_base___MMSrcLocalClass___node(fra.me.REG[6])(fra.me.REG[6]);
3009 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
3010 if (UNTAG_Bool(REGB0)) {
3011 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 534);
3012 }
3013 fra.me.REG[8] = CALL_parser_nodes___ANode___location(fra.me.REG[8])(fra.me.REG[8]);
3014 REGB0 = CALL_location___Location___line_start(fra.me.REG[8])(fra.me.REG[8]);
3015 fra.me.REG[8] = CALL_string___Object___to_s(REGB0)(REGB0);
3016 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3017 if (!once_value_3) {
3018 fra.me.REG[8] = BOX_NativeString(".");
3019 REGB0 = TAG_Int(1);
3020 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
3021 once_value_3 = fra.me.REG[8];
3022 register_static_object(&once_value_3);
3023 } else fra.me.REG[8] = once_value_3;
3024 fra.me.REG[8] = fra.me.REG[8];
3025 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3026 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3027 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3028 /* ./syntax//mmbuilder.nit:535 */
3029 goto label4;
3030 }
3031 /* ./syntax//mmbuilder.nit:538 */
3032 fra.me.REG[7] = CALL_syntax_base___MMSrcLocalClass___node(fra.me.REG[6])(fra.me.REG[6]);
3033 /* ./syntax//mmbuilder.nit:539 */
3034 while(1) {
3035 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
3036 if (UNTAG_Bool(REGB0)) {
3037 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 539);
3038 }
3039 fra.me.REG[8] = CALL_syntax_base___AClassdef___next_node(fra.me.REG[7])(fra.me.REG[7]);
3040 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
3041 if (UNTAG_Bool(REGB0)) {
3042 } else {
3043 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
3044 if (UNTAG_Bool(REGB1)) {
3045 REGB1 = TAG_Bool(false);
3046 REGB0 = REGB1;
3047 } else {
3048 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
3049 REGB0 = REGB1;
3050 }
3051 }
3052 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3053 if (UNTAG_Bool(REGB0)) {
3054 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
3055 if (UNTAG_Bool(REGB0)) {
3056 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 539);
3057 }
3058 fra.me.REG[8] = CALL_syntax_base___AClassdef___next_node(fra.me.REG[7])(fra.me.REG[7]);
3059 fra.me.REG[7] = fra.me.REG[8];
3060 } else {
3061 goto label5;
3062 }
3063 }
3064 label5: while(0);
3065 /* ./syntax//mmbuilder.nit:540 */
3066 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
3067 if (UNTAG_Bool(REGB0)) {
3068 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 540);
3069 }
3070 CALL_syntax_base___AClassdef___next_node__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]);
3071 } else {
3072 /* ./syntax//mmbuilder.nit:542 */
3073 fra.me.REG[7] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3074 REGB0 = CALL_mmbuilder___AClassdef___arity(fra.me.REG[2])(fra.me.REG[2]);
3075 fra.me.REG[7] = NEW_MMSrcLocalClass_syntax_base___MMSrcLocalClass___init(fra.me.REG[4], fra.me.REG[7], fra.me.REG[2], REGB0);
3076 fra.me.REG[6] = fra.me.REG[7];
3077 /* ./syntax//mmbuilder.nit:543 */
3078 fra.me.REG[7] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3079 CALL_abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7], fra.me.REG[6]);
3080 /* ./syntax//mmbuilder.nit:544 */
3081 fra.me.REG[7] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3082 REGB0 = CALL_abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
3083 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3084 if (UNTAG_Bool(REGB0)) {
3085 /* ./syntax//mmbuilder.nit:545 */
3086 CALL_abstractmetamodel___MMLocalClass___new_global(fra.me.REG[6])(fra.me.REG[6]);
3087 } else {
3088 /* ./syntax//mmbuilder.nit:547 */
3089 fra.me.REG[7] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3090 fra.me.REG[7] = CALL_abstractmetamodel___MMModule___global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
3091 CALL_abstractmetamodel___MMLocalClass___set_global(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
3092 }
3093 }
3094 /* ./syntax//mmbuilder.nit:551 */
3095 ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]) = fra.me.REG[6];
3096 /* ./syntax//mmbuilder.nit:552 */
3097 REGB0 = TAG_Int(0);
3098 CALL_mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
3099 /* ./syntax//mmbuilder.nit:553 */
3100 fra.me.REG[6] = CALL_syntax_base___MMSrcLocalClass___formal_dict(fra.me.REG[6])(fra.me.REG[6]);
3101 CALL_mmbuilder___ClassBuilderVisitor___formals__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
3102 /* ./syntax//mmbuilder.nit:556 */
3103 CALL_SUPER_mmbuilder___AClassdef___accept_class_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3104 /* ./syntax//mmbuilder.nit:559 */
3105 CALL_mmbuilder___ClassBuilderVisitor___formals__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3106 label4: while(0);
3107 stack_frame_head = fra.me.prev;
3108 return;
3109 }
3110 void mmbuilder___AClassdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
3111 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3112 val_t tmp;
3113 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3114 fra.me.file = LOCATE_mmbuilder;
3115 fra.me.line = 562;
3116 fra.me.meth = LOCATE_mmbuilder___AClassdef___accept_abs_syntax_visitor;
3117 fra.me.has_broke = 0;
3118 fra.me.REG_size = 4;
3119 fra.me.REG[0] = NIT_NULL;
3120 fra.me.REG[1] = NIT_NULL;
3121 fra.me.REG[2] = NIT_NULL;
3122 fra.me.REG[3] = NIT_NULL;
3123 fra.me.REG[0] = p0;
3124 fra.me.REG[1] = p1;
3125 /* ./syntax//mmbuilder.nit:562 */
3126 fra.me.REG[2] = fra.me.REG[0];
3127 fra.me.REG[3] = fra.me.REG[1];
3128 /* ./syntax//mmbuilder.nit:564 */
3129 fra.me.REG[2] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3130 CALL_syntax_base___AbsSyntaxVisitor___local_class__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
3131 /* ./syntax//mmbuilder.nit:565 */
3132 CALL_SUPER_mmbuilder___AClassdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3133 /* ./syntax//mmbuilder.nit:566 */
3134 CALL_syntax_base___AbsSyntaxVisitor___local_class__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3135 stack_frame_head = fra.me.prev;
3136 return;
3137 }
3138 val_t mmbuilder___AClasskind___is_interface(val_t p0){
3139 struct {struct stack_frame_t me;} fra;
3140 val_t REGB0;
3141 val_t tmp;
3142 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3143 fra.me.file = LOCATE_mmbuilder;
3144 fra.me.line = 571;
3145 fra.me.meth = LOCATE_mmbuilder___AClasskind___is_interface;
3146 fra.me.has_broke = 0;
3147 fra.me.REG_size = 1;
3148 fra.me.REG[0] = NIT_NULL;
3149 fra.me.REG[0] = p0;
3150 /* ./syntax//mmbuilder.nit:571 */
3151 REGB0 = TAG_Bool(false);
3152 goto label1;
3153 label1: while(0);
3154 stack_frame_head = fra.me.prev;
3155 return REGB0;
3156 }
3157 val_t mmbuilder___AClasskind___is_enum(val_t p0){
3158 struct {struct stack_frame_t me;} fra;
3159 val_t REGB0;
3160 val_t tmp;
3161 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3162 fra.me.file = LOCATE_mmbuilder;
3163 fra.me.line = 572;
3164 fra.me.meth = LOCATE_mmbuilder___AClasskind___is_enum;
3165 fra.me.has_broke = 0;
3166 fra.me.REG_size = 1;
3167 fra.me.REG[0] = NIT_NULL;
3168 fra.me.REG[0] = p0;
3169 /* ./syntax//mmbuilder.nit:572 */
3170 REGB0 = TAG_Bool(false);
3171 goto label1;
3172 label1: while(0);
3173 stack_frame_head = fra.me.prev;
3174 return REGB0;
3175 }
3176 val_t mmbuilder___AClasskind___is_abstract(val_t p0){
3177 struct {struct stack_frame_t me;} fra;
3178 val_t REGB0;
3179 val_t tmp;
3180 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3181 fra.me.file = LOCATE_mmbuilder;
3182 fra.me.line = 573;
3183 fra.me.meth = LOCATE_mmbuilder___AClasskind___is_abstract;
3184 fra.me.has_broke = 0;
3185 fra.me.REG_size = 1;
3186 fra.me.REG[0] = NIT_NULL;
3187 fra.me.REG[0] = p0;
3188 /* ./syntax//mmbuilder.nit:573 */
3189 REGB0 = TAG_Bool(false);
3190 goto label1;
3191 label1: while(0);
3192 stack_frame_head = fra.me.prev;
3193 return REGB0;
3194 }
3195 val_t mmbuilder___AClasskind___is_extern(val_t p0){
3196 struct {struct stack_frame_t me;} fra;
3197 val_t REGB0;
3198 val_t tmp;
3199 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3200 fra.me.file = LOCATE_mmbuilder;
3201 fra.me.line = 574;
3202 fra.me.meth = LOCATE_mmbuilder___AClasskind___is_extern;
3203 fra.me.has_broke = 0;
3204 fra.me.REG_size = 1;
3205 fra.me.REG[0] = NIT_NULL;
3206 fra.me.REG[0] = p0;
3207 /* ./syntax//mmbuilder.nit:574 */
3208 REGB0 = TAG_Bool(false);
3209 goto label1;
3210 label1: while(0);
3211 stack_frame_head = fra.me.prev;
3212 return REGB0;
3213 }
3214 val_t mmbuilder___AInterfaceClasskind___is_interface(val_t p0){
3215 struct {struct stack_frame_t me;} fra;
3216 val_t REGB0;
3217 val_t tmp;
3218 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3219 fra.me.file = LOCATE_mmbuilder;
3220 fra.me.line = 578;
3221 fra.me.meth = LOCATE_mmbuilder___AInterfaceClasskind___is_interface;
3222 fra.me.has_broke = 0;
3223 fra.me.REG_size = 1;
3224 fra.me.REG[0] = NIT_NULL;
3225 fra.me.REG[0] = p0;
3226 /* ./syntax//mmbuilder.nit:578 */
3227 REGB0 = TAG_Bool(true);
3228 goto label1;
3229 label1: while(0);
3230 stack_frame_head = fra.me.prev;
3231 return REGB0;
3232 }
3233 val_t mmbuilder___AEnumClasskind___is_enum(val_t p0){
3234 struct {struct stack_frame_t me;} fra;
3235 val_t REGB0;
3236 val_t tmp;
3237 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3238 fra.me.file = LOCATE_mmbuilder;
3239 fra.me.line = 581;
3240 fra.me.meth = LOCATE_mmbuilder___AEnumClasskind___is_enum;
3241 fra.me.has_broke = 0;
3242 fra.me.REG_size = 1;
3243 fra.me.REG[0] = NIT_NULL;
3244 fra.me.REG[0] = p0;
3245 /* ./syntax//mmbuilder.nit:581 */
3246 REGB0 = TAG_Bool(true);
3247 goto label1;
3248 label1: while(0);
3249 stack_frame_head = fra.me.prev;
3250 return REGB0;
3251 }
3252 val_t mmbuilder___AExternClasskind___is_extern(val_t p0){
3253 struct {struct stack_frame_t me;} fra;
3254 val_t REGB0;
3255 val_t tmp;
3256 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3257 fra.me.file = LOCATE_mmbuilder;
3258 fra.me.line = 584;
3259 fra.me.meth = LOCATE_mmbuilder___AExternClasskind___is_extern;
3260 fra.me.has_broke = 0;
3261 fra.me.REG_size = 1;
3262 fra.me.REG[0] = NIT_NULL;
3263 fra.me.REG[0] = p0;
3264 /* ./syntax//mmbuilder.nit:584 */
3265 REGB0 = TAG_Bool(true);
3266 goto label1;
3267 label1: while(0);
3268 stack_frame_head = fra.me.prev;
3269 return REGB0;
3270 }
3271 val_t mmbuilder___AAbstractClasskind___is_abstract(val_t p0){
3272 struct {struct stack_frame_t me;} fra;
3273 val_t REGB0;
3274 val_t tmp;
3275 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3276 fra.me.file = LOCATE_mmbuilder;
3277 fra.me.line = 587;
3278 fra.me.meth = LOCATE_mmbuilder___AAbstractClasskind___is_abstract;
3279 fra.me.has_broke = 0;
3280 fra.me.REG_size = 1;
3281 fra.me.REG[0] = NIT_NULL;
3282 fra.me.REG[0] = p0;
3283 /* ./syntax//mmbuilder.nit:587 */
3284 REGB0 = TAG_Bool(true);
3285 goto label1;
3286 label1: while(0);
3287 stack_frame_head = fra.me.prev;
3288 return REGB0;
3289 }
3290 val_t mmbuilder___AStdClassdef___name(val_t p0){
3291 struct {struct stack_frame_t me;} fra;
3292 val_t REGB0;
3293 val_t tmp;
3294 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3295 fra.me.file = LOCATE_mmbuilder;
3296 fra.me.line = 591;
3297 fra.me.meth = LOCATE_mmbuilder___AStdClassdef___name;
3298 fra.me.has_broke = 0;
3299 fra.me.REG_size = 1;
3300 fra.me.REG[0] = NIT_NULL;
3301 fra.me.REG[0] = p0;
3302 /* ./syntax//mmbuilder.nit:593 */
3303 fra.me.REG[0] = CALL_parser_nodes___AStdClassdef___n_id(fra.me.REG[0])(fra.me.REG[0]);
3304 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3305 if (UNTAG_Bool(REGB0)) {
3306 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 593);
3307 }
3308 fra.me.REG[0] = CALL_syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
3309 goto label1;
3310 label1: while(0);
3311 stack_frame_head = fra.me.prev;
3312 return fra.me.REG[0];
3313 }
3314 val_t mmbuilder___AStdClassdef___arity(val_t p0){
3315 struct {struct stack_frame_t me;} fra;
3316 val_t REGB0;
3317 val_t tmp;
3318 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3319 fra.me.file = LOCATE_mmbuilder;
3320 fra.me.line = 595;
3321 fra.me.meth = LOCATE_mmbuilder___AStdClassdef___arity;
3322 fra.me.has_broke = 0;
3323 fra.me.REG_size = 1;
3324 fra.me.REG[0] = NIT_NULL;
3325 fra.me.REG[0] = p0;
3326 /* ./syntax//mmbuilder.nit:597 */
3327 fra.me.REG[0] = CALL_parser_nodes___AStdClassdef___n_formaldefs(fra.me.REG[0])(fra.me.REG[0]);
3328 REGB0 = CALL_abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
3329 goto label1;
3330 label1: while(0);
3331 stack_frame_head = fra.me.prev;
3332 return REGB0;
3333 }
3334 void mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p1){
3335 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
3336 val_t REGB0;
3337 val_t REGB1;
3338 val_t REGB2;
3339 val_t tmp;
3340 static val_t once_value_1; /* Once value */
3341 static val_t once_value_2; /* Once value */
3342 static val_t once_value_3; /* Once value */
3343 static val_t once_value_4; /* Once value */
3344 static val_t once_value_5; /* Once value */
3345 static val_t once_value_6; /* Once value */
3346 static val_t once_value_7; /* Once value */
3347 static val_t once_value_8; /* Once value */
3348 static val_t once_value_9; /* Once value */
3349 static val_t once_value_10; /* Once value */
3350 static val_t once_value_11; /* Once value */
3351 static val_t once_value_12; /* Once value */
3352 static val_t once_value_13; /* Once value */
3353 static val_t once_value_14; /* Once value */
3354 static val_t once_value_15; /* Once value */
3355 static val_t once_value_16; /* Once value */
3356 static val_t once_value_17; /* Once value */
3357 static val_t once_value_18; /* Once value */
3358 static val_t once_value_19; /* Once value */
3359 static val_t once_value_20; /* Once value */
3360 static val_t once_value_23; /* Once value */
3361 static val_t once_value_24; /* Once value */
3362 static val_t once_value_25; /* Once value */
3363 static val_t once_value_26; /* Once value */
3364 static val_t once_value_27; /* Once value */
3365 static val_t once_value_28; /* Once value */
3366 static val_t once_value_29; /* Once value */
3367 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3368 fra.me.file = LOCATE_mmbuilder;
3369 fra.me.line = 599;
3370 fra.me.meth = LOCATE_mmbuilder___AStdClassdef___accept_class_verifier;
3371 fra.me.has_broke = 0;
3372 fra.me.REG_size = 9;
3373 fra.me.REG[0] = NIT_NULL;
3374 fra.me.REG[1] = NIT_NULL;
3375 fra.me.REG[2] = NIT_NULL;
3376 fra.me.REG[3] = NIT_NULL;
3377 fra.me.REG[4] = NIT_NULL;
3378 fra.me.REG[5] = NIT_NULL;
3379 fra.me.REG[6] = NIT_NULL;
3380 fra.me.REG[7] = NIT_NULL;
3381 fra.me.REG[8] = NIT_NULL;
3382 fra.me.REG[0] = p0;
3383 fra.me.REG[1] = p1;
3384 /* ./syntax//mmbuilder.nit:599 */
3385 fra.me.REG[2] = fra.me.REG[0];
3386 fra.me.REG[3] = fra.me.REG[1];
3387 /* ./syntax//mmbuilder.nit:601 */
3388 CALL_SUPER_mmbuilder___AStdClassdef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3389 /* ./syntax//mmbuilder.nit:602 */
3390 fra.me.REG[1] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3391 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3392 if (UNTAG_Bool(REGB0)) {
3393 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 602);
3394 }
3395 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
3396 /* ./syntax//mmbuilder.nit:603 */
3397 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
3398 fra.me.REG[4] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3399 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[0],fra.me.REG[4]));
3400 if (UNTAG_Bool(REGB0)) {
3401 } else {
3402 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
3403 REGB0 = REGB1;
3404 }
3405 if (UNTAG_Bool(REGB0)) {
3406 /* ./syntax//mmbuilder.nit:605 */
3407 REGB0 = CALL_mmbuilder___AClassdef___visibility_level(fra.me.REG[2])(fra.me.REG[2]);
3408 CALL_abstractmetamodel___MMGlobalClass___visibility_level__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
3409 /* ./syntax//mmbuilder.nit:606 */
3410 fra.me.REG[4] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
3411 REGB0 = CALL_mmbuilder___AClasskind___is_interface(fra.me.REG[4])(fra.me.REG[4]);
3412 CALL_abstractmetamodel___MMGlobalClass___is_interface__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
3413 /* ./syntax//mmbuilder.nit:607 */
3414 fra.me.REG[4] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
3415 REGB0 = CALL_mmbuilder___AClasskind___is_abstract(fra.me.REG[4])(fra.me.REG[4]);
3416 CALL_abstractmetamodel___MMGlobalClass___is_abstract__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
3417 /* ./syntax//mmbuilder.nit:608 */
3418 fra.me.REG[4] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
3419 REGB0 = CALL_mmbuilder___AClasskind___is_enum(fra.me.REG[4])(fra.me.REG[4]);
3420 CALL_abstractmetamodel___MMGlobalClass___is_enum__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
3421 /* ./syntax//mmbuilder.nit:609 */
3422 fra.me.REG[4] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
3423 REGB0 = CALL_mmbuilder___AClasskind___is_extern(fra.me.REG[4])(fra.me.REG[4]);
3424 CALL_abstractmetamodel___MMGlobalClass___is_extern__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
3425 /* ./syntax//mmbuilder.nit:610 */
3426 fra.me.REG[4] = CALL_parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
3427 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3428 if (UNTAG_Bool(REGB0)) {
3429 } else {
3430 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3431 if (UNTAG_Bool(REGB1)) {
3432 REGB1 = TAG_Bool(false);
3433 REGB0 = REGB1;
3434 } else {
3435 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
3436 REGB0 = REGB1;
3437 }
3438 }
3439 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3440 if (UNTAG_Bool(REGB0)) {
3441 /* ./syntax//mmbuilder.nit:611 */
3442 REGB0 = TAG_Int(3);
3443 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
3444 if (!once_value_1) {
3445 fra.me.REG[0] = BOX_NativeString("Redef error: No class ");
3446 REGB0 = TAG_Int(22);
3447 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
3448 once_value_1 = fra.me.REG[0];
3449 register_static_object(&once_value_1);
3450 } else fra.me.REG[0] = once_value_1;
3451 fra.me.REG[0] = fra.me.REG[0];
3452 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
3453 fra.me.REG[0] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3454 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
3455 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
3456 if (!once_value_2) {
3457 fra.me.REG[0] = BOX_NativeString(" is imported. Remove the redef keyword to define a new class.");
3458 REGB0 = TAG_Int(61);
3459 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
3460 once_value_2 = fra.me.REG[0];
3461 register_static_object(&once_value_2);
3462 } else fra.me.REG[0] = once_value_2;
3463 fra.me.REG[0] = fra.me.REG[0];
3464 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
3465 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3466 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]);
3467 }
3468 /* ./syntax//mmbuilder.nit:614 */
3469 fra.me.REG[4] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3470 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3471 if (UNTAG_Bool(REGB0)) {
3472 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 614);
3473 }
3474 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[4])(fra.me.REG[4]);
3475 fra.me.REG[4] = CALL_partial_order___PartialOrderElement___direct_greaters(fra.me.REG[4])(fra.me.REG[4]);
3476 /* ./../lib/standard//collection//array.nit:234 */
3477 REGB0 = TAG_Int(0);
3478 /* ./../lib/standard//collection//array.nit:235 */
3479 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
3480 if (UNTAG_Bool(REGB1)) {
3481 } else {
3482 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
3483 }
3484 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
3485 /* ./../lib/standard//collection//array.nit:236 */
3486 fra.me.REG[0] = ATTR_array___Array____items(fra.me.REG[4]);
3487 /* ./../lib/standard//collection//array.nit:237 */
3488 while(1) {
3489 /* ./../lib/standard//collection//array.nit:23 */
3490 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
3491 if (UNTAG_Bool(REGB1)) {
3492 } else {
3493 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
3494 }
3495 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
3496 /* ./../lib/standard//kernel.nit:212 */
3497 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3498 /* ./../lib/standard//collection//array.nit:237 */
3499 if (UNTAG_Bool(REGB1)) {
3500 /* ./../lib/standard//collection//array.nit:238 */
3501 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3502 if (UNTAG_Bool(REGB1)) {
3503 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
3504 }
3505 /* ./../lib/standard//collection//array.nit:654 */
3506 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
3507 /* ./syntax//mmbuilder.nit:615 */
3508 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
3509 /* ./syntax//mmbuilder.nit:616 */
3510 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
3511 if (UNTAG_Bool(REGB1)) {
3512 /* ./syntax//mmbuilder.nit:617 */
3513 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
3514 if (UNTAG_Bool(REGB1)) {
3515 /* ./syntax//mmbuilder.nit:618 */
3516 REGB1 = TAG_Int(5);
3517 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB1);
3518 if (!once_value_3) {
3519 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
3520 REGB1 = TAG_Int(25);
3521 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3522 once_value_3 = fra.me.REG[8];
3523 register_static_object(&once_value_3);
3524 } else fra.me.REG[8] = once_value_3;
3525 fra.me.REG[8] = fra.me.REG[8];
3526 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3527 fra.me.REG[8] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3528 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3529 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3530 if (!once_value_4) {
3531 fra.me.REG[8] = BOX_NativeString(" try to specialise enum class ");
3532 REGB1 = TAG_Int(30);
3533 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3534 once_value_4 = fra.me.REG[8];
3535 register_static_object(&once_value_4);
3536 } else fra.me.REG[8] = once_value_4;
3537 fra.me.REG[8] = fra.me.REG[8];
3538 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3539 fra.me.REG[8] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3540 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3541 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3542 if (!once_value_5) {
3543 fra.me.REG[8] = BOX_NativeString(".");
3544 REGB1 = TAG_Int(1);
3545 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3546 once_value_5 = fra.me.REG[8];
3547 register_static_object(&once_value_5);
3548 } else fra.me.REG[8] = once_value_5;
3549 fra.me.REG[8] = fra.me.REG[8];
3550 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3551 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3552 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3553 } else {
3554 /* ./syntax//mmbuilder.nit:619 */
3555 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
3556 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3557 if (UNTAG_Bool(REGB1)) {
3558 /* ./syntax//mmbuilder.nit:620 */
3559 REGB1 = TAG_Int(5);
3560 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB1);
3561 if (!once_value_6) {
3562 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
3563 REGB1 = TAG_Int(25);
3564 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3565 once_value_6 = fra.me.REG[8];
3566 register_static_object(&once_value_6);
3567 } else fra.me.REG[8] = once_value_6;
3568 fra.me.REG[8] = fra.me.REG[8];
3569 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3570 fra.me.REG[8] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3571 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3572 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3573 if (!once_value_7) {
3574 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
3575 REGB1 = TAG_Int(25);
3576 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3577 once_value_7 = fra.me.REG[8];
3578 register_static_object(&once_value_7);
3579 } else fra.me.REG[8] = once_value_7;
3580 fra.me.REG[8] = fra.me.REG[8];
3581 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3582 fra.me.REG[8] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3583 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3584 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3585 if (!once_value_8) {
3586 fra.me.REG[8] = BOX_NativeString(".");
3587 REGB1 = TAG_Int(1);
3588 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3589 once_value_8 = fra.me.REG[8];
3590 register_static_object(&once_value_8);
3591 } else fra.me.REG[8] = once_value_8;
3592 fra.me.REG[8] = fra.me.REG[8];
3593 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3594 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3595 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3596 }
3597 }
3598 } else {
3599 /* ./syntax//mmbuilder.nit:622 */
3600 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
3601 if (UNTAG_Bool(REGB1)) {
3602 /* ./syntax//mmbuilder.nit:623 */
3603 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
3604 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3605 if (UNTAG_Bool(REGB1)) {
3606 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
3607 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3608 } else {
3609 REGB2 = TAG_Bool(false);
3610 REGB1 = REGB2;
3611 }
3612 if (UNTAG_Bool(REGB1)) {
3613 /* ./syntax//mmbuilder.nit:624 */
3614 REGB1 = TAG_Int(5);
3615 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB1);
3616 if (!once_value_9) {
3617 fra.me.REG[8] = BOX_NativeString("Special error: Enum class ");
3618 REGB1 = TAG_Int(26);
3619 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3620 once_value_9 = fra.me.REG[8];
3621 register_static_object(&once_value_9);
3622 } else fra.me.REG[8] = once_value_9;
3623 fra.me.REG[8] = fra.me.REG[8];
3624 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3625 fra.me.REG[8] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3626 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3627 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3628 if (!once_value_10) {
3629 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
3630 REGB1 = TAG_Int(25);
3631 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3632 once_value_10 = fra.me.REG[8];
3633 register_static_object(&once_value_10);
3634 } else fra.me.REG[8] = once_value_10;
3635 fra.me.REG[8] = fra.me.REG[8];
3636 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3637 fra.me.REG[8] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3638 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3639 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3640 if (!once_value_11) {
3641 fra.me.REG[8] = BOX_NativeString(".");
3642 REGB1 = TAG_Int(1);
3643 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3644 once_value_11 = fra.me.REG[8];
3645 register_static_object(&once_value_11);
3646 } else fra.me.REG[8] = once_value_11;
3647 fra.me.REG[8] = fra.me.REG[8];
3648 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3649 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3650 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3651 }
3652 } else {
3653 /* ./syntax//mmbuilder.nit:626 */
3654 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[1])(fra.me.REG[1]);
3655 if (UNTAG_Bool(REGB1)) {
3656 /* ./syntax//mmbuilder.nit:627 */
3657 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
3658 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3659 if (UNTAG_Bool(REGB1)) {
3660 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[6])(fra.me.REG[6]);
3661 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3662 } else {
3663 REGB2 = TAG_Bool(false);
3664 REGB1 = REGB2;
3665 }
3666 if (UNTAG_Bool(REGB1)) {
3667 /* ./syntax//mmbuilder.nit:628 */
3668 REGB1 = TAG_Int(5);
3669 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB1);
3670 if (!once_value_12) {
3671 fra.me.REG[8] = BOX_NativeString("Special error: Extern class ");
3672 REGB1 = TAG_Int(28);
3673 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3674 once_value_12 = fra.me.REG[8];
3675 register_static_object(&once_value_12);
3676 } else fra.me.REG[8] = once_value_12;
3677 fra.me.REG[8] = fra.me.REG[8];
3678 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3679 fra.me.REG[8] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3680 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3681 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3682 if (!once_value_13) {
3683 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
3684 REGB1 = TAG_Int(25);
3685 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3686 once_value_13 = fra.me.REG[8];
3687 register_static_object(&once_value_13);
3688 } else fra.me.REG[8] = once_value_13;
3689 fra.me.REG[8] = fra.me.REG[8];
3690 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3691 fra.me.REG[8] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3692 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3693 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3694 if (!once_value_14) {
3695 fra.me.REG[8] = BOX_NativeString(".");
3696 REGB1 = TAG_Int(1);
3697 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3698 once_value_14 = fra.me.REG[8];
3699 register_static_object(&once_value_14);
3700 } else fra.me.REG[8] = once_value_14;
3701 fra.me.REG[8] = fra.me.REG[8];
3702 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3703 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3704 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3705 }
3706 } else {
3707 /* ./syntax//mmbuilder.nit:631 */
3708 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
3709 if (UNTAG_Bool(REGB1)) {
3710 /* ./syntax//mmbuilder.nit:632 */
3711 REGB1 = TAG_Int(5);
3712 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB1);
3713 if (!once_value_15) {
3714 fra.me.REG[8] = BOX_NativeString("Special error: Class ");
3715 REGB1 = TAG_Int(21);
3716 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3717 once_value_15 = fra.me.REG[8];
3718 register_static_object(&once_value_15);
3719 } else fra.me.REG[8] = once_value_15;
3720 fra.me.REG[8] = fra.me.REG[8];
3721 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3722 fra.me.REG[8] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3723 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3724 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3725 if (!once_value_16) {
3726 fra.me.REG[8] = BOX_NativeString(" try to specialise enum class ");
3727 REGB1 = TAG_Int(30);
3728 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3729 once_value_16 = fra.me.REG[8];
3730 register_static_object(&once_value_16);
3731 } else fra.me.REG[8] = once_value_16;
3732 fra.me.REG[8] = fra.me.REG[8];
3733 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3734 fra.me.REG[8] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3735 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3736 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3737 if (!once_value_17) {
3738 fra.me.REG[8] = BOX_NativeString(".");
3739 REGB1 = TAG_Int(1);
3740 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB1);
3741 once_value_17 = fra.me.REG[8];
3742 register_static_object(&once_value_17);
3743 } else fra.me.REG[8] = once_value_17;
3744 fra.me.REG[8] = fra.me.REG[8];
3745 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3746 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3747 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3748 } else {
3749 /* ./syntax//mmbuilder.nit:633 */
3750 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[6])(fra.me.REG[6]);
3751 if (UNTAG_Bool(REGB1)) {
3752 /* ./syntax//mmbuilder.nit:634 */
3753 REGB1 = TAG_Int(5);
3754 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB1);
3755 if (!once_value_18) {
3756 fra.me.REG[7] = BOX_NativeString("Special error: Class ");
3757 REGB1 = TAG_Int(21);
3758 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
3759 once_value_18 = fra.me.REG[7];
3760 register_static_object(&once_value_18);
3761 } else fra.me.REG[7] = once_value_18;
3762 fra.me.REG[7] = fra.me.REG[7];
3763 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
3764 fra.me.REG[7] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3765 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3766 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
3767 if (!once_value_19) {
3768 fra.me.REG[7] = BOX_NativeString(" try to specialise extern class ");
3769 REGB1 = TAG_Int(32);
3770 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB1);
3771 once_value_19 = fra.me.REG[7];
3772 register_static_object(&once_value_19);
3773 } else fra.me.REG[7] = once_value_19;
3774 fra.me.REG[7] = fra.me.REG[7];
3775 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
3776 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3777 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
3778 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
3779 if (!once_value_20) {
3780 fra.me.REG[5] = BOX_NativeString(".");
3781 REGB1 = TAG_Int(1);
3782 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
3783 once_value_20 = fra.me.REG[5];
3784 register_static_object(&once_value_20);
3785 } else fra.me.REG[5] = once_value_20;
3786 fra.me.REG[5] = fra.me.REG[5];
3787 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
3788 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
3789 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
3790 }
3791 }
3792 }
3793 }
3794 }
3795 /* ./../lib/standard//collection//array.nit:239 */
3796 REGB1 = TAG_Int(1);
3797 /* ./../lib/standard//kernel.nit:215 */
3798 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
3799 /* ./../lib/standard//collection//array.nit:239 */
3800 REGB0 = REGB1;
3801 } else {
3802 /* ./../lib/standard//collection//array.nit:237 */
3803 goto label21;
3804 }
3805 }
3806 label21: while(0);
3807 /* ./syntax//mmbuilder.nit:639 */
3808 goto label22;
3809 }
3810 /* ./syntax//mmbuilder.nit:644 */
3811 fra.me.REG[0] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
3812 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]);
3813 /* ./syntax//mmbuilder.nit:645 */
3814 fra.me.REG[0] = CALL_parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
3815 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3816 if (UNTAG_Bool(REGB0)) {
3817 } else {
3818 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3819 if (UNTAG_Bool(REGB1)) {
3820 REGB1 = TAG_Bool(false);
3821 REGB0 = REGB1;
3822 } else {
3823 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
3824 REGB0 = REGB1;
3825 }
3826 }
3827 if (UNTAG_Bool(REGB0)) {
3828 /* ./syntax//mmbuilder.nit:646 */
3829 REGB0 = TAG_Int(3);
3830 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0);
3831 if (!once_value_23) {
3832 fra.me.REG[4] = BOX_NativeString("Redef error: ");
3833 REGB0 = TAG_Int(13);
3834 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
3835 once_value_23 = fra.me.REG[4];
3836 register_static_object(&once_value_23);
3837 } else fra.me.REG[4] = once_value_23;
3838 fra.me.REG[4] = fra.me.REG[4];
3839 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
3840 fra.me.REG[4] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3841 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3842 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
3843 if (!once_value_24) {
3844 fra.me.REG[4] = BOX_NativeString(" is an imported class. Add the redef keyword to refine it.");
3845 REGB0 = TAG_Int(58);
3846 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
3847 once_value_24 = fra.me.REG[4];
3848 register_static_object(&once_value_24);
3849 } else fra.me.REG[4] = once_value_24;
3850 fra.me.REG[4] = fra.me.REG[4];
3851 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
3852 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
3853 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
3854 /* ./syntax//mmbuilder.nit:647 */
3855 goto label22;
3856 }
3857 /* ./syntax//mmbuilder.nit:650 */
3858 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
3859 REGB0 = CALL_abstractmetamodel___MMLocalClass___arity(fra.me.REG[0])(fra.me.REG[0]);
3860 fra.me.REG[0] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3861 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3862 if (UNTAG_Bool(REGB1)) {
3863 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 650);
3864 }
3865 REGB1 = CALL_abstractmetamodel___MMLocalClass___arity(fra.me.REG[0])(fra.me.REG[0]);
3866 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
3867 if (UNTAG_Bool(REGB2)) {
3868 } else {
3869 /* ./../lib/standard//kernel.nit:207 */
3870 REGB1 = TAG_Bool((REGB0)==(REGB1));
3871 /* ./syntax//mmbuilder.nit:650 */
3872 REGB2 = REGB1;
3873 }
3874 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
3875 if (UNTAG_Bool(REGB2)) {
3876 /* ./syntax//mmbuilder.nit:651 */
3877 REGB2 = TAG_Int(5);
3878 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB2);
3879 if (!once_value_25) {
3880 fra.me.REG[4] = BOX_NativeString("Redef error: Formal parameter arity missmatch; got ");
3881 REGB2 = TAG_Int(51);
3882 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
3883 once_value_25 = fra.me.REG[4];
3884 register_static_object(&once_value_25);
3885 } else fra.me.REG[4] = once_value_25;
3886 fra.me.REG[4] = fra.me.REG[4];
3887 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
3888 fra.me.REG[4] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3889 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3890 if (UNTAG_Bool(REGB2)) {
3891 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 651);
3892 }
3893 REGB2 = CALL_abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
3894 fra.me.REG[4] = CALL_string___Object___to_s(REGB2)(REGB2);
3895 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
3896 if (!once_value_26) {
3897 fra.me.REG[4] = BOX_NativeString(", expected ");
3898 REGB2 = TAG_Int(11);
3899 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
3900 once_value_26 = fra.me.REG[4];
3901 register_static_object(&once_value_26);
3902 } else fra.me.REG[4] = once_value_26;
3903 fra.me.REG[4] = fra.me.REG[4];
3904 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
3905 fra.me.REG[4] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
3906 REGB2 = CALL_abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
3907 fra.me.REG[4] = CALL_string___Object___to_s(REGB2)(REGB2);
3908 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
3909 if (!once_value_27) {
3910 fra.me.REG[4] = BOX_NativeString(".");
3911 REGB2 = TAG_Int(1);
3912 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
3913 once_value_27 = fra.me.REG[4];
3914 register_static_object(&once_value_27);
3915 } else fra.me.REG[4] = once_value_27;
3916 fra.me.REG[4] = fra.me.REG[4];
3917 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
3918 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
3919 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
3920 }
3921 /* ./syntax//mmbuilder.nit:655 */
3922 REGB2 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
3923 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
3924 if (UNTAG_Bool(REGB2)) {
3925 fra.me.REG[0] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
3926 REGB2 = CALL_mmbuilder___AClasskind___is_interface(fra.me.REG[0])(fra.me.REG[0]);
3927 } else {
3928 REGB1 = TAG_Bool(false);
3929 REGB2 = REGB1;
3930 }
3931 if (UNTAG_Bool(REGB2)) {
3932 REGB2 = TAG_Bool(true);
3933 } else {
3934 /* ./syntax//mmbuilder.nit:656 */
3935 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[1])(fra.me.REG[1]);
3936 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3937 /* ./syntax//mmbuilder.nit:655 */
3938 REGB2 = REGB1;
3939 }
3940 if (UNTAG_Bool(REGB2)) {
3941 /* ./syntax//mmbuilder.nit:656 */
3942 fra.me.REG[0] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
3943 REGB2 = CALL_mmbuilder___AClasskind___is_abstract(fra.me.REG[0])(fra.me.REG[0]);
3944 } else {
3945 /* ./syntax//mmbuilder.nit:655 */
3946 REGB1 = TAG_Bool(false);
3947 REGB2 = REGB1;
3948 }
3949 if (UNTAG_Bool(REGB2)) {
3950 REGB2 = TAG_Bool(true);
3951 } else {
3952 /* ./syntax//mmbuilder.nit:657 */
3953 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
3954 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3955 /* ./syntax//mmbuilder.nit:655 */
3956 REGB2 = REGB1;
3957 }
3958 if (UNTAG_Bool(REGB2)) {
3959 /* ./syntax//mmbuilder.nit:657 */
3960 fra.me.REG[0] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
3961 REGB2 = CALL_mmbuilder___AClasskind___is_enum(fra.me.REG[0])(fra.me.REG[0]);
3962 } else {
3963 /* ./syntax//mmbuilder.nit:655 */
3964 REGB1 = TAG_Bool(false);
3965 REGB2 = REGB1;
3966 }
3967 if (UNTAG_Bool(REGB2)) {
3968 REGB2 = TAG_Bool(true);
3969 } else {
3970 /* ./syntax//mmbuilder.nit:658 */
3971 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[1])(fra.me.REG[1]);
3972 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3973 /* ./syntax//mmbuilder.nit:655 */
3974 REGB2 = REGB1;
3975 }
3976 if (UNTAG_Bool(REGB2)) {
3977 /* ./syntax//mmbuilder.nit:658 */
3978 fra.me.REG[1] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
3979 REGB2 = CALL_mmbuilder___AClasskind___is_extern(fra.me.REG[1])(fra.me.REG[1]);
3980 } else {
3981 /* ./syntax//mmbuilder.nit:655 */
3982 REGB1 = TAG_Bool(false);
3983 REGB2 = REGB1;
3984 }
3985 /* ./syntax//mmbuilder.nit:654 */
3986 if (UNTAG_Bool(REGB2)) {
3987 /* ./syntax//mmbuilder.nit:660 */
3988 REGB2 = TAG_Int(3);
3989 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB2);
3990 if (!once_value_28) {
3991 fra.me.REG[0] = BOX_NativeString("Redef error: cannot change kind of class ");
3992 REGB2 = TAG_Int(41);
3993 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB2);
3994 once_value_28 = fra.me.REG[0];
3995 register_static_object(&once_value_28);
3996 } else fra.me.REG[0] = once_value_28;
3997 fra.me.REG[0] = fra.me.REG[0];
3998 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3999 fra.me.REG[0] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4000 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
4001 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4002 if (!once_value_29) {
4003 fra.me.REG[0] = BOX_NativeString(".");
4004 REGB2 = TAG_Int(1);
4005 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB2);
4006 once_value_29 = fra.me.REG[0];
4007 register_static_object(&once_value_29);
4008 } else fra.me.REG[0] = once_value_29;
4009 fra.me.REG[0] = fra.me.REG[0];
4010 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4011 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
4012 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[1]);
4013 }
4014 label22: while(0);
4015 stack_frame_head = fra.me.prev;
4016 return;
4017 }
4018 val_t mmbuilder___AStdClassdef___visibility_level(val_t p0){
4019 struct {struct stack_frame_t me;} fra;
4020 val_t REGB0;
4021 val_t tmp;
4022 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4023 fra.me.file = LOCATE_mmbuilder;
4024 fra.me.line = 664;
4025 fra.me.meth = LOCATE_mmbuilder___AStdClassdef___visibility_level;
4026 fra.me.has_broke = 0;
4027 fra.me.REG_size = 1;
4028 fra.me.REG[0] = NIT_NULL;
4029 fra.me.REG[0] = p0;
4030 /* ./syntax//mmbuilder.nit:666 */
4031 fra.me.REG[0] = CALL_parser_nodes___AStdClassdef___n_visibility(fra.me.REG[0])(fra.me.REG[0]);
4032 REGB0 = CALL_mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
4033 goto label1;
4034 label1: while(0);
4035 stack_frame_head = fra.me.prev;
4036 return REGB0;
4037 }
4038 val_t mmbuilder___AMainClassdef___name(val_t p0){
4039 struct {struct stack_frame_t me;} fra;
4040 val_t REGB0;
4041 val_t tmp;
4042 static val_t once_value_1; /* Once value */
4043 static val_t once_value_2; /* Once value */
4044 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4045 fra.me.file = LOCATE_mmbuilder;
4046 fra.me.line = 671;
4047 fra.me.meth = LOCATE_mmbuilder___AMainClassdef___name;
4048 fra.me.has_broke = 0;
4049 fra.me.REG_size = 1;
4050 fra.me.REG[0] = NIT_NULL;
4051 fra.me.REG[0] = p0;
4052 /* ./syntax//mmbuilder.nit:673 */
4053 if (!once_value_1) {
4054 if (!once_value_2) {
4055 fra.me.REG[0] = BOX_NativeString("Sys");
4056 REGB0 = TAG_Int(3);
4057 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
4058 once_value_2 = fra.me.REG[0];
4059 register_static_object(&once_value_2);
4060 } else fra.me.REG[0] = once_value_2;
4061 fra.me.REG[0] = fra.me.REG[0];
4062 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
4063 once_value_1 = fra.me.REG[0];
4064 register_static_object(&once_value_1);
4065 } else fra.me.REG[0] = once_value_1;
4066 fra.me.REG[0] = fra.me.REG[0];
4067 goto label3;
4068 label3: while(0);
4069 stack_frame_head = fra.me.prev;
4070 return fra.me.REG[0];
4071 }
4072 val_t mmbuilder___ATopClassdef___name(val_t p0){
4073 struct {struct stack_frame_t me;} fra;
4074 val_t REGB0;
4075 val_t tmp;
4076 static val_t once_value_1; /* Once value */
4077 static val_t once_value_2; /* Once value */
4078 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4079 fra.me.file = LOCATE_mmbuilder;
4080 fra.me.line = 678;
4081 fra.me.meth = LOCATE_mmbuilder___ATopClassdef___name;
4082 fra.me.has_broke = 0;
4083 fra.me.REG_size = 1;
4084 fra.me.REG[0] = NIT_NULL;
4085 fra.me.REG[0] = p0;
4086 /* ./syntax//mmbuilder.nit:680 */
4087 if (!once_value_1) {
4088 if (!once_value_2) {
4089 fra.me.REG[0] = BOX_NativeString("Object");
4090 REGB0 = TAG_Int(6);
4091 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
4092 once_value_2 = fra.me.REG[0];
4093 register_static_object(&once_value_2);
4094 } else fra.me.REG[0] = once_value_2;
4095 fra.me.REG[0] = fra.me.REG[0];
4096 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
4097 once_value_1 = fra.me.REG[0];
4098 register_static_object(&once_value_1);
4099 } else fra.me.REG[0] = once_value_1;
4100 fra.me.REG[0] = fra.me.REG[0];
4101 goto label3;
4102 label3: while(0);
4103 stack_frame_head = fra.me.prev;
4104 return fra.me.REG[0];
4105 }
4106 void mmbuilder___AFormaldef___accept_class_builder(val_t p0, val_t p1){
4107 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
4108 val_t REGB0;
4109 val_t REGB1;
4110 val_t tmp;
4111 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4112 fra.me.file = LOCATE_mmbuilder;
4113 fra.me.line = 688;
4114 fra.me.meth = LOCATE_mmbuilder___AFormaldef___accept_class_builder;
4115 fra.me.has_broke = 0;
4116 fra.me.REG_size = 6;
4117 fra.me.REG[0] = NIT_NULL;
4118 fra.me.REG[1] = NIT_NULL;
4119 fra.me.REG[2] = NIT_NULL;
4120 fra.me.REG[3] = NIT_NULL;
4121 fra.me.REG[4] = NIT_NULL;
4122 fra.me.REG[5] = NIT_NULL;
4123 fra.me.REG[0] = p0;
4124 fra.me.REG[1] = p1;
4125 /* ./syntax//mmbuilder.nit:688 */
4126 fra.me.REG[2] = fra.me.REG[0];
4127 fra.me.REG[3] = fra.me.REG[1];
4128 /* ./syntax//mmbuilder.nit:690 */
4129 fra.me.REG[4] = CALL_parser_nodes___AFormaldef___n_id(fra.me.REG[2])(fra.me.REG[2]);
4130 fra.me.REG[4] = CALL_syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
4131 /* ./syntax//mmbuilder.nit:691 */
4132 REGB0 = CALL_mmbuilder___ClassBuilderVisitor___local_class_arity(fra.me.REG[3])(fra.me.REG[3]);
4133 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
4134 fra.me.REG[5] = NEW_MMTypeFormalParameter_genericity___MMTypeFormalParameter___init(fra.me.REG[4], REGB0, fra.me.REG[5]);
4135 /* ./syntax//mmbuilder.nit:692 */
4136 ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]) = fra.me.REG[5];
4137 /* ./syntax//mmbuilder.nit:693 */
4138 REGB0 = CALL_mmbuilder___ClassBuilderVisitor___local_class_arity(fra.me.REG[3])(fra.me.REG[3]);
4139 REGB1 = TAG_Int(1);
4140 /* ./../lib/standard//kernel.nit:215 */
4141 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
4142 /* ./syntax//mmbuilder.nit:693 */
4143 CALL_mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB1);
4144 /* ./syntax//mmbuilder.nit:694 */
4145 fra.me.REG[2] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
4146 CALL_genericity___MMLocalClass___register_formal(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
4147 /* ./syntax//mmbuilder.nit:695 */
4148 fra.me.REG[3] = CALL_mmbuilder___ClassBuilderVisitor___formals(fra.me.REG[3])(fra.me.REG[3]);
4149 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4150 if (UNTAG_Bool(REGB1)) {
4151 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 695);
4152 }
4153 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]);
4154 /* ./syntax//mmbuilder.nit:696 */
4155 CALL_SUPER_mmbuilder___AFormaldef___accept_class_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4156 stack_frame_head = fra.me.prev;
4157 return;
4158 }
4159 void mmbuilder___AFormaldef___accept_class_verifier(val_t p0, val_t p1){
4160 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
4161 val_t REGB0;
4162 val_t REGB1;
4163 val_t tmp;
4164 static val_t once_value_2; /* Once value */
4165 static val_t once_value_3; /* Once value */
4166 static val_t once_value_4; /* Once value */
4167 static val_t once_value_5; /* Once value */
4168 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4169 fra.me.file = LOCATE_mmbuilder;
4170 fra.me.line = 699;
4171 fra.me.meth = LOCATE_mmbuilder___AFormaldef___accept_class_verifier;
4172 fra.me.has_broke = 0;
4173 fra.me.REG_size = 6;
4174 fra.me.REG[0] = NIT_NULL;
4175 fra.me.REG[1] = NIT_NULL;
4176 fra.me.REG[2] = NIT_NULL;
4177 fra.me.REG[3] = NIT_NULL;
4178 fra.me.REG[4] = NIT_NULL;
4179 fra.me.REG[5] = NIT_NULL;
4180 fra.me.REG[0] = p0;
4181 fra.me.REG[1] = p1;
4182 /* ./syntax//mmbuilder.nit:699 */
4183 fra.me.REG[2] = fra.me.REG[0];
4184 fra.me.REG[3] = fra.me.REG[1];
4185 /* ./syntax//mmbuilder.nit:701 */
4186 CALL_SUPER_mmbuilder___AFormaldef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4187 /* ./syntax//mmbuilder.nit:702 */
4188 fra.me.REG[1] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
4189 /* ./syntax//mmbuilder.nit:703 */
4190 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
4191 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[0])(fra.me.REG[0]);
4192 /* ./syntax//mmbuilder.nit:704 */
4193 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
4194 if (UNTAG_Bool(REGB0)) {
4195 } else {
4196 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4197 REGB0 = REGB1;
4198 }
4199 if (UNTAG_Bool(REGB0)) {
4200 /* ./syntax//mmbuilder.nit:705 */
4201 fra.me.REG[4] = CALL_parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
4202 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4203 if (UNTAG_Bool(REGB0)) {
4204 } else {
4205 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4206 if (UNTAG_Bool(REGB1)) {
4207 REGB1 = TAG_Bool(false);
4208 REGB0 = REGB1;
4209 } else {
4210 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
4211 REGB0 = REGB1;
4212 }
4213 }
4214 if (UNTAG_Bool(REGB0)) {
4215 /* ./syntax//mmbuilder.nit:706 */
4216 fra.me.REG[4] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]);
4217 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
4218 fra.me.REG[5] = CALL_inheritance___MMModule___type_any(fra.me.REG[5])(fra.me.REG[5]);
4219 fra.me.REG[5] = CALL_static_type___MMType___as_nullable(fra.me.REG[5])(fra.me.REG[5]);
4220 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4221 if (UNTAG_Bool(REGB0)) {
4222 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 706);
4223 }
4224 CALL_genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
4225 } else {
4226 /* ./syntax//mmbuilder.nit:708 */
4227 fra.me.REG[5] = CALL_parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
4228 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4229 if (UNTAG_Bool(REGB0)) {
4230 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 708);
4231 }
4232 fra.me.REG[5] = CALL_syntax_base___AType___get_stype(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
4233 /* ./syntax//mmbuilder.nit:709 */
4234 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4235 if (UNTAG_Bool(REGB0)) {
4236 } else {
4237 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4238 if (UNTAG_Bool(REGB1)) {
4239 REGB1 = TAG_Bool(false);
4240 REGB0 = REGB1;
4241 } else {
4242 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
4243 REGB0 = REGB1;
4244 }
4245 }
4246 if (UNTAG_Bool(REGB0)) {
4247 goto label1;
4248 }
4249 /* ./syntax//mmbuilder.nit:710 */
4250 fra.me.REG[4] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]);
4251 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4252 if (UNTAG_Bool(REGB0)) {
4253 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 710);
4254 }
4255 CALL_genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
4256 }
4257 } else {
4258 /* ./syntax//mmbuilder.nit:713 */
4259 fra.me.REG[5] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]);
4260 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4261 if (UNTAG_Bool(REGB0)) {
4262 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 713);
4263 }
4264 REGB0 = CALL_genericity___MMTypeFormalParameter___position(fra.me.REG[5])(fra.me.REG[5]);
4265 fra.me.REG[0] = CALL_genericity___MMLocalClass___get_formal(fra.me.REG[0])(fra.me.REG[0], REGB0);
4266 fra.me.REG[0] = CALL_type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]);
4267 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
4268 fra.me.REG[5] = CALL_static_type___MMType___for_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
4269 /* ./syntax//mmbuilder.nit:714 */
4270 fra.me.REG[0] = CALL_parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
4271 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4272 if (UNTAG_Bool(REGB0)) {
4273 } else {
4274 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4275 if (UNTAG_Bool(REGB1)) {
4276 REGB1 = TAG_Bool(false);
4277 REGB0 = REGB1;
4278 } else {
4279 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
4280 REGB0 = REGB1;
4281 }
4282 }
4283 if (UNTAG_Bool(REGB0)) {
4284 /* ./syntax//mmbuilder.nit:715 */
4285 fra.me.REG[0] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]);
4286 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4287 if (UNTAG_Bool(REGB0)) {
4288 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 715);
4289 }
4290 CALL_genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
4291 } else {
4292 /* ./syntax//mmbuilder.nit:717 */
4293 fra.me.REG[0] = CALL_parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
4294 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4295 if (UNTAG_Bool(REGB0)) {
4296 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 717);
4297 }
4298 fra.me.REG[0] = CALL_syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
4299 /* ./syntax//mmbuilder.nit:718 */
4300 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4301 if (UNTAG_Bool(REGB0)) {
4302 } else {
4303 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4304 if (UNTAG_Bool(REGB1)) {
4305 REGB1 = TAG_Bool(false);
4306 REGB0 = REGB1;
4307 } else {
4308 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
4309 REGB0 = REGB1;
4310 }
4311 }
4312 if (UNTAG_Bool(REGB0)) {
4313 goto label1;
4314 }
4315 /* ./syntax//mmbuilder.nit:719 */
4316 fra.me.REG[4] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]);
4317 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4318 if (UNTAG_Bool(REGB0)) {
4319 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 719);
4320 }
4321 CALL_genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
4322 /* ./syntax//mmbuilder.nit:720 */
4323 fra.me.REG[0] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]);
4324 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4325 if (UNTAG_Bool(REGB0)) {
4326 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 720);
4327 }
4328 fra.me.REG[0] = CALL_type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]);
4329 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[5]));
4330 if (UNTAG_Bool(REGB0)) {
4331 } else {
4332 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
4333 REGB0 = REGB1;
4334 }
4335 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4336 if (UNTAG_Bool(REGB0)) {
4337 /* ./syntax//mmbuilder.nit:721 */
4338 REGB0 = TAG_Int(7);
4339 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0);
4340 if (!once_value_2) {
4341 fra.me.REG[4] = BOX_NativeString("Redef error: Cannot change formal parameter type of class ");
4342 REGB0 = TAG_Int(58);
4343 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
4344 once_value_2 = fra.me.REG[4];
4345 register_static_object(&once_value_2);
4346 } else fra.me.REG[4] = once_value_2;
4347 fra.me.REG[4] = fra.me.REG[4];
4348 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4349 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
4350 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4351 if (!once_value_3) {
4352 fra.me.REG[1] = BOX_NativeString("; got ");
4353 REGB0 = TAG_Int(6);
4354 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
4355 once_value_3 = fra.me.REG[1];
4356 register_static_object(&once_value_3);
4357 } else fra.me.REG[1] = once_value_3;
4358 fra.me.REG[1] = fra.me.REG[1];
4359 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4360 fra.me.REG[1] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]);
4361 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4362 if (UNTAG_Bool(REGB0)) {
4363 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 721);
4364 }
4365 fra.me.REG[1] = CALL_type_formal___MMTypeFormal___bound(fra.me.REG[1])(fra.me.REG[1]);
4366 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
4367 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4368 if (!once_value_4) {
4369 fra.me.REG[1] = BOX_NativeString(", expected ");
4370 REGB0 = TAG_Int(11);
4371 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
4372 once_value_4 = fra.me.REG[1];
4373 register_static_object(&once_value_4);
4374 } else fra.me.REG[1] = once_value_4;
4375 fra.me.REG[1] = fra.me.REG[1];
4376 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4377 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4378 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
4379 if (!once_value_5) {
4380 fra.me.REG[5] = BOX_NativeString(".");
4381 REGB0 = TAG_Int(1);
4382 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
4383 once_value_5 = fra.me.REG[5];
4384 register_static_object(&once_value_5);
4385 } else fra.me.REG[5] = once_value_5;
4386 fra.me.REG[5] = fra.me.REG[5];
4387 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
4388 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
4389 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
4390 }
4391 }
4392 }
4393 label1: while(0);
4394 stack_frame_head = fra.me.prev;
4395 return;
4396 }
4397 val_t mmbuilder___ASuperclass___ancestor(val_t p0){
4398 struct {struct stack_frame_t me;} fra;
4399 val_t tmp;
4400 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4401 fra.me.file = LOCATE_mmbuilder;
4402 fra.me.line = 729;
4403 fra.me.meth = LOCATE_mmbuilder___ASuperclass___ancestor;
4404 fra.me.has_broke = 0;
4405 fra.me.REG_size = 1;
4406 fra.me.REG[0] = NIT_NULL;
4407 fra.me.REG[0] = p0;
4408 /* ./syntax//mmbuilder.nit:729 */
4409 fra.me.REG[0] = ATTR_mmbuilder___ASuperclass____ancestor(fra.me.REG[0]);
4410 stack_frame_head = fra.me.prev;
4411 return fra.me.REG[0];
4412 }
4413 void mmbuilder___ASuperclass___accept_class_specialization_builder(val_t p0, val_t p1){
4414 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4415 val_t REGB0;
4416 val_t REGB1;
4417 val_t tmp;
4418 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4419 fra.me.file = LOCATE_mmbuilder;
4420 fra.me.line = 731;
4421 fra.me.meth = LOCATE_mmbuilder___ASuperclass___accept_class_specialization_builder;
4422 fra.me.has_broke = 0;
4423 fra.me.REG_size = 4;
4424 fra.me.REG[0] = NIT_NULL;
4425 fra.me.REG[1] = NIT_NULL;
4426 fra.me.REG[2] = NIT_NULL;
4427 fra.me.REG[3] = NIT_NULL;
4428 fra.me.REG[0] = p0;
4429 fra.me.REG[1] = p1;
4430 /* ./syntax//mmbuilder.nit:731 */
4431 fra.me.REG[2] = fra.me.REG[0];
4432 fra.me.REG[3] = fra.me.REG[1];
4433 /* ./syntax//mmbuilder.nit:733 */
4434 CALL_SUPER_mmbuilder___ASuperclass___accept_class_specialization_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4435 /* ./syntax//mmbuilder.nit:734 */
4436 fra.me.REG[1] = CALL_parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
4437 fra.me.REG[1] = CALL_syntax_base___AType___get_local_class(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
4438 /* ./syntax//mmbuilder.nit:735 */
4439 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4440 if (UNTAG_Bool(REGB0)) {
4441 } else {
4442 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4443 if (UNTAG_Bool(REGB1)) {
4444 REGB1 = TAG_Bool(false);
4445 REGB0 = REGB1;
4446 } else {
4447 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
4448 REGB0 = REGB1;
4449 }
4450 }
4451 if (UNTAG_Bool(REGB0)) {
4452 goto label1;
4453 }
4454 /* ./syntax//mmbuilder.nit:736 */
4455 fra.me.REG[1] = NEW_MMSrcAncestor_mmbuilder___MMSrcAncestor___init(fra.me.REG[1]);
4456 /* ./syntax//mmbuilder.nit:737 */
4457 ATTR_mmbuilder___ASuperclass____ancestor(fra.me.REG[2]) = fra.me.REG[1];
4458 /* ./syntax//mmbuilder.nit:738 */
4459 fra.me.REG[3] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
4460 CALL_inheritance___MMLocalClass___add_direct_parent(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4461 label1: while(0);
4462 stack_frame_head = fra.me.prev;
4463 return;
4464 }
4465 void mmbuilder___ASuperclass___accept_class_ancestor_builder(val_t p0, val_t p1){
4466 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4467 val_t REGB0;
4468 val_t tmp;
4469 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4470 fra.me.file = LOCATE_mmbuilder;
4471 fra.me.line = 741;
4472 fra.me.meth = LOCATE_mmbuilder___ASuperclass___accept_class_ancestor_builder;
4473 fra.me.has_broke = 0;
4474 fra.me.REG_size = 4;
4475 fra.me.REG[0] = NIT_NULL;
4476 fra.me.REG[1] = NIT_NULL;
4477 fra.me.REG[2] = NIT_NULL;
4478 fra.me.REG[3] = NIT_NULL;
4479 fra.me.REG[0] = p0;
4480 fra.me.REG[1] = p1;
4481 /* ./syntax//mmbuilder.nit:741 */
4482 fra.me.REG[2] = fra.me.REG[0];
4483 fra.me.REG[3] = fra.me.REG[1];
4484 /* ./syntax//mmbuilder.nit:743 */
4485 CALL_SUPER_mmbuilder___ASuperclass___accept_class_ancestor_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4486 /* ./syntax//mmbuilder.nit:744 */
4487 fra.me.REG[1] = ATTR_mmbuilder___ASuperclass____ancestor(fra.me.REG[2]);
4488 fra.me.REG[0] = CALL_parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
4489 fra.me.REG[0] = CALL_syntax_base___AType___get_unchecked_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
4490 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4491 if (UNTAG_Bool(REGB0)) {
4492 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 744);
4493 }
4494 CALL_static_type___MMAncestor___stype__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4495 /* ./syntax//mmbuilder.nit:745 */
4496 fra.me.REG[2] = ATTR_mmbuilder___ASuperclass____ancestor(fra.me.REG[2]);
4497 fra.me.REG[3] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
4498 fra.me.REG[3] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[3])(fra.me.REG[3]);
4499 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4500 if (UNTAG_Bool(REGB0)) {
4501 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 745);
4502 }
4503 CALL_static_type___MMAncestor___inheriter__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4504 stack_frame_head = fra.me.prev;
4505 return;
4506 }
4507 void mmbuilder___ASuperclass___accept_class_verifier(val_t p0, val_t p1){
4508 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4509 val_t tmp;
4510 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4511 fra.me.file = LOCATE_mmbuilder;
4512 fra.me.line = 748;
4513 fra.me.meth = LOCATE_mmbuilder___ASuperclass___accept_class_verifier;
4514 fra.me.has_broke = 0;
4515 fra.me.REG_size = 4;
4516 fra.me.REG[0] = NIT_NULL;
4517 fra.me.REG[1] = NIT_NULL;
4518 fra.me.REG[2] = NIT_NULL;
4519 fra.me.REG[3] = NIT_NULL;
4520 fra.me.REG[0] = p0;
4521 fra.me.REG[1] = p1;
4522 /* ./syntax//mmbuilder.nit:748 */
4523 fra.me.REG[2] = fra.me.REG[0];
4524 fra.me.REG[3] = fra.me.REG[1];
4525 /* ./syntax//mmbuilder.nit:750 */
4526 CALL_SUPER_mmbuilder___ASuperclass___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4527 /* ./syntax//mmbuilder.nit:751 */
4528 fra.me.REG[2] = CALL_parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
4529 CALL_syntax_base___AType___check_conform(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4530 stack_frame_head = fra.me.prev;
4531 return;
4532 }
4533 void mmbuilder___APropdef___process_and_check(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
4534 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4535 val_t REGB0;
4536 val_t REGB1;
4537 val_t REGB2;
4538 val_t REGB3;
4539 val_t tmp;
4540 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4541 fra.me.file = LOCATE_mmbuilder;
4542 fra.me.line = 756;
4543 fra.me.meth = LOCATE_mmbuilder___APropdef___process_and_check;
4544 fra.me.has_broke = 0;
4545 fra.me.REG_size = 4;
4546 fra.me.REG[0] = NIT_NULL;
4547 fra.me.REG[1] = NIT_NULL;
4548 fra.me.REG[2] = NIT_NULL;
4549 fra.me.REG[3] = NIT_NULL;
4550 fra.me.REG[0] = p0;
4551 fra.me.REG[1] = p1;
4552 fra.me.REG[2] = p2;
4553 REGB0 = p3;
4554 REGB1 = p4;
4555 /* ./syntax//mmbuilder.nit:764 */
4556 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
4557 fra.me.REG[3] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[3])(fra.me.REG[3]);
4558 REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[2]));
4559 if (UNTAG_Bool(REGB2)) {
4560 } else {
4561 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
4562 REGB2 = REGB3;
4563 }
4564 if (UNTAG_Bool(REGB2)) {
4565 /* ./syntax//mmbuilder.nit:765 */
4566 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);
4567 } else {
4568 /* ./syntax//mmbuilder.nit:767 */
4569 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);
4570 }
4571 stack_frame_head = fra.me.prev;
4572 return;
4573 }
4574 void mmbuilder___APropdef___do_and_check_intro(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
4575 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
4576 val_t REGB0;
4577 val_t REGB1;
4578 val_t REGB2;
4579 val_t REGB3;
4580 val_t tmp;
4581 static val_t once_value_1; /* Once value */
4582 static val_t once_value_2; /* Once value */
4583 static val_t once_value_3; /* Once value */
4584 static val_t once_value_4; /* Once value */
4585 static val_t once_value_5; /* Once value */
4586 static val_t once_value_6; /* Once value */
4587 static val_t once_value_7; /* Once value */
4588 static val_t once_value_8; /* Once value */
4589 static val_t once_value_9; /* Once value */
4590 static val_t once_value_10; /* Once value */
4591 static val_t once_value_11; /* Once value */
4592 static val_t once_value_12; /* Once value */
4593 static val_t once_value_13; /* Once value */
4594 static val_t once_value_14; /* Once value */
4595 static val_t once_value_15; /* Once value */
4596 static val_t once_value_16; /* Once value */
4597 static val_t once_value_17; /* Once value */
4598 static val_t once_value_18; /* Once value */
4599 static val_t once_value_19; /* Once value */
4600 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4601 fra.me.file = LOCATE_mmbuilder;
4602 fra.me.line = 771;
4603 fra.me.meth = LOCATE_mmbuilder___APropdef___do_and_check_intro;
4604 fra.me.has_broke = 0;
4605 fra.me.REG_size = 7;
4606 fra.me.REG[0] = NIT_NULL;
4607 fra.me.REG[1] = NIT_NULL;
4608 fra.me.REG[2] = NIT_NULL;
4609 fra.me.REG[3] = NIT_NULL;
4610 fra.me.REG[4] = NIT_NULL;
4611 fra.me.REG[5] = NIT_NULL;
4612 fra.me.REG[6] = NIT_NULL;
4613 fra.me.REG[0] = p0;
4614 fra.me.REG[1] = p1;
4615 fra.me.REG[2] = p2;
4616 REGB0 = p3;
4617 REGB1 = p4;
4618 /* ./syntax//mmbuilder.nit:774 */
4619 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
4620 /* ./syntax//mmbuilder.nit:775 */
4621 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4622 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
4623 /* ./syntax//mmbuilder.nit:776 */
4624 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
4625 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
4626 REGB2 = CALL_abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[5])(fra.me.REG[5]);
4627 REGB3 = TAG_Int(3);
4628 /* ./../lib/standard//kernel.nit:213 */
4629 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
4630 /* ./syntax//mmbuilder.nit:776 */
4631 if (UNTAG_Bool(REGB3)) {
4632 /* ./syntax//mmbuilder.nit:778 */
4633 REGB3 = TAG_Int(3);
4634 REGB1 = REGB3;
4635 }
4636 /* ./syntax//mmbuilder.nit:780 */
4637 CALL_abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[3])(fra.me.REG[3], REGB1);
4638 /* ./syntax//mmbuilder.nit:781 */
4639 if (UNTAG_Bool(REGB0)) {
4640 /* ./syntax//mmbuilder.nit:782 */
4641 REGB0 = TAG_Int(5);
4642 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
4643 if (!once_value_1) {
4644 fra.me.REG[6] = BOX_NativeString("Error: No property ");
4645 REGB0 = TAG_Int(19);
4646 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4647 once_value_1 = fra.me.REG[6];
4648 register_static_object(&once_value_1);
4649 } else fra.me.REG[6] = once_value_1;
4650 fra.me.REG[6] = fra.me.REG[6];
4651 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4652 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4653 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4654 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4655 if (!once_value_2) {
4656 fra.me.REG[6] = BOX_NativeString("::");
4657 REGB0 = TAG_Int(2);
4658 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4659 once_value_2 = fra.me.REG[6];
4660 register_static_object(&once_value_2);
4661 } else fra.me.REG[6] = once_value_2;
4662 fra.me.REG[6] = fra.me.REG[6];
4663 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4664 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4665 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4666 if (!once_value_3) {
4667 fra.me.REG[6] = BOX_NativeString(" is inherited. Remove the redef keyword to define a new property.");
4668 REGB0 = TAG_Int(65);
4669 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4670 once_value_3 = fra.me.REG[6];
4671 register_static_object(&once_value_3);
4672 } else fra.me.REG[6] = once_value_3;
4673 fra.me.REG[6] = fra.me.REG[6];
4674 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4675 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4676 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
4677 }
4678 /* ./syntax//mmbuilder.nit:784 */
4679 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_attribute(fra.me.REG[3])(fra.me.REG[3]);
4680 if (UNTAG_Bool(REGB0)) {
4681 /* ./syntax//mmbuilder.nit:785 */
4682 REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]);
4683 if (UNTAG_Bool(REGB0)) {
4684 /* ./syntax//mmbuilder.nit:786 */
4685 REGB0 = TAG_Int(5);
4686 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
4687 if (!once_value_4) {
4688 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
4689 REGB0 = TAG_Int(35);
4690 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4691 once_value_4 = fra.me.REG[6];
4692 register_static_object(&once_value_4);
4693 } else fra.me.REG[6] = once_value_4;
4694 fra.me.REG[6] = fra.me.REG[6];
4695 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4696 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4697 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4698 if (!once_value_5) {
4699 fra.me.REG[6] = BOX_NativeString(" in the interface ");
4700 REGB0 = TAG_Int(18);
4701 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4702 once_value_5 = fra.me.REG[6];
4703 register_static_object(&once_value_5);
4704 } else fra.me.REG[6] = once_value_5;
4705 fra.me.REG[6] = fra.me.REG[6];
4706 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4707 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4708 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4709 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4710 if (!once_value_6) {
4711 fra.me.REG[6] = BOX_NativeString(".");
4712 REGB0 = TAG_Int(1);
4713 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4714 once_value_6 = fra.me.REG[6];
4715 register_static_object(&once_value_6);
4716 } else fra.me.REG[6] = once_value_6;
4717 fra.me.REG[6] = fra.me.REG[6];
4718 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4719 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4720 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
4721 } else {
4722 /* ./syntax//mmbuilder.nit:787 */
4723 REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[4])(fra.me.REG[4]);
4724 if (UNTAG_Bool(REGB0)) {
4725 /* ./syntax//mmbuilder.nit:788 */
4726 REGB0 = TAG_Int(5);
4727 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
4728 if (!once_value_7) {
4729 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
4730 REGB0 = TAG_Int(35);
4731 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4732 once_value_7 = fra.me.REG[6];
4733 register_static_object(&once_value_7);
4734 } else fra.me.REG[6] = once_value_7;
4735 fra.me.REG[6] = fra.me.REG[6];
4736 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4737 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4738 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4739 if (!once_value_8) {
4740 fra.me.REG[6] = BOX_NativeString(" in the enum class ");
4741 REGB0 = TAG_Int(19);
4742 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4743 once_value_8 = fra.me.REG[6];
4744 register_static_object(&once_value_8);
4745 } else fra.me.REG[6] = once_value_8;
4746 fra.me.REG[6] = fra.me.REG[6];
4747 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4748 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4749 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4750 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4751 if (!once_value_9) {
4752 fra.me.REG[6] = BOX_NativeString(".");
4753 REGB0 = TAG_Int(1);
4754 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4755 once_value_9 = fra.me.REG[6];
4756 register_static_object(&once_value_9);
4757 } else fra.me.REG[6] = once_value_9;
4758 fra.me.REG[6] = fra.me.REG[6];
4759 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4760 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4761 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
4762 } else {
4763 /* ./syntax//mmbuilder.nit:789 */
4764 REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[4])(fra.me.REG[4]);
4765 if (UNTAG_Bool(REGB0)) {
4766 /* ./syntax//mmbuilder.nit:790 */
4767 REGB0 = TAG_Int(5);
4768 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
4769 if (!once_value_10) {
4770 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
4771 REGB0 = TAG_Int(35);
4772 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4773 once_value_10 = fra.me.REG[6];
4774 register_static_object(&once_value_10);
4775 } else fra.me.REG[6] = once_value_10;
4776 fra.me.REG[6] = fra.me.REG[6];
4777 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4778 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4779 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4780 if (!once_value_11) {
4781 fra.me.REG[6] = BOX_NativeString(" in the extern class ");
4782 REGB0 = TAG_Int(21);
4783 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4784 once_value_11 = fra.me.REG[6];
4785 register_static_object(&once_value_11);
4786 } else fra.me.REG[6] = once_value_11;
4787 fra.me.REG[6] = fra.me.REG[6];
4788 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4789 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4790 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4791 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4792 if (!once_value_12) {
4793 fra.me.REG[6] = BOX_NativeString(".");
4794 REGB0 = TAG_Int(1);
4795 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4796 once_value_12 = fra.me.REG[6];
4797 register_static_object(&once_value_12);
4798 } else fra.me.REG[6] = once_value_12;
4799 fra.me.REG[6] = fra.me.REG[6];
4800 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4801 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4802 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
4803 }
4804 }
4805 }
4806 } else {
4807 /* ./syntax//mmbuilder.nit:792 */
4808 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
4809 if (UNTAG_Bool(REGB0)) {
4810 /* ./syntax//mmbuilder.nit:793 */
4811 REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]);
4812 if (UNTAG_Bool(REGB0)) {
4813 /* ./syntax//mmbuilder.nit:794 */
4814 REGB0 = TAG_Int(5);
4815 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
4816 if (!once_value_13) {
4817 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define a constructor ");
4818 REGB0 = TAG_Int(39);
4819 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4820 once_value_13 = fra.me.REG[6];
4821 register_static_object(&once_value_13);
4822 } else fra.me.REG[6] = once_value_13;
4823 fra.me.REG[6] = fra.me.REG[6];
4824 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4825 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4826 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4827 if (!once_value_14) {
4828 fra.me.REG[6] = BOX_NativeString(" in the class ");
4829 REGB0 = TAG_Int(14);
4830 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4831 once_value_14 = fra.me.REG[6];
4832 register_static_object(&once_value_14);
4833 } else fra.me.REG[6] = once_value_14;
4834 fra.me.REG[6] = fra.me.REG[6];
4835 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4836 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4837 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4838 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4839 if (!once_value_15) {
4840 fra.me.REG[6] = BOX_NativeString(".");
4841 REGB0 = TAG_Int(1);
4842 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4843 once_value_15 = fra.me.REG[6];
4844 register_static_object(&once_value_15);
4845 } else fra.me.REG[6] = once_value_15;
4846 fra.me.REG[6] = fra.me.REG[6];
4847 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4848 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4849 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
4850 } else {
4851 /* ./syntax//mmbuilder.nit:795 */
4852 REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[4])(fra.me.REG[4]);
4853 if (UNTAG_Bool(REGB0)) {
4854 /* ./syntax//mmbuilder.nit:796 */
4855 REGB0 = TAG_Int(5);
4856 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
4857 if (!once_value_16) {
4858 fra.me.REG[5] = BOX_NativeString("Error: Attempt to define a constructor ");
4859 REGB0 = TAG_Int(39);
4860 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
4861 once_value_16 = fra.me.REG[5];
4862 register_static_object(&once_value_16);
4863 } else fra.me.REG[5] = once_value_16;
4864 fra.me.REG[5] = fra.me.REG[5];
4865 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
4866 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4867 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
4868 if (!once_value_17) {
4869 fra.me.REG[5] = BOX_NativeString(" in the enum ");
4870 REGB0 = TAG_Int(13);
4871 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
4872 once_value_17 = fra.me.REG[5];
4873 register_static_object(&once_value_17);
4874 } else fra.me.REG[5] = once_value_17;
4875 fra.me.REG[5] = fra.me.REG[5];
4876 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
4877 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4878 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4879 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
4880 if (!once_value_18) {
4881 fra.me.REG[5] = BOX_NativeString(".");
4882 REGB0 = TAG_Int(1);
4883 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
4884 once_value_18 = fra.me.REG[5];
4885 register_static_object(&once_value_18);
4886 } else fra.me.REG[5] = once_value_18;
4887 fra.me.REG[5] = fra.me.REG[5];
4888 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
4889 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4890 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
4891 }
4892 }
4893 }
4894 }
4895 /* ./syntax//mmbuilder.nit:801 */
4896 fra.me.REG[4] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
4897 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4898 if (UNTAG_Bool(REGB0)) {
4899 } else {
4900 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4901 if (UNTAG_Bool(REGB1)) {
4902 REGB1 = TAG_Bool(false);
4903 REGB0 = REGB1;
4904 } else {
4905 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
4906 REGB0 = REGB1;
4907 }
4908 }
4909 if (UNTAG_Bool(REGB0)) {
4910 /* ./syntax//mmbuilder.nit:802 */
4911 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
4912 if (UNTAG_Bool(REGB0)) {
4913 /* ./syntax//mmbuilder.nit:803 */
4914 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4915 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
4916 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___super_methods_named(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
4917 /* ./syntax//mmbuilder.nit:804 */
4918 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]);
4919 }
4920 /* ./syntax//mmbuilder.nit:806 */
4921 fra.me.REG[4] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
4922 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4923 if (UNTAG_Bool(REGB0)) {
4924 } else {
4925 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4926 if (UNTAG_Bool(REGB1)) {
4927 REGB1 = TAG_Bool(false);
4928 REGB0 = REGB1;
4929 } else {
4930 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
4931 REGB0 = REGB1;
4932 }
4933 }
4934 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4935 if (UNTAG_Bool(REGB0)) {
4936 REGB0 = TAG_Bool(true);
4937 } else {
4938 fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
4939 REGB1 = CALL_mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[4])(fra.me.REG[4]);
4940 REGB0 = REGB1;
4941 }
4942 if (UNTAG_Bool(REGB0)) {
4943 } else {
4944 /* ./syntax//mmbuilder.nit:808 */
4945 fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
4946 fra.me.REG[4] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
4947 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[4])(fra.me.REG[4]);
4948 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4949 if (UNTAG_Bool(REGB0)) {
4950 /* ./syntax//mmbuilder.nit:809 */
4951 fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
4952 fra.me.REG[4] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
4953 fra.me.REG[4] = CALL_abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
4954 if (!once_value_19) {
4955 fra.me.REG[0] = BOX_NativeString("Error: Untyped parameter.");
4956 REGB0 = TAG_Int(25);
4957 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
4958 once_value_19 = fra.me.REG[0];
4959 register_static_object(&once_value_19);
4960 } else fra.me.REG[0] = once_value_19;
4961 fra.me.REG[0] = fra.me.REG[0];
4962 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]);
4963 } else {
4964 /* ./syntax//mmbuilder.nit:811 */
4965 fra.me.REG[0] = NEW_Array_array___Array___init();
4966 fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
4967 fra.me.REG[4] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
4968 fra.me.REG[4] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[4]);
4969 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
4970 /* ./syntax//mmbuilder.nit:812 */
4971 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
4972 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[1])(fra.me.REG[1]);
4973 /* ./../lib/standard//collection//array.nit:234 */
4974 REGB0 = TAG_Int(0);
4975 /* ./../lib/standard//collection//array.nit:235 */
4976 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
4977 if (UNTAG_Bool(REGB1)) {
4978 } else {
4979 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
4980 }
4981 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
4982 /* ./../lib/standard//collection//array.nit:236 */
4983 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[1]);
4984 /* ./../lib/standard//collection//array.nit:237 */
4985 while(1) {
4986 /* ./../lib/standard//collection//array.nit:23 */
4987 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
4988 if (UNTAG_Bool(REGB1)) {
4989 } else {
4990 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
4991 }
4992 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
4993 /* ./../lib/standard//kernel.nit:212 */
4994 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
4995 /* ./../lib/standard//collection//array.nit:237 */
4996 if (UNTAG_Bool(REGB1)) {
4997 /* ./../lib/standard//collection//array.nit:238 */
4998 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4999 if (UNTAG_Bool(REGB1)) {
5000 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
5001 }
5002 /* ./../lib/standard//collection//array.nit:654 */
5003 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
5004 /* ./syntax//mmbuilder.nit:813 */
5005 fra.me.REG[3] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
5006 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5007 if (UNTAG_Bool(REGB1)) {
5008 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 813);
5009 }
5010 fra.me.REG[3] = CALL_static_type___MMSignature___closures(fra.me.REG[3])(fra.me.REG[3]);
5011 fra.me.REG[0] = CALL_syntax_base___AClosureDecl___variable(fra.me.REG[0])(fra.me.REG[0]);
5012 fra.me.REG[0] = CALL_syntax_base___ClosureVariable___closure(fra.me.REG[0])(fra.me.REG[0]);
5013 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
5014 /* ./../lib/standard//collection//array.nit:239 */
5015 REGB1 = TAG_Int(1);
5016 /* ./../lib/standard//kernel.nit:215 */
5017 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
5018 /* ./../lib/standard//collection//array.nit:239 */
5019 REGB0 = REGB1;
5020 } else {
5021 /* ./../lib/standard//collection//array.nit:237 */
5022 goto label20;
5023 }
5024 }
5025 label20: while(0);
5026 }
5027 }
5028 }
5029 stack_frame_head = fra.me.prev;
5030 return;
5031 }
5032 void mmbuilder___APropdef___inherit_signature(val_t p0, val_t p1, val_t p2, val_t p3){
5033 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
5034 val_t REGB0;
5035 val_t REGB1;
5036 val_t REGB2;
5037 val_t REGB3;
5038 val_t REGB4;
5039 val_t tmp;
5040 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5041 fra.me.file = LOCATE_mmbuilder;
5042 fra.me.line = 819;
5043 fra.me.meth = LOCATE_mmbuilder___APropdef___inherit_signature;
5044 fra.me.has_broke = 0;
5045 fra.me.REG_size = 11;
5046 fra.me.REG[0] = NIT_NULL;
5047 fra.me.REG[1] = NIT_NULL;
5048 fra.me.REG[2] = NIT_NULL;
5049 fra.me.REG[3] = NIT_NULL;
5050 fra.me.REG[4] = NIT_NULL;
5051 fra.me.REG[5] = NIT_NULL;
5052 fra.me.REG[6] = NIT_NULL;
5053 fra.me.REG[7] = NIT_NULL;
5054 fra.me.REG[8] = NIT_NULL;
5055 fra.me.REG[9] = NIT_NULL;
5056 fra.me.REG[10] = NIT_NULL;
5057 fra.me.REG[0] = p0;
5058 fra.me.REG[1] = p1;
5059 fra.me.REG[2] = p2;
5060 fra.me.REG[3] = p3;
5061 /* ./syntax//mmbuilder.nit:821 */
5062 fra.me.REG[0] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
5063 /* ./../lib/standard//collection//array.nit:234 */
5064 REGB0 = TAG_Int(0);
5065 /* ./../lib/standard//collection//array.nit:235 */
5066 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
5067 if (UNTAG_Bool(REGB1)) {
5068 } else {
5069 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
5070 }
5071 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
5072 /* ./../lib/standard//collection//array.nit:236 */
5073 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[3]);
5074 /* ./../lib/standard//collection//array.nit:237 */
5075 while(1) {
5076 /* ./../lib/standard//collection//array.nit:23 */
5077 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
5078 if (UNTAG_Bool(REGB1)) {
5079 } else {
5080 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
5081 }
5082 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
5083 /* ./../lib/standard//kernel.nit:212 */
5084 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
5085 /* ./../lib/standard//collection//array.nit:237 */
5086 if (UNTAG_Bool(REGB1)) {
5087 /* ./../lib/standard//collection//array.nit:238 */
5088 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5089 if (UNTAG_Bool(REGB1)) {
5090 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
5091 }
5092 /* ./../lib/standard//collection//array.nit:654 */
5093 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
5094 /* ./syntax//mmbuilder.nit:823 */
5095 fra.me.REG[5] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[5])(fra.me.REG[5]);
5096 fra.me.REG[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
5097 fra.me.REG[6] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[6])(fra.me.REG[6]);
5098 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
5099 if (UNTAG_Bool(REGB1)) {
5100 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 823);
5101 }
5102 fra.me.REG[6] = CALL_static_type___MMSignature___adaptation_to(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5103 /* ./syntax//mmbuilder.nit:825 */
5104 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5105 if (UNTAG_Bool(REGB1)) {
5106 } else {
5107 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5108 if (UNTAG_Bool(REGB2)) {
5109 REGB2 = TAG_Bool(false);
5110 REGB1 = REGB2;
5111 } else {
5112 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
5113 REGB1 = REGB2;
5114 }
5115 }
5116 if (UNTAG_Bool(REGB1)) {
5117 /* ./syntax//mmbuilder.nit:826 */
5118 fra.me.REG[5] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5119 fra.me.REG[5] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[5])(fra.me.REG[5]);
5120 /* ./../lib/standard//collection//array.nit:23 */
5121 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
5122 if (UNTAG_Bool(REGB1)) {
5123 } else {
5124 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
5125 }
5126 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]);
5127 /* ./syntax//mmbuilder.nit:826 */
5128 REGB2 = CALL_static_type___MMSignature___arity(fra.me.REG[6])(fra.me.REG[6]);
5129 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
5130 if (UNTAG_Bool(REGB3)) {
5131 } else {
5132 /* ./../lib/standard//kernel.nit:207 */
5133 REGB2 = TAG_Bool((REGB1)==(REGB2));
5134 /* ./syntax//mmbuilder.nit:826 */
5135 REGB3 = REGB2;
5136 }
5137 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
5138 if (UNTAG_Bool(REGB3)) {
5139 /* ./syntax//mmbuilder.nit:827 */
5140 goto label1;
5141 }
5142 /* ./syntax//mmbuilder.nit:829 */
5143 fra.me.REG[5] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5144 fra.me.REG[5] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[5])(fra.me.REG[5]);
5145 /* ./../lib/standard//collection//array.nit:234 */
5146 REGB3 = TAG_Int(0);
5147 /* ./../lib/standard//collection//array.nit:235 */
5148 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
5149 if (UNTAG_Bool(REGB2)) {
5150 } else {
5151 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
5152 }
5153 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]);
5154 /* ./../lib/standard//collection//array.nit:236 */
5155 fra.me.REG[7] = ATTR_array___Array____items(fra.me.REG[5]);
5156 /* ./../lib/standard//collection//array.nit:237 */
5157 while(1) {
5158 /* ./../lib/standard//collection//array.nit:23 */
5159 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
5160 if (UNTAG_Bool(REGB2)) {
5161 } else {
5162 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
5163 }
5164 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]);
5165 /* ./../lib/standard//kernel.nit:212 */
5166 REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB2));
5167 /* ./../lib/standard//collection//array.nit:237 */
5168 if (UNTAG_Bool(REGB2)) {
5169 /* ./../lib/standard//collection//array.nit:238 */
5170 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5171 if (UNTAG_Bool(REGB2)) {
5172 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
5173 }
5174 /* ./../lib/standard//collection//array.nit:654 */
5175 fra.me.REG[8] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB3)];
5176 /* ./syntax//mmbuilder.nit:830 */
5177 REGB2 = CALL_syntax_base___AParam___position(fra.me.REG[8])(fra.me.REG[8]);
5178 fra.me.REG[9] = CALL_static_type___MMSignature_____bra(fra.me.REG[6])(fra.me.REG[6], REGB2);
5179 /* ./syntax//mmbuilder.nit:831 */
5180 CALL_mmbuilder___AParam___stype__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
5181 /* ./syntax//mmbuilder.nit:832 */
5182 REGB2 = CALL_syntax_base___AParam___position(fra.me.REG[8])(fra.me.REG[8]);
5183 REGB1 = CALL_vararg___MMSignature___vararg_rank(fra.me.REG[6])(fra.me.REG[6]);
5184 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
5185 if (UNTAG_Bool(REGB4)) {
5186 } else {
5187 /* ./../lib/standard//kernel.nit:207 */
5188 REGB1 = TAG_Bool((REGB2)==(REGB1));
5189 /* ./syntax//mmbuilder.nit:832 */
5190 REGB4 = REGB1;
5191 }
5192 if (UNTAG_Bool(REGB4)) {
5193 /* ./syntax//mmbuilder.nit:833 */
5194 fra.me.REG[10] = CALL_syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
5195 fra.me.REG[9] = fra.me.REG[10];
5196 }
5197 /* ./syntax//mmbuilder.nit:835 */
5198 fra.me.REG[8] = CALL_syntax_base___AParam___variable(fra.me.REG[8])(fra.me.REG[8]);
5199 CALL_syntax_base___Variable___stype__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
5200 /* ./../lib/standard//collection//array.nit:239 */
5201 REGB4 = TAG_Int(1);
5202 /* ./../lib/standard//kernel.nit:215 */
5203 REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB4));
5204 /* ./../lib/standard//collection//array.nit:239 */
5205 REGB3 = REGB4;
5206 } else {
5207 /* ./../lib/standard//collection//array.nit:237 */
5208 goto label2;
5209 }
5210 }
5211 label2: while(0);
5212 /* ./syntax//mmbuilder.nit:838 */
5213 fra.me.REG[0] = fra.me.REG[6];
5214 /* ./syntax//mmbuilder.nit:839 */
5215 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5216 }
5217 /* ./../lib/standard//collection//array.nit:239 */
5218 REGB3 = TAG_Int(1);
5219 /* ./../lib/standard//kernel.nit:215 */
5220 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
5221 /* ./../lib/standard//collection//array.nit:239 */
5222 REGB0 = REGB3;
5223 } else {
5224 /* ./../lib/standard//collection//array.nit:237 */
5225 goto label3;
5226 }
5227 }
5228 label3: while(0);
5229 label1: while(0);
5230 stack_frame_head = fra.me.prev;
5231 return;
5232 }
5233 void mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
5234 struct {struct stack_frame_t me; val_t MORE_REG[13];} fra;
5235 val_t REGB0;
5236 val_t REGB1;
5237 val_t REGB2;
5238 val_t REGB3;
5239 val_t REGB4;
5240 val_t REGB5;
5241 val_t REGB6;
5242 val_t REGB7;
5243 val_t tmp;
5244 static val_t once_value_1; /* Once value */
5245 static val_t once_value_2; /* Once value */
5246 static val_t once_value_3; /* Once value */
5247 static val_t once_value_5; /* Once value */
5248 static val_t once_value_6; /* Once value */
5249 static val_t once_value_7; /* Once value */
5250 static val_t once_value_8; /* Once value */
5251 static val_t once_value_9; /* Once value */
5252 static val_t once_value_10; /* Once value */
5253 static val_t once_value_11; /* Once value */
5254 static val_t once_value_12; /* Once value */
5255 static val_t once_value_13; /* Once value */
5256 static val_t once_value_14; /* Once value */
5257 static val_t once_value_15; /* Once value */
5258 static val_t once_value_16; /* Once value */
5259 static val_t once_value_17; /* Once value */
5260 static val_t once_value_18; /* Once value */
5261 static val_t once_value_19; /* Once value */
5262 static val_t once_value_20; /* Once value */
5263 static val_t once_value_21; /* Once value */
5264 static val_t once_value_22; /* Once value */
5265 static val_t once_value_24; /* Once value */
5266 static val_t once_value_25; /* Once value */
5267 static val_t once_value_26; /* Once value */
5268 static val_t once_value_27; /* Once value */
5269 static val_t once_value_28; /* Once value */
5270 static val_t once_value_29; /* Once value */
5271 static val_t once_value_30; /* Once value */
5272 static val_t once_value_31; /* Once value */
5273 static val_t once_value_32; /* Once value */
5274 static val_t once_value_33; /* Once value */
5275 static val_t once_value_34; /* Once value */
5276 static val_t once_value_35; /* Once value */
5277 static val_t once_value_36; /* Once value */
5278 static val_t once_value_38; /* Once value */
5279 static val_t once_value_39; /* Once value */
5280 static val_t once_value_40; /* Once value */
5281 static val_t once_value_41; /* Once value */
5282 static val_t once_value_42; /* Once value */
5283 static val_t once_value_43; /* Once value */
5284 static val_t once_value_44; /* Once value */
5285 static val_t once_value_45; /* Once value */
5286 static val_t once_value_46; /* Once value */
5287 static val_t once_value_47; /* Once value */
5288 static val_t once_value_48; /* Once value */
5289 static val_t once_value_49; /* Once value */
5290 static val_t once_value_50; /* Once value */
5291 static val_t once_value_51; /* Once value */
5292 static val_t once_value_52; /* Once value */
5293 static val_t once_value_53; /* Once value */
5294 static val_t once_value_54; /* Once value */
5295 static val_t once_value_55; /* Once value */
5296 static val_t once_value_56; /* Once value */
5297 static val_t once_value_57; /* Once value */
5298 static val_t once_value_58; /* Once value */
5299 static val_t once_value_59; /* Once value */
5300 static val_t once_value_60; /* Once value */
5301 static val_t once_value_61; /* Once value */
5302 static val_t once_value_62; /* Once value */
5303 static val_t once_value_63; /* Once value */
5304 static val_t once_value_64; /* Once value */
5305 static val_t once_value_65; /* Once value */
5306 static val_t once_value_66; /* Once value */
5307 static val_t once_value_68; /* Once value */
5308 static val_t once_value_69; /* Once value */
5309 static val_t once_value_70; /* Once value */
5310 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5311 fra.me.file = LOCATE_mmbuilder;
5312 fra.me.line = 844;
5313 fra.me.meth = LOCATE_mmbuilder___APropdef___do_and_check_redef;
5314 fra.me.has_broke = 0;
5315 fra.me.REG_size = 14;
5316 fra.me.REG[0] = NIT_NULL;
5317 fra.me.REG[1] = NIT_NULL;
5318 fra.me.REG[2] = NIT_NULL;
5319 fra.me.REG[3] = NIT_NULL;
5320 fra.me.REG[4] = NIT_NULL;
5321 fra.me.REG[5] = NIT_NULL;
5322 fra.me.REG[6] = NIT_NULL;
5323 fra.me.REG[7] = NIT_NULL;
5324 fra.me.REG[8] = NIT_NULL;
5325 fra.me.REG[9] = NIT_NULL;
5326 fra.me.REG[10] = NIT_NULL;
5327 fra.me.REG[11] = NIT_NULL;
5328 fra.me.REG[12] = NIT_NULL;
5329 fra.me.REG[13] = NIT_NULL;
5330 fra.me.REG[0] = p0;
5331 fra.me.REG[1] = p1;
5332 fra.me.REG[2] = p2;
5333 REGB0 = p3;
5334 REGB1 = p4;
5335 /* ./syntax//mmbuilder.nit:847 */
5336 REGB2 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
5337 /* ./syntax//mmbuilder.nit:848 */
5338 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
5339 /* ./syntax//mmbuilder.nit:850 */
5340 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5341 if (UNTAG_Bool(REGB0)) {
5342 /* ./syntax//mmbuilder.nit:851 */
5343 REGB0 = TAG_Int(5);
5344 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
5345 if (!once_value_1) {
5346 fra.me.REG[5] = BOX_NativeString("Redef error: ");
5347 REGB0 = TAG_Int(13);
5348 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
5349 once_value_1 = fra.me.REG[5];
5350 register_static_object(&once_value_1);
5351 } else fra.me.REG[5] = once_value_1;
5352 fra.me.REG[5] = fra.me.REG[5];
5353 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5354 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5355 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5356 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5357 if (!once_value_2) {
5358 fra.me.REG[5] = BOX_NativeString("::");
5359 REGB0 = TAG_Int(2);
5360 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
5361 once_value_2 = fra.me.REG[5];
5362 register_static_object(&once_value_2);
5363 } else fra.me.REG[5] = once_value_2;
5364 fra.me.REG[5] = fra.me.REG[5];
5365 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5366 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5367 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5368 if (!once_value_3) {
5369 fra.me.REG[5] = BOX_NativeString(" is an inherited property. To redefine it, add the redef keyword.");
5370 REGB0 = TAG_Int(65);
5371 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
5372 once_value_3 = fra.me.REG[5];
5373 register_static_object(&once_value_3);
5374 } else fra.me.REG[5] = once_value_3;
5375 fra.me.REG[5] = fra.me.REG[5];
5376 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5377 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
5378 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
5379 /* ./syntax//mmbuilder.nit:852 */
5380 goto label4;
5381 }
5382 /* ./syntax//mmbuilder.nit:854 */
5383 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
5384 if (UNTAG_Bool(REGB0)) {
5385 REGB0 = TAG_Bool(!UNTAG_Bool(REGB2));
5386 } else {
5387 REGB3 = TAG_Bool(false);
5388 REGB0 = REGB3;
5389 }
5390 if (UNTAG_Bool(REGB0)) {
5391 /* ./syntax//mmbuilder.nit:855 */
5392 REGB0 = TAG_Int(5);
5393 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
5394 if (!once_value_5) {
5395 fra.me.REG[5] = BOX_NativeString("Redef error: A method ");
5396 REGB0 = TAG_Int(22);
5397 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
5398 once_value_5 = fra.me.REG[5];
5399 register_static_object(&once_value_5);
5400 } else fra.me.REG[5] = once_value_5;
5401 fra.me.REG[5] = fra.me.REG[5];
5402 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5403 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5404 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5405 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5406 if (!once_value_6) {
5407 fra.me.REG[5] = BOX_NativeString("::");
5408 REGB0 = TAG_Int(2);
5409 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
5410 once_value_6 = fra.me.REG[5];
5411 register_static_object(&once_value_6);
5412 } else fra.me.REG[5] = once_value_6;
5413 fra.me.REG[5] = fra.me.REG[5];
5414 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5415 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5416 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5417 if (!once_value_7) {
5418 fra.me.REG[5] = BOX_NativeString(" cannot redefine a constructor.");
5419 REGB0 = TAG_Int(31);
5420 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
5421 once_value_7 = fra.me.REG[5];
5422 register_static_object(&once_value_7);
5423 } else fra.me.REG[5] = once_value_7;
5424 fra.me.REG[5] = fra.me.REG[5];
5425 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5426 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
5427 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
5428 } else {
5429 /* ./syntax//mmbuilder.nit:856 */
5430 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
5431 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5432 if (UNTAG_Bool(REGB0)) {
5433 } else {
5434 REGB0 = TAG_Bool(false);
5435 REGB2 = REGB0;
5436 }
5437 if (UNTAG_Bool(REGB2)) {
5438 /* ./syntax//mmbuilder.nit:857 */
5439 REGB2 = TAG_Int(5);
5440 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB2);
5441 if (!once_value_8) {
5442 fra.me.REG[5] = BOX_NativeString("Redef error: A constructor ");
5443 REGB2 = TAG_Int(27);
5444 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
5445 once_value_8 = fra.me.REG[5];
5446 register_static_object(&once_value_8);
5447 } else fra.me.REG[5] = once_value_8;
5448 fra.me.REG[5] = fra.me.REG[5];
5449 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5450 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5451 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5452 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5453 if (!once_value_9) {
5454 fra.me.REG[5] = BOX_NativeString("::");
5455 REGB2 = TAG_Int(2);
5456 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
5457 once_value_9 = fra.me.REG[5];
5458 register_static_object(&once_value_9);
5459 } else fra.me.REG[5] = once_value_9;
5460 fra.me.REG[5] = fra.me.REG[5];
5461 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5462 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5463 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5464 if (!once_value_10) {
5465 fra.me.REG[5] = BOX_NativeString(" cannot redefine a method.");
5466 REGB2 = TAG_Int(26);
5467 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
5468 once_value_10 = fra.me.REG[5];
5469 register_static_object(&once_value_10);
5470 } else fra.me.REG[5] = once_value_10;
5471 fra.me.REG[5] = fra.me.REG[5];
5472 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5473 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
5474 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
5475 }
5476 }
5477 /* ./syntax//mmbuilder.nit:860 */
5478 fra.me.REG[4] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
5479 /* ./syntax//mmbuilder.nit:862 */
5480 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[2])(fra.me.REG[2]);
5481 fra.me.REG[5] = CALL_partial_order___PartialOrderElement___direct_greaters(fra.me.REG[5])(fra.me.REG[5]);
5482 /* ./../lib/standard//collection//array.nit:234 */
5483 REGB2 = TAG_Int(0);
5484 /* ./../lib/standard//collection//array.nit:235 */
5485 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
5486 if (UNTAG_Bool(REGB0)) {
5487 } else {
5488 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
5489 }
5490 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]);
5491 /* ./../lib/standard//collection//array.nit:236 */
5492 fra.me.REG[6] = ATTR_array___Array____items(fra.me.REG[5]);
5493 /* ./../lib/standard//collection//array.nit:237 */
5494 while(1) {
5495 /* ./../lib/standard//collection//array.nit:23 */
5496 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
5497 if (UNTAG_Bool(REGB0)) {
5498 } else {
5499 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
5500 }
5501 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]);
5502 /* ./../lib/standard//kernel.nit:212 */
5503 REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
5504 /* ./../lib/standard//collection//array.nit:237 */
5505 if (UNTAG_Bool(REGB0)) {
5506 /* ./../lib/standard//collection//array.nit:238 */
5507 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5508 if (UNTAG_Bool(REGB0)) {
5509 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
5510 }
5511 /* ./../lib/standard//collection//array.nit:654 */
5512 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB2)];
5513 /* ./syntax//mmbuilder.nit:863 */
5514 fra.me.REG[8] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[7])(fra.me.REG[7]);
5515 fra.me.REG[9] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
5516 fra.me.REG[9] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
5517 /* ./syntax//mmbuilder.nit:864 */
5518 fra.me.REG[7] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[7])(fra.me.REG[7]);
5519 fra.me.REG[8] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
5520 fra.me.REG[8] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[8])(fra.me.REG[8]);
5521 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5522 if (UNTAG_Bool(REGB0)) {
5523 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 864);
5524 }
5525 fra.me.REG[8] = CALL_static_type___MMSignature___adaptation_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
5526 /* ./syntax//mmbuilder.nit:866 */
5527 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5528 if (UNTAG_Bool(REGB0)) {
5529 } else {
5530 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5531 if (UNTAG_Bool(REGB3)) {
5532 REGB3 = TAG_Bool(false);
5533 REGB0 = REGB3;
5534 } else {
5535 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5536 REGB0 = REGB3;
5537 }
5538 }
5539 if (UNTAG_Bool(REGB0)) {
5540 /* ./syntax//mmbuilder.nit:868 */
5541 fra.me.REG[7] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5542 fra.me.REG[7] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[7])(fra.me.REG[7]);
5543 /* ./../lib/standard//collection//array.nit:23 */
5544 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5545 if (UNTAG_Bool(REGB0)) {
5546 } else {
5547 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
5548 }
5549 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5550 /* ./syntax//mmbuilder.nit:868 */
5551 REGB3 = CALL_static_type___MMSignature___arity(fra.me.REG[8])(fra.me.REG[8]);
5552 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB3));
5553 if (UNTAG_Bool(REGB4)) {
5554 } else {
5555 /* ./../lib/standard//kernel.nit:207 */
5556 REGB3 = TAG_Bool((REGB0)==(REGB3));
5557 /* ./syntax//mmbuilder.nit:868 */
5558 REGB4 = REGB3;
5559 }
5560 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
5561 if (UNTAG_Bool(REGB4)) {
5562 /* ./syntax//mmbuilder.nit:869 */
5563 REGB4 = TAG_Int(11);
5564 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB4);
5565 if (!once_value_11) {
5566 fra.me.REG[10] = BOX_NativeString("Redef error: ");
5567 REGB4 = TAG_Int(13);
5568 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5569 once_value_11 = fra.me.REG[10];
5570 register_static_object(&once_value_11);
5571 } else fra.me.REG[10] = once_value_11;
5572 fra.me.REG[10] = fra.me.REG[10];
5573 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5574 fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5575 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5576 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5577 if (!once_value_12) {
5578 fra.me.REG[10] = BOX_NativeString("::");
5579 REGB4 = TAG_Int(2);
5580 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5581 once_value_12 = fra.me.REG[10];
5582 register_static_object(&once_value_12);
5583 } else fra.me.REG[10] = once_value_12;
5584 fra.me.REG[10] = fra.me.REG[10];
5585 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5586 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5587 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5588 if (!once_value_13) {
5589 fra.me.REG[10] = BOX_NativeString(" redefines ");
5590 REGB4 = TAG_Int(11);
5591 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5592 once_value_13 = fra.me.REG[10];
5593 register_static_object(&once_value_13);
5594 } else fra.me.REG[10] = once_value_13;
5595 fra.me.REG[10] = fra.me.REG[10];
5596 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5597 fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
5598 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5599 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5600 if (!once_value_14) {
5601 fra.me.REG[10] = BOX_NativeString("::");
5602 REGB4 = TAG_Int(2);
5603 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5604 once_value_14 = fra.me.REG[10];
5605 register_static_object(&once_value_14);
5606 } else fra.me.REG[10] = once_value_14;
5607 fra.me.REG[10] = fra.me.REG[10];
5608 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5609 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
5610 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5611 if (!once_value_15) {
5612 fra.me.REG[10] = BOX_NativeString(" with ");
5613 REGB4 = TAG_Int(6);
5614 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5615 once_value_15 = fra.me.REG[10];
5616 register_static_object(&once_value_15);
5617 } else fra.me.REG[10] = once_value_15;
5618 fra.me.REG[10] = fra.me.REG[10];
5619 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5620 REGB4 = CALL_static_type___MMSignature___arity(fra.me.REG[8])(fra.me.REG[8]);
5621 fra.me.REG[10] = CALL_string___Object___to_s(REGB4)(REGB4);
5622 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5623 if (!once_value_16) {
5624 fra.me.REG[10] = BOX_NativeString(" parameter(s).");
5625 REGB4 = TAG_Int(14);
5626 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5627 once_value_16 = fra.me.REG[10];
5628 register_static_object(&once_value_16);
5629 } else fra.me.REG[10] = once_value_16;
5630 fra.me.REG[10] = fra.me.REG[10];
5631 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5632 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
5633 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[7]);
5634 /* ./syntax//mmbuilder.nit:870 */
5635 goto label4;
5636 }
5637 /* ./syntax//mmbuilder.nit:872 */
5638 fra.me.REG[7] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5639 fra.me.REG[7] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[7])(fra.me.REG[7]);
5640 /* ./../lib/standard//collection//array.nit:23 */
5641 REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5642 if (UNTAG_Bool(REGB4)) {
5643 } else {
5644 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
5645 }
5646 REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5647 /* ./syntax//mmbuilder.nit:872 */
5648 fra.me.REG[7] = CALL_static_type___MMSignature___closures(fra.me.REG[8])(fra.me.REG[8]);
5649 /* ./../lib/standard//collection//array.nit:23 */
5650 REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5651 if (UNTAG_Bool(REGB3)) {
5652 } else {
5653 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
5654 }
5655 REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5656 /* ./syntax//mmbuilder.nit:872 */
5657 REGB0 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB3));
5658 if (UNTAG_Bool(REGB0)) {
5659 } else {
5660 /* ./../lib/standard//kernel.nit:207 */
5661 REGB3 = TAG_Bool((REGB4)==(REGB3));
5662 /* ./syntax//mmbuilder.nit:872 */
5663 REGB0 = REGB3;
5664 }
5665 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5666 if (UNTAG_Bool(REGB0)) {
5667 /* ./syntax//mmbuilder.nit:873 */
5668 REGB0 = TAG_Int(11);
5669 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB0);
5670 if (!once_value_17) {
5671 fra.me.REG[10] = BOX_NativeString("Redef error: ");
5672 REGB0 = TAG_Int(13);
5673 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB0);
5674 once_value_17 = fra.me.REG[10];
5675 register_static_object(&once_value_17);
5676 } else fra.me.REG[10] = once_value_17;
5677 fra.me.REG[10] = fra.me.REG[10];
5678 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5679 fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5680 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5681 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5682 if (!once_value_18) {
5683 fra.me.REG[10] = BOX_NativeString("::");
5684 REGB0 = TAG_Int(2);
5685 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB0);
5686 once_value_18 = fra.me.REG[10];
5687 register_static_object(&once_value_18);
5688 } else fra.me.REG[10] = once_value_18;
5689 fra.me.REG[10] = fra.me.REG[10];
5690 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5691 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5692 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5693 if (!once_value_19) {
5694 fra.me.REG[10] = BOX_NativeString(" redefines ");
5695 REGB0 = TAG_Int(11);
5696 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB0);
5697 once_value_19 = fra.me.REG[10];
5698 register_static_object(&once_value_19);
5699 } else fra.me.REG[10] = once_value_19;
5700 fra.me.REG[10] = fra.me.REG[10];
5701 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5702 fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
5703 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5704 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5705 if (!once_value_20) {
5706 fra.me.REG[10] = BOX_NativeString("::");
5707 REGB0 = TAG_Int(2);
5708 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB0);
5709 once_value_20 = fra.me.REG[10];
5710 register_static_object(&once_value_20);
5711 } else fra.me.REG[10] = once_value_20;
5712 fra.me.REG[10] = fra.me.REG[10];
5713 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5714 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
5715 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5716 if (!once_value_21) {
5717 fra.me.REG[10] = BOX_NativeString(" with ");
5718 REGB0 = TAG_Int(6);
5719 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB0);
5720 once_value_21 = fra.me.REG[10];
5721 register_static_object(&once_value_21);
5722 } else fra.me.REG[10] = once_value_21;
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 REGB0 = CALL_static_type___MMSignature___arity(fra.me.REG[8])(fra.me.REG[8]);
5726 fra.me.REG[10] = CALL_string___Object___to_s(REGB0)(REGB0);
5727 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5728 if (!once_value_22) {
5729 fra.me.REG[10] = BOX_NativeString(" closure(s).");
5730 REGB0 = TAG_Int(12);
5731 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB0);
5732 once_value_22 = fra.me.REG[10];
5733 register_static_object(&once_value_22);
5734 } else fra.me.REG[10] = once_value_22;
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[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
5738 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[7]);
5739 /* ./syntax//mmbuilder.nit:874 */
5740 goto label4;
5741 }
5742 /* ./syntax//mmbuilder.nit:876 */
5743 fra.me.REG[7] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5744 fra.me.REG[7] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[7])(fra.me.REG[7]);
5745 /* ./../lib/standard//collection//array.nit:234 */
5746 REGB0 = TAG_Int(0);
5747 /* ./../lib/standard//collection//array.nit:235 */
5748 REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5749 if (UNTAG_Bool(REGB3)) {
5750 } else {
5751 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
5752 }
5753 REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5754 /* ./../lib/standard//collection//array.nit:236 */
5755 fra.me.REG[10] = ATTR_array___Array____items(fra.me.REG[7]);
5756 /* ./../lib/standard//collection//array.nit:237 */
5757 while(1) {
5758 /* ./../lib/standard//collection//array.nit:23 */
5759 REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
5760 if (UNTAG_Bool(REGB3)) {
5761 } else {
5762 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
5763 }
5764 REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[7]);
5765 /* ./../lib/standard//kernel.nit:212 */
5766 REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB3));
5767 /* ./../lib/standard//collection//array.nit:237 */
5768 if (UNTAG_Bool(REGB3)) {
5769 /* ./../lib/standard//collection//array.nit:238 */
5770 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
5771 if (UNTAG_Bool(REGB3)) {
5772 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
5773 }
5774 /* ./../lib/standard//collection//array.nit:654 */
5775 fra.me.REG[11] = ((Nit_NativeArray)fra.me.REG[10])->val[UNTAG_Int(REGB0)];
5776 /* ./syntax//mmbuilder.nit:877 */
5777 REGB3 = CALL_syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]);
5778 fra.me.REG[12] = CALL_static_type___MMSignature_____bra(fra.me.REG[8])(fra.me.REG[8], REGB3);
5779 /* ./syntax//mmbuilder.nit:878 */
5780 CALL_mmbuilder___AParam___stype__eq(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
5781 /* ./syntax//mmbuilder.nit:879 */
5782 REGB3 = CALL_syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]);
5783 REGB4 = CALL_vararg___MMSignature___vararg_rank(fra.me.REG[8])(fra.me.REG[8]);
5784 REGB5 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB4));
5785 if (UNTAG_Bool(REGB5)) {
5786 } else {
5787 /* ./../lib/standard//kernel.nit:207 */
5788 REGB4 = TAG_Bool((REGB3)==(REGB4));
5789 /* ./syntax//mmbuilder.nit:879 */
5790 REGB5 = REGB4;
5791 }
5792 if (UNTAG_Bool(REGB5)) {
5793 /* ./syntax//mmbuilder.nit:880 */
5794 fra.me.REG[13] = CALL_syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[12]);
5795 fra.me.REG[12] = fra.me.REG[13];
5796 }
5797 /* ./syntax//mmbuilder.nit:882 */
5798 fra.me.REG[11] = CALL_syntax_base___AParam___variable(fra.me.REG[11])(fra.me.REG[11]);
5799 CALL_syntax_base___Variable___stype__eq(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
5800 /* ./../lib/standard//collection//array.nit:239 */
5801 REGB5 = TAG_Int(1);
5802 /* ./../lib/standard//kernel.nit:215 */
5803 REGB5 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB5));
5804 /* ./../lib/standard//collection//array.nit:239 */
5805 REGB0 = REGB5;
5806 } else {
5807 /* ./../lib/standard//collection//array.nit:237 */
5808 goto label23;
5809 }
5810 }
5811 label23: while(0);
5812 /* ./syntax//mmbuilder.nit:884 */
5813 fra.me.REG[4] = fra.me.REG[8];
5814 /* ./syntax//mmbuilder.nit:885 */
5815 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
5816 }
5817 /* ./syntax//mmbuilder.nit:889 */
5818 fra.me.REG[10] = CALL_syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
5819 REGB0 = CALL_mmloader___ToolContext___error_count(fra.me.REG[10])(fra.me.REG[10]);
5820 /* ./syntax//mmbuilder.nit:897 */
5821 REGB5 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5822 if (UNTAG_Bool(REGB5)) {
5823 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 897);
5824 }
5825 REGB5 = CALL_static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
5826 REGB4 = CALL_static_type___MMSignature___arity(fra.me.REG[8])(fra.me.REG[8]);
5827 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB5,REGB4));
5828 if (UNTAG_Bool(REGB3)) {
5829 } else {
5830 /* ./../lib/standard//kernel.nit:207 */
5831 REGB4 = TAG_Bool((REGB5)==(REGB4));
5832 /* ./syntax//mmbuilder.nit:897 */
5833 REGB3 = REGB4;
5834 }
5835 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
5836 if (UNTAG_Bool(REGB3)) {
5837 /* ./syntax//mmbuilder.nit:898 */
5838 REGB3 = TAG_Int(11);
5839 fra.me.REG[10] = NEW_Array_array___Array___with_capacity(REGB3);
5840 if (!once_value_24) {
5841 fra.me.REG[7] = BOX_NativeString("Redef error: ");
5842 REGB3 = TAG_Int(13);
5843 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB3);
5844 once_value_24 = fra.me.REG[7];
5845 register_static_object(&once_value_24);
5846 } else fra.me.REG[7] = once_value_24;
5847 fra.me.REG[7] = fra.me.REG[7];
5848 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
5849 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5850 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
5851 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
5852 if (!once_value_25) {
5853 fra.me.REG[7] = BOX_NativeString("::");
5854 REGB3 = TAG_Int(2);
5855 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB3);
5856 once_value_25 = fra.me.REG[7];
5857 register_static_object(&once_value_25);
5858 } else fra.me.REG[7] = once_value_25;
5859 fra.me.REG[7] = fra.me.REG[7];
5860 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
5861 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5862 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
5863 if (!once_value_26) {
5864 fra.me.REG[7] = BOX_NativeString(" redefines ");
5865 REGB3 = TAG_Int(11);
5866 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB3);
5867 once_value_26 = fra.me.REG[7];
5868 register_static_object(&once_value_26);
5869 } else fra.me.REG[7] = once_value_26;
5870 fra.me.REG[7] = fra.me.REG[7];
5871 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
5872 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
5873 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
5874 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
5875 if (!once_value_27) {
5876 fra.me.REG[7] = BOX_NativeString("::");
5877 REGB3 = TAG_Int(2);
5878 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB3);
5879 once_value_27 = fra.me.REG[7];
5880 register_static_object(&once_value_27);
5881 } else fra.me.REG[7] = once_value_27;
5882 fra.me.REG[7] = fra.me.REG[7];
5883 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
5884 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
5885 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
5886 if (!once_value_28) {
5887 fra.me.REG[7] = BOX_NativeString(" with ");
5888 REGB3 = TAG_Int(6);
5889 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB3);
5890 once_value_28 = fra.me.REG[7];
5891 register_static_object(&once_value_28);
5892 } else fra.me.REG[7] = once_value_28;
5893 fra.me.REG[7] = fra.me.REG[7];
5894 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
5895 REGB3 = CALL_static_type___MMSignature___arity(fra.me.REG[8])(fra.me.REG[8]);
5896 fra.me.REG[7] = CALL_string___Object___to_s(REGB3)(REGB3);
5897 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
5898 if (!once_value_29) {
5899 fra.me.REG[7] = BOX_NativeString(" parameter(s).");
5900 REGB3 = TAG_Int(14);
5901 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB3);
5902 once_value_29 = fra.me.REG[7];
5903 register_static_object(&once_value_29);
5904 } else fra.me.REG[7] = once_value_29;
5905 fra.me.REG[7] = fra.me.REG[7];
5906 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
5907 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5908 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[10]);
5909 } else {
5910 /* ./syntax//mmbuilder.nit:900 */
5911 REGB3 = TAG_Int(0);
5912 REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5913 if (UNTAG_Bool(REGB4)) {
5914 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 900);
5915 }
5916 REGB4 = CALL_static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
5917 /* ./../lib/standard//kernel.nit:332 */
5918 while(1) {
5919 /* ./../lib/standard//kernel.nit:212 */
5920 REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
5921 /* ./../lib/standard//kernel.nit:332 */
5922 if (UNTAG_Bool(REGB5)) {
5923 /* ./syntax//mmbuilder.nit:900 */
5924 REGB5 = REGB3;
5925 /* ./syntax//mmbuilder.nit:901 */
5926 REGB6 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5927 if (UNTAG_Bool(REGB6)) {
5928 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 901);
5929 }
5930 fra.me.REG[10] = CALL_static_type___MMSignature_____bra(fra.me.REG[4])(fra.me.REG[4], REGB5);
5931 fra.me.REG[7] = CALL_static_type___MMSignature_____bra(fra.me.REG[8])(fra.me.REG[8], REGB5);
5932 REGB6 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[10],fra.me.REG[7]));
5933 if (UNTAG_Bool(REGB6)) {
5934 } else {
5935 REGB7 = CALL_kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
5936 REGB6 = REGB7;
5937 }
5938 REGB6 = TAG_Bool(!UNTAG_Bool(REGB6));
5939 if (UNTAG_Bool(REGB6)) {
5940 /* ./syntax//mmbuilder.nit:902 */
5941 REGB6 = TAG_Int(13);
5942 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB6);
5943 if (!once_value_30) {
5944 fra.me.REG[10] = BOX_NativeString("Redef error: Expected ");
5945 REGB6 = TAG_Int(22);
5946 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB6);
5947 once_value_30 = fra.me.REG[10];
5948 register_static_object(&once_value_30);
5949 } else fra.me.REG[10] = once_value_30;
5950 fra.me.REG[10] = fra.me.REG[10];
5951 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5952 fra.me.REG[10] = CALL_static_type___MMSignature_____bra(fra.me.REG[8])(fra.me.REG[8], REGB5);
5953 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5954 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5955 if (!once_value_31) {
5956 fra.me.REG[10] = BOX_NativeString(" (as in ");
5957 REGB6 = TAG_Int(8);
5958 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB6);
5959 once_value_31 = fra.me.REG[10];
5960 register_static_object(&once_value_31);
5961 } else fra.me.REG[10] = once_value_31;
5962 fra.me.REG[10] = fra.me.REG[10];
5963 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5964 fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
5965 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5966 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5967 if (!once_value_32) {
5968 fra.me.REG[10] = BOX_NativeString("::");
5969 REGB6 = TAG_Int(2);
5970 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB6);
5971 once_value_32 = fra.me.REG[10];
5972 register_static_object(&once_value_32);
5973 } else fra.me.REG[10] = once_value_32;
5974 fra.me.REG[10] = fra.me.REG[10];
5975 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5976 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
5977 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5978 if (!once_value_33) {
5979 fra.me.REG[10] = BOX_NativeString("), got ");
5980 REGB6 = TAG_Int(7);
5981 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB6);
5982 once_value_33 = fra.me.REG[10];
5983 register_static_object(&once_value_33);
5984 } else fra.me.REG[10] = once_value_33;
5985 fra.me.REG[10] = fra.me.REG[10];
5986 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5987 REGB6 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5988 if (UNTAG_Bool(REGB6)) {
5989 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 902);
5990 }
5991 fra.me.REG[10] = CALL_static_type___MMSignature_____bra(fra.me.REG[4])(fra.me.REG[4], REGB5);
5992 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5993 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
5994 if (!once_value_34) {
5995 fra.me.REG[10] = BOX_NativeString(" in ");
5996 REGB5 = TAG_Int(4);
5997 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB5);
5998 once_value_34 = fra.me.REG[10];
5999 register_static_object(&once_value_34);
6000 } else fra.me.REG[10] = once_value_34;
6001 fra.me.REG[10] = fra.me.REG[10];
6002 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
6003 fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6004 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6005 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
6006 if (!once_value_35) {
6007 fra.me.REG[10] = BOX_NativeString("::");
6008 REGB5 = TAG_Int(2);
6009 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB5);
6010 once_value_35 = fra.me.REG[10];
6011 register_static_object(&once_value_35);
6012 } else fra.me.REG[10] = once_value_35;
6013 fra.me.REG[10] = fra.me.REG[10];
6014 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
6015 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6016 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
6017 if (!once_value_36) {
6018 fra.me.REG[10] = BOX_NativeString(".");
6019 REGB5 = TAG_Int(1);
6020 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB5);
6021 once_value_36 = fra.me.REG[10];
6022 register_static_object(&once_value_36);
6023 } else fra.me.REG[10] = once_value_36;
6024 fra.me.REG[10] = fra.me.REG[10];
6025 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
6026 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
6027 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[7]);
6028 }
6029 /* ./../lib/standard//kernel.nit:334 */
6030 REGB5 = TAG_Int(1);
6031 /* ./../lib/standard//kernel.nit:215 */
6032 REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5));
6033 /* ./../lib/standard//kernel.nit:334 */
6034 REGB3 = REGB5;
6035 } else {
6036 /* ./../lib/standard//kernel.nit:332 */
6037 goto label37;
6038 }
6039 }
6040 label37: while(0);
6041 }
6042 /* ./syntax//mmbuilder.nit:907 */
6043 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6044 if (UNTAG_Bool(REGB3)) {
6045 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 907);
6046 }
6047 fra.me.REG[7] = CALL_static_type___MMSignature___return_type(fra.me.REG[4])(fra.me.REG[4]);
6048 /* ./syntax//mmbuilder.nit:908 */
6049 fra.me.REG[10] = CALL_static_type___MMSignature___return_type(fra.me.REG[8])(fra.me.REG[8]);
6050 /* ./syntax//mmbuilder.nit:909 */
6051 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6052 if (UNTAG_Bool(REGB3)) {
6053 } else {
6054 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6055 if (UNTAG_Bool(REGB4)) {
6056 REGB4 = TAG_Bool(false);
6057 REGB3 = REGB4;
6058 } else {
6059 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
6060 REGB3 = REGB4;
6061 }
6062 }
6063 if (UNTAG_Bool(REGB3)) {
6064 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6065 if (UNTAG_Bool(REGB3)) {
6066 } else {
6067 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6068 if (UNTAG_Bool(REGB4)) {
6069 REGB4 = TAG_Bool(false);
6070 REGB3 = REGB4;
6071 } else {
6072 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
6073 REGB3 = REGB4;
6074 }
6075 }
6076 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
6077 } else {
6078 REGB4 = TAG_Bool(false);
6079 REGB3 = REGB4;
6080 }
6081 if (UNTAG_Bool(REGB3)) {
6082 /* ./syntax//mmbuilder.nit:910 */
6083 REGB3 = TAG_Int(9);
6084 fra.me.REG[12] = NEW_Array_array___Array___with_capacity(REGB3);
6085 if (!once_value_38) {
6086 fra.me.REG[11] = BOX_NativeString("Redef error: The procedure ");
6087 REGB3 = TAG_Int(27);
6088 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
6089 once_value_38 = fra.me.REG[11];
6090 register_static_object(&once_value_38);
6091 } else fra.me.REG[11] = once_value_38;
6092 fra.me.REG[11] = fra.me.REG[11];
6093 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6094 fra.me.REG[11] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6095 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
6096 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6097 if (!once_value_39) {
6098 fra.me.REG[11] = BOX_NativeString("::");
6099 REGB3 = TAG_Int(2);
6100 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
6101 once_value_39 = fra.me.REG[11];
6102 register_static_object(&once_value_39);
6103 } else fra.me.REG[11] = once_value_39;
6104 fra.me.REG[11] = fra.me.REG[11];
6105 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6106 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6107 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6108 if (!once_value_40) {
6109 fra.me.REG[11] = BOX_NativeString(" redefines the function ");
6110 REGB3 = TAG_Int(24);
6111 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
6112 once_value_40 = fra.me.REG[11];
6113 register_static_object(&once_value_40);
6114 } else fra.me.REG[11] = once_value_40;
6115 fra.me.REG[11] = fra.me.REG[11];
6116 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6117 fra.me.REG[11] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6118 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
6119 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6120 if (!once_value_41) {
6121 fra.me.REG[11] = BOX_NativeString("::");
6122 REGB3 = TAG_Int(2);
6123 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
6124 once_value_41 = fra.me.REG[11];
6125 register_static_object(&once_value_41);
6126 } else fra.me.REG[11] = once_value_41;
6127 fra.me.REG[11] = fra.me.REG[11];
6128 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6129 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6130 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6131 if (!once_value_42) {
6132 fra.me.REG[11] = BOX_NativeString(".");
6133 REGB3 = TAG_Int(1);
6134 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
6135 once_value_42 = fra.me.REG[11];
6136 register_static_object(&once_value_42);
6137 } else fra.me.REG[11] = once_value_42;
6138 fra.me.REG[11] = fra.me.REG[11];
6139 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6140 fra.me.REG[12] = CALL_string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
6141 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[12]);
6142 } else {
6143 /* ./syntax//mmbuilder.nit:911 */
6144 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6145 if (UNTAG_Bool(REGB3)) {
6146 } else {
6147 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6148 if (UNTAG_Bool(REGB4)) {
6149 REGB4 = TAG_Bool(false);
6150 REGB3 = REGB4;
6151 } else {
6152 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
6153 REGB3 = REGB4;
6154 }
6155 }
6156 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
6157 if (UNTAG_Bool(REGB3)) {
6158 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6159 if (UNTAG_Bool(REGB3)) {
6160 } else {
6161 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6162 if (UNTAG_Bool(REGB4)) {
6163 REGB4 = TAG_Bool(false);
6164 REGB3 = REGB4;
6165 } else {
6166 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
6167 REGB3 = REGB4;
6168 }
6169 }
6170 } else {
6171 REGB4 = TAG_Bool(false);
6172 REGB3 = REGB4;
6173 }
6174 if (UNTAG_Bool(REGB3)) {
6175 /* ./syntax//mmbuilder.nit:912 */
6176 REGB3 = TAG_Int(9);
6177 fra.me.REG[12] = NEW_Array_array___Array___with_capacity(REGB3);
6178 if (!once_value_43) {
6179 fra.me.REG[11] = BOX_NativeString("Redef error: The function ");
6180 REGB3 = TAG_Int(26);
6181 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
6182 once_value_43 = fra.me.REG[11];
6183 register_static_object(&once_value_43);
6184 } else fra.me.REG[11] = once_value_43;
6185 fra.me.REG[11] = fra.me.REG[11];
6186 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6187 fra.me.REG[11] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6188 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
6189 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6190 if (!once_value_44) {
6191 fra.me.REG[11] = BOX_NativeString("::");
6192 REGB3 = TAG_Int(2);
6193 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
6194 once_value_44 = fra.me.REG[11];
6195 register_static_object(&once_value_44);
6196 } else fra.me.REG[11] = once_value_44;
6197 fra.me.REG[11] = fra.me.REG[11];
6198 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6199 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6200 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6201 if (!once_value_45) {
6202 fra.me.REG[11] = BOX_NativeString(" redefines the procedure ");
6203 REGB3 = TAG_Int(25);
6204 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
6205 once_value_45 = fra.me.REG[11];
6206 register_static_object(&once_value_45);
6207 } else fra.me.REG[11] = once_value_45;
6208 fra.me.REG[11] = fra.me.REG[11];
6209 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6210 fra.me.REG[11] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6211 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
6212 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6213 if (!once_value_46) {
6214 fra.me.REG[11] = BOX_NativeString("::");
6215 REGB3 = TAG_Int(2);
6216 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
6217 once_value_46 = fra.me.REG[11];
6218 register_static_object(&once_value_46);
6219 } else fra.me.REG[11] = once_value_46;
6220 fra.me.REG[11] = fra.me.REG[11];
6221 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6222 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6223 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6224 if (!once_value_47) {
6225 fra.me.REG[11] = BOX_NativeString(".");
6226 REGB3 = TAG_Int(1);
6227 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
6228 once_value_47 = fra.me.REG[11];
6229 register_static_object(&once_value_47);
6230 } else fra.me.REG[11] = once_value_47;
6231 fra.me.REG[11] = fra.me.REG[11];
6232 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6233 fra.me.REG[12] = CALL_string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
6234 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[12]);
6235 } else {
6236 /* ./syntax//mmbuilder.nit:913 */
6237 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6238 if (UNTAG_Bool(REGB3)) {
6239 } else {
6240 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6241 if (UNTAG_Bool(REGB4)) {
6242 REGB4 = TAG_Bool(false);
6243 REGB3 = REGB4;
6244 } else {
6245 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
6246 REGB3 = REGB4;
6247 }
6248 }
6249 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
6250 if (UNTAG_Bool(REGB3)) {
6251 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6252 if (UNTAG_Bool(REGB3)) {
6253 } else {
6254 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6255 if (UNTAG_Bool(REGB4)) {
6256 REGB4 = TAG_Bool(false);
6257 REGB3 = REGB4;
6258 } else {
6259 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
6260 REGB3 = REGB4;
6261 }
6262 }
6263 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
6264 } else {
6265 REGB4 = TAG_Bool(false);
6266 REGB3 = REGB4;
6267 }
6268 if (UNTAG_Bool(REGB3)) {
6269 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6270 if (UNTAG_Bool(REGB3)) {
6271 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 913);
6272 }
6273 REGB3 = CALL_static_type___MMType_____l(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
6274 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
6275 } else {
6276 REGB4 = TAG_Bool(false);
6277 REGB3 = REGB4;
6278 }
6279 if (UNTAG_Bool(REGB3)) {
6280 /* ./syntax//mmbuilder.nit:914 */
6281 REGB3 = TAG_Int(13);
6282 fra.me.REG[12] = NEW_Array_array___Array___with_capacity(REGB3);
6283 if (!once_value_48) {
6284 fra.me.REG[11] = BOX_NativeString("Redef error: Expected ");
6285 REGB3 = TAG_Int(22);
6286 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
6287 once_value_48 = fra.me.REG[11];
6288 register_static_object(&once_value_48);
6289 } else fra.me.REG[11] = once_value_48;
6290 fra.me.REG[11] = fra.me.REG[11];
6291 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6292 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6293 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6294 if (!once_value_49) {
6295 fra.me.REG[11] = BOX_NativeString(" (as in ");
6296 REGB3 = TAG_Int(8);
6297 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
6298 once_value_49 = fra.me.REG[11];
6299 register_static_object(&once_value_49);
6300 } else fra.me.REG[11] = once_value_49;
6301 fra.me.REG[11] = fra.me.REG[11];
6302 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6303 fra.me.REG[11] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6304 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
6305 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6306 if (!once_value_50) {
6307 fra.me.REG[11] = BOX_NativeString("::");
6308 REGB3 = TAG_Int(2);
6309 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
6310 once_value_50 = fra.me.REG[11];
6311 register_static_object(&once_value_50);
6312 } else fra.me.REG[11] = once_value_50;
6313 fra.me.REG[11] = fra.me.REG[11];
6314 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6315 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6316 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6317 if (!once_value_51) {
6318 fra.me.REG[11] = BOX_NativeString("), got ");
6319 REGB3 = TAG_Int(7);
6320 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
6321 once_value_51 = fra.me.REG[11];
6322 register_static_object(&once_value_51);
6323 } else fra.me.REG[11] = once_value_51;
6324 fra.me.REG[11] = fra.me.REG[11];
6325 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6326 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
6327 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6328 if (!once_value_52) {
6329 fra.me.REG[11] = BOX_NativeString(" in ");
6330 REGB3 = TAG_Int(4);
6331 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
6332 once_value_52 = fra.me.REG[11];
6333 register_static_object(&once_value_52);
6334 } else fra.me.REG[11] = once_value_52;
6335 fra.me.REG[11] = fra.me.REG[11];
6336 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6337 fra.me.REG[11] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6338 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
6339 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6340 if (!once_value_53) {
6341 fra.me.REG[11] = BOX_NativeString("::");
6342 REGB3 = TAG_Int(2);
6343 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
6344 once_value_53 = fra.me.REG[11];
6345 register_static_object(&once_value_53);
6346 } else fra.me.REG[11] = once_value_53;
6347 fra.me.REG[11] = fra.me.REG[11];
6348 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6349 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6350 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6351 if (!once_value_54) {
6352 fra.me.REG[11] = BOX_NativeString(".");
6353 REGB3 = TAG_Int(1);
6354 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB3);
6355 once_value_54 = fra.me.REG[11];
6356 register_static_object(&once_value_54);
6357 } else fra.me.REG[11] = once_value_54;
6358 fra.me.REG[11] = fra.me.REG[11];
6359 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6360 fra.me.REG[12] = CALL_string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
6361 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[12]);
6362 } else {
6363 /* ./syntax//mmbuilder.nit:915 */
6364 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6365 if (UNTAG_Bool(REGB3)) {
6366 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 915);
6367 }
6368 REGB3 = CALL_static_type___MMSignature_____l(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
6369 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
6370 if (UNTAG_Bool(REGB3)) {
6371 fra.me.REG[8] = CALL_syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
6372 REGB3 = CALL_mmloader___ToolContext___error_count(fra.me.REG[8])(fra.me.REG[8]);
6373 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB3));
6374 if (UNTAG_Bool(REGB4)) {
6375 } else {
6376 /* ./../lib/standard//kernel.nit:207 */
6377 REGB3 = TAG_Bool((REGB0)==(REGB3));
6378 /* ./syntax//mmbuilder.nit:915 */
6379 REGB4 = REGB3;
6380 }
6381 } else {
6382 REGB3 = TAG_Bool(false);
6383 REGB4 = REGB3;
6384 }
6385 if (UNTAG_Bool(REGB4)) {
6386 /* ./syntax//mmbuilder.nit:917 */
6387 REGB4 = TAG_Int(9);
6388 fra.me.REG[8] = NEW_Array_array___Array___with_capacity(REGB4);
6389 if (!once_value_55) {
6390 fra.me.REG[12] = BOX_NativeString("Redef error: Incompatible redefinition of ");
6391 REGB4 = TAG_Int(42);
6392 fra.me.REG[12] = NEW_String_string___String___with_native(fra.me.REG[12], REGB4);
6393 once_value_55 = fra.me.REG[12];
6394 register_static_object(&once_value_55);
6395 } else fra.me.REG[12] = once_value_55;
6396 fra.me.REG[12] = fra.me.REG[12];
6397 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[12]);
6398 fra.me.REG[12] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6399 fra.me.REG[12] = CALL_string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
6400 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[12]);
6401 if (!once_value_56) {
6402 fra.me.REG[12] = BOX_NativeString("::");
6403 REGB4 = TAG_Int(2);
6404 fra.me.REG[12] = NEW_String_string___String___with_native(fra.me.REG[12], REGB4);
6405 once_value_56 = fra.me.REG[12];
6406 register_static_object(&once_value_56);
6407 } else fra.me.REG[12] = once_value_56;
6408 fra.me.REG[12] = fra.me.REG[12];
6409 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[12]);
6410 fra.me.REG[12] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6411 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[12]);
6412 if (!once_value_57) {
6413 fra.me.REG[12] = BOX_NativeString(" with ");
6414 REGB4 = TAG_Int(6);
6415 fra.me.REG[12] = NEW_String_string___String___with_native(fra.me.REG[12], REGB4);
6416 once_value_57 = fra.me.REG[12];
6417 register_static_object(&once_value_57);
6418 } else fra.me.REG[12] = once_value_57;
6419 fra.me.REG[12] = fra.me.REG[12];
6420 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[12]);
6421 fra.me.REG[12] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6422 fra.me.REG[12] = CALL_string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
6423 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[12]);
6424 if (!once_value_58) {
6425 fra.me.REG[12] = BOX_NativeString("::");
6426 REGB4 = TAG_Int(2);
6427 fra.me.REG[12] = NEW_String_string___String___with_native(fra.me.REG[12], REGB4);
6428 once_value_58 = fra.me.REG[12];
6429 register_static_object(&once_value_58);
6430 } else fra.me.REG[12] = once_value_58;
6431 fra.me.REG[12] = fra.me.REG[12];
6432 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[12]);
6433 fra.me.REG[12] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6434 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[12]);
6435 if (!once_value_59) {
6436 fra.me.REG[12] = BOX_NativeString("");
6437 REGB4 = TAG_Int(0);
6438 fra.me.REG[12] = NEW_String_string___String___with_native(fra.me.REG[12], REGB4);
6439 once_value_59 = fra.me.REG[12];
6440 register_static_object(&once_value_59);
6441 } else fra.me.REG[12] = once_value_59;
6442 fra.me.REG[12] = fra.me.REG[12];
6443 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[12]);
6444 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
6445 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]);
6446 } else {
6447 /* ./syntax//mmbuilder.nit:918 */
6448 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6449 if (UNTAG_Bool(REGB4)) {
6450 } else {
6451 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6452 if (UNTAG_Bool(REGB3)) {
6453 REGB3 = TAG_Bool(false);
6454 REGB4 = REGB3;
6455 } else {
6456 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
6457 REGB4 = REGB3;
6458 }
6459 }
6460 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
6461 if (UNTAG_Bool(REGB4)) {
6462 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6463 if (UNTAG_Bool(REGB4)) {
6464 } else {
6465 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6466 if (UNTAG_Bool(REGB3)) {
6467 REGB3 = TAG_Bool(false);
6468 REGB4 = REGB3;
6469 } else {
6470 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
6471 REGB4 = REGB3;
6472 }
6473 }
6474 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
6475 } else {
6476 REGB3 = TAG_Bool(false);
6477 REGB4 = REGB3;
6478 }
6479 if (UNTAG_Bool(REGB4)) {
6480 REGB4 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[7],fra.me.REG[10]));
6481 if (UNTAG_Bool(REGB4)) {
6482 } else {
6483 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6484 if (UNTAG_Bool(REGB3)) {
6485 REGB3 = TAG_Bool(false);
6486 REGB4 = REGB3;
6487 } else {
6488 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
6489 REGB4 = REGB3;
6490 }
6491 }
6492 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
6493 } else {
6494 REGB3 = TAG_Bool(false);
6495 REGB4 = REGB3;
6496 }
6497 if (UNTAG_Bool(REGB4)) {
6498 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
6499 } else {
6500 REGB3 = TAG_Bool(false);
6501 REGB4 = REGB3;
6502 }
6503 if (UNTAG_Bool(REGB4)) {
6504 /* ./syntax//mmbuilder.nit:920 */
6505 REGB4 = TAG_Int(13);
6506 fra.me.REG[8] = NEW_Array_array___Array___with_capacity(REGB4);
6507 if (!once_value_60) {
6508 fra.me.REG[12] = BOX_NativeString("Redef warning: Expected ");
6509 REGB4 = TAG_Int(24);
6510 fra.me.REG[12] = NEW_String_string___String___with_native(fra.me.REG[12], REGB4);
6511 once_value_60 = fra.me.REG[12];
6512 register_static_object(&once_value_60);
6513 } else fra.me.REG[12] = once_value_60;
6514 fra.me.REG[12] = fra.me.REG[12];
6515 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[12]);
6516 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6517 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6518 if (!once_value_61) {
6519 fra.me.REG[10] = BOX_NativeString(" (as in ");
6520 REGB4 = TAG_Int(8);
6521 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
6522 once_value_61 = fra.me.REG[10];
6523 register_static_object(&once_value_61);
6524 } else fra.me.REG[10] = once_value_61;
6525 fra.me.REG[10] = fra.me.REG[10];
6526 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6527 fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6528 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6529 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6530 if (!once_value_62) {
6531 fra.me.REG[10] = BOX_NativeString("::");
6532 REGB4 = TAG_Int(2);
6533 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
6534 once_value_62 = fra.me.REG[10];
6535 register_static_object(&once_value_62);
6536 } else fra.me.REG[10] = once_value_62;
6537 fra.me.REG[10] = fra.me.REG[10];
6538 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6539 fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6540 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
6541 if (!once_value_63) {
6542 fra.me.REG[9] = BOX_NativeString("), got ");
6543 REGB4 = TAG_Int(7);
6544 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB4);
6545 once_value_63 = fra.me.REG[9];
6546 register_static_object(&once_value_63);
6547 } else fra.me.REG[9] = once_value_63;
6548 fra.me.REG[9] = fra.me.REG[9];
6549 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
6550 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
6551 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
6552 if (!once_value_64) {
6553 fra.me.REG[7] = BOX_NativeString(" in ");
6554 REGB4 = TAG_Int(4);
6555 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB4);
6556 once_value_64 = fra.me.REG[7];
6557 register_static_object(&once_value_64);
6558 } else fra.me.REG[7] = once_value_64;
6559 fra.me.REG[7] = fra.me.REG[7];
6560 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
6561 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6562 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
6563 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
6564 if (!once_value_65) {
6565 fra.me.REG[7] = BOX_NativeString("::");
6566 REGB4 = TAG_Int(2);
6567 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB4);
6568 once_value_65 = fra.me.REG[7];
6569 register_static_object(&once_value_65);
6570 } else fra.me.REG[7] = once_value_65;
6571 fra.me.REG[7] = fra.me.REG[7];
6572 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
6573 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6574 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
6575 if (!once_value_66) {
6576 fra.me.REG[7] = BOX_NativeString(".");
6577 REGB4 = TAG_Int(1);
6578 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB4);
6579 once_value_66 = fra.me.REG[7];
6580 register_static_object(&once_value_66);
6581 } else fra.me.REG[7] = once_value_66;
6582 fra.me.REG[7] = fra.me.REG[7];
6583 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
6584 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
6585 CALL_syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]);
6586 }
6587 }
6588 }
6589 }
6590 }
6591 /* ./../lib/standard//collection//array.nit:239 */
6592 REGB4 = TAG_Int(1);
6593 /* ./../lib/standard//kernel.nit:215 */
6594 REGB4 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB4));
6595 /* ./../lib/standard//collection//array.nit:239 */
6596 REGB2 = REGB4;
6597 } else {
6598 /* ./../lib/standard//collection//array.nit:237 */
6599 goto label67;
6600 }
6601 }
6602 label67: while(0);
6603 /* ./syntax//mmbuilder.nit:924 */
6604 REGB2 = TAG_Int(1);
6605 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
6606 if (UNTAG_Bool(REGB4)) {
6607 } else {
6608 /* ./../lib/standard//kernel.nit:207 */
6609 REGB2 = TAG_Bool((REGB1)==(REGB2));
6610 /* ./syntax//mmbuilder.nit:924 */
6611 REGB4 = REGB2;
6612 }
6613 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
6614 if (UNTAG_Bool(REGB4)) {
6615 REGB4 = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
6616 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB1));
6617 if (UNTAG_Bool(REGB2)) {
6618 } else {
6619 /* ./../lib/standard//kernel.nit:207 */
6620 REGB1 = TAG_Bool((REGB4)==(REGB1));
6621 /* ./syntax//mmbuilder.nit:924 */
6622 REGB2 = REGB1;
6623 }
6624 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
6625 } else {
6626 REGB1 = TAG_Bool(false);
6627 REGB2 = REGB1;
6628 }
6629 if (UNTAG_Bool(REGB2)) {
6630 /* ./syntax//mmbuilder.nit:925 */
6631 REGB2 = TAG_Int(5);
6632 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB2);
6633 if (!once_value_68) {
6634 fra.me.REG[6] = BOX_NativeString("Redef error: ");
6635 REGB2 = TAG_Int(13);
6636 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2);
6637 once_value_68 = fra.me.REG[6];
6638 register_static_object(&once_value_68);
6639 } else fra.me.REG[6] = once_value_68;
6640 fra.me.REG[6] = fra.me.REG[6];
6641 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
6642 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6643 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
6644 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
6645 if (!once_value_69) {
6646 fra.me.REG[6] = BOX_NativeString("::");
6647 REGB2 = TAG_Int(2);
6648 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB2);
6649 once_value_69 = fra.me.REG[6];
6650 register_static_object(&once_value_69);
6651 } else fra.me.REG[6] = once_value_69;
6652 fra.me.REG[6] = fra.me.REG[6];
6653 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
6654 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6655 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
6656 if (!once_value_70) {
6657 fra.me.REG[2] = BOX_NativeString(" redefinition cannot change visibility.");
6658 REGB2 = TAG_Int(39);
6659 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2);
6660 once_value_70 = fra.me.REG[2];
6661 register_static_object(&once_value_70);
6662 } else fra.me.REG[2] = once_value_70;
6663 fra.me.REG[2] = fra.me.REG[2];
6664 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
6665 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
6666 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
6667 }
6668 /* ./syntax//mmbuilder.nit:927 */
6669 fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
6670 REGB2 = TAG_Bool(true);
6671 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);
6672 label4: while(0);
6673 stack_frame_head = fra.me.prev;
6674 return;
6675 }
6676 val_t mmbuilder___AAttrPropdef___readmethod(val_t p0){
6677 struct {struct stack_frame_t me;} fra;
6678 val_t tmp;
6679 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6680 fra.me.file = LOCATE_mmbuilder;
6681 fra.me.line = 932;
6682 fra.me.meth = LOCATE_mmbuilder___AAttrPropdef___readmethod;
6683 fra.me.has_broke = 0;
6684 fra.me.REG_size = 1;
6685 fra.me.REG[0] = NIT_NULL;
6686 fra.me.REG[0] = p0;
6687 /* ./syntax//mmbuilder.nit:932 */
6688 fra.me.REG[0] = ATTR_mmbuilder___AAttrPropdef____readmethod(fra.me.REG[0]);
6689 stack_frame_head = fra.me.prev;
6690 return fra.me.REG[0];
6691 }
6692 val_t mmbuilder___AAttrPropdef___writemethod(val_t p0){
6693 struct {struct stack_frame_t me;} fra;
6694 val_t tmp;
6695 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6696 fra.me.file = LOCATE_mmbuilder;
6697 fra.me.line = 933;
6698 fra.me.meth = LOCATE_mmbuilder___AAttrPropdef___writemethod;
6699 fra.me.has_broke = 0;
6700 fra.me.REG_size = 1;
6701 fra.me.REG[0] = NIT_NULL;
6702 fra.me.REG[0] = p0;
6703 /* ./syntax//mmbuilder.nit:933 */
6704 fra.me.REG[0] = ATTR_mmbuilder___AAttrPropdef____writemethod(fra.me.REG[0]);
6705 stack_frame_head = fra.me.prev;
6706 return fra.me.REG[0];
6707 }
6708 val_t mmbuilder___AAttrPropdef___prop(val_t p0){
6709 struct {struct stack_frame_t me;} fra;
6710 val_t REGB0;
6711 val_t tmp;
6712 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6713 fra.me.file = LOCATE_mmbuilder;
6714 fra.me.line = 935;
6715 fra.me.meth = LOCATE_mmbuilder___AAttrPropdef___prop;
6716 fra.me.has_broke = 0;
6717 fra.me.REG_size = 1;
6718 fra.me.REG[0] = NIT_NULL;
6719 fra.me.REG[0] = p0;
6720 /* ./syntax//mmbuilder.nit:935 */
6721 fra.me.REG[0] = ATTR_mmbuilder___AAttrPropdef____prop(fra.me.REG[0]);
6722 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
6723 if (UNTAG_Bool(REGB0)) {
6724 } else {
6725 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 935);
6726 }
6727 goto label1;
6728 label1: while(0);
6729 stack_frame_head = fra.me.prev;
6730 return fra.me.REG[0];
6731 }
6732 void mmbuilder___AAttrPropdef___accept_property_builder(val_t p0, val_t p1){
6733 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
6734 val_t REGB0;
6735 val_t REGB1;
6736 val_t REGB2;
6737 val_t tmp;
6738 static val_t once_value_1; /* Once value */
6739 static val_t once_value_2; /* Once value */
6740 static val_t once_value_3; /* Once value */
6741 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6742 fra.me.file = LOCATE_mmbuilder;
6743 fra.me.line = 937;
6744 fra.me.meth = LOCATE_mmbuilder___AAttrPropdef___accept_property_builder;
6745 fra.me.has_broke = 0;
6746 fra.me.REG_size = 6;
6747 fra.me.REG[0] = NIT_NULL;
6748 fra.me.REG[1] = NIT_NULL;
6749 fra.me.REG[2] = NIT_NULL;
6750 fra.me.REG[3] = NIT_NULL;
6751 fra.me.REG[4] = NIT_NULL;
6752 fra.me.REG[5] = NIT_NULL;
6753 fra.me.REG[0] = p0;
6754 fra.me.REG[1] = p1;
6755 /* ./syntax//mmbuilder.nit:937 */
6756 fra.me.REG[2] = fra.me.REG[0];
6757 fra.me.REG[3] = fra.me.REG[1];
6758 /* ./syntax//mmbuilder.nit:939 */
6759 CALL_SUPER_mmbuilder___AAttrPropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
6760 /* ./syntax//mmbuilder.nit:941 */
6761 fra.me.REG[1] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
6762 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6763 if (UNTAG_Bool(REGB0)) {
6764 } else {
6765 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6766 if (UNTAG_Bool(REGB1)) {
6767 REGB1 = TAG_Bool(false);
6768 REGB0 = REGB1;
6769 } else {
6770 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
6771 REGB0 = REGB1;
6772 }
6773 }
6774 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6775 if (UNTAG_Bool(REGB0)) {
6776 /* ./syntax//mmbuilder.nit:942 */
6777 fra.me.REG[1] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
6778 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6779 if (UNTAG_Bool(REGB0)) {
6780 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 942);
6781 }
6782 fra.me.REG[1] = CALL_syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
6783 } else {
6784 /* ./syntax//mmbuilder.nit:944 */
6785 if (!once_value_1) {
6786 fra.me.REG[0] = BOX_NativeString("@");
6787 REGB0 = TAG_Int(1);
6788 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
6789 once_value_1 = fra.me.REG[0];
6790 register_static_object(&once_value_1);
6791 } else fra.me.REG[0] = once_value_1;
6792 fra.me.REG[0] = fra.me.REG[0];
6793 fra.me.REG[4] = CALL_parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
6794 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6795 if (UNTAG_Bool(REGB0)) {
6796 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 944);
6797 }
6798 fra.me.REG[4] = CALL_lexer___Token___text(fra.me.REG[4])(fra.me.REG[4]);
6799 fra.me.REG[4] = CALL_string___String_____plus(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
6800 fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
6801 fra.me.REG[1] = fra.me.REG[4];
6802 }
6803 /* ./syntax//mmbuilder.nit:946 */
6804 fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
6805 /* ./syntax//mmbuilder.nit:947 */
6806 fra.me.REG[0] = NEW_MMSrcAttribute_syntax_base___MMSrcAttribute___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
6807 /* ./syntax//mmbuilder.nit:948 */
6808 ATTR_mmbuilder___AAttrPropdef____prop(fra.me.REG[2]) = fra.me.REG[0];
6809 /* ./syntax//mmbuilder.nit:949 */
6810 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
6811 CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[0]);
6812 /* ./syntax//mmbuilder.nit:951 */
6813 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
6814 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6815 if (UNTAG_Bool(REGB0)) {
6816 } else {
6817 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6818 if (UNTAG_Bool(REGB1)) {
6819 REGB1 = TAG_Bool(false);
6820 REGB0 = REGB1;
6821 } else {
6822 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
6823 REGB0 = REGB1;
6824 }
6825 }
6826 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6827 if (UNTAG_Bool(REGB0)) {
6828 REGB0 = TAG_Bool(true);
6829 } else {
6830 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
6831 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6832 if (UNTAG_Bool(REGB1)) {
6833 } else {
6834 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6835 if (UNTAG_Bool(REGB2)) {
6836 REGB2 = TAG_Bool(false);
6837 REGB1 = REGB2;
6838 } else {
6839 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
6840 REGB1 = REGB2;
6841 }
6842 }
6843 REGB0 = REGB1;
6844 }
6845 if (UNTAG_Bool(REGB0)) {
6846 /* ./syntax//mmbuilder.nit:952 */
6847 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
6848 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6849 if (UNTAG_Bool(REGB0)) {
6850 } else {
6851 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6852 if (UNTAG_Bool(REGB1)) {
6853 REGB1 = TAG_Bool(false);
6854 REGB0 = REGB1;
6855 } else {
6856 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
6857 REGB0 = REGB1;
6858 }
6859 }
6860 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6861 if (UNTAG_Bool(REGB0)) {
6862 /* ./syntax//mmbuilder.nit:953 */
6863 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
6864 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6865 if (UNTAG_Bool(REGB0)) {
6866 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 953);
6867 }
6868 fra.me.REG[0] = CALL_lexer___Token___text(fra.me.REG[0])(fra.me.REG[0]);
6869 REGB0 = TAG_Int(1);
6870 fra.me.REG[0] = CALL_string___AbstractString___substring_from(fra.me.REG[0])(fra.me.REG[0], REGB0);
6871 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
6872 fra.me.REG[1] = fra.me.REG[0];
6873 } else {
6874 /* ./syntax//mmbuilder.nit:955 */
6875 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
6876 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6877 if (UNTAG_Bool(REGB0)) {
6878 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 955);
6879 }
6880 fra.me.REG[0] = CALL_syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
6881 fra.me.REG[1] = fra.me.REG[0];
6882 }
6883 /* ./syntax//mmbuilder.nit:957 */
6884 fra.me.REG[0] = NEW_MMReadImplementationMethod_syntax_base___MMReadImplementationMethod___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
6885 /* ./syntax//mmbuilder.nit:958 */
6886 ATTR_mmbuilder___AAttrPropdef____readmethod(fra.me.REG[2]) = fra.me.REG[0];
6887 /* ./syntax//mmbuilder.nit:959 */
6888 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
6889 CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[0]);
6890 }
6891 /* ./syntax//mmbuilder.nit:961 */
6892 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
6893 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6894 if (UNTAG_Bool(REGB0)) {
6895 } else {
6896 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6897 if (UNTAG_Bool(REGB1)) {
6898 REGB1 = TAG_Bool(false);
6899 REGB0 = REGB1;
6900 } else {
6901 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
6902 REGB0 = REGB1;
6903 }
6904 }
6905 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6906 if (UNTAG_Bool(REGB0)) {
6907 REGB0 = TAG_Bool(true);
6908 } else {
6909 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
6910 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6911 if (UNTAG_Bool(REGB1)) {
6912 } else {
6913 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6914 if (UNTAG_Bool(REGB2)) {
6915 REGB2 = TAG_Bool(false);
6916 REGB1 = REGB2;
6917 } else {
6918 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
6919 REGB1 = REGB2;
6920 }
6921 }
6922 REGB0 = REGB1;
6923 }
6924 if (UNTAG_Bool(REGB0)) {
6925 /* ./syntax//mmbuilder.nit:962 */
6926 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
6927 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6928 if (UNTAG_Bool(REGB0)) {
6929 } else {
6930 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6931 if (UNTAG_Bool(REGB1)) {
6932 REGB1 = TAG_Bool(false);
6933 REGB0 = REGB1;
6934 } else {
6935 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
6936 REGB0 = REGB1;
6937 }
6938 }
6939 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6940 if (UNTAG_Bool(REGB0)) {
6941 /* ./syntax//mmbuilder.nit:963 */
6942 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
6943 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6944 if (UNTAG_Bool(REGB0)) {
6945 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 963);
6946 }
6947 fra.me.REG[0] = CALL_lexer___Token___text(fra.me.REG[0])(fra.me.REG[0]);
6948 REGB0 = TAG_Int(1);
6949 fra.me.REG[0] = CALL_string___AbstractString___substring_from(fra.me.REG[0])(fra.me.REG[0], REGB0);
6950 if (!once_value_2) {
6951 fra.me.REG[5] = BOX_NativeString("=");
6952 REGB0 = TAG_Int(1);
6953 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
6954 once_value_2 = fra.me.REG[5];
6955 register_static_object(&once_value_2);
6956 } else fra.me.REG[5] = once_value_2;
6957 fra.me.REG[5] = fra.me.REG[5];
6958 fra.me.REG[5] = CALL_string___String_____plus(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
6959 fra.me.REG[5] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
6960 fra.me.REG[1] = fra.me.REG[5];
6961 } else {
6962 /* ./syntax//mmbuilder.nit:965 */
6963 fra.me.REG[5] = CALL_parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
6964 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6965 if (UNTAG_Bool(REGB0)) {
6966 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 965);
6967 }
6968 fra.me.REG[5] = CALL_lexer___Token___text(fra.me.REG[5])(fra.me.REG[5]);
6969 if (!once_value_3) {
6970 fra.me.REG[0] = BOX_NativeString("=");
6971 REGB0 = TAG_Int(1);
6972 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
6973 once_value_3 = fra.me.REG[0];
6974 register_static_object(&once_value_3);
6975 } else fra.me.REG[0] = once_value_3;
6976 fra.me.REG[0] = fra.me.REG[0];
6977 fra.me.REG[0] = CALL_string___String_____plus(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
6978 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
6979 fra.me.REG[1] = fra.me.REG[0];
6980 }
6981 /* ./syntax//mmbuilder.nit:967 */
6982 fra.me.REG[4] = NEW_MMWriteImplementationMethod_syntax_base___MMWriteImplementationMethod___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
6983 /* ./syntax//mmbuilder.nit:968 */
6984 ATTR_mmbuilder___AAttrPropdef____writemethod(fra.me.REG[2]) = fra.me.REG[4];
6985 /* ./syntax//mmbuilder.nit:969 */
6986 fra.me.REG[2] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
6987 CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
6988 }
6989 stack_frame_head = fra.me.prev;
6990 return;
6991 }
6992 void mmbuilder___AAttrPropdef___accept_property_verifier(val_t p0, val_t p1){
6993 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
6994 val_t REGB0;
6995 val_t REGB1;
6996 val_t REGB2;
6997 val_t REGB3;
6998 val_t tmp;
6999 static val_t once_value_2; /* Once value */
7000 static val_t once_value_3; /* Once value */
7001 static val_t once_value_4; /* Once value */
7002 static val_t once_value_5; /* Once value */
7003 static val_t once_value_6; /* Once value */
7004 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7005 fra.me.file = LOCATE_mmbuilder;
7006 fra.me.line = 973;
7007 fra.me.meth = LOCATE_mmbuilder___AAttrPropdef___accept_property_verifier;
7008 fra.me.has_broke = 0;
7009 fra.me.REG_size = 6;
7010 fra.me.REG[0] = NIT_NULL;
7011 fra.me.REG[1] = NIT_NULL;
7012 fra.me.REG[2] = NIT_NULL;
7013 fra.me.REG[3] = NIT_NULL;
7014 fra.me.REG[4] = NIT_NULL;
7015 fra.me.REG[5] = NIT_NULL;
7016 fra.me.REG[0] = p0;
7017 fra.me.REG[1] = p1;
7018 /* ./syntax//mmbuilder.nit:973 */
7019 fra.me.REG[2] = fra.me.REG[0];
7020 fra.me.REG[3] = fra.me.REG[1];
7021 /* ./syntax//mmbuilder.nit:975 */
7022 CALL_SUPER_mmbuilder___AAttrPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
7023 /* ./syntax//mmbuilder.nit:977 */
7024 fra.me.REG[1] = CALL_parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
7025 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7026 if (UNTAG_Bool(REGB0)) {
7027 } else {
7028 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7029 if (UNTAG_Bool(REGB1)) {
7030 REGB1 = TAG_Bool(false);
7031 REGB0 = REGB1;
7032 } else {
7033 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7034 REGB0 = REGB1;
7035 }
7036 }
7037 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7038 if (UNTAG_Bool(REGB0)) {
7039 /* ./syntax//mmbuilder.nit:978 */
7040 fra.me.REG[1] = CALL_parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
7041 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7042 if (UNTAG_Bool(REGB0)) {
7043 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 978);
7044 }
7045 fra.me.REG[1] = CALL_syntax_base___AType___get_stype(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7046 /* ./syntax//mmbuilder.nit:979 */
7047 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7048 if (UNTAG_Bool(REGB0)) {
7049 } else {
7050 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7051 if (UNTAG_Bool(REGB1)) {
7052 REGB1 = TAG_Bool(false);
7053 REGB0 = REGB1;
7054 } else {
7055 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7056 REGB0 = REGB1;
7057 }
7058 }
7059 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7060 if (UNTAG_Bool(REGB0)) {
7061 } else {
7062 goto label1;
7063 }
7064 } else {
7065 /* ./syntax//mmbuilder.nit:981 */
7066 REGB0 = TAG_Int(5);
7067 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0);
7068 if (!once_value_2) {
7069 fra.me.REG[4] = BOX_NativeString("Not yet implemented: Attribute definition ");
7070 REGB0 = TAG_Int(42);
7071 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
7072 once_value_2 = fra.me.REG[4];
7073 register_static_object(&once_value_2);
7074 } else fra.me.REG[4] = once_value_2;
7075 fra.me.REG[4] = fra.me.REG[4];
7076 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
7077 fra.me.REG[4] = CALL_syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
7078 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[4])(fra.me.REG[4]);
7079 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
7080 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
7081 if (!once_value_3) {
7082 fra.me.REG[4] = BOX_NativeString("::");
7083 REGB0 = TAG_Int(2);
7084 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
7085 once_value_3 = fra.me.REG[4];
7086 register_static_object(&once_value_3);
7087 } else fra.me.REG[4] = once_value_3;
7088 fra.me.REG[4] = fra.me.REG[4];
7089 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
7090 fra.me.REG[4] = CALL_syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
7091 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
7092 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
7093 if (!once_value_4) {
7094 fra.me.REG[4] = BOX_NativeString(" requires an explicit type.");
7095 REGB0 = TAG_Int(27);
7096 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
7097 once_value_4 = fra.me.REG[4];
7098 register_static_object(&once_value_4);
7099 } else fra.me.REG[4] = once_value_4;
7100 fra.me.REG[4] = fra.me.REG[4];
7101 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
7102 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
7103 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
7104 /* ./syntax//mmbuilder.nit:982 */
7105 goto label1;
7106 }
7107 /* ./syntax//mmbuilder.nit:985 */
7108 fra.me.REG[0] = CALL_syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
7109 /* ./syntax//mmbuilder.nit:986 */
7110 fra.me.REG[4] = NEW_Array_array___Array___init();
7111 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
7112 fra.me.REG[5] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]);
7113 fra.me.REG[5] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[4], fra.me.REG[1], fra.me.REG[5]);
7114 /* ./syntax//mmbuilder.nit:987 */
7115 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
7116 /* ./syntax//mmbuilder.nit:988 */
7117 fra.me.REG[4] = CALL_parser_nodes___AAttrPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
7118 REGB0 = CALL_mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
7119 /* ./syntax//mmbuilder.nit:989 */
7120 fra.me.REG[4] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7121 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7122 if (UNTAG_Bool(REGB1)) {
7123 } else {
7124 REGB2 = TAG_Bool(fra.me.REG[4]==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[4])(fra.me.REG[4], NIT_NULL);
7130 REGB1 = REGB2;
7131 }
7132 }
7133 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7134 if (UNTAG_Bool(REGB1)) {
7135 fra.me.REG[4] = CALL_parser_nodes___AAttrPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
7136 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7137 if (UNTAG_Bool(REGB1)) {
7138 } else {
7139 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7140 if (UNTAG_Bool(REGB2)) {
7141 REGB2 = TAG_Bool(false);
7142 REGB1 = REGB2;
7143 } else {
7144 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
7145 REGB1 = REGB2;
7146 }
7147 }
7148 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7149 } else {
7150 REGB2 = TAG_Bool(false);
7151 REGB1 = REGB2;
7152 }
7153 CALL_mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0], REGB1, REGB0);
7154 /* ./syntax//mmbuilder.nit:990 */
7155 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
7156 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7157 if (UNTAG_Bool(REGB1)) {
7158 } else {
7159 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7160 if (UNTAG_Bool(REGB2)) {
7161 REGB2 = TAG_Bool(false);
7162 REGB1 = REGB2;
7163 } else {
7164 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7165 REGB1 = REGB2;
7166 }
7167 }
7168 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7169 if (UNTAG_Bool(REGB1)) {
7170 REGB1 = TAG_Bool(true);
7171 } else {
7172 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7173 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7174 if (UNTAG_Bool(REGB2)) {
7175 } else {
7176 REGB3 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7177 if (UNTAG_Bool(REGB3)) {
7178 REGB3 = TAG_Bool(false);
7179 REGB2 = REGB3;
7180 } else {
7181 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7182 REGB2 = REGB3;
7183 }
7184 }
7185 REGB1 = REGB2;
7186 }
7187 if (UNTAG_Bool(REGB1)) {
7188 /* ./syntax//mmbuilder.nit:991 */
7189 fra.me.REG[0] = ATTR_mmbuilder___AAttrPropdef____readmethod(fra.me.REG[2]);
7190 REGB1 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
7191 if (UNTAG_Bool(REGB1)) {
7192 } else {
7193 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 991);
7194 }
7195 /* ./syntax//mmbuilder.nit:992 */
7196 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
7197 /* ./syntax//mmbuilder.nit:993 */
7198 fra.me.REG[5] = CALL_parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
7199 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7200 if (UNTAG_Bool(REGB1)) {
7201 } else {
7202 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7203 if (UNTAG_Bool(REGB2)) {
7204 REGB2 = TAG_Bool(false);
7205 REGB1 = REGB2;
7206 } else {
7207 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
7208 REGB1 = REGB2;
7209 }
7210 }
7211 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7212 if (UNTAG_Bool(REGB1)) {
7213 fra.me.REG[5] = CALL_parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
7214 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7215 if (UNTAG_Bool(REGB1)) {
7216 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 993);
7217 }
7218 fra.me.REG[5] = CALL_parser_nodes___AAble___n_kwredef(fra.me.REG[5])(fra.me.REG[5]);
7219 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7220 if (UNTAG_Bool(REGB1)) {
7221 } else {
7222 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7223 if (UNTAG_Bool(REGB2)) {
7224 REGB2 = TAG_Bool(false);
7225 REGB1 = REGB2;
7226 } else {
7227 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
7228 REGB1 = REGB2;
7229 }
7230 }
7231 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7232 } else {
7233 REGB2 = TAG_Bool(false);
7234 REGB1 = REGB2;
7235 }
7236 if (UNTAG_Bool(REGB1)) {
7237 REGB1 = TAG_Bool(true);
7238 } else {
7239 fra.me.REG[5] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7240 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7241 if (UNTAG_Bool(REGB2)) {
7242 } else {
7243 REGB3 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7244 if (UNTAG_Bool(REGB3)) {
7245 REGB3 = TAG_Bool(false);
7246 REGB2 = REGB3;
7247 } else {
7248 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
7249 REGB2 = REGB3;
7250 }
7251 }
7252 if (UNTAG_Bool(REGB2)) {
7253 fra.me.REG[5] = CALL_parser_nodes___AAttrPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
7254 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7255 if (UNTAG_Bool(REGB2)) {
7256 } else {
7257 REGB3 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7258 if (UNTAG_Bool(REGB3)) {
7259 REGB3 = TAG_Bool(false);
7260 REGB2 = REGB3;
7261 } else {
7262 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
7263 REGB2 = REGB3;
7264 }
7265 }
7266 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
7267 } else {
7268 REGB3 = TAG_Bool(false);
7269 REGB2 = REGB3;
7270 }
7271 REGB1 = REGB2;
7272 }
7273 CALL_mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0], REGB1, REGB0);
7274 /* ./syntax//mmbuilder.nit:994 */
7275 fra.me.REG[5] = CALL_parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
7276 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7277 if (UNTAG_Bool(REGB1)) {
7278 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 994);
7279 }
7280 CALL_mmbuilder___AType___check_visibility(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[0]);
7281 }
7282 /* ./syntax//mmbuilder.nit:996 */
7283 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
7284 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7285 if (UNTAG_Bool(REGB1)) {
7286 } else {
7287 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7288 if (UNTAG_Bool(REGB2)) {
7289 REGB2 = TAG_Bool(false);
7290 REGB1 = REGB2;
7291 } else {
7292 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7293 REGB1 = REGB2;
7294 }
7295 }
7296 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7297 if (UNTAG_Bool(REGB1)) {
7298 REGB1 = TAG_Bool(true);
7299 } else {
7300 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7301 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7302 if (UNTAG_Bool(REGB2)) {
7303 } else {
7304 REGB3 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7305 if (UNTAG_Bool(REGB3)) {
7306 REGB3 = TAG_Bool(false);
7307 REGB2 = REGB3;
7308 } else {
7309 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7310 REGB2 = REGB3;
7311 }
7312 }
7313 REGB1 = REGB2;
7314 }
7315 if (UNTAG_Bool(REGB1)) {
7316 /* ./syntax//mmbuilder.nit:997 */
7317 fra.me.REG[0] = ATTR_mmbuilder___AAttrPropdef____writemethod(fra.me.REG[2]);
7318 REGB1 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
7319 if (UNTAG_Bool(REGB1)) {
7320 } else {
7321 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 997);
7322 }
7323 /* ./syntax//mmbuilder.nit:998 */
7324 REGB1 = TAG_Int(0);
7325 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB1);
7326 if (!once_value_5) {
7327 if (!once_value_6) {
7328 fra.me.REG[4] = BOX_NativeString("value");
7329 REGB1 = TAG_Int(5);
7330 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
7331 once_value_6 = fra.me.REG[4];
7332 register_static_object(&once_value_6);
7333 } else fra.me.REG[4] = once_value_6;
7334 fra.me.REG[4] = fra.me.REG[4];
7335 fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
7336 once_value_5 = fra.me.REG[4];
7337 register_static_object(&once_value_5);
7338 } else fra.me.REG[4] = once_value_5;
7339 fra.me.REG[4] = fra.me.REG[4];
7340 fra.me.REG[4] = NEW_MMParam_static_type___MMParam___init(fra.me.REG[1], fra.me.REG[4]);
7341 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
7342 fra.me.REG[5] = NEW_Array_array___Array___with_items(fra.me.REG[5]);
7343 fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
7344 fra.me.REG[4] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
7345 fra.me.REG[4] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[5], NIT_NULL, fra.me.REG[4]);
7346 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
7347 /* ./syntax//mmbuilder.nit:1000 */
7348 fra.me.REG[4] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7349 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7350 if (UNTAG_Bool(REGB1)) {
7351 } else {
7352 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7353 if (UNTAG_Bool(REGB2)) {
7354 REGB2 = TAG_Bool(false);
7355 REGB1 = REGB2;
7356 } else {
7357 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
7358 REGB1 = REGB2;
7359 }
7360 }
7361 if (UNTAG_Bool(REGB1)) {
7362 /* ./syntax//mmbuilder.nit:1001 */
7363 fra.me.REG[4] = CALL_parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
7364 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7365 if (UNTAG_Bool(REGB1)) {
7366 } else {
7367 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7368 if (UNTAG_Bool(REGB2)) {
7369 REGB2 = TAG_Bool(false);
7370 REGB1 = REGB2;
7371 } else {
7372 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
7373 REGB1 = REGB2;
7374 }
7375 }
7376 if (UNTAG_Bool(REGB1)) {
7377 REGB1 = TAG_Int(3);
7378 REGB0 = REGB1;
7379 } else {
7380 fra.me.REG[4] = CALL_parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
7381 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7382 if (UNTAG_Bool(REGB1)) {
7383 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1001);
7384 }
7385 fra.me.REG[4] = CALL_parser_nodes___AAble___n_visibility(fra.me.REG[4])(fra.me.REG[4]);
7386 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7387 if (UNTAG_Bool(REGB1)) {
7388 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1001);
7389 }
7390 REGB1 = CALL_mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
7391 REGB0 = REGB1;
7392 }
7393 }
7394 /* ./syntax//mmbuilder.nit:1003 */
7395 fra.me.REG[4] = CALL_parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
7396 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7397 if (UNTAG_Bool(REGB1)) {
7398 } else {
7399 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7400 if (UNTAG_Bool(REGB2)) {
7401 REGB2 = TAG_Bool(false);
7402 REGB1 = REGB2;
7403 } else {
7404 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
7405 REGB1 = REGB2;
7406 }
7407 }
7408 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7409 if (UNTAG_Bool(REGB1)) {
7410 fra.me.REG[4] = CALL_parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
7411 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7412 if (UNTAG_Bool(REGB1)) {
7413 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1003);
7414 }
7415 fra.me.REG[4] = CALL_parser_nodes___AAble___n_kwredef(fra.me.REG[4])(fra.me.REG[4]);
7416 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7417 if (UNTAG_Bool(REGB1)) {
7418 } else {
7419 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7420 if (UNTAG_Bool(REGB2)) {
7421 REGB2 = TAG_Bool(false);
7422 REGB1 = REGB2;
7423 } else {
7424 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
7425 REGB1 = REGB2;
7426 }
7427 }
7428 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7429 } else {
7430 REGB2 = TAG_Bool(false);
7431 REGB1 = REGB2;
7432 }
7433 CALL_mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0], REGB1, REGB0);
7434 /* ./syntax//mmbuilder.nit:1004 */
7435 fra.me.REG[2] = CALL_parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
7436 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7437 if (UNTAG_Bool(REGB0)) {
7438 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1004);
7439 }
7440 CALL_mmbuilder___AType___check_visibility(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0]);
7441 }
7442 label1: while(0);
7443 stack_frame_head = fra.me.prev;
7444 return;
7445 }
7446 void mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
7447 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7448 val_t tmp;
7449 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7450 fra.me.file = LOCATE_mmbuilder;
7451 fra.me.line = 1008;
7452 fra.me.meth = LOCATE_mmbuilder___AAttrPropdef___accept_abs_syntax_visitor;
7453 fra.me.has_broke = 0;
7454 fra.me.REG_size = 4;
7455 fra.me.REG[0] = NIT_NULL;
7456 fra.me.REG[1] = NIT_NULL;
7457 fra.me.REG[2] = NIT_NULL;
7458 fra.me.REG[3] = NIT_NULL;
7459 fra.me.REG[0] = p0;
7460 fra.me.REG[1] = p1;
7461 /* ./syntax//mmbuilder.nit:1008 */
7462 fra.me.REG[2] = fra.me.REG[0];
7463 fra.me.REG[3] = fra.me.REG[1];
7464 /* ./syntax//mmbuilder.nit:1010 */
7465 fra.me.REG[2] = ATTR_mmbuilder___AAttrPropdef____prop(fra.me.REG[2]);
7466 CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
7467 /* ./syntax//mmbuilder.nit:1011 */
7468 CALL_SUPER_mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
7469 /* ./syntax//mmbuilder.nit:1012 */
7470 CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7471 stack_frame_head = fra.me.prev;
7472 return;
7473 }
7474 val_t mmbuilder___AMethPropdef___name(val_t p0){
7475 struct {struct stack_frame_t me;} fra;
7476 val_t tmp;
7477 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7478 fra.me.file = LOCATE_mmbuilder;
7479 fra.me.line = 1017;
7480 fra.me.meth = LOCATE_mmbuilder___AMethPropdef___name;
7481 fra.me.has_broke = 0;
7482 fra.me.REG_size = 1;
7483 fra.me.REG[0] = NIT_NULL;
7484 fra.me.REG[0] = p0;
7485 /* ./syntax//mmbuilder.nit:1017 */
7486 fra.me.REG[0] = ATTR_mmbuilder___AMethPropdef____name(fra.me.REG[0]);
7487 stack_frame_head = fra.me.prev;
7488 return fra.me.REG[0];
7489 }
7490 val_t mmbuilder___AMethPropdef___method(val_t p0){
7491 struct {struct stack_frame_t me;} fra;
7492 val_t REGB0;
7493 val_t tmp;
7494 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7495 fra.me.file = LOCATE_mmbuilder;
7496 fra.me.line = 1021;
7497 fra.me.meth = LOCATE_mmbuilder___AMethPropdef___method;
7498 fra.me.has_broke = 0;
7499 fra.me.REG_size = 1;
7500 fra.me.REG[0] = NIT_NULL;
7501 fra.me.REG[0] = p0;
7502 /* ./syntax//mmbuilder.nit:1021 */
7503 fra.me.REG[0] = ATTR_mmbuilder___AMethPropdef____method(fra.me.REG[0]);
7504 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
7505 if (UNTAG_Bool(REGB0)) {
7506 } else {
7507 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 1021);
7508 }
7509 goto label1;
7510 label1: while(0);
7511 stack_frame_head = fra.me.prev;
7512 return fra.me.REG[0];
7513 }
7514 void mmbuilder___AMethPropdef___accept_property_builder(val_t p0, val_t p1){
7515 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
7516 val_t REGB0;
7517 val_t REGB1;
7518 val_t REGB2;
7519 val_t tmp;
7520 static val_t once_value_1; /* Once value */
7521 static val_t once_value_2; /* Once value */
7522 static val_t once_value_3; /* Once value */
7523 static val_t once_value_4; /* Once value */
7524 static val_t once_value_5; /* Once value */
7525 static val_t once_value_6; /* Once value */
7526 static val_t once_value_7; /* Once value */
7527 static val_t once_value_8; /* Once value */
7528 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7529 fra.me.file = LOCATE_mmbuilder;
7530 fra.me.line = 1023;
7531 fra.me.meth = LOCATE_mmbuilder___AMethPropdef___accept_property_builder;
7532 fra.me.has_broke = 0;
7533 fra.me.REG_size = 5;
7534 fra.me.REG[0] = NIT_NULL;
7535 fra.me.REG[1] = NIT_NULL;
7536 fra.me.REG[2] = NIT_NULL;
7537 fra.me.REG[3] = NIT_NULL;
7538 fra.me.REG[4] = NIT_NULL;
7539 fra.me.REG[0] = p0;
7540 fra.me.REG[1] = p1;
7541 /* ./syntax//mmbuilder.nit:1023 */
7542 fra.me.REG[2] = fra.me.REG[0];
7543 fra.me.REG[3] = fra.me.REG[1];
7544 /* ./syntax//mmbuilder.nit:1025 */
7545 CALL_SUPER_mmbuilder___AMethPropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
7546 /* ./syntax//mmbuilder.nit:1027 */
7547 fra.me.REG[1] = CALL_parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
7548 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7549 if (UNTAG_Bool(REGB0)) {
7550 } else {
7551 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7552 if (UNTAG_Bool(REGB1)) {
7553 REGB1 = TAG_Bool(false);
7554 REGB0 = REGB1;
7555 } else {
7556 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7557 REGB0 = REGB1;
7558 }
7559 }
7560 if (UNTAG_Bool(REGB0)) {
7561 /* ./syntax//mmbuilder.nit:1028 */
7562 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
7563 if (UNTAG_Bool(REGB0)) {
7564 /* ./syntax//mmbuilder.nit:1029 */
7565 if (!once_value_1) {
7566 if (!once_value_2) {
7567 fra.me.REG[1] = BOX_NativeString("init");
7568 REGB0 = TAG_Int(4);
7569 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
7570 once_value_2 = fra.me.REG[1];
7571 register_static_object(&once_value_2);
7572 } else fra.me.REG[1] = once_value_2;
7573 fra.me.REG[1] = fra.me.REG[1];
7574 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
7575 once_value_1 = fra.me.REG[1];
7576 register_static_object(&once_value_1);
7577 } else fra.me.REG[1] = once_value_1;
7578 fra.me.REG[1] = fra.me.REG[1];
7579 } else {
7580 /* ./syntax//mmbuilder.nit:1031 */
7581 if (!once_value_3) {
7582 if (!once_value_4) {
7583 fra.me.REG[0] = BOX_NativeString("main");
7584 REGB0 = TAG_Int(4);
7585 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
7586 once_value_4 = fra.me.REG[0];
7587 register_static_object(&once_value_4);
7588 } else fra.me.REG[0] = once_value_4;
7589 fra.me.REG[0] = fra.me.REG[0];
7590 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
7591 once_value_3 = fra.me.REG[0];
7592 register_static_object(&once_value_3);
7593 } else fra.me.REG[0] = once_value_3;
7594 fra.me.REG[0] = fra.me.REG[0];
7595 fra.me.REG[1] = fra.me.REG[0];
7596 }
7597 } else {
7598 /* ./syntax//mmbuilder.nit:1034 */
7599 fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
7600 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7601 if (UNTAG_Bool(REGB0)) {
7602 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1034);
7603 }
7604 fra.me.REG[0] = CALL_syntax_base___AMethid___name(fra.me.REG[0])(fra.me.REG[0]);
7605 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
7606 if (UNTAG_Bool(REGB0)) {
7607 } else {
7608 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 1034);
7609 }
7610 fra.me.REG[1] = fra.me.REG[0];
7611 /* ./syntax//mmbuilder.nit:1036 */
7612 fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
7613 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7614 if (UNTAG_Bool(REGB0)) {
7615 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1036);
7616 }
7617 fra.me.REG[0] = CALL_syntax_base___AMethid___name(fra.me.REG[0])(fra.me.REG[0]);
7618 if (!once_value_5) {
7619 if (!once_value_6) {
7620 fra.me.REG[4] = BOX_NativeString("-");
7621 REGB0 = TAG_Int(1);
7622 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
7623 once_value_6 = fra.me.REG[4];
7624 register_static_object(&once_value_6);
7625 } else fra.me.REG[4] = once_value_6;
7626 fra.me.REG[4] = fra.me.REG[4];
7627 fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
7628 once_value_5 = fra.me.REG[4];
7629 register_static_object(&once_value_5);
7630 } else fra.me.REG[4] = once_value_5;
7631 fra.me.REG[4] = fra.me.REG[4];
7632 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[4],fra.me.REG[0]));
7633 if (UNTAG_Bool(REGB0)) {
7634 } else {
7635 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7636 if (UNTAG_Bool(REGB1)) {
7637 REGB1 = TAG_Bool(false);
7638 REGB0 = REGB1;
7639 } else {
7640 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
7641 REGB0 = REGB1;
7642 }
7643 }
7644 if (UNTAG_Bool(REGB0)) {
7645 /* ./syntax//mmbuilder.nit:1037 */
7646 fra.me.REG[4] = CALL_parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
7647 /* ./syntax//mmbuilder.nit:1038 */
7648 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7649 if (UNTAG_Bool(REGB0)) {
7650 } else {
7651 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7652 if (UNTAG_Bool(REGB1)) {
7653 REGB1 = TAG_Bool(false);
7654 REGB0 = REGB1;
7655 } else {
7656 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
7657 REGB0 = REGB1;
7658 }
7659 }
7660 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7661 if (UNTAG_Bool(REGB0)) {
7662 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7663 if (UNTAG_Bool(REGB0)) {
7664 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1038);
7665 }
7666 fra.me.REG[4] = CALL_parser_nodes___ASignature___n_params(fra.me.REG[4])(fra.me.REG[4]);
7667 REGB0 = CALL_abstract_collection___Collection___length(fra.me.REG[4])(fra.me.REG[4]);
7668 REGB1 = TAG_Int(0);
7669 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
7670 if (UNTAG_Bool(REGB2)) {
7671 } else {
7672 /* ./../lib/standard//kernel.nit:207 */
7673 REGB1 = TAG_Bool((REGB0)==(REGB1));
7674 /* ./syntax//mmbuilder.nit:1038 */
7675 REGB2 = REGB1;
7676 }
7677 } else {
7678 REGB1 = TAG_Bool(false);
7679 REGB2 = REGB1;
7680 }
7681 if (UNTAG_Bool(REGB2)) {
7682 /* ./syntax//mmbuilder.nit:1039 */
7683 if (!once_value_7) {
7684 if (!once_value_8) {
7685 fra.me.REG[4] = BOX_NativeString("unary -");
7686 REGB2 = TAG_Int(7);
7687 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
7688 once_value_8 = fra.me.REG[4];
7689 register_static_object(&once_value_8);
7690 } else fra.me.REG[4] = once_value_8;
7691 fra.me.REG[4] = fra.me.REG[4];
7692 fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
7693 once_value_7 = fra.me.REG[4];
7694 register_static_object(&once_value_7);
7695 } else fra.me.REG[4] = once_value_7;
7696 fra.me.REG[4] = fra.me.REG[4];
7697 fra.me.REG[1] = fra.me.REG[4];
7698 }
7699 }
7700 }
7701 /* ./syntax//mmbuilder.nit:1043 */
7702 ATTR_mmbuilder___AMethPropdef____name(fra.me.REG[2]) = fra.me.REG[1];
7703 /* ./syntax//mmbuilder.nit:1044 */
7704 fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
7705 fra.me.REG[4] = NEW_MMMethSrcMethod_syntax_base___MMMethSrcMethod___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
7706 /* ./syntax//mmbuilder.nit:1045 */
7707 ATTR_mmbuilder___AMethPropdef____method(fra.me.REG[2]) = fra.me.REG[4];
7708 /* ./syntax//mmbuilder.nit:1046 */
7709 fra.me.REG[2] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
7710 CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
7711 stack_frame_head = fra.me.prev;
7712 return;
7713 }
7714 void mmbuilder___AMethPropdef___accept_property_verifier(val_t p0, val_t p1){
7715 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
7716 val_t REGB0;
7717 val_t REGB1;
7718 val_t REGB2;
7719 val_t tmp;
7720 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7721 fra.me.file = LOCATE_mmbuilder;
7722 fra.me.line = 1049;
7723 fra.me.meth = LOCATE_mmbuilder___AMethPropdef___accept_property_verifier;
7724 fra.me.has_broke = 0;
7725 fra.me.REG_size = 5;
7726 fra.me.REG[0] = NIT_NULL;
7727 fra.me.REG[1] = NIT_NULL;
7728 fra.me.REG[2] = NIT_NULL;
7729 fra.me.REG[3] = NIT_NULL;
7730 fra.me.REG[4] = NIT_NULL;
7731 fra.me.REG[0] = p0;
7732 fra.me.REG[1] = p1;
7733 /* ./syntax//mmbuilder.nit:1049 */
7734 fra.me.REG[2] = fra.me.REG[0];
7735 fra.me.REG[3] = fra.me.REG[1];
7736 /* ./syntax//mmbuilder.nit:1051 */
7737 fra.me.REG[4] = NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init();
7738 CALL_mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
7739 /* ./syntax//mmbuilder.nit:1052 */
7740 CALL_SUPER_mmbuilder___AMethPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
7741 /* ./syntax//mmbuilder.nit:1054 */
7742 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7743 REGB0 = CALL_mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
7744 if (UNTAG_Bool(REGB0)) {
7745 goto label1;
7746 }
7747 /* ./syntax//mmbuilder.nit:1056 */
7748 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7749 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
7750 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7751 if (UNTAG_Bool(REGB0)) {
7752 } else {
7753 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7754 if (UNTAG_Bool(REGB1)) {
7755 REGB1 = TAG_Bool(false);
7756 REGB0 = REGB1;
7757 } else {
7758 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7759 REGB0 = REGB1;
7760 }
7761 }
7762 if (UNTAG_Bool(REGB0)) {
7763 } else {
7764 /* ./syntax//mmbuilder.nit:1059 */
7765 fra.me.REG[1] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
7766 fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7767 fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___signature(fra.me.REG[0])(fra.me.REG[0]);
7768 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
7769 if (UNTAG_Bool(REGB0)) {
7770 } else {
7771 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 1059);
7772 }
7773 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
7774 }
7775 /* ./syntax//mmbuilder.nit:1061 */
7776 REGB0 = TAG_Int(1);
7777 /* ./syntax//mmbuilder.nit:1062 */
7778 fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
7779 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7780 if (UNTAG_Bool(REGB1)) {
7781 } else {
7782 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7783 if (UNTAG_Bool(REGB2)) {
7784 REGB2 = TAG_Bool(false);
7785 REGB1 = REGB2;
7786 } else {
7787 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7788 REGB1 = REGB2;
7789 }
7790 }
7791 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7792 if (UNTAG_Bool(REGB1)) {
7793 fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
7794 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7795 if (UNTAG_Bool(REGB1)) {
7796 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1062);
7797 }
7798 REGB1 = CALL_mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
7799 REGB2 = TAG_Int(1);
7800 /* ./../lib/standard//kernel.nit:214 */
7801 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
7802 } else {
7803 /* ./syntax//mmbuilder.nit:1062 */
7804 REGB1 = TAG_Bool(false);
7805 REGB2 = REGB1;
7806 }
7807 if (UNTAG_Bool(REGB2)) {
7808 /* ./syntax//mmbuilder.nit:1063 */
7809 fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
7810 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7811 if (UNTAG_Bool(REGB2)) {
7812 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1063);
7813 }
7814 REGB2 = CALL_mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
7815 REGB0 = REGB2;
7816 }
7817 /* ./syntax//mmbuilder.nit:1065 */
7818 fra.me.REG[0] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
7819 fra.me.REG[1] = CALL_parser_nodes___AMethPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
7820 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7821 if (UNTAG_Bool(REGB2)) {
7822 } else {
7823 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7824 if (UNTAG_Bool(REGB1)) {
7825 REGB1 = TAG_Bool(false);
7826 REGB2 = REGB1;
7827 } else {
7828 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7829 REGB2 = REGB1;
7830 }
7831 }
7832 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
7833 CALL_mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0], REGB2, REGB0);
7834 /* ./syntax//mmbuilder.nit:1066 */
7835 fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
7836 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7837 if (UNTAG_Bool(REGB0)) {
7838 } else {
7839 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7840 if (UNTAG_Bool(REGB2)) {
7841 REGB2 = TAG_Bool(false);
7842 REGB0 = REGB2;
7843 } else {
7844 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7845 REGB0 = REGB2;
7846 }
7847 }
7848 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7849 if (UNTAG_Bool(REGB0)) {
7850 fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
7851 fra.me.REG[2] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
7852 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7853 if (UNTAG_Bool(REGB0)) {
7854 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1066);
7855 }
7856 CALL_mmbuilder___ASignature___check_visibility(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
7857 }
7858 label1: while(0);
7859 stack_frame_head = fra.me.prev;
7860 return;
7861 }
7862 void mmbuilder___AMethPropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
7863 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7864 val_t tmp;
7865 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7866 fra.me.file = LOCATE_mmbuilder;
7867 fra.me.line = 1069;
7868 fra.me.meth = LOCATE_mmbuilder___AMethPropdef___accept_abs_syntax_visitor;
7869 fra.me.has_broke = 0;
7870 fra.me.REG_size = 4;
7871 fra.me.REG[0] = NIT_NULL;
7872 fra.me.REG[1] = NIT_NULL;
7873 fra.me.REG[2] = NIT_NULL;
7874 fra.me.REG[3] = NIT_NULL;
7875 fra.me.REG[0] = p0;
7876 fra.me.REG[1] = p1;
7877 /* ./syntax//mmbuilder.nit:1069 */
7878 fra.me.REG[2] = fra.me.REG[0];
7879 fra.me.REG[3] = fra.me.REG[1];
7880 /* ./syntax//mmbuilder.nit:1071 */
7881 fra.me.REG[2] = ATTR_mmbuilder___AMethPropdef____method(fra.me.REG[2]);
7882 CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
7883 /* ./syntax//mmbuilder.nit:1072 */
7884 CALL_SUPER_mmbuilder___AMethPropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
7885 /* ./syntax//mmbuilder.nit:1073 */
7886 CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7887 stack_frame_head = fra.me.prev;
7888 return;
7889 }
7890 void mmbuilder___AMainMethPropdef___process_and_check(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
7891 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
7892 val_t REGB0;
7893 val_t REGB1;
7894 val_t tmp;
7895 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7896 fra.me.file = LOCATE_mmbuilder;
7897 fra.me.line = 1078;
7898 fra.me.meth = LOCATE_mmbuilder___AMainMethPropdef___process_and_check;
7899 fra.me.has_broke = 0;
7900 fra.me.REG_size = 3;
7901 fra.me.REG[0] = NIT_NULL;
7902 fra.me.REG[1] = NIT_NULL;
7903 fra.me.REG[2] = NIT_NULL;
7904 fra.me.REG[0] = p0;
7905 fra.me.REG[1] = p1;
7906 fra.me.REG[2] = p2;
7907 REGB0 = p3;
7908 REGB1 = p4;
7909 /* ./syntax//mmbuilder.nit:1080 */
7910 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
7911 CALL_abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[0])(fra.me.REG[0], REGB1);
7912 /* ./syntax//mmbuilder.nit:1081 */
7913 fra.me.REG[0] = NEW_Array_array___Array___init();
7914 fra.me.REG[1] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
7915 fra.me.REG[1] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
7916 fra.me.REG[1] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[1]);
7917 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
7918 stack_frame_head = fra.me.prev;
7919 return;
7920 }
7921 void mmbuilder___AExternMethPropdef___accept_property_verifier(val_t p0, val_t p1){
7922 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7923 val_t REGB0;
7924 val_t REGB1;
7925 val_t REGB2;
7926 val_t tmp;
7927 static val_t once_value_1; /* Once value */
7928 static val_t once_value_2; /* Once value */
7929 static val_t once_value_3; /* Once value */
7930 static val_t once_value_4; /* Once value */
7931 static val_t once_value_5; /* Once value */
7932 static val_t once_value_6; /* Once value */
7933 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7934 fra.me.file = LOCATE_mmbuilder;
7935 fra.me.line = 1087;
7936 fra.me.meth = LOCATE_mmbuilder___AExternMethPropdef___accept_property_verifier;
7937 fra.me.has_broke = 0;
7938 fra.me.REG_size = 4;
7939 fra.me.REG[0] = NIT_NULL;
7940 fra.me.REG[1] = NIT_NULL;
7941 fra.me.REG[2] = NIT_NULL;
7942 fra.me.REG[3] = NIT_NULL;
7943 fra.me.REG[0] = p0;
7944 fra.me.REG[1] = p1;
7945 /* ./syntax//mmbuilder.nit:1087 */
7946 fra.me.REG[2] = fra.me.REG[0];
7947 /* ./syntax//mmbuilder.nit:1089 */
7948 CALL_SUPER_mmbuilder___AExternMethPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
7949 /* ./syntax//mmbuilder.nit:1091 */
7950 fra.me.REG[1] = CALL_parser_nodes___AExternPropdef___n_extern(fra.me.REG[2])(fra.me.REG[2]);
7951 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7952 if (UNTAG_Bool(REGB0)) {
7953 } else {
7954 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7955 if (UNTAG_Bool(REGB1)) {
7956 REGB1 = TAG_Bool(false);
7957 REGB0 = REGB1;
7958 } else {
7959 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7960 REGB0 = REGB1;
7961 }
7962 }
7963 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7964 if (UNTAG_Bool(REGB0)) {
7965 /* ./syntax//mmbuilder.nit:1092 */
7966 fra.me.REG[1] = CALL_parser_nodes___AExternPropdef___n_extern(fra.me.REG[2])(fra.me.REG[2]);
7967 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7968 if (UNTAG_Bool(REGB0)) {
7969 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1092);
7970 }
7971 fra.me.REG[1] = CALL_lexer___Token___text(fra.me.REG[1])(fra.me.REG[1]);
7972 /* ./syntax//mmbuilder.nit:1093 */
7973 REGB0 = TAG_Int(1);
7974 /* ./../lib/standard//collection//array.nit:23 */
7975 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
7976 if (UNTAG_Bool(REGB1)) {
7977 } else {
7978 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
7979 }
7980 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
7981 /* ./syntax//mmbuilder.nit:1093 */
7982 REGB2 = TAG_Int(2);
7983 /* ./../lib/standard//kernel.nit:217 */
7984 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
7985 /* ./syntax//mmbuilder.nit:1093 */
7986 fra.me.REG[0] = CALL_string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB0, REGB2);
7987 fra.me.REG[1] = fra.me.REG[0];
7988 } else {
7989 /* ./syntax//mmbuilder.nit:1095 */
7990 REGB2 = TAG_Int(11);
7991 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB2);
7992 if (!once_value_1) {
7993 fra.me.REG[3] = BOX_NativeString("");
7994 REGB2 = TAG_Int(0);
7995 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
7996 once_value_1 = fra.me.REG[3];
7997 register_static_object(&once_value_1);
7998 } else fra.me.REG[3] = once_value_1;
7999 fra.me.REG[3] = fra.me.REG[3];
8000 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8001 fra.me.REG[3] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
8002 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
8003 fra.me.REG[3] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[3])(fra.me.REG[3]);
8004 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
8005 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8006 if (!once_value_2) {
8007 fra.me.REG[3] = BOX_NativeString("_");
8008 REGB2 = TAG_Int(1);
8009 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
8010 once_value_2 = fra.me.REG[3];
8011 register_static_object(&once_value_2);
8012 } else fra.me.REG[3] = once_value_2;
8013 fra.me.REG[3] = fra.me.REG[3];
8014 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8015 fra.me.REG[3] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
8016 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[3])(fra.me.REG[3]);
8017 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[3])(fra.me.REG[3]);
8018 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
8019 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8020 if (!once_value_3) {
8021 fra.me.REG[3] = BOX_NativeString("_");
8022 REGB2 = TAG_Int(1);
8023 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
8024 once_value_3 = fra.me.REG[3];
8025 register_static_object(&once_value_3);
8026 } else fra.me.REG[3] = once_value_3;
8027 fra.me.REG[3] = fra.me.REG[3];
8028 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8029 fra.me.REG[3] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
8030 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[3])(fra.me.REG[3]);
8031 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[3])(fra.me.REG[3]);
8032 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
8033 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8034 if (!once_value_4) {
8035 fra.me.REG[3] = BOX_NativeString("_");
8036 REGB2 = TAG_Int(1);
8037 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
8038 once_value_4 = fra.me.REG[3];
8039 register_static_object(&once_value_4);
8040 } else fra.me.REG[3] = once_value_4;
8041 fra.me.REG[3] = fra.me.REG[3];
8042 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8043 fra.me.REG[3] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
8044 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[3])(fra.me.REG[3]);
8045 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
8046 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8047 if (!once_value_5) {
8048 fra.me.REG[3] = BOX_NativeString("_");
8049 REGB2 = TAG_Int(1);
8050 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
8051 once_value_5 = fra.me.REG[3];
8052 register_static_object(&once_value_5);
8053 } else fra.me.REG[3] = once_value_5;
8054 fra.me.REG[3] = fra.me.REG[3];
8055 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8056 fra.me.REG[3] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
8057 fra.me.REG[3] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[3])(fra.me.REG[3]);
8058 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8059 if (UNTAG_Bool(REGB2)) {
8060 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1095);
8061 }
8062 REGB2 = CALL_static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]);
8063 fra.me.REG[3] = CALL_string___Object___to_s(REGB2)(REGB2);
8064 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8065 if (!once_value_6) {
8066 fra.me.REG[3] = BOX_NativeString("");
8067 REGB2 = TAG_Int(0);
8068 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
8069 once_value_6 = fra.me.REG[3];
8070 register_static_object(&once_value_6);
8071 } else fra.me.REG[3] = once_value_6;
8072 fra.me.REG[3] = fra.me.REG[3];
8073 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8074 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
8075 fra.me.REG[1] = fra.me.REG[0];
8076 }
8077 /* ./syntax//mmbuilder.nit:1097 */
8078 fra.me.REG[2] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
8079 CALL_syntax_base___MMMethSrcMethod___extern_name__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
8080 stack_frame_head = fra.me.prev;
8081 return;
8082 }
8083 val_t mmbuilder___ATypePropdef___prop(val_t p0){
8084 struct {struct stack_frame_t me;} fra;
8085 val_t REGB0;
8086 val_t tmp;
8087 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8088 fra.me.file = LOCATE_mmbuilder;
8089 fra.me.line = 1102;
8090 fra.me.meth = LOCATE_mmbuilder___ATypePropdef___prop;
8091 fra.me.has_broke = 0;
8092 fra.me.REG_size = 1;
8093 fra.me.REG[0] = NIT_NULL;
8094 fra.me.REG[0] = p0;
8095 /* ./syntax//mmbuilder.nit:1102 */
8096 fra.me.REG[0] = ATTR_mmbuilder___ATypePropdef____prop(fra.me.REG[0]);
8097 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
8098 if (UNTAG_Bool(REGB0)) {
8099 } else {
8100 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 1102);
8101 }
8102 goto label1;
8103 label1: while(0);
8104 stack_frame_head = fra.me.prev;
8105 return fra.me.REG[0];
8106 }
8107 void mmbuilder___ATypePropdef___accept_property_builder(val_t p0, val_t p1){
8108 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8109 val_t tmp;
8110 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8111 fra.me.file = LOCATE_mmbuilder;
8112 fra.me.line = 1105;
8113 fra.me.meth = LOCATE_mmbuilder___ATypePropdef___accept_property_builder;
8114 fra.me.has_broke = 0;
8115 fra.me.REG_size = 4;
8116 fra.me.REG[0] = NIT_NULL;
8117 fra.me.REG[1] = NIT_NULL;
8118 fra.me.REG[2] = NIT_NULL;
8119 fra.me.REG[3] = NIT_NULL;
8120 fra.me.REG[0] = p0;
8121 fra.me.REG[1] = p1;
8122 /* ./syntax//mmbuilder.nit:1105 */
8123 fra.me.REG[2] = fra.me.REG[0];
8124 fra.me.REG[3] = fra.me.REG[1];
8125 /* ./syntax//mmbuilder.nit:1107 */
8126 CALL_SUPER_mmbuilder___ATypePropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8127 /* ./syntax//mmbuilder.nit:1108 */
8128 fra.me.REG[1] = CALL_parser_nodes___ATypePropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8129 fra.me.REG[1] = CALL_syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
8130 /* ./syntax//mmbuilder.nit:1109 */
8131 fra.me.REG[0] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8132 fra.me.REG[0] = NEW_MMSrcTypeProperty_syntax_base___MMSrcTypeProperty___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
8133 /* ./syntax//mmbuilder.nit:1110 */
8134 ATTR_mmbuilder___ATypePropdef____prop(fra.me.REG[2]) = fra.me.REG[0];
8135 /* ./syntax//mmbuilder.nit:1111 */
8136 fra.me.REG[2] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8137 CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0]);
8138 stack_frame_head = fra.me.prev;
8139 return;
8140 }
8141 void mmbuilder___ATypePropdef___accept_property_verifier(val_t p0, val_t p1){
8142 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
8143 val_t REGB0;
8144 val_t REGB1;
8145 val_t REGB2;
8146 val_t tmp;
8147 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8148 fra.me.file = LOCATE_mmbuilder;
8149 fra.me.line = 1114;
8150 fra.me.meth = LOCATE_mmbuilder___ATypePropdef___accept_property_verifier;
8151 fra.me.has_broke = 0;
8152 fra.me.REG_size = 5;
8153 fra.me.REG[0] = NIT_NULL;
8154 fra.me.REG[1] = NIT_NULL;
8155 fra.me.REG[2] = NIT_NULL;
8156 fra.me.REG[3] = NIT_NULL;
8157 fra.me.REG[4] = NIT_NULL;
8158 fra.me.REG[0] = p0;
8159 fra.me.REG[1] = p1;
8160 /* ./syntax//mmbuilder.nit:1114 */
8161 fra.me.REG[2] = fra.me.REG[0];
8162 fra.me.REG[3] = fra.me.REG[1];
8163 /* ./syntax//mmbuilder.nit:1116 */
8164 CALL_SUPER_mmbuilder___ATypePropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8165 /* ./syntax//mmbuilder.nit:1117 */
8166 fra.me.REG[1] = NEW_Array_array___Array___init();
8167 fra.me.REG[0] = CALL_parser_nodes___ATypePropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8168 fra.me.REG[0] = CALL_syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8169 fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8170 fra.me.REG[4] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
8171 fra.me.REG[4] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
8172 /* ./syntax//mmbuilder.nit:1118 */
8173 fra.me.REG[0] = CALL_syntax_base___ATypePropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
8174 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
8175 /* ./syntax//mmbuilder.nit:1119 */
8176 fra.me.REG[4] = CALL_parser_nodes___ATypePropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
8177 REGB0 = CALL_mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
8178 /* ./syntax//mmbuilder.nit:1120 */
8179 fra.me.REG[4] = CALL_syntax_base___ATypePropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
8180 fra.me.REG[0] = CALL_parser_nodes___ATypePropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
8181 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8182 if (UNTAG_Bool(REGB1)) {
8183 } else {
8184 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8185 if (UNTAG_Bool(REGB2)) {
8186 REGB2 = TAG_Bool(false);
8187 REGB1 = REGB2;
8188 } else {
8189 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8190 REGB1 = REGB2;
8191 }
8192 }
8193 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8194 CALL_mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], REGB1, REGB0);
8195 stack_frame_head = fra.me.prev;
8196 return;
8197 }
8198 void mmbuilder___ATypePropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
8199 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8200 val_t tmp;
8201 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8202 fra.me.file = LOCATE_mmbuilder;
8203 fra.me.line = 1123;
8204 fra.me.meth = LOCATE_mmbuilder___ATypePropdef___accept_abs_syntax_visitor;
8205 fra.me.has_broke = 0;
8206 fra.me.REG_size = 4;
8207 fra.me.REG[0] = NIT_NULL;
8208 fra.me.REG[1] = NIT_NULL;
8209 fra.me.REG[2] = NIT_NULL;
8210 fra.me.REG[3] = NIT_NULL;
8211 fra.me.REG[0] = p0;
8212 fra.me.REG[1] = p1;
8213 /* ./syntax//mmbuilder.nit:1123 */
8214 fra.me.REG[2] = fra.me.REG[0];
8215 fra.me.REG[3] = fra.me.REG[1];
8216 /* ./syntax//mmbuilder.nit:1125 */
8217 fra.me.REG[2] = ATTR_mmbuilder___ATypePropdef____prop(fra.me.REG[2]);
8218 CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
8219 /* ./syntax//mmbuilder.nit:1126 */
8220 CALL_SUPER_mmbuilder___ATypePropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8221 /* ./syntax//mmbuilder.nit:1127 */
8222 CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8223 stack_frame_head = fra.me.prev;
8224 return;
8225 }
8226 val_t mmbuilder___MethidAccumulator___name(val_t p0){
8227 struct {struct stack_frame_t me;} fra;
8228 val_t REGB0;
8229 val_t tmp;
8230 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8231 fra.me.file = LOCATE_mmbuilder;
8232 fra.me.line = 1134;
8233 fra.me.meth = LOCATE_mmbuilder___MethidAccumulator___name;
8234 fra.me.has_broke = 0;
8235 fra.me.REG_size = 1;
8236 fra.me.REG[0] = NIT_NULL;
8237 fra.me.REG[0] = p0;
8238 /* ./syntax//mmbuilder.nit:1134 */
8239 REGB0 = TAG_Bool(ATTR_mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL);
8240 if (UNTAG_Bool(REGB0)) {
8241 } else {
8242 nit_abort("Uninitialized attribute %s", "_name", LOCATE_mmbuilder, 1134);
8243 }
8244 fra.me.REG[0] = ATTR_mmbuilder___MethidAccumulator____name(fra.me.REG[0]);
8245 stack_frame_head = fra.me.prev;
8246 return fra.me.REG[0];
8247 }
8248 void mmbuilder___MethidAccumulator___visit(val_t p0, val_t p1){
8249 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8250 val_t REGB0;
8251 val_t tmp;
8252 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8253 fra.me.file = LOCATE_mmbuilder;
8254 fra.me.line = 1135;
8255 fra.me.meth = LOCATE_mmbuilder___MethidAccumulator___visit;
8256 fra.me.has_broke = 0;
8257 fra.me.REG_size = 4;
8258 fra.me.REG[0] = NIT_NULL;
8259 fra.me.REG[1] = NIT_NULL;
8260 fra.me.REG[2] = NIT_NULL;
8261 fra.me.REG[3] = NIT_NULL;
8262 fra.me.REG[0] = p0;
8263 fra.me.REG[1] = p1;
8264 /* ./syntax//mmbuilder.nit:1137 */
8265 REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_Token, ID_Token)) /*cast Token*/;
8266 if (UNTAG_Bool(REGB0)) {
8267 /* ./syntax//mmbuilder.nit:1138 */
8268 REGB0 = TAG_Bool(ATTR_mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL);
8269 if (UNTAG_Bool(REGB0)) {
8270 } else {
8271 nit_abort("Uninitialized attribute %s", "_name", LOCATE_mmbuilder, 1138);
8272 }
8273 fra.me.REG[2] = ATTR_mmbuilder___MethidAccumulator____name(fra.me.REG[0]);
8274 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8275 if (UNTAG_Bool(REGB0)) {
8276 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1138);
8277 }
8278 fra.me.REG[3] = CALL_lexer___Token___text(fra.me.REG[1])(fra.me.REG[1]);
8279 CALL_abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
8280 } else {
8281 /* ./syntax//mmbuilder.nit:1140 */
8282 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8283 if (UNTAG_Bool(REGB0)) {
8284 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1140);
8285 }
8286 CALL_parser_prod___ANode___visit_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
8287 }
8288 stack_frame_head = fra.me.prev;
8289 return;
8290 }
8291 val_t mmbuilder___AMethid___name(val_t p0){
8292 struct {struct stack_frame_t me;} fra;
8293 val_t tmp;
8294 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8295 fra.me.file = LOCATE_mmbuilder;
8296 fra.me.line = 1146;
8297 fra.me.meth = LOCATE_mmbuilder___AMethid___name;
8298 fra.me.has_broke = 0;
8299 fra.me.REG_size = 1;
8300 fra.me.REG[0] = NIT_NULL;
8301 fra.me.REG[0] = p0;
8302 /* ./syntax//mmbuilder.nit:1146 */
8303 fra.me.REG[0] = ATTR_mmbuilder___AMethid____name(fra.me.REG[0]);
8304 stack_frame_head = fra.me.prev;
8305 return fra.me.REG[0];
8306 }
8307 void mmbuilder___AMethid___accept_property_builder(val_t p0, val_t p1){
8308 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8309 val_t tmp;
8310 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8311 fra.me.file = LOCATE_mmbuilder;
8312 fra.me.line = 1149;
8313 fra.me.meth = LOCATE_mmbuilder___AMethid___accept_property_builder;
8314 fra.me.has_broke = 0;
8315 fra.me.REG_size = 4;
8316 fra.me.REG[0] = NIT_NULL;
8317 fra.me.REG[1] = NIT_NULL;
8318 fra.me.REG[2] = NIT_NULL;
8319 fra.me.REG[3] = NIT_NULL;
8320 fra.me.REG[0] = p0;
8321 fra.me.REG[1] = p1;
8322 /* ./syntax//mmbuilder.nit:1149 */
8323 fra.me.REG[2] = fra.me.REG[0];
8324 /* ./syntax//mmbuilder.nit:1151 */
8325 fra.me.REG[3] = NEW_MethidAccumulator_parser_prod___Visitor___init();
8326 /* ./syntax//mmbuilder.nit:1152 */
8327 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
8328 /* ./syntax//mmbuilder.nit:1153 */
8329 fra.me.REG[3] = CALL_mmbuilder___MethidAccumulator___name(fra.me.REG[3])(fra.me.REG[3]);
8330 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
8331 fra.me.REG[3] = CALL_symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
8332 ATTR_mmbuilder___AMethid____name(fra.me.REG[2]) = fra.me.REG[3];
8333 /* ./syntax//mmbuilder.nit:1154 */
8334 CALL_SUPER_mmbuilder___AMethid___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8335 stack_frame_head = fra.me.prev;
8336 return;
8337 }
8338 void mmbuilder___ASignature___accept_property_verifier(val_t p0, val_t p1){
8339 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
8340 val_t REGB0;
8341 val_t REGB1;
8342 val_t REGB2;
8343 val_t tmp;
8344 static val_t once_value_2; /* Once value */
8345 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8346 fra.me.file = LOCATE_mmbuilder;
8347 fra.me.line = 1159;
8348 fra.me.meth = LOCATE_mmbuilder___ASignature___accept_property_verifier;
8349 fra.me.has_broke = 0;
8350 fra.me.REG_size = 7;
8351 fra.me.REG[0] = NIT_NULL;
8352 fra.me.REG[1] = NIT_NULL;
8353 fra.me.REG[2] = NIT_NULL;
8354 fra.me.REG[3] = NIT_NULL;
8355 fra.me.REG[4] = NIT_NULL;
8356 fra.me.REG[5] = NIT_NULL;
8357 fra.me.REG[6] = NIT_NULL;
8358 fra.me.REG[0] = p0;
8359 fra.me.REG[1] = p1;
8360 /* ./syntax//mmbuilder.nit:1159 */
8361 fra.me.REG[2] = fra.me.REG[0];
8362 fra.me.REG[3] = fra.me.REG[1];
8363 /* ./syntax//mmbuilder.nit:1161 */
8364 CALL_SUPER_mmbuilder___ASignature___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8365 /* ./syntax//mmbuilder.nit:1162 */
8366 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8367 REGB0 = CALL_mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
8368 if (UNTAG_Bool(REGB0)) {
8369 /* ./syntax//mmbuilder.nit:1163 */
8370 goto label1;
8371 } else {
8372 /* ./syntax//mmbuilder.nit:1164 */
8373 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8374 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
8375 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
8376 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8377 if (UNTAG_Bool(REGB0)) {
8378 /* ./syntax//mmbuilder.nit:1165 */
8379 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8380 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
8381 fra.me.REG[1] = CALL_abstract_collection___Collection___first(fra.me.REG[1])(fra.me.REG[1]);
8382 fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8383 fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[0])(fra.me.REG[0]);
8384 fra.me.REG[0] = CALL_abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]);
8385 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[1],fra.me.REG[0]));
8386 if (UNTAG_Bool(REGB0)) {
8387 } else {
8388 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8389 if (UNTAG_Bool(REGB1)) {
8390 REGB1 = TAG_Bool(false);
8391 REGB0 = REGB1;
8392 } else {
8393 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
8394 REGB0 = REGB1;
8395 }
8396 }
8397 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8398 if (UNTAG_Bool(REGB0)) {
8399 REGB0 = TAG_Bool(true);
8400 } else {
8401 fra.me.REG[0] = CALL_parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
8402 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8403 if (UNTAG_Bool(REGB1)) {
8404 } else {
8405 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8406 if (UNTAG_Bool(REGB2)) {
8407 REGB2 = TAG_Bool(false);
8408 REGB1 = REGB2;
8409 } else {
8410 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8411 REGB1 = REGB2;
8412 }
8413 }
8414 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8415 REGB0 = REGB1;
8416 }
8417 if (UNTAG_Bool(REGB0)) {
8418 /* ./syntax//mmbuilder.nit:1166 */
8419 fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8420 fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[0])(fra.me.REG[0]);
8421 fra.me.REG[0] = CALL_abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]);
8422 if (!once_value_2) {
8423 fra.me.REG[1] = BOX_NativeString("Syntax error: untyped parameter.");
8424 REGB0 = TAG_Int(32);
8425 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
8426 once_value_2 = fra.me.REG[1];
8427 register_static_object(&once_value_2);
8428 } else fra.me.REG[1] = once_value_2;
8429 fra.me.REG[1] = fra.me.REG[1];
8430 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1]);
8431 /* ./syntax//mmbuilder.nit:1167 */
8432 goto label1;
8433 }
8434 } else {
8435 /* ./syntax//mmbuilder.nit:1169 */
8436 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8437 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[1])(fra.me.REG[1]);
8438 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
8439 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8440 if (UNTAG_Bool(REGB0)) {
8441 REGB0 = TAG_Bool(true);
8442 } else {
8443 fra.me.REG[1] = CALL_parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
8444 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8445 if (UNTAG_Bool(REGB1)) {
8446 } else {
8447 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8448 if (UNTAG_Bool(REGB2)) {
8449 REGB2 = TAG_Bool(false);
8450 REGB1 = REGB2;
8451 } else {
8452 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8453 REGB1 = REGB2;
8454 }
8455 }
8456 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8457 REGB0 = REGB1;
8458 }
8459 if (UNTAG_Bool(REGB0)) {
8460 /* ./syntax//mmbuilder.nit:1170 */
8461 fra.me.REG[1] = NEW_Array_array___Array___init();
8462 /* ./syntax//mmbuilder.nit:1171 */
8463 fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8464 fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[0])(fra.me.REG[0]);
8465 /* ./../lib/standard//collection//array.nit:234 */
8466 REGB0 = TAG_Int(0);
8467 /* ./../lib/standard//collection//array.nit:235 */
8468 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
8469 if (UNTAG_Bool(REGB1)) {
8470 } else {
8471 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
8472 }
8473 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
8474 /* ./../lib/standard//collection//array.nit:236 */
8475 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[0]);
8476 /* ./../lib/standard//collection//array.nit:237 */
8477 while(1) {
8478 /* ./../lib/standard//collection//array.nit:23 */
8479 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
8480 if (UNTAG_Bool(REGB1)) {
8481 } else {
8482 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
8483 }
8484 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
8485 /* ./../lib/standard//kernel.nit:212 */
8486 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
8487 /* ./../lib/standard//collection//array.nit:237 */
8488 if (UNTAG_Bool(REGB1)) {
8489 /* ./../lib/standard//collection//array.nit:238 */
8490 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8491 if (UNTAG_Bool(REGB1)) {
8492 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
8493 }
8494 /* ./../lib/standard//collection//array.nit:654 */
8495 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
8496 /* ./syntax//mmbuilder.nit:1172 */
8497 fra.me.REG[6] = CALL_mmbuilder___AParam___stype(fra.me.REG[5])(fra.me.REG[5]);
8498 REGB1 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
8499 if (UNTAG_Bool(REGB1)) {
8500 } else {
8501 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 1172);
8502 }
8503 fra.me.REG[5] = CALL_parser_nodes___AParam___n_id(fra.me.REG[5])(fra.me.REG[5]);
8504 fra.me.REG[5] = CALL_syntax_base___Token___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
8505 fra.me.REG[5] = NEW_MMParam_static_type___MMParam___init(fra.me.REG[6], fra.me.REG[5]);
8506 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
8507 /* ./../lib/standard//collection//array.nit:239 */
8508 REGB1 = TAG_Int(1);
8509 /* ./../lib/standard//kernel.nit:215 */
8510 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
8511 /* ./../lib/standard//collection//array.nit:239 */
8512 REGB0 = REGB1;
8513 } else {
8514 /* ./../lib/standard//collection//array.nit:237 */
8515 goto label3;
8516 }
8517 }
8518 label3: while(0);
8519 /* ./syntax//mmbuilder.nit:1174 */
8520 fra.me.REG[4] = NIT_NULL;
8521 /* ./syntax//mmbuilder.nit:1175 */
8522 fra.me.REG[0] = CALL_parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
8523 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8524 if (UNTAG_Bool(REGB0)) {
8525 } else {
8526 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8527 if (UNTAG_Bool(REGB1)) {
8528 REGB1 = TAG_Bool(false);
8529 REGB0 = REGB1;
8530 } else {
8531 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8532 REGB0 = REGB1;
8533 }
8534 }
8535 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8536 if (UNTAG_Bool(REGB0)) {
8537 /* ./syntax//mmbuilder.nit:1176 */
8538 fra.me.REG[2] = CALL_parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
8539 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8540 if (UNTAG_Bool(REGB0)) {
8541 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1176);
8542 }
8543 fra.me.REG[2] = CALL_syntax_base___AType___get_stype(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
8544 fra.me.REG[4] = fra.me.REG[2];
8545 /* ./syntax//mmbuilder.nit:1177 */
8546 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8547 if (UNTAG_Bool(REGB0)) {
8548 } else {
8549 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8550 if (UNTAG_Bool(REGB1)) {
8551 REGB1 = TAG_Bool(false);
8552 REGB0 = REGB1;
8553 } else {
8554 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8555 REGB0 = REGB1;
8556 }
8557 }
8558 if (UNTAG_Bool(REGB0)) {
8559 /* ./syntax//mmbuilder.nit:1178 */
8560 fra.me.REG[2] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8561 REGB0 = TAG_Bool(true);
8562 CALL_mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
8563 /* ./syntax//mmbuilder.nit:1179 */
8564 goto label1;
8565 }
8566 }
8567 /* ./syntax//mmbuilder.nit:1182 */
8568 fra.me.REG[2] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8569 fra.me.REG[0] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8570 fra.me.REG[0] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[0])(fra.me.REG[0]);
8571 fra.me.REG[0] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]);
8572 CALL_mmbuilder___SignatureBuilder___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8573 /* ./syntax//mmbuilder.nit:1183 */
8574 fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8575 REGB0 = CALL_mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[0])(fra.me.REG[0]);
8576 REGB1 = TAG_Int(0);
8577 /* ./../lib/standard//kernel.nit:213 */
8578 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
8579 /* ./syntax//mmbuilder.nit:1183 */
8580 if (UNTAG_Bool(REGB1)) {
8581 /* ./syntax//mmbuilder.nit:1184 */
8582 fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8583 fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___signature(fra.me.REG[0])(fra.me.REG[0]);
8584 fra.me.REG[2] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8585 REGB1 = CALL_mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[2])(fra.me.REG[2]);
8586 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8587 if (UNTAG_Bool(REGB0)) {
8588 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1184);
8589 }
8590 CALL_vararg___MMSignature___vararg_rank__eq(fra.me.REG[0])(fra.me.REG[0], REGB1);
8591 }
8592 /* ./syntax//mmbuilder.nit:1186 */
8593 fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8594 fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[0])(fra.me.REG[0]);
8595 /* ./../lib/standard//collection//array.nit:234 */
8596 REGB1 = TAG_Int(0);
8597 /* ./../lib/standard//collection//array.nit:235 */
8598 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
8599 if (UNTAG_Bool(REGB0)) {
8600 } else {
8601 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
8602 }
8603 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
8604 /* ./../lib/standard//collection//array.nit:236 */
8605 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[0]);
8606 /* ./../lib/standard//collection//array.nit:237 */
8607 while(1) {
8608 /* ./../lib/standard//collection//array.nit:23 */
8609 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
8610 if (UNTAG_Bool(REGB0)) {
8611 } else {
8612 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
8613 }
8614 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
8615 /* ./../lib/standard//kernel.nit:212 */
8616 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
8617 /* ./../lib/standard//collection//array.nit:237 */
8618 if (UNTAG_Bool(REGB0)) {
8619 /* ./../lib/standard//collection//array.nit:238 */
8620 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8621 if (UNTAG_Bool(REGB0)) {
8622 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
8623 }
8624 /* ./../lib/standard//collection//array.nit:654 */
8625 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
8626 /* ./syntax//mmbuilder.nit:1187 */
8627 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8628 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
8629 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8630 if (UNTAG_Bool(REGB0)) {
8631 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1187);
8632 }
8633 fra.me.REG[1] = CALL_static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
8634 fra.me.REG[4] = CALL_syntax_base___AClosureDecl___variable(fra.me.REG[4])(fra.me.REG[4]);
8635 fra.me.REG[4] = CALL_syntax_base___ClosureVariable___closure(fra.me.REG[4])(fra.me.REG[4]);
8636 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
8637 /* ./../lib/standard//collection//array.nit:239 */
8638 REGB0 = TAG_Int(1);
8639 /* ./../lib/standard//kernel.nit:215 */
8640 REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
8641 /* ./../lib/standard//collection//array.nit:239 */
8642 REGB1 = REGB0;
8643 } else {
8644 /* ./../lib/standard//collection//array.nit:237 */
8645 goto label4;
8646 }
8647 }
8648 label4: while(0);
8649 }
8650 }
8651 }
8652 label1: while(0);
8653 stack_frame_head = fra.me.prev;
8654 return;
8655 }
8656 void mmbuilder___ASignature___check_visibility(val_t p0, val_t p1, val_t p2){
8657 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8658 val_t REGB0;
8659 val_t REGB1;
8660 val_t tmp;
8661 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8662 fra.me.file = LOCATE_mmbuilder;
8663 fra.me.line = 1192;
8664 fra.me.meth = LOCATE_mmbuilder___ASignature___check_visibility;
8665 fra.me.has_broke = 0;
8666 fra.me.REG_size = 4;
8667 fra.me.REG[0] = NIT_NULL;
8668 fra.me.REG[1] = NIT_NULL;
8669 fra.me.REG[2] = NIT_NULL;
8670 fra.me.REG[3] = NIT_NULL;
8671 fra.me.REG[0] = p0;
8672 fra.me.REG[1] = p1;
8673 fra.me.REG[2] = p2;
8674 /* ./syntax//mmbuilder.nit:1195 */
8675 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
8676 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
8677 REGB1 = TAG_Int(3);
8678 /* ./../lib/standard//kernel.nit:213 */
8679 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
8680 /* ./syntax//mmbuilder.nit:1195 */
8681 if (UNTAG_Bool(REGB1)) {
8682 goto label1;
8683 }
8684 /* ./syntax//mmbuilder.nit:1196 */
8685 fra.me.REG[3] = CALL_parser_nodes___ASignature___n_params(fra.me.REG[0])(fra.me.REG[0]);
8686 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_mmbuilder___ASignature___check_visibility_2));
8687 /* ./syntax//mmbuilder.nit:1199 */
8688 fra.me.REG[3] = CALL_parser_nodes___ASignature___n_type(fra.me.REG[0])(fra.me.REG[0]);
8689 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8690 if (UNTAG_Bool(REGB1)) {
8691 } else {
8692 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8693 if (UNTAG_Bool(REGB0)) {
8694 REGB0 = TAG_Bool(false);
8695 REGB1 = REGB0;
8696 } else {
8697 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8698 REGB1 = REGB0;
8699 }
8700 }
8701 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8702 if (UNTAG_Bool(REGB1)) {
8703 fra.me.REG[0] = CALL_parser_nodes___ASignature___n_type(fra.me.REG[0])(fra.me.REG[0]);
8704 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8705 if (UNTAG_Bool(REGB1)) {
8706 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1199);
8707 }
8708 CALL_mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
8709 }
8710 label1: while(0);
8711 stack_frame_head = fra.me.prev;
8712 return;
8713 }
8714 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){
8715 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8716 val_t REGB0;
8717 val_t REGB1;
8718 fun_t CREG[1];
8719 val_t tmp;
8720 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8721 fra.me.file = LOCATE_mmbuilder;
8722 fra.me.line = 0;
8723 fra.me.meth = LOCATE_mmbuilder___ASignature___check_visibility;
8724 fra.me.has_broke = 0;
8725 fra.me.REG_size = 2;
8726 fra.me.REG[0] = NIT_NULL;
8727 fra.me.REG[1] = NIT_NULL;
8728 fra.me.closure_ctx = closctx_param;
8729 fra.me.closure_funs = CREG;
8730 fra.me.REG[0] = p0;
8731 CREG[0] = clos_fun0;
8732 /* ./syntax//mmbuilder.nit:1197 */
8733 fra.me.REG[1] = CALL_parser_nodes___AParam___n_type(fra.me.REG[0])(fra.me.REG[0]);
8734 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8735 if (UNTAG_Bool(REGB0)) {
8736 } else {
8737 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8738 if (UNTAG_Bool(REGB1)) {
8739 REGB1 = TAG_Bool(false);
8740 REGB0 = REGB1;
8741 } else {
8742 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8743 REGB0 = REGB1;
8744 }
8745 }
8746 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8747 if (UNTAG_Bool(REGB0)) {
8748 fra.me.REG[0] = CALL_parser_nodes___AParam___n_type(fra.me.REG[0])(fra.me.REG[0]);
8749 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8750 if (UNTAG_Bool(REGB0)) {
8751 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1197);
8752 }
8753 CALL_mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1], closctx->REG[2]);
8754 }
8755 stack_frame_head = fra.me.prev;
8756 return;
8757 }
8758 val_t mmbuilder___AParam___position(val_t p0){
8759 struct {struct stack_frame_t me;} fra;
8760 val_t REGB0;
8761 val_t tmp;
8762 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8763 fra.me.file = LOCATE_mmbuilder;
8764 fra.me.line = 1204;
8765 fra.me.meth = LOCATE_mmbuilder___AParam___position;
8766 fra.me.has_broke = 0;
8767 fra.me.REG_size = 1;
8768 fra.me.REG[0] = NIT_NULL;
8769 fra.me.REG[0] = p0;
8770 /* ./syntax//mmbuilder.nit:1204 */
8771 REGB0 = TAG_Bool(ATTR_mmbuilder___AParam____position(fra.me.REG[0])!=NIT_NULL);
8772 if (UNTAG_Bool(REGB0)) {
8773 } else {
8774 nit_abort("Uninitialized attribute %s", "_position", LOCATE_mmbuilder, 1204);
8775 }
8776 REGB0 = ATTR_mmbuilder___AParam____position(fra.me.REG[0]);
8777 stack_frame_head = fra.me.prev;
8778 return REGB0;
8779 }
8780 val_t mmbuilder___AParam___variable(val_t p0){
8781 struct {struct stack_frame_t me;} fra;
8782 val_t REGB0;
8783 val_t tmp;
8784 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8785 fra.me.file = LOCATE_mmbuilder;
8786 fra.me.line = 1206;
8787 fra.me.meth = LOCATE_mmbuilder___AParam___variable;
8788 fra.me.has_broke = 0;
8789 fra.me.REG_size = 1;
8790 fra.me.REG[0] = NIT_NULL;
8791 fra.me.REG[0] = p0;
8792 /* ./syntax//mmbuilder.nit:1206 */
8793 fra.me.REG[0] = ATTR_mmbuilder___AParam____variable(fra.me.REG[0]);
8794 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
8795 if (UNTAG_Bool(REGB0)) {
8796 } else {
8797 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 1206);
8798 }
8799 goto label1;
8800 label1: while(0);
8801 stack_frame_head = fra.me.prev;
8802 return fra.me.REG[0];
8803 }
8804 val_t mmbuilder___AParam___stype(val_t p0){
8805 struct {struct stack_frame_t me;} fra;
8806 val_t tmp;
8807 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8808 fra.me.file = LOCATE_mmbuilder;
8809 fra.me.line = 1209;
8810 fra.me.meth = LOCATE_mmbuilder___AParam___stype;
8811 fra.me.has_broke = 0;
8812 fra.me.REG_size = 1;
8813 fra.me.REG[0] = NIT_NULL;
8814 fra.me.REG[0] = p0;
8815 /* ./syntax//mmbuilder.nit:1209 */
8816 fra.me.REG[0] = ATTR_mmbuilder___AParam____stype(fra.me.REG[0]);
8817 stack_frame_head = fra.me.prev;
8818 return fra.me.REG[0];
8819 }
8820 void mmbuilder___AParam___stype__eq(val_t p0, val_t p1){
8821 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8822 val_t tmp;
8823 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8824 fra.me.file = LOCATE_mmbuilder;
8825 fra.me.line = 1209;
8826 fra.me.meth = LOCATE_mmbuilder___AParam___stype__eq;
8827 fra.me.has_broke = 0;
8828 fra.me.REG_size = 2;
8829 fra.me.REG[0] = NIT_NULL;
8830 fra.me.REG[1] = NIT_NULL;
8831 fra.me.REG[0] = p0;
8832 fra.me.REG[1] = p1;
8833 /* ./syntax//mmbuilder.nit:1209 */
8834 ATTR_mmbuilder___AParam____stype(fra.me.REG[0]) = fra.me.REG[1];
8835 stack_frame_head = fra.me.prev;
8836 return;
8837 }
8838 void mmbuilder___AParam___accept_property_verifier(val_t p0, val_t p1){
8839 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
8840 val_t REGB0;
8841 val_t REGB1;
8842 val_t REGB2;
8843 val_t REGB3;
8844 val_t tmp;
8845 static val_t once_value_2; /* Once value */
8846 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8847 fra.me.file = LOCATE_mmbuilder;
8848 fra.me.line = 1212;
8849 fra.me.meth = LOCATE_mmbuilder___AParam___accept_property_verifier;
8850 fra.me.has_broke = 0;
8851 fra.me.REG_size = 7;
8852 fra.me.REG[0] = NIT_NULL;
8853 fra.me.REG[1] = NIT_NULL;
8854 fra.me.REG[2] = NIT_NULL;
8855 fra.me.REG[3] = NIT_NULL;
8856 fra.me.REG[4] = NIT_NULL;
8857 fra.me.REG[5] = NIT_NULL;
8858 fra.me.REG[6] = NIT_NULL;
8859 fra.me.REG[0] = p0;
8860 fra.me.REG[1] = p1;
8861 /* ./syntax//mmbuilder.nit:1212 */
8862 fra.me.REG[2] = fra.me.REG[0];
8863 fra.me.REG[3] = fra.me.REG[1];
8864 /* ./syntax//mmbuilder.nit:1214 */
8865 CALL_SUPER_mmbuilder___AParam___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8866 /* ./syntax//mmbuilder.nit:1215 */
8867 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8868 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[1])(fra.me.REG[1]);
8869 /* ./../lib/standard//collection//array.nit:23 */
8870 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
8871 if (UNTAG_Bool(REGB0)) {
8872 } else {
8873 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
8874 }
8875 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
8876 /* ./syntax//mmbuilder.nit:1215 */
8877 ATTR_mmbuilder___AParam____position(fra.me.REG[2]) = REGB0;
8878 /* ./syntax//mmbuilder.nit:1216 */
8879 fra.me.REG[1] = CALL_parser_nodes___AParam___n_id(fra.me.REG[2])(fra.me.REG[2]);
8880 fra.me.REG[1] = CALL_syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
8881 fra.me.REG[0] = CALL_parser_nodes___AParam___n_id(fra.me.REG[2])(fra.me.REG[2]);
8882 fra.me.REG[0] = NEW_ParamVariable_syntax_base___ParamVariable___init(fra.me.REG[1], fra.me.REG[0]);
8883 ATTR_mmbuilder___AParam____variable(fra.me.REG[2]) = fra.me.REG[0];
8884 /* ./syntax//mmbuilder.nit:1217 */
8885 fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8886 fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[0])(fra.me.REG[0]);
8887 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
8888 /* ./syntax//mmbuilder.nit:1218 */
8889 fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8890 fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[0])(fra.me.REG[0]);
8891 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
8892 /* ./syntax//mmbuilder.nit:1219 */
8893 fra.me.REG[0] = CALL_parser_nodes___AParam___n_type(fra.me.REG[2])(fra.me.REG[2]);
8894 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8895 if (UNTAG_Bool(REGB0)) {
8896 } else {
8897 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8898 if (UNTAG_Bool(REGB1)) {
8899 REGB1 = TAG_Bool(false);
8900 REGB0 = REGB1;
8901 } else {
8902 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8903 REGB0 = REGB1;
8904 }
8905 }
8906 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8907 if (UNTAG_Bool(REGB0)) {
8908 /* ./syntax//mmbuilder.nit:1220 */
8909 fra.me.REG[0] = CALL_parser_nodes___AParam___n_type(fra.me.REG[2])(fra.me.REG[2]);
8910 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8911 if (UNTAG_Bool(REGB0)) {
8912 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1220);
8913 }
8914 fra.me.REG[0] = CALL_syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8915 /* ./syntax//mmbuilder.nit:1221 */
8916 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8917 if (UNTAG_Bool(REGB0)) {
8918 } else {
8919 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8920 if (UNTAG_Bool(REGB1)) {
8921 REGB1 = TAG_Bool(false);
8922 REGB0 = REGB1;
8923 } else {
8924 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8925 REGB0 = REGB1;
8926 }
8927 }
8928 if (UNTAG_Bool(REGB0)) {
8929 /* ./syntax//mmbuilder.nit:1222 */
8930 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8931 REGB0 = TAG_Bool(true);
8932 CALL_mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
8933 /* ./syntax//mmbuilder.nit:1223 */
8934 goto label1;
8935 }
8936 /* ./syntax//mmbuilder.nit:1225 */
8937 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8938 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
8939 /* ./../lib/standard//collection//array.nit:234 */
8940 REGB0 = TAG_Int(0);
8941 /* ./../lib/standard//collection//array.nit:235 */
8942 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
8943 if (UNTAG_Bool(REGB1)) {
8944 } else {
8945 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
8946 }
8947 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
8948 /* ./../lib/standard//collection//array.nit:236 */
8949 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[1]);
8950 /* ./../lib/standard//collection//array.nit:237 */
8951 while(1) {
8952 /* ./../lib/standard//collection//array.nit:23 */
8953 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
8954 if (UNTAG_Bool(REGB1)) {
8955 } else {
8956 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
8957 }
8958 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
8959 /* ./../lib/standard//kernel.nit:212 */
8960 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
8961 /* ./../lib/standard//collection//array.nit:237 */
8962 if (UNTAG_Bool(REGB1)) {
8963 /* ./../lib/standard//collection//array.nit:238 */
8964 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8965 if (UNTAG_Bool(REGB1)) {
8966 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
8967 }
8968 /* ./../lib/standard//collection//array.nit:654 */
8969 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
8970 /* ./syntax//mmbuilder.nit:1226 */
8971 CALL_mmbuilder___AParam___stype__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
8972 /* ./syntax//mmbuilder.nit:1227 */
8973 REGB1 = CALL_mmbuilder___AParam___is_vararg(fra.me.REG[2])(fra.me.REG[2]);
8974 if (UNTAG_Bool(REGB1)) {
8975 /* ./syntax//mmbuilder.nit:1228 */
8976 fra.me.REG[6] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8977 REGB1 = CALL_mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[6])(fra.me.REG[6]);
8978 REGB2 = TAG_Int(1);
8979 /* ./../lib/standard//kernel.nit:216 */
8980 REGB2 = TAG_Int(-UNTAG_Int(REGB2));
8981 /* ./syntax//mmbuilder.nit:1228 */
8982 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
8983 if (UNTAG_Bool(REGB3)) {
8984 } else {
8985 /* ./../lib/standard//kernel.nit:207 */
8986 REGB2 = TAG_Bool((REGB1)==(REGB2));
8987 /* ./syntax//mmbuilder.nit:1228 */
8988 REGB3 = REGB2;
8989 }
8990 if (UNTAG_Bool(REGB3)) {
8991 /* ./syntax//mmbuilder.nit:1229 */
8992 fra.me.REG[6] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8993 REGB3 = CALL_syntax_base___AParam___position(fra.me.REG[5])(fra.me.REG[5]);
8994 CALL_mmbuilder___SignatureBuilder___vararg_rank__eq(fra.me.REG[6])(fra.me.REG[6], REGB3);
8995 } else {
8996 /* ./syntax//mmbuilder.nit:1231 */
8997 if (!once_value_2) {
8998 fra.me.REG[6] = BOX_NativeString("Error: A vararg parameter is already defined.");
8999 REGB3 = TAG_Int(45);
9000 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB3);
9001 once_value_2 = fra.me.REG[6];
9002 register_static_object(&once_value_2);
9003 } else fra.me.REG[6] = once_value_2;
9004 fra.me.REG[6] = fra.me.REG[6];
9005 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
9006 }
9007 /* ./syntax//mmbuilder.nit:1233 */
9008 fra.me.REG[6] = CALL_syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
9009 fra.me.REG[0] = fra.me.REG[6];
9010 }
9011 /* ./syntax//mmbuilder.nit:1235 */
9012 fra.me.REG[5] = CALL_syntax_base___AParam___variable(fra.me.REG[5])(fra.me.REG[5]);
9013 CALL_syntax_base___Variable___stype__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
9014 /* ./../lib/standard//collection//array.nit:239 */
9015 REGB3 = TAG_Int(1);
9016 /* ./../lib/standard//kernel.nit:215 */
9017 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
9018 /* ./../lib/standard//collection//array.nit:239 */
9019 REGB0 = REGB3;
9020 } else {
9021 /* ./../lib/standard//collection//array.nit:237 */
9022 goto label3;
9023 }
9024 }
9025 label3: while(0);
9026 /* ./syntax//mmbuilder.nit:1237 */
9027 fra.me.REG[3] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9028 fra.me.REG[3] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[3])(fra.me.REG[3]);
9029 CALL_abstract_collection___RemovableCollection___clear(fra.me.REG[3])(fra.me.REG[3]);
9030 }
9031 label1: while(0);
9032 stack_frame_head = fra.me.prev;
9033 return;
9034 }
9035 val_t mmbuilder___AParam___is_vararg(val_t p0){
9036 struct {struct stack_frame_t me;} fra;
9037 val_t REGB0;
9038 val_t REGB1;
9039 val_t tmp;
9040 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9041 fra.me.file = LOCATE_mmbuilder;
9042 fra.me.line = 1241;
9043 fra.me.meth = LOCATE_mmbuilder___AParam___is_vararg;
9044 fra.me.has_broke = 0;
9045 fra.me.REG_size = 1;
9046 fra.me.REG[0] = NIT_NULL;
9047 fra.me.REG[0] = p0;
9048 /* ./syntax//mmbuilder.nit:1241 */
9049 fra.me.REG[0] = CALL_parser_nodes___AParam___n_dotdotdot(fra.me.REG[0])(fra.me.REG[0]);
9050 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9051 if (UNTAG_Bool(REGB0)) {
9052 } else {
9053 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9054 if (UNTAG_Bool(REGB1)) {
9055 REGB1 = TAG_Bool(false);
9056 REGB0 = REGB1;
9057 } else {
9058 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
9059 REGB0 = REGB1;
9060 }
9061 }
9062 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9063 goto label1;
9064 label1: while(0);
9065 stack_frame_head = fra.me.prev;
9066 return REGB0;
9067 }
9068 val_t mmbuilder___AClosureDecl___position(val_t p0){
9069 struct {struct stack_frame_t me;} fra;
9070 val_t REGB0;
9071 val_t tmp;
9072 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9073 fra.me.file = LOCATE_mmbuilder;
9074 fra.me.line = 1245;
9075 fra.me.meth = LOCATE_mmbuilder___AClosureDecl___position;
9076 fra.me.has_broke = 0;
9077 fra.me.REG_size = 1;
9078 fra.me.REG[0] = NIT_NULL;
9079 fra.me.REG[0] = p0;
9080 /* ./syntax//mmbuilder.nit:1245 */
9081 REGB0 = TAG_Bool(ATTR_mmbuilder___AClosureDecl____position(fra.me.REG[0])!=NIT_NULL);
9082 if (UNTAG_Bool(REGB0)) {
9083 } else {
9084 nit_abort("Uninitialized attribute %s", "_position", LOCATE_mmbuilder, 1245);
9085 }
9086 REGB0 = ATTR_mmbuilder___AClosureDecl____position(fra.me.REG[0]);
9087 stack_frame_head = fra.me.prev;
9088 return REGB0;
9089 }
9090 val_t mmbuilder___AClosureDecl___variable(val_t p0){
9091 struct {struct stack_frame_t me;} fra;
9092 val_t REGB0;
9093 val_t tmp;
9094 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9095 fra.me.file = LOCATE_mmbuilder;
9096 fra.me.line = 1247;
9097 fra.me.meth = LOCATE_mmbuilder___AClosureDecl___variable;
9098 fra.me.has_broke = 0;
9099 fra.me.REG_size = 1;
9100 fra.me.REG[0] = NIT_NULL;
9101 fra.me.REG[0] = p0;
9102 /* ./syntax//mmbuilder.nit:1247 */
9103 fra.me.REG[0] = ATTR_mmbuilder___AClosureDecl____variable(fra.me.REG[0]);
9104 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
9105 if (UNTAG_Bool(REGB0)) {
9106 } else {
9107 nit_abort("Cast failed", NULL, LOCATE_mmbuilder, 1247);
9108 }
9109 goto label1;
9110 label1: while(0);
9111 stack_frame_head = fra.me.prev;
9112 return fra.me.REG[0];
9113 }
9114 void mmbuilder___AClosureDecl___accept_property_verifier(val_t p0, val_t p1){
9115 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
9116 val_t REGB0;
9117 val_t REGB1;
9118 val_t REGB2;
9119 val_t tmp;
9120 static val_t once_value_2; /* Once value */
9121 static val_t once_value_3; /* Once value */
9122 static val_t once_value_4; /* Once value */
9123 static val_t once_value_5; /* Once value */
9124 static val_t once_value_6; /* Once value */
9125 static val_t once_value_7; /* Once value */
9126 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9127 fra.me.file = LOCATE_mmbuilder;
9128 fra.me.line = 1250;
9129 fra.me.meth = LOCATE_mmbuilder___AClosureDecl___accept_property_verifier;
9130 fra.me.has_broke = 0;
9131 fra.me.REG_size = 11;
9132 fra.me.REG[0] = NIT_NULL;
9133 fra.me.REG[1] = NIT_NULL;
9134 fra.me.REG[2] = NIT_NULL;
9135 fra.me.REG[3] = NIT_NULL;
9136 fra.me.REG[4] = NIT_NULL;
9137 fra.me.REG[5] = NIT_NULL;
9138 fra.me.REG[6] = NIT_NULL;
9139 fra.me.REG[7] = NIT_NULL;
9140 fra.me.REG[8] = NIT_NULL;
9141 fra.me.REG[9] = NIT_NULL;
9142 fra.me.REG[10] = NIT_NULL;
9143 fra.me.REG[0] = p0;
9144 fra.me.REG[1] = p1;
9145 /* ./syntax//mmbuilder.nit:1250 */
9146 fra.me.REG[2] = fra.me.REG[0];
9147 fra.me.REG[3] = fra.me.REG[1];
9148 /* ./syntax//mmbuilder.nit:1252 */
9149 fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9150 /* ./syntax//mmbuilder.nit:1253 */
9151 fra.me.REG[5] = NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init();
9152 CALL_mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
9153 /* ./syntax//mmbuilder.nit:1254 */
9154 CALL_SUPER_mmbuilder___AClosureDecl___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9155 /* ./syntax//mmbuilder.nit:1255 */
9156 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9157 REGB0 = CALL_mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
9158 if (UNTAG_Bool(REGB0)) {
9159 /* ./syntax//mmbuilder.nit:1256 */
9160 goto label1;
9161 }
9162 /* ./syntax//mmbuilder.nit:1258 */
9163 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9164 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
9165 /* ./syntax//mmbuilder.nit:1259 */
9166 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9167 if (UNTAG_Bool(REGB0)) {
9168 } else {
9169 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9170 if (UNTAG_Bool(REGB1)) {
9171 REGB1 = TAG_Bool(false);
9172 REGB0 = REGB1;
9173 } else {
9174 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9175 REGB0 = REGB1;
9176 }
9177 }
9178 if (UNTAG_Bool(REGB0)) {
9179 /* ./syntax//mmbuilder.nit:1260 */
9180 fra.me.REG[0] = NEW_Array_array___Array___init();
9181 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9182 fra.me.REG[5] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]);
9183 fra.me.REG[5] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[5]);
9184 fra.me.REG[1] = fra.me.REG[5];
9185 }
9186 /* ./syntax//mmbuilder.nit:1262 */
9187 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9188 if (UNTAG_Bool(REGB0)) {
9189 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1262);
9190 }
9191 fra.me.REG[5] = CALL_static_type___MMSignature___return_type(fra.me.REG[1])(fra.me.REG[1]);
9192 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9193 if (UNTAG_Bool(REGB0)) {
9194 } else {
9195 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9196 if (UNTAG_Bool(REGB1)) {
9197 REGB1 = TAG_Bool(false);
9198 REGB0 = REGB1;
9199 } else {
9200 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
9201 REGB0 = REGB1;
9202 }
9203 }
9204 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9205 if (UNTAG_Bool(REGB0)) {
9206 fra.me.REG[5] = CALL_parser_nodes___AClosureDecl___n_kwbreak(fra.me.REG[2])(fra.me.REG[2]);
9207 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9208 if (UNTAG_Bool(REGB0)) {
9209 } else {
9210 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9211 if (UNTAG_Bool(REGB1)) {
9212 REGB1 = TAG_Bool(false);
9213 REGB0 = REGB1;
9214 } else {
9215 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
9216 REGB0 = REGB1;
9217 }
9218 }
9219 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9220 } else {
9221 REGB1 = TAG_Bool(false);
9222 REGB0 = REGB1;
9223 }
9224 if (UNTAG_Bool(REGB0)) {
9225 /* ./syntax//mmbuilder.nit:1263 */
9226 if (!once_value_2) {
9227 fra.me.REG[5] = BOX_NativeString("Syntax Error: A break block cannot have a return value.");
9228 REGB0 = TAG_Int(55);
9229 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
9230 once_value_2 = fra.me.REG[5];
9231 register_static_object(&once_value_2);
9232 } else fra.me.REG[5] = once_value_2;
9233 fra.me.REG[5] = fra.me.REG[5];
9234 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[5]);
9235 }
9236 /* ./syntax//mmbuilder.nit:1267 */
9237 fra.me.REG[5] = NEW_Array_array___Array___init();
9238 fra.me.REG[0] = CALL_syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
9239 fra.me.REG[0] = CALL_inheritance___MMModule___type_any(fra.me.REG[0])(fra.me.REG[0]);
9240 fra.me.REG[0] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[5], NIT_NULL, fra.me.REG[0]);
9241 /* ./syntax//mmbuilder.nit:1268 */
9242 if (!once_value_3) {
9243 if (!once_value_4) {
9244 fra.me.REG[5] = BOX_NativeString("break");
9245 REGB0 = TAG_Int(5);
9246 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
9247 once_value_4 = fra.me.REG[5];
9248 register_static_object(&once_value_4);
9249 } else fra.me.REG[5] = once_value_4;
9250 fra.me.REG[5] = fra.me.REG[5];
9251 fra.me.REG[5] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
9252 once_value_3 = fra.me.REG[5];
9253 register_static_object(&once_value_3);
9254 } else fra.me.REG[5] = once_value_3;
9255 fra.me.REG[5] = fra.me.REG[5];
9256 REGB0 = TAG_Bool(false);
9257 REGB1 = TAG_Bool(true);
9258 fra.me.REG[0] = NEW_MMClosure_static_type___MMClosure___init(fra.me.REG[5], fra.me.REG[0], REGB0, REGB1);
9259 /* ./syntax//mmbuilder.nit:1269 */
9260 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9261 if (UNTAG_Bool(REGB1)) {
9262 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1269);
9263 }
9264 fra.me.REG[5] = CALL_static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
9265 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
9266 /* ./syntax//mmbuilder.nit:1271 */
9267 fra.me.REG[0] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
9268 fra.me.REG[0] = CALL_syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
9269 /* ./syntax//mmbuilder.nit:1272 */
9270 fra.me.REG[5] = CALL_parser_nodes___AClosureDecl___n_kwbreak(fra.me.REG[2])(fra.me.REG[2]);
9271 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9272 if (UNTAG_Bool(REGB1)) {
9273 } else {
9274 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9275 if (UNTAG_Bool(REGB0)) {
9276 REGB0 = TAG_Bool(false);
9277 REGB1 = REGB0;
9278 } else {
9279 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
9280 REGB1 = REGB0;
9281 }
9282 }
9283 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
9284 fra.me.REG[5] = CALL_parser_nodes___AClosureDecl___n_expr(fra.me.REG[2])(fra.me.REG[2]);
9285 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9286 if (UNTAG_Bool(REGB0)) {
9287 } else {
9288 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9289 if (UNTAG_Bool(REGB2)) {
9290 REGB2 = TAG_Bool(false);
9291 REGB0 = REGB2;
9292 } else {
9293 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
9294 REGB0 = REGB2;
9295 }
9296 }
9297 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9298 fra.me.REG[1] = NEW_MMClosure_static_type___MMClosure___init(fra.me.REG[0], fra.me.REG[1], REGB1, REGB0);
9299 /* ./syntax//mmbuilder.nit:1273 */
9300 fra.me.REG[5] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
9301 /* ./../lib/standard//collection//array.nit:234 */
9302 REGB0 = TAG_Int(0);
9303 /* ./../lib/standard//collection//array.nit:235 */
9304 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
9305 if (UNTAG_Bool(REGB1)) {
9306 } else {
9307 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
9308 }
9309 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]);
9310 /* ./../lib/standard//collection//array.nit:236 */
9311 fra.me.REG[6] = ATTR_array___Array____items(fra.me.REG[5]);
9312 /* ./../lib/standard//collection//array.nit:237 */
9313 while(1) {
9314 /* ./../lib/standard//collection//array.nit:23 */
9315 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
9316 if (UNTAG_Bool(REGB1)) {
9317 } else {
9318 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
9319 }
9320 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]);
9321 /* ./../lib/standard//kernel.nit:212 */
9322 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
9323 /* ./../lib/standard//collection//array.nit:237 */
9324 if (UNTAG_Bool(REGB1)) {
9325 /* ./../lib/standard//collection//array.nit:238 */
9326 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
9327 if (UNTAG_Bool(REGB1)) {
9328 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
9329 }
9330 /* ./../lib/standard//collection//array.nit:654 */
9331 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
9332 /* ./syntax//mmbuilder.nit:1274 */
9333 fra.me.REG[8] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[7])(fra.me.REG[7]);
9334 fra.me.REG[8] = CALL_syntax_base___Token___to_symbol(fra.me.REG[8])(fra.me.REG[8]);
9335 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[8],fra.me.REG[0]));
9336 if (UNTAG_Bool(REGB1)) {
9337 } else {
9338 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
9339 REGB1 = REGB2;
9340 }
9341 if (UNTAG_Bool(REGB1)) {
9342 /* ./syntax//mmbuilder.nit:1275 */
9343 fra.me.REG[8] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
9344 REGB1 = TAG_Int(5);
9345 fra.me.REG[9] = NEW_Array_array___Array___with_capacity(REGB1);
9346 if (!once_value_5) {
9347 fra.me.REG[10] = BOX_NativeString("A closure '!");
9348 REGB1 = TAG_Int(12);
9349 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB1);
9350 once_value_5 = fra.me.REG[10];
9351 register_static_object(&once_value_5);
9352 } else fra.me.REG[10] = once_value_5;
9353 fra.me.REG[10] = fra.me.REG[10];
9354 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
9355 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
9356 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
9357 if (!once_value_6) {
9358 fra.me.REG[10] = BOX_NativeString("' already defined at ");
9359 REGB1 = TAG_Int(21);
9360 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB1);
9361 once_value_6 = fra.me.REG[10];
9362 register_static_object(&once_value_6);
9363 } else fra.me.REG[10] = once_value_6;
9364 fra.me.REG[10] = fra.me.REG[10];
9365 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
9366 fra.me.REG[7] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[7])(fra.me.REG[7]);
9367 fra.me.REG[7] = CALL_parser_nodes___ANode___location(fra.me.REG[7])(fra.me.REG[7]);
9368 fra.me.REG[10] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
9369 fra.me.REG[10] = CALL_parser_nodes___ANode___location(fra.me.REG[10])(fra.me.REG[10]);
9370 fra.me.REG[10] = CALL_location___Location___relative_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
9371 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
9372 if (!once_value_7) {
9373 fra.me.REG[10] = BOX_NativeString(".");
9374 REGB1 = TAG_Int(1);
9375 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB1);
9376 once_value_7 = fra.me.REG[10];
9377 register_static_object(&once_value_7);
9378 } else fra.me.REG[10] = once_value_7;
9379 fra.me.REG[10] = fra.me.REG[10];
9380 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
9381 fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
9382 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8], fra.me.REG[9]);
9383 /* ./syntax//mmbuilder.nit:1276 */
9384 goto label1;
9385 }
9386 /* ./../lib/standard//collection//array.nit:239 */
9387 REGB1 = TAG_Int(1);
9388 /* ./../lib/standard//kernel.nit:215 */
9389 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
9390 /* ./../lib/standard//collection//array.nit:239 */
9391 REGB0 = REGB1;
9392 } else {
9393 /* ./../lib/standard//collection//array.nit:237 */
9394 goto label8;
9395 }
9396 }
9397 label8: while(0);
9398 /* ./syntax//mmbuilder.nit:1279 */
9399 CALL_mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
9400 /* ./syntax//mmbuilder.nit:1280 */
9401 fra.me.REG[3] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
9402 /* ./../lib/standard//collection//array.nit:23 */
9403 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
9404 if (UNTAG_Bool(REGB0)) {
9405 } else {
9406 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
9407 }
9408 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
9409 /* ./syntax//mmbuilder.nit:1280 */
9410 ATTR_mmbuilder___AClosureDecl____position(fra.me.REG[2]) = REGB0;
9411 /* ./syntax//mmbuilder.nit:1281 */
9412 fra.me.REG[4] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
9413 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
9414 /* ./syntax//mmbuilder.nit:1282 */
9415 fra.me.REG[4] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
9416 fra.me.REG[4] = CALL_syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
9417 fra.me.REG[3] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
9418 fra.me.REG[1] = NEW_ClosureVariable_syntax_base___ClosureVariable___init(fra.me.REG[4], fra.me.REG[3], fra.me.REG[1]);
9419 ATTR_mmbuilder___AClosureDecl____variable(fra.me.REG[2]) = fra.me.REG[1];
9420 label1: while(0);
9421 stack_frame_head = fra.me.prev;
9422 return;
9423 }
9424 void mmbuilder___AType___check_visibility(val_t p0, val_t p1, val_t p2){
9425 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
9426 val_t REGB0;
9427 val_t REGB1;
9428 val_t tmp;
9429 static val_t once_value_2; /* Once value */
9430 static val_t once_value_3; /* Once value */
9431 static val_t once_value_4; /* Once value */
9432 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9433 fra.me.file = LOCATE_mmbuilder;
9434 fra.me.line = 1287;
9435 fra.me.meth = LOCATE_mmbuilder___AType___check_visibility;
9436 fra.me.has_broke = 0;
9437 fra.me.REG_size = 6;
9438 fra.me.REG[0] = NIT_NULL;
9439 fra.me.REG[1] = NIT_NULL;
9440 fra.me.REG[2] = NIT_NULL;
9441 fra.me.REG[3] = NIT_NULL;
9442 fra.me.REG[4] = NIT_NULL;
9443 fra.me.REG[5] = NIT_NULL;
9444 fra.me.REG[0] = p0;
9445 fra.me.REG[1] = p1;
9446 fra.me.REG[2] = p2;
9447 /* ./syntax//mmbuilder.nit:1290 */
9448 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
9449 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
9450 REGB1 = TAG_Int(3);
9451 /* ./../lib/standard//kernel.nit:213 */
9452 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
9453 /* ./syntax//mmbuilder.nit:1290 */
9454 if (UNTAG_Bool(REGB1)) {
9455 goto label1;
9456 }
9457 /* ./syntax//mmbuilder.nit:1291 */
9458 fra.me.REG[3] = CALL_syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9459 /* ./syntax//mmbuilder.nit:1292 */
9460 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9461 if (UNTAG_Bool(REGB1)) {
9462 } else {
9463 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9464 if (UNTAG_Bool(REGB0)) {
9465 REGB0 = TAG_Bool(false);
9466 REGB1 = REGB0;
9467 } else {
9468 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9469 REGB1 = REGB0;
9470 }
9471 }
9472 if (UNTAG_Bool(REGB1)) {
9473 goto label1;
9474 }
9475 /* ./syntax//mmbuilder.nit:1293 */
9476 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9477 if (UNTAG_Bool(REGB1)) {
9478 nit_abort("Reciever is null", NULL, LOCATE_mmbuilder, 1293);
9479 }
9480 fra.me.REG[3] = CALL_static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]);
9481 /* ./syntax//mmbuilder.nit:1294 */
9482 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
9483 REGB1 = CALL_abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[4])(fra.me.REG[4]);
9484 REGB0 = TAG_Int(3);
9485 /* ./../lib/standard//kernel.nit:213 */
9486 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
9487 /* ./syntax//mmbuilder.nit:1294 */
9488 if (UNTAG_Bool(REGB0)) {
9489 /* ./syntax//mmbuilder.nit:1295 */
9490 REGB0 = TAG_Int(5);
9491 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
9492 if (!once_value_2) {
9493 fra.me.REG[5] = BOX_NativeString("Access error: Class ");
9494 REGB0 = TAG_Int(20);
9495 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
9496 once_value_2 = fra.me.REG[5];
9497 register_static_object(&once_value_2);
9498 } else fra.me.REG[5] = once_value_2;
9499 fra.me.REG[5] = fra.me.REG[5];
9500 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
9501 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
9502 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
9503 if (!once_value_3) {
9504 fra.me.REG[3] = BOX_NativeString(" is private and cannot be used in the signature of the non-private property ");
9505 REGB0 = TAG_Int(76);
9506 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
9507 once_value_3 = fra.me.REG[3];
9508 register_static_object(&once_value_3);
9509 } else fra.me.REG[3] = once_value_3;
9510 fra.me.REG[3] = fra.me.REG[3];
9511 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
9512 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
9513 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
9514 if (!once_value_4) {
9515 fra.me.REG[3] = BOX_NativeString(".");
9516 REGB0 = TAG_Int(1);
9517 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
9518 once_value_4 = fra.me.REG[3];
9519 register_static_object(&once_value_4);
9520 } else fra.me.REG[3] = once_value_4;
9521 fra.me.REG[3] = fra.me.REG[3];
9522 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
9523 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
9524 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
9525 }
9526 /* ./syntax//mmbuilder.nit:1297 */
9527 fra.me.REG[0] = CALL_parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
9528 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_mmbuilder___AType___check_visibility_5));
9529 label1: while(0);
9530 stack_frame_head = fra.me.prev;
9531 return;
9532 }
9533 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){
9534 struct {struct stack_frame_t me;} fra;
9535 fun_t CREG[1];
9536 val_t tmp;
9537 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9538 fra.me.file = LOCATE_mmbuilder;
9539 fra.me.line = 0;
9540 fra.me.meth = LOCATE_mmbuilder___AType___check_visibility;
9541 fra.me.has_broke = 0;
9542 fra.me.REG_size = 1;
9543 fra.me.REG[0] = NIT_NULL;
9544 fra.me.closure_ctx = closctx_param;
9545 fra.me.closure_funs = CREG;
9546 fra.me.REG[0] = p0;
9547 CREG[0] = clos_fun0;
9548 /* ./syntax//mmbuilder.nit:1298 */
9549 CALL_mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1], closctx->REG[2]);
9550 stack_frame_head = fra.me.prev;
9551 return;
9552 }
9553 void mmbuilder___AExpr___accept_class_builder(val_t p0, val_t p1){
9554 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9555 val_t tmp;
9556 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9557 fra.me.file = LOCATE_mmbuilder;
9558 fra.me.line = 1304;
9559 fra.me.meth = LOCATE_mmbuilder___AExpr___accept_class_builder;
9560 fra.me.has_broke = 0;
9561 fra.me.REG_size = 2;
9562 fra.me.REG[0] = NIT_NULL;
9563 fra.me.REG[1] = NIT_NULL;
9564 fra.me.REG[0] = p0;
9565 fra.me.REG[1] = p1;
9566 stack_frame_head = fra.me.prev;
9567 return;
9568 }
9569 void mmbuilder___AExpr___accept_property_builder(val_t p0, val_t p1){
9570 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9571 val_t tmp;
9572 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9573 fra.me.file = LOCATE_mmbuilder;
9574 fra.me.line = 1305;
9575 fra.me.meth = LOCATE_mmbuilder___AExpr___accept_property_builder;
9576 fra.me.has_broke = 0;
9577 fra.me.REG_size = 2;
9578 fra.me.REG[0] = NIT_NULL;
9579 fra.me.REG[1] = NIT_NULL;
9580 fra.me.REG[0] = p0;
9581 fra.me.REG[1] = p1;
9582 stack_frame_head = fra.me.prev;
9583 return;
9584 }
9585 void mmbuilder___AExpr___accept_property_verifier(val_t p0, val_t p1){
9586 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9587 val_t tmp;
9588 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9589 fra.me.file = LOCATE_mmbuilder;
9590 fra.me.line = 1306;
9591 fra.me.meth = LOCATE_mmbuilder___AExpr___accept_property_verifier;
9592 fra.me.has_broke = 0;
9593 fra.me.REG_size = 2;
9594 fra.me.REG[0] = NIT_NULL;
9595 fra.me.REG[1] = NIT_NULL;
9596 fra.me.REG[0] = p0;
9597 fra.me.REG[1] = p1;
9598 stack_frame_head = fra.me.prev;
9599 return;
9600 }