0ce57aa823833ea18a764a51da1892e0302c9c62
[nit.git] / c_src / syntax___mmbuilder._sep.c
1 /* This C file is generated by NIT to compile module syntax___mmbuilder. */
2 #include "syntax___mmbuilder._sep.h"
3 val_t syntax___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_syntax___mmbuilder;
10 fra.me.line = 27;
11 fra.me.meth = LOCATE_syntax___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_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[1])(fra.me.REG[1]);
22 REGB0 = CALL_metamodel___partial_order___PartialOrderElement___rank(fra.me.REG[1])(fra.me.REG[1]);
23 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[2])(fra.me.REG[2]);
24 REGB1 = CALL_metamodel___partial_order___PartialOrderElement___rank(fra.me.REG[2])(fra.me.REG[2]);
25 REGB1 = CALL_standard___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 syntax___mmbuilder___CSHSorter___init(val_t p0, int* init_table){
32 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___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_syntax___mmbuilder;
38 fra.me.line = 32;
39 fra.me.meth = LOCATE_syntax___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_standard___collection___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 syntax___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_syntax___mmbuilder;
59 fra.me.line = 36;
60 fra.me.meth = LOCATE_syntax___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_metamodel___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_syntax___mmbuilder___ClassBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]);
77 /* ./syntax//mmbuilder.nit:45 */
78 fra.me.REG[3] = CALL_syntax___syntax_base___MMSrcModule___node(fra.me.REG[0])(fra.me.REG[0]);
79 CALL_parser___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_metamodel___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_syntax___mmbuilder, 48);
87 }
88 fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[3])(fra.me.REG[3]);
89 REGB0 = CALL_standard___collection___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_syntax___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_metamodel___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_syntax___mmbuilder___ClassSpecializationBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]);
98 /* ./syntax//mmbuilder.nit:57 */
99 fra.me.REG[2] = CALL_syntax___syntax_base___MMSrcModule___node(fra.me.REG[0])(fra.me.REG[0]);
100 CALL_parser___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_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
105 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_syntax___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_metamodel___abstractmetamodel___MMModule___class_specialization_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
110 fra.me.REG[2] = CALL_standard___collection___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_syntax___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_standard___collection___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_syntax___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_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
128 if (UNTAG_Bool(REGB1)) {
129 } else {
130 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
131 }
132 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
133 /* ./../lib/standard//collection//array.nit:236 */
134 fra.me.REG[5] = ATTR_standard___collection___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_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
139 if (UNTAG_Bool(REGB1)) {
140 } else {
141 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
142 }
143 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
144 /* ./../lib/standard//kernel.nit:215 */
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_standard___collection___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_syntax___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_metamodel___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:218 */
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_syntax___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_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
181 if (UNTAG_Bool(REGB1)) {
182 } else {
183 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
184 }
185 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
186 /* ./../lib/standard//collection//array.nit:236 */
187 fra.me.REG[4] = ATTR_standard___collection___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_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
192 if (UNTAG_Bool(REGB1)) {
193 } else {
194 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
195 }
196 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
197 /* ./../lib/standard//kernel.nit:215 */
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_standard___collection___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_syntax___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:218 */
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_syntax___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_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
232 if (UNTAG_Bool(REGB1)) {
233 } else {
234 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
235 }
236 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
237 /* ./../lib/standard//collection//array.nit:236 */
238 fra.me.REG[5] = ATTR_standard___collection___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_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
243 if (UNTAG_Bool(REGB1)) {
244 } else {
245 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
246 }
247 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
248 /* ./../lib/standard//kernel.nit:215 */
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_standard___collection___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_syntax___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_syntax___syntax_base___MMSrcLocalClass, ID_syntax___syntax_base___MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
263 if (UNTAG_Bool(REGB1)) {
264 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
265 fra.me.REG[7] = CALL_metamodel___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_standard___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_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
278 REGB1 = CALL_metamodel___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_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
286 REGB1 = CALL_metamodel___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_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
294 REGB1 = CALL_metamodel___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_syntax___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:218 */
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_syntax___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_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
324 if (UNTAG_Bool(REGB1)) {
325 } else {
326 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
327 }
328 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
329 /* ./../lib/standard//collection//array.nit:236 */
330 fra.me.REG[3] = ATTR_standard___collection___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_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
335 if (UNTAG_Bool(REGB1)) {
336 } else {
337 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
338 }
339 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
340 /* ./../lib/standard//kernel.nit:215 */
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_standard___collection___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_syntax___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:218 */
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_syntax___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_syntax___mmbuilder;
378 fra.me.line = 0;
379 fra.me.meth = LOCATE_syntax___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_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
390 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
391 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
392 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___visibility_for(closctx->REG[0])(closctx->REG[0], fra.me.REG[1]);
393 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
394 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[1])(fra.me.REG[1]);
395 /* ./../lib/standard//kernel.nit:215 */
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_metamodel___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 syntax___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_syntax___mmbuilder;
418 fra.me.line = 117;
419 fra.me.meth = LOCATE_syntax___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_standard___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_standard___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_metamodel___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___syntax_base___MMSrcLocalClass___init(fra.me.REG[0], fra.me.REG[1], NIT_NULL, REGB0);
450 /* ./syntax//mmbuilder.nit:123 */
451 CALL_metamodel___abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
452 /* ./syntax//mmbuilder.nit:124 */
453 fra.me.REG[3] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra.me.REG[0])(fra.me.REG[0]);
454 CALL_standard___collection___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_standard___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_standard___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_metamodel___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___syntax_base___MMSrcLocalClass___init(fra.me.REG[0], fra.me.REG[1], NIT_NULL, REGB0);
479 /* ./syntax//mmbuilder.nit:129 */
480 CALL_metamodel___abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
481 /* ./syntax//mmbuilder.nit:130 */
482 fra.me.REG[0] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra.me.REG[0])(fra.me.REG[0]);
483 CALL_standard___collection___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 syntax___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_syntax___mmbuilder;
493 fra.me.line = 136;
494 fra.me.meth = LOCATE_syntax___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 syntax___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_syntax___mmbuilder;
509 fra.me.line = 141;
510 fra.me.meth = LOCATE_syntax___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 syntax___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_syntax___mmbuilder;
527 fra.me.line = 148;
528 fra.me.meth = LOCATE_syntax___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___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_standard___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___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_syntax___mmbuilder, 153);
560 }
561 fra.me.REG[2] = CALL_syntax___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 syntax___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_syntax___mmbuilder;
579 fra.me.line = 157;
580 fra.me.meth = LOCATE_syntax___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___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_standard___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___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_syntax___mmbuilder, 163);
613 }
614 fra.me.REG[3] = CALL_syntax___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___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
624 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor_2));
625 stack_frame_head = fra.me.prev;
626 return;
627 }
628 void OC_syntax___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_syntax___mmbuilder;
634 fra.me.line = 0;
635 fra.me.meth = LOCATE_syntax___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_syntax___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 syntax___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_syntax___mmbuilder;
664 fra.me.line = 171;
665 fra.me.meth = LOCATE_syntax___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_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[0])(fra.me.REG[0]);
682 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_syntax___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_standard___collection___array___ArraySet___init();
689 /* ./syntax//mmbuilder.nit:184 */
690 fra.me.REG[3] = NEW_ArraySet_standard___collection___array___ArraySet___init();
691 /* ./syntax//mmbuilder.nit:185 */
692 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[0])(fra.me.REG[0]);
693 fra.me.REG[4] = CALL_metamodel___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_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
698 if (UNTAG_Bool(REGB1)) {
699 } else {
700 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
701 }
702 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
703 /* ./../lib/standard//collection//array.nit:236 */
704 fra.me.REG[5] = ATTR_standard___collection___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_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
709 if (UNTAG_Bool(REGB1)) {
710 } else {
711 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
712 }
713 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
714 /* ./../lib/standard//kernel.nit:215 */
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_standard___collection___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_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
727 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[7])(fra.me.REG[7]);
728 if (UNTAG_Bool(REGB1)) {
729 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
730 REGB1 = CALL_metamodel___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_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
740 REGB2 = CALL_metamodel___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_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[6])(fra.me.REG[6]);
748 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[7])(fra.me.REG[7], (&(fra.me)), ((fun_t)OC_syntax___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_standard___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_standard___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_metamodel___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_metamodel___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_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7]);
771 CALL_standard___collection___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:218 */
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_standard___collection___array___Array___init();
788 /* ./syntax//mmbuilder.nit:200 */
789 fra.me.REG[4] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
790 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_10));
791 /* ./syntax//mmbuilder.nit:207 */
792 REGB0 = CALL_standard___collection___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_standard___collection___array___Array___init();
797 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_11));
798 /* ./syntax//mmbuilder.nit:218 */
799 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[0])(fra.me.REG[0]);
800 fra.me.REG[7] = CALL_metamodel___partial_order___PartialOrderElement___order(fra.me.REG[7])(fra.me.REG[7]);
801 fra.me.REG[7] = CALL_metamodel___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_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
807 if (UNTAG_Bool(REGB0)) {
808 } else {
809 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
810 }
811 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
812 /* ./syntax//mmbuilder.nit:223 */
813 REGB1 = TAG_Int(1);
814 /* ./../lib/standard//kernel.nit:217 */
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___syntax_base___MMSrcLocalClass___node(fra.me.REG[0])(fra.me.REG[0]);
820 REGB1 = TAG_Int(7);
821 fra.me.REG[8] = NEW_Array_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
831 fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
832 CALL_standard___collection___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_standard___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_standard___collection___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_standard___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_standard___string___Collection___join(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9]);
851 CALL_standard___collection___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_standard___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_standard___collection___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_standard___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_standard___string___Collection___join(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[9]);
870 CALL_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
880 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
881 CALL_syntax___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_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
887 if (UNTAG_Bool(REGB1)) {
888 } else {
889 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
890 }
891 REGB1 = ATTR_standard___collection___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:210 */
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_standard___collection___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_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_19));
909 /* ./syntax//mmbuilder.nit:236 */
910 fra.me.REG[3] = CALL_metamodel___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_syntax___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_syntax___mmbuilder, 236);
919 }
920 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
921 CALL_metamodel___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_standard___collection___array___Collection___to_a(fra.me.REG[2])(fra.me.REG[2]);
925 fra.me.REG[2] = NEW_MMImplicitInit_syntax___syntax_base___MMImplicitInit___init(fra.me.REG[0], fra.me.REG[5], fra.me.REG[2]);
926 /* ./syntax//mmbuilder.nit:242 */
927 CALL_syntax___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_syntax___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_syntax___mmbuilder;
941 fra.me.line = 0;
942 fra.me.meth = LOCATE_syntax___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_metamodel___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_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
955 fra.me.REG[0] = CALL_metamodel___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_standard___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_syntax___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_syntax___mmbuilder;
977 fra.me.line = 0;
978 fra.me.meth = LOCATE_syntax___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_metamodel___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_standard___collection___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_syntax___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_syntax___mmbuilder;
1003 fra.me.line = 0;
1004 fra.me.meth = LOCATE_syntax___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_syntax___syntax_base___MMSrcAttribute, ID_syntax___syntax_base___MMSrcAttribute)) /*cast MMSrcAttribute*/;
1015 if (UNTAG_Bool(REGB0)) {
1016 /* ./syntax//mmbuilder.nit:202 */
1017 fra.me.REG[1] = CALL_syntax___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_syntax___mmbuilder, 203);
1022 }
1023 fra.me.REG[1] = CALL_parser___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_standard___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_standard___collection___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_syntax___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_syntax___mmbuilder;
1051 fra.me.line = 0;
1052 fra.me.meth = LOCATE_syntax___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_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1063 /* ./syntax//mmbuilder.nit:213 */
1064 REGB0 = CALL_standard___collection___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_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
1070 REGB0 = CALL_metamodel___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_standard___collection___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_syntax___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_syntax___mmbuilder;
1090 fra.me.line = 0;
1091 fra.me.meth = LOCATE_syntax___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_standard___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_metamodel___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_standard___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_metamodel___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 syntax___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_syntax___mmbuilder;
1141 fra.me.line = 247;
1142 fra.me.meth = LOCATE_syntax___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_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
1157 /* ./syntax//mmbuilder.nit:253 */
1158 fra.me.REG[4] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
1159 REGB0 = CALL_standard___collection___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___syntax_base___MMLocalProperty___node(fra.me.REG[2])(fra.me.REG[2]);
1163 REGB0 = TAG_Int(5);
1164 fra.me.REG[5] = NEW_Array_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1174 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1175 CALL_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1185 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
1186 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
1187 CALL_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1197 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
1198 CALL_syntax___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___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
1204 CALL_standard___collection___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_metamodel___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_metamodel___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_metamodel___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_metamodel___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_metamodel___abstractmetamodel___MMLocalProperty___new_global(fra.me.REG[2])(fra.me.REG[2]);
1219 /* ./syntax//mmbuilder.nit:267 */
1220 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
1221 REGB0 = CALL_syntax___syntax_base___MMLocalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
1222 CALL_metamodel___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 syntax___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_syntax___mmbuilder;
1233 fra.me.line = 273;
1234 fra.me.meth = LOCATE_syntax___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 syntax___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_syntax___mmbuilder;
1249 fra.me.line = 279;
1250 fra.me.meth = LOCATE_syntax___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_syntax___mmbuilder___MMImplicitInit____super_init(fra.me.REG[0]);
1257 stack_frame_head = fra.me.prev;
1258 return fra.me.REG[0];
1259 }
1260 void syntax___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_syntax___mmbuilder;
1276 fra.me.line = 280;
1277 fra.me.meth = LOCATE_syntax___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___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_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1298 if (UNTAG_Bool(REGB1)) {
1299 } else {
1300 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
1301 }
1302 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1303 /* ./../lib/standard//collection//array.nit:236 */
1304 fra.me.REG[4] = ATTR_standard___collection___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_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1309 if (UNTAG_Bool(REGB1)) {
1310 } else {
1311 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
1312 }
1313 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1314 /* ./../lib/standard//kernel.nit:215 */
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_standard___collection___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_metamodel___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_syntax___mmbuilder, 284);
1330 }
1331 REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[6])(fra.me.REG[6]);
1332 REGB2 = TAG_Int(0);
1333 /* ./../lib/standard//kernel.nit:217 */
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_standard___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_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
1366 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1367 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
1368 CALL_standard___collection___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_standard___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_standard___collection___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_syntax___mmbuilder, 288);
1381 }
1382 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[2])(fra.me.REG[2]);
1383 CALL_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
1393 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[5])(fra.me.REG[5]);
1394 CALL_standard___collection___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_standard___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_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
1404 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
1405 CALL_syntax___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:218 */
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_syntax___mmbuilder___MMImplicitInit____super_init(fra.me.REG[0]) = fra.me.REG[2];
1424 /* ./syntax//mmbuilder.nit:295 */
1425 fra.me.REG[1] = NEW_Array_standard___collection___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_standard___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_syntax___mmbuilder, 297);
1445 }
1446 fra.me.REG[2] = CALL_metamodel___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_syntax___mmbuilder, 298);
1452 }
1453 REGB2 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[2])(fra.me.REG[2]);
1454 /* ./../lib/standard//kernel.nit:335 */
1455 while(1) {
1456 /* ./../lib/standard//kernel.nit:215 */
1457 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
1458 /* ./../lib/standard//kernel.nit:335 */
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_syntax___mmbuilder, 299);
1466 }
1467 fra.me.REG[4] = CALL_metamodel___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:216 */
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_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
1475 if (UNTAG_Bool(REGB3)) {
1476 } else {
1477 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 245);
1478 }
1479 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
1480 /* ./../lib/standard//kernel.nit:215 */
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_standard___collection___array, 245);
1490 }
1491 /* ./../lib/standard//collection//array.nit:246 */
1492 fra.me.REG[4] = ATTR_standard___collection___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_standard___collection___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_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
1504 /* ./../lib/standard//kernel.nit:337 */
1505 REGB1 = TAG_Int(1);
1506 /* ./../lib/standard//kernel.nit:218 */
1507 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1508 /* ./../lib/standard//kernel.nit:337 */
1509 REGB0 = REGB1;
1510 } else {
1511 /* ./../lib/standard//kernel.nit:335 */
1512 goto label8;
1513 }
1514 }
1515 label8: while(0);
1516 }
1517 /* ./syntax//mmbuilder.nit:302 */
1518 fra.me.REG[2] = CALL_syntax___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_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1523 if (UNTAG_Bool(REGB2)) {
1524 } else {
1525 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
1526 }
1527 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
1528 /* ./../lib/standard//collection//array.nit:236 */
1529 fra.me.REG[4] = ATTR_standard___collection___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_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1534 if (UNTAG_Bool(REGB2)) {
1535 } else {
1536 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
1537 }
1538 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
1539 /* ./../lib/standard//kernel.nit:215 */
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_standard___collection___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_metamodel___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_standard___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_syntax___mmbuilder, 305);
1572 }
1573 fra.me.REG[3] = CALL_metamodel___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_metamodel___static_type___MMType, ID_metamodel___static_type___MMType)) /*cast MMType*/;
1575 if (UNTAG_Bool(REGB2)) {
1576 } else {
1577 nit_abort("Cast failed", NULL, LOCATE_syntax___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_standard___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_standard___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_metamodel___static_type___MMParam___init(fra.me.REG[3], fra.me.REG[6]);
1594 CALL_standard___collection___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:218 */
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_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1609 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
1610 fra.me.REG[4] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[1], NIT_NULL, fra.me.REG[4]);
1611 CALL_metamodel___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 syntax___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_syntax___mmbuilder;
1622 fra.me.line = 315;
1623 fra.me.meth = LOCATE_syntax___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_syntax___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_syntax___mmbuilder, 315);
1633 }
1634 fra.me.REG[0] = ATTR_syntax___mmbuilder___MMSrcAncestor____local_class(fra.me.REG[0]);
1635 stack_frame_head = fra.me.prev;
1636 return fra.me.REG[0];
1637 }
1638 void syntax___mmbuilder___MMSrcAncestor___init(val_t p0, val_t p1, int* init_table){
1639 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___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_syntax___mmbuilder;
1645 fra.me.line = 317;
1646 fra.me.meth = LOCATE_syntax___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_metamodel___static_type___MMAncestor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
1657 /* ./syntax//mmbuilder.nit:319 */
1658 ATTR_syntax___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 syntax___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_syntax___mmbuilder;
1669 fra.me.line = 330;
1670 fra.me.meth = LOCATE_syntax___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_syntax___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_syntax___mmbuilder, 330);
1680 }
1681 REGB0 = ATTR_syntax___mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0]);
1682 stack_frame_head = fra.me.prev;
1683 return REGB0;
1684 }
1685 void syntax___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_syntax___mmbuilder;
1691 fra.me.line = 330;
1692 fra.me.meth = LOCATE_syntax___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_syntax___mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0]) = REGB0;
1700 stack_frame_head = fra.me.prev;
1701 return;
1702 }
1703 val_t syntax___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_syntax___mmbuilder;
1708 fra.me.line = 333;
1709 fra.me.meth = LOCATE_syntax___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_syntax___mmbuilder___ClassBuilderVisitor____formals(fra.me.REG[0]);
1716 stack_frame_head = fra.me.prev;
1717 return fra.me.REG[0];
1718 }
1719 void syntax___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_syntax___mmbuilder;
1724 fra.me.line = 333;
1725 fra.me.meth = LOCATE_syntax___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_syntax___mmbuilder___ClassBuilderVisitor____formals(fra.me.REG[0]) = fra.me.REG[1];
1734 stack_frame_head = fra.me.prev;
1735 return;
1736 }
1737 void syntax___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_syntax___mmbuilder;
1743 fra.me.line = 336;
1744 fra.me.meth = LOCATE_syntax___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_syntax___mmbuilder, 336);
1755 }
1756 CALL_syntax___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 syntax___mmbuilder___ClassBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
1761 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___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_syntax___mmbuilder;
1767 fra.me.line = 337;
1768 fra.me.meth = LOCATE_syntax___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___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 syntax___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_syntax___mmbuilder;
1789 fra.me.line = 344;
1790 fra.me.meth = LOCATE_syntax___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_syntax___mmbuilder, 344);
1801 }
1802 CALL_syntax___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 syntax___mmbuilder___ClassSpecializationBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
1807 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___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_syntax___mmbuilder;
1813 fra.me.line = 345;
1814 fra.me.meth = LOCATE_syntax___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___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 syntax___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_syntax___mmbuilder;
1835 fra.me.line = 352;
1836 fra.me.meth = LOCATE_syntax___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_syntax___mmbuilder, 352);
1847 }
1848 CALL_syntax___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 syntax___mmbuilder___ClassAncestorBuilder___init(val_t p0, val_t p1, val_t p2, int* init_table){
1853 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___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_syntax___mmbuilder;
1859 fra.me.line = 353;
1860 fra.me.meth = LOCATE_syntax___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___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 syntax___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_syntax___mmbuilder;
1881 fra.me.line = 360;
1882 fra.me.meth = LOCATE_syntax___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_syntax___mmbuilder, 360);
1893 }
1894 CALL_syntax___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 syntax___mmbuilder___ClassVerifierVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
1899 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___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_syntax___mmbuilder;
1905 fra.me.line = 361;
1906 fra.me.meth = LOCATE_syntax___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___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 syntax___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_syntax___mmbuilder;
1927 fra.me.line = 371;
1928 fra.me.meth = LOCATE_syntax___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_syntax___mmbuilder, 371);
1939 }
1940 CALL_syntax___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 syntax___mmbuilder___PropertyBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
1945 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___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_syntax___mmbuilder;
1951 fra.me.line = 372;
1952 fra.me.meth = LOCATE_syntax___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___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 syntax___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_syntax___mmbuilder;
1973 fra.me.line = 380;
1974 fra.me.meth = LOCATE_syntax___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_syntax___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_syntax___mmbuilder, 380);
1984 }
1985 fra.me.REG[0] = ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0]);
1986 stack_frame_head = fra.me.prev;
1987 return fra.me.REG[0];
1988 }
1989 void syntax___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_syntax___mmbuilder;
1994 fra.me.line = 380;
1995 fra.me.meth = LOCATE_syntax___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_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0]) = fra.me.REG[1];
2004 stack_frame_head = fra.me.prev;
2005 return;
2006 }
2007 void syntax___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_syntax___mmbuilder;
2013 fra.me.line = 383;
2014 fra.me.meth = LOCATE_syntax___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_syntax___mmbuilder, 383);
2025 }
2026 CALL_syntax___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 syntax___mmbuilder___PropertyVerifierVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2031 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___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_syntax___mmbuilder;
2037 fra.me.line = 385;
2038 fra.me.meth = LOCATE_syntax___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___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_syntax___mmbuilder___SignatureBuilder___init();
2054 ATTR_syntax___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 syntax___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_syntax___mmbuilder;
2065 fra.me.line = 394;
2066 fra.me.meth = LOCATE_syntax___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_syntax___mmbuilder___SignatureBuilder____params(fra.me.REG[0])!=NIT_NULL);
2073 if (UNTAG_Bool(REGB0)) {
2074 } else {
2075 nit_abort("Uninitialized attribute %s", "_params", LOCATE_syntax___mmbuilder, 394);
2076 }
2077 fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____params(fra.me.REG[0]);
2078 stack_frame_head = fra.me.prev;
2079 return fra.me.REG[0];
2080 }
2081 void syntax___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_syntax___mmbuilder;
2086 fra.me.line = 394;
2087 fra.me.meth = LOCATE_syntax___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_syntax___mmbuilder___SignatureBuilder____params(fra.me.REG[0]) = fra.me.REG[1];
2096 stack_frame_head = fra.me.prev;
2097 return;
2098 }
2099 val_t syntax___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_syntax___mmbuilder;
2105 fra.me.line = 397;
2106 fra.me.meth = LOCATE_syntax___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_syntax___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_syntax___mmbuilder, 397);
2116 }
2117 fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0]);
2118 stack_frame_head = fra.me.prev;
2119 return fra.me.REG[0];
2120 }
2121 void syntax___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_syntax___mmbuilder;
2126 fra.me.line = 397;
2127 fra.me.meth = LOCATE_syntax___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_syntax___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 syntax___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_syntax___mmbuilder;
2145 fra.me.line = 400;
2146 fra.me.meth = LOCATE_syntax___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_syntax___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_syntax___mmbuilder, 400);
2156 }
2157 REGB0 = ATTR_syntax___mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]);
2158 stack_frame_head = fra.me.prev;
2159 return REGB0;
2160 }
2161 void syntax___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_syntax___mmbuilder;
2167 fra.me.line = 400;
2168 fra.me.meth = LOCATE_syntax___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_syntax___mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]) = REGB0;
2176 stack_frame_head = fra.me.prev;
2177 return;
2178 }
2179 val_t syntax___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_syntax___mmbuilder;
2185 fra.me.line = 403;
2186 fra.me.meth = LOCATE_syntax___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_syntax___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_syntax___mmbuilder, 403);
2196 }
2197 fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0]);
2198 stack_frame_head = fra.me.prev;
2199 return fra.me.REG[0];
2200 }
2201 void syntax___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_syntax___mmbuilder;
2206 fra.me.line = 403;
2207 fra.me.meth = LOCATE_syntax___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_syntax___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 syntax___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_syntax___mmbuilder;
2225 fra.me.line = 406;
2226 fra.me.meth = LOCATE_syntax___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_syntax___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_syntax___mmbuilder, 406);
2236 }
2237 REGB0 = ATTR_syntax___mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]);
2238 stack_frame_head = fra.me.prev;
2239 return REGB0;
2240 }
2241 void syntax___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_syntax___mmbuilder;
2247 fra.me.line = 406;
2248 fra.me.meth = LOCATE_syntax___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_syntax___mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]) = REGB0;
2256 stack_frame_head = fra.me.prev;
2257 return;
2258 }
2259 val_t syntax___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_syntax___mmbuilder;
2264 fra.me.line = 409;
2265 fra.me.meth = LOCATE_syntax___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_syntax___mmbuilder___SignatureBuilder____signature(fra.me.REG[0]);
2272 stack_frame_head = fra.me.prev;
2273 return fra.me.REG[0];
2274 }
2275 void syntax___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_syntax___mmbuilder;
2280 fra.me.line = 409;
2281 fra.me.meth = LOCATE_syntax___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_syntax___mmbuilder___SignatureBuilder____signature(fra.me.REG[0]) = fra.me.REG[1];
2290 stack_frame_head = fra.me.prev;
2291 return;
2292 }
2293 void syntax___mmbuilder___SignatureBuilder___init(val_t p0, int* init_table){
2294 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___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_syntax___mmbuilder;
2300 fra.me.line = 0;
2301 fra.me.meth = LOCATE_syntax___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 syntax___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_syntax___mmbuilder;
2313 fra.me.line = 416;
2314 fra.me.meth = LOCATE_syntax___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___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 syntax___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_syntax___mmbuilder;
2331 fra.me.line = 417;
2332 fra.me.meth = LOCATE_syntax___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___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 syntax___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_syntax___mmbuilder;
2349 fra.me.line = 418;
2350 fra.me.meth = LOCATE_syntax___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___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 syntax___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_syntax___mmbuilder;
2367 fra.me.line = 419;
2368 fra.me.meth = LOCATE_syntax___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___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 syntax___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_syntax___mmbuilder;
2385 fra.me.line = 420;
2386 fra.me.meth = LOCATE_syntax___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___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 syntax___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_syntax___mmbuilder;
2403 fra.me.line = 421;
2404 fra.me.meth = LOCATE_syntax___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___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 syntax___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[4];} 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_syntax___mmbuilder;
2426 fra.me.line = 425;
2427 fra.me.meth = LOCATE_syntax___mmbuilder___AModule___import_super_modules;
2428 fra.me.has_broke = 0;
2429 fra.me.REG_size = 5;
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[0] = p0;
2436 fra.me.REG[1] = p1;
2437 fra.me.REG[2] = p2;
2438 /* ./syntax//mmbuilder.nit:429 */
2439 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
2440 /* ./syntax//mmbuilder.nit:430 */
2441 fra.me.REG[4] = NIT_NULL;
2442 /* ./syntax//mmbuilder.nit:431 */
2443 fra.me.REG[0] = CALL_parser___parser_nodes___AModule___n_imports(fra.me.REG[0])(fra.me.REG[0]);
2444 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___AModule___import_super_modules_1));
2445 /* ./syntax//mmbuilder.nit:441 */
2446 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2447 if (UNTAG_Bool(REGB0)) {
2448 } else {
2449 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2450 if (UNTAG_Bool(REGB1)) {
2451 REGB1 = TAG_Bool(false);
2452 REGB0 = REGB1;
2453 } else {
2454 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
2455 REGB0 = REGB1;
2456 }
2457 }
2458 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2459 if (UNTAG_Bool(REGB0)) {
2460 /* ./syntax//mmbuilder.nit:442 */
2461 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
2462 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2463 if (UNTAG_Bool(REGB0)) {
2464 /* ./syntax//mmbuilder.nit:443 */
2465 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2466 if (UNTAG_Bool(REGB0)) {
2467 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 443);
2468 }
2469 fra.me.REG[4] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[4])(fra.me.REG[4]);
2470 if (!once_value_2) {
2471 fra.me.REG[0] = BOX_NativeString("Error: Top modules cannot import other modules.");
2472 REGB0 = TAG_Int(47);
2473 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2474 once_value_2 = fra.me.REG[0];
2475 register_static_object(&once_value_2);
2476 } else fra.me.REG[0] = once_value_2;
2477 fra.me.REG[0] = fra.me.REG[0];
2478 CALL_mmloader___ToolContext___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]);
2479 }
2480 } else {
2481 /* ./syntax//mmbuilder.nit:445 */
2482 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
2483 if (UNTAG_Bool(REGB0)) {
2484 /* ./syntax//mmbuilder.nit:446 */
2485 if (!once_value_3) {
2486 if (!once_value_4) {
2487 fra.me.REG[0] = BOX_NativeString("standard");
2488 REGB0 = TAG_Int(8);
2489 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2490 once_value_4 = fra.me.REG[0];
2491 register_static_object(&once_value_4);
2492 } else fra.me.REG[0] = once_value_4;
2493 fra.me.REG[0] = fra.me.REG[0];
2494 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
2495 once_value_3 = fra.me.REG[0];
2496 register_static_object(&once_value_3);
2497 } else fra.me.REG[0] = once_value_3;
2498 fra.me.REG[0] = fra.me.REG[0];
2499 /* ./syntax//mmbuilder.nit:447 */
2500 fra.me.REG[0] = CALL_mmloader___ToolContext___get_module(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
2501 /* ./syntax//mmbuilder.nit:448 */
2502 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
2503 /* ./syntax//mmbuilder.nit:449 */
2504 REGB0 = TAG_Int(1);
2505 CALL_metamodel___abstractmetamodel___MMModule___add_super_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], REGB0);
2506 }
2507 }
2508 /* ./syntax//mmbuilder.nit:452 */
2509 CALL_metamodel___abstractmetamodel___MMContext___add_module(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
2510 stack_frame_head = fra.me.prev;
2511 return;
2512 }
2513 void OC_syntax___mmbuilder___AModule___import_super_modules_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
2514 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2515 val_t REGB0;
2516 val_t REGB1;
2517 fun_t CREG[1];
2518 val_t tmp;
2519 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2520 fra.me.file = LOCATE_syntax___mmbuilder;
2521 fra.me.line = 0;
2522 fra.me.meth = LOCATE_syntax___mmbuilder___AModule___import_super_modules;
2523 fra.me.has_broke = 0;
2524 fra.me.REG_size = 2;
2525 fra.me.REG[0] = NIT_NULL;
2526 fra.me.REG[1] = NIT_NULL;
2527 fra.me.closure_ctx = closctx_param;
2528 fra.me.closure_funs = CREG;
2529 fra.me.REG[0] = p0;
2530 CREG[0] = clos_fun0;
2531 /* ./syntax//mmbuilder.nit:432 */
2532 fra.me.REG[1] = CALL_syntax___mmbuilder___AImport___module_name(fra.me.REG[0])(fra.me.REG[0]);
2533 /* ./syntax//mmbuilder.nit:433 */
2534 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2535 if (UNTAG_Bool(REGB0)) {
2536 } else {
2537 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2538 if (UNTAG_Bool(REGB1)) {
2539 REGB1 = TAG_Bool(false);
2540 REGB0 = REGB1;
2541 } else {
2542 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2543 REGB0 = REGB1;
2544 }
2545 }
2546 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2547 if (UNTAG_Bool(REGB0)) {
2548 /* ./syntax//mmbuilder.nit:434 */
2549 fra.me.REG[1] = CALL_mmloader___ToolContext___get_module(closctx->REG[1])(closctx->REG[1], fra.me.REG[1], closctx->REG[2]);
2550 /* ./syntax//mmbuilder.nit:435 */
2551 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[1]);
2552 /* ./syntax//mmbuilder.nit:436 */
2553 REGB0 = CALL_syntax___mmbuilder___AImport___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
2554 CALL_metamodel___abstractmetamodel___MMModule___add_super_module(closctx->REG[2])(closctx->REG[2], fra.me.REG[1], REGB0);
2555 } else {
2556 /* ./syntax//mmbuilder.nit:438 */
2557 closctx->REG[4] = fra.me.REG[0];
2558 }
2559 stack_frame_head = fra.me.prev;
2560 return;
2561 }
2562 void syntax___mmbuilder___AModuledecl___accept_class_builder(val_t p0, val_t p1){
2563 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
2564 val_t REGB0;
2565 val_t REGB1;
2566 val_t tmp;
2567 static val_t once_value_1; /* Once value */
2568 static val_t once_value_2; /* Once value */
2569 static val_t once_value_3; /* Once value */
2570 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2571 fra.me.file = LOCATE_syntax___mmbuilder;
2572 fra.me.line = 457;
2573 fra.me.meth = LOCATE_syntax___mmbuilder___AModuledecl___accept_class_builder;
2574 fra.me.has_broke = 0;
2575 fra.me.REG_size = 5;
2576 fra.me.REG[0] = NIT_NULL;
2577 fra.me.REG[1] = NIT_NULL;
2578 fra.me.REG[2] = NIT_NULL;
2579 fra.me.REG[3] = NIT_NULL;
2580 fra.me.REG[4] = NIT_NULL;
2581 fra.me.REG[0] = p0;
2582 fra.me.REG[1] = p1;
2583 /* ./syntax//mmbuilder.nit:459 */
2584 fra.me.REG[2] = CALL_parser___parser_nodes___AModuledecl___n_name(fra.me.REG[0])(fra.me.REG[0]);
2585 fra.me.REG[2] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[2])(fra.me.REG[2]);
2586 fra.me.REG[2] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
2587 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
2588 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___name(fra.me.REG[3])(fra.me.REG[3]);
2589 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
2590 if (UNTAG_Bool(REGB0)) {
2591 } else {
2592 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2593 REGB0 = REGB1;
2594 }
2595 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2596 if (UNTAG_Bool(REGB0)) {
2597 /* ./syntax//mmbuilder.nit:460 */
2598 fra.me.REG[3] = CALL_parser___parser_nodes___AModuledecl___n_name(fra.me.REG[0])(fra.me.REG[0]);
2599 fra.me.REG[3] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[3])(fra.me.REG[3]);
2600 REGB0 = TAG_Int(5);
2601 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2602 if (!once_value_1) {
2603 fra.me.REG[4] = BOX_NativeString("Error: Module name mismatch between ");
2604 REGB0 = TAG_Int(36);
2605 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2606 once_value_1 = fra.me.REG[4];
2607 register_static_object(&once_value_1);
2608 } else fra.me.REG[4] = once_value_1;
2609 fra.me.REG[4] = fra.me.REG[4];
2610 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
2611 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
2612 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMModule___name(fra.me.REG[4])(fra.me.REG[4]);
2613 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
2614 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
2615 if (!once_value_2) {
2616 fra.me.REG[4] = BOX_NativeString(" and ");
2617 REGB0 = TAG_Int(5);
2618 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2619 once_value_2 = fra.me.REG[4];
2620 register_static_object(&once_value_2);
2621 } else fra.me.REG[4] = once_value_2;
2622 fra.me.REG[4] = fra.me.REG[4];
2623 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
2624 fra.me.REG[0] = CALL_parser___parser_nodes___AModuledecl___n_name(fra.me.REG[0])(fra.me.REG[0]);
2625 fra.me.REG[0] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[0])(fra.me.REG[0]);
2626 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
2627 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2628 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2629 if (!once_value_3) {
2630 fra.me.REG[0] = BOX_NativeString("");
2631 REGB0 = TAG_Int(0);
2632 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2633 once_value_3 = fra.me.REG[0];
2634 register_static_object(&once_value_3);
2635 } else fra.me.REG[0] = once_value_3;
2636 fra.me.REG[0] = fra.me.REG[0];
2637 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2638 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2639 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2]);
2640 }
2641 stack_frame_head = fra.me.prev;
2642 return;
2643 }
2644 val_t syntax___mmbuilder___AImport___module_name(val_t p0){
2645 struct {struct stack_frame_t me;} fra;
2646 val_t tmp;
2647 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2648 fra.me.file = LOCATE_syntax___mmbuilder;
2649 fra.me.line = 466;
2650 fra.me.meth = LOCATE_syntax___mmbuilder___AImport___module_name;
2651 fra.me.has_broke = 0;
2652 fra.me.REG_size = 0;
2653 /* ./syntax//mmbuilder.nit:466 */
2654 nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 466);
2655 stack_frame_head = fra.me.prev;
2656 return NIT_NULL;
2657 }
2658 val_t syntax___mmbuilder___AImport___visibility_level(val_t p0){
2659 struct {struct stack_frame_t me;} fra;
2660 val_t tmp;
2661 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2662 fra.me.file = LOCATE_syntax___mmbuilder;
2663 fra.me.line = 469;
2664 fra.me.meth = LOCATE_syntax___mmbuilder___AImport___visibility_level;
2665 fra.me.has_broke = 0;
2666 fra.me.REG_size = 0;
2667 /* ./syntax//mmbuilder.nit:469 */
2668 nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 469);
2669 stack_frame_head = fra.me.prev;
2670 return NIT_NULL;
2671 }
2672 val_t syntax___mmbuilder___AStdImport___module_name(val_t p0){
2673 struct {struct stack_frame_t me;} fra;
2674 val_t tmp;
2675 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2676 fra.me.file = LOCATE_syntax___mmbuilder;
2677 fra.me.line = 473;
2678 fra.me.meth = LOCATE_syntax___mmbuilder___AStdImport___module_name;
2679 fra.me.has_broke = 0;
2680 fra.me.REG_size = 1;
2681 fra.me.REG[0] = NIT_NULL;
2682 fra.me.REG[0] = p0;
2683 /* ./syntax//mmbuilder.nit:475 */
2684 fra.me.REG[0] = CALL_parser___parser_nodes___AStdImport___n_name(fra.me.REG[0])(fra.me.REG[0]);
2685 fra.me.REG[0] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[0])(fra.me.REG[0]);
2686 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
2687 goto label1;
2688 label1: while(0);
2689 stack_frame_head = fra.me.prev;
2690 return fra.me.REG[0];
2691 }
2692 val_t syntax___mmbuilder___AStdImport___visibility_level(val_t p0){
2693 struct {struct stack_frame_t me;} fra;
2694 val_t REGB0;
2695 val_t tmp;
2696 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2697 fra.me.file = LOCATE_syntax___mmbuilder;
2698 fra.me.line = 477;
2699 fra.me.meth = LOCATE_syntax___mmbuilder___AStdImport___visibility_level;
2700 fra.me.has_broke = 0;
2701 fra.me.REG_size = 1;
2702 fra.me.REG[0] = NIT_NULL;
2703 fra.me.REG[0] = p0;
2704 /* ./syntax//mmbuilder.nit:479 */
2705 fra.me.REG[0] = CALL_parser___parser_nodes___AStdImport___n_visibility(fra.me.REG[0])(fra.me.REG[0]);
2706 REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
2707 goto label1;
2708 label1: while(0);
2709 stack_frame_head = fra.me.prev;
2710 return REGB0;
2711 }
2712 val_t syntax___mmbuilder___ANoImport___module_name(val_t p0){
2713 struct {struct stack_frame_t me;} fra;
2714 val_t tmp;
2715 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2716 fra.me.file = LOCATE_syntax___mmbuilder;
2717 fra.me.line = 483;
2718 fra.me.meth = LOCATE_syntax___mmbuilder___ANoImport___module_name;
2719 fra.me.has_broke = 0;
2720 fra.me.REG_size = 1;
2721 fra.me.REG[0] = NIT_NULL;
2722 fra.me.REG[0] = p0;
2723 /* ./syntax//mmbuilder.nit:485 */
2724 fra.me.REG[0] = NIT_NULL;
2725 goto label1;
2726 label1: while(0);
2727 stack_frame_head = fra.me.prev;
2728 return fra.me.REG[0];
2729 }
2730 val_t syntax___mmbuilder___AVisibility___level(val_t p0){
2731 struct {struct stack_frame_t me;} fra;
2732 val_t tmp;
2733 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2734 fra.me.file = LOCATE_syntax___mmbuilder;
2735 fra.me.line = 490;
2736 fra.me.meth = LOCATE_syntax___mmbuilder___AVisibility___level;
2737 fra.me.has_broke = 0;
2738 fra.me.REG_size = 0;
2739 /* ./syntax//mmbuilder.nit:490 */
2740 nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 490);
2741 stack_frame_head = fra.me.prev;
2742 return NIT_NULL;
2743 }
2744 val_t syntax___mmbuilder___APublicVisibility___level(val_t p0){
2745 struct {struct stack_frame_t me;} fra;
2746 val_t REGB0;
2747 val_t tmp;
2748 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2749 fra.me.file = LOCATE_syntax___mmbuilder;
2750 fra.me.line = 494;
2751 fra.me.meth = LOCATE_syntax___mmbuilder___APublicVisibility___level;
2752 fra.me.has_broke = 0;
2753 fra.me.REG_size = 1;
2754 fra.me.REG[0] = NIT_NULL;
2755 fra.me.REG[0] = p0;
2756 /* ./syntax//mmbuilder.nit:494 */
2757 REGB0 = TAG_Int(1);
2758 goto label1;
2759 label1: while(0);
2760 stack_frame_head = fra.me.prev;
2761 return REGB0;
2762 }
2763 val_t syntax___mmbuilder___AProtectedVisibility___level(val_t p0){
2764 struct {struct stack_frame_t me;} fra;
2765 val_t REGB0;
2766 val_t tmp;
2767 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2768 fra.me.file = LOCATE_syntax___mmbuilder;
2769 fra.me.line = 497;
2770 fra.me.meth = LOCATE_syntax___mmbuilder___AProtectedVisibility___level;
2771 fra.me.has_broke = 0;
2772 fra.me.REG_size = 1;
2773 fra.me.REG[0] = NIT_NULL;
2774 fra.me.REG[0] = p0;
2775 /* ./syntax//mmbuilder.nit:497 */
2776 REGB0 = TAG_Int(2);
2777 goto label1;
2778 label1: while(0);
2779 stack_frame_head = fra.me.prev;
2780 return REGB0;
2781 }
2782 val_t syntax___mmbuilder___APrivateVisibility___level(val_t p0){
2783 struct {struct stack_frame_t me;} fra;
2784 val_t REGB0;
2785 val_t tmp;
2786 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2787 fra.me.file = LOCATE_syntax___mmbuilder;
2788 fra.me.line = 500;
2789 fra.me.meth = LOCATE_syntax___mmbuilder___APrivateVisibility___level;
2790 fra.me.has_broke = 0;
2791 fra.me.REG_size = 1;
2792 fra.me.REG[0] = NIT_NULL;
2793 fra.me.REG[0] = p0;
2794 /* ./syntax//mmbuilder.nit:500 */
2795 REGB0 = TAG_Int(3);
2796 goto label1;
2797 label1: while(0);
2798 stack_frame_head = fra.me.prev;
2799 return REGB0;
2800 }
2801 val_t syntax___mmbuilder___AIntrudeVisibility___level(val_t p0){
2802 struct {struct stack_frame_t me;} fra;
2803 val_t REGB0;
2804 val_t tmp;
2805 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2806 fra.me.file = LOCATE_syntax___mmbuilder;
2807 fra.me.line = 503;
2808 fra.me.meth = LOCATE_syntax___mmbuilder___AIntrudeVisibility___level;
2809 fra.me.has_broke = 0;
2810 fra.me.REG_size = 1;
2811 fra.me.REG[0] = NIT_NULL;
2812 fra.me.REG[0] = p0;
2813 /* ./syntax//mmbuilder.nit:503 */
2814 REGB0 = TAG_Int(0);
2815 goto label1;
2816 label1: while(0);
2817 stack_frame_head = fra.me.prev;
2818 return REGB0;
2819 }
2820 val_t syntax___mmbuilder___AClassdef___local_class(val_t p0){
2821 struct {struct stack_frame_t me;} fra;
2822 val_t REGB0;
2823 val_t tmp;
2824 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2825 fra.me.file = LOCATE_syntax___mmbuilder;
2826 fra.me.line = 508;
2827 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___local_class;
2828 fra.me.has_broke = 0;
2829 fra.me.REG_size = 1;
2830 fra.me.REG[0] = NIT_NULL;
2831 fra.me.REG[0] = p0;
2832 /* ./syntax//mmbuilder.nit:508 */
2833 fra.me.REG[0] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[0]);
2834 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
2835 if (UNTAG_Bool(REGB0)) {
2836 } else {
2837 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 508);
2838 }
2839 goto label1;
2840 label1: while(0);
2841 stack_frame_head = fra.me.prev;
2842 return fra.me.REG[0];
2843 }
2844 val_t syntax___mmbuilder___AClassdef___name(val_t p0){
2845 struct {struct stack_frame_t me;} fra;
2846 val_t tmp;
2847 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2848 fra.me.file = LOCATE_syntax___mmbuilder;
2849 fra.me.line = 511;
2850 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___name;
2851 fra.me.has_broke = 0;
2852 fra.me.REG_size = 0;
2853 /* ./syntax//mmbuilder.nit:511 */
2854 nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 511);
2855 stack_frame_head = fra.me.prev;
2856 return NIT_NULL;
2857 }
2858 val_t syntax___mmbuilder___AClassdef___arity(val_t p0){
2859 struct {struct stack_frame_t me;} fra;
2860 val_t REGB0;
2861 val_t tmp;
2862 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2863 fra.me.file = LOCATE_syntax___mmbuilder;
2864 fra.me.line = 514;
2865 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___arity;
2866 fra.me.has_broke = 0;
2867 fra.me.REG_size = 1;
2868 fra.me.REG[0] = NIT_NULL;
2869 fra.me.REG[0] = p0;
2870 /* ./syntax//mmbuilder.nit:515 */
2871 REGB0 = TAG_Int(0);
2872 goto label1;
2873 label1: while(0);
2874 stack_frame_head = fra.me.prev;
2875 return REGB0;
2876 }
2877 val_t syntax___mmbuilder___AClassdef___visibility_level(val_t p0){
2878 struct {struct stack_frame_t me;} fra;
2879 val_t REGB0;
2880 val_t tmp;
2881 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2882 fra.me.file = LOCATE_syntax___mmbuilder;
2883 fra.me.line = 517;
2884 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___visibility_level;
2885 fra.me.has_broke = 0;
2886 fra.me.REG_size = 1;
2887 fra.me.REG[0] = NIT_NULL;
2888 fra.me.REG[0] = p0;
2889 /* ./syntax//mmbuilder.nit:518 */
2890 REGB0 = TAG_Int(1);
2891 goto label1;
2892 label1: while(0);
2893 stack_frame_head = fra.me.prev;
2894 return REGB0;
2895 }
2896 void syntax___mmbuilder___AClassdef___accept_class_builder(val_t p0, val_t p1){
2897 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
2898 val_t REGB0;
2899 val_t REGB1;
2900 val_t tmp;
2901 static val_t once_value_1; /* Once value */
2902 static val_t once_value_2; /* Once value */
2903 static val_t once_value_3; /* Once value */
2904 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2905 fra.me.file = LOCATE_syntax___mmbuilder;
2906 fra.me.line = 520;
2907 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___accept_class_builder;
2908 fra.me.has_broke = 0;
2909 fra.me.REG_size = 9;
2910 fra.me.REG[0] = NIT_NULL;
2911 fra.me.REG[1] = NIT_NULL;
2912 fra.me.REG[2] = NIT_NULL;
2913 fra.me.REG[3] = NIT_NULL;
2914 fra.me.REG[4] = NIT_NULL;
2915 fra.me.REG[5] = NIT_NULL;
2916 fra.me.REG[6] = NIT_NULL;
2917 fra.me.REG[7] = NIT_NULL;
2918 fra.me.REG[8] = NIT_NULL;
2919 fra.me.REG[0] = p0;
2920 fra.me.REG[1] = p1;
2921 /* ./syntax//mmbuilder.nit:520 */
2922 fra.me.REG[2] = fra.me.REG[0];
2923 fra.me.REG[3] = fra.me.REG[1];
2924 /* ./syntax//mmbuilder.nit:523 */
2925 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
2926 /* ./syntax//mmbuilder.nit:524 */
2927 fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra.me.REG[4])(fra.me.REG[4]);
2928 /* ./syntax//mmbuilder.nit:525 */
2929 fra.me.REG[6] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
2930 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2931 if (UNTAG_Bool(REGB0)) {
2932 /* ./syntax//mmbuilder.nit:526 */
2933 fra.me.REG[6] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
2934 fra.me.REG[6] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2935 /* ./syntax//mmbuilder.nit:527 */
2936 ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]) = fra.me.REG[6];
2937 /* ./syntax//mmbuilder.nit:528 */
2938 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
2939 if (UNTAG_Bool(REGB0)) {
2940 /* ./syntax//mmbuilder.nit:530 */
2941 REGB0 = TAG_Int(5);
2942 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2943 if (!once_value_1) {
2944 fra.me.REG[8] = BOX_NativeString("Error: A class ");
2945 REGB0 = TAG_Int(15);
2946 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
2947 once_value_1 = fra.me.REG[8];
2948 register_static_object(&once_value_1);
2949 } else fra.me.REG[8] = once_value_1;
2950 fra.me.REG[8] = fra.me.REG[8];
2951 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
2952 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
2953 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
2954 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
2955 if (!once_value_2) {
2956 fra.me.REG[8] = BOX_NativeString(" is already defined at line ");
2957 REGB0 = TAG_Int(28);
2958 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
2959 once_value_2 = fra.me.REG[8];
2960 register_static_object(&once_value_2);
2961 } else fra.me.REG[8] = once_value_2;
2962 fra.me.REG[8] = fra.me.REG[8];
2963 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
2964 fra.me.REG[8] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[6])(fra.me.REG[6]);
2965 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
2966 if (UNTAG_Bool(REGB0)) {
2967 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 530);
2968 }
2969 fra.me.REG[8] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[8])(fra.me.REG[8]);
2970 REGB0 = CALL_location___Location___line_start(fra.me.REG[8])(fra.me.REG[8]);
2971 fra.me.REG[8] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
2972 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
2973 if (!once_value_3) {
2974 fra.me.REG[8] = BOX_NativeString(".");
2975 REGB0 = TAG_Int(1);
2976 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
2977 once_value_3 = fra.me.REG[8];
2978 register_static_object(&once_value_3);
2979 } else fra.me.REG[8] = once_value_3;
2980 fra.me.REG[8] = fra.me.REG[8];
2981 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
2982 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
2983 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
2984 /* ./syntax//mmbuilder.nit:531 */
2985 goto label4;
2986 }
2987 /* ./syntax//mmbuilder.nit:534 */
2988 fra.me.REG[7] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[6])(fra.me.REG[6]);
2989 /* ./syntax//mmbuilder.nit:535 */
2990 while(1) {
2991 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2992 if (UNTAG_Bool(REGB0)) {
2993 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 535);
2994 }
2995 fra.me.REG[8] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[7])(fra.me.REG[7]);
2996 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
2997 if (UNTAG_Bool(REGB0)) {
2998 } else {
2999 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
3000 if (UNTAG_Bool(REGB1)) {
3001 REGB1 = TAG_Bool(false);
3002 REGB0 = REGB1;
3003 } else {
3004 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
3005 REGB0 = REGB1;
3006 }
3007 }
3008 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3009 if (UNTAG_Bool(REGB0)) {
3010 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
3011 if (UNTAG_Bool(REGB0)) {
3012 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 535);
3013 }
3014 fra.me.REG[8] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[7])(fra.me.REG[7]);
3015 fra.me.REG[7] = fra.me.REG[8];
3016 } else {
3017 goto label5;
3018 }
3019 }
3020 label5: while(0);
3021 /* ./syntax//mmbuilder.nit:536 */
3022 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
3023 if (UNTAG_Bool(REGB0)) {
3024 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 536);
3025 }
3026 CALL_syntax___syntax_base___AClassdef___next_node__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]);
3027 } else {
3028 /* ./syntax//mmbuilder.nit:538 */
3029 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3030 REGB0 = CALL_syntax___mmbuilder___AClassdef___arity(fra.me.REG[2])(fra.me.REG[2]);
3031 fra.me.REG[7] = NEW_MMSrcLocalClass_syntax___syntax_base___MMSrcLocalClass___init(fra.me.REG[4], fra.me.REG[7], fra.me.REG[2], REGB0);
3032 fra.me.REG[6] = fra.me.REG[7];
3033 /* ./syntax//mmbuilder.nit:539 */
3034 ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]) = fra.me.REG[6];
3035 /* ./syntax//mmbuilder.nit:540 */
3036 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3037 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7], fra.me.REG[6]);
3038 /* ./syntax//mmbuilder.nit:541 */
3039 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3040 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
3041 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3042 if (UNTAG_Bool(REGB0)) {
3043 /* ./syntax//mmbuilder.nit:542 */
3044 CALL_syntax___mmbuilder___AClassdef___build_class_introduction(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3045 } else {
3046 /* ./syntax//mmbuilder.nit:544 */
3047 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3048 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMModule___global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
3049 /* ./syntax//mmbuilder.nit:545 */
3050 CALL_syntax___mmbuilder___AClassdef___build_class_refinement(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[7]);
3051 }
3052 }
3053 /* ./syntax//mmbuilder.nit:549 */
3054 REGB0 = TAG_Int(0);
3055 CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
3056 /* ./syntax//mmbuilder.nit:550 */
3057 fra.me.REG[6] = CALL_syntax___syntax_base___MMSrcLocalClass___formal_dict(fra.me.REG[6])(fra.me.REG[6]);
3058 CALL_syntax___mmbuilder___ClassBuilderVisitor___formals__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
3059 /* ./syntax//mmbuilder.nit:553 */
3060 CALL_SUPER_syntax___mmbuilder___AClassdef___accept_class_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3061 /* ./syntax//mmbuilder.nit:556 */
3062 CALL_syntax___mmbuilder___ClassBuilderVisitor___formals__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3063 label4: while(0);
3064 stack_frame_head = fra.me.prev;
3065 return;
3066 }
3067 void syntax___mmbuilder___AClassdef___build_class_introduction(val_t p0, val_t p1){
3068 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
3069 val_t REGB0;
3070 val_t REGB1;
3071 val_t tmp;
3072 static val_t once_value_1; /* Once value */
3073 static val_t once_value_2; /* Once value */
3074 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3075 fra.me.file = LOCATE_syntax___mmbuilder;
3076 fra.me.line = 559;
3077 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___build_class_introduction;
3078 fra.me.has_broke = 0;
3079 fra.me.REG_size = 5;
3080 fra.me.REG[0] = NIT_NULL;
3081 fra.me.REG[1] = NIT_NULL;
3082 fra.me.REG[2] = NIT_NULL;
3083 fra.me.REG[3] = NIT_NULL;
3084 fra.me.REG[4] = NIT_NULL;
3085 fra.me.REG[0] = p0;
3086 fra.me.REG[1] = p1;
3087 /* ./syntax//mmbuilder.nit:561 */
3088 fra.me.REG[2] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[0])(fra.me.REG[0]);
3089 CALL_metamodel___abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
3090 /* ./syntax//mmbuilder.nit:562 */
3091 fra.me.REG[2] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[0])(fra.me.REG[0]);
3092 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
3093 /* ./syntax//mmbuilder.nit:564 */
3094 REGB0 = CALL_syntax___mmbuilder___AClassdef___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
3095 CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
3096 /* ./syntax//mmbuilder.nit:565 */
3097 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
3098 if (UNTAG_Bool(REGB0)) {
3099 /* ./syntax//mmbuilder.nit:566 */
3100 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[0])(fra.me.REG[0]);
3101 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3102 if (UNTAG_Bool(REGB0)) {
3103 } else {
3104 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3105 if (UNTAG_Bool(REGB1)) {
3106 REGB1 = TAG_Bool(false);
3107 REGB0 = REGB1;
3108 } else {
3109 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3110 REGB0 = REGB1;
3111 }
3112 }
3113 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3114 if (UNTAG_Bool(REGB0)) {
3115 /* ./syntax//mmbuilder.nit:567 */
3116 REGB0 = TAG_Int(3);
3117 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3118 if (!once_value_1) {
3119 fra.me.REG[4] = BOX_NativeString("Redef error: No class ");
3120 REGB0 = TAG_Int(22);
3121 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
3122 once_value_1 = fra.me.REG[4];
3123 register_static_object(&once_value_1);
3124 } else fra.me.REG[4] = once_value_1;
3125 fra.me.REG[4] = fra.me.REG[4];
3126 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3127 fra.me.REG[4] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[0])(fra.me.REG[0]);
3128 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3129 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3130 if (!once_value_2) {
3131 fra.me.REG[4] = BOX_NativeString(" is imported. Remove the redef keyword to define a new class.");
3132 REGB0 = TAG_Int(61);
3133 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
3134 once_value_2 = fra.me.REG[4];
3135 register_static_object(&once_value_2);
3136 } else fra.me.REG[4] = once_value_2;
3137 fra.me.REG[4] = fra.me.REG[4];
3138 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3139 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3140 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
3141 /* ./syntax//mmbuilder.nit:568 */
3142 goto label3;
3143 }
3144 /* ./syntax//mmbuilder.nit:570 */
3145 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3146 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[3])(fra.me.REG[3]);
3147 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
3148 /* ./syntax//mmbuilder.nit:571 */
3149 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3150 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[3])(fra.me.REG[3]);
3151 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
3152 /* ./syntax//mmbuilder.nit:572 */
3153 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3154 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[0])(fra.me.REG[0]);
3155 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
3156 }
3157 label3: while(0);
3158 stack_frame_head = fra.me.prev;
3159 return;
3160 }
3161 void syntax___mmbuilder___AClassdef___build_class_refinement(val_t p0, val_t p1, val_t p2){
3162 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
3163 val_t REGB0;
3164 val_t REGB1;
3165 val_t REGB2;
3166 val_t tmp;
3167 static val_t once_value_1; /* Once value */
3168 static val_t once_value_2; /* Once value */
3169 static val_t once_value_4; /* Once value */
3170 static val_t once_value_5; /* Once value */
3171 static val_t once_value_6; /* Once value */
3172 static val_t once_value_7; /* Once value */
3173 static val_t once_value_8; /* Once value */
3174 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3175 fra.me.file = LOCATE_syntax___mmbuilder;
3176 fra.me.line = 576;
3177 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___build_class_refinement;
3178 fra.me.has_broke = 0;
3179 fra.me.REG_size = 5;
3180 fra.me.REG[0] = NIT_NULL;
3181 fra.me.REG[1] = NIT_NULL;
3182 fra.me.REG[2] = NIT_NULL;
3183 fra.me.REG[3] = NIT_NULL;
3184 fra.me.REG[4] = NIT_NULL;
3185 fra.me.REG[0] = p0;
3186 fra.me.REG[1] = p1;
3187 fra.me.REG[2] = p2;
3188 /* ./syntax//mmbuilder.nit:578 */
3189 fra.me.REG[3] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[0])(fra.me.REG[0]);
3190 CALL_metamodel___abstractmetamodel___MMLocalClass___set_global(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
3191 /* ./syntax//mmbuilder.nit:580 */
3192 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
3193 CALL_syntax___syntax_base___MMGlobalClass___check_visibility(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
3194 /* ./syntax//mmbuilder.nit:581 */
3195 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
3196 if (UNTAG_Bool(REGB0)) {
3197 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[0])(fra.me.REG[0]);
3198 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3199 if (UNTAG_Bool(REGB0)) {
3200 } else {
3201 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3202 if (UNTAG_Bool(REGB1)) {
3203 REGB1 = TAG_Bool(false);
3204 REGB0 = REGB1;
3205 } else {
3206 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3207 REGB0 = REGB1;
3208 }
3209 }
3210 } else {
3211 REGB1 = TAG_Bool(false);
3212 REGB0 = REGB1;
3213 }
3214 if (UNTAG_Bool(REGB0)) {
3215 /* ./syntax//mmbuilder.nit:582 */
3216 REGB0 = TAG_Int(3);
3217 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3218 if (!once_value_1) {
3219 fra.me.REG[4] = BOX_NativeString("Redef error: ");
3220 REGB0 = TAG_Int(13);
3221 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
3222 once_value_1 = fra.me.REG[4];
3223 register_static_object(&once_value_1);
3224 } else fra.me.REG[4] = once_value_1;
3225 fra.me.REG[4] = fra.me.REG[4];
3226 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3227 fra.me.REG[4] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[0])(fra.me.REG[0]);
3228 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3229 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3230 if (!once_value_2) {
3231 fra.me.REG[4] = BOX_NativeString(" is an imported class. Add the redef keyword to refine it.");
3232 REGB0 = TAG_Int(58);
3233 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
3234 once_value_2 = fra.me.REG[4];
3235 register_static_object(&once_value_2);
3236 } else fra.me.REG[4] = once_value_2;
3237 fra.me.REG[4] = fra.me.REG[4];
3238 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3239 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3240 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
3241 /* ./syntax//mmbuilder.nit:583 */
3242 goto label3;
3243 }
3244 /* ./syntax//mmbuilder.nit:586 */
3245 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[2])(fra.me.REG[2]);
3246 REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[3])(fra.me.REG[3]);
3247 fra.me.REG[3] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[0]);
3248 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3249 if (UNTAG_Bool(REGB1)) {
3250 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 586);
3251 }
3252 REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[3])(fra.me.REG[3]);
3253 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
3254 if (UNTAG_Bool(REGB2)) {
3255 } else {
3256 /* ./../lib/standard//kernel.nit:210 */
3257 REGB1 = TAG_Bool((REGB0)==(REGB1));
3258 /* ./syntax//mmbuilder.nit:586 */
3259 REGB2 = REGB1;
3260 }
3261 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
3262 if (UNTAG_Bool(REGB2)) {
3263 /* ./syntax//mmbuilder.nit:587 */
3264 REGB2 = TAG_Int(5);
3265 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
3266 if (!once_value_4) {
3267 fra.me.REG[4] = BOX_NativeString("Redef error: Formal parameter arity missmatch; got ");
3268 REGB2 = TAG_Int(51);
3269 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
3270 once_value_4 = fra.me.REG[4];
3271 register_static_object(&once_value_4);
3272 } else fra.me.REG[4] = once_value_4;
3273 fra.me.REG[4] = fra.me.REG[4];
3274 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3275 fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[0]);
3276 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3277 if (UNTAG_Bool(REGB2)) {
3278 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 587);
3279 }
3280 REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
3281 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
3282 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3283 if (!once_value_5) {
3284 fra.me.REG[4] = BOX_NativeString(", expected ");
3285 REGB2 = TAG_Int(11);
3286 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
3287 once_value_5 = fra.me.REG[4];
3288 register_static_object(&once_value_5);
3289 } else fra.me.REG[4] = once_value_5;
3290 fra.me.REG[4] = fra.me.REG[4];
3291 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3292 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[2])(fra.me.REG[2]);
3293 REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
3294 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
3295 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3296 if (!once_value_6) {
3297 fra.me.REG[4] = BOX_NativeString(".");
3298 REGB2 = TAG_Int(1);
3299 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
3300 once_value_6 = fra.me.REG[4];
3301 register_static_object(&once_value_6);
3302 } else fra.me.REG[4] = once_value_6;
3303 fra.me.REG[4] = fra.me.REG[4];
3304 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3305 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3306 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
3307 }
3308 /* ./syntax//mmbuilder.nit:590 */
3309 REGB2 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
3310 if (UNTAG_Bool(REGB2)) {
3311 REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[2])(fra.me.REG[2]);
3312 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
3313 if (UNTAG_Bool(REGB2)) {
3314 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3315 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[3])(fra.me.REG[3]);
3316 } else {
3317 REGB1 = TAG_Bool(false);
3318 REGB2 = REGB1;
3319 }
3320 if (UNTAG_Bool(REGB2)) {
3321 REGB2 = TAG_Bool(true);
3322 } else {
3323 /* ./syntax//mmbuilder.nit:591 */
3324 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[2])(fra.me.REG[2]);
3325 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3326 /* ./syntax//mmbuilder.nit:590 */
3327 REGB2 = REGB1;
3328 }
3329 if (UNTAG_Bool(REGB2)) {
3330 /* ./syntax//mmbuilder.nit:591 */
3331 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3332 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[3])(fra.me.REG[3]);
3333 } else {
3334 /* ./syntax//mmbuilder.nit:590 */
3335 REGB1 = TAG_Bool(false);
3336 REGB2 = REGB1;
3337 }
3338 if (UNTAG_Bool(REGB2)) {
3339 REGB2 = TAG_Bool(true);
3340 } else {
3341 /* ./syntax//mmbuilder.nit:592 */
3342 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[2])(fra.me.REG[2]);
3343 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3344 /* ./syntax//mmbuilder.nit:590 */
3345 REGB2 = REGB1;
3346 }
3347 if (UNTAG_Bool(REGB2)) {
3348 /* ./syntax//mmbuilder.nit:592 */
3349 fra.me.REG[2] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3350 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[2])(fra.me.REG[2]);
3351 } else {
3352 /* ./syntax//mmbuilder.nit:590 */
3353 REGB1 = TAG_Bool(false);
3354 REGB2 = REGB1;
3355 }
3356 } else {
3357 REGB1 = TAG_Bool(false);
3358 REGB2 = REGB1;
3359 }
3360 if (UNTAG_Bool(REGB2)) {
3361 /* ./syntax//mmbuilder.nit:594 */
3362 REGB2 = TAG_Int(3);
3363 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
3364 if (!once_value_7) {
3365 fra.me.REG[3] = BOX_NativeString("Redef error: cannot change kind of class ");
3366 REGB2 = TAG_Int(41);
3367 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
3368 once_value_7 = fra.me.REG[3];
3369 register_static_object(&once_value_7);
3370 } else fra.me.REG[3] = once_value_7;
3371 fra.me.REG[3] = fra.me.REG[3];
3372 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3373 fra.me.REG[3] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[0])(fra.me.REG[0]);
3374 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3375 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3376 if (!once_value_8) {
3377 fra.me.REG[3] = BOX_NativeString(".");
3378 REGB2 = TAG_Int(1);
3379 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
3380 once_value_8 = fra.me.REG[3];
3381 register_static_object(&once_value_8);
3382 } else fra.me.REG[3] = once_value_8;
3383 fra.me.REG[3] = fra.me.REG[3];
3384 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3385 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3386 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
3387 }
3388 label3: while(0);
3389 stack_frame_head = fra.me.prev;
3390 return;
3391 }
3392 void syntax___mmbuilder___AClassdef___accept_class_verifier(val_t p0, val_t p1){
3393 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
3394 val_t REGB0;
3395 val_t REGB1;
3396 val_t REGB2;
3397 val_t tmp;
3398 static val_t once_value_1; /* Once value */
3399 static val_t once_value_2; /* Once value */
3400 static val_t once_value_3; /* Once value */
3401 static val_t once_value_4; /* Once value */
3402 static val_t once_value_5; /* Once value */
3403 static val_t once_value_6; /* Once value */
3404 static val_t once_value_7; /* Once value */
3405 static val_t once_value_8; /* Once value */
3406 static val_t once_value_9; /* Once value */
3407 static val_t once_value_10; /* Once value */
3408 static val_t once_value_11; /* Once value */
3409 static val_t once_value_12; /* Once value */
3410 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3411 fra.me.file = LOCATE_syntax___mmbuilder;
3412 fra.me.line = 598;
3413 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___accept_class_verifier;
3414 fra.me.has_broke = 0;
3415 fra.me.REG_size = 9;
3416 fra.me.REG[0] = NIT_NULL;
3417 fra.me.REG[1] = NIT_NULL;
3418 fra.me.REG[2] = NIT_NULL;
3419 fra.me.REG[3] = NIT_NULL;
3420 fra.me.REG[4] = NIT_NULL;
3421 fra.me.REG[5] = NIT_NULL;
3422 fra.me.REG[6] = NIT_NULL;
3423 fra.me.REG[7] = NIT_NULL;
3424 fra.me.REG[8] = NIT_NULL;
3425 fra.me.REG[0] = p0;
3426 fra.me.REG[1] = p1;
3427 /* ./syntax//mmbuilder.nit:598 */
3428 fra.me.REG[2] = fra.me.REG[0];
3429 fra.me.REG[3] = fra.me.REG[1];
3430 /* ./syntax//mmbuilder.nit:600 */
3431 CALL_SUPER_syntax___mmbuilder___AClassdef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3432 /* ./syntax//mmbuilder.nit:601 */
3433 fra.me.REG[1] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3434 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3435 if (UNTAG_Bool(REGB0)) {
3436 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 601);
3437 }
3438 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
3439 /* ./syntax//mmbuilder.nit:602 */
3440 fra.me.REG[0] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3441 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3442 if (UNTAG_Bool(REGB0)) {
3443 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 602);
3444 }
3445 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
3446 fra.me.REG[0] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[0])(fra.me.REG[0]);
3447 /* ./../lib/standard//collection//array.nit:234 */
3448 REGB0 = TAG_Int(0);
3449 /* ./../lib/standard//collection//array.nit:235 */
3450 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3451 if (UNTAG_Bool(REGB1)) {
3452 } else {
3453 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
3454 }
3455 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
3456 /* ./../lib/standard//collection//array.nit:236 */
3457 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
3458 /* ./../lib/standard//collection//array.nit:237 */
3459 while(1) {
3460 /* ./../lib/standard//collection//array.nit:23 */
3461 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3462 if (UNTAG_Bool(REGB1)) {
3463 } else {
3464 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
3465 }
3466 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
3467 /* ./../lib/standard//kernel.nit:215 */
3468 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3469 /* ./../lib/standard//collection//array.nit:237 */
3470 if (UNTAG_Bool(REGB1)) {
3471 /* ./../lib/standard//collection//array.nit:238 */
3472 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3473 if (UNTAG_Bool(REGB1)) {
3474 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 238);
3475 }
3476 /* ./../lib/standard//collection//array.nit:654 */
3477 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
3478 /* ./syntax//mmbuilder.nit:603 */
3479 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
3480 /* ./syntax//mmbuilder.nit:604 */
3481 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
3482 if (UNTAG_Bool(REGB1)) {
3483 /* ./syntax//mmbuilder.nit:605 */
3484 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
3485 if (UNTAG_Bool(REGB1)) {
3486 /* ./syntax//mmbuilder.nit:606 */
3487 REGB1 = TAG_Int(5);
3488 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
3489 if (!once_value_1) {
3490 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
3491 REGB1 = TAG_Int(25);
3492 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3493 once_value_1 = fra.me.REG[8];
3494 register_static_object(&once_value_1);
3495 } else fra.me.REG[8] = once_value_1;
3496 fra.me.REG[8] = fra.me.REG[8];
3497 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3498 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3499 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3500 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3501 if (!once_value_2) {
3502 fra.me.REG[8] = BOX_NativeString(" try to specialise enum class ");
3503 REGB1 = TAG_Int(30);
3504 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3505 once_value_2 = fra.me.REG[8];
3506 register_static_object(&once_value_2);
3507 } else fra.me.REG[8] = once_value_2;
3508 fra.me.REG[8] = fra.me.REG[8];
3509 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3510 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3511 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3512 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3513 if (!once_value_3) {
3514 fra.me.REG[8] = BOX_NativeString(".");
3515 REGB1 = TAG_Int(1);
3516 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3517 once_value_3 = fra.me.REG[8];
3518 register_static_object(&once_value_3);
3519 } else fra.me.REG[8] = once_value_3;
3520 fra.me.REG[8] = fra.me.REG[8];
3521 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3522 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3523 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3524 } else {
3525 /* ./syntax//mmbuilder.nit:607 */
3526 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
3527 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3528 if (UNTAG_Bool(REGB1)) {
3529 /* ./syntax//mmbuilder.nit:608 */
3530 REGB1 = TAG_Int(5);
3531 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
3532 if (!once_value_4) {
3533 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
3534 REGB1 = TAG_Int(25);
3535 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3536 once_value_4 = fra.me.REG[8];
3537 register_static_object(&once_value_4);
3538 } else fra.me.REG[8] = once_value_4;
3539 fra.me.REG[8] = fra.me.REG[8];
3540 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3541 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3542 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3543 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3544 if (!once_value_5) {
3545 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
3546 REGB1 = TAG_Int(25);
3547 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3548 once_value_5 = fra.me.REG[8];
3549 register_static_object(&once_value_5);
3550 } else fra.me.REG[8] = once_value_5;
3551 fra.me.REG[8] = fra.me.REG[8];
3552 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3553 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3554 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3555 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3556 if (!once_value_6) {
3557 fra.me.REG[8] = BOX_NativeString(".");
3558 REGB1 = TAG_Int(1);
3559 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3560 once_value_6 = fra.me.REG[8];
3561 register_static_object(&once_value_6);
3562 } else fra.me.REG[8] = once_value_6;
3563 fra.me.REG[8] = fra.me.REG[8];
3564 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3565 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3566 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3567 }
3568 }
3569 } else {
3570 /* ./syntax//mmbuilder.nit:610 */
3571 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
3572 if (UNTAG_Bool(REGB1)) {
3573 /* ./syntax//mmbuilder.nit:611 */
3574 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
3575 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3576 if (UNTAG_Bool(REGB1)) {
3577 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
3578 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3579 } else {
3580 REGB2 = TAG_Bool(false);
3581 REGB1 = REGB2;
3582 }
3583 if (UNTAG_Bool(REGB1)) {
3584 /* ./syntax//mmbuilder.nit:612 */
3585 REGB1 = TAG_Int(5);
3586 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
3587 if (!once_value_7) {
3588 fra.me.REG[8] = BOX_NativeString("Special error: Enum class ");
3589 REGB1 = TAG_Int(26);
3590 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3591 once_value_7 = fra.me.REG[8];
3592 register_static_object(&once_value_7);
3593 } else fra.me.REG[8] = once_value_7;
3594 fra.me.REG[8] = fra.me.REG[8];
3595 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3596 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3597 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3598 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3599 if (!once_value_8) {
3600 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
3601 REGB1 = TAG_Int(25);
3602 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3603 once_value_8 = fra.me.REG[8];
3604 register_static_object(&once_value_8);
3605 } else fra.me.REG[8] = once_value_8;
3606 fra.me.REG[8] = fra.me.REG[8];
3607 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3608 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3609 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3610 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3611 if (!once_value_9) {
3612 fra.me.REG[8] = BOX_NativeString(".");
3613 REGB1 = TAG_Int(1);
3614 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3615 once_value_9 = fra.me.REG[8];
3616 register_static_object(&once_value_9);
3617 } else fra.me.REG[8] = once_value_9;
3618 fra.me.REG[8] = fra.me.REG[8];
3619 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3620 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3621 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3622 }
3623 } else {
3624 /* ./syntax//mmbuilder.nit:615 */
3625 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
3626 if (UNTAG_Bool(REGB1)) {
3627 /* ./syntax//mmbuilder.nit:616 */
3628 REGB1 = TAG_Int(5);
3629 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
3630 if (!once_value_10) {
3631 fra.me.REG[7] = BOX_NativeString("Special error: Class ");
3632 REGB1 = TAG_Int(21);
3633 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
3634 once_value_10 = fra.me.REG[7];
3635 register_static_object(&once_value_10);
3636 } else fra.me.REG[7] = once_value_10;
3637 fra.me.REG[7] = fra.me.REG[7];
3638 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
3639 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3640 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3641 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
3642 if (!once_value_11) {
3643 fra.me.REG[7] = BOX_NativeString(" try to specialise enum class ");
3644 REGB1 = TAG_Int(30);
3645 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
3646 once_value_11 = fra.me.REG[7];
3647 register_static_object(&once_value_11);
3648 } else fra.me.REG[7] = once_value_11;
3649 fra.me.REG[7] = fra.me.REG[7];
3650 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
3651 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3652 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
3653 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
3654 if (!once_value_12) {
3655 fra.me.REG[5] = BOX_NativeString(".");
3656 REGB1 = TAG_Int(1);
3657 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
3658 once_value_12 = fra.me.REG[5];
3659 register_static_object(&once_value_12);
3660 } else fra.me.REG[5] = once_value_12;
3661 fra.me.REG[5] = fra.me.REG[5];
3662 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
3663 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
3664 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
3665 }
3666 }
3667 }
3668 /* ./../lib/standard//collection//array.nit:239 */
3669 REGB1 = TAG_Int(1);
3670 /* ./../lib/standard//kernel.nit:218 */
3671 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
3672 /* ./../lib/standard//collection//array.nit:239 */
3673 REGB0 = REGB1;
3674 } else {
3675 /* ./../lib/standard//collection//array.nit:237 */
3676 goto label13;
3677 }
3678 }
3679 label13: while(0);
3680 stack_frame_head = fra.me.prev;
3681 return;
3682 }
3683 void syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
3684 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3685 val_t tmp;
3686 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3687 fra.me.file = LOCATE_syntax___mmbuilder;
3688 fra.me.line = 623;
3689 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor;
3690 fra.me.has_broke = 0;
3691 fra.me.REG_size = 4;
3692 fra.me.REG[0] = NIT_NULL;
3693 fra.me.REG[1] = NIT_NULL;
3694 fra.me.REG[2] = NIT_NULL;
3695 fra.me.REG[3] = NIT_NULL;
3696 fra.me.REG[0] = p0;
3697 fra.me.REG[1] = p1;
3698 /* ./syntax//mmbuilder.nit:623 */
3699 fra.me.REG[2] = fra.me.REG[0];
3700 fra.me.REG[3] = fra.me.REG[1];
3701 /* ./syntax//mmbuilder.nit:625 */
3702 fra.me.REG[2] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3703 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
3704 /* ./syntax//mmbuilder.nit:626 */
3705 CALL_SUPER_syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3706 /* ./syntax//mmbuilder.nit:627 */
3707 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3708 stack_frame_head = fra.me.prev;
3709 return;
3710 }
3711 val_t syntax___mmbuilder___AClasskind___is_interface(val_t p0){
3712 struct {struct stack_frame_t me;} fra;
3713 val_t REGB0;
3714 val_t tmp;
3715 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3716 fra.me.file = LOCATE_syntax___mmbuilder;
3717 fra.me.line = 632;
3718 fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_interface;
3719 fra.me.has_broke = 0;
3720 fra.me.REG_size = 1;
3721 fra.me.REG[0] = NIT_NULL;
3722 fra.me.REG[0] = p0;
3723 /* ./syntax//mmbuilder.nit:632 */
3724 REGB0 = TAG_Bool(false);
3725 goto label1;
3726 label1: while(0);
3727 stack_frame_head = fra.me.prev;
3728 return REGB0;
3729 }
3730 val_t syntax___mmbuilder___AClasskind___is_enum(val_t p0){
3731 struct {struct stack_frame_t me;} fra;
3732 val_t REGB0;
3733 val_t tmp;
3734 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3735 fra.me.file = LOCATE_syntax___mmbuilder;
3736 fra.me.line = 633;
3737 fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_enum;
3738 fra.me.has_broke = 0;
3739 fra.me.REG_size = 1;
3740 fra.me.REG[0] = NIT_NULL;
3741 fra.me.REG[0] = p0;
3742 /* ./syntax//mmbuilder.nit:633 */
3743 REGB0 = TAG_Bool(false);
3744 goto label1;
3745 label1: while(0);
3746 stack_frame_head = fra.me.prev;
3747 return REGB0;
3748 }
3749 val_t syntax___mmbuilder___AClasskind___is_abstract(val_t p0){
3750 struct {struct stack_frame_t me;} fra;
3751 val_t REGB0;
3752 val_t tmp;
3753 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3754 fra.me.file = LOCATE_syntax___mmbuilder;
3755 fra.me.line = 634;
3756 fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_abstract;
3757 fra.me.has_broke = 0;
3758 fra.me.REG_size = 1;
3759 fra.me.REG[0] = NIT_NULL;
3760 fra.me.REG[0] = p0;
3761 /* ./syntax//mmbuilder.nit:634 */
3762 REGB0 = TAG_Bool(false);
3763 goto label1;
3764 label1: while(0);
3765 stack_frame_head = fra.me.prev;
3766 return REGB0;
3767 }
3768 val_t syntax___mmbuilder___AClasskind___is_extern(val_t p0){
3769 struct {struct stack_frame_t me;} fra;
3770 val_t REGB0;
3771 val_t tmp;
3772 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3773 fra.me.file = LOCATE_syntax___mmbuilder;
3774 fra.me.line = 635;
3775 fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_extern;
3776 fra.me.has_broke = 0;
3777 fra.me.REG_size = 1;
3778 fra.me.REG[0] = NIT_NULL;
3779 fra.me.REG[0] = p0;
3780 /* ./syntax//mmbuilder.nit:635 */
3781 REGB0 = TAG_Bool(false);
3782 goto label1;
3783 label1: while(0);
3784 stack_frame_head = fra.me.prev;
3785 return REGB0;
3786 }
3787 val_t syntax___mmbuilder___AInterfaceClasskind___is_interface(val_t p0){
3788 struct {struct stack_frame_t me;} fra;
3789 val_t REGB0;
3790 val_t tmp;
3791 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3792 fra.me.file = LOCATE_syntax___mmbuilder;
3793 fra.me.line = 639;
3794 fra.me.meth = LOCATE_syntax___mmbuilder___AInterfaceClasskind___is_interface;
3795 fra.me.has_broke = 0;
3796 fra.me.REG_size = 1;
3797 fra.me.REG[0] = NIT_NULL;
3798 fra.me.REG[0] = p0;
3799 /* ./syntax//mmbuilder.nit:639 */
3800 REGB0 = TAG_Bool(true);
3801 goto label1;
3802 label1: while(0);
3803 stack_frame_head = fra.me.prev;
3804 return REGB0;
3805 }
3806 val_t syntax___mmbuilder___AEnumClasskind___is_enum(val_t p0){
3807 struct {struct stack_frame_t me;} fra;
3808 val_t REGB0;
3809 val_t tmp;
3810 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3811 fra.me.file = LOCATE_syntax___mmbuilder;
3812 fra.me.line = 642;
3813 fra.me.meth = LOCATE_syntax___mmbuilder___AEnumClasskind___is_enum;
3814 fra.me.has_broke = 0;
3815 fra.me.REG_size = 1;
3816 fra.me.REG[0] = NIT_NULL;
3817 fra.me.REG[0] = p0;
3818 /* ./syntax//mmbuilder.nit:642 */
3819 REGB0 = TAG_Bool(true);
3820 goto label1;
3821 label1: while(0);
3822 stack_frame_head = fra.me.prev;
3823 return REGB0;
3824 }
3825 val_t syntax___mmbuilder___AExternClasskind___is_extern(val_t p0){
3826 struct {struct stack_frame_t me;} fra;
3827 val_t REGB0;
3828 val_t tmp;
3829 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3830 fra.me.file = LOCATE_syntax___mmbuilder;
3831 fra.me.line = 645;
3832 fra.me.meth = LOCATE_syntax___mmbuilder___AExternClasskind___is_extern;
3833 fra.me.has_broke = 0;
3834 fra.me.REG_size = 1;
3835 fra.me.REG[0] = NIT_NULL;
3836 fra.me.REG[0] = p0;
3837 /* ./syntax//mmbuilder.nit:645 */
3838 REGB0 = TAG_Bool(true);
3839 goto label1;
3840 label1: while(0);
3841 stack_frame_head = fra.me.prev;
3842 return REGB0;
3843 }
3844 val_t syntax___mmbuilder___AAbstractClasskind___is_abstract(val_t p0){
3845 struct {struct stack_frame_t me;} fra;
3846 val_t REGB0;
3847 val_t tmp;
3848 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3849 fra.me.file = LOCATE_syntax___mmbuilder;
3850 fra.me.line = 648;
3851 fra.me.meth = LOCATE_syntax___mmbuilder___AAbstractClasskind___is_abstract;
3852 fra.me.has_broke = 0;
3853 fra.me.REG_size = 1;
3854 fra.me.REG[0] = NIT_NULL;
3855 fra.me.REG[0] = p0;
3856 /* ./syntax//mmbuilder.nit:648 */
3857 REGB0 = TAG_Bool(true);
3858 goto label1;
3859 label1: while(0);
3860 stack_frame_head = fra.me.prev;
3861 return REGB0;
3862 }
3863 val_t syntax___mmbuilder___AStdClassdef___name(val_t p0){
3864 struct {struct stack_frame_t me;} fra;
3865 val_t REGB0;
3866 val_t tmp;
3867 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3868 fra.me.file = LOCATE_syntax___mmbuilder;
3869 fra.me.line = 652;
3870 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___name;
3871 fra.me.has_broke = 0;
3872 fra.me.REG_size = 1;
3873 fra.me.REG[0] = NIT_NULL;
3874 fra.me.REG[0] = p0;
3875 /* ./syntax//mmbuilder.nit:654 */
3876 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_id(fra.me.REG[0])(fra.me.REG[0]);
3877 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3878 if (UNTAG_Bool(REGB0)) {
3879 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 654);
3880 }
3881 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
3882 goto label1;
3883 label1: while(0);
3884 stack_frame_head = fra.me.prev;
3885 return fra.me.REG[0];
3886 }
3887 val_t syntax___mmbuilder___AStdClassdef___arity(val_t p0){
3888 struct {struct stack_frame_t me;} fra;
3889 val_t REGB0;
3890 val_t tmp;
3891 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3892 fra.me.file = LOCATE_syntax___mmbuilder;
3893 fra.me.line = 656;
3894 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___arity;
3895 fra.me.has_broke = 0;
3896 fra.me.REG_size = 1;
3897 fra.me.REG[0] = NIT_NULL;
3898 fra.me.REG[0] = p0;
3899 /* ./syntax//mmbuilder.nit:658 */
3900 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_formaldefs(fra.me.REG[0])(fra.me.REG[0]);
3901 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
3902 goto label1;
3903 label1: while(0);
3904 stack_frame_head = fra.me.prev;
3905 return REGB0;
3906 }
3907 void syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder(val_t p0, val_t p1){
3908 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3909 val_t REGB0;
3910 val_t REGB1;
3911 val_t tmp;
3912 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3913 fra.me.file = LOCATE_syntax___mmbuilder;
3914 fra.me.line = 660;
3915 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder;
3916 fra.me.has_broke = 0;
3917 fra.me.REG_size = 4;
3918 fra.me.REG[0] = NIT_NULL;
3919 fra.me.REG[1] = NIT_NULL;
3920 fra.me.REG[2] = NIT_NULL;
3921 fra.me.REG[3] = NIT_NULL;
3922 fra.me.REG[0] = p0;
3923 fra.me.REG[1] = p1;
3924 /* ./syntax//mmbuilder.nit:660 */
3925 fra.me.REG[2] = fra.me.REG[0];
3926 /* ./syntax//mmbuilder.nit:662 */
3927 CALL_SUPER_syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3928 /* ./syntax//mmbuilder.nit:664 */
3929 fra.me.REG[1] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[2])(fra.me.REG[2]);
3930 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
3931 /* ./syntax//mmbuilder.nit:665 */
3932 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
3933 fra.me.REG[3] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[2])(fra.me.REG[2]);
3934 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[3]));
3935 if (UNTAG_Bool(REGB0)) {
3936 } else {
3937 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
3938 REGB0 = REGB1;
3939 }
3940 if (UNTAG_Bool(REGB0)) {
3941 /* ./syntax//mmbuilder.nit:666 */
3942 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
3943 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[3])(fra.me.REG[3]);
3944 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
3945 /* ./syntax//mmbuilder.nit:667 */
3946 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
3947 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[3])(fra.me.REG[3]);
3948 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
3949 /* ./syntax//mmbuilder.nit:668 */
3950 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
3951 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[3])(fra.me.REG[3]);
3952 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
3953 /* ./syntax//mmbuilder.nit:669 */
3954 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
3955 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_extern(fra.me.REG[3])(fra.me.REG[3]);
3956 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
3957 /* ./syntax//mmbuilder.nit:670 */
3958 REGB0 = CALL_syntax___mmbuilder___AClassdef___visibility_level(fra.me.REG[2])(fra.me.REG[2]);
3959 CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
3960 }
3961 stack_frame_head = fra.me.prev;
3962 return;
3963 }
3964 void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p1){
3965 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
3966 val_t REGB0;
3967 val_t REGB1;
3968 val_t REGB2;
3969 val_t tmp;
3970 static val_t once_value_1; /* Once value */
3971 static val_t once_value_2; /* Once value */
3972 static val_t once_value_3; /* Once value */
3973 static val_t once_value_4; /* Once value */
3974 static val_t once_value_5; /* Once value */
3975 static val_t once_value_6; /* Once value */
3976 static val_t once_value_7; /* Once value */
3977 static val_t once_value_8; /* Once value */
3978 static val_t once_value_9; /* Once value */
3979 static val_t once_value_10; /* Once value */
3980 static val_t once_value_11; /* Once value */
3981 static val_t once_value_12; /* Once value */
3982 static val_t once_value_13; /* Once value */
3983 static val_t once_value_14; /* Once value */
3984 static val_t once_value_15; /* Once value */
3985 static val_t once_value_16; /* Once value */
3986 static val_t once_value_17; /* Once value */
3987 static val_t once_value_18; /* Once value */
3988 static val_t once_value_19; /* Once value */
3989 static val_t once_value_20; /* Once value */
3990 static val_t once_value_23; /* Once value */
3991 static val_t once_value_24; /* Once value */
3992 static val_t once_value_25; /* Once value */
3993 static val_t once_value_26; /* Once value */
3994 static val_t once_value_27; /* Once value */
3995 static val_t once_value_28; /* Once value */
3996 static val_t once_value_29; /* Once value */
3997 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3998 fra.me.file = LOCATE_syntax___mmbuilder;
3999 fra.me.line = 673;
4000 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___accept_class_verifier;
4001 fra.me.has_broke = 0;
4002 fra.me.REG_size = 9;
4003 fra.me.REG[0] = NIT_NULL;
4004 fra.me.REG[1] = NIT_NULL;
4005 fra.me.REG[2] = NIT_NULL;
4006 fra.me.REG[3] = NIT_NULL;
4007 fra.me.REG[4] = NIT_NULL;
4008 fra.me.REG[5] = NIT_NULL;
4009 fra.me.REG[6] = NIT_NULL;
4010 fra.me.REG[7] = NIT_NULL;
4011 fra.me.REG[8] = NIT_NULL;
4012 fra.me.REG[0] = p0;
4013 fra.me.REG[1] = p1;
4014 /* ./syntax//mmbuilder.nit:673 */
4015 fra.me.REG[2] = fra.me.REG[0];
4016 fra.me.REG[3] = fra.me.REG[1];
4017 /* ./syntax//mmbuilder.nit:675 */
4018 CALL_SUPER_syntax___mmbuilder___AStdClassdef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4019 /* ./syntax//mmbuilder.nit:676 */
4020 fra.me.REG[1] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4021 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4022 if (UNTAG_Bool(REGB0)) {
4023 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 676);
4024 }
4025 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
4026 /* ./syntax//mmbuilder.nit:677 */
4027 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
4028 fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4029 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[0],fra.me.REG[4]));
4030 if (UNTAG_Bool(REGB0)) {
4031 } else {
4032 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4033 REGB0 = REGB1;
4034 }
4035 if (UNTAG_Bool(REGB0)) {
4036 /* ./syntax//mmbuilder.nit:679 */
4037 fra.me.REG[4] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
4038 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4039 if (UNTAG_Bool(REGB0)) {
4040 } else {
4041 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4042 if (UNTAG_Bool(REGB1)) {
4043 REGB1 = TAG_Bool(false);
4044 REGB0 = REGB1;
4045 } else {
4046 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
4047 REGB0 = REGB1;
4048 }
4049 }
4050 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4051 if (UNTAG_Bool(REGB0)) {
4052 /* ./syntax//mmbuilder.nit:680 */
4053 REGB0 = TAG_Int(3);
4054 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
4055 if (!once_value_1) {
4056 fra.me.REG[0] = BOX_NativeString("Redef error: No class ");
4057 REGB0 = TAG_Int(22);
4058 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4059 once_value_1 = fra.me.REG[0];
4060 register_static_object(&once_value_1);
4061 } else fra.me.REG[0] = once_value_1;
4062 fra.me.REG[0] = fra.me.REG[0];
4063 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
4064 fra.me.REG[0] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4065 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
4066 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
4067 if (!once_value_2) {
4068 fra.me.REG[0] = BOX_NativeString(" is imported. Remove the redef keyword to define a new class.");
4069 REGB0 = TAG_Int(61);
4070 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4071 once_value_2 = fra.me.REG[0];
4072 register_static_object(&once_value_2);
4073 } else fra.me.REG[0] = once_value_2;
4074 fra.me.REG[0] = fra.me.REG[0];
4075 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
4076 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4077 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]);
4078 }
4079 /* ./syntax//mmbuilder.nit:682 */
4080 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[1])(fra.me.REG[1]);
4081 if (UNTAG_Bool(REGB0)) {
4082 /* ./syntax//mmbuilder.nit:683 */
4083 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
4084 REGB0 = TAG_Bool(true);
4085 CALL_metamodel___abstractmetamodel___MMModule___is_extern_hybrid__eq(fra.me.REG[4])(fra.me.REG[4], REGB0);
4086 }
4087 /* ./syntax//mmbuilder.nit:686 */
4088 fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4089 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4090 if (UNTAG_Bool(REGB0)) {
4091 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 686);
4092 }
4093 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[4])(fra.me.REG[4]);
4094 fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[4])(fra.me.REG[4]);
4095 /* ./../lib/standard//collection//array.nit:234 */
4096 REGB0 = TAG_Int(0);
4097 /* ./../lib/standard//collection//array.nit:235 */
4098 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
4099 if (UNTAG_Bool(REGB1)) {
4100 } else {
4101 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
4102 }
4103 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
4104 /* ./../lib/standard//collection//array.nit:236 */
4105 fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
4106 /* ./../lib/standard//collection//array.nit:237 */
4107 while(1) {
4108 /* ./../lib/standard//collection//array.nit:23 */
4109 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
4110 if (UNTAG_Bool(REGB1)) {
4111 } else {
4112 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
4113 }
4114 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
4115 /* ./../lib/standard//kernel.nit:215 */
4116 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
4117 /* ./../lib/standard//collection//array.nit:237 */
4118 if (UNTAG_Bool(REGB1)) {
4119 /* ./../lib/standard//collection//array.nit:238 */
4120 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4121 if (UNTAG_Bool(REGB1)) {
4122 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 238);
4123 }
4124 /* ./../lib/standard//collection//array.nit:654 */
4125 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
4126 /* ./syntax//mmbuilder.nit:687 */
4127 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
4128 /* ./syntax//mmbuilder.nit:688 */
4129 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
4130 if (UNTAG_Bool(REGB1)) {
4131 /* ./syntax//mmbuilder.nit:689 */
4132 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
4133 if (UNTAG_Bool(REGB1)) {
4134 /* ./syntax//mmbuilder.nit:690 */
4135 REGB1 = TAG_Int(5);
4136 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4137 if (!once_value_3) {
4138 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
4139 REGB1 = TAG_Int(25);
4140 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4141 once_value_3 = fra.me.REG[8];
4142 register_static_object(&once_value_3);
4143 } else fra.me.REG[8] = once_value_3;
4144 fra.me.REG[8] = fra.me.REG[8];
4145 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4146 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4147 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4148 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4149 if (!once_value_4) {
4150 fra.me.REG[8] = BOX_NativeString(" try to specialise enum class ");
4151 REGB1 = TAG_Int(30);
4152 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4153 once_value_4 = fra.me.REG[8];
4154 register_static_object(&once_value_4);
4155 } else fra.me.REG[8] = once_value_4;
4156 fra.me.REG[8] = fra.me.REG[8];
4157 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4158 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4159 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4160 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4161 if (!once_value_5) {
4162 fra.me.REG[8] = BOX_NativeString(".");
4163 REGB1 = TAG_Int(1);
4164 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4165 once_value_5 = fra.me.REG[8];
4166 register_static_object(&once_value_5);
4167 } else fra.me.REG[8] = once_value_5;
4168 fra.me.REG[8] = fra.me.REG[8];
4169 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4170 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4171 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4172 } else {
4173 /* ./syntax//mmbuilder.nit:691 */
4174 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
4175 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4176 if (UNTAG_Bool(REGB1)) {
4177 /* ./syntax//mmbuilder.nit:692 */
4178 REGB1 = TAG_Int(5);
4179 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4180 if (!once_value_6) {
4181 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
4182 REGB1 = TAG_Int(25);
4183 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4184 once_value_6 = fra.me.REG[8];
4185 register_static_object(&once_value_6);
4186 } else fra.me.REG[8] = once_value_6;
4187 fra.me.REG[8] = fra.me.REG[8];
4188 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4189 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4190 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4191 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4192 if (!once_value_7) {
4193 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
4194 REGB1 = TAG_Int(25);
4195 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4196 once_value_7 = fra.me.REG[8];
4197 register_static_object(&once_value_7);
4198 } else fra.me.REG[8] = once_value_7;
4199 fra.me.REG[8] = fra.me.REG[8];
4200 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4201 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4202 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4203 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4204 if (!once_value_8) {
4205 fra.me.REG[8] = BOX_NativeString(".");
4206 REGB1 = TAG_Int(1);
4207 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4208 once_value_8 = fra.me.REG[8];
4209 register_static_object(&once_value_8);
4210 } else fra.me.REG[8] = once_value_8;
4211 fra.me.REG[8] = fra.me.REG[8];
4212 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4213 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4214 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4215 }
4216 }
4217 } else {
4218 /* ./syntax//mmbuilder.nit:694 */
4219 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
4220 if (UNTAG_Bool(REGB1)) {
4221 /* ./syntax//mmbuilder.nit:695 */
4222 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
4223 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4224 if (UNTAG_Bool(REGB1)) {
4225 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
4226 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4227 } else {
4228 REGB2 = TAG_Bool(false);
4229 REGB1 = REGB2;
4230 }
4231 if (UNTAG_Bool(REGB1)) {
4232 /* ./syntax//mmbuilder.nit:696 */
4233 REGB1 = TAG_Int(5);
4234 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4235 if (!once_value_9) {
4236 fra.me.REG[8] = BOX_NativeString("Special error: Enum class ");
4237 REGB1 = TAG_Int(26);
4238 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4239 once_value_9 = fra.me.REG[8];
4240 register_static_object(&once_value_9);
4241 } else fra.me.REG[8] = once_value_9;
4242 fra.me.REG[8] = fra.me.REG[8];
4243 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4244 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4245 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4246 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4247 if (!once_value_10) {
4248 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
4249 REGB1 = TAG_Int(25);
4250 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4251 once_value_10 = fra.me.REG[8];
4252 register_static_object(&once_value_10);
4253 } else fra.me.REG[8] = once_value_10;
4254 fra.me.REG[8] = fra.me.REG[8];
4255 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4256 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4257 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4258 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4259 if (!once_value_11) {
4260 fra.me.REG[8] = BOX_NativeString(".");
4261 REGB1 = TAG_Int(1);
4262 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4263 once_value_11 = fra.me.REG[8];
4264 register_static_object(&once_value_11);
4265 } else fra.me.REG[8] = once_value_11;
4266 fra.me.REG[8] = fra.me.REG[8];
4267 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4268 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4269 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4270 }
4271 } else {
4272 /* ./syntax//mmbuilder.nit:698 */
4273 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[1])(fra.me.REG[1]);
4274 if (UNTAG_Bool(REGB1)) {
4275 /* ./syntax//mmbuilder.nit:699 */
4276 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
4277 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4278 if (UNTAG_Bool(REGB1)) {
4279 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[6])(fra.me.REG[6]);
4280 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4281 } else {
4282 REGB2 = TAG_Bool(false);
4283 REGB1 = REGB2;
4284 }
4285 if (UNTAG_Bool(REGB1)) {
4286 /* ./syntax//mmbuilder.nit:700 */
4287 REGB1 = TAG_Int(5);
4288 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4289 if (!once_value_12) {
4290 fra.me.REG[8] = BOX_NativeString("Special error: Extern class ");
4291 REGB1 = TAG_Int(28);
4292 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4293 once_value_12 = fra.me.REG[8];
4294 register_static_object(&once_value_12);
4295 } else fra.me.REG[8] = once_value_12;
4296 fra.me.REG[8] = fra.me.REG[8];
4297 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4298 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4299 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4300 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4301 if (!once_value_13) {
4302 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
4303 REGB1 = TAG_Int(25);
4304 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4305 once_value_13 = fra.me.REG[8];
4306 register_static_object(&once_value_13);
4307 } else fra.me.REG[8] = once_value_13;
4308 fra.me.REG[8] = fra.me.REG[8];
4309 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4310 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4311 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4312 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4313 if (!once_value_14) {
4314 fra.me.REG[8] = BOX_NativeString(".");
4315 REGB1 = TAG_Int(1);
4316 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4317 once_value_14 = fra.me.REG[8];
4318 register_static_object(&once_value_14);
4319 } else fra.me.REG[8] = once_value_14;
4320 fra.me.REG[8] = fra.me.REG[8];
4321 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4322 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4323 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4324 }
4325 } else {
4326 /* ./syntax//mmbuilder.nit:703 */
4327 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
4328 if (UNTAG_Bool(REGB1)) {
4329 /* ./syntax//mmbuilder.nit:704 */
4330 REGB1 = TAG_Int(5);
4331 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4332 if (!once_value_15) {
4333 fra.me.REG[8] = BOX_NativeString("Special error: Class ");
4334 REGB1 = TAG_Int(21);
4335 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4336 once_value_15 = fra.me.REG[8];
4337 register_static_object(&once_value_15);
4338 } else fra.me.REG[8] = once_value_15;
4339 fra.me.REG[8] = fra.me.REG[8];
4340 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4341 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4342 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4343 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4344 if (!once_value_16) {
4345 fra.me.REG[8] = BOX_NativeString(" try to specialise enum class ");
4346 REGB1 = TAG_Int(30);
4347 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4348 once_value_16 = fra.me.REG[8];
4349 register_static_object(&once_value_16);
4350 } else fra.me.REG[8] = once_value_16;
4351 fra.me.REG[8] = fra.me.REG[8];
4352 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4353 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4354 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4355 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4356 if (!once_value_17) {
4357 fra.me.REG[8] = BOX_NativeString(".");
4358 REGB1 = TAG_Int(1);
4359 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4360 once_value_17 = fra.me.REG[8];
4361 register_static_object(&once_value_17);
4362 } else fra.me.REG[8] = once_value_17;
4363 fra.me.REG[8] = fra.me.REG[8];
4364 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4365 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4366 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4367 } else {
4368 /* ./syntax//mmbuilder.nit:705 */
4369 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[6])(fra.me.REG[6]);
4370 if (UNTAG_Bool(REGB1)) {
4371 /* ./syntax//mmbuilder.nit:706 */
4372 REGB1 = TAG_Int(5);
4373 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4374 if (!once_value_18) {
4375 fra.me.REG[7] = BOX_NativeString("Special error: Class ");
4376 REGB1 = TAG_Int(21);
4377 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
4378 once_value_18 = fra.me.REG[7];
4379 register_static_object(&once_value_18);
4380 } else fra.me.REG[7] = once_value_18;
4381 fra.me.REG[7] = fra.me.REG[7];
4382 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4383 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4384 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4385 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4386 if (!once_value_19) {
4387 fra.me.REG[7] = BOX_NativeString(" try to specialise extern class ");
4388 REGB1 = TAG_Int(32);
4389 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
4390 once_value_19 = fra.me.REG[7];
4391 register_static_object(&once_value_19);
4392 } else fra.me.REG[7] = once_value_19;
4393 fra.me.REG[7] = fra.me.REG[7];
4394 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4395 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4396 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4397 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
4398 if (!once_value_20) {
4399 fra.me.REG[5] = BOX_NativeString(".");
4400 REGB1 = TAG_Int(1);
4401 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
4402 once_value_20 = fra.me.REG[5];
4403 register_static_object(&once_value_20);
4404 } else fra.me.REG[5] = once_value_20;
4405 fra.me.REG[5] = fra.me.REG[5];
4406 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
4407 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4408 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
4409 }
4410 }
4411 }
4412 }
4413 }
4414 /* ./../lib/standard//collection//array.nit:239 */
4415 REGB1 = TAG_Int(1);
4416 /* ./../lib/standard//kernel.nit:218 */
4417 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
4418 /* ./../lib/standard//collection//array.nit:239 */
4419 REGB0 = REGB1;
4420 } else {
4421 /* ./../lib/standard//collection//array.nit:237 */
4422 goto label21;
4423 }
4424 }
4425 label21: while(0);
4426 /* ./syntax//mmbuilder.nit:711 */
4427 goto label22;
4428 }
4429 /* ./syntax//mmbuilder.nit:716 */
4430 fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
4431 CALL_syntax___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]);
4432 /* ./syntax//mmbuilder.nit:717 */
4433 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
4434 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4435 if (UNTAG_Bool(REGB0)) {
4436 } else {
4437 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4438 if (UNTAG_Bool(REGB1)) {
4439 REGB1 = TAG_Bool(false);
4440 REGB0 = REGB1;
4441 } else {
4442 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
4443 REGB0 = REGB1;
4444 }
4445 }
4446 if (UNTAG_Bool(REGB0)) {
4447 /* ./syntax//mmbuilder.nit:718 */
4448 REGB0 = TAG_Int(3);
4449 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
4450 if (!once_value_23) {
4451 fra.me.REG[4] = BOX_NativeString("Redef error: ");
4452 REGB0 = TAG_Int(13);
4453 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
4454 once_value_23 = fra.me.REG[4];
4455 register_static_object(&once_value_23);
4456 } else fra.me.REG[4] = once_value_23;
4457 fra.me.REG[4] = fra.me.REG[4];
4458 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4459 fra.me.REG[4] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4460 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4461 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4462 if (!once_value_24) {
4463 fra.me.REG[4] = BOX_NativeString(" is an imported class. Add the redef keyword to refine it.");
4464 REGB0 = TAG_Int(58);
4465 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
4466 once_value_24 = fra.me.REG[4];
4467 register_static_object(&once_value_24);
4468 } else fra.me.REG[4] = once_value_24;
4469 fra.me.REG[4] = fra.me.REG[4];
4470 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4471 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
4472 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
4473 /* ./syntax//mmbuilder.nit:719 */
4474 goto label22;
4475 }
4476 /* ./syntax//mmbuilder.nit:722 */
4477 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
4478 REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[0])(fra.me.REG[0]);
4479 fra.me.REG[0] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4480 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4481 if (UNTAG_Bool(REGB1)) {
4482 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 722);
4483 }
4484 REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[0])(fra.me.REG[0]);
4485 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
4486 if (UNTAG_Bool(REGB2)) {
4487 } else {
4488 /* ./../lib/standard//kernel.nit:210 */
4489 REGB1 = TAG_Bool((REGB0)==(REGB1));
4490 /* ./syntax//mmbuilder.nit:722 */
4491 REGB2 = REGB1;
4492 }
4493 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
4494 if (UNTAG_Bool(REGB2)) {
4495 /* ./syntax//mmbuilder.nit:723 */
4496 REGB2 = TAG_Int(5);
4497 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
4498 if (!once_value_25) {
4499 fra.me.REG[4] = BOX_NativeString("Redef error: Formal parameter arity mismatch; got ");
4500 REGB2 = TAG_Int(50);
4501 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
4502 once_value_25 = fra.me.REG[4];
4503 register_static_object(&once_value_25);
4504 } else fra.me.REG[4] = once_value_25;
4505 fra.me.REG[4] = fra.me.REG[4];
4506 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4507 fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4508 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4509 if (UNTAG_Bool(REGB2)) {
4510 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 723);
4511 }
4512 REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
4513 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
4514 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4515 if (!once_value_26) {
4516 fra.me.REG[4] = BOX_NativeString(", expected ");
4517 REGB2 = TAG_Int(11);
4518 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
4519 once_value_26 = fra.me.REG[4];
4520 register_static_object(&once_value_26);
4521 } else fra.me.REG[4] = once_value_26;
4522 fra.me.REG[4] = fra.me.REG[4];
4523 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4524 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
4525 REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
4526 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
4527 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4528 if (!once_value_27) {
4529 fra.me.REG[4] = BOX_NativeString(".");
4530 REGB2 = TAG_Int(1);
4531 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
4532 once_value_27 = fra.me.REG[4];
4533 register_static_object(&once_value_27);
4534 } else fra.me.REG[4] = once_value_27;
4535 fra.me.REG[4] = fra.me.REG[4];
4536 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4537 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
4538 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
4539 }
4540 /* ./syntax//mmbuilder.nit:727 */
4541 REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
4542 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
4543 if (UNTAG_Bool(REGB2)) {
4544 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4545 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[0])(fra.me.REG[0]);
4546 } else {
4547 REGB1 = TAG_Bool(false);
4548 REGB2 = REGB1;
4549 }
4550 if (UNTAG_Bool(REGB2)) {
4551 REGB2 = TAG_Bool(true);
4552 } else {
4553 /* ./syntax//mmbuilder.nit:728 */
4554 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[1])(fra.me.REG[1]);
4555 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4556 /* ./syntax//mmbuilder.nit:727 */
4557 REGB2 = REGB1;
4558 }
4559 if (UNTAG_Bool(REGB2)) {
4560 /* ./syntax//mmbuilder.nit:728 */
4561 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4562 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[0])(fra.me.REG[0]);
4563 } else {
4564 /* ./syntax//mmbuilder.nit:727 */
4565 REGB1 = TAG_Bool(false);
4566 REGB2 = REGB1;
4567 }
4568 if (UNTAG_Bool(REGB2)) {
4569 REGB2 = TAG_Bool(true);
4570 } else {
4571 /* ./syntax//mmbuilder.nit:729 */
4572 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
4573 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4574 /* ./syntax//mmbuilder.nit:727 */
4575 REGB2 = REGB1;
4576 }
4577 if (UNTAG_Bool(REGB2)) {
4578 /* ./syntax//mmbuilder.nit:729 */
4579 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4580 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[0])(fra.me.REG[0]);
4581 } else {
4582 /* ./syntax//mmbuilder.nit:727 */
4583 REGB1 = TAG_Bool(false);
4584 REGB2 = REGB1;
4585 }
4586 if (UNTAG_Bool(REGB2)) {
4587 REGB2 = TAG_Bool(true);
4588 } else {
4589 /* ./syntax//mmbuilder.nit:730 */
4590 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[1])(fra.me.REG[1]);
4591 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4592 /* ./syntax//mmbuilder.nit:727 */
4593 REGB2 = REGB1;
4594 }
4595 if (UNTAG_Bool(REGB2)) {
4596 /* ./syntax//mmbuilder.nit:730 */
4597 fra.me.REG[1] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4598 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_extern(fra.me.REG[1])(fra.me.REG[1]);
4599 } else {
4600 /* ./syntax//mmbuilder.nit:727 */
4601 REGB1 = TAG_Bool(false);
4602 REGB2 = REGB1;
4603 }
4604 /* ./syntax//mmbuilder.nit:726 */
4605 if (UNTAG_Bool(REGB2)) {
4606 /* ./syntax//mmbuilder.nit:732 */
4607 REGB2 = TAG_Int(3);
4608 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
4609 if (!once_value_28) {
4610 fra.me.REG[0] = BOX_NativeString("Redef error: cannot change kind of class ");
4611 REGB2 = TAG_Int(41);
4612 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB2);
4613 once_value_28 = fra.me.REG[0];
4614 register_static_object(&once_value_28);
4615 } else fra.me.REG[0] = once_value_28;
4616 fra.me.REG[0] = fra.me.REG[0];
4617 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4618 fra.me.REG[0] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4619 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
4620 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4621 if (!once_value_29) {
4622 fra.me.REG[0] = BOX_NativeString(".");
4623 REGB2 = TAG_Int(1);
4624 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB2);
4625 once_value_29 = fra.me.REG[0];
4626 register_static_object(&once_value_29);
4627 } else fra.me.REG[0] = once_value_29;
4628 fra.me.REG[0] = fra.me.REG[0];
4629 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4630 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
4631 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[1]);
4632 }
4633 label22: while(0);
4634 stack_frame_head = fra.me.prev;
4635 return;
4636 }
4637 val_t syntax___mmbuilder___AStdClassdef___visibility_level(val_t p0){
4638 struct {struct stack_frame_t me;} fra;
4639 val_t REGB0;
4640 val_t tmp;
4641 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4642 fra.me.file = LOCATE_syntax___mmbuilder;
4643 fra.me.line = 736;
4644 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___visibility_level;
4645 fra.me.has_broke = 0;
4646 fra.me.REG_size = 1;
4647 fra.me.REG[0] = NIT_NULL;
4648 fra.me.REG[0] = p0;
4649 /* ./syntax//mmbuilder.nit:738 */
4650 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_visibility(fra.me.REG[0])(fra.me.REG[0]);
4651 REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
4652 goto label1;
4653 label1: while(0);
4654 stack_frame_head = fra.me.prev;
4655 return REGB0;
4656 }
4657 val_t syntax___mmbuilder___AMainClassdef___name(val_t p0){
4658 struct {struct stack_frame_t me;} fra;
4659 val_t REGB0;
4660 val_t tmp;
4661 static val_t once_value_1; /* Once value */
4662 static val_t once_value_2; /* Once value */
4663 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4664 fra.me.file = LOCATE_syntax___mmbuilder;
4665 fra.me.line = 743;
4666 fra.me.meth = LOCATE_syntax___mmbuilder___AMainClassdef___name;
4667 fra.me.has_broke = 0;
4668 fra.me.REG_size = 1;
4669 fra.me.REG[0] = NIT_NULL;
4670 fra.me.REG[0] = p0;
4671 /* ./syntax//mmbuilder.nit:745 */
4672 if (!once_value_1) {
4673 if (!once_value_2) {
4674 fra.me.REG[0] = BOX_NativeString("Sys");
4675 REGB0 = TAG_Int(3);
4676 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4677 once_value_2 = fra.me.REG[0];
4678 register_static_object(&once_value_2);
4679 } else fra.me.REG[0] = once_value_2;
4680 fra.me.REG[0] = fra.me.REG[0];
4681 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
4682 once_value_1 = fra.me.REG[0];
4683 register_static_object(&once_value_1);
4684 } else fra.me.REG[0] = once_value_1;
4685 fra.me.REG[0] = fra.me.REG[0];
4686 goto label3;
4687 label3: while(0);
4688 stack_frame_head = fra.me.prev;
4689 return fra.me.REG[0];
4690 }
4691 val_t syntax___mmbuilder___ATopClassdef___name(val_t p0){
4692 struct {struct stack_frame_t me;} fra;
4693 val_t REGB0;
4694 val_t tmp;
4695 static val_t once_value_1; /* Once value */
4696 static val_t once_value_2; /* Once value */
4697 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4698 fra.me.file = LOCATE_syntax___mmbuilder;
4699 fra.me.line = 750;
4700 fra.me.meth = LOCATE_syntax___mmbuilder___ATopClassdef___name;
4701 fra.me.has_broke = 0;
4702 fra.me.REG_size = 1;
4703 fra.me.REG[0] = NIT_NULL;
4704 fra.me.REG[0] = p0;
4705 /* ./syntax//mmbuilder.nit:752 */
4706 if (!once_value_1) {
4707 if (!once_value_2) {
4708 fra.me.REG[0] = BOX_NativeString("Object");
4709 REGB0 = TAG_Int(6);
4710 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4711 once_value_2 = fra.me.REG[0];
4712 register_static_object(&once_value_2);
4713 } else fra.me.REG[0] = once_value_2;
4714 fra.me.REG[0] = fra.me.REG[0];
4715 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
4716 once_value_1 = fra.me.REG[0];
4717 register_static_object(&once_value_1);
4718 } else fra.me.REG[0] = once_value_1;
4719 fra.me.REG[0] = fra.me.REG[0];
4720 goto label3;
4721 label3: while(0);
4722 stack_frame_head = fra.me.prev;
4723 return fra.me.REG[0];
4724 }
4725 void syntax___mmbuilder___AFormaldef___accept_class_builder(val_t p0, val_t p1){
4726 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
4727 val_t REGB0;
4728 val_t REGB1;
4729 val_t tmp;
4730 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4731 fra.me.file = LOCATE_syntax___mmbuilder;
4732 fra.me.line = 760;
4733 fra.me.meth = LOCATE_syntax___mmbuilder___AFormaldef___accept_class_builder;
4734 fra.me.has_broke = 0;
4735 fra.me.REG_size = 6;
4736 fra.me.REG[0] = NIT_NULL;
4737 fra.me.REG[1] = NIT_NULL;
4738 fra.me.REG[2] = NIT_NULL;
4739 fra.me.REG[3] = NIT_NULL;
4740 fra.me.REG[4] = NIT_NULL;
4741 fra.me.REG[5] = NIT_NULL;
4742 fra.me.REG[0] = p0;
4743 fra.me.REG[1] = p1;
4744 /* ./syntax//mmbuilder.nit:760 */
4745 fra.me.REG[2] = fra.me.REG[0];
4746 fra.me.REG[3] = fra.me.REG[1];
4747 /* ./syntax//mmbuilder.nit:762 */
4748 fra.me.REG[4] = CALL_parser___parser_nodes___AFormaldef___n_id(fra.me.REG[2])(fra.me.REG[2]);
4749 fra.me.REG[4] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
4750 /* ./syntax//mmbuilder.nit:763 */
4751 REGB0 = CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity(fra.me.REG[3])(fra.me.REG[3]);
4752 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
4753 fra.me.REG[5] = NEW_MMTypeFormalParameter_metamodel___genericity___MMTypeFormalParameter___init(fra.me.REG[4], REGB0, fra.me.REG[5]);
4754 /* ./syntax//mmbuilder.nit:764 */
4755 ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]) = fra.me.REG[5];
4756 /* ./syntax//mmbuilder.nit:765 */
4757 REGB0 = CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity(fra.me.REG[3])(fra.me.REG[3]);
4758 REGB1 = TAG_Int(1);
4759 /* ./../lib/standard//kernel.nit:218 */
4760 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
4761 /* ./syntax//mmbuilder.nit:765 */
4762 CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB1);
4763 /* ./syntax//mmbuilder.nit:766 */
4764 fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
4765 CALL_metamodel___genericity___MMLocalClass___register_formal(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
4766 /* ./syntax//mmbuilder.nit:767 */
4767 fra.me.REG[3] = CALL_syntax___mmbuilder___ClassBuilderVisitor___formals(fra.me.REG[3])(fra.me.REG[3]);
4768 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4769 if (UNTAG_Bool(REGB1)) {
4770 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 767);
4771 }
4772 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]);
4773 /* ./syntax//mmbuilder.nit:768 */
4774 CALL_SUPER_syntax___mmbuilder___AFormaldef___accept_class_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4775 stack_frame_head = fra.me.prev;
4776 return;
4777 }
4778 void syntax___mmbuilder___AFormaldef___accept_class_verifier(val_t p0, val_t p1){
4779 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
4780 val_t REGB0;
4781 val_t REGB1;
4782 val_t tmp;
4783 static val_t once_value_2; /* Once value */
4784 static val_t once_value_3; /* Once value */
4785 static val_t once_value_4; /* Once value */
4786 static val_t once_value_5; /* Once value */
4787 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4788 fra.me.file = LOCATE_syntax___mmbuilder;
4789 fra.me.line = 771;
4790 fra.me.meth = LOCATE_syntax___mmbuilder___AFormaldef___accept_class_verifier;
4791 fra.me.has_broke = 0;
4792 fra.me.REG_size = 6;
4793 fra.me.REG[0] = NIT_NULL;
4794 fra.me.REG[1] = NIT_NULL;
4795 fra.me.REG[2] = NIT_NULL;
4796 fra.me.REG[3] = NIT_NULL;
4797 fra.me.REG[4] = NIT_NULL;
4798 fra.me.REG[5] = NIT_NULL;
4799 fra.me.REG[0] = p0;
4800 fra.me.REG[1] = p1;
4801 /* ./syntax//mmbuilder.nit:771 */
4802 fra.me.REG[2] = fra.me.REG[0];
4803 fra.me.REG[3] = fra.me.REG[1];
4804 /* ./syntax//mmbuilder.nit:773 */
4805 CALL_SUPER_syntax___mmbuilder___AFormaldef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4806 /* ./syntax//mmbuilder.nit:774 */
4807 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
4808 /* ./syntax//mmbuilder.nit:775 */
4809 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
4810 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[0])(fra.me.REG[0]);
4811 /* ./syntax//mmbuilder.nit:776 */
4812 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
4813 if (UNTAG_Bool(REGB0)) {
4814 } else {
4815 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4816 REGB0 = REGB1;
4817 }
4818 if (UNTAG_Bool(REGB0)) {
4819 /* ./syntax//mmbuilder.nit:777 */
4820 fra.me.REG[4] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
4821 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4822 if (UNTAG_Bool(REGB0)) {
4823 } else {
4824 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4825 if (UNTAG_Bool(REGB1)) {
4826 REGB1 = TAG_Bool(false);
4827 REGB0 = REGB1;
4828 } else {
4829 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
4830 REGB0 = REGB1;
4831 }
4832 }
4833 if (UNTAG_Bool(REGB0)) {
4834 /* ./syntax//mmbuilder.nit:778 */
4835 fra.me.REG[4] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
4836 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
4837 fra.me.REG[5] = CALL_metamodel___inheritance___MMModule___type_any(fra.me.REG[5])(fra.me.REG[5]);
4838 fra.me.REG[5] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[5])(fra.me.REG[5]);
4839 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4840 if (UNTAG_Bool(REGB0)) {
4841 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 778);
4842 }
4843 CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
4844 } else {
4845 /* ./syntax//mmbuilder.nit:780 */
4846 fra.me.REG[5] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
4847 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4848 if (UNTAG_Bool(REGB0)) {
4849 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 780);
4850 }
4851 fra.me.REG[5] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
4852 /* ./syntax//mmbuilder.nit:781 */
4853 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4854 if (UNTAG_Bool(REGB0)) {
4855 } else {
4856 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4857 if (UNTAG_Bool(REGB1)) {
4858 REGB1 = TAG_Bool(false);
4859 REGB0 = REGB1;
4860 } else {
4861 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
4862 REGB0 = REGB1;
4863 }
4864 }
4865 if (UNTAG_Bool(REGB0)) {
4866 goto label1;
4867 }
4868 /* ./syntax//mmbuilder.nit:782 */
4869 fra.me.REG[4] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
4870 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4871 if (UNTAG_Bool(REGB0)) {
4872 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 782);
4873 }
4874 CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
4875 }
4876 } else {
4877 /* ./syntax//mmbuilder.nit:785 */
4878 fra.me.REG[5] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
4879 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4880 if (UNTAG_Bool(REGB0)) {
4881 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 785);
4882 }
4883 REGB0 = CALL_metamodel___genericity___MMTypeFormalParameter___position(fra.me.REG[5])(fra.me.REG[5]);
4884 fra.me.REG[0] = CALL_metamodel___genericity___MMLocalClass___get_formal(fra.me.REG[0])(fra.me.REG[0], REGB0);
4885 fra.me.REG[0] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]);
4886 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
4887 fra.me.REG[5] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
4888 /* ./syntax//mmbuilder.nit:786 */
4889 fra.me.REG[0] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
4890 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4891 if (UNTAG_Bool(REGB0)) {
4892 } else {
4893 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4894 if (UNTAG_Bool(REGB1)) {
4895 REGB1 = TAG_Bool(false);
4896 REGB0 = REGB1;
4897 } else {
4898 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
4899 REGB0 = REGB1;
4900 }
4901 }
4902 if (UNTAG_Bool(REGB0)) {
4903 /* ./syntax//mmbuilder.nit:787 */
4904 fra.me.REG[0] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
4905 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4906 if (UNTAG_Bool(REGB0)) {
4907 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 787);
4908 }
4909 CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
4910 } else {
4911 /* ./syntax//mmbuilder.nit:789 */
4912 fra.me.REG[0] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
4913 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4914 if (UNTAG_Bool(REGB0)) {
4915 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 789);
4916 }
4917 fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
4918 /* ./syntax//mmbuilder.nit:790 */
4919 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4920 if (UNTAG_Bool(REGB0)) {
4921 } else {
4922 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4923 if (UNTAG_Bool(REGB1)) {
4924 REGB1 = TAG_Bool(false);
4925 REGB0 = REGB1;
4926 } else {
4927 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
4928 REGB0 = REGB1;
4929 }
4930 }
4931 if (UNTAG_Bool(REGB0)) {
4932 goto label1;
4933 }
4934 /* ./syntax//mmbuilder.nit:791 */
4935 fra.me.REG[4] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
4936 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4937 if (UNTAG_Bool(REGB0)) {
4938 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 791);
4939 }
4940 CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
4941 /* ./syntax//mmbuilder.nit:792 */
4942 fra.me.REG[0] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
4943 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4944 if (UNTAG_Bool(REGB0)) {
4945 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 792);
4946 }
4947 fra.me.REG[0] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]);
4948 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[5]));
4949 if (UNTAG_Bool(REGB0)) {
4950 } else {
4951 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
4952 REGB0 = REGB1;
4953 }
4954 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4955 if (UNTAG_Bool(REGB0)) {
4956 /* ./syntax//mmbuilder.nit:793 */
4957 REGB0 = TAG_Int(7);
4958 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
4959 if (!once_value_2) {
4960 fra.me.REG[4] = BOX_NativeString("Redef error: Cannot change formal parameter type of class ");
4961 REGB0 = TAG_Int(58);
4962 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
4963 once_value_2 = fra.me.REG[4];
4964 register_static_object(&once_value_2);
4965 } else fra.me.REG[4] = once_value_2;
4966 fra.me.REG[4] = fra.me.REG[4];
4967 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4968 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
4969 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4970 if (!once_value_3) {
4971 fra.me.REG[1] = BOX_NativeString("; got ");
4972 REGB0 = TAG_Int(6);
4973 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
4974 once_value_3 = fra.me.REG[1];
4975 register_static_object(&once_value_3);
4976 } else fra.me.REG[1] = once_value_3;
4977 fra.me.REG[1] = fra.me.REG[1];
4978 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4979 fra.me.REG[1] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
4980 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4981 if (UNTAG_Bool(REGB0)) {
4982 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 793);
4983 }
4984 fra.me.REG[1] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[1])(fra.me.REG[1]);
4985 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
4986 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4987 if (!once_value_4) {
4988 fra.me.REG[1] = BOX_NativeString(", expected ");
4989 REGB0 = TAG_Int(11);
4990 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
4991 once_value_4 = fra.me.REG[1];
4992 register_static_object(&once_value_4);
4993 } else fra.me.REG[1] = once_value_4;
4994 fra.me.REG[1] = fra.me.REG[1];
4995 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4996 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4997 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
4998 if (!once_value_5) {
4999 fra.me.REG[5] = BOX_NativeString(".");
5000 REGB0 = TAG_Int(1);
5001 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
5002 once_value_5 = fra.me.REG[5];
5003 register_static_object(&once_value_5);
5004 } else fra.me.REG[5] = once_value_5;
5005 fra.me.REG[5] = fra.me.REG[5];
5006 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
5007 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
5008 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
5009 }
5010 }
5011 }
5012 label1: while(0);
5013 stack_frame_head = fra.me.prev;
5014 return;
5015 }
5016 val_t syntax___mmbuilder___ASuperclass___ancestor(val_t p0){
5017 struct {struct stack_frame_t me;} fra;
5018 val_t tmp;
5019 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5020 fra.me.file = LOCATE_syntax___mmbuilder;
5021 fra.me.line = 801;
5022 fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___ancestor;
5023 fra.me.has_broke = 0;
5024 fra.me.REG_size = 1;
5025 fra.me.REG[0] = NIT_NULL;
5026 fra.me.REG[0] = p0;
5027 /* ./syntax//mmbuilder.nit:801 */
5028 fra.me.REG[0] = ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[0]);
5029 stack_frame_head = fra.me.prev;
5030 return fra.me.REG[0];
5031 }
5032 void syntax___mmbuilder___ASuperclass___accept_class_specialization_builder(val_t p0, val_t p1){
5033 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5034 val_t REGB0;
5035 val_t REGB1;
5036 val_t tmp;
5037 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5038 fra.me.file = LOCATE_syntax___mmbuilder;
5039 fra.me.line = 803;
5040 fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___accept_class_specialization_builder;
5041 fra.me.has_broke = 0;
5042 fra.me.REG_size = 4;
5043 fra.me.REG[0] = NIT_NULL;
5044 fra.me.REG[1] = NIT_NULL;
5045 fra.me.REG[2] = NIT_NULL;
5046 fra.me.REG[3] = NIT_NULL;
5047 fra.me.REG[0] = p0;
5048 fra.me.REG[1] = p1;
5049 /* ./syntax//mmbuilder.nit:803 */
5050 fra.me.REG[2] = fra.me.REG[0];
5051 fra.me.REG[3] = fra.me.REG[1];
5052 /* ./syntax//mmbuilder.nit:805 */
5053 CALL_SUPER_syntax___mmbuilder___ASuperclass___accept_class_specialization_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5054 /* ./syntax//mmbuilder.nit:806 */
5055 fra.me.REG[1] = CALL_parser___parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
5056 fra.me.REG[1] = CALL_syntax___syntax_base___AType___get_local_class(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5057 /* ./syntax//mmbuilder.nit:807 */
5058 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5059 if (UNTAG_Bool(REGB0)) {
5060 } else {
5061 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5062 if (UNTAG_Bool(REGB1)) {
5063 REGB1 = TAG_Bool(false);
5064 REGB0 = REGB1;
5065 } else {
5066 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
5067 REGB0 = REGB1;
5068 }
5069 }
5070 if (UNTAG_Bool(REGB0)) {
5071 goto label1;
5072 }
5073 /* ./syntax//mmbuilder.nit:808 */
5074 fra.me.REG[1] = NEW_MMSrcAncestor_syntax___mmbuilder___MMSrcAncestor___init(fra.me.REG[1]);
5075 /* ./syntax//mmbuilder.nit:809 */
5076 ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[2]) = fra.me.REG[1];
5077 /* ./syntax//mmbuilder.nit:810 */
5078 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5079 CALL_metamodel___inheritance___MMLocalClass___add_direct_parent(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5080 label1: while(0);
5081 stack_frame_head = fra.me.prev;
5082 return;
5083 }
5084 void syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder(val_t p0, val_t p1){
5085 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5086 val_t REGB0;
5087 val_t tmp;
5088 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5089 fra.me.file = LOCATE_syntax___mmbuilder;
5090 fra.me.line = 813;
5091 fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder;
5092 fra.me.has_broke = 0;
5093 fra.me.REG_size = 4;
5094 fra.me.REG[0] = NIT_NULL;
5095 fra.me.REG[1] = NIT_NULL;
5096 fra.me.REG[2] = NIT_NULL;
5097 fra.me.REG[3] = NIT_NULL;
5098 fra.me.REG[0] = p0;
5099 fra.me.REG[1] = p1;
5100 /* ./syntax//mmbuilder.nit:813 */
5101 fra.me.REG[2] = fra.me.REG[0];
5102 fra.me.REG[3] = fra.me.REG[1];
5103 /* ./syntax//mmbuilder.nit:815 */
5104 CALL_SUPER_syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5105 /* ./syntax//mmbuilder.nit:816 */
5106 fra.me.REG[1] = ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[2]);
5107 fra.me.REG[0] = CALL_parser___parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
5108 fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_unchecked_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
5109 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5110 if (UNTAG_Bool(REGB0)) {
5111 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 816);
5112 }
5113 CALL_metamodel___static_type___MMAncestor___stype__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
5114 /* ./syntax//mmbuilder.nit:817 */
5115 fra.me.REG[2] = ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[2]);
5116 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5117 fra.me.REG[3] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[3])(fra.me.REG[3]);
5118 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5119 if (UNTAG_Bool(REGB0)) {
5120 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 817);
5121 }
5122 CALL_metamodel___static_type___MMAncestor___inheriter__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
5123 stack_frame_head = fra.me.prev;
5124 return;
5125 }
5126 void syntax___mmbuilder___ASuperclass___accept_class_verifier(val_t p0, val_t p1){
5127 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5128 val_t tmp;
5129 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5130 fra.me.file = LOCATE_syntax___mmbuilder;
5131 fra.me.line = 820;
5132 fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___accept_class_verifier;
5133 fra.me.has_broke = 0;
5134 fra.me.REG_size = 4;
5135 fra.me.REG[0] = NIT_NULL;
5136 fra.me.REG[1] = NIT_NULL;
5137 fra.me.REG[2] = NIT_NULL;
5138 fra.me.REG[3] = NIT_NULL;
5139 fra.me.REG[0] = p0;
5140 fra.me.REG[1] = p1;
5141 /* ./syntax//mmbuilder.nit:820 */
5142 fra.me.REG[2] = fra.me.REG[0];
5143 fra.me.REG[3] = fra.me.REG[1];
5144 /* ./syntax//mmbuilder.nit:822 */
5145 CALL_SUPER_syntax___mmbuilder___ASuperclass___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5146 /* ./syntax//mmbuilder.nit:823 */
5147 fra.me.REG[2] = CALL_parser___parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
5148 CALL_syntax___syntax_base___AType___check_conform(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
5149 stack_frame_head = fra.me.prev;
5150 return;
5151 }
5152 void syntax___mmbuilder___APropdef___process_and_check(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
5153 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5154 val_t REGB0;
5155 val_t REGB1;
5156 val_t REGB2;
5157 val_t REGB3;
5158 val_t tmp;
5159 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5160 fra.me.file = LOCATE_syntax___mmbuilder;
5161 fra.me.line = 828;
5162 fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___process_and_check;
5163 fra.me.has_broke = 0;
5164 fra.me.REG_size = 4;
5165 fra.me.REG[0] = NIT_NULL;
5166 fra.me.REG[1] = NIT_NULL;
5167 fra.me.REG[2] = NIT_NULL;
5168 fra.me.REG[3] = NIT_NULL;
5169 fra.me.REG[0] = p0;
5170 fra.me.REG[1] = p1;
5171 fra.me.REG[2] = p2;
5172 REGB0 = p3;
5173 REGB1 = p4;
5174 /* ./syntax//mmbuilder.nit:836 */
5175 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
5176 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[3])(fra.me.REG[3]);
5177 REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[2]));
5178 if (UNTAG_Bool(REGB2)) {
5179 } else {
5180 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
5181 REGB2 = REGB3;
5182 }
5183 if (UNTAG_Bool(REGB2)) {
5184 /* ./syntax//mmbuilder.nit:837 */
5185 CALL_syntax___mmbuilder___APropdef___do_and_check_intro(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, REGB1);
5186 } else {
5187 /* ./syntax//mmbuilder.nit:839 */
5188 CALL_syntax___mmbuilder___APropdef___do_and_check_redef(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, REGB1);
5189 }
5190 stack_frame_head = fra.me.prev;
5191 return;
5192 }
5193 void syntax___mmbuilder___APropdef___do_and_check_intro(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
5194 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
5195 val_t REGB0;
5196 val_t REGB1;
5197 val_t REGB2;
5198 val_t REGB3;
5199 val_t tmp;
5200 static val_t once_value_1; /* Once value */
5201 static val_t once_value_2; /* Once value */
5202 static val_t once_value_3; /* Once value */
5203 static val_t once_value_4; /* Once value */
5204 static val_t once_value_5; /* Once value */
5205 static val_t once_value_6; /* Once value */
5206 static val_t once_value_7; /* Once value */
5207 static val_t once_value_8; /* Once value */
5208 static val_t once_value_9; /* Once value */
5209 static val_t once_value_10; /* Once value */
5210 static val_t once_value_11; /* Once value */
5211 static val_t once_value_12; /* Once value */
5212 static val_t once_value_13; /* Once value */
5213 static val_t once_value_14; /* Once value */
5214 static val_t once_value_15; /* Once value */
5215 static val_t once_value_16; /* Once value */
5216 static val_t once_value_17; /* Once value */
5217 static val_t once_value_18; /* Once value */
5218 static val_t once_value_19; /* Once value */
5219 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5220 fra.me.file = LOCATE_syntax___mmbuilder;
5221 fra.me.line = 843;
5222 fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___do_and_check_intro;
5223 fra.me.has_broke = 0;
5224 fra.me.REG_size = 7;
5225 fra.me.REG[0] = NIT_NULL;
5226 fra.me.REG[1] = NIT_NULL;
5227 fra.me.REG[2] = NIT_NULL;
5228 fra.me.REG[3] = NIT_NULL;
5229 fra.me.REG[4] = NIT_NULL;
5230 fra.me.REG[5] = NIT_NULL;
5231 fra.me.REG[6] = NIT_NULL;
5232 fra.me.REG[0] = p0;
5233 fra.me.REG[1] = p1;
5234 fra.me.REG[2] = p2;
5235 REGB0 = p3;
5236 REGB1 = p4;
5237 /* ./syntax//mmbuilder.nit:846 */
5238 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
5239 /* ./syntax//mmbuilder.nit:847 */
5240 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5241 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
5242 /* ./syntax//mmbuilder.nit:848 */
5243 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
5244 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
5245 REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[5])(fra.me.REG[5]);
5246 REGB3 = TAG_Int(3);
5247 /* ./../lib/standard//kernel.nit:216 */
5248 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
5249 /* ./syntax//mmbuilder.nit:848 */
5250 if (UNTAG_Bool(REGB3)) {
5251 /* ./syntax//mmbuilder.nit:850 */
5252 REGB3 = TAG_Int(3);
5253 REGB1 = REGB3;
5254 }
5255 /* ./syntax//mmbuilder.nit:852 */
5256 CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[3])(fra.me.REG[3], REGB1);
5257 /* ./syntax//mmbuilder.nit:853 */
5258 if (UNTAG_Bool(REGB0)) {
5259 /* ./syntax//mmbuilder.nit:854 */
5260 REGB0 = TAG_Int(5);
5261 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5262 if (!once_value_1) {
5263 fra.me.REG[6] = BOX_NativeString("Error: No property ");
5264 REGB0 = TAG_Int(19);
5265 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5266 once_value_1 = fra.me.REG[6];
5267 register_static_object(&once_value_1);
5268 } else fra.me.REG[6] = once_value_1;
5269 fra.me.REG[6] = fra.me.REG[6];
5270 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5271 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5272 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5273 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5274 if (!once_value_2) {
5275 fra.me.REG[6] = BOX_NativeString("::");
5276 REGB0 = TAG_Int(2);
5277 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5278 once_value_2 = fra.me.REG[6];
5279 register_static_object(&once_value_2);
5280 } else fra.me.REG[6] = once_value_2;
5281 fra.me.REG[6] = fra.me.REG[6];
5282 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5283 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5284 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5285 if (!once_value_3) {
5286 fra.me.REG[6] = BOX_NativeString(" is inherited. Remove the redef keyword to define a new property.");
5287 REGB0 = TAG_Int(65);
5288 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5289 once_value_3 = fra.me.REG[6];
5290 register_static_object(&once_value_3);
5291 } else fra.me.REG[6] = once_value_3;
5292 fra.me.REG[6] = fra.me.REG[6];
5293 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5294 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5295 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5296 }
5297 /* ./syntax//mmbuilder.nit:856 */
5298 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_attribute(fra.me.REG[3])(fra.me.REG[3]);
5299 if (UNTAG_Bool(REGB0)) {
5300 /* ./syntax//mmbuilder.nit:857 */
5301 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]);
5302 if (UNTAG_Bool(REGB0)) {
5303 /* ./syntax//mmbuilder.nit:858 */
5304 REGB0 = TAG_Int(5);
5305 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5306 if (!once_value_4) {
5307 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
5308 REGB0 = TAG_Int(35);
5309 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5310 once_value_4 = fra.me.REG[6];
5311 register_static_object(&once_value_4);
5312 } else fra.me.REG[6] = once_value_4;
5313 fra.me.REG[6] = fra.me.REG[6];
5314 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5315 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5316 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5317 if (!once_value_5) {
5318 fra.me.REG[6] = BOX_NativeString(" in the interface ");
5319 REGB0 = TAG_Int(18);
5320 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5321 once_value_5 = fra.me.REG[6];
5322 register_static_object(&once_value_5);
5323 } else fra.me.REG[6] = once_value_5;
5324 fra.me.REG[6] = fra.me.REG[6];
5325 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5326 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5327 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5328 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5329 if (!once_value_6) {
5330 fra.me.REG[6] = BOX_NativeString(".");
5331 REGB0 = TAG_Int(1);
5332 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5333 once_value_6 = fra.me.REG[6];
5334 register_static_object(&once_value_6);
5335 } else fra.me.REG[6] = once_value_6;
5336 fra.me.REG[6] = fra.me.REG[6];
5337 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5338 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5339 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5340 } else {
5341 /* ./syntax//mmbuilder.nit:859 */
5342 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[4])(fra.me.REG[4]);
5343 if (UNTAG_Bool(REGB0)) {
5344 /* ./syntax//mmbuilder.nit:860 */
5345 REGB0 = TAG_Int(5);
5346 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5347 if (!once_value_7) {
5348 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
5349 REGB0 = TAG_Int(35);
5350 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5351 once_value_7 = fra.me.REG[6];
5352 register_static_object(&once_value_7);
5353 } else fra.me.REG[6] = once_value_7;
5354 fra.me.REG[6] = fra.me.REG[6];
5355 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5356 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5357 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5358 if (!once_value_8) {
5359 fra.me.REG[6] = BOX_NativeString(" in the enum class ");
5360 REGB0 = TAG_Int(19);
5361 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5362 once_value_8 = fra.me.REG[6];
5363 register_static_object(&once_value_8);
5364 } else fra.me.REG[6] = once_value_8;
5365 fra.me.REG[6] = fra.me.REG[6];
5366 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5367 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5368 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5369 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5370 if (!once_value_9) {
5371 fra.me.REG[6] = BOX_NativeString(".");
5372 REGB0 = TAG_Int(1);
5373 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5374 once_value_9 = fra.me.REG[6];
5375 register_static_object(&once_value_9);
5376 } else fra.me.REG[6] = once_value_9;
5377 fra.me.REG[6] = fra.me.REG[6];
5378 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5379 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5380 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5381 } else {
5382 /* ./syntax//mmbuilder.nit:861 */
5383 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[4])(fra.me.REG[4]);
5384 if (UNTAG_Bool(REGB0)) {
5385 /* ./syntax//mmbuilder.nit:862 */
5386 REGB0 = TAG_Int(5);
5387 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5388 if (!once_value_10) {
5389 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
5390 REGB0 = TAG_Int(35);
5391 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5392 once_value_10 = fra.me.REG[6];
5393 register_static_object(&once_value_10);
5394 } else fra.me.REG[6] = once_value_10;
5395 fra.me.REG[6] = fra.me.REG[6];
5396 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5397 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5398 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5399 if (!once_value_11) {
5400 fra.me.REG[6] = BOX_NativeString(" in the extern class ");
5401 REGB0 = TAG_Int(21);
5402 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5403 once_value_11 = fra.me.REG[6];
5404 register_static_object(&once_value_11);
5405 } else fra.me.REG[6] = once_value_11;
5406 fra.me.REG[6] = fra.me.REG[6];
5407 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5408 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5409 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5410 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5411 if (!once_value_12) {
5412 fra.me.REG[6] = BOX_NativeString(".");
5413 REGB0 = TAG_Int(1);
5414 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5415 once_value_12 = fra.me.REG[6];
5416 register_static_object(&once_value_12);
5417 } else fra.me.REG[6] = once_value_12;
5418 fra.me.REG[6] = fra.me.REG[6];
5419 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5420 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5421 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5422 }
5423 }
5424 }
5425 } else {
5426 /* ./syntax//mmbuilder.nit:864 */
5427 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
5428 if (UNTAG_Bool(REGB0)) {
5429 /* ./syntax//mmbuilder.nit:865 */
5430 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]);
5431 if (UNTAG_Bool(REGB0)) {
5432 /* ./syntax//mmbuilder.nit:866 */
5433 REGB0 = TAG_Int(5);
5434 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5435 if (!once_value_13) {
5436 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define a constructor ");
5437 REGB0 = TAG_Int(39);
5438 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5439 once_value_13 = fra.me.REG[6];
5440 register_static_object(&once_value_13);
5441 } else fra.me.REG[6] = once_value_13;
5442 fra.me.REG[6] = fra.me.REG[6];
5443 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5444 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5445 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5446 if (!once_value_14) {
5447 fra.me.REG[6] = BOX_NativeString(" in the class ");
5448 REGB0 = TAG_Int(14);
5449 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5450 once_value_14 = fra.me.REG[6];
5451 register_static_object(&once_value_14);
5452 } else fra.me.REG[6] = once_value_14;
5453 fra.me.REG[6] = fra.me.REG[6];
5454 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5455 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5456 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5457 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5458 if (!once_value_15) {
5459 fra.me.REG[6] = BOX_NativeString(".");
5460 REGB0 = TAG_Int(1);
5461 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5462 once_value_15 = fra.me.REG[6];
5463 register_static_object(&once_value_15);
5464 } else fra.me.REG[6] = once_value_15;
5465 fra.me.REG[6] = fra.me.REG[6];
5466 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5467 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5468 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5469 } else {
5470 /* ./syntax//mmbuilder.nit:867 */
5471 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[4])(fra.me.REG[4]);
5472 if (UNTAG_Bool(REGB0)) {
5473 /* ./syntax//mmbuilder.nit:868 */
5474 REGB0 = TAG_Int(5);
5475 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5476 if (!once_value_16) {
5477 fra.me.REG[5] = BOX_NativeString("Error: Attempt to define a constructor ");
5478 REGB0 = TAG_Int(39);
5479 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
5480 once_value_16 = fra.me.REG[5];
5481 register_static_object(&once_value_16);
5482 } else fra.me.REG[5] = once_value_16;
5483 fra.me.REG[5] = fra.me.REG[5];
5484 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5485 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5486 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5487 if (!once_value_17) {
5488 fra.me.REG[5] = BOX_NativeString(" in the enum ");
5489 REGB0 = TAG_Int(13);
5490 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
5491 once_value_17 = fra.me.REG[5];
5492 register_static_object(&once_value_17);
5493 } else fra.me.REG[5] = once_value_17;
5494 fra.me.REG[5] = fra.me.REG[5];
5495 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5496 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5497 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5498 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5499 if (!once_value_18) {
5500 fra.me.REG[5] = BOX_NativeString(".");
5501 REGB0 = TAG_Int(1);
5502 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
5503 once_value_18 = fra.me.REG[5];
5504 register_static_object(&once_value_18);
5505 } else fra.me.REG[5] = once_value_18;
5506 fra.me.REG[5] = fra.me.REG[5];
5507 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5508 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
5509 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
5510 }
5511 }
5512 }
5513 }
5514 /* ./syntax//mmbuilder.nit:873 */
5515 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
5516 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5517 if (UNTAG_Bool(REGB0)) {
5518 } else {
5519 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5520 if (UNTAG_Bool(REGB1)) {
5521 REGB1 = TAG_Bool(false);
5522 REGB0 = REGB1;
5523 } else {
5524 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5525 REGB0 = REGB1;
5526 }
5527 }
5528 if (UNTAG_Bool(REGB0)) {
5529 /* ./syntax//mmbuilder.nit:874 */
5530 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
5531 if (UNTAG_Bool(REGB0)) {
5532 /* ./syntax//mmbuilder.nit:875 */
5533 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5534 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
5535 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
5536 /* ./syntax//mmbuilder.nit:876 */
5537 CALL_syntax___mmbuilder___APropdef___inherit_signature(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[4]);
5538 }
5539 /* ./syntax//mmbuilder.nit:878 */
5540 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
5541 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5542 if (UNTAG_Bool(REGB0)) {
5543 } else {
5544 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5545 if (UNTAG_Bool(REGB1)) {
5546 REGB1 = TAG_Bool(false);
5547 REGB0 = REGB1;
5548 } else {
5549 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5550 REGB0 = REGB1;
5551 }
5552 }
5553 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5554 if (UNTAG_Bool(REGB0)) {
5555 REGB0 = TAG_Bool(true);
5556 } else {
5557 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5558 REGB1 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[4])(fra.me.REG[4]);
5559 REGB0 = REGB1;
5560 }
5561 if (UNTAG_Bool(REGB0)) {
5562 } else {
5563 /* ./syntax//mmbuilder.nit:880 */
5564 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5565 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
5566 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[4])(fra.me.REG[4]);
5567 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5568 if (UNTAG_Bool(REGB0)) {
5569 /* ./syntax//mmbuilder.nit:881 */
5570 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5571 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
5572 fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
5573 if (!once_value_19) {
5574 fra.me.REG[0] = BOX_NativeString("Error: Untyped parameter.");
5575 REGB0 = TAG_Int(25);
5576 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
5577 once_value_19 = fra.me.REG[0];
5578 register_static_object(&once_value_19);
5579 } else fra.me.REG[0] = once_value_19;
5580 fra.me.REG[0] = fra.me.REG[0];
5581 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]);
5582 } else {
5583 /* ./syntax//mmbuilder.nit:883 */
5584 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
5585 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
5586 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
5587 fra.me.REG[4] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[4]);
5588 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
5589 /* ./syntax//mmbuilder.nit:884 */
5590 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5591 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[1])(fra.me.REG[1]);
5592 /* ./../lib/standard//collection//array.nit:234 */
5593 REGB0 = TAG_Int(0);
5594 /* ./../lib/standard//collection//array.nit:235 */
5595 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
5596 if (UNTAG_Bool(REGB1)) {
5597 } else {
5598 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
5599 }
5600 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
5601 /* ./../lib/standard//collection//array.nit:236 */
5602 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
5603 /* ./../lib/standard//collection//array.nit:237 */
5604 while(1) {
5605 /* ./../lib/standard//collection//array.nit:23 */
5606 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
5607 if (UNTAG_Bool(REGB1)) {
5608 } else {
5609 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
5610 }
5611 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
5612 /* ./../lib/standard//kernel.nit:215 */
5613 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
5614 /* ./../lib/standard//collection//array.nit:237 */
5615 if (UNTAG_Bool(REGB1)) {
5616 /* ./../lib/standard//collection//array.nit:238 */
5617 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5618 if (UNTAG_Bool(REGB1)) {
5619 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 238);
5620 }
5621 /* ./../lib/standard//collection//array.nit:654 */
5622 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
5623 /* ./syntax//mmbuilder.nit:885 */
5624 fra.me.REG[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
5625 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5626 if (UNTAG_Bool(REGB1)) {
5627 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 885);
5628 }
5629 fra.me.REG[3] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[3])(fra.me.REG[3]);
5630 fra.me.REG[0] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[0])(fra.me.REG[0]);
5631 fra.me.REG[0] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[0])(fra.me.REG[0]);
5632 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
5633 /* ./../lib/standard//collection//array.nit:239 */
5634 REGB1 = TAG_Int(1);
5635 /* ./../lib/standard//kernel.nit:218 */
5636 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
5637 /* ./../lib/standard//collection//array.nit:239 */
5638 REGB0 = REGB1;
5639 } else {
5640 /* ./../lib/standard//collection//array.nit:237 */
5641 goto label20;
5642 }
5643 }
5644 label20: while(0);
5645 }
5646 }
5647 }
5648 stack_frame_head = fra.me.prev;
5649 return;
5650 }
5651 void syntax___mmbuilder___APropdef___inherit_signature(val_t p0, val_t p1, val_t p2, val_t p3){
5652 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
5653 val_t REGB0;
5654 val_t REGB1;
5655 val_t REGB2;
5656 val_t REGB3;
5657 val_t REGB4;
5658 val_t tmp;
5659 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5660 fra.me.file = LOCATE_syntax___mmbuilder;
5661 fra.me.line = 891;
5662 fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___inherit_signature;
5663 fra.me.has_broke = 0;
5664 fra.me.REG_size = 11;
5665 fra.me.REG[0] = NIT_NULL;
5666 fra.me.REG[1] = NIT_NULL;
5667 fra.me.REG[2] = NIT_NULL;
5668 fra.me.REG[3] = NIT_NULL;
5669 fra.me.REG[4] = NIT_NULL;
5670 fra.me.REG[5] = NIT_NULL;
5671 fra.me.REG[6] = NIT_NULL;
5672 fra.me.REG[7] = NIT_NULL;
5673 fra.me.REG[8] = NIT_NULL;
5674 fra.me.REG[9] = NIT_NULL;
5675 fra.me.REG[10] = NIT_NULL;
5676 fra.me.REG[0] = p0;
5677 fra.me.REG[1] = p1;
5678 fra.me.REG[2] = p2;
5679 fra.me.REG[3] = p3;
5680 /* ./syntax//mmbuilder.nit:893 */
5681 fra.me.REG[0] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
5682 /* ./../lib/standard//collection//array.nit:234 */
5683 REGB0 = TAG_Int(0);
5684 /* ./../lib/standard//collection//array.nit:235 */
5685 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
5686 if (UNTAG_Bool(REGB1)) {
5687 } else {
5688 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
5689 }
5690 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
5691 /* ./../lib/standard//collection//array.nit:236 */
5692 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
5693 /* ./../lib/standard//collection//array.nit:237 */
5694 while(1) {
5695 /* ./../lib/standard//collection//array.nit:23 */
5696 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
5697 if (UNTAG_Bool(REGB1)) {
5698 } else {
5699 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
5700 }
5701 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
5702 /* ./../lib/standard//kernel.nit:215 */
5703 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
5704 /* ./../lib/standard//collection//array.nit:237 */
5705 if (UNTAG_Bool(REGB1)) {
5706 /* ./../lib/standard//collection//array.nit:238 */
5707 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5708 if (UNTAG_Bool(REGB1)) {
5709 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 238);
5710 }
5711 /* ./../lib/standard//collection//array.nit:654 */
5712 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
5713 /* ./syntax//mmbuilder.nit:895 */
5714 fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[5])(fra.me.REG[5]);
5715 fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
5716 fra.me.REG[6] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[6])(fra.me.REG[6]);
5717 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
5718 if (UNTAG_Bool(REGB1)) {
5719 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 895);
5720 }
5721 fra.me.REG[6] = CALL_metamodel___static_type___MMSignature___adaptation_to(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5722 /* ./syntax//mmbuilder.nit:897 */
5723 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5724 if (UNTAG_Bool(REGB1)) {
5725 } else {
5726 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5727 if (UNTAG_Bool(REGB2)) {
5728 REGB2 = TAG_Bool(false);
5729 REGB1 = REGB2;
5730 } else {
5731 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
5732 REGB1 = REGB2;
5733 }
5734 }
5735 if (UNTAG_Bool(REGB1)) {
5736 /* ./syntax//mmbuilder.nit:898 */
5737 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5738 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[5])(fra.me.REG[5]);
5739 /* ./../lib/standard//collection//array.nit:23 */
5740 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
5741 if (UNTAG_Bool(REGB1)) {
5742 } else {
5743 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
5744 }
5745 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
5746 /* ./syntax//mmbuilder.nit:898 */
5747 REGB2 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[6])(fra.me.REG[6]);
5748 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
5749 if (UNTAG_Bool(REGB3)) {
5750 } else {
5751 /* ./../lib/standard//kernel.nit:210 */
5752 REGB2 = TAG_Bool((REGB1)==(REGB2));
5753 /* ./syntax//mmbuilder.nit:898 */
5754 REGB3 = REGB2;
5755 }
5756 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
5757 if (UNTAG_Bool(REGB3)) {
5758 /* ./syntax//mmbuilder.nit:899 */
5759 goto label1;
5760 }
5761 /* ./syntax//mmbuilder.nit:901 */
5762 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5763 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[5])(fra.me.REG[5]);
5764 /* ./../lib/standard//collection//array.nit:234 */
5765 REGB3 = TAG_Int(0);
5766 /* ./../lib/standard//collection//array.nit:235 */
5767 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
5768 if (UNTAG_Bool(REGB2)) {
5769 } else {
5770 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
5771 }
5772 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
5773 /* ./../lib/standard//collection//array.nit:236 */
5774 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
5775 /* ./../lib/standard//collection//array.nit:237 */
5776 while(1) {
5777 /* ./../lib/standard//collection//array.nit:23 */
5778 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
5779 if (UNTAG_Bool(REGB2)) {
5780 } else {
5781 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
5782 }
5783 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
5784 /* ./../lib/standard//kernel.nit:215 */
5785 REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB2));
5786 /* ./../lib/standard//collection//array.nit:237 */
5787 if (UNTAG_Bool(REGB2)) {
5788 /* ./../lib/standard//collection//array.nit:238 */
5789 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5790 if (UNTAG_Bool(REGB2)) {
5791 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 238);
5792 }
5793 /* ./../lib/standard//collection//array.nit:654 */
5794 fra.me.REG[8] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB3)];
5795 /* ./syntax//mmbuilder.nit:902 */
5796 REGB2 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[8])(fra.me.REG[8]);
5797 fra.me.REG[9] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[6])(fra.me.REG[6], REGB2);
5798 /* ./syntax//mmbuilder.nit:903 */
5799 CALL_syntax___mmbuilder___AParam___stype__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
5800 /* ./syntax//mmbuilder.nit:904 */
5801 REGB2 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[8])(fra.me.REG[8]);
5802 REGB1 = CALL_metamodel___vararg___MMSignature___vararg_rank(fra.me.REG[6])(fra.me.REG[6]);
5803 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
5804 if (UNTAG_Bool(REGB4)) {
5805 } else {
5806 /* ./../lib/standard//kernel.nit:210 */
5807 REGB1 = TAG_Bool((REGB2)==(REGB1));
5808 /* ./syntax//mmbuilder.nit:904 */
5809 REGB4 = REGB1;
5810 }
5811 if (UNTAG_Bool(REGB4)) {
5812 /* ./syntax//mmbuilder.nit:905 */
5813 fra.me.REG[10] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
5814 fra.me.REG[9] = fra.me.REG[10];
5815 }
5816 /* ./syntax//mmbuilder.nit:907 */
5817 fra.me.REG[8] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[8])(fra.me.REG[8]);
5818 CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
5819 /* ./../lib/standard//collection//array.nit:239 */
5820 REGB4 = TAG_Int(1);
5821 /* ./../lib/standard//kernel.nit:218 */
5822 REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB4));
5823 /* ./../lib/standard//collection//array.nit:239 */
5824 REGB3 = REGB4;
5825 } else {
5826 /* ./../lib/standard//collection//array.nit:237 */
5827 goto label2;
5828 }
5829 }
5830 label2: while(0);
5831 /* ./syntax//mmbuilder.nit:910 */
5832 fra.me.REG[0] = fra.me.REG[6];
5833 /* ./syntax//mmbuilder.nit:911 */
5834 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5835 }
5836 /* ./../lib/standard//collection//array.nit:239 */
5837 REGB3 = TAG_Int(1);
5838 /* ./../lib/standard//kernel.nit:218 */
5839 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
5840 /* ./../lib/standard//collection//array.nit:239 */
5841 REGB0 = REGB3;
5842 } else {
5843 /* ./../lib/standard//collection//array.nit:237 */
5844 goto label3;
5845 }
5846 }
5847 label3: while(0);
5848 label1: while(0);
5849 stack_frame_head = fra.me.prev;
5850 return;
5851 }
5852 void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
5853 struct {struct stack_frame_t me; val_t MORE_REG[13];} fra;
5854 val_t REGB0;
5855 val_t REGB1;
5856 val_t REGB2;
5857 val_t REGB3;
5858 val_t REGB4;
5859 val_t REGB5;
5860 val_t REGB6;
5861 val_t REGB7;
5862 val_t tmp;
5863 static val_t once_value_1; /* Once value */
5864 static val_t once_value_2; /* Once value */
5865 static val_t once_value_3; /* Once value */
5866 static val_t once_value_5; /* Once value */
5867 static val_t once_value_6; /* Once value */
5868 static val_t once_value_7; /* Once value */
5869 static val_t once_value_8; /* Once value */
5870 static val_t once_value_9; /* Once value */
5871 static val_t once_value_10; /* Once value */
5872 static val_t once_value_12; /* Once value */
5873 static val_t once_value_13; /* Once value */
5874 static val_t once_value_14; /* Once value */
5875 static val_t once_value_15; /* Once value */
5876 static val_t once_value_16; /* Once value */
5877 static val_t once_value_17; /* Once value */
5878 static val_t once_value_18; /* Once value */
5879 static val_t once_value_19; /* Once value */
5880 static val_t once_value_20; /* Once value */
5881 static val_t once_value_21; /* Once value */
5882 static val_t once_value_22; /* Once value */
5883 static val_t once_value_23; /* Once value */
5884 static val_t once_value_25; /* Once value */
5885 static val_t once_value_26; /* Once value */
5886 static val_t once_value_27; /* Once value */
5887 static val_t once_value_28; /* Once value */
5888 static val_t once_value_29; /* Once value */
5889 static val_t once_value_30; /* Once value */
5890 static val_t once_value_31; /* Once value */
5891 static val_t once_value_32; /* Once value */
5892 static val_t once_value_33; /* Once value */
5893 static val_t once_value_34; /* Once value */
5894 static val_t once_value_36; /* Once value */
5895 static val_t once_value_37; /* Once value */
5896 static val_t once_value_38; /* Once value */
5897 static val_t once_value_39; /* Once value */
5898 static val_t once_value_40; /* Once value */
5899 static val_t once_value_41; /* Once value */
5900 static val_t once_value_42; /* Once value */
5901 static val_t once_value_43; /* Once value */
5902 static val_t once_value_44; /* Once value */
5903 static val_t once_value_45; /* Once value */
5904 static val_t once_value_46; /* Once value */
5905 static val_t once_value_47; /* Once value */
5906 static val_t once_value_48; /* Once value */
5907 static val_t once_value_49; /* Once value */
5908 static val_t once_value_50; /* Once value */
5909 static val_t once_value_51; /* Once value */
5910 static val_t once_value_52; /* Once value */
5911 static val_t once_value_53; /* Once value */
5912 static val_t once_value_54; /* Once value */
5913 static val_t once_value_55; /* Once value */
5914 static val_t once_value_56; /* Once value */
5915 static val_t once_value_57; /* Once value */
5916 static val_t once_value_58; /* Once value */
5917 static val_t once_value_59; /* Once value */
5918 static val_t once_value_60; /* Once value */
5919 static val_t once_value_61; /* Once value */
5920 static val_t once_value_62; /* Once value */
5921 static val_t once_value_64; /* Once value */
5922 static val_t once_value_65; /* Once value */
5923 static val_t once_value_66; /* Once value */
5924 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5925 fra.me.file = LOCATE_syntax___mmbuilder;
5926 fra.me.line = 916;
5927 fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___do_and_check_redef;
5928 fra.me.has_broke = 0;
5929 fra.me.REG_size = 14;
5930 fra.me.REG[0] = NIT_NULL;
5931 fra.me.REG[1] = NIT_NULL;
5932 fra.me.REG[2] = NIT_NULL;
5933 fra.me.REG[3] = NIT_NULL;
5934 fra.me.REG[4] = NIT_NULL;
5935 fra.me.REG[5] = NIT_NULL;
5936 fra.me.REG[6] = NIT_NULL;
5937 fra.me.REG[7] = NIT_NULL;
5938 fra.me.REG[8] = NIT_NULL;
5939 fra.me.REG[9] = NIT_NULL;
5940 fra.me.REG[10] = NIT_NULL;
5941 fra.me.REG[11] = NIT_NULL;
5942 fra.me.REG[12] = NIT_NULL;
5943 fra.me.REG[13] = NIT_NULL;
5944 fra.me.REG[0] = p0;
5945 fra.me.REG[1] = p1;
5946 fra.me.REG[2] = p2;
5947 REGB0 = p3;
5948 REGB1 = p4;
5949 /* ./syntax//mmbuilder.nit:919 */
5950 REGB2 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AInitPropdef, ID_parser___parser_nodes___AInitPropdef)) /*cast AInitPropdef*/;
5951 /* ./syntax//mmbuilder.nit:920 */
5952 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
5953 /* ./syntax//mmbuilder.nit:922 */
5954 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5955 if (UNTAG_Bool(REGB0)) {
5956 /* ./syntax//mmbuilder.nit:923 */
5957 REGB0 = TAG_Int(5);
5958 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5959 if (!once_value_1) {
5960 fra.me.REG[5] = BOX_NativeString("Redef error: ");
5961 REGB0 = TAG_Int(13);
5962 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
5963 once_value_1 = fra.me.REG[5];
5964 register_static_object(&once_value_1);
5965 } else fra.me.REG[5] = once_value_1;
5966 fra.me.REG[5] = fra.me.REG[5];
5967 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5968 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5969 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5970 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5971 if (!once_value_2) {
5972 fra.me.REG[5] = BOX_NativeString("::");
5973 REGB0 = TAG_Int(2);
5974 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
5975 once_value_2 = fra.me.REG[5];
5976 register_static_object(&once_value_2);
5977 } else fra.me.REG[5] = once_value_2;
5978 fra.me.REG[5] = fra.me.REG[5];
5979 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5980 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5981 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5982 if (!once_value_3) {
5983 fra.me.REG[5] = BOX_NativeString(" is an inherited property. To redefine it, add the redef keyword.");
5984 REGB0 = TAG_Int(65);
5985 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
5986 once_value_3 = fra.me.REG[5];
5987 register_static_object(&once_value_3);
5988 } else fra.me.REG[5] = once_value_3;
5989 fra.me.REG[5] = fra.me.REG[5];
5990 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5991 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
5992 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
5993 /* ./syntax//mmbuilder.nit:924 */
5994 goto label4;
5995 }
5996 /* ./syntax//mmbuilder.nit:926 */
5997 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
5998 if (UNTAG_Bool(REGB0)) {
5999 REGB0 = TAG_Bool(!UNTAG_Bool(REGB2));
6000 } else {
6001 REGB3 = TAG_Bool(false);
6002 REGB0 = REGB3;
6003 }
6004 if (UNTAG_Bool(REGB0)) {
6005 /* ./syntax//mmbuilder.nit:927 */
6006 REGB0 = TAG_Int(5);
6007 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
6008 if (!once_value_5) {
6009 fra.me.REG[5] = BOX_NativeString("Redef error: A method ");
6010 REGB0 = TAG_Int(22);
6011 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6012 once_value_5 = fra.me.REG[5];
6013 register_static_object(&once_value_5);
6014 } else fra.me.REG[5] = once_value_5;
6015 fra.me.REG[5] = fra.me.REG[5];
6016 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6017 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6018 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
6019 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6020 if (!once_value_6) {
6021 fra.me.REG[5] = BOX_NativeString("::");
6022 REGB0 = TAG_Int(2);
6023 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6024 once_value_6 = fra.me.REG[5];
6025 register_static_object(&once_value_6);
6026 } else fra.me.REG[5] = once_value_6;
6027 fra.me.REG[5] = fra.me.REG[5];
6028 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6029 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6030 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6031 if (!once_value_7) {
6032 fra.me.REG[5] = BOX_NativeString(" cannot redefine a constructor.");
6033 REGB0 = TAG_Int(31);
6034 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6035 once_value_7 = fra.me.REG[5];
6036 register_static_object(&once_value_7);
6037 } else fra.me.REG[5] = once_value_7;
6038 fra.me.REG[5] = fra.me.REG[5];
6039 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6040 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
6041 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
6042 } else {
6043 /* ./syntax//mmbuilder.nit:928 */
6044 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
6045 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6046 if (UNTAG_Bool(REGB0)) {
6047 } else {
6048 REGB0 = TAG_Bool(false);
6049 REGB2 = REGB0;
6050 }
6051 if (UNTAG_Bool(REGB2)) {
6052 /* ./syntax//mmbuilder.nit:929 */
6053 REGB2 = TAG_Int(5);
6054 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
6055 if (!once_value_8) {
6056 fra.me.REG[5] = BOX_NativeString("Redef error: A constructor ");
6057 REGB2 = TAG_Int(27);
6058 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
6059 once_value_8 = fra.me.REG[5];
6060 register_static_object(&once_value_8);
6061 } else fra.me.REG[5] = once_value_8;
6062 fra.me.REG[5] = fra.me.REG[5];
6063 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6064 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6065 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
6066 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6067 if (!once_value_9) {
6068 fra.me.REG[5] = BOX_NativeString("::");
6069 REGB2 = TAG_Int(2);
6070 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
6071 once_value_9 = fra.me.REG[5];
6072 register_static_object(&once_value_9);
6073 } else fra.me.REG[5] = once_value_9;
6074 fra.me.REG[5] = fra.me.REG[5];
6075 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6076 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6077 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6078 if (!once_value_10) {
6079 fra.me.REG[5] = BOX_NativeString(" cannot redefine a method.");
6080 REGB2 = TAG_Int(26);
6081 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
6082 once_value_10 = fra.me.REG[5];
6083 register_static_object(&once_value_10);
6084 } else fra.me.REG[5] = once_value_10;
6085 fra.me.REG[5] = fra.me.REG[5];
6086 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6087 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
6088 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
6089 }
6090 }
6091 /* ./syntax//mmbuilder.nit:932 */
6092 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
6093 /* ./syntax//mmbuilder.nit:934 */
6094 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[2])(fra.me.REG[2]);
6095 fra.me.REG[5] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[5])(fra.me.REG[5]);
6096 /* ./../lib/standard//collection//array.nit:234 */
6097 REGB2 = TAG_Int(0);
6098 /* ./../lib/standard//collection//array.nit:235 */
6099 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
6100 if (UNTAG_Bool(REGB0)) {
6101 } else {
6102 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
6103 }
6104 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
6105 /* ./../lib/standard//collection//array.nit:236 */
6106 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
6107 /* ./../lib/standard//collection//array.nit:237 */
6108 while(1) {
6109 /* ./../lib/standard//collection//array.nit:23 */
6110 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
6111 if (UNTAG_Bool(REGB0)) {
6112 } else {
6113 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
6114 }
6115 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
6116 /* ./../lib/standard//kernel.nit:215 */
6117 REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
6118 /* ./../lib/standard//collection//array.nit:237 */
6119 if (UNTAG_Bool(REGB0)) {
6120 /* ./../lib/standard//collection//array.nit:238 */
6121 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
6122 if (UNTAG_Bool(REGB0)) {
6123 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 238);
6124 }
6125 /* ./../lib/standard//collection//array.nit:654 */
6126 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB2)];
6127 /* ./syntax//mmbuilder.nit:935 */
6128 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[7])(fra.me.REG[7]);
6129 fra.me.REG[9] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
6130 fra.me.REG[9] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
6131 /* ./syntax//mmbuilder.nit:936 */
6132 fra.me.REG[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[7])(fra.me.REG[7]);
6133 /* ./syntax//mmbuilder.nit:937 */
6134 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6135 if (UNTAG_Bool(REGB0)) {
6136 } else {
6137 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6138 if (UNTAG_Bool(REGB3)) {
6139 REGB3 = TAG_Bool(false);
6140 REGB0 = REGB3;
6141 } else {
6142 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
6143 REGB0 = REGB3;
6144 }
6145 }
6146 if (UNTAG_Bool(REGB0)) {
6147 goto label11;
6148 }
6149 /* ./syntax//mmbuilder.nit:938 */
6150 fra.me.REG[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
6151 fra.me.REG[8] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[8])(fra.me.REG[8]);
6152 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6153 if (UNTAG_Bool(REGB0)) {
6154 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 938);
6155 }
6156 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___adaptation_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
6157 fra.me.REG[7] = fra.me.REG[8];
6158 /* ./syntax//mmbuilder.nit:940 */
6159 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6160 if (UNTAG_Bool(REGB0)) {
6161 } else {
6162 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6163 if (UNTAG_Bool(REGB3)) {
6164 REGB3 = TAG_Bool(false);
6165 REGB0 = REGB3;
6166 } else {
6167 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
6168 REGB0 = REGB3;
6169 }
6170 }
6171 if (UNTAG_Bool(REGB0)) {
6172 /* ./syntax//mmbuilder.nit:942 */
6173 fra.me.REG[8] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6174 fra.me.REG[8] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[8])(fra.me.REG[8]);
6175 /* ./../lib/standard//collection//array.nit:23 */
6176 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6177 if (UNTAG_Bool(REGB0)) {
6178 } else {
6179 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
6180 }
6181 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6182 /* ./syntax//mmbuilder.nit:942 */
6183 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6184 if (UNTAG_Bool(REGB3)) {
6185 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 942);
6186 }
6187 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
6188 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB3));
6189 if (UNTAG_Bool(REGB4)) {
6190 } else {
6191 /* ./../lib/standard//kernel.nit:210 */
6192 REGB3 = TAG_Bool((REGB0)==(REGB3));
6193 /* ./syntax//mmbuilder.nit:942 */
6194 REGB4 = REGB3;
6195 }
6196 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
6197 if (UNTAG_Bool(REGB4)) {
6198 /* ./syntax//mmbuilder.nit:943 */
6199 REGB4 = TAG_Int(11);
6200 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
6201 if (!once_value_12) {
6202 fra.me.REG[10] = BOX_NativeString("Redef error: ");
6203 REGB4 = TAG_Int(13);
6204 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6205 once_value_12 = fra.me.REG[10];
6206 register_static_object(&once_value_12);
6207 } else fra.me.REG[10] = once_value_12;
6208 fra.me.REG[10] = fra.me.REG[10];
6209 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6210 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6211 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6212 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6213 if (!once_value_13) {
6214 fra.me.REG[10] = BOX_NativeString("::");
6215 REGB4 = TAG_Int(2);
6216 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6217 once_value_13 = fra.me.REG[10];
6218 register_static_object(&once_value_13);
6219 } else fra.me.REG[10] = once_value_13;
6220 fra.me.REG[10] = fra.me.REG[10];
6221 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6222 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6223 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6224 if (!once_value_14) {
6225 fra.me.REG[10] = BOX_NativeString(" redefines ");
6226 REGB4 = TAG_Int(11);
6227 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6228 once_value_14 = fra.me.REG[10];
6229 register_static_object(&once_value_14);
6230 } else fra.me.REG[10] = once_value_14;
6231 fra.me.REG[10] = fra.me.REG[10];
6232 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6233 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6234 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6235 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6236 if (!once_value_15) {
6237 fra.me.REG[10] = BOX_NativeString("::");
6238 REGB4 = TAG_Int(2);
6239 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6240 once_value_15 = fra.me.REG[10];
6241 register_static_object(&once_value_15);
6242 } else fra.me.REG[10] = once_value_15;
6243 fra.me.REG[10] = fra.me.REG[10];
6244 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6245 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6246 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6247 if (!once_value_16) {
6248 fra.me.REG[10] = BOX_NativeString(" with ");
6249 REGB4 = TAG_Int(6);
6250 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6251 once_value_16 = fra.me.REG[10];
6252 register_static_object(&once_value_16);
6253 } else fra.me.REG[10] = once_value_16;
6254 fra.me.REG[10] = fra.me.REG[10];
6255 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6256 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6257 if (UNTAG_Bool(REGB4)) {
6258 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 943);
6259 }
6260 REGB4 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
6261 fra.me.REG[10] = CALL_standard___string___Object___to_s(REGB4)(REGB4);
6262 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6263 if (!once_value_17) {
6264 fra.me.REG[10] = BOX_NativeString(" parameter(s).");
6265 REGB4 = TAG_Int(14);
6266 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6267 once_value_17 = fra.me.REG[10];
6268 register_static_object(&once_value_17);
6269 } else fra.me.REG[10] = once_value_17;
6270 fra.me.REG[10] = fra.me.REG[10];
6271 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6272 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
6273 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]);
6274 /* ./syntax//mmbuilder.nit:944 */
6275 goto label4;
6276 }
6277 /* ./syntax//mmbuilder.nit:946 */
6278 fra.me.REG[8] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6279 fra.me.REG[8] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[8])(fra.me.REG[8]);
6280 /* ./../lib/standard//collection//array.nit:23 */
6281 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6282 if (UNTAG_Bool(REGB4)) {
6283 } else {
6284 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
6285 }
6286 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6287 /* ./syntax//mmbuilder.nit:946 */
6288 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6289 if (UNTAG_Bool(REGB3)) {
6290 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 946);
6291 }
6292 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[7])(fra.me.REG[7]);
6293 /* ./../lib/standard//collection//array.nit:23 */
6294 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6295 if (UNTAG_Bool(REGB3)) {
6296 } else {
6297 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
6298 }
6299 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6300 /* ./syntax//mmbuilder.nit:946 */
6301 REGB0 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB3));
6302 if (UNTAG_Bool(REGB0)) {
6303 } else {
6304 /* ./../lib/standard//kernel.nit:210 */
6305 REGB3 = TAG_Bool((REGB4)==(REGB3));
6306 /* ./syntax//mmbuilder.nit:946 */
6307 REGB0 = REGB3;
6308 }
6309 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6310 if (UNTAG_Bool(REGB0)) {
6311 /* ./syntax//mmbuilder.nit:947 */
6312 REGB0 = TAG_Int(11);
6313 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
6314 if (!once_value_18) {
6315 fra.me.REG[10] = BOX_NativeString("Redef error: ");
6316 REGB0 = TAG_Int(13);
6317 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6318 once_value_18 = fra.me.REG[10];
6319 register_static_object(&once_value_18);
6320 } else fra.me.REG[10] = once_value_18;
6321 fra.me.REG[10] = fra.me.REG[10];
6322 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6323 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6324 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6325 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6326 if (!once_value_19) {
6327 fra.me.REG[10] = BOX_NativeString("::");
6328 REGB0 = TAG_Int(2);
6329 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6330 once_value_19 = fra.me.REG[10];
6331 register_static_object(&once_value_19);
6332 } else fra.me.REG[10] = once_value_19;
6333 fra.me.REG[10] = fra.me.REG[10];
6334 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6335 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6336 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6337 if (!once_value_20) {
6338 fra.me.REG[10] = BOX_NativeString(" redefines ");
6339 REGB0 = TAG_Int(11);
6340 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6341 once_value_20 = fra.me.REG[10];
6342 register_static_object(&once_value_20);
6343 } else fra.me.REG[10] = once_value_20;
6344 fra.me.REG[10] = fra.me.REG[10];
6345 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6346 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6347 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6348 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6349 if (!once_value_21) {
6350 fra.me.REG[10] = BOX_NativeString("::");
6351 REGB0 = TAG_Int(2);
6352 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6353 once_value_21 = fra.me.REG[10];
6354 register_static_object(&once_value_21);
6355 } else fra.me.REG[10] = once_value_21;
6356 fra.me.REG[10] = fra.me.REG[10];
6357 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6358 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6359 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6360 if (!once_value_22) {
6361 fra.me.REG[10] = BOX_NativeString(" with ");
6362 REGB0 = TAG_Int(6);
6363 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6364 once_value_22 = fra.me.REG[10];
6365 register_static_object(&once_value_22);
6366 } else fra.me.REG[10] = once_value_22;
6367 fra.me.REG[10] = fra.me.REG[10];
6368 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6369 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6370 if (UNTAG_Bool(REGB0)) {
6371 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 947);
6372 }
6373 REGB0 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
6374 fra.me.REG[10] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
6375 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6376 if (!once_value_23) {
6377 fra.me.REG[10] = BOX_NativeString(" closure(s).");
6378 REGB0 = TAG_Int(12);
6379 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6380 once_value_23 = fra.me.REG[10];
6381 register_static_object(&once_value_23);
6382 } else fra.me.REG[10] = once_value_23;
6383 fra.me.REG[10] = fra.me.REG[10];
6384 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6385 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
6386 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]);
6387 /* ./syntax//mmbuilder.nit:948 */
6388 goto label4;
6389 }
6390 /* ./syntax//mmbuilder.nit:950 */
6391 fra.me.REG[8] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6392 fra.me.REG[8] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[8])(fra.me.REG[8]);
6393 /* ./../lib/standard//collection//array.nit:234 */
6394 REGB0 = TAG_Int(0);
6395 /* ./../lib/standard//collection//array.nit:235 */
6396 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6397 if (UNTAG_Bool(REGB3)) {
6398 } else {
6399 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
6400 }
6401 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6402 /* ./../lib/standard//collection//array.nit:236 */
6403 fra.me.REG[10] = ATTR_standard___collection___array___Array____items(fra.me.REG[8]);
6404 /* ./../lib/standard//collection//array.nit:237 */
6405 while(1) {
6406 /* ./../lib/standard//collection//array.nit:23 */
6407 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6408 if (UNTAG_Bool(REGB3)) {
6409 } else {
6410 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
6411 }
6412 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6413 /* ./../lib/standard//kernel.nit:215 */
6414 REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB3));
6415 /* ./../lib/standard//collection//array.nit:237 */
6416 if (UNTAG_Bool(REGB3)) {
6417 /* ./../lib/standard//collection//array.nit:238 */
6418 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6419 if (UNTAG_Bool(REGB3)) {
6420 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 238);
6421 }
6422 /* ./../lib/standard//collection//array.nit:654 */
6423 fra.me.REG[11] = ((Nit_NativeArray)fra.me.REG[10])->val[UNTAG_Int(REGB0)];
6424 /* ./syntax//mmbuilder.nit:951 */
6425 REGB3 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]);
6426 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6427 if (UNTAG_Bool(REGB4)) {
6428 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 951);
6429 }
6430 fra.me.REG[12] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB3);
6431 /* ./syntax//mmbuilder.nit:952 */
6432 CALL_syntax___mmbuilder___AParam___stype__eq(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
6433 /* ./syntax//mmbuilder.nit:953 */
6434 REGB3 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]);
6435 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6436 if (UNTAG_Bool(REGB4)) {
6437 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 953);
6438 }
6439 REGB4 = CALL_metamodel___vararg___MMSignature___vararg_rank(fra.me.REG[7])(fra.me.REG[7]);
6440 REGB5 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB4));
6441 if (UNTAG_Bool(REGB5)) {
6442 } else {
6443 /* ./../lib/standard//kernel.nit:210 */
6444 REGB4 = TAG_Bool((REGB3)==(REGB4));
6445 /* ./syntax//mmbuilder.nit:953 */
6446 REGB5 = REGB4;
6447 }
6448 if (UNTAG_Bool(REGB5)) {
6449 /* ./syntax//mmbuilder.nit:954 */
6450 fra.me.REG[13] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[12]);
6451 fra.me.REG[12] = fra.me.REG[13];
6452 }
6453 /* ./syntax//mmbuilder.nit:956 */
6454 fra.me.REG[11] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[11])(fra.me.REG[11]);
6455 CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
6456 /* ./../lib/standard//collection//array.nit:239 */
6457 REGB5 = TAG_Int(1);
6458 /* ./../lib/standard//kernel.nit:218 */
6459 REGB5 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB5));
6460 /* ./../lib/standard//collection//array.nit:239 */
6461 REGB0 = REGB5;
6462 } else {
6463 /* ./../lib/standard//collection//array.nit:237 */
6464 goto label24;
6465 }
6466 }
6467 label24: while(0);
6468 /* ./syntax//mmbuilder.nit:958 */
6469 fra.me.REG[4] = fra.me.REG[7];
6470 /* ./syntax//mmbuilder.nit:959 */
6471 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
6472 }
6473 /* ./syntax//mmbuilder.nit:963 */
6474 fra.me.REG[10] = CALL_syntax___syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
6475 REGB0 = CALL_mmloader___ToolContext___error_count(fra.me.REG[10])(fra.me.REG[10]);
6476 /* ./syntax//mmbuilder.nit:971 */
6477 REGB5 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6478 if (UNTAG_Bool(REGB5)) {
6479 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 971);
6480 }
6481 REGB5 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
6482 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6483 if (UNTAG_Bool(REGB4)) {
6484 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 971);
6485 }
6486 REGB4 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
6487 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB5,REGB4));
6488 if (UNTAG_Bool(REGB3)) {
6489 } else {
6490 /* ./../lib/standard//kernel.nit:210 */
6491 REGB4 = TAG_Bool((REGB5)==(REGB4));
6492 /* ./syntax//mmbuilder.nit:971 */
6493 REGB3 = REGB4;
6494 }
6495 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
6496 if (UNTAG_Bool(REGB3)) {
6497 /* ./syntax//mmbuilder.nit:972 */
6498 REGB3 = TAG_Int(11);
6499 fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
6500 if (!once_value_25) {
6501 fra.me.REG[8] = BOX_NativeString("Redef error: ");
6502 REGB3 = TAG_Int(13);
6503 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
6504 once_value_25 = fra.me.REG[8];
6505 register_static_object(&once_value_25);
6506 } else fra.me.REG[8] = once_value_25;
6507 fra.me.REG[8] = fra.me.REG[8];
6508 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6509 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6510 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
6511 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6512 if (!once_value_26) {
6513 fra.me.REG[8] = BOX_NativeString("::");
6514 REGB3 = TAG_Int(2);
6515 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
6516 once_value_26 = fra.me.REG[8];
6517 register_static_object(&once_value_26);
6518 } else fra.me.REG[8] = once_value_26;
6519 fra.me.REG[8] = fra.me.REG[8];
6520 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6521 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6522 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6523 if (!once_value_27) {
6524 fra.me.REG[8] = BOX_NativeString(" redefines ");
6525 REGB3 = TAG_Int(11);
6526 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
6527 once_value_27 = fra.me.REG[8];
6528 register_static_object(&once_value_27);
6529 } else fra.me.REG[8] = once_value_27;
6530 fra.me.REG[8] = fra.me.REG[8];
6531 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6532 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6533 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
6534 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6535 if (!once_value_28) {
6536 fra.me.REG[8] = BOX_NativeString("::");
6537 REGB3 = TAG_Int(2);
6538 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
6539 once_value_28 = fra.me.REG[8];
6540 register_static_object(&once_value_28);
6541 } else fra.me.REG[8] = once_value_28;
6542 fra.me.REG[8] = fra.me.REG[8];
6543 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6544 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6545 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6546 if (!once_value_29) {
6547 fra.me.REG[8] = BOX_NativeString(" with ");
6548 REGB3 = TAG_Int(6);
6549 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
6550 once_value_29 = fra.me.REG[8];
6551 register_static_object(&once_value_29);
6552 } else fra.me.REG[8] = once_value_29;
6553 fra.me.REG[8] = fra.me.REG[8];
6554 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6555 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6556 if (UNTAG_Bool(REGB3)) {
6557 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 972);
6558 }
6559 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
6560 fra.me.REG[8] = CALL_standard___string___Object___to_s(REGB3)(REGB3);
6561 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6562 if (!once_value_30) {
6563 fra.me.REG[8] = BOX_NativeString(" parameter(s).");
6564 REGB3 = TAG_Int(14);
6565 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
6566 once_value_30 = fra.me.REG[8];
6567 register_static_object(&once_value_30);
6568 } else fra.me.REG[8] = once_value_30;
6569 fra.me.REG[8] = fra.me.REG[8];
6570 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6571 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6572 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[10]);
6573 } else {
6574 /* ./syntax//mmbuilder.nit:973 */
6575 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6576 if (UNTAG_Bool(REGB3)) {
6577 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 973);
6578 }
6579 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
6580 REGB4 = TAG_Int(0);
6581 /* ./../lib/standard//kernel.nit:217 */
6582 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB4));
6583 /* ./syntax//mmbuilder.nit:973 */
6584 if (UNTAG_Bool(REGB4)) {
6585 /* ./syntax//mmbuilder.nit:974 */
6586 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AMethPropdef, ID_parser___parser_nodes___AMethPropdef)) /*cast AMethPropdef*/;
6587 if (UNTAG_Bool(REGB4)) {
6588 /* ./syntax//mmbuilder.nit:976 */
6589 REGB4 = TAG_Int(0);
6590 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6591 if (UNTAG_Bool(REGB3)) {
6592 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 976);
6593 }
6594 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
6595 /* ./../lib/standard//kernel.nit:335 */
6596 while(1) {
6597 /* ./../lib/standard//kernel.nit:215 */
6598 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB3));
6599 /* ./../lib/standard//kernel.nit:335 */
6600 if (UNTAG_Bool(REGB5)) {
6601 /* ./syntax//mmbuilder.nit:976 */
6602 REGB5 = REGB4;
6603 /* ./syntax//mmbuilder.nit:977 */
6604 REGB6 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6605 if (UNTAG_Bool(REGB6)) {
6606 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 977);
6607 }
6608 fra.me.REG[10] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[4])(fra.me.REG[4], REGB5);
6609 REGB6 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6610 if (UNTAG_Bool(REGB6)) {
6611 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 977);
6612 }
6613 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB5);
6614 REGB6 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[10],fra.me.REG[8]));
6615 if (UNTAG_Bool(REGB6)) {
6616 } else {
6617 REGB7 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6618 REGB6 = REGB7;
6619 }
6620 REGB6 = TAG_Bool(!UNTAG_Bool(REGB6));
6621 if (UNTAG_Bool(REGB6)) {
6622 /* ./syntax//mmbuilder.nit:978 */
6623 fra.me.REG[8] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[0])(fra.me.REG[0]);
6624 REGB6 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
6625 if (UNTAG_Bool(REGB6)) {
6626 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 978);
6627 }
6628 fra.me.REG[8] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[8])(fra.me.REG[8]);
6629 fra.me.REG[8] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[8])(fra.me.REG[8], REGB5);
6630 REGB6 = TAG_Int(7);
6631 fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB6);
6632 if (!once_value_31) {
6633 fra.me.REG[12] = BOX_NativeString("Redef error: Expected ");
6634 REGB6 = TAG_Int(22);
6635 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB6);
6636 once_value_31 = fra.me.REG[12];
6637 register_static_object(&once_value_31);
6638 } else fra.me.REG[12] = once_value_31;
6639 fra.me.REG[12] = fra.me.REG[12];
6640 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6641 REGB6 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6642 if (UNTAG_Bool(REGB6)) {
6643 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 978);
6644 }
6645 fra.me.REG[12] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB5);
6646 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
6647 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6648 if (!once_value_32) {
6649 fra.me.REG[12] = BOX_NativeString(", as in ");
6650 REGB5 = TAG_Int(8);
6651 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB5);
6652 once_value_32 = fra.me.REG[12];
6653 register_static_object(&once_value_32);
6654 } else fra.me.REG[12] = once_value_32;
6655 fra.me.REG[12] = fra.me.REG[12];
6656 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6657 fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6658 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
6659 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6660 if (!once_value_33) {
6661 fra.me.REG[12] = BOX_NativeString("::");
6662 REGB5 = TAG_Int(2);
6663 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB5);
6664 once_value_33 = fra.me.REG[12];
6665 register_static_object(&once_value_33);
6666 } else fra.me.REG[12] = once_value_33;
6667 fra.me.REG[12] = fra.me.REG[12];
6668 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6669 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6670 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6671 if (!once_value_34) {
6672 fra.me.REG[12] = BOX_NativeString(".");
6673 REGB5 = TAG_Int(1);
6674 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB5);
6675 once_value_34 = fra.me.REG[12];
6676 register_static_object(&once_value_34);
6677 } else fra.me.REG[12] = once_value_34;
6678 fra.me.REG[12] = fra.me.REG[12];
6679 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6680 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6681 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8], fra.me.REG[10]);
6682 }
6683 /* ./../lib/standard//kernel.nit:337 */
6684 REGB5 = TAG_Int(1);
6685 /* ./../lib/standard//kernel.nit:218 */
6686 REGB5 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB5));
6687 /* ./../lib/standard//kernel.nit:337 */
6688 REGB4 = REGB5;
6689 } else {
6690 /* ./../lib/standard//kernel.nit:335 */
6691 goto label35;
6692 }
6693 }
6694 label35: while(0);
6695 } else {
6696 /* ./syntax//mmbuilder.nit:981 */
6697 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AAttrPropdef, ID_parser___parser_nodes___AAttrPropdef)) /*cast AAttrPropdef*/;
6698 if (UNTAG_Bool(REGB4)) {
6699 /* ./syntax//mmbuilder.nit:983 */
6700 REGB4 = TAG_Int(0);
6701 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6702 if (UNTAG_Bool(REGB3)) {
6703 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 983);
6704 }
6705 fra.me.REG[10] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[4])(fra.me.REG[4], REGB4);
6706 REGB4 = TAG_Int(0);
6707 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6708 if (UNTAG_Bool(REGB3)) {
6709 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 983);
6710 }
6711 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB4);
6712 REGB4 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[10],fra.me.REG[8]));
6713 if (UNTAG_Bool(REGB4)) {
6714 } else {
6715 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6716 REGB4 = REGB3;
6717 }
6718 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
6719 if (UNTAG_Bool(REGB4)) {
6720 /* ./syntax//mmbuilder.nit:984 */
6721 fra.me.REG[8] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[0])(fra.me.REG[0]);
6722 REGB4 = TAG_Int(7);
6723 fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
6724 if (!once_value_36) {
6725 fra.me.REG[12] = BOX_NativeString("Redef error: Expected ");
6726 REGB4 = TAG_Int(22);
6727 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
6728 once_value_36 = fra.me.REG[12];
6729 register_static_object(&once_value_36);
6730 } else fra.me.REG[12] = once_value_36;
6731 fra.me.REG[12] = fra.me.REG[12];
6732 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6733 REGB4 = TAG_Int(0);
6734 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6735 if (UNTAG_Bool(REGB3)) {
6736 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 984);
6737 }
6738 fra.me.REG[12] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB4);
6739 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
6740 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6741 if (!once_value_37) {
6742 fra.me.REG[12] = BOX_NativeString(", as in the parameter of ");
6743 REGB4 = TAG_Int(25);
6744 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
6745 once_value_37 = fra.me.REG[12];
6746 register_static_object(&once_value_37);
6747 } else fra.me.REG[12] = once_value_37;
6748 fra.me.REG[12] = fra.me.REG[12];
6749 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6750 fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6751 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
6752 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6753 if (!once_value_38) {
6754 fra.me.REG[12] = BOX_NativeString("::");
6755 REGB4 = TAG_Int(2);
6756 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
6757 once_value_38 = fra.me.REG[12];
6758 register_static_object(&once_value_38);
6759 } else fra.me.REG[12] = once_value_38;
6760 fra.me.REG[12] = fra.me.REG[12];
6761 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6762 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6763 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6764 if (!once_value_39) {
6765 fra.me.REG[12] = BOX_NativeString(".");
6766 REGB4 = TAG_Int(1);
6767 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
6768 once_value_39 = fra.me.REG[12];
6769 register_static_object(&once_value_39);
6770 } else fra.me.REG[12] = once_value_39;
6771 fra.me.REG[12] = fra.me.REG[12];
6772 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6773 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6774 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8], fra.me.REG[10]);
6775 }
6776 } else {
6777 /* ./syntax//mmbuilder.nit:988 */
6778 nit_abort("Aborted", NULL, LOCATE_syntax___mmbuilder, 988);
6779 }
6780 }
6781 }
6782 }
6783 /* ./syntax//mmbuilder.nit:992 */
6784 REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6785 if (UNTAG_Bool(REGB4)) {
6786 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 992);
6787 }
6788 fra.me.REG[10] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[4])(fra.me.REG[4]);
6789 /* ./syntax//mmbuilder.nit:993 */
6790 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6791 if (UNTAG_Bool(REGB4)) {
6792 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 993);
6793 }
6794 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[7])(fra.me.REG[7]);
6795 /* ./syntax//mmbuilder.nit:994 */
6796 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6797 if (UNTAG_Bool(REGB4)) {
6798 } else {
6799 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6800 if (UNTAG_Bool(REGB3)) {
6801 REGB3 = TAG_Bool(false);
6802 REGB4 = REGB3;
6803 } else {
6804 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
6805 REGB4 = REGB3;
6806 }
6807 }
6808 if (UNTAG_Bool(REGB4)) {
6809 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
6810 if (UNTAG_Bool(REGB4)) {
6811 } else {
6812 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
6813 if (UNTAG_Bool(REGB3)) {
6814 REGB3 = TAG_Bool(false);
6815 REGB4 = REGB3;
6816 } else {
6817 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
6818 REGB4 = REGB3;
6819 }
6820 }
6821 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
6822 } else {
6823 REGB3 = TAG_Bool(false);
6824 REGB4 = REGB3;
6825 }
6826 if (UNTAG_Bool(REGB4)) {
6827 /* ./syntax//mmbuilder.nit:995 */
6828 REGB4 = TAG_Int(9);
6829 fra.me.REG[12] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
6830 if (!once_value_40) {
6831 fra.me.REG[11] = BOX_NativeString("Redef error: The procedure ");
6832 REGB4 = TAG_Int(27);
6833 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
6834 once_value_40 = fra.me.REG[11];
6835 register_static_object(&once_value_40);
6836 } else fra.me.REG[11] = once_value_40;
6837 fra.me.REG[11] = fra.me.REG[11];
6838 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6839 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6840 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
6841 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6842 if (!once_value_41) {
6843 fra.me.REG[11] = BOX_NativeString("::");
6844 REGB4 = TAG_Int(2);
6845 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
6846 once_value_41 = fra.me.REG[11];
6847 register_static_object(&once_value_41);
6848 } else fra.me.REG[11] = once_value_41;
6849 fra.me.REG[11] = fra.me.REG[11];
6850 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6851 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6852 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6853 if (!once_value_42) {
6854 fra.me.REG[11] = BOX_NativeString(" redefines the function ");
6855 REGB4 = TAG_Int(24);
6856 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
6857 once_value_42 = fra.me.REG[11];
6858 register_static_object(&once_value_42);
6859 } else fra.me.REG[11] = once_value_42;
6860 fra.me.REG[11] = fra.me.REG[11];
6861 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6862 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6863 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
6864 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6865 if (!once_value_43) {
6866 fra.me.REG[11] = BOX_NativeString("::");
6867 REGB4 = TAG_Int(2);
6868 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
6869 once_value_43 = fra.me.REG[11];
6870 register_static_object(&once_value_43);
6871 } else fra.me.REG[11] = once_value_43;
6872 fra.me.REG[11] = fra.me.REG[11];
6873 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6874 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6875 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6876 if (!once_value_44) {
6877 fra.me.REG[11] = BOX_NativeString(".");
6878 REGB4 = TAG_Int(1);
6879 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
6880 once_value_44 = fra.me.REG[11];
6881 register_static_object(&once_value_44);
6882 } else fra.me.REG[11] = once_value_44;
6883 fra.me.REG[11] = fra.me.REG[11];
6884 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6885 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
6886 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[12]);
6887 } else {
6888 /* ./syntax//mmbuilder.nit:996 */
6889 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6890 if (UNTAG_Bool(REGB4)) {
6891 } else {
6892 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6893 if (UNTAG_Bool(REGB3)) {
6894 REGB3 = TAG_Bool(false);
6895 REGB4 = REGB3;
6896 } else {
6897 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
6898 REGB4 = REGB3;
6899 }
6900 }
6901 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
6902 if (UNTAG_Bool(REGB4)) {
6903 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
6904 if (UNTAG_Bool(REGB4)) {
6905 } else {
6906 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
6907 if (UNTAG_Bool(REGB3)) {
6908 REGB3 = TAG_Bool(false);
6909 REGB4 = REGB3;
6910 } else {
6911 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
6912 REGB4 = REGB3;
6913 }
6914 }
6915 } else {
6916 REGB3 = TAG_Bool(false);
6917 REGB4 = REGB3;
6918 }
6919 if (UNTAG_Bool(REGB4)) {
6920 /* ./syntax//mmbuilder.nit:997 */
6921 REGB4 = TAG_Int(9);
6922 fra.me.REG[12] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
6923 if (!once_value_45) {
6924 fra.me.REG[11] = BOX_NativeString("Redef error: The function ");
6925 REGB4 = TAG_Int(26);
6926 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
6927 once_value_45 = fra.me.REG[11];
6928 register_static_object(&once_value_45);
6929 } else fra.me.REG[11] = once_value_45;
6930 fra.me.REG[11] = fra.me.REG[11];
6931 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6932 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6933 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
6934 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6935 if (!once_value_46) {
6936 fra.me.REG[11] = BOX_NativeString("::");
6937 REGB4 = TAG_Int(2);
6938 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
6939 once_value_46 = fra.me.REG[11];
6940 register_static_object(&once_value_46);
6941 } else fra.me.REG[11] = once_value_46;
6942 fra.me.REG[11] = fra.me.REG[11];
6943 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6944 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6945 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6946 if (!once_value_47) {
6947 fra.me.REG[11] = BOX_NativeString(" redefines the procedure ");
6948 REGB4 = TAG_Int(25);
6949 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
6950 once_value_47 = fra.me.REG[11];
6951 register_static_object(&once_value_47);
6952 } else fra.me.REG[11] = once_value_47;
6953 fra.me.REG[11] = fra.me.REG[11];
6954 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6955 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6956 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
6957 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6958 if (!once_value_48) {
6959 fra.me.REG[11] = BOX_NativeString("::");
6960 REGB4 = TAG_Int(2);
6961 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
6962 once_value_48 = fra.me.REG[11];
6963 register_static_object(&once_value_48);
6964 } else fra.me.REG[11] = once_value_48;
6965 fra.me.REG[11] = fra.me.REG[11];
6966 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6967 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6968 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6969 if (!once_value_49) {
6970 fra.me.REG[11] = BOX_NativeString(".");
6971 REGB4 = TAG_Int(1);
6972 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
6973 once_value_49 = fra.me.REG[11];
6974 register_static_object(&once_value_49);
6975 } else fra.me.REG[11] = once_value_49;
6976 fra.me.REG[11] = fra.me.REG[11];
6977 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6978 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
6979 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[12]);
6980 } else {
6981 /* ./syntax//mmbuilder.nit:998 */
6982 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6983 if (UNTAG_Bool(REGB4)) {
6984 } else {
6985 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6986 if (UNTAG_Bool(REGB3)) {
6987 REGB3 = TAG_Bool(false);
6988 REGB4 = REGB3;
6989 } else {
6990 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
6991 REGB4 = REGB3;
6992 }
6993 }
6994 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
6995 if (UNTAG_Bool(REGB4)) {
6996 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
6997 if (UNTAG_Bool(REGB4)) {
6998 } else {
6999 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7000 if (UNTAG_Bool(REGB3)) {
7001 REGB3 = TAG_Bool(false);
7002 REGB4 = REGB3;
7003 } else {
7004 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
7005 REGB4 = REGB3;
7006 }
7007 }
7008 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7009 } else {
7010 REGB3 = TAG_Bool(false);
7011 REGB4 = REGB3;
7012 }
7013 if (UNTAG_Bool(REGB4)) {
7014 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7015 if (UNTAG_Bool(REGB4)) {
7016 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 998);
7017 }
7018 REGB4 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7019 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7020 } else {
7021 REGB3 = TAG_Bool(false);
7022 REGB4 = REGB3;
7023 }
7024 if (UNTAG_Bool(REGB4)) {
7025 /* ./syntax//mmbuilder.nit:999 */
7026 fra.me.REG[12] = NIT_NULL;
7027 /* ./syntax//mmbuilder.nit:1000 */
7028 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AMethPropdef, ID_parser___parser_nodes___AMethPropdef)) /*cast AMethPropdef*/;
7029 if (UNTAG_Bool(REGB4)) {
7030 /* ./syntax//mmbuilder.nit:1001 */
7031 fra.me.REG[11] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[0])(fra.me.REG[0]);
7032 REGB4 = TAG_Bool(fra.me.REG[11]==NIT_NULL);
7033 if (UNTAG_Bool(REGB4)) {
7034 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1001);
7035 }
7036 fra.me.REG[11] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[11])(fra.me.REG[11]);
7037 fra.me.REG[12] = fra.me.REG[11];
7038 } else {
7039 /* ./syntax//mmbuilder.nit:1002 */
7040 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AAttrPropdef, ID_parser___parser_nodes___AAttrPropdef)) /*cast AAttrPropdef*/;
7041 if (UNTAG_Bool(REGB4)) {
7042 /* ./syntax//mmbuilder.nit:1003 */
7043 fra.me.REG[11] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[0])(fra.me.REG[0]);
7044 fra.me.REG[12] = fra.me.REG[11];
7045 } else {
7046 /* ./syntax//mmbuilder.nit:1004 */
7047 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___ATypePropdef, ID_parser___parser_nodes___ATypePropdef)) /*cast ATypePropdef*/;
7048 if (UNTAG_Bool(REGB4)) {
7049 /* ./syntax//mmbuilder.nit:1005 */
7050 fra.me.REG[11] = CALL_parser___parser_nodes___ATypePropdef___n_type(fra.me.REG[0])(fra.me.REG[0]);
7051 fra.me.REG[12] = fra.me.REG[11];
7052 }
7053 }
7054 }
7055 /* ./syntax//mmbuilder.nit:1007 */
7056 REGB4 = TAG_Int(7);
7057 fra.me.REG[11] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
7058 if (!once_value_50) {
7059 fra.me.REG[13] = BOX_NativeString("Redef error: Expected ");
7060 REGB4 = TAG_Int(22);
7061 fra.me.REG[13] = NEW_String_standard___string___String___with_native(fra.me.REG[13], REGB4);
7062 once_value_50 = fra.me.REG[13];
7063 register_static_object(&once_value_50);
7064 } else fra.me.REG[13] = once_value_50;
7065 fra.me.REG[13] = fra.me.REG[13];
7066 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[13]);
7067 fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
7068 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[13]);
7069 if (!once_value_51) {
7070 fra.me.REG[13] = BOX_NativeString(", as in ");
7071 REGB4 = TAG_Int(8);
7072 fra.me.REG[13] = NEW_String_standard___string___String___with_native(fra.me.REG[13], REGB4);
7073 once_value_51 = fra.me.REG[13];
7074 register_static_object(&once_value_51);
7075 } else fra.me.REG[13] = once_value_51;
7076 fra.me.REG[13] = fra.me.REG[13];
7077 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[13]);
7078 fra.me.REG[13] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7079 fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[13])(fra.me.REG[13]);
7080 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[13]);
7081 if (!once_value_52) {
7082 fra.me.REG[13] = BOX_NativeString("::");
7083 REGB4 = TAG_Int(2);
7084 fra.me.REG[13] = NEW_String_standard___string___String___with_native(fra.me.REG[13], REGB4);
7085 once_value_52 = fra.me.REG[13];
7086 register_static_object(&once_value_52);
7087 } else fra.me.REG[13] = once_value_52;
7088 fra.me.REG[13] = fra.me.REG[13];
7089 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[13]);
7090 fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7091 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[13]);
7092 if (!once_value_53) {
7093 fra.me.REG[13] = BOX_NativeString(".");
7094 REGB4 = TAG_Int(1);
7095 fra.me.REG[13] = NEW_String_standard___string___String___with_native(fra.me.REG[13], REGB4);
7096 once_value_53 = fra.me.REG[13];
7097 register_static_object(&once_value_53);
7098 } else fra.me.REG[13] = once_value_53;
7099 fra.me.REG[13] = fra.me.REG[13];
7100 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[13]);
7101 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7102 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[12], fra.me.REG[11]);
7103 } else {
7104 /* ./syntax//mmbuilder.nit:1008 */
7105 REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7106 if (UNTAG_Bool(REGB4)) {
7107 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1008);
7108 }
7109 REGB4 = CALL_metamodel___static_type___MMSignature_____l(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
7110 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7111 if (UNTAG_Bool(REGB4)) {
7112 fra.me.REG[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
7113 REGB4 = CALL_mmloader___ToolContext___error_count(fra.me.REG[7])(fra.me.REG[7]);
7114 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB4));
7115 if (UNTAG_Bool(REGB3)) {
7116 } else {
7117 /* ./../lib/standard//kernel.nit:210 */
7118 REGB4 = TAG_Bool((REGB0)==(REGB4));
7119 /* ./syntax//mmbuilder.nit:1008 */
7120 REGB3 = REGB4;
7121 }
7122 } else {
7123 REGB4 = TAG_Bool(false);
7124 REGB3 = REGB4;
7125 }
7126 if (UNTAG_Bool(REGB3)) {
7127 /* ./syntax//mmbuilder.nit:1010 */
7128 REGB3 = TAG_Int(9);
7129 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
7130 if (!once_value_54) {
7131 fra.me.REG[11] = BOX_NativeString("Redef error: Incompatible redefinition of ");
7132 REGB3 = TAG_Int(42);
7133 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB3);
7134 once_value_54 = fra.me.REG[11];
7135 register_static_object(&once_value_54);
7136 } else fra.me.REG[11] = once_value_54;
7137 fra.me.REG[11] = fra.me.REG[11];
7138 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7139 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7140 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7141 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7142 if (!once_value_55) {
7143 fra.me.REG[11] = BOX_NativeString("::");
7144 REGB3 = TAG_Int(2);
7145 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB3);
7146 once_value_55 = fra.me.REG[11];
7147 register_static_object(&once_value_55);
7148 } else fra.me.REG[11] = once_value_55;
7149 fra.me.REG[11] = fra.me.REG[11];
7150 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7151 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7152 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7153 if (!once_value_56) {
7154 fra.me.REG[11] = BOX_NativeString(" with ");
7155 REGB3 = TAG_Int(6);
7156 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB3);
7157 once_value_56 = fra.me.REG[11];
7158 register_static_object(&once_value_56);
7159 } else fra.me.REG[11] = once_value_56;
7160 fra.me.REG[11] = fra.me.REG[11];
7161 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7162 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
7163 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7164 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7165 if (!once_value_57) {
7166 fra.me.REG[11] = BOX_NativeString("::");
7167 REGB3 = TAG_Int(2);
7168 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB3);
7169 once_value_57 = fra.me.REG[11];
7170 register_static_object(&once_value_57);
7171 } else fra.me.REG[11] = once_value_57;
7172 fra.me.REG[11] = fra.me.REG[11];
7173 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7174 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
7175 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7176 if (!once_value_58) {
7177 fra.me.REG[11] = BOX_NativeString("");
7178 REGB3 = TAG_Int(0);
7179 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB3);
7180 once_value_58 = fra.me.REG[11];
7181 register_static_object(&once_value_58);
7182 } else fra.me.REG[11] = once_value_58;
7183 fra.me.REG[11] = fra.me.REG[11];
7184 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7185 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
7186 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[7]);
7187 } else {
7188 /* ./syntax//mmbuilder.nit:1011 */
7189 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7190 if (UNTAG_Bool(REGB3)) {
7191 } else {
7192 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7193 if (UNTAG_Bool(REGB4)) {
7194 REGB4 = TAG_Bool(false);
7195 REGB3 = REGB4;
7196 } else {
7197 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
7198 REGB3 = REGB4;
7199 }
7200 }
7201 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7202 if (UNTAG_Bool(REGB3)) {
7203 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7204 if (UNTAG_Bool(REGB3)) {
7205 } else {
7206 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7207 if (UNTAG_Bool(REGB4)) {
7208 REGB4 = TAG_Bool(false);
7209 REGB3 = REGB4;
7210 } else {
7211 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
7212 REGB3 = REGB4;
7213 }
7214 }
7215 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7216 } else {
7217 REGB4 = TAG_Bool(false);
7218 REGB3 = REGB4;
7219 }
7220 if (UNTAG_Bool(REGB3)) {
7221 REGB3 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[10],fra.me.REG[8]));
7222 if (UNTAG_Bool(REGB3)) {
7223 } else {
7224 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7225 if (UNTAG_Bool(REGB4)) {
7226 REGB4 = TAG_Bool(false);
7227 REGB3 = REGB4;
7228 } else {
7229 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7230 REGB3 = REGB4;
7231 }
7232 }
7233 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7234 } else {
7235 REGB4 = TAG_Bool(false);
7236 REGB3 = REGB4;
7237 }
7238 if (UNTAG_Bool(REGB3)) {
7239 REGB3 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_metamodel___abstractmetamodel___MMAttribute, ID_metamodel___abstractmetamodel___MMAttribute)) /*cast MMAttribute*/;
7240 } else {
7241 REGB4 = TAG_Bool(false);
7242 REGB3 = REGB4;
7243 }
7244 if (UNTAG_Bool(REGB3)) {
7245 /* ./syntax//mmbuilder.nit:1013 */
7246 REGB3 = TAG_Int(7);
7247 fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
7248 if (!once_value_59) {
7249 fra.me.REG[7] = BOX_NativeString("Redef warning: Expected ");
7250 REGB3 = TAG_Int(24);
7251 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB3);
7252 once_value_59 = fra.me.REG[7];
7253 register_static_object(&once_value_59);
7254 } else fra.me.REG[7] = once_value_59;
7255 fra.me.REG[7] = fra.me.REG[7];
7256 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
7257 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
7258 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7259 if (!once_value_60) {
7260 fra.me.REG[8] = BOX_NativeString(", as in ");
7261 REGB3 = TAG_Int(8);
7262 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
7263 once_value_60 = fra.me.REG[8];
7264 register_static_object(&once_value_60);
7265 } else fra.me.REG[8] = once_value_60;
7266 fra.me.REG[8] = fra.me.REG[8];
7267 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7268 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7269 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
7270 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7271 if (!once_value_61) {
7272 fra.me.REG[8] = BOX_NativeString("::");
7273 REGB3 = TAG_Int(2);
7274 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
7275 once_value_61 = fra.me.REG[8];
7276 register_static_object(&once_value_61);
7277 } else fra.me.REG[8] = once_value_61;
7278 fra.me.REG[8] = fra.me.REG[8];
7279 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7280 fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7281 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[9]);
7282 if (!once_value_62) {
7283 fra.me.REG[9] = BOX_NativeString(".");
7284 REGB3 = TAG_Int(1);
7285 fra.me.REG[9] = NEW_String_standard___string___String___with_native(fra.me.REG[9], REGB3);
7286 once_value_62 = fra.me.REG[9];
7287 register_static_object(&once_value_62);
7288 } else fra.me.REG[9] = once_value_62;
7289 fra.me.REG[9] = fra.me.REG[9];
7290 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[9]);
7291 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
7292 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[10]);
7293 }
7294 }
7295 }
7296 }
7297 }
7298 /* ./../lib/standard//collection//array.nit:239 */
7299 REGB3 = TAG_Int(1);
7300 /* ./../lib/standard//kernel.nit:218 */
7301 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
7302 /* ./../lib/standard//collection//array.nit:239 */
7303 REGB2 = REGB3;
7304 } else {
7305 /* ./../lib/standard//collection//array.nit:237 */
7306 goto label63;
7307 }
7308 }
7309 label63: while(0);
7310 label11: while(0);
7311 /* ./syntax//mmbuilder.nit:1017 */
7312 REGB2 = TAG_Int(1);
7313 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
7314 if (UNTAG_Bool(REGB3)) {
7315 } else {
7316 /* ./../lib/standard//kernel.nit:210 */
7317 REGB2 = TAG_Bool((REGB1)==(REGB2));
7318 /* ./syntax//mmbuilder.nit:1017 */
7319 REGB3 = REGB2;
7320 }
7321 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7322 if (UNTAG_Bool(REGB3)) {
7323 REGB3 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
7324 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB1));
7325 if (UNTAG_Bool(REGB2)) {
7326 } else {
7327 /* ./../lib/standard//kernel.nit:210 */
7328 REGB1 = TAG_Bool((REGB3)==(REGB1));
7329 /* ./syntax//mmbuilder.nit:1017 */
7330 REGB2 = REGB1;
7331 }
7332 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
7333 } else {
7334 REGB1 = TAG_Bool(false);
7335 REGB2 = REGB1;
7336 }
7337 if (UNTAG_Bool(REGB2)) {
7338 /* ./syntax//mmbuilder.nit:1018 */
7339 REGB2 = TAG_Int(5);
7340 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
7341 if (!once_value_64) {
7342 fra.me.REG[6] = BOX_NativeString("Redef error: ");
7343 REGB2 = TAG_Int(13);
7344 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
7345 once_value_64 = fra.me.REG[6];
7346 register_static_object(&once_value_64);
7347 } else fra.me.REG[6] = once_value_64;
7348 fra.me.REG[6] = fra.me.REG[6];
7349 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
7350 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
7351 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7352 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
7353 if (!once_value_65) {
7354 fra.me.REG[6] = BOX_NativeString("::");
7355 REGB2 = TAG_Int(2);
7356 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
7357 once_value_65 = fra.me.REG[6];
7358 register_static_object(&once_value_65);
7359 } else fra.me.REG[6] = once_value_65;
7360 fra.me.REG[6] = fra.me.REG[6];
7361 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
7362 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
7363 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
7364 if (!once_value_66) {
7365 fra.me.REG[2] = BOX_NativeString(" redefinition cannot change visibility.");
7366 REGB2 = TAG_Int(39);
7367 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB2);
7368 once_value_66 = fra.me.REG[2];
7369 register_static_object(&once_value_66);
7370 } else fra.me.REG[2] = once_value_66;
7371 fra.me.REG[2] = fra.me.REG[2];
7372 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
7373 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
7374 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
7375 }
7376 /* ./syntax//mmbuilder.nit:1020 */
7377 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
7378 REGB2 = TAG_Bool(true);
7379 CALL_syntax___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);
7380 label4: while(0);
7381 stack_frame_head = fra.me.prev;
7382 return;
7383 }
7384 val_t syntax___mmbuilder___AAttrPropdef___readmethod(val_t p0){
7385 struct {struct stack_frame_t me;} fra;
7386 val_t tmp;
7387 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7388 fra.me.file = LOCATE_syntax___mmbuilder;
7389 fra.me.line = 1025;
7390 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___readmethod;
7391 fra.me.has_broke = 0;
7392 fra.me.REG_size = 1;
7393 fra.me.REG[0] = NIT_NULL;
7394 fra.me.REG[0] = p0;
7395 /* ./syntax//mmbuilder.nit:1025 */
7396 fra.me.REG[0] = ATTR_syntax___mmbuilder___AAttrPropdef____readmethod(fra.me.REG[0]);
7397 stack_frame_head = fra.me.prev;
7398 return fra.me.REG[0];
7399 }
7400 val_t syntax___mmbuilder___AAttrPropdef___writemethod(val_t p0){
7401 struct {struct stack_frame_t me;} fra;
7402 val_t tmp;
7403 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7404 fra.me.file = LOCATE_syntax___mmbuilder;
7405 fra.me.line = 1026;
7406 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___writemethod;
7407 fra.me.has_broke = 0;
7408 fra.me.REG_size = 1;
7409 fra.me.REG[0] = NIT_NULL;
7410 fra.me.REG[0] = p0;
7411 /* ./syntax//mmbuilder.nit:1026 */
7412 fra.me.REG[0] = ATTR_syntax___mmbuilder___AAttrPropdef____writemethod(fra.me.REG[0]);
7413 stack_frame_head = fra.me.prev;
7414 return fra.me.REG[0];
7415 }
7416 val_t syntax___mmbuilder___AAttrPropdef___prop(val_t p0){
7417 struct {struct stack_frame_t me;} fra;
7418 val_t REGB0;
7419 val_t tmp;
7420 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7421 fra.me.file = LOCATE_syntax___mmbuilder;
7422 fra.me.line = 1028;
7423 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___prop;
7424 fra.me.has_broke = 0;
7425 fra.me.REG_size = 1;
7426 fra.me.REG[0] = NIT_NULL;
7427 fra.me.REG[0] = p0;
7428 /* ./syntax//mmbuilder.nit:1028 */
7429 fra.me.REG[0] = ATTR_syntax___mmbuilder___AAttrPropdef____prop(fra.me.REG[0]);
7430 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
7431 if (UNTAG_Bool(REGB0)) {
7432 } else {
7433 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1028);
7434 }
7435 goto label1;
7436 label1: while(0);
7437 stack_frame_head = fra.me.prev;
7438 return fra.me.REG[0];
7439 }
7440 void syntax___mmbuilder___AAttrPropdef___accept_property_builder(val_t p0, val_t p1){
7441 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
7442 val_t REGB0;
7443 val_t REGB1;
7444 val_t REGB2;
7445 val_t tmp;
7446 static val_t once_value_1; /* Once value */
7447 static val_t once_value_2; /* Once value */
7448 static val_t once_value_3; /* Once value */
7449 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7450 fra.me.file = LOCATE_syntax___mmbuilder;
7451 fra.me.line = 1030;
7452 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___accept_property_builder;
7453 fra.me.has_broke = 0;
7454 fra.me.REG_size = 6;
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[4] = NIT_NULL;
7460 fra.me.REG[5] = NIT_NULL;
7461 fra.me.REG[0] = p0;
7462 fra.me.REG[1] = p1;
7463 /* ./syntax//mmbuilder.nit:1030 */
7464 fra.me.REG[2] = fra.me.REG[0];
7465 fra.me.REG[3] = fra.me.REG[1];
7466 /* ./syntax//mmbuilder.nit:1032 */
7467 CALL_SUPER_syntax___mmbuilder___AAttrPropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
7468 /* ./syntax//mmbuilder.nit:1034 */
7469 fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7470 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7471 if (UNTAG_Bool(REGB0)) {
7472 } else {
7473 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7474 if (UNTAG_Bool(REGB1)) {
7475 REGB1 = TAG_Bool(false);
7476 REGB0 = REGB1;
7477 } else {
7478 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7479 REGB0 = REGB1;
7480 }
7481 }
7482 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7483 if (UNTAG_Bool(REGB0)) {
7484 /* ./syntax//mmbuilder.nit:1035 */
7485 fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7486 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7487 if (UNTAG_Bool(REGB0)) {
7488 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1035);
7489 }
7490 fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
7491 } else {
7492 /* ./syntax//mmbuilder.nit:1037 */
7493 if (!once_value_1) {
7494 fra.me.REG[0] = BOX_NativeString("@");
7495 REGB0 = TAG_Int(1);
7496 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
7497 once_value_1 = fra.me.REG[0];
7498 register_static_object(&once_value_1);
7499 } else fra.me.REG[0] = once_value_1;
7500 fra.me.REG[0] = fra.me.REG[0];
7501 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
7502 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7503 if (UNTAG_Bool(REGB0)) {
7504 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1037);
7505 }
7506 fra.me.REG[4] = CALL_parser___lexer___Token___text(fra.me.REG[4])(fra.me.REG[4]);
7507 fra.me.REG[4] = CALL_standard___string___String_____plus(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
7508 fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
7509 fra.me.REG[1] = fra.me.REG[4];
7510 }
7511 /* ./syntax//mmbuilder.nit:1039 */
7512 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
7513 /* ./syntax//mmbuilder.nit:1040 */
7514 fra.me.REG[0] = NEW_MMSrcAttribute_syntax___syntax_base___MMSrcAttribute___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
7515 /* ./syntax//mmbuilder.nit:1041 */
7516 ATTR_syntax___mmbuilder___AAttrPropdef____prop(fra.me.REG[2]) = fra.me.REG[0];
7517 /* ./syntax//mmbuilder.nit:1042 */
7518 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
7519 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[0]);
7520 /* ./syntax//mmbuilder.nit:1044 */
7521 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
7522 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7523 if (UNTAG_Bool(REGB0)) {
7524 } else {
7525 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7526 if (UNTAG_Bool(REGB1)) {
7527 REGB1 = TAG_Bool(false);
7528 REGB0 = REGB1;
7529 } else {
7530 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7531 REGB0 = REGB1;
7532 }
7533 }
7534 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7535 if (UNTAG_Bool(REGB0)) {
7536 REGB0 = TAG_Bool(true);
7537 } else {
7538 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7539 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7540 if (UNTAG_Bool(REGB1)) {
7541 } else {
7542 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7543 if (UNTAG_Bool(REGB2)) {
7544 REGB2 = TAG_Bool(false);
7545 REGB1 = REGB2;
7546 } else {
7547 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7548 REGB1 = REGB2;
7549 }
7550 }
7551 REGB0 = REGB1;
7552 }
7553 if (UNTAG_Bool(REGB0)) {
7554 /* ./syntax//mmbuilder.nit:1045 */
7555 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7556 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7557 if (UNTAG_Bool(REGB0)) {
7558 } else {
7559 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7560 if (UNTAG_Bool(REGB1)) {
7561 REGB1 = TAG_Bool(false);
7562 REGB0 = REGB1;
7563 } else {
7564 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7565 REGB0 = REGB1;
7566 }
7567 }
7568 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7569 if (UNTAG_Bool(REGB0)) {
7570 /* ./syntax//mmbuilder.nit:1046 */
7571 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7572 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7573 if (UNTAG_Bool(REGB0)) {
7574 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1046);
7575 }
7576 fra.me.REG[0] = CALL_parser___lexer___Token___text(fra.me.REG[0])(fra.me.REG[0]);
7577 REGB0 = TAG_Int(1);
7578 fra.me.REG[0] = CALL_standard___string___AbstractString___substring_from(fra.me.REG[0])(fra.me.REG[0], REGB0);
7579 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
7580 fra.me.REG[1] = fra.me.REG[0];
7581 } else {
7582 /* ./syntax//mmbuilder.nit:1048 */
7583 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
7584 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7585 if (UNTAG_Bool(REGB0)) {
7586 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1048);
7587 }
7588 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
7589 fra.me.REG[1] = fra.me.REG[0];
7590 }
7591 /* ./syntax//mmbuilder.nit:1050 */
7592 fra.me.REG[0] = NEW_MMReadImplementationMethod_syntax___syntax_base___MMReadImplementationMethod___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
7593 /* ./syntax//mmbuilder.nit:1051 */
7594 ATTR_syntax___mmbuilder___AAttrPropdef____readmethod(fra.me.REG[2]) = fra.me.REG[0];
7595 /* ./syntax//mmbuilder.nit:1052 */
7596 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
7597 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[0]);
7598 }
7599 /* ./syntax//mmbuilder.nit:1054 */
7600 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
7601 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7602 if (UNTAG_Bool(REGB0)) {
7603 } else {
7604 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7605 if (UNTAG_Bool(REGB1)) {
7606 REGB1 = TAG_Bool(false);
7607 REGB0 = REGB1;
7608 } else {
7609 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7610 REGB0 = REGB1;
7611 }
7612 }
7613 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7614 if (UNTAG_Bool(REGB0)) {
7615 REGB0 = TAG_Bool(true);
7616 } else {
7617 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7618 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7619 if (UNTAG_Bool(REGB1)) {
7620 } else {
7621 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7622 if (UNTAG_Bool(REGB2)) {
7623 REGB2 = TAG_Bool(false);
7624 REGB1 = REGB2;
7625 } else {
7626 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7627 REGB1 = REGB2;
7628 }
7629 }
7630 REGB0 = REGB1;
7631 }
7632 if (UNTAG_Bool(REGB0)) {
7633 /* ./syntax//mmbuilder.nit:1055 */
7634 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7635 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7636 if (UNTAG_Bool(REGB0)) {
7637 } else {
7638 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7639 if (UNTAG_Bool(REGB1)) {
7640 REGB1 = TAG_Bool(false);
7641 REGB0 = REGB1;
7642 } else {
7643 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7644 REGB0 = REGB1;
7645 }
7646 }
7647 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7648 if (UNTAG_Bool(REGB0)) {
7649 /* ./syntax//mmbuilder.nit:1056 */
7650 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7651 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7652 if (UNTAG_Bool(REGB0)) {
7653 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1056);
7654 }
7655 fra.me.REG[0] = CALL_parser___lexer___Token___text(fra.me.REG[0])(fra.me.REG[0]);
7656 REGB0 = TAG_Int(1);
7657 fra.me.REG[0] = CALL_standard___string___AbstractString___substring_from(fra.me.REG[0])(fra.me.REG[0], REGB0);
7658 if (!once_value_2) {
7659 fra.me.REG[5] = BOX_NativeString("=");
7660 REGB0 = TAG_Int(1);
7661 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
7662 once_value_2 = fra.me.REG[5];
7663 register_static_object(&once_value_2);
7664 } else fra.me.REG[5] = once_value_2;
7665 fra.me.REG[5] = fra.me.REG[5];
7666 fra.me.REG[5] = CALL_standard___string___String_____plus(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
7667 fra.me.REG[5] = CALL_standard___symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
7668 fra.me.REG[1] = fra.me.REG[5];
7669 } else {
7670 /* ./syntax//mmbuilder.nit:1058 */
7671 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
7672 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7673 if (UNTAG_Bool(REGB0)) {
7674 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1058);
7675 }
7676 fra.me.REG[5] = CALL_parser___lexer___Token___text(fra.me.REG[5])(fra.me.REG[5]);
7677 if (!once_value_3) {
7678 fra.me.REG[0] = BOX_NativeString("=");
7679 REGB0 = TAG_Int(1);
7680 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
7681 once_value_3 = fra.me.REG[0];
7682 register_static_object(&once_value_3);
7683 } else fra.me.REG[0] = once_value_3;
7684 fra.me.REG[0] = fra.me.REG[0];
7685 fra.me.REG[0] = CALL_standard___string___String_____plus(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
7686 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
7687 fra.me.REG[1] = fra.me.REG[0];
7688 }
7689 /* ./syntax//mmbuilder.nit:1060 */
7690 fra.me.REG[4] = NEW_MMWriteImplementationMethod_syntax___syntax_base___MMWriteImplementationMethod___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
7691 /* ./syntax//mmbuilder.nit:1061 */
7692 ATTR_syntax___mmbuilder___AAttrPropdef____writemethod(fra.me.REG[2]) = fra.me.REG[4];
7693 /* ./syntax//mmbuilder.nit:1062 */
7694 fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
7695 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
7696 }
7697 stack_frame_head = fra.me.prev;
7698 return;
7699 }
7700 void syntax___mmbuilder___AAttrPropdef___accept_property_verifier(val_t p0, val_t p1){
7701 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
7702 val_t REGB0;
7703 val_t REGB1;
7704 val_t REGB2;
7705 val_t REGB3;
7706 val_t tmp;
7707 static val_t once_value_2; /* Once value */
7708 static val_t once_value_3; /* Once value */
7709 static val_t once_value_4; /* Once value */
7710 static val_t once_value_5; /* Once value */
7711 static val_t once_value_6; /* Once value */
7712 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7713 fra.me.file = LOCATE_syntax___mmbuilder;
7714 fra.me.line = 1066;
7715 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___accept_property_verifier;
7716 fra.me.has_broke = 0;
7717 fra.me.REG_size = 6;
7718 fra.me.REG[0] = NIT_NULL;
7719 fra.me.REG[1] = NIT_NULL;
7720 fra.me.REG[2] = NIT_NULL;
7721 fra.me.REG[3] = NIT_NULL;
7722 fra.me.REG[4] = NIT_NULL;
7723 fra.me.REG[5] = NIT_NULL;
7724 fra.me.REG[0] = p0;
7725 fra.me.REG[1] = p1;
7726 /* ./syntax//mmbuilder.nit:1066 */
7727 fra.me.REG[2] = fra.me.REG[0];
7728 fra.me.REG[3] = fra.me.REG[1];
7729 /* ./syntax//mmbuilder.nit:1068 */
7730 CALL_SUPER_syntax___mmbuilder___AAttrPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
7731 /* ./syntax//mmbuilder.nit:1070 */
7732 fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
7733 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7734 if (UNTAG_Bool(REGB0)) {
7735 } else {
7736 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7737 if (UNTAG_Bool(REGB1)) {
7738 REGB1 = TAG_Bool(false);
7739 REGB0 = REGB1;
7740 } else {
7741 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7742 REGB0 = REGB1;
7743 }
7744 }
7745 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7746 if (UNTAG_Bool(REGB0)) {
7747 /* ./syntax//mmbuilder.nit:1071 */
7748 fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
7749 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7750 if (UNTAG_Bool(REGB0)) {
7751 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1071);
7752 }
7753 fra.me.REG[1] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7754 /* ./syntax//mmbuilder.nit:1072 */
7755 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7756 if (UNTAG_Bool(REGB0)) {
7757 } else {
7758 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7759 if (UNTAG_Bool(REGB1)) {
7760 REGB1 = TAG_Bool(false);
7761 REGB0 = REGB1;
7762 } else {
7763 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7764 REGB0 = REGB1;
7765 }
7766 }
7767 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7768 if (UNTAG_Bool(REGB0)) {
7769 } else {
7770 goto label1;
7771 }
7772 } else {
7773 /* ./syntax//mmbuilder.nit:1074 */
7774 REGB0 = TAG_Int(5);
7775 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
7776 if (!once_value_2) {
7777 fra.me.REG[4] = BOX_NativeString("Not yet implemented: Attribute definition ");
7778 REGB0 = TAG_Int(42);
7779 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
7780 once_value_2 = fra.me.REG[4];
7781 register_static_object(&once_value_2);
7782 } else fra.me.REG[4] = once_value_2;
7783 fra.me.REG[4] = fra.me.REG[4];
7784 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
7785 fra.me.REG[4] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
7786 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[4])(fra.me.REG[4]);
7787 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
7788 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
7789 if (!once_value_3) {
7790 fra.me.REG[4] = BOX_NativeString("::");
7791 REGB0 = TAG_Int(2);
7792 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
7793 once_value_3 = fra.me.REG[4];
7794 register_static_object(&once_value_3);
7795 } else fra.me.REG[4] = once_value_3;
7796 fra.me.REG[4] = fra.me.REG[4];
7797 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
7798 fra.me.REG[4] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
7799 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
7800 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
7801 if (!once_value_4) {
7802 fra.me.REG[4] = BOX_NativeString(" requires an explicit type.");
7803 REGB0 = TAG_Int(27);
7804 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
7805 once_value_4 = fra.me.REG[4];
7806 register_static_object(&once_value_4);
7807 } else fra.me.REG[4] = once_value_4;
7808 fra.me.REG[4] = fra.me.REG[4];
7809 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
7810 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
7811 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
7812 /* ./syntax//mmbuilder.nit:1075 */
7813 goto label1;
7814 }
7815 /* ./syntax//mmbuilder.nit:1078 */
7816 fra.me.REG[0] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
7817 /* ./syntax//mmbuilder.nit:1079 */
7818 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
7819 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
7820 fra.me.REG[5] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]);
7821 fra.me.REG[5] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[4], fra.me.REG[1], fra.me.REG[5]);
7822 /* ./syntax//mmbuilder.nit:1080 */
7823 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
7824 /* ./syntax//mmbuilder.nit:1081 */
7825 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
7826 REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
7827 /* ./syntax//mmbuilder.nit:1082 */
7828 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7829 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7830 if (UNTAG_Bool(REGB1)) {
7831 } else {
7832 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7833 if (UNTAG_Bool(REGB2)) {
7834 REGB2 = TAG_Bool(false);
7835 REGB1 = REGB2;
7836 } else {
7837 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
7838 REGB1 = REGB2;
7839 }
7840 }
7841 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7842 if (UNTAG_Bool(REGB1)) {
7843 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
7844 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7845 if (UNTAG_Bool(REGB1)) {
7846 } else {
7847 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7848 if (UNTAG_Bool(REGB2)) {
7849 REGB2 = TAG_Bool(false);
7850 REGB1 = REGB2;
7851 } else {
7852 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
7853 REGB1 = REGB2;
7854 }
7855 }
7856 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7857 } else {
7858 REGB2 = TAG_Bool(false);
7859 REGB1 = REGB2;
7860 }
7861 CALL_syntax___mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0], REGB1, REGB0);
7862 /* ./syntax//mmbuilder.nit:1083 */
7863 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
7864 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7865 if (UNTAG_Bool(REGB1)) {
7866 } else {
7867 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7868 if (UNTAG_Bool(REGB2)) {
7869 REGB2 = TAG_Bool(false);
7870 REGB1 = REGB2;
7871 } else {
7872 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7873 REGB1 = REGB2;
7874 }
7875 }
7876 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7877 if (UNTAG_Bool(REGB1)) {
7878 REGB1 = TAG_Bool(true);
7879 } else {
7880 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7881 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7882 if (UNTAG_Bool(REGB2)) {
7883 } else {
7884 REGB3 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7885 if (UNTAG_Bool(REGB3)) {
7886 REGB3 = TAG_Bool(false);
7887 REGB2 = REGB3;
7888 } else {
7889 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7890 REGB2 = REGB3;
7891 }
7892 }
7893 REGB1 = REGB2;
7894 }
7895 if (UNTAG_Bool(REGB1)) {
7896 /* ./syntax//mmbuilder.nit:1084 */
7897 fra.me.REG[0] = ATTR_syntax___mmbuilder___AAttrPropdef____readmethod(fra.me.REG[2]);
7898 REGB1 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
7899 if (UNTAG_Bool(REGB1)) {
7900 } else {
7901 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1084);
7902 }
7903 /* ./syntax//mmbuilder.nit:1085 */
7904 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
7905 /* ./syntax//mmbuilder.nit:1086 */
7906 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
7907 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7908 if (UNTAG_Bool(REGB1)) {
7909 } else {
7910 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7911 if (UNTAG_Bool(REGB2)) {
7912 REGB2 = TAG_Bool(false);
7913 REGB1 = REGB2;
7914 } else {
7915 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
7916 REGB1 = REGB2;
7917 }
7918 }
7919 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7920 if (UNTAG_Bool(REGB1)) {
7921 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
7922 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7923 if (UNTAG_Bool(REGB1)) {
7924 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1086);
7925 }
7926 fra.me.REG[5] = CALL_parser___parser_nodes___AAble___n_kwredef(fra.me.REG[5])(fra.me.REG[5]);
7927 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7928 if (UNTAG_Bool(REGB1)) {
7929 } else {
7930 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7931 if (UNTAG_Bool(REGB2)) {
7932 REGB2 = TAG_Bool(false);
7933 REGB1 = REGB2;
7934 } else {
7935 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
7936 REGB1 = REGB2;
7937 }
7938 }
7939 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7940 } else {
7941 REGB2 = TAG_Bool(false);
7942 REGB1 = REGB2;
7943 }
7944 if (UNTAG_Bool(REGB1)) {
7945 REGB1 = TAG_Bool(true);
7946 } else {
7947 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7948 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7949 if (UNTAG_Bool(REGB2)) {
7950 } else {
7951 REGB3 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7952 if (UNTAG_Bool(REGB3)) {
7953 REGB3 = TAG_Bool(false);
7954 REGB2 = REGB3;
7955 } else {
7956 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
7957 REGB2 = REGB3;
7958 }
7959 }
7960 if (UNTAG_Bool(REGB2)) {
7961 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
7962 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7963 if (UNTAG_Bool(REGB2)) {
7964 } else {
7965 REGB3 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7966 if (UNTAG_Bool(REGB3)) {
7967 REGB3 = TAG_Bool(false);
7968 REGB2 = REGB3;
7969 } else {
7970 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
7971 REGB2 = REGB3;
7972 }
7973 }
7974 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
7975 } else {
7976 REGB3 = TAG_Bool(false);
7977 REGB2 = REGB3;
7978 }
7979 REGB1 = REGB2;
7980 }
7981 CALL_syntax___mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0], REGB1, REGB0);
7982 /* ./syntax//mmbuilder.nit:1087 */
7983 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
7984 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7985 if (UNTAG_Bool(REGB1)) {
7986 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1087);
7987 }
7988 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[0]);
7989 }
7990 /* ./syntax//mmbuilder.nit:1089 */
7991 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
7992 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7993 if (UNTAG_Bool(REGB1)) {
7994 } else {
7995 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7996 if (UNTAG_Bool(REGB2)) {
7997 REGB2 = TAG_Bool(false);
7998 REGB1 = REGB2;
7999 } else {
8000 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8001 REGB1 = REGB2;
8002 }
8003 }
8004 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8005 if (UNTAG_Bool(REGB1)) {
8006 REGB1 = TAG_Bool(true);
8007 } else {
8008 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8009 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8010 if (UNTAG_Bool(REGB2)) {
8011 } else {
8012 REGB3 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8013 if (UNTAG_Bool(REGB3)) {
8014 REGB3 = TAG_Bool(false);
8015 REGB2 = REGB3;
8016 } else {
8017 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8018 REGB2 = REGB3;
8019 }
8020 }
8021 REGB1 = REGB2;
8022 }
8023 if (UNTAG_Bool(REGB1)) {
8024 /* ./syntax//mmbuilder.nit:1090 */
8025 fra.me.REG[0] = ATTR_syntax___mmbuilder___AAttrPropdef____writemethod(fra.me.REG[2]);
8026 REGB1 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
8027 if (UNTAG_Bool(REGB1)) {
8028 } else {
8029 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1090);
8030 }
8031 /* ./syntax//mmbuilder.nit:1091 */
8032 REGB1 = TAG_Int(0);
8033 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8034 if (!once_value_5) {
8035 if (!once_value_6) {
8036 fra.me.REG[4] = BOX_NativeString("value");
8037 REGB1 = TAG_Int(5);
8038 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
8039 once_value_6 = fra.me.REG[4];
8040 register_static_object(&once_value_6);
8041 } else fra.me.REG[4] = once_value_6;
8042 fra.me.REG[4] = fra.me.REG[4];
8043 fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
8044 once_value_5 = fra.me.REG[4];
8045 register_static_object(&once_value_5);
8046 } else fra.me.REG[4] = once_value_5;
8047 fra.me.REG[4] = fra.me.REG[4];
8048 fra.me.REG[4] = NEW_MMParam_metamodel___static_type___MMParam___init(fra.me.REG[1], fra.me.REG[4]);
8049 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
8050 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_items(fra.me.REG[5]);
8051 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8052 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
8053 fra.me.REG[4] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[5], NIT_NULL, fra.me.REG[4]);
8054 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
8055 /* ./syntax//mmbuilder.nit:1093 */
8056 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8057 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8058 if (UNTAG_Bool(REGB1)) {
8059 } else {
8060 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8061 if (UNTAG_Bool(REGB2)) {
8062 REGB2 = TAG_Bool(false);
8063 REGB1 = REGB2;
8064 } else {
8065 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8066 REGB1 = REGB2;
8067 }
8068 }
8069 if (UNTAG_Bool(REGB1)) {
8070 /* ./syntax//mmbuilder.nit:1094 */
8071 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8072 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8073 if (UNTAG_Bool(REGB1)) {
8074 } else {
8075 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8076 if (UNTAG_Bool(REGB2)) {
8077 REGB2 = TAG_Bool(false);
8078 REGB1 = REGB2;
8079 } else {
8080 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8081 REGB1 = REGB2;
8082 }
8083 }
8084 if (UNTAG_Bool(REGB1)) {
8085 REGB1 = TAG_Int(3);
8086 REGB0 = REGB1;
8087 } else {
8088 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8089 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8090 if (UNTAG_Bool(REGB1)) {
8091 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1094);
8092 }
8093 fra.me.REG[4] = CALL_parser___parser_nodes___AAble___n_visibility(fra.me.REG[4])(fra.me.REG[4]);
8094 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8095 if (UNTAG_Bool(REGB1)) {
8096 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1094);
8097 }
8098 REGB1 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
8099 REGB0 = REGB1;
8100 }
8101 }
8102 /* ./syntax//mmbuilder.nit:1096 */
8103 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8104 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8105 if (UNTAG_Bool(REGB1)) {
8106 } else {
8107 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8108 if (UNTAG_Bool(REGB2)) {
8109 REGB2 = TAG_Bool(false);
8110 REGB1 = REGB2;
8111 } else {
8112 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8113 REGB1 = REGB2;
8114 }
8115 }
8116 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8117 if (UNTAG_Bool(REGB1)) {
8118 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8119 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8120 if (UNTAG_Bool(REGB1)) {
8121 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1096);
8122 }
8123 fra.me.REG[4] = CALL_parser___parser_nodes___AAble___n_kwredef(fra.me.REG[4])(fra.me.REG[4]);
8124 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8125 if (UNTAG_Bool(REGB1)) {
8126 } else {
8127 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8128 if (UNTAG_Bool(REGB2)) {
8129 REGB2 = TAG_Bool(false);
8130 REGB1 = REGB2;
8131 } else {
8132 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8133 REGB1 = REGB2;
8134 }
8135 }
8136 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8137 } else {
8138 REGB2 = TAG_Bool(false);
8139 REGB1 = REGB2;
8140 }
8141 CALL_syntax___mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0], REGB1, REGB0);
8142 /* ./syntax//mmbuilder.nit:1097 */
8143 fra.me.REG[2] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8144 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8145 if (UNTAG_Bool(REGB0)) {
8146 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1097);
8147 }
8148 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0]);
8149 }
8150 label1: while(0);
8151 stack_frame_head = fra.me.prev;
8152 return;
8153 }
8154 void syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
8155 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8156 val_t tmp;
8157 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8158 fra.me.file = LOCATE_syntax___mmbuilder;
8159 fra.me.line = 1101;
8160 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor;
8161 fra.me.has_broke = 0;
8162 fra.me.REG_size = 4;
8163 fra.me.REG[0] = NIT_NULL;
8164 fra.me.REG[1] = NIT_NULL;
8165 fra.me.REG[2] = NIT_NULL;
8166 fra.me.REG[3] = NIT_NULL;
8167 fra.me.REG[0] = p0;
8168 fra.me.REG[1] = p1;
8169 /* ./syntax//mmbuilder.nit:1101 */
8170 fra.me.REG[2] = fra.me.REG[0];
8171 fra.me.REG[3] = fra.me.REG[1];
8172 /* ./syntax//mmbuilder.nit:1103 */
8173 fra.me.REG[2] = ATTR_syntax___mmbuilder___AAttrPropdef____prop(fra.me.REG[2]);
8174 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
8175 /* ./syntax//mmbuilder.nit:1104 */
8176 CALL_SUPER_syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8177 /* ./syntax//mmbuilder.nit:1105 */
8178 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8179 stack_frame_head = fra.me.prev;
8180 return;
8181 }
8182 val_t syntax___mmbuilder___AMethPropdef___name(val_t p0){
8183 struct {struct stack_frame_t me;} fra;
8184 val_t tmp;
8185 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8186 fra.me.file = LOCATE_syntax___mmbuilder;
8187 fra.me.line = 1110;
8188 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___name;
8189 fra.me.has_broke = 0;
8190 fra.me.REG_size = 1;
8191 fra.me.REG[0] = NIT_NULL;
8192 fra.me.REG[0] = p0;
8193 /* ./syntax//mmbuilder.nit:1110 */
8194 fra.me.REG[0] = ATTR_syntax___mmbuilder___AMethPropdef____name(fra.me.REG[0]);
8195 stack_frame_head = fra.me.prev;
8196 return fra.me.REG[0];
8197 }
8198 val_t syntax___mmbuilder___AMethPropdef___method(val_t p0){
8199 struct {struct stack_frame_t me;} fra;
8200 val_t REGB0;
8201 val_t tmp;
8202 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8203 fra.me.file = LOCATE_syntax___mmbuilder;
8204 fra.me.line = 1114;
8205 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___method;
8206 fra.me.has_broke = 0;
8207 fra.me.REG_size = 1;
8208 fra.me.REG[0] = NIT_NULL;
8209 fra.me.REG[0] = p0;
8210 /* ./syntax//mmbuilder.nit:1114 */
8211 fra.me.REG[0] = ATTR_syntax___mmbuilder___AMethPropdef____method(fra.me.REG[0]);
8212 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
8213 if (UNTAG_Bool(REGB0)) {
8214 } else {
8215 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1114);
8216 }
8217 goto label1;
8218 label1: while(0);
8219 stack_frame_head = fra.me.prev;
8220 return fra.me.REG[0];
8221 }
8222 void syntax___mmbuilder___AMethPropdef___accept_property_builder(val_t p0, val_t p1){
8223 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
8224 val_t REGB0;
8225 val_t REGB1;
8226 val_t REGB2;
8227 val_t tmp;
8228 static val_t once_value_1; /* Once value */
8229 static val_t once_value_2; /* Once value */
8230 static val_t once_value_3; /* Once value */
8231 static val_t once_value_4; /* Once value */
8232 static val_t once_value_5; /* Once value */
8233 static val_t once_value_6; /* Once value */
8234 static val_t once_value_7; /* Once value */
8235 static val_t once_value_8; /* Once value */
8236 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8237 fra.me.file = LOCATE_syntax___mmbuilder;
8238 fra.me.line = 1116;
8239 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___accept_property_builder;
8240 fra.me.has_broke = 0;
8241 fra.me.REG_size = 5;
8242 fra.me.REG[0] = NIT_NULL;
8243 fra.me.REG[1] = NIT_NULL;
8244 fra.me.REG[2] = NIT_NULL;
8245 fra.me.REG[3] = NIT_NULL;
8246 fra.me.REG[4] = NIT_NULL;
8247 fra.me.REG[0] = p0;
8248 fra.me.REG[1] = p1;
8249 /* ./syntax//mmbuilder.nit:1116 */
8250 fra.me.REG[2] = fra.me.REG[0];
8251 fra.me.REG[3] = fra.me.REG[1];
8252 /* ./syntax//mmbuilder.nit:1118 */
8253 CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8254 /* ./syntax//mmbuilder.nit:1120 */
8255 fra.me.REG[1] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
8256 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8257 if (UNTAG_Bool(REGB0)) {
8258 } else {
8259 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8260 if (UNTAG_Bool(REGB1)) {
8261 REGB1 = TAG_Bool(false);
8262 REGB0 = REGB1;
8263 } else {
8264 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8265 REGB0 = REGB1;
8266 }
8267 }
8268 if (UNTAG_Bool(REGB0)) {
8269 /* ./syntax//mmbuilder.nit:1121 */
8270 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AInitPropdef, ID_parser___parser_nodes___AInitPropdef)) /*cast AInitPropdef*/;
8271 if (UNTAG_Bool(REGB0)) {
8272 /* ./syntax//mmbuilder.nit:1122 */
8273 if (!once_value_1) {
8274 if (!once_value_2) {
8275 fra.me.REG[1] = BOX_NativeString("init");
8276 REGB0 = TAG_Int(4);
8277 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
8278 once_value_2 = fra.me.REG[1];
8279 register_static_object(&once_value_2);
8280 } else fra.me.REG[1] = once_value_2;
8281 fra.me.REG[1] = fra.me.REG[1];
8282 fra.me.REG[1] = CALL_standard___symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
8283 once_value_1 = fra.me.REG[1];
8284 register_static_object(&once_value_1);
8285 } else fra.me.REG[1] = once_value_1;
8286 fra.me.REG[1] = fra.me.REG[1];
8287 } else {
8288 /* ./syntax//mmbuilder.nit:1124 */
8289 if (!once_value_3) {
8290 if (!once_value_4) {
8291 fra.me.REG[0] = BOX_NativeString("main");
8292 REGB0 = TAG_Int(4);
8293 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
8294 once_value_4 = fra.me.REG[0];
8295 register_static_object(&once_value_4);
8296 } else fra.me.REG[0] = once_value_4;
8297 fra.me.REG[0] = fra.me.REG[0];
8298 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
8299 once_value_3 = fra.me.REG[0];
8300 register_static_object(&once_value_3);
8301 } else fra.me.REG[0] = once_value_3;
8302 fra.me.REG[0] = fra.me.REG[0];
8303 fra.me.REG[1] = fra.me.REG[0];
8304 }
8305 } else {
8306 /* ./syntax//mmbuilder.nit:1127 */
8307 fra.me.REG[0] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
8308 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8309 if (UNTAG_Bool(REGB0)) {
8310 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1127);
8311 }
8312 fra.me.REG[0] = CALL_syntax___syntax_base___AMethid___name(fra.me.REG[0])(fra.me.REG[0]);
8313 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
8314 if (UNTAG_Bool(REGB0)) {
8315 } else {
8316 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1127);
8317 }
8318 fra.me.REG[1] = fra.me.REG[0];
8319 /* ./syntax//mmbuilder.nit:1129 */
8320 fra.me.REG[0] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
8321 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8322 if (UNTAG_Bool(REGB0)) {
8323 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1129);
8324 }
8325 fra.me.REG[0] = CALL_syntax___syntax_base___AMethid___name(fra.me.REG[0])(fra.me.REG[0]);
8326 if (!once_value_5) {
8327 if (!once_value_6) {
8328 fra.me.REG[4] = BOX_NativeString("-");
8329 REGB0 = TAG_Int(1);
8330 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
8331 once_value_6 = fra.me.REG[4];
8332 register_static_object(&once_value_6);
8333 } else fra.me.REG[4] = once_value_6;
8334 fra.me.REG[4] = fra.me.REG[4];
8335 fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
8336 once_value_5 = fra.me.REG[4];
8337 register_static_object(&once_value_5);
8338 } else fra.me.REG[4] = once_value_5;
8339 fra.me.REG[4] = fra.me.REG[4];
8340 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[4],fra.me.REG[0]));
8341 if (UNTAG_Bool(REGB0)) {
8342 } else {
8343 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8344 if (UNTAG_Bool(REGB1)) {
8345 REGB1 = TAG_Bool(false);
8346 REGB0 = REGB1;
8347 } else {
8348 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
8349 REGB0 = REGB1;
8350 }
8351 }
8352 if (UNTAG_Bool(REGB0)) {
8353 /* ./syntax//mmbuilder.nit:1130 */
8354 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
8355 /* ./syntax//mmbuilder.nit:1131 */
8356 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8357 if (UNTAG_Bool(REGB0)) {
8358 } else {
8359 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8360 if (UNTAG_Bool(REGB1)) {
8361 REGB1 = TAG_Bool(false);
8362 REGB0 = REGB1;
8363 } else {
8364 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8365 REGB0 = REGB1;
8366 }
8367 }
8368 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8369 if (UNTAG_Bool(REGB0)) {
8370 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8371 if (UNTAG_Bool(REGB0)) {
8372 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1131);
8373 }
8374 fra.me.REG[4] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[4])(fra.me.REG[4]);
8375 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[4])(fra.me.REG[4]);
8376 REGB1 = TAG_Int(0);
8377 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
8378 if (UNTAG_Bool(REGB2)) {
8379 } else {
8380 /* ./../lib/standard//kernel.nit:210 */
8381 REGB1 = TAG_Bool((REGB0)==(REGB1));
8382 /* ./syntax//mmbuilder.nit:1131 */
8383 REGB2 = REGB1;
8384 }
8385 } else {
8386 REGB1 = TAG_Bool(false);
8387 REGB2 = REGB1;
8388 }
8389 if (UNTAG_Bool(REGB2)) {
8390 /* ./syntax//mmbuilder.nit:1132 */
8391 if (!once_value_7) {
8392 if (!once_value_8) {
8393 fra.me.REG[4] = BOX_NativeString("unary -");
8394 REGB2 = TAG_Int(7);
8395 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
8396 once_value_8 = fra.me.REG[4];
8397 register_static_object(&once_value_8);
8398 } else fra.me.REG[4] = once_value_8;
8399 fra.me.REG[4] = fra.me.REG[4];
8400 fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
8401 once_value_7 = fra.me.REG[4];
8402 register_static_object(&once_value_7);
8403 } else fra.me.REG[4] = once_value_7;
8404 fra.me.REG[4] = fra.me.REG[4];
8405 fra.me.REG[1] = fra.me.REG[4];
8406 }
8407 }
8408 }
8409 /* ./syntax//mmbuilder.nit:1136 */
8410 ATTR_syntax___mmbuilder___AMethPropdef____name(fra.me.REG[2]) = fra.me.REG[1];
8411 /* ./syntax//mmbuilder.nit:1137 */
8412 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8413 fra.me.REG[4] = NEW_MMMethSrcMethod_syntax___syntax_base___MMMethSrcMethod___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
8414 /* ./syntax//mmbuilder.nit:1138 */
8415 ATTR_syntax___mmbuilder___AMethPropdef____method(fra.me.REG[2]) = fra.me.REG[4];
8416 /* ./syntax//mmbuilder.nit:1139 */
8417 fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8418 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
8419 stack_frame_head = fra.me.prev;
8420 return;
8421 }
8422 void syntax___mmbuilder___AMethPropdef___accept_property_verifier(val_t p0, val_t p1){
8423 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
8424 val_t REGB0;
8425 val_t REGB1;
8426 val_t REGB2;
8427 val_t tmp;
8428 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8429 fra.me.file = LOCATE_syntax___mmbuilder;
8430 fra.me.line = 1142;
8431 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___accept_property_verifier;
8432 fra.me.has_broke = 0;
8433 fra.me.REG_size = 5;
8434 fra.me.REG[0] = NIT_NULL;
8435 fra.me.REG[1] = NIT_NULL;
8436 fra.me.REG[2] = NIT_NULL;
8437 fra.me.REG[3] = NIT_NULL;
8438 fra.me.REG[4] = NIT_NULL;
8439 fra.me.REG[0] = p0;
8440 fra.me.REG[1] = p1;
8441 /* ./syntax//mmbuilder.nit:1142 */
8442 fra.me.REG[2] = fra.me.REG[0];
8443 fra.me.REG[3] = fra.me.REG[1];
8444 /* ./syntax//mmbuilder.nit:1144 */
8445 fra.me.REG[4] = NEW_SignatureBuilder_syntax___mmbuilder___SignatureBuilder___init();
8446 CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
8447 /* ./syntax//mmbuilder.nit:1145 */
8448 CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8449 /* ./syntax//mmbuilder.nit:1147 */
8450 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8451 REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
8452 if (UNTAG_Bool(REGB0)) {
8453 goto label1;
8454 }
8455 /* ./syntax//mmbuilder.nit:1149 */
8456 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8457 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
8458 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8459 if (UNTAG_Bool(REGB0)) {
8460 } else {
8461 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8462 if (UNTAG_Bool(REGB1)) {
8463 REGB1 = TAG_Bool(false);
8464 REGB0 = REGB1;
8465 } else {
8466 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8467 REGB0 = REGB1;
8468 }
8469 }
8470 if (UNTAG_Bool(REGB0)) {
8471 } else {
8472 /* ./syntax//mmbuilder.nit:1152 */
8473 fra.me.REG[1] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
8474 fra.me.REG[0] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8475 fra.me.REG[0] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[0])(fra.me.REG[0]);
8476 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
8477 if (UNTAG_Bool(REGB0)) {
8478 } else {
8479 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1152);
8480 }
8481 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
8482 }
8483 /* ./syntax//mmbuilder.nit:1154 */
8484 REGB0 = TAG_Int(1);
8485 /* ./syntax//mmbuilder.nit:1155 */
8486 fra.me.REG[0] = CALL_parser___parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
8487 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8488 if (UNTAG_Bool(REGB1)) {
8489 } else {
8490 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8491 if (UNTAG_Bool(REGB2)) {
8492 REGB2 = TAG_Bool(false);
8493 REGB1 = REGB2;
8494 } else {
8495 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8496 REGB1 = REGB2;
8497 }
8498 }
8499 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8500 if (UNTAG_Bool(REGB1)) {
8501 fra.me.REG[0] = CALL_parser___parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
8502 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8503 if (UNTAG_Bool(REGB1)) {
8504 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1155);
8505 }
8506 REGB1 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
8507 REGB2 = TAG_Int(1);
8508 /* ./../lib/standard//kernel.nit:217 */
8509 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
8510 } else {
8511 /* ./syntax//mmbuilder.nit:1155 */
8512 REGB1 = TAG_Bool(false);
8513 REGB2 = REGB1;
8514 }
8515 if (UNTAG_Bool(REGB2)) {
8516 /* ./syntax//mmbuilder.nit:1156 */
8517 fra.me.REG[0] = CALL_parser___parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
8518 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8519 if (UNTAG_Bool(REGB2)) {
8520 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1156);
8521 }
8522 REGB2 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
8523 REGB0 = REGB2;
8524 }
8525 /* ./syntax//mmbuilder.nit:1158 */
8526 fra.me.REG[0] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
8527 fra.me.REG[1] = CALL_parser___parser_nodes___AMethPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
8528 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8529 if (UNTAG_Bool(REGB2)) {
8530 } else {
8531 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8532 if (UNTAG_Bool(REGB1)) {
8533 REGB1 = TAG_Bool(false);
8534 REGB2 = REGB1;
8535 } else {
8536 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8537 REGB2 = REGB1;
8538 }
8539 }
8540 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
8541 CALL_syntax___mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0], REGB2, REGB0);
8542 /* ./syntax//mmbuilder.nit:1159 */
8543 fra.me.REG[0] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
8544 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8545 if (UNTAG_Bool(REGB0)) {
8546 } else {
8547 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8548 if (UNTAG_Bool(REGB2)) {
8549 REGB2 = TAG_Bool(false);
8550 REGB0 = REGB2;
8551 } else {
8552 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8553 REGB0 = REGB2;
8554 }
8555 }
8556 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8557 if (UNTAG_Bool(REGB0)) {
8558 fra.me.REG[0] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
8559 fra.me.REG[2] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
8560 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8561 if (UNTAG_Bool(REGB0)) {
8562 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1159);
8563 }
8564 CALL_syntax___mmbuilder___ASignature___check_visibility(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
8565 }
8566 label1: while(0);
8567 stack_frame_head = fra.me.prev;
8568 return;
8569 }
8570 void syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
8571 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8572 val_t tmp;
8573 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8574 fra.me.file = LOCATE_syntax___mmbuilder;
8575 fra.me.line = 1162;
8576 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor;
8577 fra.me.has_broke = 0;
8578 fra.me.REG_size = 4;
8579 fra.me.REG[0] = NIT_NULL;
8580 fra.me.REG[1] = NIT_NULL;
8581 fra.me.REG[2] = NIT_NULL;
8582 fra.me.REG[3] = NIT_NULL;
8583 fra.me.REG[0] = p0;
8584 fra.me.REG[1] = p1;
8585 /* ./syntax//mmbuilder.nit:1162 */
8586 fra.me.REG[2] = fra.me.REG[0];
8587 fra.me.REG[3] = fra.me.REG[1];
8588 /* ./syntax//mmbuilder.nit:1164 */
8589 fra.me.REG[2] = ATTR_syntax___mmbuilder___AMethPropdef____method(fra.me.REG[2]);
8590 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
8591 /* ./syntax//mmbuilder.nit:1165 */
8592 CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8593 /* ./syntax//mmbuilder.nit:1166 */
8594 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8595 stack_frame_head = fra.me.prev;
8596 return;
8597 }
8598 void syntax___mmbuilder___AMainMethPropdef___process_and_check(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
8599 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
8600 val_t REGB0;
8601 val_t REGB1;
8602 val_t tmp;
8603 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8604 fra.me.file = LOCATE_syntax___mmbuilder;
8605 fra.me.line = 1171;
8606 fra.me.meth = LOCATE_syntax___mmbuilder___AMainMethPropdef___process_and_check;
8607 fra.me.has_broke = 0;
8608 fra.me.REG_size = 3;
8609 fra.me.REG[0] = NIT_NULL;
8610 fra.me.REG[1] = NIT_NULL;
8611 fra.me.REG[2] = NIT_NULL;
8612 fra.me.REG[0] = p0;
8613 fra.me.REG[1] = p1;
8614 fra.me.REG[2] = p2;
8615 REGB0 = p3;
8616 REGB1 = p4;
8617 /* ./syntax//mmbuilder.nit:1173 */
8618 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
8619 CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[0])(fra.me.REG[0], REGB1);
8620 /* ./syntax//mmbuilder.nit:1174 */
8621 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
8622 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
8623 fra.me.REG[1] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
8624 fra.me.REG[1] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[1]);
8625 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
8626 stack_frame_head = fra.me.prev;
8627 return;
8628 }
8629 void syntax___mmbuilder___AExternPropdef___accept_property_verifier(val_t p0, val_t p1){
8630 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
8631 val_t REGB0;
8632 val_t REGB1;
8633 val_t REGB2;
8634 val_t tmp;
8635 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8636 fra.me.file = LOCATE_syntax___mmbuilder;
8637 fra.me.line = 1180;
8638 fra.me.meth = LOCATE_syntax___mmbuilder___AExternPropdef___accept_property_verifier;
8639 fra.me.has_broke = 0;
8640 fra.me.REG_size = 3;
8641 fra.me.REG[0] = NIT_NULL;
8642 fra.me.REG[1] = NIT_NULL;
8643 fra.me.REG[2] = NIT_NULL;
8644 fra.me.REG[0] = p0;
8645 fra.me.REG[1] = p1;
8646 /* ./syntax//mmbuilder.nit:1180 */
8647 fra.me.REG[2] = fra.me.REG[0];
8648 /* ./syntax//mmbuilder.nit:1182 */
8649 CALL_SUPER_syntax___mmbuilder___AExternPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8650 /* ./syntax//mmbuilder.nit:1184 */
8651 fra.me.REG[1] = CALL_parser___parser_nodes___AExternPropdef___n_extern(fra.me.REG[2])(fra.me.REG[2]);
8652 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8653 if (UNTAG_Bool(REGB0)) {
8654 } else {
8655 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8656 if (UNTAG_Bool(REGB1)) {
8657 REGB1 = TAG_Bool(false);
8658 REGB0 = REGB1;
8659 } else {
8660 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8661 REGB0 = REGB1;
8662 }
8663 }
8664 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8665 if (UNTAG_Bool(REGB0)) {
8666 /* ./syntax//mmbuilder.nit:1185 */
8667 fra.me.REG[1] = CALL_parser___parser_nodes___AExternPropdef___n_extern(fra.me.REG[2])(fra.me.REG[2]);
8668 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8669 if (UNTAG_Bool(REGB0)) {
8670 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1185);
8671 }
8672 fra.me.REG[1] = CALL_parser___lexer___Token___text(fra.me.REG[1])(fra.me.REG[1]);
8673 /* ./syntax//mmbuilder.nit:1186 */
8674 REGB0 = TAG_Int(1);
8675 /* ./../lib/standard//collection//array.nit:23 */
8676 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
8677 if (UNTAG_Bool(REGB1)) {
8678 } else {
8679 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
8680 }
8681 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
8682 /* ./syntax//mmbuilder.nit:1186 */
8683 REGB2 = TAG_Int(2);
8684 /* ./../lib/standard//kernel.nit:220 */
8685 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
8686 /* ./syntax//mmbuilder.nit:1186 */
8687 fra.me.REG[0] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB0, REGB2);
8688 fra.me.REG[1] = fra.me.REG[0];
8689 } else {
8690 /* ./syntax//mmbuilder.nit:1188 */
8691 fra.me.REG[0] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
8692 fra.me.REG[0] = CALL_syntax___mmbuilder___MMMethod___default_extern_name(fra.me.REG[0])(fra.me.REG[0]);
8693 fra.me.REG[1] = fra.me.REG[0];
8694 }
8695 /* ./syntax//mmbuilder.nit:1190 */
8696 fra.me.REG[2] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
8697 CALL_syntax___syntax_base___MMMethSrcMethod___extern_name__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
8698 stack_frame_head = fra.me.prev;
8699 return;
8700 }
8701 val_t syntax___mmbuilder___MMMethod___default_extern_name(val_t p0){
8702 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
8703 val_t REGB0;
8704 val_t tmp;
8705 static val_t once_value_1; /* Once value */
8706 static val_t once_value_2; /* Once value */
8707 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8708 fra.me.file = LOCATE_syntax___mmbuilder;
8709 fra.me.line = 1195;
8710 fra.me.meth = LOCATE_syntax___mmbuilder___MMMethod___default_extern_name;
8711 fra.me.has_broke = 0;
8712 fra.me.REG_size = 3;
8713 fra.me.REG[0] = NIT_NULL;
8714 fra.me.REG[1] = NIT_NULL;
8715 fra.me.REG[2] = NIT_NULL;
8716 fra.me.REG[0] = p0;
8717 /* ./syntax//mmbuilder.nit:1197 */
8718 REGB0 = TAG_Int(3);
8719 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
8720 if (!once_value_1) {
8721 fra.me.REG[2] = BOX_NativeString("");
8722 REGB0 = TAG_Int(0);
8723 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
8724 once_value_1 = fra.me.REG[2];
8725 register_static_object(&once_value_1);
8726 } else fra.me.REG[2] = once_value_1;
8727 fra.me.REG[2] = fra.me.REG[2];
8728 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8729 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
8730 fra.me.REG[2] = CALL_syntax___mmbuilder___MMMethod___friendly_extern_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
8731 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8732 if (!once_value_2) {
8733 fra.me.REG[2] = BOX_NativeString("___impl");
8734 REGB0 = TAG_Int(7);
8735 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
8736 once_value_2 = fra.me.REG[2];
8737 register_static_object(&once_value_2);
8738 } else fra.me.REG[2] = once_value_2;
8739 fra.me.REG[2] = fra.me.REG[2];
8740 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8741 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
8742 goto label3;
8743 label3: while(0);
8744 stack_frame_head = fra.me.prev;
8745 return fra.me.REG[1];
8746 }
8747 val_t syntax___mmbuilder___MMMethod___friendly_extern_name(val_t p0, val_t p1){
8748 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
8749 val_t REGB0;
8750 val_t REGB1;
8751 val_t REGB2;
8752 val_t tmp;
8753 static val_t once_value_1; /* Once value */
8754 static val_t once_value_2; /* Once value */
8755 static val_t once_value_3; /* Once value */
8756 static val_t once_value_4; /* Once value */
8757 static val_t once_value_5; /* Once value */
8758 static val_t once_value_6; /* Once value */
8759 static val_t once_value_7; /* Once value */
8760 static val_t once_value_8; /* Once value */
8761 static val_t once_value_9; /* Once value */
8762 static val_t once_value_10; /* Once value */
8763 static val_t once_value_11; /* Once value */
8764 static val_t once_value_12; /* Once value */
8765 static val_t once_value_13; /* Once value */
8766 static val_t once_value_14; /* Once value */
8767 static val_t once_value_15; /* Once value */
8768 static val_t once_value_16; /* Once value */
8769 static val_t once_value_17; /* Once value */
8770 static val_t once_value_18; /* Once value */
8771 static val_t once_value_19; /* Once value */
8772 static val_t once_value_20; /* Once value */
8773 static val_t once_value_21; /* Once value */
8774 static val_t once_value_22; /* Once value */
8775 static val_t once_value_23; /* Once value */
8776 static val_t once_value_24; /* Once value */
8777 static val_t once_value_25; /* Once value */
8778 static val_t once_value_26; /* Once value */
8779 static val_t once_value_27; /* Once value */
8780 static val_t once_value_28; /* Once value */
8781 static val_t once_value_29; /* Once value */
8782 static val_t once_value_30; /* Once value */
8783 static val_t once_value_31; /* Once value */
8784 static val_t once_value_32; /* Once value */
8785 static val_t once_value_33; /* Once value */
8786 static val_t once_value_34; /* Once value */
8787 static val_t once_value_35; /* Once value */
8788 static val_t once_value_36; /* Once value */
8789 static val_t once_value_37; /* Once value */
8790 static val_t once_value_39; /* Once value */
8791 static val_t once_value_40; /* Once value */
8792 static val_t once_value_41; /* Once value */
8793 static val_t once_value_42; /* Once value */
8794 static val_t once_value_43; /* Once value */
8795 static val_t once_value_44; /* Once value */
8796 static val_t once_value_45; /* Once value */
8797 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8798 fra.me.file = LOCATE_syntax___mmbuilder;
8799 fra.me.line = 1200;
8800 fra.me.meth = LOCATE_syntax___mmbuilder___MMMethod___friendly_extern_name;
8801 fra.me.has_broke = 0;
8802 fra.me.REG_size = 6;
8803 fra.me.REG[0] = NIT_NULL;
8804 fra.me.REG[1] = NIT_NULL;
8805 fra.me.REG[2] = NIT_NULL;
8806 fra.me.REG[3] = NIT_NULL;
8807 fra.me.REG[4] = NIT_NULL;
8808 fra.me.REG[5] = NIT_NULL;
8809 fra.me.REG[0] = p0;
8810 fra.me.REG[1] = p1;
8811 /* ./syntax//mmbuilder.nit:1204 */
8812 REGB0 = CALL_syntax___syntax_base___MMLocalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
8813 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8814 if (UNTAG_Bool(REGB0)) {
8815 /* ./syntax//mmbuilder.nit:1206 */
8816 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]);
8817 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
8818 /* ./syntax//mmbuilder.nit:1207 */
8819 if (!once_value_1) {
8820 fra.me.REG[3] = BOX_NativeString("+");
8821 REGB0 = TAG_Int(1);
8822 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
8823 once_value_1 = fra.me.REG[3];
8824 register_static_object(&once_value_1);
8825 } else fra.me.REG[3] = once_value_1;
8826 fra.me.REG[3] = fra.me.REG[3];
8827 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
8828 if (UNTAG_Bool(REGB0)) {
8829 } else {
8830 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
8831 REGB0 = REGB1;
8832 }
8833 if (UNTAG_Bool(REGB0)) {
8834 /* ./syntax//mmbuilder.nit:1208 */
8835 if (!once_value_2) {
8836 fra.me.REG[3] = BOX_NativeString("_plus");
8837 REGB0 = TAG_Int(5);
8838 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
8839 once_value_2 = fra.me.REG[3];
8840 register_static_object(&once_value_2);
8841 } else fra.me.REG[3] = once_value_2;
8842 fra.me.REG[3] = fra.me.REG[3];
8843 } else {
8844 /* ./syntax//mmbuilder.nit:1209 */
8845 if (!once_value_3) {
8846 fra.me.REG[4] = BOX_NativeString("-");
8847 REGB0 = TAG_Int(1);
8848 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
8849 once_value_3 = fra.me.REG[4];
8850 register_static_object(&once_value_3);
8851 } else fra.me.REG[4] = once_value_3;
8852 fra.me.REG[4] = fra.me.REG[4];
8853 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
8854 if (UNTAG_Bool(REGB0)) {
8855 } else {
8856 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
8857 REGB0 = REGB1;
8858 }
8859 if (UNTAG_Bool(REGB0)) {
8860 /* ./syntax//mmbuilder.nit:1210 */
8861 if (!once_value_4) {
8862 fra.me.REG[4] = BOX_NativeString("_minus");
8863 REGB0 = TAG_Int(6);
8864 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
8865 once_value_4 = fra.me.REG[4];
8866 register_static_object(&once_value_4);
8867 } else fra.me.REG[4] = once_value_4;
8868 fra.me.REG[4] = fra.me.REG[4];
8869 fra.me.REG[3] = fra.me.REG[4];
8870 } else {
8871 /* ./syntax//mmbuilder.nit:1211 */
8872 if (!once_value_5) {
8873 fra.me.REG[4] = BOX_NativeString("*");
8874 REGB0 = TAG_Int(1);
8875 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
8876 once_value_5 = fra.me.REG[4];
8877 register_static_object(&once_value_5);
8878 } else fra.me.REG[4] = once_value_5;
8879 fra.me.REG[4] = fra.me.REG[4];
8880 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
8881 if (UNTAG_Bool(REGB0)) {
8882 } else {
8883 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
8884 REGB0 = REGB1;
8885 }
8886 if (UNTAG_Bool(REGB0)) {
8887 /* ./syntax//mmbuilder.nit:1212 */
8888 if (!once_value_6) {
8889 fra.me.REG[4] = BOX_NativeString("_star");
8890 REGB0 = TAG_Int(5);
8891 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
8892 once_value_6 = fra.me.REG[4];
8893 register_static_object(&once_value_6);
8894 } else fra.me.REG[4] = once_value_6;
8895 fra.me.REG[4] = fra.me.REG[4];
8896 fra.me.REG[3] = fra.me.REG[4];
8897 } else {
8898 /* ./syntax//mmbuilder.nit:1213 */
8899 if (!once_value_7) {
8900 fra.me.REG[4] = BOX_NativeString("/");
8901 REGB0 = TAG_Int(1);
8902 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
8903 once_value_7 = fra.me.REG[4];
8904 register_static_object(&once_value_7);
8905 } else fra.me.REG[4] = once_value_7;
8906 fra.me.REG[4] = fra.me.REG[4];
8907 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
8908 if (UNTAG_Bool(REGB0)) {
8909 } else {
8910 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
8911 REGB0 = REGB1;
8912 }
8913 if (UNTAG_Bool(REGB0)) {
8914 /* ./syntax//mmbuilder.nit:1214 */
8915 if (!once_value_8) {
8916 fra.me.REG[4] = BOX_NativeString("_slash");
8917 REGB0 = TAG_Int(6);
8918 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
8919 once_value_8 = fra.me.REG[4];
8920 register_static_object(&once_value_8);
8921 } else fra.me.REG[4] = once_value_8;
8922 fra.me.REG[4] = fra.me.REG[4];
8923 fra.me.REG[3] = fra.me.REG[4];
8924 } else {
8925 /* ./syntax//mmbuilder.nit:1215 */
8926 if (!once_value_9) {
8927 fra.me.REG[4] = BOX_NativeString("%");
8928 REGB0 = TAG_Int(1);
8929 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
8930 once_value_9 = fra.me.REG[4];
8931 register_static_object(&once_value_9);
8932 } else fra.me.REG[4] = once_value_9;
8933 fra.me.REG[4] = fra.me.REG[4];
8934 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
8935 if (UNTAG_Bool(REGB0)) {
8936 } else {
8937 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
8938 REGB0 = REGB1;
8939 }
8940 if (UNTAG_Bool(REGB0)) {
8941 /* ./syntax//mmbuilder.nit:1216 */
8942 if (!once_value_10) {
8943 fra.me.REG[4] = BOX_NativeString("_percent");
8944 REGB0 = TAG_Int(8);
8945 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
8946 once_value_10 = fra.me.REG[4];
8947 register_static_object(&once_value_10);
8948 } else fra.me.REG[4] = once_value_10;
8949 fra.me.REG[4] = fra.me.REG[4];
8950 fra.me.REG[3] = fra.me.REG[4];
8951 } else {
8952 /* ./syntax//mmbuilder.nit:1217 */
8953 if (!once_value_11) {
8954 fra.me.REG[4] = BOX_NativeString("[]");
8955 REGB0 = TAG_Int(2);
8956 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
8957 once_value_11 = fra.me.REG[4];
8958 register_static_object(&once_value_11);
8959 } else fra.me.REG[4] = once_value_11;
8960 fra.me.REG[4] = fra.me.REG[4];
8961 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
8962 if (UNTAG_Bool(REGB0)) {
8963 } else {
8964 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
8965 REGB0 = REGB1;
8966 }
8967 if (UNTAG_Bool(REGB0)) {
8968 /* ./syntax//mmbuilder.nit:1218 */
8969 if (!once_value_12) {
8970 fra.me.REG[4] = BOX_NativeString("_index");
8971 REGB0 = TAG_Int(6);
8972 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
8973 once_value_12 = fra.me.REG[4];
8974 register_static_object(&once_value_12);
8975 } else fra.me.REG[4] = once_value_12;
8976 fra.me.REG[4] = fra.me.REG[4];
8977 fra.me.REG[3] = fra.me.REG[4];
8978 } else {
8979 /* ./syntax//mmbuilder.nit:1219 */
8980 if (!once_value_13) {
8981 fra.me.REG[4] = BOX_NativeString("[]=");
8982 REGB0 = TAG_Int(3);
8983 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
8984 once_value_13 = fra.me.REG[4];
8985 register_static_object(&once_value_13);
8986 } else fra.me.REG[4] = once_value_13;
8987 fra.me.REG[4] = fra.me.REG[4];
8988 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
8989 if (UNTAG_Bool(REGB0)) {
8990 } else {
8991 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
8992 REGB0 = REGB1;
8993 }
8994 if (UNTAG_Bool(REGB0)) {
8995 /* ./syntax//mmbuilder.nit:1220 */
8996 if (!once_value_14) {
8997 fra.me.REG[4] = BOX_NativeString("_index_assign");
8998 REGB0 = TAG_Int(13);
8999 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
9000 once_value_14 = fra.me.REG[4];
9001 register_static_object(&once_value_14);
9002 } else fra.me.REG[4] = once_value_14;
9003 fra.me.REG[4] = fra.me.REG[4];
9004 fra.me.REG[3] = fra.me.REG[4];
9005 } else {
9006 /* ./syntax//mmbuilder.nit:1221 */
9007 if (!once_value_15) {
9008 fra.me.REG[4] = BOX_NativeString("==");
9009 REGB0 = TAG_Int(2);
9010 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
9011 once_value_15 = fra.me.REG[4];
9012 register_static_object(&once_value_15);
9013 } else fra.me.REG[4] = once_value_15;
9014 fra.me.REG[4] = fra.me.REG[4];
9015 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
9016 if (UNTAG_Bool(REGB0)) {
9017 } else {
9018 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
9019 REGB0 = REGB1;
9020 }
9021 if (UNTAG_Bool(REGB0)) {
9022 /* ./syntax//mmbuilder.nit:1222 */
9023 if (!once_value_16) {
9024 fra.me.REG[4] = BOX_NativeString("_equal");
9025 REGB0 = TAG_Int(6);
9026 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
9027 once_value_16 = fra.me.REG[4];
9028 register_static_object(&once_value_16);
9029 } else fra.me.REG[4] = once_value_16;
9030 fra.me.REG[4] = fra.me.REG[4];
9031 fra.me.REG[3] = fra.me.REG[4];
9032 } else {
9033 /* ./syntax//mmbuilder.nit:1223 */
9034 if (!once_value_17) {
9035 fra.me.REG[4] = BOX_NativeString("<");
9036 REGB0 = TAG_Int(1);
9037 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
9038 once_value_17 = fra.me.REG[4];
9039 register_static_object(&once_value_17);
9040 } else fra.me.REG[4] = once_value_17;
9041 fra.me.REG[4] = fra.me.REG[4];
9042 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
9043 if (UNTAG_Bool(REGB0)) {
9044 } else {
9045 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
9046 REGB0 = REGB1;
9047 }
9048 if (UNTAG_Bool(REGB0)) {
9049 /* ./syntax//mmbuilder.nit:1224 */
9050 if (!once_value_18) {
9051 fra.me.REG[4] = BOX_NativeString("_less");
9052 REGB0 = TAG_Int(5);
9053 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
9054 once_value_18 = fra.me.REG[4];
9055 register_static_object(&once_value_18);
9056 } else fra.me.REG[4] = once_value_18;
9057 fra.me.REG[4] = fra.me.REG[4];
9058 fra.me.REG[3] = fra.me.REG[4];
9059 } else {
9060 /* ./syntax//mmbuilder.nit:1225 */
9061 if (!once_value_19) {
9062 fra.me.REG[4] = BOX_NativeString(">");
9063 REGB0 = TAG_Int(1);
9064 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
9065 once_value_19 = fra.me.REG[4];
9066 register_static_object(&once_value_19);
9067 } else fra.me.REG[4] = once_value_19;
9068 fra.me.REG[4] = fra.me.REG[4];
9069 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
9070 if (UNTAG_Bool(REGB0)) {
9071 } else {
9072 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
9073 REGB0 = REGB1;
9074 }
9075 if (UNTAG_Bool(REGB0)) {
9076 /* ./syntax//mmbuilder.nit:1226 */
9077 if (!once_value_20) {
9078 fra.me.REG[4] = BOX_NativeString("_greater");
9079 REGB0 = TAG_Int(8);
9080 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
9081 once_value_20 = fra.me.REG[4];
9082 register_static_object(&once_value_20);
9083 } else fra.me.REG[4] = once_value_20;
9084 fra.me.REG[4] = fra.me.REG[4];
9085 fra.me.REG[3] = fra.me.REG[4];
9086 } else {
9087 /* ./syntax//mmbuilder.nit:1227 */
9088 if (!once_value_21) {
9089 fra.me.REG[4] = BOX_NativeString("<=");
9090 REGB0 = TAG_Int(2);
9091 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
9092 once_value_21 = fra.me.REG[4];
9093 register_static_object(&once_value_21);
9094 } else fra.me.REG[4] = once_value_21;
9095 fra.me.REG[4] = fra.me.REG[4];
9096 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
9097 if (UNTAG_Bool(REGB0)) {
9098 } else {
9099 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
9100 REGB0 = REGB1;
9101 }
9102 if (UNTAG_Bool(REGB0)) {
9103 /* ./syntax//mmbuilder.nit:1228 */
9104 if (!once_value_22) {
9105 fra.me.REG[4] = BOX_NativeString("_less_or_equal");
9106 REGB0 = TAG_Int(14);
9107 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
9108 once_value_22 = fra.me.REG[4];
9109 register_static_object(&once_value_22);
9110 } else fra.me.REG[4] = once_value_22;
9111 fra.me.REG[4] = fra.me.REG[4];
9112 fra.me.REG[3] = fra.me.REG[4];
9113 } else {
9114 /* ./syntax//mmbuilder.nit:1229 */
9115 if (!once_value_23) {
9116 fra.me.REG[4] = BOX_NativeString(">=");
9117 REGB0 = TAG_Int(2);
9118 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
9119 once_value_23 = fra.me.REG[4];
9120 register_static_object(&once_value_23);
9121 } else fra.me.REG[4] = once_value_23;
9122 fra.me.REG[4] = fra.me.REG[4];
9123 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
9124 if (UNTAG_Bool(REGB0)) {
9125 } else {
9126 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
9127 REGB0 = REGB1;
9128 }
9129 if (UNTAG_Bool(REGB0)) {
9130 /* ./syntax//mmbuilder.nit:1230 */
9131 if (!once_value_24) {
9132 fra.me.REG[4] = BOX_NativeString("_ge");
9133 REGB0 = TAG_Int(3);
9134 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
9135 once_value_24 = fra.me.REG[4];
9136 register_static_object(&once_value_24);
9137 } else fra.me.REG[4] = once_value_24;
9138 fra.me.REG[4] = fra.me.REG[4];
9139 fra.me.REG[3] = fra.me.REG[4];
9140 } else {
9141 /* ./syntax//mmbuilder.nit:1231 */
9142 if (!once_value_25) {
9143 fra.me.REG[4] = BOX_NativeString("!=");
9144 REGB0 = TAG_Int(2);
9145 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
9146 once_value_25 = fra.me.REG[4];
9147 register_static_object(&once_value_25);
9148 } else fra.me.REG[4] = once_value_25;
9149 fra.me.REG[4] = fra.me.REG[4];
9150 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
9151 if (UNTAG_Bool(REGB0)) {
9152 } else {
9153 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
9154 REGB0 = REGB1;
9155 }
9156 if (UNTAG_Bool(REGB0)) {
9157 /* ./syntax//mmbuilder.nit:1232 */
9158 if (!once_value_26) {
9159 fra.me.REG[4] = BOX_NativeString("_not_equal");
9160 REGB0 = TAG_Int(10);
9161 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
9162 once_value_26 = fra.me.REG[4];
9163 register_static_object(&once_value_26);
9164 } else fra.me.REG[4] = once_value_26;
9165 fra.me.REG[4] = fra.me.REG[4];
9166 fra.me.REG[3] = fra.me.REG[4];
9167 } else {
9168 /* ./syntax//mmbuilder.nit:1233 */
9169 if (!once_value_27) {
9170 fra.me.REG[4] = BOX_NativeString(">>");
9171 REGB0 = TAG_Int(2);
9172 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
9173 once_value_27 = fra.me.REG[4];
9174 register_static_object(&once_value_27);
9175 } else fra.me.REG[4] = once_value_27;
9176 fra.me.REG[4] = fra.me.REG[4];
9177 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
9178 if (UNTAG_Bool(REGB0)) {
9179 } else {
9180 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
9181 REGB0 = REGB1;
9182 }
9183 if (UNTAG_Bool(REGB0)) {
9184 /* ./syntax//mmbuilder.nit:1234 */
9185 if (!once_value_28) {
9186 fra.me.REG[4] = BOX_NativeString("_right");
9187 REGB0 = TAG_Int(6);
9188 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
9189 once_value_28 = fra.me.REG[4];
9190 register_static_object(&once_value_28);
9191 } else fra.me.REG[4] = once_value_28;
9192 fra.me.REG[4] = fra.me.REG[4];
9193 fra.me.REG[3] = fra.me.REG[4];
9194 } else {
9195 /* ./syntax//mmbuilder.nit:1235 */
9196 if (!once_value_29) {
9197 fra.me.REG[4] = BOX_NativeString("<<");
9198 REGB0 = TAG_Int(2);
9199 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
9200 once_value_29 = fra.me.REG[4];
9201 register_static_object(&once_value_29);
9202 } else fra.me.REG[4] = once_value_29;
9203 fra.me.REG[4] = fra.me.REG[4];
9204 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
9205 if (UNTAG_Bool(REGB0)) {
9206 } else {
9207 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
9208 REGB0 = REGB1;
9209 }
9210 if (UNTAG_Bool(REGB0)) {
9211 /* ./syntax//mmbuilder.nit:1236 */
9212 if (!once_value_30) {
9213 fra.me.REG[4] = BOX_NativeString("_left");
9214 REGB0 = TAG_Int(5);
9215 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
9216 once_value_30 = fra.me.REG[4];
9217 register_static_object(&once_value_30);
9218 } else fra.me.REG[4] = once_value_30;
9219 fra.me.REG[4] = fra.me.REG[4];
9220 fra.me.REG[3] = fra.me.REG[4];
9221 } else {
9222 /* ./syntax//mmbuilder.nit:1237 */
9223 if (!once_value_31) {
9224 fra.me.REG[4] = BOX_NativeString("<=>");
9225 REGB0 = TAG_Int(3);
9226 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
9227 once_value_31 = fra.me.REG[4];
9228 register_static_object(&once_value_31);
9229 } else fra.me.REG[4] = once_value_31;
9230 fra.me.REG[4] = fra.me.REG[4];
9231 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4]));
9232 if (UNTAG_Bool(REGB0)) {
9233 } else {
9234 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
9235 REGB0 = REGB1;
9236 }
9237 if (UNTAG_Bool(REGB0)) {
9238 /* ./syntax//mmbuilder.nit:1238 */
9239 if (!once_value_32) {
9240 fra.me.REG[4] = BOX_NativeString("_starship");
9241 REGB0 = TAG_Int(9);
9242 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
9243 once_value_32 = fra.me.REG[4];
9244 register_static_object(&once_value_32);
9245 } else fra.me.REG[4] = once_value_32;
9246 fra.me.REG[4] = fra.me.REG[4];
9247 fra.me.REG[3] = fra.me.REG[4];
9248 } else {
9249 /* ./../lib/standard//collection//array.nit:23 */
9250 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
9251 if (UNTAG_Bool(REGB0)) {
9252 } else {
9253 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
9254 }
9255 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
9256 /* ./syntax//mmbuilder.nit:1239 */
9257 REGB1 = TAG_Int(1);
9258 /* ./../lib/standard//kernel.nit:220 */
9259 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
9260 /* ./syntax//mmbuilder.nit:1239 */
9261 REGB1 = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], REGB1);
9262 REGB0 = TAG_Char('=');
9263 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0));
9264 if (UNTAG_Bool(REGB2)) {
9265 } else {
9266 /* ./../lib/standard//kernel.nit:350 */
9267 REGB0 = TAG_Bool((REGB1)==(REGB0));
9268 /* ./syntax//mmbuilder.nit:1239 */
9269 REGB2 = REGB0;
9270 }
9271 if (UNTAG_Bool(REGB2)) {
9272 /* ./syntax//mmbuilder.nit:1240 */
9273 REGB2 = TAG_Int(3);
9274 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
9275 if (!once_value_33) {
9276 fra.me.REG[5] = BOX_NativeString("");
9277 REGB2 = TAG_Int(0);
9278 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
9279 once_value_33 = fra.me.REG[5];
9280 register_static_object(&once_value_33);
9281 } else fra.me.REG[5] = once_value_33;
9282 fra.me.REG[5] = fra.me.REG[5];
9283 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
9284 REGB2 = TAG_Int(0);
9285 /* ./../lib/standard//collection//array.nit:23 */
9286 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
9287 if (UNTAG_Bool(REGB0)) {
9288 } else {
9289 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
9290 }
9291 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
9292 /* ./syntax//mmbuilder.nit:1240 */
9293 REGB1 = TAG_Int(1);
9294 /* ./../lib/standard//kernel.nit:220 */
9295 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
9296 /* ./syntax//mmbuilder.nit:1240 */
9297 fra.me.REG[5] = CALL_standard___string___AbstractString___substring(fra.me.REG[2])(fra.me.REG[2], REGB2, REGB1);
9298 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
9299 if (!once_value_34) {
9300 fra.me.REG[5] = BOX_NativeString("__assign");
9301 REGB1 = TAG_Int(8);
9302 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
9303 once_value_34 = fra.me.REG[5];
9304 register_static_object(&once_value_34);
9305 } else fra.me.REG[5] = once_value_34;
9306 fra.me.REG[5] = fra.me.REG[5];
9307 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
9308 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
9309 fra.me.REG[3] = fra.me.REG[4];
9310 } else {
9311 /* ./syntax//mmbuilder.nit:1242 */
9312 fra.me.REG[3] = fra.me.REG[2];
9313 }
9314 }
9315 }
9316 }
9317 }
9318 }
9319 }
9320 }
9321 }
9322 }
9323 }
9324 }
9325 }
9326 }
9327 }
9328 }
9329 }
9330 /* ./syntax//mmbuilder.nit:1245 */
9331 REGB1 = TAG_Int(5);
9332 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9333 if (!once_value_35) {
9334 fra.me.REG[4] = BOX_NativeString("");
9335 REGB1 = TAG_Int(0);
9336 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
9337 once_value_35 = fra.me.REG[4];
9338 register_static_object(&once_value_35);
9339 } else fra.me.REG[4] = once_value_35;
9340 fra.me.REG[4] = fra.me.REG[4];
9341 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
9342 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[1])(fra.me.REG[1]);
9343 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
9344 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
9345 if (!once_value_36) {
9346 fra.me.REG[4] = BOX_NativeString("_");
9347 REGB1 = TAG_Int(1);
9348 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
9349 once_value_36 = fra.me.REG[4];
9350 register_static_object(&once_value_36);
9351 } else fra.me.REG[4] = once_value_36;
9352 fra.me.REG[4] = fra.me.REG[4];
9353 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
9354 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
9355 if (!once_value_37) {
9356 fra.me.REG[3] = BOX_NativeString("");
9357 REGB1 = TAG_Int(0);
9358 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
9359 once_value_37 = fra.me.REG[3];
9360 register_static_object(&once_value_37);
9361 } else fra.me.REG[3] = once_value_37;
9362 fra.me.REG[3] = fra.me.REG[3];
9363 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
9364 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
9365 goto label38;
9366 } else {
9367 /* ./syntax//mmbuilder.nit:1247 */
9368 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]);
9369 if (!once_value_39) {
9370 if (!once_value_40) {
9371 fra.me.REG[4] = BOX_NativeString("init");
9372 REGB1 = TAG_Int(4);
9373 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
9374 once_value_40 = fra.me.REG[4];
9375 register_static_object(&once_value_40);
9376 } else fra.me.REG[4] = once_value_40;
9377 fra.me.REG[4] = fra.me.REG[4];
9378 fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
9379 once_value_39 = fra.me.REG[4];
9380 register_static_object(&once_value_39);
9381 } else fra.me.REG[4] = once_value_39;
9382 fra.me.REG[4] = fra.me.REG[4];
9383 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4]));
9384 if (UNTAG_Bool(REGB1)) {
9385 } else {
9386 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
9387 REGB1 = REGB2;
9388 }
9389 if (UNTAG_Bool(REGB1)) {
9390 /* ./syntax//mmbuilder.nit:1248 */
9391 REGB1 = TAG_Int(3);
9392 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9393 if (!once_value_41) {
9394 fra.me.REG[3] = BOX_NativeString("new_");
9395 REGB1 = TAG_Int(4);
9396 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
9397 once_value_41 = fra.me.REG[3];
9398 register_static_object(&once_value_41);
9399 } else fra.me.REG[3] = once_value_41;
9400 fra.me.REG[3] = fra.me.REG[3];
9401 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
9402 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[1])(fra.me.REG[1]);
9403 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
9404 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
9405 if (!once_value_42) {
9406 fra.me.REG[3] = BOX_NativeString("");
9407 REGB1 = TAG_Int(0);
9408 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
9409 once_value_42 = fra.me.REG[3];
9410 register_static_object(&once_value_42);
9411 } else fra.me.REG[3] = once_value_42;
9412 fra.me.REG[3] = fra.me.REG[3];
9413 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
9414 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
9415 fra.me.REG[2] = fra.me.REG[4];
9416 goto label38;
9417 } else {
9418 /* ./syntax//mmbuilder.nit:1250 */
9419 REGB1 = TAG_Int(5);
9420 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
9421 if (!once_value_43) {
9422 fra.me.REG[3] = BOX_NativeString("new_");
9423 REGB1 = TAG_Int(4);
9424 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
9425 once_value_43 = fra.me.REG[3];
9426 register_static_object(&once_value_43);
9427 } else fra.me.REG[3] = once_value_43;
9428 fra.me.REG[3] = fra.me.REG[3];
9429 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
9430 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[1])(fra.me.REG[1]);
9431 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
9432 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
9433 if (!once_value_44) {
9434 fra.me.REG[1] = BOX_NativeString("_");
9435 REGB1 = TAG_Int(1);
9436 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB1);
9437 once_value_44 = fra.me.REG[1];
9438 register_static_object(&once_value_44);
9439 } else fra.me.REG[1] = once_value_44;
9440 fra.me.REG[1] = fra.me.REG[1];
9441 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
9442 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]);
9443 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
9444 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
9445 if (!once_value_45) {
9446 fra.me.REG[0] = BOX_NativeString("");
9447 REGB1 = TAG_Int(0);
9448 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB1);
9449 once_value_45 = fra.me.REG[0];
9450 register_static_object(&once_value_45);
9451 } else fra.me.REG[0] = once_value_45;
9452 fra.me.REG[0] = fra.me.REG[0];
9453 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
9454 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
9455 fra.me.REG[2] = fra.me.REG[4];
9456 goto label38;
9457 }
9458 }
9459 label38: while(0);
9460 stack_frame_head = fra.me.prev;
9461 return fra.me.REG[2];
9462 }
9463 val_t syntax___mmbuilder___ATypePropdef___prop(val_t p0){
9464 struct {struct stack_frame_t me;} fra;
9465 val_t REGB0;
9466 val_t tmp;
9467 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9468 fra.me.file = LOCATE_syntax___mmbuilder;
9469 fra.me.line = 1257;
9470 fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___prop;
9471 fra.me.has_broke = 0;
9472 fra.me.REG_size = 1;
9473 fra.me.REG[0] = NIT_NULL;
9474 fra.me.REG[0] = p0;
9475 /* ./syntax//mmbuilder.nit:1257 */
9476 fra.me.REG[0] = ATTR_syntax___mmbuilder___ATypePropdef____prop(fra.me.REG[0]);
9477 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
9478 if (UNTAG_Bool(REGB0)) {
9479 } else {
9480 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1257);
9481 }
9482 goto label1;
9483 label1: while(0);
9484 stack_frame_head = fra.me.prev;
9485 return fra.me.REG[0];
9486 }
9487 void syntax___mmbuilder___ATypePropdef___accept_property_builder(val_t p0, val_t p1){
9488 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9489 val_t tmp;
9490 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9491 fra.me.file = LOCATE_syntax___mmbuilder;
9492 fra.me.line = 1260;
9493 fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___accept_property_builder;
9494 fra.me.has_broke = 0;
9495 fra.me.REG_size = 4;
9496 fra.me.REG[0] = NIT_NULL;
9497 fra.me.REG[1] = NIT_NULL;
9498 fra.me.REG[2] = NIT_NULL;
9499 fra.me.REG[3] = NIT_NULL;
9500 fra.me.REG[0] = p0;
9501 fra.me.REG[1] = p1;
9502 /* ./syntax//mmbuilder.nit:1260 */
9503 fra.me.REG[2] = fra.me.REG[0];
9504 fra.me.REG[3] = fra.me.REG[1];
9505 /* ./syntax//mmbuilder.nit:1262 */
9506 CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9507 /* ./syntax//mmbuilder.nit:1263 */
9508 fra.me.REG[1] = CALL_parser___parser_nodes___ATypePropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
9509 fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
9510 /* ./syntax//mmbuilder.nit:1264 */
9511 fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9512 fra.me.REG[0] = NEW_MMSrcTypeProperty_syntax___syntax_base___MMSrcTypeProperty___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
9513 /* ./syntax//mmbuilder.nit:1265 */
9514 ATTR_syntax___mmbuilder___ATypePropdef____prop(fra.me.REG[2]) = fra.me.REG[0];
9515 /* ./syntax//mmbuilder.nit:1266 */
9516 fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9517 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0]);
9518 stack_frame_head = fra.me.prev;
9519 return;
9520 }
9521 void syntax___mmbuilder___ATypePropdef___accept_property_verifier(val_t p0, val_t p1){
9522 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
9523 val_t REGB0;
9524 val_t REGB1;
9525 val_t REGB2;
9526 val_t tmp;
9527 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9528 fra.me.file = LOCATE_syntax___mmbuilder;
9529 fra.me.line = 1269;
9530 fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___accept_property_verifier;
9531 fra.me.has_broke = 0;
9532 fra.me.REG_size = 5;
9533 fra.me.REG[0] = NIT_NULL;
9534 fra.me.REG[1] = NIT_NULL;
9535 fra.me.REG[2] = NIT_NULL;
9536 fra.me.REG[3] = NIT_NULL;
9537 fra.me.REG[4] = NIT_NULL;
9538 fra.me.REG[0] = p0;
9539 fra.me.REG[1] = p1;
9540 /* ./syntax//mmbuilder.nit:1269 */
9541 fra.me.REG[2] = fra.me.REG[0];
9542 fra.me.REG[3] = fra.me.REG[1];
9543 /* ./syntax//mmbuilder.nit:1271 */
9544 CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9545 /* ./syntax//mmbuilder.nit:1272 */
9546 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
9547 fra.me.REG[0] = CALL_parser___parser_nodes___ATypePropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
9548 fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
9549 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9550 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
9551 fra.me.REG[4] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
9552 /* ./syntax//mmbuilder.nit:1273 */
9553 fra.me.REG[0] = CALL_syntax___syntax_base___ATypePropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
9554 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
9555 /* ./syntax//mmbuilder.nit:1274 */
9556 fra.me.REG[4] = CALL_parser___parser_nodes___ATypePropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
9557 REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
9558 /* ./syntax//mmbuilder.nit:1275 */
9559 fra.me.REG[4] = CALL_syntax___syntax_base___ATypePropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
9560 fra.me.REG[0] = CALL_parser___parser_nodes___ATypePropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
9561 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9562 if (UNTAG_Bool(REGB1)) {
9563 } else {
9564 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9565 if (UNTAG_Bool(REGB2)) {
9566 REGB2 = TAG_Bool(false);
9567 REGB1 = REGB2;
9568 } else {
9569 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
9570 REGB1 = REGB2;
9571 }
9572 }
9573 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
9574 CALL_syntax___mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], REGB1, REGB0);
9575 stack_frame_head = fra.me.prev;
9576 return;
9577 }
9578 void syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
9579 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9580 val_t tmp;
9581 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9582 fra.me.file = LOCATE_syntax___mmbuilder;
9583 fra.me.line = 1278;
9584 fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor;
9585 fra.me.has_broke = 0;
9586 fra.me.REG_size = 4;
9587 fra.me.REG[0] = NIT_NULL;
9588 fra.me.REG[1] = NIT_NULL;
9589 fra.me.REG[2] = NIT_NULL;
9590 fra.me.REG[3] = NIT_NULL;
9591 fra.me.REG[0] = p0;
9592 fra.me.REG[1] = p1;
9593 /* ./syntax//mmbuilder.nit:1278 */
9594 fra.me.REG[2] = fra.me.REG[0];
9595 fra.me.REG[3] = fra.me.REG[1];
9596 /* ./syntax//mmbuilder.nit:1280 */
9597 fra.me.REG[2] = ATTR_syntax___mmbuilder___ATypePropdef____prop(fra.me.REG[2]);
9598 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
9599 /* ./syntax//mmbuilder.nit:1281 */
9600 CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9601 /* ./syntax//mmbuilder.nit:1282 */
9602 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9603 stack_frame_head = fra.me.prev;
9604 return;
9605 }
9606 val_t syntax___mmbuilder___MethidAccumulator___name(val_t p0){
9607 struct {struct stack_frame_t me;} fra;
9608 val_t REGB0;
9609 val_t tmp;
9610 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9611 fra.me.file = LOCATE_syntax___mmbuilder;
9612 fra.me.line = 1289;
9613 fra.me.meth = LOCATE_syntax___mmbuilder___MethidAccumulator___name;
9614 fra.me.has_broke = 0;
9615 fra.me.REG_size = 1;
9616 fra.me.REG[0] = NIT_NULL;
9617 fra.me.REG[0] = p0;
9618 /* ./syntax//mmbuilder.nit:1289 */
9619 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL);
9620 if (UNTAG_Bool(REGB0)) {
9621 } else {
9622 nit_abort("Uninitialized attribute %s", "_name", LOCATE_syntax___mmbuilder, 1289);
9623 }
9624 fra.me.REG[0] = ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0]);
9625 stack_frame_head = fra.me.prev;
9626 return fra.me.REG[0];
9627 }
9628 void syntax___mmbuilder___MethidAccumulator___visit(val_t p0, val_t p1){
9629 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9630 val_t REGB0;
9631 val_t tmp;
9632 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9633 fra.me.file = LOCATE_syntax___mmbuilder;
9634 fra.me.line = 1290;
9635 fra.me.meth = LOCATE_syntax___mmbuilder___MethidAccumulator___visit;
9636 fra.me.has_broke = 0;
9637 fra.me.REG_size = 4;
9638 fra.me.REG[0] = NIT_NULL;
9639 fra.me.REG[1] = NIT_NULL;
9640 fra.me.REG[2] = NIT_NULL;
9641 fra.me.REG[3] = NIT_NULL;
9642 fra.me.REG[0] = p0;
9643 fra.me.REG[1] = p1;
9644 /* ./syntax//mmbuilder.nit:1292 */
9645 REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_parser___parser_nodes___Token, ID_parser___parser_nodes___Token)) /*cast Token*/;
9646 if (UNTAG_Bool(REGB0)) {
9647 /* ./syntax//mmbuilder.nit:1293 */
9648 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL);
9649 if (UNTAG_Bool(REGB0)) {
9650 } else {
9651 nit_abort("Uninitialized attribute %s", "_name", LOCATE_syntax___mmbuilder, 1293);
9652 }
9653 fra.me.REG[2] = ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0]);
9654 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9655 if (UNTAG_Bool(REGB0)) {
9656 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1293);
9657 }
9658 fra.me.REG[3] = CALL_parser___lexer___Token___text(fra.me.REG[1])(fra.me.REG[1]);
9659 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
9660 } else {
9661 /* ./syntax//mmbuilder.nit:1295 */
9662 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9663 if (UNTAG_Bool(REGB0)) {
9664 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1295);
9665 }
9666 CALL_parser___parser_prod___ANode___visit_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
9667 }
9668 stack_frame_head = fra.me.prev;
9669 return;
9670 }
9671 val_t syntax___mmbuilder___AMethid___name(val_t p0){
9672 struct {struct stack_frame_t me;} fra;
9673 val_t tmp;
9674 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9675 fra.me.file = LOCATE_syntax___mmbuilder;
9676 fra.me.line = 1301;
9677 fra.me.meth = LOCATE_syntax___mmbuilder___AMethid___name;
9678 fra.me.has_broke = 0;
9679 fra.me.REG_size = 1;
9680 fra.me.REG[0] = NIT_NULL;
9681 fra.me.REG[0] = p0;
9682 /* ./syntax//mmbuilder.nit:1301 */
9683 fra.me.REG[0] = ATTR_syntax___mmbuilder___AMethid____name(fra.me.REG[0]);
9684 stack_frame_head = fra.me.prev;
9685 return fra.me.REG[0];
9686 }
9687 void syntax___mmbuilder___AMethid___accept_property_builder(val_t p0, val_t p1){
9688 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9689 val_t tmp;
9690 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9691 fra.me.file = LOCATE_syntax___mmbuilder;
9692 fra.me.line = 1303;
9693 fra.me.meth = LOCATE_syntax___mmbuilder___AMethid___accept_property_builder;
9694 fra.me.has_broke = 0;
9695 fra.me.REG_size = 4;
9696 fra.me.REG[0] = NIT_NULL;
9697 fra.me.REG[1] = NIT_NULL;
9698 fra.me.REG[2] = NIT_NULL;
9699 fra.me.REG[3] = NIT_NULL;
9700 fra.me.REG[0] = p0;
9701 fra.me.REG[1] = p1;
9702 /* ./syntax//mmbuilder.nit:1303 */
9703 fra.me.REG[2] = fra.me.REG[0];
9704 /* ./syntax//mmbuilder.nit:1305 */
9705 fra.me.REG[3] = NEW_MethidAccumulator_parser___parser_prod___Visitor___init();
9706 /* ./syntax//mmbuilder.nit:1306 */
9707 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
9708 /* ./syntax//mmbuilder.nit:1307 */
9709 fra.me.REG[3] = CALL_syntax___mmbuilder___MethidAccumulator___name(fra.me.REG[3])(fra.me.REG[3]);
9710 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
9711 fra.me.REG[3] = CALL_standard___symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
9712 ATTR_syntax___mmbuilder___AMethid____name(fra.me.REG[2]) = fra.me.REG[3];
9713 /* ./syntax//mmbuilder.nit:1308 */
9714 CALL_SUPER_syntax___mmbuilder___AMethid___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9715 stack_frame_head = fra.me.prev;
9716 return;
9717 }
9718 void syntax___mmbuilder___ASignature___accept_property_verifier(val_t p0, val_t p1){
9719 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
9720 val_t REGB0;
9721 val_t REGB1;
9722 val_t REGB2;
9723 val_t tmp;
9724 static val_t once_value_2; /* Once value */
9725 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9726 fra.me.file = LOCATE_syntax___mmbuilder;
9727 fra.me.line = 1313;
9728 fra.me.meth = LOCATE_syntax___mmbuilder___ASignature___accept_property_verifier;
9729 fra.me.has_broke = 0;
9730 fra.me.REG_size = 7;
9731 fra.me.REG[0] = NIT_NULL;
9732 fra.me.REG[1] = NIT_NULL;
9733 fra.me.REG[2] = NIT_NULL;
9734 fra.me.REG[3] = NIT_NULL;
9735 fra.me.REG[4] = NIT_NULL;
9736 fra.me.REG[5] = NIT_NULL;
9737 fra.me.REG[6] = NIT_NULL;
9738 fra.me.REG[0] = p0;
9739 fra.me.REG[1] = p1;
9740 /* ./syntax//mmbuilder.nit:1313 */
9741 fra.me.REG[2] = fra.me.REG[0];
9742 fra.me.REG[3] = fra.me.REG[1];
9743 /* ./syntax//mmbuilder.nit:1315 */
9744 CALL_SUPER_syntax___mmbuilder___ASignature___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9745 /* ./syntax//mmbuilder.nit:1316 */
9746 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9747 REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
9748 if (UNTAG_Bool(REGB0)) {
9749 /* ./syntax//mmbuilder.nit:1317 */
9750 goto label1;
9751 } else {
9752 /* ./syntax//mmbuilder.nit:1318 */
9753 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9754 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
9755 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
9756 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9757 if (UNTAG_Bool(REGB0)) {
9758 /* ./syntax//mmbuilder.nit:1319 */
9759 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9760 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
9761 fra.me.REG[1] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[1])(fra.me.REG[1]);
9762 fra.me.REG[0] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9763 fra.me.REG[0] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[0])(fra.me.REG[0]);
9764 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]);
9765 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[1],fra.me.REG[0]));
9766 if (UNTAG_Bool(REGB0)) {
9767 } else {
9768 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9769 if (UNTAG_Bool(REGB1)) {
9770 REGB1 = TAG_Bool(false);
9771 REGB0 = REGB1;
9772 } else {
9773 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
9774 REGB0 = REGB1;
9775 }
9776 }
9777 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9778 if (UNTAG_Bool(REGB0)) {
9779 REGB0 = TAG_Bool(true);
9780 } else {
9781 fra.me.REG[0] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
9782 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9783 if (UNTAG_Bool(REGB1)) {
9784 } else {
9785 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9786 if (UNTAG_Bool(REGB2)) {
9787 REGB2 = TAG_Bool(false);
9788 REGB1 = REGB2;
9789 } else {
9790 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
9791 REGB1 = REGB2;
9792 }
9793 }
9794 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
9795 REGB0 = REGB1;
9796 }
9797 if (UNTAG_Bool(REGB0)) {
9798 /* ./syntax//mmbuilder.nit:1320 */
9799 fra.me.REG[0] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9800 fra.me.REG[0] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[0])(fra.me.REG[0]);
9801 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]);
9802 if (!once_value_2) {
9803 fra.me.REG[1] = BOX_NativeString("Syntax error: untyped parameter.");
9804 REGB0 = TAG_Int(32);
9805 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
9806 once_value_2 = fra.me.REG[1];
9807 register_static_object(&once_value_2);
9808 } else fra.me.REG[1] = once_value_2;
9809 fra.me.REG[1] = fra.me.REG[1];
9810 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1]);
9811 /* ./syntax//mmbuilder.nit:1321 */
9812 goto label1;
9813 }
9814 } else {
9815 /* ./syntax//mmbuilder.nit:1323 */
9816 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9817 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[1])(fra.me.REG[1]);
9818 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
9819 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9820 if (UNTAG_Bool(REGB0)) {
9821 REGB0 = TAG_Bool(true);
9822 } else {
9823 fra.me.REG[1] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
9824 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9825 if (UNTAG_Bool(REGB1)) {
9826 } else {
9827 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9828 if (UNTAG_Bool(REGB2)) {
9829 REGB2 = TAG_Bool(false);
9830 REGB1 = REGB2;
9831 } else {
9832 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9833 REGB1 = REGB2;
9834 }
9835 }
9836 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
9837 REGB0 = REGB1;
9838 }
9839 if (UNTAG_Bool(REGB0)) {
9840 /* ./syntax//mmbuilder.nit:1324 */
9841 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
9842 /* ./syntax//mmbuilder.nit:1325 */
9843 fra.me.REG[0] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9844 fra.me.REG[0] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[0])(fra.me.REG[0]);
9845 /* ./../lib/standard//collection//array.nit:234 */
9846 REGB0 = TAG_Int(0);
9847 /* ./../lib/standard//collection//array.nit:235 */
9848 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
9849 if (UNTAG_Bool(REGB1)) {
9850 } else {
9851 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
9852 }
9853 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
9854 /* ./../lib/standard//collection//array.nit:236 */
9855 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
9856 /* ./../lib/standard//collection//array.nit:237 */
9857 while(1) {
9858 /* ./../lib/standard//collection//array.nit:23 */
9859 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
9860 if (UNTAG_Bool(REGB1)) {
9861 } else {
9862 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
9863 }
9864 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
9865 /* ./../lib/standard//kernel.nit:215 */
9866 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
9867 /* ./../lib/standard//collection//array.nit:237 */
9868 if (UNTAG_Bool(REGB1)) {
9869 /* ./../lib/standard//collection//array.nit:238 */
9870 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9871 if (UNTAG_Bool(REGB1)) {
9872 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 238);
9873 }
9874 /* ./../lib/standard//collection//array.nit:654 */
9875 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
9876 /* ./syntax//mmbuilder.nit:1326 */
9877 fra.me.REG[6] = CALL_syntax___mmbuilder___AParam___stype(fra.me.REG[5])(fra.me.REG[5]);
9878 REGB1 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
9879 if (UNTAG_Bool(REGB1)) {
9880 } else {
9881 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1326);
9882 }
9883 fra.me.REG[5] = CALL_parser___parser_nodes___AParam___n_id(fra.me.REG[5])(fra.me.REG[5]);
9884 fra.me.REG[5] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
9885 fra.me.REG[5] = NEW_MMParam_metamodel___static_type___MMParam___init(fra.me.REG[6], fra.me.REG[5]);
9886 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
9887 /* ./../lib/standard//collection//array.nit:239 */
9888 REGB1 = TAG_Int(1);
9889 /* ./../lib/standard//kernel.nit:218 */
9890 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
9891 /* ./../lib/standard//collection//array.nit:239 */
9892 REGB0 = REGB1;
9893 } else {
9894 /* ./../lib/standard//collection//array.nit:237 */
9895 goto label3;
9896 }
9897 }
9898 label3: while(0);
9899 /* ./syntax//mmbuilder.nit:1328 */
9900 fra.me.REG[4] = NIT_NULL;
9901 /* ./syntax//mmbuilder.nit:1329 */
9902 fra.me.REG[0] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
9903 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9904 if (UNTAG_Bool(REGB0)) {
9905 } else {
9906 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9907 if (UNTAG_Bool(REGB1)) {
9908 REGB1 = TAG_Bool(false);
9909 REGB0 = REGB1;
9910 } else {
9911 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
9912 REGB0 = REGB1;
9913 }
9914 }
9915 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9916 if (UNTAG_Bool(REGB0)) {
9917 /* ./syntax//mmbuilder.nit:1330 */
9918 fra.me.REG[2] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
9919 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9920 if (UNTAG_Bool(REGB0)) {
9921 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1330);
9922 }
9923 fra.me.REG[2] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
9924 fra.me.REG[4] = fra.me.REG[2];
9925 /* ./syntax//mmbuilder.nit:1331 */
9926 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9927 if (UNTAG_Bool(REGB0)) {
9928 } else {
9929 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9930 if (UNTAG_Bool(REGB1)) {
9931 REGB1 = TAG_Bool(false);
9932 REGB0 = REGB1;
9933 } else {
9934 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
9935 REGB0 = REGB1;
9936 }
9937 }
9938 if (UNTAG_Bool(REGB0)) {
9939 /* ./syntax//mmbuilder.nit:1332 */
9940 fra.me.REG[2] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9941 REGB0 = TAG_Bool(true);
9942 CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
9943 /* ./syntax//mmbuilder.nit:1333 */
9944 goto label1;
9945 }
9946 }
9947 /* ./syntax//mmbuilder.nit:1336 */
9948 fra.me.REG[2] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9949 fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9950 fra.me.REG[0] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[0])(fra.me.REG[0]);
9951 fra.me.REG[0] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]);
9952 CALL_syntax___mmbuilder___SignatureBuilder___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9953 /* ./syntax//mmbuilder.nit:1337 */
9954 fra.me.REG[0] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9955 REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[0])(fra.me.REG[0]);
9956 REGB1 = TAG_Int(0);
9957 /* ./../lib/standard//kernel.nit:216 */
9958 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
9959 /* ./syntax//mmbuilder.nit:1337 */
9960 if (UNTAG_Bool(REGB1)) {
9961 /* ./syntax//mmbuilder.nit:1338 */
9962 fra.me.REG[0] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9963 fra.me.REG[0] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[0])(fra.me.REG[0]);
9964 fra.me.REG[2] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9965 REGB1 = CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[2])(fra.me.REG[2]);
9966 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9967 if (UNTAG_Bool(REGB0)) {
9968 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1338);
9969 }
9970 CALL_metamodel___vararg___MMSignature___vararg_rank__eq(fra.me.REG[0])(fra.me.REG[0], REGB1);
9971 }
9972 /* ./syntax//mmbuilder.nit:1340 */
9973 fra.me.REG[0] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9974 fra.me.REG[0] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[0])(fra.me.REG[0]);
9975 /* ./../lib/standard//collection//array.nit:234 */
9976 REGB1 = TAG_Int(0);
9977 /* ./../lib/standard//collection//array.nit:235 */
9978 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
9979 if (UNTAG_Bool(REGB0)) {
9980 } else {
9981 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
9982 }
9983 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
9984 /* ./../lib/standard//collection//array.nit:236 */
9985 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
9986 /* ./../lib/standard//collection//array.nit:237 */
9987 while(1) {
9988 /* ./../lib/standard//collection//array.nit:23 */
9989 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
9990 if (UNTAG_Bool(REGB0)) {
9991 } else {
9992 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
9993 }
9994 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
9995 /* ./../lib/standard//kernel.nit:215 */
9996 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
9997 /* ./../lib/standard//collection//array.nit:237 */
9998 if (UNTAG_Bool(REGB0)) {
9999 /* ./../lib/standard//collection//array.nit:238 */
10000 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10001 if (UNTAG_Bool(REGB0)) {
10002 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 238);
10003 }
10004 /* ./../lib/standard//collection//array.nit:654 */
10005 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
10006 /* ./syntax//mmbuilder.nit:1341 */
10007 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10008 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
10009 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10010 if (UNTAG_Bool(REGB0)) {
10011 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1341);
10012 }
10013 fra.me.REG[1] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
10014 fra.me.REG[4] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[4])(fra.me.REG[4]);
10015 fra.me.REG[4] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[4])(fra.me.REG[4]);
10016 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
10017 /* ./../lib/standard//collection//array.nit:239 */
10018 REGB0 = TAG_Int(1);
10019 /* ./../lib/standard//kernel.nit:218 */
10020 REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
10021 /* ./../lib/standard//collection//array.nit:239 */
10022 REGB1 = REGB0;
10023 } else {
10024 /* ./../lib/standard//collection//array.nit:237 */
10025 goto label4;
10026 }
10027 }
10028 label4: while(0);
10029 }
10030 }
10031 }
10032 label1: while(0);
10033 stack_frame_head = fra.me.prev;
10034 return;
10035 }
10036 void syntax___mmbuilder___ASignature___check_visibility(val_t p0, val_t p1, val_t p2){
10037 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10038 val_t REGB0;
10039 val_t REGB1;
10040 val_t tmp;
10041 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10042 fra.me.file = LOCATE_syntax___mmbuilder;
10043 fra.me.line = 1346;
10044 fra.me.meth = LOCATE_syntax___mmbuilder___ASignature___check_visibility;
10045 fra.me.has_broke = 0;
10046 fra.me.REG_size = 4;
10047 fra.me.REG[0] = NIT_NULL;
10048 fra.me.REG[1] = NIT_NULL;
10049 fra.me.REG[2] = NIT_NULL;
10050 fra.me.REG[3] = NIT_NULL;
10051 fra.me.REG[0] = p0;
10052 fra.me.REG[1] = p1;
10053 fra.me.REG[2] = p2;
10054 /* ./syntax//mmbuilder.nit:1349 */
10055 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
10056 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
10057 REGB1 = TAG_Int(3);
10058 /* ./../lib/standard//kernel.nit:216 */
10059 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
10060 /* ./syntax//mmbuilder.nit:1349 */
10061 if (UNTAG_Bool(REGB1)) {
10062 goto label1;
10063 }
10064 /* ./syntax//mmbuilder.nit:1350 */
10065 fra.me.REG[3] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[0])(fra.me.REG[0]);
10066 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___ASignature___check_visibility_2));
10067 /* ./syntax//mmbuilder.nit:1353 */
10068 fra.me.REG[3] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[0])(fra.me.REG[0]);
10069 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10070 if (UNTAG_Bool(REGB1)) {
10071 } else {
10072 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10073 if (UNTAG_Bool(REGB0)) {
10074 REGB0 = TAG_Bool(false);
10075 REGB1 = REGB0;
10076 } else {
10077 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10078 REGB1 = REGB0;
10079 }
10080 }
10081 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
10082 if (UNTAG_Bool(REGB1)) {
10083 fra.me.REG[0] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[0])(fra.me.REG[0]);
10084 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10085 if (UNTAG_Bool(REGB1)) {
10086 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1353);
10087 }
10088 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
10089 }
10090 label1: while(0);
10091 stack_frame_head = fra.me.prev;
10092 return;
10093 }
10094 void OC_syntax___mmbuilder___ASignature___check_visibility_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
10095 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10096 val_t REGB0;
10097 val_t REGB1;
10098 fun_t CREG[1];
10099 val_t tmp;
10100 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10101 fra.me.file = LOCATE_syntax___mmbuilder;
10102 fra.me.line = 0;
10103 fra.me.meth = LOCATE_syntax___mmbuilder___ASignature___check_visibility;
10104 fra.me.has_broke = 0;
10105 fra.me.REG_size = 2;
10106 fra.me.REG[0] = NIT_NULL;
10107 fra.me.REG[1] = NIT_NULL;
10108 fra.me.closure_ctx = closctx_param;
10109 fra.me.closure_funs = CREG;
10110 fra.me.REG[0] = p0;
10111 CREG[0] = clos_fun0;
10112 /* ./syntax//mmbuilder.nit:1351 */
10113 fra.me.REG[1] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[0])(fra.me.REG[0]);
10114 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10115 if (UNTAG_Bool(REGB0)) {
10116 } else {
10117 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10118 if (UNTAG_Bool(REGB1)) {
10119 REGB1 = TAG_Bool(false);
10120 REGB0 = REGB1;
10121 } else {
10122 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
10123 REGB0 = REGB1;
10124 }
10125 }
10126 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10127 if (UNTAG_Bool(REGB0)) {
10128 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[0])(fra.me.REG[0]);
10129 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10130 if (UNTAG_Bool(REGB0)) {
10131 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1351);
10132 }
10133 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1], closctx->REG[2]);
10134 }
10135 stack_frame_head = fra.me.prev;
10136 return;
10137 }
10138 val_t syntax___mmbuilder___AParam___position(val_t p0){
10139 struct {struct stack_frame_t me;} fra;
10140 val_t REGB0;
10141 val_t tmp;
10142 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10143 fra.me.file = LOCATE_syntax___mmbuilder;
10144 fra.me.line = 1358;
10145 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___position;
10146 fra.me.has_broke = 0;
10147 fra.me.REG_size = 1;
10148 fra.me.REG[0] = NIT_NULL;
10149 fra.me.REG[0] = p0;
10150 /* ./syntax//mmbuilder.nit:1358 */
10151 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___AParam____position(fra.me.REG[0])!=NIT_NULL);
10152 if (UNTAG_Bool(REGB0)) {
10153 } else {
10154 nit_abort("Uninitialized attribute %s", "_position", LOCATE_syntax___mmbuilder, 1358);
10155 }
10156 REGB0 = ATTR_syntax___mmbuilder___AParam____position(fra.me.REG[0]);
10157 stack_frame_head = fra.me.prev;
10158 return REGB0;
10159 }
10160 val_t syntax___mmbuilder___AParam___variable(val_t p0){
10161 struct {struct stack_frame_t me;} fra;
10162 val_t REGB0;
10163 val_t tmp;
10164 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10165 fra.me.file = LOCATE_syntax___mmbuilder;
10166 fra.me.line = 1360;
10167 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___variable;
10168 fra.me.has_broke = 0;
10169 fra.me.REG_size = 1;
10170 fra.me.REG[0] = NIT_NULL;
10171 fra.me.REG[0] = p0;
10172 /* ./syntax//mmbuilder.nit:1360 */
10173 fra.me.REG[0] = ATTR_syntax___mmbuilder___AParam____variable(fra.me.REG[0]);
10174 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
10175 if (UNTAG_Bool(REGB0)) {
10176 } else {
10177 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1360);
10178 }
10179 goto label1;
10180 label1: while(0);
10181 stack_frame_head = fra.me.prev;
10182 return fra.me.REG[0];
10183 }
10184 val_t syntax___mmbuilder___AParam___stype(val_t p0){
10185 struct {struct stack_frame_t me;} fra;
10186 val_t tmp;
10187 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10188 fra.me.file = LOCATE_syntax___mmbuilder;
10189 fra.me.line = 1363;
10190 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___stype;
10191 fra.me.has_broke = 0;
10192 fra.me.REG_size = 1;
10193 fra.me.REG[0] = NIT_NULL;
10194 fra.me.REG[0] = p0;
10195 /* ./syntax//mmbuilder.nit:1363 */
10196 fra.me.REG[0] = ATTR_syntax___mmbuilder___AParam____stype(fra.me.REG[0]);
10197 stack_frame_head = fra.me.prev;
10198 return fra.me.REG[0];
10199 }
10200 void syntax___mmbuilder___AParam___stype__eq(val_t p0, val_t p1){
10201 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10202 val_t tmp;
10203 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10204 fra.me.file = LOCATE_syntax___mmbuilder;
10205 fra.me.line = 1363;
10206 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___stype__eq;
10207 fra.me.has_broke = 0;
10208 fra.me.REG_size = 2;
10209 fra.me.REG[0] = NIT_NULL;
10210 fra.me.REG[1] = NIT_NULL;
10211 fra.me.REG[0] = p0;
10212 fra.me.REG[1] = p1;
10213 /* ./syntax//mmbuilder.nit:1363 */
10214 ATTR_syntax___mmbuilder___AParam____stype(fra.me.REG[0]) = fra.me.REG[1];
10215 stack_frame_head = fra.me.prev;
10216 return;
10217 }
10218 void syntax___mmbuilder___AParam___accept_property_verifier(val_t p0, val_t p1){
10219 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
10220 val_t REGB0;
10221 val_t REGB1;
10222 val_t REGB2;
10223 val_t REGB3;
10224 val_t tmp;
10225 static val_t once_value_2; /* Once value */
10226 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10227 fra.me.file = LOCATE_syntax___mmbuilder;
10228 fra.me.line = 1366;
10229 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___accept_property_verifier;
10230 fra.me.has_broke = 0;
10231 fra.me.REG_size = 7;
10232 fra.me.REG[0] = NIT_NULL;
10233 fra.me.REG[1] = NIT_NULL;
10234 fra.me.REG[2] = NIT_NULL;
10235 fra.me.REG[3] = NIT_NULL;
10236 fra.me.REG[4] = NIT_NULL;
10237 fra.me.REG[5] = NIT_NULL;
10238 fra.me.REG[6] = NIT_NULL;
10239 fra.me.REG[0] = p0;
10240 fra.me.REG[1] = p1;
10241 /* ./syntax//mmbuilder.nit:1366 */
10242 fra.me.REG[2] = fra.me.REG[0];
10243 fra.me.REG[3] = fra.me.REG[1];
10244 /* ./syntax//mmbuilder.nit:1368 */
10245 CALL_SUPER_syntax___mmbuilder___AParam___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
10246 /* ./syntax//mmbuilder.nit:1369 */
10247 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10248 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[1])(fra.me.REG[1]);
10249 /* ./../lib/standard//collection//array.nit:23 */
10250 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
10251 if (UNTAG_Bool(REGB0)) {
10252 } else {
10253 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
10254 }
10255 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
10256 /* ./syntax//mmbuilder.nit:1369 */
10257 ATTR_syntax___mmbuilder___AParam____position(fra.me.REG[2]) = REGB0;
10258 /* ./syntax//mmbuilder.nit:1370 */
10259 fra.me.REG[1] = CALL_parser___parser_nodes___AParam___n_id(fra.me.REG[2])(fra.me.REG[2]);
10260 fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
10261 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_id(fra.me.REG[2])(fra.me.REG[2]);
10262 fra.me.REG[0] = NEW_ParamVariable_syntax___syntax_base___ParamVariable___init(fra.me.REG[1], fra.me.REG[0]);
10263 ATTR_syntax___mmbuilder___AParam____variable(fra.me.REG[2]) = fra.me.REG[0];
10264 /* ./syntax//mmbuilder.nit:1371 */
10265 fra.me.REG[0] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10266 fra.me.REG[0] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[0])(fra.me.REG[0]);
10267 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
10268 /* ./syntax//mmbuilder.nit:1372 */
10269 fra.me.REG[0] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10270 fra.me.REG[0] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[0])(fra.me.REG[0]);
10271 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
10272 /* ./syntax//mmbuilder.nit:1373 */
10273 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[2])(fra.me.REG[2]);
10274 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10275 if (UNTAG_Bool(REGB0)) {
10276 } else {
10277 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10278 if (UNTAG_Bool(REGB1)) {
10279 REGB1 = TAG_Bool(false);
10280 REGB0 = REGB1;
10281 } else {
10282 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
10283 REGB0 = REGB1;
10284 }
10285 }
10286 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10287 if (UNTAG_Bool(REGB0)) {
10288 /* ./syntax//mmbuilder.nit:1374 */
10289 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[2])(fra.me.REG[2]);
10290 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10291 if (UNTAG_Bool(REGB0)) {
10292 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1374);
10293 }
10294 fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
10295 /* ./syntax//mmbuilder.nit:1375 */
10296 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10297 if (UNTAG_Bool(REGB0)) {
10298 } else {
10299 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10300 if (UNTAG_Bool(REGB1)) {
10301 REGB1 = TAG_Bool(false);
10302 REGB0 = REGB1;
10303 } else {
10304 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
10305 REGB0 = REGB1;
10306 }
10307 }
10308 if (UNTAG_Bool(REGB0)) {
10309 /* ./syntax//mmbuilder.nit:1376 */
10310 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10311 REGB0 = TAG_Bool(true);
10312 CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
10313 /* ./syntax//mmbuilder.nit:1377 */
10314 goto label1;
10315 }
10316 /* ./syntax//mmbuilder.nit:1379 */
10317 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10318 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
10319 /* ./../lib/standard//collection//array.nit:234 */
10320 REGB0 = TAG_Int(0);
10321 /* ./../lib/standard//collection//array.nit:235 */
10322 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
10323 if (UNTAG_Bool(REGB1)) {
10324 } else {
10325 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
10326 }
10327 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
10328 /* ./../lib/standard//collection//array.nit:236 */
10329 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
10330 /* ./../lib/standard//collection//array.nit:237 */
10331 while(1) {
10332 /* ./../lib/standard//collection//array.nit:23 */
10333 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
10334 if (UNTAG_Bool(REGB1)) {
10335 } else {
10336 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
10337 }
10338 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
10339 /* ./../lib/standard//kernel.nit:215 */
10340 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
10341 /* ./../lib/standard//collection//array.nit:237 */
10342 if (UNTAG_Bool(REGB1)) {
10343 /* ./../lib/standard//collection//array.nit:238 */
10344 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
10345 if (UNTAG_Bool(REGB1)) {
10346 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 238);
10347 }
10348 /* ./../lib/standard//collection//array.nit:654 */
10349 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
10350 /* ./syntax//mmbuilder.nit:1380 */
10351 CALL_syntax___mmbuilder___AParam___stype__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
10352 /* ./syntax//mmbuilder.nit:1381 */
10353 REGB1 = CALL_syntax___mmbuilder___AParam___is_vararg(fra.me.REG[2])(fra.me.REG[2]);
10354 if (UNTAG_Bool(REGB1)) {
10355 /* ./syntax//mmbuilder.nit:1382 */
10356 fra.me.REG[6] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10357 REGB1 = CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[6])(fra.me.REG[6]);
10358 REGB2 = TAG_Int(1);
10359 /* ./../lib/standard//kernel.nit:219 */
10360 REGB2 = TAG_Int(-UNTAG_Int(REGB2));
10361 /* ./syntax//mmbuilder.nit:1382 */
10362 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
10363 if (UNTAG_Bool(REGB3)) {
10364 } else {
10365 /* ./../lib/standard//kernel.nit:210 */
10366 REGB2 = TAG_Bool((REGB1)==(REGB2));
10367 /* ./syntax//mmbuilder.nit:1382 */
10368 REGB3 = REGB2;
10369 }
10370 if (UNTAG_Bool(REGB3)) {
10371 /* ./syntax//mmbuilder.nit:1383 */
10372 fra.me.REG[6] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10373 REGB3 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[5])(fra.me.REG[5]);
10374 CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank__eq(fra.me.REG[6])(fra.me.REG[6], REGB3);
10375 } else {
10376 /* ./syntax//mmbuilder.nit:1385 */
10377 if (!once_value_2) {
10378 fra.me.REG[6] = BOX_NativeString("Error: A vararg parameter is already defined.");
10379 REGB3 = TAG_Int(45);
10380 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB3);
10381 once_value_2 = fra.me.REG[6];
10382 register_static_object(&once_value_2);
10383 } else fra.me.REG[6] = once_value_2;
10384 fra.me.REG[6] = fra.me.REG[6];
10385 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
10386 }
10387 /* ./syntax//mmbuilder.nit:1387 */
10388 fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
10389 fra.me.REG[0] = fra.me.REG[6];
10390 }
10391 /* ./syntax//mmbuilder.nit:1389 */
10392 fra.me.REG[5] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[5])(fra.me.REG[5]);
10393 CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
10394 /* ./../lib/standard//collection//array.nit:239 */
10395 REGB3 = TAG_Int(1);
10396 /* ./../lib/standard//kernel.nit:218 */
10397 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
10398 /* ./../lib/standard//collection//array.nit:239 */
10399 REGB0 = REGB3;
10400 } else {
10401 /* ./../lib/standard//collection//array.nit:237 */
10402 goto label3;
10403 }
10404 }
10405 label3: while(0);
10406 /* ./syntax//mmbuilder.nit:1391 */
10407 fra.me.REG[3] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10408 fra.me.REG[3] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[3])(fra.me.REG[3]);
10409 CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[3])(fra.me.REG[3]);
10410 }
10411 label1: while(0);
10412 stack_frame_head = fra.me.prev;
10413 return;
10414 }
10415 val_t syntax___mmbuilder___AParam___is_vararg(val_t p0){
10416 struct {struct stack_frame_t me;} fra;
10417 val_t REGB0;
10418 val_t REGB1;
10419 val_t tmp;
10420 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10421 fra.me.file = LOCATE_syntax___mmbuilder;
10422 fra.me.line = 1395;
10423 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___is_vararg;
10424 fra.me.has_broke = 0;
10425 fra.me.REG_size = 1;
10426 fra.me.REG[0] = NIT_NULL;
10427 fra.me.REG[0] = p0;
10428 /* ./syntax//mmbuilder.nit:1395 */
10429 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_dotdotdot(fra.me.REG[0])(fra.me.REG[0]);
10430 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10431 if (UNTAG_Bool(REGB0)) {
10432 } else {
10433 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10434 if (UNTAG_Bool(REGB1)) {
10435 REGB1 = TAG_Bool(false);
10436 REGB0 = REGB1;
10437 } else {
10438 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
10439 REGB0 = REGB1;
10440 }
10441 }
10442 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10443 goto label1;
10444 label1: while(0);
10445 stack_frame_head = fra.me.prev;
10446 return REGB0;
10447 }
10448 val_t syntax___mmbuilder___AClosureDecl___position(val_t p0){
10449 struct {struct stack_frame_t me;} fra;
10450 val_t REGB0;
10451 val_t tmp;
10452 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10453 fra.me.file = LOCATE_syntax___mmbuilder;
10454 fra.me.line = 1399;
10455 fra.me.meth = LOCATE_syntax___mmbuilder___AClosureDecl___position;
10456 fra.me.has_broke = 0;
10457 fra.me.REG_size = 1;
10458 fra.me.REG[0] = NIT_NULL;
10459 fra.me.REG[0] = p0;
10460 /* ./syntax//mmbuilder.nit:1399 */
10461 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___AClosureDecl____position(fra.me.REG[0])!=NIT_NULL);
10462 if (UNTAG_Bool(REGB0)) {
10463 } else {
10464 nit_abort("Uninitialized attribute %s", "_position", LOCATE_syntax___mmbuilder, 1399);
10465 }
10466 REGB0 = ATTR_syntax___mmbuilder___AClosureDecl____position(fra.me.REG[0]);
10467 stack_frame_head = fra.me.prev;
10468 return REGB0;
10469 }
10470 val_t syntax___mmbuilder___AClosureDecl___variable(val_t p0){
10471 struct {struct stack_frame_t me;} fra;
10472 val_t REGB0;
10473 val_t tmp;
10474 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10475 fra.me.file = LOCATE_syntax___mmbuilder;
10476 fra.me.line = 1401;
10477 fra.me.meth = LOCATE_syntax___mmbuilder___AClosureDecl___variable;
10478 fra.me.has_broke = 0;
10479 fra.me.REG_size = 1;
10480 fra.me.REG[0] = NIT_NULL;
10481 fra.me.REG[0] = p0;
10482 /* ./syntax//mmbuilder.nit:1401 */
10483 fra.me.REG[0] = ATTR_syntax___mmbuilder___AClosureDecl____variable(fra.me.REG[0]);
10484 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
10485 if (UNTAG_Bool(REGB0)) {
10486 } else {
10487 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1401);
10488 }
10489 goto label1;
10490 label1: while(0);
10491 stack_frame_head = fra.me.prev;
10492 return fra.me.REG[0];
10493 }
10494 void syntax___mmbuilder___AClosureDecl___accept_property_verifier(val_t p0, val_t p1){
10495 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
10496 val_t REGB0;
10497 val_t REGB1;
10498 val_t REGB2;
10499 val_t tmp;
10500 static val_t once_value_2; /* Once value */
10501 static val_t once_value_3; /* Once value */
10502 static val_t once_value_4; /* Once value */
10503 static val_t once_value_5; /* Once value */
10504 static val_t once_value_6; /* Once value */
10505 static val_t once_value_7; /* Once value */
10506 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10507 fra.me.file = LOCATE_syntax___mmbuilder;
10508 fra.me.line = 1404;
10509 fra.me.meth = LOCATE_syntax___mmbuilder___AClosureDecl___accept_property_verifier;
10510 fra.me.has_broke = 0;
10511 fra.me.REG_size = 11;
10512 fra.me.REG[0] = NIT_NULL;
10513 fra.me.REG[1] = NIT_NULL;
10514 fra.me.REG[2] = NIT_NULL;
10515 fra.me.REG[3] = NIT_NULL;
10516 fra.me.REG[4] = NIT_NULL;
10517 fra.me.REG[5] = NIT_NULL;
10518 fra.me.REG[6] = NIT_NULL;
10519 fra.me.REG[7] = NIT_NULL;
10520 fra.me.REG[8] = NIT_NULL;
10521 fra.me.REG[9] = NIT_NULL;
10522 fra.me.REG[10] = NIT_NULL;
10523 fra.me.REG[0] = p0;
10524 fra.me.REG[1] = p1;
10525 /* ./syntax//mmbuilder.nit:1404 */
10526 fra.me.REG[2] = fra.me.REG[0];
10527 fra.me.REG[3] = fra.me.REG[1];
10528 /* ./syntax//mmbuilder.nit:1406 */
10529 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10530 /* ./syntax//mmbuilder.nit:1407 */
10531 fra.me.REG[5] = NEW_SignatureBuilder_syntax___mmbuilder___SignatureBuilder___init();
10532 CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
10533 /* ./syntax//mmbuilder.nit:1408 */
10534 CALL_SUPER_syntax___mmbuilder___AClosureDecl___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
10535 /* ./syntax//mmbuilder.nit:1409 */
10536 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10537 REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
10538 if (UNTAG_Bool(REGB0)) {
10539 /* ./syntax//mmbuilder.nit:1410 */
10540 goto label1;
10541 }
10542 /* ./syntax//mmbuilder.nit:1412 */
10543 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10544 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
10545 /* ./syntax//mmbuilder.nit:1413 */
10546 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10547 if (UNTAG_Bool(REGB0)) {
10548 } else {
10549 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10550 if (UNTAG_Bool(REGB1)) {
10551 REGB1 = TAG_Bool(false);
10552 REGB0 = REGB1;
10553 } else {
10554 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
10555 REGB0 = REGB1;
10556 }
10557 }
10558 if (UNTAG_Bool(REGB0)) {
10559 /* ./syntax//mmbuilder.nit:1414 */
10560 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
10561 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
10562 fra.me.REG[5] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]);
10563 fra.me.REG[5] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[5]);
10564 fra.me.REG[1] = fra.me.REG[5];
10565 }
10566 /* ./syntax//mmbuilder.nit:1416 */
10567 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10568 if (UNTAG_Bool(REGB0)) {
10569 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1416);
10570 }
10571 fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[1])(fra.me.REG[1]);
10572 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10573 if (UNTAG_Bool(REGB0)) {
10574 } else {
10575 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10576 if (UNTAG_Bool(REGB1)) {
10577 REGB1 = TAG_Bool(false);
10578 REGB0 = REGB1;
10579 } else {
10580 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10581 REGB0 = REGB1;
10582 }
10583 }
10584 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10585 if (UNTAG_Bool(REGB0)) {
10586 fra.me.REG[5] = CALL_parser___parser_nodes___AClosureDecl___n_kwbreak(fra.me.REG[2])(fra.me.REG[2]);
10587 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10588 if (UNTAG_Bool(REGB0)) {
10589 } else {
10590 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10591 if (UNTAG_Bool(REGB1)) {
10592 REGB1 = TAG_Bool(false);
10593 REGB0 = REGB1;
10594 } else {
10595 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10596 REGB0 = REGB1;
10597 }
10598 }
10599 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10600 } else {
10601 REGB1 = TAG_Bool(false);
10602 REGB0 = REGB1;
10603 }
10604 if (UNTAG_Bool(REGB0)) {
10605 /* ./syntax//mmbuilder.nit:1417 */
10606 if (!once_value_2) {
10607 fra.me.REG[5] = BOX_NativeString("Syntax Error: A break block cannot have a return value.");
10608 REGB0 = TAG_Int(55);
10609 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
10610 once_value_2 = fra.me.REG[5];
10611 register_static_object(&once_value_2);
10612 } else fra.me.REG[5] = once_value_2;
10613 fra.me.REG[5] = fra.me.REG[5];
10614 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[5]);
10615 }
10616 /* ./syntax//mmbuilder.nit:1421 */
10617 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
10618 fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
10619 fra.me.REG[0] = CALL_metamodel___inheritance___MMModule___type_any(fra.me.REG[0])(fra.me.REG[0]);
10620 fra.me.REG[0] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[5], NIT_NULL, fra.me.REG[0]);
10621 /* ./syntax//mmbuilder.nit:1422 */
10622 if (!once_value_3) {
10623 if (!once_value_4) {
10624 fra.me.REG[5] = BOX_NativeString("break");
10625 REGB0 = TAG_Int(5);
10626 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
10627 once_value_4 = fra.me.REG[5];
10628 register_static_object(&once_value_4);
10629 } else fra.me.REG[5] = once_value_4;
10630 fra.me.REG[5] = fra.me.REG[5];
10631 fra.me.REG[5] = CALL_standard___symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
10632 once_value_3 = fra.me.REG[5];
10633 register_static_object(&once_value_3);
10634 } else fra.me.REG[5] = once_value_3;
10635 fra.me.REG[5] = fra.me.REG[5];
10636 REGB0 = TAG_Bool(false);
10637 REGB1 = TAG_Bool(true);
10638 fra.me.REG[0] = NEW_MMClosure_metamodel___static_type___MMClosure___init(fra.me.REG[5], fra.me.REG[0], REGB0, REGB1);
10639 /* ./syntax//mmbuilder.nit:1423 */
10640 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10641 if (UNTAG_Bool(REGB1)) {
10642 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1423);
10643 }
10644 fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
10645 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
10646 /* ./syntax//mmbuilder.nit:1425 */
10647 fra.me.REG[0] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10648 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
10649 /* ./syntax//mmbuilder.nit:1426 */
10650 fra.me.REG[5] = CALL_parser___parser_nodes___AClosureDecl___n_kwbreak(fra.me.REG[2])(fra.me.REG[2]);
10651 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10652 if (UNTAG_Bool(REGB1)) {
10653 } else {
10654 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10655 if (UNTAG_Bool(REGB0)) {
10656 REGB0 = TAG_Bool(false);
10657 REGB1 = REGB0;
10658 } else {
10659 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10660 REGB1 = REGB0;
10661 }
10662 }
10663 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
10664 fra.me.REG[5] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra.me.REG[2])(fra.me.REG[2]);
10665 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10666 if (UNTAG_Bool(REGB0)) {
10667 } else {
10668 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10669 if (UNTAG_Bool(REGB2)) {
10670 REGB2 = TAG_Bool(false);
10671 REGB0 = REGB2;
10672 } else {
10673 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10674 REGB0 = REGB2;
10675 }
10676 }
10677 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10678 fra.me.REG[1] = NEW_MMClosure_metamodel___static_type___MMClosure___init(fra.me.REG[0], fra.me.REG[1], REGB1, REGB0);
10679 /* ./syntax//mmbuilder.nit:1427 */
10680 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
10681 /* ./../lib/standard//collection//array.nit:234 */
10682 REGB0 = TAG_Int(0);
10683 /* ./../lib/standard//collection//array.nit:235 */
10684 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
10685 if (UNTAG_Bool(REGB1)) {
10686 } else {
10687 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
10688 }
10689 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
10690 /* ./../lib/standard//collection//array.nit:236 */
10691 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
10692 /* ./../lib/standard//collection//array.nit:237 */
10693 while(1) {
10694 /* ./../lib/standard//collection//array.nit:23 */
10695 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
10696 if (UNTAG_Bool(REGB1)) {
10697 } else {
10698 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
10699 }
10700 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
10701 /* ./../lib/standard//kernel.nit:215 */
10702 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
10703 /* ./../lib/standard//collection//array.nit:237 */
10704 if (UNTAG_Bool(REGB1)) {
10705 /* ./../lib/standard//collection//array.nit:238 */
10706 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
10707 if (UNTAG_Bool(REGB1)) {
10708 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 238);
10709 }
10710 /* ./../lib/standard//collection//array.nit:654 */
10711 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
10712 /* ./syntax//mmbuilder.nit:1428 */
10713 fra.me.REG[8] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[7])(fra.me.REG[7]);
10714 fra.me.REG[8] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[8])(fra.me.REG[8]);
10715 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[8],fra.me.REG[0]));
10716 if (UNTAG_Bool(REGB1)) {
10717 } else {
10718 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
10719 REGB1 = REGB2;
10720 }
10721 if (UNTAG_Bool(REGB1)) {
10722 /* ./syntax//mmbuilder.nit:1429 */
10723 fra.me.REG[8] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10724 REGB1 = TAG_Int(5);
10725 fra.me.REG[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10726 if (!once_value_5) {
10727 fra.me.REG[10] = BOX_NativeString("A closure '!");
10728 REGB1 = TAG_Int(12);
10729 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
10730 once_value_5 = fra.me.REG[10];
10731 register_static_object(&once_value_5);
10732 } else fra.me.REG[10] = once_value_5;
10733 fra.me.REG[10] = fra.me.REG[10];
10734 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10735 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
10736 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10737 if (!once_value_6) {
10738 fra.me.REG[10] = BOX_NativeString("' already defined at ");
10739 REGB1 = TAG_Int(21);
10740 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
10741 once_value_6 = fra.me.REG[10];
10742 register_static_object(&once_value_6);
10743 } else fra.me.REG[10] = once_value_6;
10744 fra.me.REG[10] = fra.me.REG[10];
10745 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10746 fra.me.REG[7] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[7])(fra.me.REG[7]);
10747 fra.me.REG[7] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[7])(fra.me.REG[7]);
10748 fra.me.REG[10] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10749 fra.me.REG[10] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[10])(fra.me.REG[10]);
10750 fra.me.REG[10] = CALL_location___Location___relative_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
10751 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10752 if (!once_value_7) {
10753 fra.me.REG[10] = BOX_NativeString(".");
10754 REGB1 = TAG_Int(1);
10755 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
10756 once_value_7 = fra.me.REG[10];
10757 register_static_object(&once_value_7);
10758 } else fra.me.REG[10] = once_value_7;
10759 fra.me.REG[10] = fra.me.REG[10];
10760 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10761 fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
10762 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8], fra.me.REG[9]);
10763 /* ./syntax//mmbuilder.nit:1430 */
10764 goto label1;
10765 }
10766 /* ./../lib/standard//collection//array.nit:239 */
10767 REGB1 = TAG_Int(1);
10768 /* ./../lib/standard//kernel.nit:218 */
10769 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
10770 /* ./../lib/standard//collection//array.nit:239 */
10771 REGB0 = REGB1;
10772 } else {
10773 /* ./../lib/standard//collection//array.nit:237 */
10774 goto label8;
10775 }
10776 }
10777 label8: while(0);
10778 /* ./syntax//mmbuilder.nit:1433 */
10779 CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
10780 /* ./syntax//mmbuilder.nit:1434 */
10781 fra.me.REG[3] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
10782 /* ./../lib/standard//collection//array.nit:23 */
10783 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
10784 if (UNTAG_Bool(REGB0)) {
10785 } else {
10786 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
10787 }
10788 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
10789 /* ./syntax//mmbuilder.nit:1434 */
10790 ATTR_syntax___mmbuilder___AClosureDecl____position(fra.me.REG[2]) = REGB0;
10791 /* ./syntax//mmbuilder.nit:1435 */
10792 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
10793 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
10794 /* ./syntax//mmbuilder.nit:1436 */
10795 fra.me.REG[4] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10796 fra.me.REG[4] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
10797 fra.me.REG[3] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10798 fra.me.REG[1] = NEW_ClosureVariable_syntax___syntax_base___ClosureVariable___init(fra.me.REG[4], fra.me.REG[3], fra.me.REG[1]);
10799 ATTR_syntax___mmbuilder___AClosureDecl____variable(fra.me.REG[2]) = fra.me.REG[1];
10800 label1: while(0);
10801 stack_frame_head = fra.me.prev;
10802 return;
10803 }
10804 void syntax___mmbuilder___AType___check_visibility(val_t p0, val_t p1, val_t p2){
10805 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
10806 val_t REGB0;
10807 val_t REGB1;
10808 val_t tmp;
10809 static val_t once_value_2; /* Once value */
10810 static val_t once_value_3; /* Once value */
10811 static val_t once_value_4; /* Once value */
10812 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10813 fra.me.file = LOCATE_syntax___mmbuilder;
10814 fra.me.line = 1441;
10815 fra.me.meth = LOCATE_syntax___mmbuilder___AType___check_visibility;
10816 fra.me.has_broke = 0;
10817 fra.me.REG_size = 6;
10818 fra.me.REG[0] = NIT_NULL;
10819 fra.me.REG[1] = NIT_NULL;
10820 fra.me.REG[2] = NIT_NULL;
10821 fra.me.REG[3] = NIT_NULL;
10822 fra.me.REG[4] = NIT_NULL;
10823 fra.me.REG[5] = NIT_NULL;
10824 fra.me.REG[0] = p0;
10825 fra.me.REG[1] = p1;
10826 fra.me.REG[2] = p2;
10827 /* ./syntax//mmbuilder.nit:1444 */
10828 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
10829 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
10830 REGB1 = TAG_Int(3);
10831 /* ./../lib/standard//kernel.nit:216 */
10832 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
10833 /* ./syntax//mmbuilder.nit:1444 */
10834 if (UNTAG_Bool(REGB1)) {
10835 goto label1;
10836 }
10837 /* ./syntax//mmbuilder.nit:1445 */
10838 fra.me.REG[3] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
10839 /* ./syntax//mmbuilder.nit:1446 */
10840 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10841 if (UNTAG_Bool(REGB1)) {
10842 } else {
10843 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10844 if (UNTAG_Bool(REGB0)) {
10845 REGB0 = TAG_Bool(false);
10846 REGB1 = REGB0;
10847 } else {
10848 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10849 REGB1 = REGB0;
10850 }
10851 }
10852 if (UNTAG_Bool(REGB1)) {
10853 goto label1;
10854 }
10855 /* ./syntax//mmbuilder.nit:1447 */
10856 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10857 if (UNTAG_Bool(REGB1)) {
10858 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1447);
10859 }
10860 fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]);
10861 /* ./syntax//mmbuilder.nit:1448 */
10862 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
10863 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[4])(fra.me.REG[4]);
10864 REGB0 = TAG_Int(3);
10865 /* ./../lib/standard//kernel.nit:216 */
10866 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
10867 /* ./syntax//mmbuilder.nit:1448 */
10868 if (UNTAG_Bool(REGB0)) {
10869 /* ./syntax//mmbuilder.nit:1449 */
10870 REGB0 = TAG_Int(5);
10871 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
10872 if (!once_value_2) {
10873 fra.me.REG[5] = BOX_NativeString("Access error: Class ");
10874 REGB0 = TAG_Int(20);
10875 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
10876 once_value_2 = fra.me.REG[5];
10877 register_static_object(&once_value_2);
10878 } else fra.me.REG[5] = once_value_2;
10879 fra.me.REG[5] = fra.me.REG[5];
10880 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
10881 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
10882 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
10883 if (!once_value_3) {
10884 fra.me.REG[3] = BOX_NativeString(" is private and cannot be used in the signature of the non-private property ");
10885 REGB0 = TAG_Int(76);
10886 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
10887 once_value_3 = fra.me.REG[3];
10888 register_static_object(&once_value_3);
10889 } else fra.me.REG[3] = once_value_3;
10890 fra.me.REG[3] = fra.me.REG[3];
10891 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
10892 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
10893 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
10894 if (!once_value_4) {
10895 fra.me.REG[3] = BOX_NativeString(".");
10896 REGB0 = TAG_Int(1);
10897 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
10898 once_value_4 = fra.me.REG[3];
10899 register_static_object(&once_value_4);
10900 } else fra.me.REG[3] = once_value_4;
10901 fra.me.REG[3] = fra.me.REG[3];
10902 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
10903 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
10904 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
10905 }
10906 /* ./syntax//mmbuilder.nit:1451 */
10907 fra.me.REG[0] = CALL_parser___parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
10908 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___AType___check_visibility_5));
10909 label1: while(0);
10910 stack_frame_head = fra.me.prev;
10911 return;
10912 }
10913 void OC_syntax___mmbuilder___AType___check_visibility_5(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
10914 struct {struct stack_frame_t me;} fra;
10915 fun_t CREG[1];
10916 val_t tmp;
10917 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10918 fra.me.file = LOCATE_syntax___mmbuilder;
10919 fra.me.line = 0;
10920 fra.me.meth = LOCATE_syntax___mmbuilder___AType___check_visibility;
10921 fra.me.has_broke = 0;
10922 fra.me.REG_size = 1;
10923 fra.me.REG[0] = NIT_NULL;
10924 fra.me.closure_ctx = closctx_param;
10925 fra.me.closure_funs = CREG;
10926 fra.me.REG[0] = p0;
10927 CREG[0] = clos_fun0;
10928 /* ./syntax//mmbuilder.nit:1452 */
10929 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1], closctx->REG[2]);
10930 stack_frame_head = fra.me.prev;
10931 return;
10932 }
10933 void syntax___mmbuilder___AExpr___accept_class_builder(val_t p0, val_t p1){
10934 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10935 val_t tmp;
10936 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10937 fra.me.file = LOCATE_syntax___mmbuilder;
10938 fra.me.line = 1458;
10939 fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___accept_class_builder;
10940 fra.me.has_broke = 0;
10941 fra.me.REG_size = 2;
10942 fra.me.REG[0] = NIT_NULL;
10943 fra.me.REG[1] = NIT_NULL;
10944 fra.me.REG[0] = p0;
10945 fra.me.REG[1] = p1;
10946 stack_frame_head = fra.me.prev;
10947 return;
10948 }
10949 void syntax___mmbuilder___AExpr___accept_property_builder(val_t p0, val_t p1){
10950 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10951 val_t tmp;
10952 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10953 fra.me.file = LOCATE_syntax___mmbuilder;
10954 fra.me.line = 1459;
10955 fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___accept_property_builder;
10956 fra.me.has_broke = 0;
10957 fra.me.REG_size = 2;
10958 fra.me.REG[0] = NIT_NULL;
10959 fra.me.REG[1] = NIT_NULL;
10960 fra.me.REG[0] = p0;
10961 fra.me.REG[1] = p1;
10962 stack_frame_head = fra.me.prev;
10963 return;
10964 }
10965 void syntax___mmbuilder___AExpr___accept_property_verifier(val_t p0, val_t p1){
10966 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10967 val_t tmp;
10968 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10969 fra.me.file = LOCATE_syntax___mmbuilder;
10970 fra.me.line = 1460;
10971 fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___accept_property_verifier;
10972 fra.me.has_broke = 0;
10973 fra.me.REG_size = 2;
10974 fra.me.REG[0] = NIT_NULL;
10975 fra.me.REG[1] = NIT_NULL;
10976 fra.me.REG[0] = p0;
10977 fra.me.REG[1] = p1;
10978 stack_frame_head = fra.me.prev;
10979 return;
10980 }