Merge remote branch 'pu/new-style_attributes' into wip
[nit.git] / c_src / mmbuilder._sep.c
1 /* This C file is generated by NIT to compile module mmbuilder. */
2 #include "mmbuilder._sep.h"
3 val_t mmbuilder___CSHSorter___compare(val_t p0, val_t p1, val_t p2){
4 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
5 val_t REGB0;
6 val_t REGB1;
7 val_t tmp;
8 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9 fra.me.file = LOCATE_mmbuilder;
10 fra.me.line = 27;
11 fra.me.meth = LOCATE_mmbuilder___CSHSorter___compare;
12 fra.me.has_broke = 0;
13 fra.me.REG_size = 3;
14 fra.me.REG[0] = NIT_NULL;
15 fra.me.REG[1] = NIT_NULL;
16 fra.me.REG[2] = NIT_NULL;
17 fra.me.REG[0] = p0;
18 fra.me.REG[1] = p1;
19 fra.me.REG[2] = p2;
20 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[1])(fra.me.REG[1]);
21 REGB0 = CALL_partial_order___PartialOrderElement___rank(fra.me.REG[1])(fra.me.REG[1]);
22 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[2])(fra.me.REG[2]);
23 REGB1 = CALL_partial_order___PartialOrderElement___rank(fra.me.REG[2])(fra.me.REG[2]);
24 REGB1 = CALL_kernel___Comparable_____leqg(REGB0)(REGB0, REGB1);
25 /* ./syntax//mmbuilder.nit:29 */
26 goto label1;
27 label1: while(0);
28 stack_frame_head = fra.me.prev;
29 return REGB1;
30 }
31 void mmbuilder___CSHSorter___init(val_t p0, int* init_table){
32 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_CSHSorter].i;
33 struct {struct stack_frame_t me;} fra;
34 val_t tmp;
35 if (init_table[itpos0]) return;
36 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37 fra.me.file = LOCATE_mmbuilder;
38 fra.me.line = 32;
39 fra.me.meth = LOCATE_mmbuilder___CSHSorter___init;
40 fra.me.has_broke = 0;
41 fra.me.REG_size = 1;
42 fra.me.REG[0] = NIT_NULL;
43 fra.me.REG[0] = p0;
44 /* ./syntax//mmbuilder.nit:32 */
45 CALL_sorter___AbstractSorter___init(fra.me.REG[0])(fra.me.REG[0], init_table);
46 stack_frame_head = fra.me.prev;
47 init_table[itpos0] = 1;
48 return;
49 }
50 void mmbuilder___MMSrcModule___do_mmbuilder(val_t p0, val_t p1){
51 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
52 val_t REGB0;
53 val_t REGB1;
54 val_t tmp;
55 static val_t once_value_3; /* Once value */
56 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
57 fra.me.file = LOCATE_mmbuilder;
58 fra.me.line = 36;
59 fra.me.meth = LOCATE_mmbuilder___MMSrcModule___do_mmbuilder;
60 fra.me.has_broke = 0;
61 fra.me.REG_size = 7;
62 fra.me.REG[0] = NIT_NULL;
63 fra.me.REG[1] = NIT_NULL;
64 fra.me.REG[2] = NIT_NULL;
65 fra.me.REG[3] = NIT_NULL;
66 fra.me.REG[4] = NIT_NULL;
67 fra.me.REG[5] = NIT_NULL;
68 fra.me.REG[6] = NIT_NULL;
69 fra.me.REG[0] = p0;
70 fra.me.REG[1] = p1;
71 /* ./syntax//mmbuilder.nit:41 */
72 CALL_inheritance___MMModule___import_global_classes(fra.me.REG[0])(fra.me.REG[0]);
73 fra.me.REG[2] = NEW_ClassBuilderVisitor_mmbuilder___ClassBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]);
74 fra.me.REG[3] = CALL_syntax_base___MMSrcModule___node(fra.me.REG[0])(fra.me.REG[0]);
75 /* ./syntax//mmbuilder.nit:45 */
76 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
77 /* ./syntax//mmbuilder.nit:46 */
78 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
79 fra.me.REG[3] = CALL_abstractmetamodel___MMModule___mhe(fra.me.REG[0])(fra.me.REG[0]);
80 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
81 /* ./syntax//mmbuilder.nit:48 */
82 if (UNTAG_Bool(REGB0)) {
83 fprintf(stderr, "Reciever is null");
84 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 48);
85 nit_exit(1);
86 }
87 fra.me.REG[3] = CALL_partial_order___PartialOrderElement___direct_greaters(fra.me.REG[3])(fra.me.REG[3]);
88 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
89 if (UNTAG_Bool(REGB0)) {
90 /* ./syntax//mmbuilder.nit:49 */
91 CALL_mmbuilder___MMSrcModule___process_default_classes(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
92 }
93 /* ./syntax//mmbuilder.nit:53 */
94 CALL_inheritance___MMModule___import_local_classes(fra.me.REG[0])(fra.me.REG[0]);
95 fra.me.REG[3] = NEW_ClassSpecializationBuilderVisitor_mmbuilder___ClassSpecializationBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]);
96 fra.me.REG[2] = CALL_syntax_base___MMSrcModule___node(fra.me.REG[0])(fra.me.REG[0]);
97 /* ./syntax//mmbuilder.nit:57 */
98 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
99 /* ./syntax//mmbuilder.nit:58 */
100 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
101 fra.me.REG[2] = CALL_abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
102 fra.me.REG[2] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
103 /* ./syntax//mmbuilder.nit:61 */
104 while(1) {
105 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[2])(fra.me.REG[2]);
106 if (UNTAG_Bool(REGB0)) {
107 fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[2])(fra.me.REG[2]);
108 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
109 fra.me.REG[4] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[4])(fra.me.REG[4]);
110 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___module(fra.me.REG[4])(fra.me.REG[4]);
111 REGB0 = CALL_abstractmetamodel___MMModule___visibility_for(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
112 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
113 REGB1 = CALL_abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[4])(fra.me.REG[4]);
114 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
115 /* ./syntax//mmbuilder.nit:62 */
116 if (UNTAG_Bool(REGB1)) {
117 /* ./syntax//mmbuilder.nit:63 */
118 goto label1;
119 }
120 /* ./syntax//mmbuilder.nit:65 */
121 CALL_inheritance___MMLocalClass___compute_super_classes(fra.me.REG[3])(fra.me.REG[3]);
122 label1: while(0);
123 } else {
124 /* ./syntax//mmbuilder.nit:61 */
125 goto label2;
126 }
127 CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]);
128 }
129 label2: while(0);
130 /* ./syntax//mmbuilder.nit:67 */
131 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
132 fra.me.REG[2] = CALL_abstractmetamodel___MMModule___class_specialization_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
133 fra.me.REG[2] = CALL_array___Collection___to_a(fra.me.REG[2])(fra.me.REG[2]);
134 /* ./syntax//mmbuilder.nit:75 */
135 if (!once_value_3) {
136 fra.me.REG[3] = NEW_CSHSorter_mmbuilder___CSHSorter___init();
137 once_value_3 = fra.me.REG[3];
138 register_static_object(&once_value_3);
139 } else fra.me.REG[3] = once_value_3;
140 /* ./syntax//mmbuilder.nit:76 */
141 CALL_sorter___AbstractSorter___sort(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
142 fra.me.REG[3] = NEW_ClassAncestorBuilder_mmbuilder___ClassAncestorBuilder___init(fra.me.REG[1], fra.me.REG[0]);
143 fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
144 /* ./syntax//mmbuilder.nit:80 */
145 while(1) {
146 REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]);
147 if (UNTAG_Bool(REGB1)) {
148 fra.me.REG[5] = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]);
149 /* ./syntax//mmbuilder.nit:81 */
150 CALL_mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
151 /* ./syntax//mmbuilder.nit:82 */
152 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
153 /* ./syntax//mmbuilder.nit:83 */
154 CALL_inheritance___MMLocalClass___compute_ancestors(fra.me.REG[5])(fra.me.REG[5]);
155 } else {
156 /* ./syntax//mmbuilder.nit:80 */
157 goto label4;
158 }
159 CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]);
160 }
161 label4: while(0);
162 fra.me.REG[4] = NEW_ClassVerifierVisitor_mmbuilder___ClassVerifierVisitor___init(fra.me.REG[1], fra.me.REG[0]);
163 fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
164 /* ./syntax//mmbuilder.nit:88 */
165 while(1) {
166 REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]);
167 if (UNTAG_Bool(REGB1)) {
168 fra.me.REG[5] = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]);
169 /* ./syntax//mmbuilder.nit:89 */
170 CALL_mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
171 } else {
172 /* ./syntax//mmbuilder.nit:88 */
173 goto label5;
174 }
175 CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]);
176 }
177 label5: while(0);
178 /* ./syntax//mmbuilder.nit:91 */
179 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
180 fra.me.REG[3] = NEW_PropertyBuilderVisitor_mmbuilder___PropertyBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]);
181 fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
182 /* ./syntax//mmbuilder.nit:95 */
183 while(1) {
184 REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]);
185 if (UNTAG_Bool(REGB1)) {
186 fra.me.REG[5] = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]);
187 /* ./syntax//mmbuilder.nit:97 */
188 CALL_inheritance___MMLocalClass___inherit_global_properties(fra.me.REG[5])(fra.me.REG[5]);
189 /* ./syntax//mmbuilder.nit:100 */
190 CALL_mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
191 REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[5], COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
192 /* ./syntax//mmbuilder.nit:103 */
193 if (UNTAG_Bool(REGB1)) {
194 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
195 fra.me.REG[6] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[6])(fra.me.REG[6]);
196 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[6],fra.me.REG[5]));
197 if (UNTAG_Bool(REGB1)) {
198 } else {
199 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
200 REGB1 = REGB0;
201 }
202 } else {
203 REGB0 = TAG_Bool(false);
204 REGB1 = REGB0;
205 }
206 if (UNTAG_Bool(REGB1)) {
207 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
208 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_universal(fra.me.REG[6])(fra.me.REG[6]);
209 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
210 } else {
211 REGB0 = TAG_Bool(false);
212 REGB1 = REGB0;
213 }
214 if (UNTAG_Bool(REGB1)) {
215 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
216 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
217 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
218 } else {
219 REGB0 = TAG_Bool(false);
220 REGB1 = REGB0;
221 }
222 if (UNTAG_Bool(REGB1)) {
223 /* ./syntax//mmbuilder.nit:104 */
224 CALL_mmbuilder___MMSrcLocalClass___process_default_constructors(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
225 }
226 } else {
227 /* ./syntax//mmbuilder.nit:95 */
228 goto label6;
229 }
230 CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]);
231 }
232 label6: while(0);
233 /* ./syntax//mmbuilder.nit:109 */
234 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
235 fra.me.REG[4] = NEW_PropertyVerifierVisitor_mmbuilder___PropertyVerifierVisitor___init(fra.me.REG[1], fra.me.REG[0]);
236 fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
237 /* ./syntax//mmbuilder.nit:113 */
238 while(1) {
239 REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]);
240 if (UNTAG_Bool(REGB1)) {
241 fra.me.REG[5] = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]);
242 /* ./syntax//mmbuilder.nit:114 */
243 CALL_mmbuilder___MMLocalClass___accept_properties_visitor(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
244 } else {
245 /* ./syntax//mmbuilder.nit:113 */
246 goto label7;
247 }
248 CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]);
249 }
250 label7: while(0);
251 fra.me.REG[2] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
252 /* ./syntax//mmbuilder.nit:118 */
253 while(1) {
254 REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[2])(fra.me.REG[2]);
255 if (UNTAG_Bool(REGB1)) {
256 fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[2])(fra.me.REG[2]);
257 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[3])(fra.me.REG[3]);
258 fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[4])(fra.me.REG[4]);
259 /* ./syntax//mmbuilder.nit:119 */
260 while(1) {
261 REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]);
262 if (UNTAG_Bool(REGB1)) {
263 fra.me.REG[5] = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]);
264 fra.me.REG[6] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[5])(fra.me.REG[5]);
265 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___module(fra.me.REG[6])(fra.me.REG[6]);
266 REGB1 = CALL_abstractmetamodel___MMModule___visibility_for(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
267 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[5])(fra.me.REG[5]);
268 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
269 /* ./syntax//mmbuilder.nit:120 */
270 if (UNTAG_Bool(REGB0)) {
271 goto label8;
272 }
273 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
274 /* ./syntax//mmbuilder.nit:121 */
275 label8: while(0);
276 } else {
277 /* ./syntax//mmbuilder.nit:119 */
278 goto label9;
279 }
280 CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]);
281 }
282 label9: while(0);
283 } else {
284 /* ./syntax//mmbuilder.nit:118 */
285 goto label10;
286 }
287 CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]);
288 }
289 label10: while(0);
290 /* ./syntax//mmbuilder.nit:125 */
291 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
292 stack_frame_head = fra.me.prev;
293 return;
294 }
295 void mmbuilder___MMSrcModule___process_default_classes(val_t p0, val_t p1){
296 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
297 val_t REGB0;
298 val_t tmp;
299 static val_t once_value_1; /* Once value */
300 static val_t once_value_2; /* Once value */
301 static val_t once_value_3; /* Once value */
302 static val_t once_value_4; /* Once value */
303 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
304 fra.me.file = LOCATE_mmbuilder;
305 fra.me.line = 128;
306 fra.me.meth = LOCATE_mmbuilder___MMSrcModule___process_default_classes;
307 fra.me.has_broke = 0;
308 fra.me.REG_size = 4;
309 fra.me.REG[0] = NIT_NULL;
310 fra.me.REG[1] = NIT_NULL;
311 fra.me.REG[2] = NIT_NULL;
312 fra.me.REG[3] = NIT_NULL;
313 fra.me.REG[0] = p0;
314 fra.me.REG[1] = p1;
315 /* ./syntax//mmbuilder.nit:131 */
316 if (!once_value_1) {
317 if (!once_value_2) {
318 fra.me.REG[1] = BOX_NativeString("Object");
319 REGB0 = TAG_Int(6);
320 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
321 once_value_2 = fra.me.REG[1];
322 register_static_object(&once_value_2);
323 } else fra.me.REG[1] = once_value_2;
324 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
325 once_value_1 = fra.me.REG[1];
326 register_static_object(&once_value_1);
327 } else fra.me.REG[1] = once_value_1;
328 REGB0 = CALL_abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
329 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
330 /* ./syntax//mmbuilder.nit:132 */
331 if (UNTAG_Bool(REGB0)) {
332 REGB0 = TAG_Int(0);
333 fra.me.REG[2] = NEW_MMSrcLocalClass_syntax_base___MMSrcLocalClass___init(fra.me.REG[0], fra.me.REG[1], NIT_NULL, REGB0);
334 /* ./syntax//mmbuilder.nit:134 */
335 CALL_abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
336 fra.me.REG[3] = CALL_syntax_base___MMSrcModule___src_local_classes(fra.me.REG[0])(fra.me.REG[0]);
337 /* ./syntax//mmbuilder.nit:135 */
338 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[2]);
339 }
340 /* ./syntax//mmbuilder.nit:137 */
341 if (!once_value_3) {
342 if (!once_value_4) {
343 fra.me.REG[2] = BOX_NativeString("Bool");
344 REGB0 = TAG_Int(4);
345 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
346 once_value_4 = fra.me.REG[2];
347 register_static_object(&once_value_4);
348 } else fra.me.REG[2] = once_value_4;
349 fra.me.REG[2] = CALL_symbol___String___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
350 once_value_3 = fra.me.REG[2];
351 register_static_object(&once_value_3);
352 } else fra.me.REG[2] = once_value_3;
353 fra.me.REG[1] = fra.me.REG[2];
354 REGB0 = CALL_abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
355 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
356 /* ./syntax//mmbuilder.nit:138 */
357 if (UNTAG_Bool(REGB0)) {
358 REGB0 = TAG_Int(0);
359 fra.me.REG[2] = NEW_MMSrcLocalClass_syntax_base___MMSrcLocalClass___init(fra.me.REG[0], fra.me.REG[1], NIT_NULL, REGB0);
360 /* ./syntax//mmbuilder.nit:140 */
361 CALL_abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
362 fra.me.REG[0] = CALL_syntax_base___MMSrcModule___src_local_classes(fra.me.REG[0])(fra.me.REG[0]);
363 /* ./syntax//mmbuilder.nit:141 */
364 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
365 }
366 stack_frame_head = fra.me.prev;
367 return;
368 }
369 void mmbuilder___MMLocalClass___accept_class_visitor(val_t p0, val_t p1){
370 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
371 val_t tmp;
372 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
373 fra.me.file = LOCATE_mmbuilder;
374 fra.me.line = 147;
375 fra.me.meth = LOCATE_mmbuilder___MMLocalClass___accept_class_visitor;
376 fra.me.has_broke = 0;
377 fra.me.REG_size = 2;
378 fra.me.REG[0] = NIT_NULL;
379 fra.me.REG[1] = NIT_NULL;
380 fra.me.REG[0] = p0;
381 fra.me.REG[1] = p1;
382 /* ./syntax//mmbuilder.nit:147 */
383 stack_frame_head = fra.me.prev;
384 return;
385 }
386 void mmbuilder___MMLocalClass___accept_properties_visitor(val_t p0, val_t p1){
387 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
388 val_t tmp;
389 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
390 fra.me.file = LOCATE_mmbuilder;
391 fra.me.line = 152;
392 fra.me.meth = LOCATE_mmbuilder___MMLocalClass___accept_properties_visitor;
393 fra.me.has_broke = 0;
394 fra.me.REG_size = 2;
395 fra.me.REG[0] = NIT_NULL;
396 fra.me.REG[1] = NIT_NULL;
397 fra.me.REG[0] = p0;
398 fra.me.REG[1] = p1;
399 /* ./syntax//mmbuilder.nit:152 */
400 stack_frame_head = fra.me.prev;
401 return;
402 }
403 void mmbuilder___MMSrcLocalClass___accept_class_visitor(val_t p0, val_t p1){
404 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
405 val_t REGB0;
406 val_t REGB1;
407 val_t tmp;
408 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
409 fra.me.file = LOCATE_mmbuilder;
410 fra.me.line = 159;
411 fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___accept_class_visitor;
412 fra.me.has_broke = 0;
413 fra.me.REG_size = 3;
414 fra.me.REG[0] = NIT_NULL;
415 fra.me.REG[1] = NIT_NULL;
416 fra.me.REG[2] = NIT_NULL;
417 fra.me.REG[0] = p0;
418 fra.me.REG[1] = p1;
419 fra.me.REG[0] = CALL_syntax_base___MMSrcLocalClass___node(fra.me.REG[0])(fra.me.REG[0]);
420 /* ./syntax//mmbuilder.nit:162 */
421 while(1) {
422 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
423 if (UNTAG_Bool(REGB0)) {
424 } else {
425 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
426 if (UNTAG_Bool(REGB1)) {
427 REGB1 = TAG_Bool(false);
428 REGB0 = REGB1;
429 } else {
430 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
431 REGB0 = REGB1;
432 }
433 }
434 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
435 if (UNTAG_Bool(REGB0)) {
436 /* ./syntax//mmbuilder.nit:163 */
437 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
438 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
439 /* ./syntax//mmbuilder.nit:164 */
440 if (UNTAG_Bool(REGB0)) {
441 fprintf(stderr, "Reciever is null");
442 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 164);
443 nit_exit(1);
444 }
445 fra.me.REG[2] = CALL_syntax_base___AClassdef___next_node(fra.me.REG[0])(fra.me.REG[0]);
446 fra.me.REG[0] = fra.me.REG[2];
447 } else {
448 /* ./syntax//mmbuilder.nit:162 */
449 goto label1;
450 }
451 }
452 label1: while(0);
453 stack_frame_head = fra.me.prev;
454 return;
455 }
456 void mmbuilder___MMSrcLocalClass___accept_properties_visitor(val_t p0, val_t p1){
457 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
458 val_t REGB0;
459 val_t REGB1;
460 val_t tmp;
461 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
462 fra.me.file = LOCATE_mmbuilder;
463 fra.me.line = 168;
464 fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___accept_properties_visitor;
465 fra.me.has_broke = 0;
466 fra.me.REG_size = 4;
467 fra.me.REG[0] = NIT_NULL;
468 fra.me.REG[1] = NIT_NULL;
469 fra.me.REG[2] = NIT_NULL;
470 fra.me.REG[3] = NIT_NULL;
471 fra.me.REG[0] = p0;
472 fra.me.REG[1] = p1;
473 fra.me.REG[2] = CALL_syntax_base___MMSrcLocalClass___node(fra.me.REG[0])(fra.me.REG[0]);
474 /* ./syntax//mmbuilder.nit:172 */
475 while(1) {
476 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
477 if (UNTAG_Bool(REGB0)) {
478 } else {
479 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
480 if (UNTAG_Bool(REGB1)) {
481 REGB1 = TAG_Bool(false);
482 REGB0 = REGB1;
483 } else {
484 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
485 REGB0 = REGB1;
486 }
487 }
488 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
489 if (UNTAG_Bool(REGB0)) {
490 /* ./syntax//mmbuilder.nit:173 */
491 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
492 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
493 /* ./syntax//mmbuilder.nit:174 */
494 if (UNTAG_Bool(REGB0)) {
495 fprintf(stderr, "Reciever is null");
496 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 174);
497 nit_exit(1);
498 }
499 fra.me.REG[3] = CALL_syntax_base___AClassdef___next_node(fra.me.REG[2])(fra.me.REG[2]);
500 fra.me.REG[2] = fra.me.REG[3];
501 } else {
502 /* ./syntax//mmbuilder.nit:172 */
503 goto label1;
504 }
505 }
506 label1: while(0);
507 fra.me.REG[0] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
508 fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
509 /* ./syntax//mmbuilder.nit:177 */
510 while(1) {
511 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
512 if (UNTAG_Bool(REGB0)) {
513 fra.me.REG[2] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
514 /* ./syntax//mmbuilder.nit:178 */
515 CALL_mmbuilder___MMLocalProperty___accept_property_visitor(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
516 } else {
517 /* ./syntax//mmbuilder.nit:177 */
518 goto label2;
519 }
520 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
521 }
522 label2: while(0);
523 stack_frame_head = fra.me.prev;
524 return;
525 }
526 void mmbuilder___MMSrcLocalClass___process_default_constructors(val_t p0, val_t p1){
527 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
528 val_t REGB0;
529 val_t REGB1;
530 val_t REGB2;
531 val_t tmp;
532 static val_t once_value_6; /* Once value */
533 static val_t once_value_7; /* Once value */
534 static val_t once_value_12; /* Once value */
535 static val_t once_value_13; /* Once value */
536 static val_t once_value_14; /* Once value */
537 static val_t once_value_15; /* Once value */
538 static val_t once_value_16; /* Once value */
539 static val_t once_value_17; /* Once value */
540 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
541 fra.me.file = LOCATE_mmbuilder;
542 fra.me.line = 182;
543 fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___process_default_constructors;
544 fra.me.has_broke = 0;
545 fra.me.REG_size = 10;
546 fra.me.REG[0] = NIT_NULL;
547 fra.me.REG[1] = NIT_NULL;
548 fra.me.REG[2] = NIT_NULL;
549 fra.me.REG[3] = NIT_NULL;
550 fra.me.REG[4] = NIT_NULL;
551 fra.me.REG[5] = NIT_NULL;
552 fra.me.REG[6] = NIT_NULL;
553 fra.me.REG[7] = NIT_NULL;
554 fra.me.REG[8] = NIT_NULL;
555 fra.me.REG[9] = NIT_NULL;
556 fra.me.REG[0] = p0;
557 fra.me.REG[1] = p1;
558 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[0])(fra.me.REG[0]);
559 fra.me.REG[2] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
560 /* ./syntax//mmbuilder.nit:186 */
561 while(1) {
562 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[2])(fra.me.REG[2]);
563 if (UNTAG_Bool(REGB0)) {
564 fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[2])(fra.me.REG[2]);
565 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
566 /* ./syntax//mmbuilder.nit:187 */
567 if (UNTAG_Bool(REGB0)) {
568 fra.me.REG[3] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[3])(fra.me.REG[3]);
569 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[3])(fra.me.REG[3]);
570 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[0]));
571 /* ./syntax//mmbuilder.nit:189 */
572 if (UNTAG_Bool(REGB0)) {
573 } else {
574 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
575 REGB0 = REGB1;
576 }
577 if (UNTAG_Bool(REGB0)) {
578 goto label1;
579 }
580 }
581 } else {
582 /* ./syntax//mmbuilder.nit:186 */
583 goto label2;
584 }
585 CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]);
586 }
587 label2: while(0);
588 fra.me.REG[2] = NEW_ArraySet_array___ArraySet___init();
589 fra.me.REG[3] = NEW_ArraySet_array___ArraySet___init();
590 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___che(fra.me.REG[0])(fra.me.REG[0]);
591 fra.me.REG[4] = CALL_partial_order___PartialOrderElement___direct_greaters(fra.me.REG[4])(fra.me.REG[4]);
592 fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[4])(fra.me.REG[4]);
593 /* ./syntax//mmbuilder.nit:196 */
594 while(1) {
595 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]);
596 if (UNTAG_Bool(REGB0)) {
597 fra.me.REG[5] = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]);
598 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
599 REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_universal(fra.me.REG[6])(fra.me.REG[6]);
600 /* ./syntax//mmbuilder.nit:197 */
601 if (UNTAG_Bool(REGB0)) {
602 REGB0 = TAG_Bool(true);
603 } else {
604 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
605 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
606 REGB0 = REGB1;
607 }
608 if (UNTAG_Bool(REGB0)) {
609 goto label3;
610 }
611 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[5])(fra.me.REG[5]);
612 fra.me.REG[6] = CALL_abstract_collection___Collection___iterator(fra.me.REG[6])(fra.me.REG[6]);
613 /* ./syntax//mmbuilder.nit:198 */
614 while(1) {
615 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[6])(fra.me.REG[6]);
616 if (UNTAG_Bool(REGB0)) {
617 fra.me.REG[7] = CALL_abstract_collection___Iterator___item(fra.me.REG[6])(fra.me.REG[6]);
618 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[7])(fra.me.REG[7]);
619 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
620 /* ./syntax//mmbuilder.nit:199 */
621 if (UNTAG_Bool(REGB0)) {
622 goto label4;
623 }
624 /* ./syntax//mmbuilder.nit:200 */
625 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
626 label4: while(0);
627 } else {
628 /* ./syntax//mmbuilder.nit:198 */
629 goto label5;
630 }
631 CALL_abstract_collection___Iterator___next(fra.me.REG[6])(fra.me.REG[6]);
632 }
633 label5: while(0);
634 /* ./syntax//mmbuilder.nit:202 */
635 if (!once_value_6) {
636 if (!once_value_7) {
637 fra.me.REG[6] = BOX_NativeString("init");
638 REGB0 = TAG_Int(4);
639 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
640 once_value_7 = fra.me.REG[6];
641 register_static_object(&once_value_7);
642 } else fra.me.REG[6] = once_value_7;
643 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
644 once_value_6 = fra.me.REG[6];
645 register_static_object(&once_value_6);
646 } else fra.me.REG[6] = once_value_6;
647 REGB0 = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
648 /* ./syntax//mmbuilder.nit:203 */
649 if (UNTAG_Bool(REGB0)) {
650 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
651 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
652 /* ./syntax//mmbuilder.nit:205 */
653 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
654 }
655 label3: while(0);
656 } else {
657 /* ./syntax//mmbuilder.nit:196 */
658 goto label8;
659 }
660 CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]);
661 }
662 label8: while(0);
663 fra.me.REG[4] = NEW_Array_array___Array___init();
664 fra.me.REG[6] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
665 fra.me.REG[6] = CALL_abstract_collection___Collection___iterator(fra.me.REG[6])(fra.me.REG[6]);
666 /* ./syntax//mmbuilder.nit:211 */
667 while(1) {
668 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[6])(fra.me.REG[6]);
669 if (UNTAG_Bool(REGB0)) {
670 fra.me.REG[5] = CALL_abstract_collection___Iterator___item(fra.me.REG[6])(fra.me.REG[6]);
671 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[5], COLOR_MMSrcAttribute, ID_MMSrcAttribute)) /*cast MMSrcAttribute*/;
672 /* ./syntax//mmbuilder.nit:212 */
673 if (UNTAG_Bool(REGB0)) {
674 fra.me.REG[7] = CALL_syntax_base___MMLocalProperty___node(fra.me.REG[5])(fra.me.REG[5]);
675 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
676 /* ./syntax//mmbuilder.nit:214 */
677 if (UNTAG_Bool(REGB0)) {
678 fprintf(stderr, "Reciever is null");
679 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 214);
680 nit_exit(1);
681 }
682 fra.me.REG[7] = CALL_parser_nodes___AAttrPropdef___n_expr(fra.me.REG[7])(fra.me.REG[7]);
683 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
684 if (UNTAG_Bool(REGB0)) {
685 } else {
686 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
687 if (UNTAG_Bool(REGB1)) {
688 REGB1 = TAG_Bool(false);
689 REGB0 = REGB1;
690 } else {
691 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
692 REGB0 = REGB1;
693 }
694 }
695 if (UNTAG_Bool(REGB0)) {
696 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
697 }
698 }
699 } else {
700 /* ./syntax//mmbuilder.nit:211 */
701 goto label9;
702 }
703 CALL_abstract_collection___Iterator___next(fra.me.REG[6])(fra.me.REG[6]);
704 }
705 label9: while(0);
706 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
707 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
708 /* ./syntax//mmbuilder.nit:218 */
709 if (UNTAG_Bool(REGB0)) {
710 fra.me.REG[6] = NEW_Array_array___Array___init();
711 fra.me.REG[5] = CALL_abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]);
712 /* ./syntax//mmbuilder.nit:222 */
713 while(1) {
714 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[5])(fra.me.REG[5]);
715 if (UNTAG_Bool(REGB0)) {
716 fra.me.REG[7] = CALL_abstract_collection___Iterator___item(fra.me.REG[5])(fra.me.REG[5]);
717 fra.me.REG[7] = CALL_abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[7])(fra.me.REG[7]);
718 REGB0 = CALL_abstract_collection___Collection___has(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
719 /* ./syntax//mmbuilder.nit:224 */
720 if (UNTAG_Bool(REGB0)) {
721 goto label10;
722 }
723 fra.me.REG[8] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
724 REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_mixin(fra.me.REG[8])(fra.me.REG[8]);
725 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
726 /* ./syntax//mmbuilder.nit:225 */
727 if (UNTAG_Bool(REGB0)) {
728 /* ./syntax//mmbuilder.nit:226 */
729 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
730 }
731 label10: while(0);
732 } else {
733 /* ./syntax//mmbuilder.nit:222 */
734 goto label11;
735 }
736 CALL_abstract_collection___Iterator___next(fra.me.REG[5])(fra.me.REG[5]);
737 }
738 label11: while(0);
739 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___che(fra.me.REG[0])(fra.me.REG[0]);
740 fra.me.REG[5] = CALL_partial_order___PartialOrderElement___order(fra.me.REG[5])(fra.me.REG[5]);
741 fra.me.REG[5] = CALL_partial_order___PartialOrder___select_smallests(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
742 fra.me.REG[6] = fra.me.REG[5];
743 fra.me.REG[5] = NIT_NULL;
744 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
745 /* ./../lib/standard//collection//array.nit:23 */
746 if (UNTAG_Bool(REGB0)) {
747 } else {
748 fprintf(stderr, "Uninitialized attribute %s", "_length");
749 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
750 nit_exit(1);
751 }
752 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[6]);
753 REGB1 = TAG_Int(1);
754 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
755 /* ./syntax//mmbuilder.nit:234 */
756 if (UNTAG_Bool(REGB1)) {
757 fra.me.REG[7] = CALL_syntax_base___MMSrcLocalClass___node(fra.me.REG[0])(fra.me.REG[0]);
758 REGB1 = TAG_Int(7);
759 fra.me.REG[8] = NEW_Array_array___Array___with_capacity(REGB1);
760 /* ./syntax//mmbuilder.nit:235 */
761 if (!once_value_12) {
762 fra.me.REG[9] = BOX_NativeString("Error: Explicit constructor required in ");
763 REGB1 = TAG_Int(40);
764 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1);
765 once_value_12 = fra.me.REG[9];
766 register_static_object(&once_value_12);
767 } else fra.me.REG[9] = once_value_12;
768 array___Array___add(fra.me.REG[8], fra.me.REG[9]);
769 fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
770 array___Array___add(fra.me.REG[8], fra.me.REG[9]);
771 if (!once_value_13) {
772 fra.me.REG[9] = BOX_NativeString(" since multiple inheritance of constructor is forbiden. Conflicting classes are ");
773 REGB1 = TAG_Int(80);
774 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1);
775 once_value_13 = fra.me.REG[9];
776 register_static_object(&once_value_13);
777 } else fra.me.REG[9] = once_value_13;
778 array___Array___add(fra.me.REG[8], fra.me.REG[9]);
779 if (!once_value_14) {
780 fra.me.REG[9] = BOX_NativeString(", ");
781 REGB1 = TAG_Int(2);
782 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1);
783 once_value_14 = fra.me.REG[9];
784 register_static_object(&once_value_14);
785 } else fra.me.REG[9] = once_value_14;
786 fra.me.REG[9] = CALL_string___Collection___join(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[9]);
787 array___Array___add(fra.me.REG[8], fra.me.REG[9]);
788 if (!once_value_15) {
789 fra.me.REG[9] = BOX_NativeString(". Costructors are ");
790 REGB1 = TAG_Int(18);
791 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1);
792 once_value_15 = fra.me.REG[9];
793 register_static_object(&once_value_15);
794 } else fra.me.REG[9] = once_value_15;
795 array___Array___add(fra.me.REG[8], fra.me.REG[9]);
796 if (!once_value_16) {
797 fra.me.REG[9] = BOX_NativeString(", ");
798 REGB1 = TAG_Int(2);
799 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1);
800 once_value_16 = fra.me.REG[9];
801 register_static_object(&once_value_16);
802 } else fra.me.REG[9] = once_value_16;
803 fra.me.REG[9] = CALL_string___Collection___join(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[9]);
804 array___Array___add(fra.me.REG[8], fra.me.REG[9]);
805 if (!once_value_17) {
806 fra.me.REG[9] = BOX_NativeString(".");
807 REGB1 = TAG_Int(1);
808 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB1);
809 once_value_17 = fra.me.REG[9];
810 register_static_object(&once_value_17);
811 } else fra.me.REG[9] = once_value_17;
812 array___Array___add(fra.me.REG[8], fra.me.REG[9]);
813 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
814 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7], fra.me.REG[8]);
815 /* ./syntax//mmbuilder.nit:236 */
816 goto label1;
817 } else {
818 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
819 /* ./../lib/standard//collection//array.nit:23 */
820 if (UNTAG_Bool(REGB1)) {
821 } else {
822 fprintf(stderr, "Uninitialized attribute %s", "_length");
823 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
824 nit_exit(1);
825 }
826 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[6]);
827 REGB0 = TAG_Int(1);
828 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0));
829 /* ./syntax//mmbuilder.nit:237 */
830 if (UNTAG_Bool(REGB2)) {
831 } else {
832 REGB0 = TAG_Bool((REGB1)==(REGB0));
833 REGB2 = REGB0;
834 /* ./syntax//mmbuilder.nit:237 */
835 }
836 if (UNTAG_Bool(REGB2)) {
837 fra.me.REG[6] = CALL_abstract_collection___Collection___first(fra.me.REG[6])(fra.me.REG[6]);
838 fra.me.REG[5] = fra.me.REG[6];
839 /* ./syntax//mmbuilder.nit:238 */
840 }
841 }
842 fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]);
843 /* ./syntax//mmbuilder.nit:241 */
844 while(1) {
845 REGB2 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]);
846 if (UNTAG_Bool(REGB2)) {
847 fra.me.REG[6] = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]);
848 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
849 /* ./syntax//mmbuilder.nit:243 */
850 if (UNTAG_Bool(REGB2)) {
851 } else {
852 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
853 if (UNTAG_Bool(REGB0)) {
854 REGB0 = TAG_Bool(false);
855 REGB2 = REGB0;
856 } else {
857 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
858 REGB2 = REGB0;
859 }
860 }
861 if (UNTAG_Bool(REGB2)) {
862 REGB2 = TAG_Bool(true);
863 } else {
864 fra.me.REG[8] = CALL_abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[6])(fra.me.REG[6]);
865 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[8],fra.me.REG[5]));
866 if (UNTAG_Bool(REGB0)) {
867 } else {
868 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
869 REGB0 = REGB1;
870 }
871 REGB2 = REGB0;
872 }
873 if (UNTAG_Bool(REGB2)) {
874 /* ./syntax//mmbuilder.nit:244 */
875 CALL_inheritance___MMLocalClass___make_visible_an_inherited_global_property(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
876 }
877 } else {
878 /* ./syntax//mmbuilder.nit:241 */
879 goto label18;
880 }
881 CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]);
882 }
883 label18: while(0);
884 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
885 REGB2 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
886 /* ./syntax//mmbuilder.nit:247 */
887 if (UNTAG_Bool(REGB2)) {
888 } else {
889 fprintf(stderr, "Cast failed");
890 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 247);
891 nit_exit(1);
892 }
893 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
894 if (UNTAG_Bool(REGB2)) {
895 fprintf(stderr, "Reciever is null");
896 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 247);
897 nit_exit(1);
898 }
899 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
900 CALL_abstractmetamodel___MMGlobalClass___mixin_of__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
901 } else {
902 fra.me.REG[2] = CALL_array___Collection___to_a(fra.me.REG[2])(fra.me.REG[2]);
903 fra.me.REG[2] = NEW_MMImplicitInit_syntax_base___MMImplicitInit___init(fra.me.REG[0], fra.me.REG[4], fra.me.REG[2]);
904 /* ./syntax//mmbuilder.nit:253 */
905 CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
906 }
907 label1: while(0);
908 stack_frame_head = fra.me.prev;
909 return;
910 }
911 void mmbuilder___MMSrcLocalClass___add_src_local_property(val_t p0, val_t p1, val_t p2){
912 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
913 val_t REGB0;
914 val_t tmp;
915 static val_t once_value_1; /* Once value */
916 static val_t once_value_2; /* Once value */
917 static val_t once_value_3; /* Once value */
918 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
919 fra.me.file = LOCATE_mmbuilder;
920 fra.me.line = 258;
921 fra.me.meth = LOCATE_mmbuilder___MMSrcLocalClass___add_src_local_property;
922 fra.me.has_broke = 0;
923 fra.me.REG_size = 7;
924 fra.me.REG[0] = NIT_NULL;
925 fra.me.REG[1] = NIT_NULL;
926 fra.me.REG[2] = NIT_NULL;
927 fra.me.REG[3] = NIT_NULL;
928 fra.me.REG[4] = NIT_NULL;
929 fra.me.REG[5] = NIT_NULL;
930 fra.me.REG[6] = NIT_NULL;
931 fra.me.REG[0] = p0;
932 fra.me.REG[1] = p1;
933 fra.me.REG[2] = p2;
934 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
935 fra.me.REG[4] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
936 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
937 /* ./syntax//mmbuilder.nit:264 */
938 if (UNTAG_Bool(REGB0)) {
939 fra.me.REG[4] = CALL_syntax_base___MMLocalProperty___node(fra.me.REG[2])(fra.me.REG[2]);
940 REGB0 = TAG_Int(5);
941 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
942 /* ./syntax//mmbuilder.nit:265 */
943 if (!once_value_1) {
944 fra.me.REG[6] = BOX_NativeString("Error: A property ");
945 REGB0 = TAG_Int(18);
946 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
947 once_value_1 = fra.me.REG[6];
948 register_static_object(&once_value_1);
949 } else fra.me.REG[6] = once_value_1;
950 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
951 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
952 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
953 if (!once_value_2) {
954 fra.me.REG[6] = BOX_NativeString(" is already defined in class ");
955 REGB0 = TAG_Int(29);
956 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
957 once_value_2 = fra.me.REG[6];
958 register_static_object(&once_value_2);
959 } else fra.me.REG[6] = once_value_2;
960 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
961 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
962 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
963 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
964 if (!once_value_3) {
965 fra.me.REG[6] = BOX_NativeString(".");
966 REGB0 = TAG_Int(1);
967 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
968 once_value_3 = fra.me.REG[6];
969 register_static_object(&once_value_3);
970 } else fra.me.REG[6] = once_value_3;
971 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
972 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
973 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[5]);
974 /* ./syntax//mmbuilder.nit:266 */
975 goto label4;
976 }
977 fra.me.REG[5] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
978 /* ./syntax//mmbuilder.nit:268 */
979 CALL_abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[2]);
980 REGB0 = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
981 /* ./syntax//mmbuilder.nit:271 */
982 if (UNTAG_Bool(REGB0)) {
983 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
984 /* ./syntax//mmbuilder.nit:273 */
985 CALL_inheritance___MMLocalProperty___inherit_global(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
986 }
987 REGB0 = CALL_abstractmetamodel___MMLocalProperty___is_global_set(fra.me.REG[2])(fra.me.REG[2]);
988 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
989 /* ./syntax//mmbuilder.nit:276 */
990 if (UNTAG_Bool(REGB0)) {
991 /* ./syntax//mmbuilder.nit:277 */
992 CALL_abstractmetamodel___MMLocalProperty___new_global(fra.me.REG[2])(fra.me.REG[2]);
993 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
994 REGB0 = CALL_syntax_base___MMLocalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
995 /* ./syntax//mmbuilder.nit:278 */
996 CALL_abstractmetamodel___MMGlobalProperty___is_init__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
997 }
998 label4: while(0);
999 stack_frame_head = fra.me.prev;
1000 return;
1001 }
1002 void mmbuilder___MMLocalProperty___accept_property_visitor(val_t p0, val_t p1){
1003 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1004 val_t tmp;
1005 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1006 fra.me.file = LOCATE_mmbuilder;
1007 fra.me.line = 284;
1008 fra.me.meth = LOCATE_mmbuilder___MMLocalProperty___accept_property_visitor;
1009 fra.me.has_broke = 0;
1010 fra.me.REG_size = 2;
1011 fra.me.REG[0] = NIT_NULL;
1012 fra.me.REG[1] = NIT_NULL;
1013 fra.me.REG[0] = p0;
1014 fra.me.REG[1] = p1;
1015 /* ./syntax//mmbuilder.nit:284 */
1016 stack_frame_head = fra.me.prev;
1017 return;
1018 }
1019 val_t mmbuilder___MMImplicitInit___super_init(val_t p0){
1020 struct {struct stack_frame_t me;} fra;
1021 val_t tmp;
1022 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1023 fra.me.file = LOCATE_mmbuilder;
1024 fra.me.line = 290;
1025 fra.me.meth = LOCATE_mmbuilder___MMImplicitInit___super_init;
1026 fra.me.has_broke = 0;
1027 fra.me.REG_size = 1;
1028 fra.me.REG[0] = NIT_NULL;
1029 fra.me.REG[0] = p0;
1030 fra.me.REG[0] = ATTR_mmbuilder___MMImplicitInit____super_init(fra.me.REG[0]);
1031 /* ./syntax//mmbuilder.nit:290 */
1032 stack_frame_head = fra.me.prev;
1033 return fra.me.REG[0];
1034 }
1035 void mmbuilder___MMImplicitInit___accept_property_visitor(val_t p0, val_t p1){
1036 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
1037 val_t REGB0;
1038 val_t REGB1;
1039 val_t tmp;
1040 static val_t once_value_1; /* Once value */
1041 static val_t once_value_2; /* Once value */
1042 static val_t once_value_3; /* Once value */
1043 static val_t once_value_4; /* Once value */
1044 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1045 fra.me.file = LOCATE_mmbuilder;
1046 fra.me.line = 291;
1047 fra.me.meth = LOCATE_mmbuilder___MMImplicitInit___accept_property_visitor;
1048 fra.me.has_broke = 0;
1049 fra.me.REG_size = 7;
1050 fra.me.REG[0] = NIT_NULL;
1051 fra.me.REG[1] = NIT_NULL;
1052 fra.me.REG[2] = NIT_NULL;
1053 fra.me.REG[3] = NIT_NULL;
1054 fra.me.REG[4] = NIT_NULL;
1055 fra.me.REG[5] = NIT_NULL;
1056 fra.me.REG[6] = NIT_NULL;
1057 fra.me.REG[0] = p0;
1058 fra.me.REG[1] = p1;
1059 fra.me.REG[2] = NIT_NULL;
1060 fra.me.REG[3] = CALL_syntax_base___MMImplicitInit___super_inits(fra.me.REG[0])(fra.me.REG[0]);
1061 fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]);
1062 /* ./syntax//mmbuilder.nit:294 */
1063 while(1) {
1064 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]);
1065 if (UNTAG_Bool(REGB0)) {
1066 fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]);
1067 fra.me.REG[5] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[4])(fra.me.REG[4]);
1068 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1069 /* ./syntax//mmbuilder.nit:295 */
1070 if (UNTAG_Bool(REGB0)) {
1071 fprintf(stderr, "Reciever is null");
1072 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 295);
1073 nit_exit(1);
1074 }
1075 REGB0 = CALL_static_type___MMSignature___arity(fra.me.REG[5])(fra.me.REG[5]);
1076 REGB1 = TAG_Int(0);
1077 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
1078 /* ./syntax//mmbuilder.nit:295 */
1079 if (UNTAG_Bool(REGB1)) {
1080 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1081 /* ./syntax//mmbuilder.nit:296 */
1082 if (UNTAG_Bool(REGB1)) {
1083 } else {
1084 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1085 if (UNTAG_Bool(REGB0)) {
1086 REGB0 = TAG_Bool(false);
1087 REGB1 = REGB0;
1088 } else {
1089 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1090 REGB1 = REGB0;
1091 }
1092 }
1093 if (UNTAG_Bool(REGB1)) {
1094 fra.me.REG[2] = fra.me.REG[4];
1095 /* ./syntax//mmbuilder.nit:297 */
1096 } else {
1097 REGB1 = TAG_Int(7);
1098 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB1);
1099 /* ./syntax//mmbuilder.nit:299 */
1100 if (!once_value_1) {
1101 fra.me.REG[6] = BOX_NativeString("Error: explicit constructor needed in ");
1102 REGB1 = TAG_Int(38);
1103 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
1104 once_value_1 = fra.me.REG[6];
1105 register_static_object(&once_value_1);
1106 } else fra.me.REG[6] = once_value_1;
1107 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
1108 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1109 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
1110 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
1111 if (!once_value_2) {
1112 fra.me.REG[6] = BOX_NativeString(" since both super-constructor ");
1113 REGB1 = TAG_Int(30);
1114 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
1115 once_value_2 = fra.me.REG[6];
1116 register_static_object(&once_value_2);
1117 } else fra.me.REG[6] = once_value_2;
1118 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
1119 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1120 if (UNTAG_Bool(REGB1)) {
1121 fprintf(stderr, "Reciever is null");
1122 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 299);
1123 nit_exit(1);
1124 }
1125 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[2])(fra.me.REG[2]);
1126 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
1127 if (!once_value_3) {
1128 fra.me.REG[6] = BOX_NativeString(" and ");
1129 REGB1 = TAG_Int(5);
1130 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
1131 once_value_3 = fra.me.REG[6];
1132 register_static_object(&once_value_3);
1133 } else fra.me.REG[6] = once_value_3;
1134 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
1135 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[4])(fra.me.REG[4]);
1136 array___Array___add(fra.me.REG[5], fra.me.REG[4]);
1137 if (!once_value_4) {
1138 fra.me.REG[4] = BOX_NativeString(" have paramters");
1139 REGB1 = TAG_Int(15);
1140 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
1141 once_value_4 = fra.me.REG[4];
1142 register_static_object(&once_value_4);
1143 } else fra.me.REG[4] = once_value_4;
1144 array___Array___add(fra.me.REG[5], fra.me.REG[4]);
1145 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
1146 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[5]);
1147 /* ./syntax//mmbuilder.nit:300 */
1148 goto label5;
1149 }
1150 }
1151 } else {
1152 /* ./syntax//mmbuilder.nit:294 */
1153 goto label6;
1154 }
1155 CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]);
1156 }
1157 label6: while(0);
1158 /* ./syntax//mmbuilder.nit:304 */
1159 ATTR_mmbuilder___MMImplicitInit____super_init(fra.me.REG[0]) = fra.me.REG[2];
1160 fra.me.REG[3] = NEW_Array_array___Array___init();
1161 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1162 /* ./syntax//mmbuilder.nit:307 */
1163 if (UNTAG_Bool(REGB1)) {
1164 } else {
1165 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1166 if (UNTAG_Bool(REGB0)) {
1167 REGB0 = TAG_Bool(false);
1168 REGB1 = REGB0;
1169 } else {
1170 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1171 REGB1 = REGB0;
1172 }
1173 }
1174 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1175 if (UNTAG_Bool(REGB1)) {
1176 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1177 /* ./syntax//mmbuilder.nit:308 */
1178 if (UNTAG_Bool(REGB1)) {
1179 fprintf(stderr, "Reciever is null");
1180 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 308);
1181 nit_exit(1);
1182 }
1183 fra.me.REG[2] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
1184 REGB1 = TAG_Int(0);
1185 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1186 /* ./syntax//mmbuilder.nit:309 */
1187 if (UNTAG_Bool(REGB0)) {
1188 fprintf(stderr, "Reciever is null");
1189 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 309);
1190 nit_exit(1);
1191 }
1192 REGB0 = CALL_static_type___MMSignature___arity(fra.me.REG[2])(fra.me.REG[2]);
1193 fra.me.REG[1] = NEW_Range_range___Range___without_last(REGB1, REGB0);
1194 fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]);
1195 while(1) {
1196 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
1197 if (UNTAG_Bool(REGB0)) {
1198 REGB0 = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
1199 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1200 /* ./syntax//mmbuilder.nit:310 */
1201 if (UNTAG_Bool(REGB1)) {
1202 fprintf(stderr, "Reciever is null");
1203 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 310);
1204 nit_exit(1);
1205 }
1206 fra.me.REG[5] = CALL_static_type___MMSignature_____bra(fra.me.REG[2])(fra.me.REG[2], REGB0);
1207 array___Array___add(fra.me.REG[3], fra.me.REG[5]);
1208 } else {
1209 /* ./syntax//mmbuilder.nit:309 */
1210 goto label7;
1211 }
1212 CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
1213 }
1214 label7: while(0);
1215 }
1216 fra.me.REG[1] = CALL_syntax_base___MMImplicitInit___unassigned_attributes(fra.me.REG[0])(fra.me.REG[0]);
1217 fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]);
1218 /* ./syntax//mmbuilder.nit:313 */
1219 while(1) {
1220 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
1221 if (UNTAG_Bool(REGB0)) {
1222 fra.me.REG[2] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
1223 fra.me.REG[2] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
1224 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1225 /* ./syntax//mmbuilder.nit:315 */
1226 if (UNTAG_Bool(REGB0)) {
1227 } else {
1228 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1229 if (UNTAG_Bool(REGB1)) {
1230 REGB1 = TAG_Bool(false);
1231 REGB0 = REGB1;
1232 } else {
1233 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1234 REGB0 = REGB1;
1235 }
1236 }
1237 if (UNTAG_Bool(REGB0)) {
1238 goto label5;
1239 }
1240 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1241 /* ./syntax//mmbuilder.nit:316 */
1242 if (UNTAG_Bool(REGB0)) {
1243 fprintf(stderr, "Reciever is null");
1244 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 316);
1245 nit_exit(1);
1246 }
1247 fra.me.REG[2] = CALL_static_type___MMSignature___return_type(fra.me.REG[2])(fra.me.REG[2]);
1248 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_MMType, ID_MMType)) /*cast MMType*/;
1249 if (UNTAG_Bool(REGB0)) {
1250 } else {
1251 fprintf(stderr, "Cast failed");
1252 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 316);
1253 nit_exit(1);
1254 }
1255 array___Array___add(fra.me.REG[3], fra.me.REG[2]);
1256 } else {
1257 /* ./syntax//mmbuilder.nit:313 */
1258 goto label8;
1259 }
1260 CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
1261 }
1262 label8: while(0);
1263 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1264 fra.me.REG[1] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
1265 fra.me.REG[1] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[3], NIT_NULL, fra.me.REG[1]);
1266 /* ./syntax//mmbuilder.nit:318 */
1267 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1268 label5: while(0);
1269 stack_frame_head = fra.me.prev;
1270 return;
1271 }
1272 val_t mmbuilder___MMSrcAncestor___local_class(val_t p0){
1273 struct {struct stack_frame_t me;} fra;
1274 val_t REGB0;
1275 val_t tmp;
1276 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1277 fra.me.file = LOCATE_mmbuilder;
1278 fra.me.line = 326;
1279 fra.me.meth = LOCATE_mmbuilder___MMSrcAncestor___local_class;
1280 fra.me.has_broke = 0;
1281 fra.me.REG_size = 1;
1282 fra.me.REG[0] = NIT_NULL;
1283 fra.me.REG[0] = p0;
1284 REGB0 = TAG_Bool(ATTR_mmbuilder___MMSrcAncestor____local_class(fra.me.REG[0])!=NIT_NULL);
1285 /* ./syntax//mmbuilder.nit:326 */
1286 if (UNTAG_Bool(REGB0)) {
1287 } else {
1288 fprintf(stderr, "Uninitialized attribute %s", "_local_class");
1289 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 326);
1290 nit_exit(1);
1291 }
1292 fra.me.REG[0] = ATTR_mmbuilder___MMSrcAncestor____local_class(fra.me.REG[0]);
1293 stack_frame_head = fra.me.prev;
1294 return fra.me.REG[0];
1295 }
1296 void mmbuilder___MMSrcAncestor___init(val_t p0, val_t p1, int* init_table){
1297 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMSrcAncestor].i;
1298 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1299 val_t tmp;
1300 if (init_table[itpos1]) return;
1301 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1302 fra.me.file = LOCATE_mmbuilder;
1303 fra.me.line = 328;
1304 fra.me.meth = LOCATE_mmbuilder___MMSrcAncestor___init;
1305 fra.me.has_broke = 0;
1306 fra.me.REG_size = 3;
1307 fra.me.REG[0] = NIT_NULL;
1308 fra.me.REG[1] = NIT_NULL;
1309 fra.me.REG[2] = NIT_NULL;
1310 fra.me.REG[0] = p0;
1311 fra.me.REG[1] = p1;
1312 fra.me.REG[2] = fra.me.REG[0];
1313 /* ./syntax//mmbuilder.nit:328 */
1314 CALL_static_type___MMAncestor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
1315 /* ./syntax//mmbuilder.nit:330 */
1316 ATTR_mmbuilder___MMSrcAncestor____local_class(fra.me.REG[2]) = fra.me.REG[1];
1317 stack_frame_head = fra.me.prev;
1318 init_table[itpos1] = 1;
1319 return;
1320 }
1321 void mmbuilder___ClassBuilderVisitor___visit(val_t p0, val_t p1){
1322 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1323 val_t REGB0;
1324 val_t tmp;
1325 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1326 fra.me.file = LOCATE_mmbuilder;
1327 fra.me.line = 347;
1328 fra.me.meth = LOCATE_mmbuilder___ClassBuilderVisitor___visit;
1329 fra.me.has_broke = 0;
1330 fra.me.REG_size = 2;
1331 fra.me.REG[0] = NIT_NULL;
1332 fra.me.REG[1] = NIT_NULL;
1333 fra.me.REG[0] = p0;
1334 fra.me.REG[1] = p1;
1335 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1336 /* ./syntax//mmbuilder.nit:347 */
1337 if (UNTAG_Bool(REGB0)) {
1338 fprintf(stderr, "Reciever is null");
1339 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 347);
1340 nit_exit(1);
1341 }
1342 CALL_mmbuilder___ANode___accept_class_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1343 stack_frame_head = fra.me.prev;
1344 return;
1345 }
1346 val_t mmbuilder___ClassBuilderVisitor___local_class_arity(val_t p0){
1347 struct {struct stack_frame_t me;} fra;
1348 val_t REGB0;
1349 val_t tmp;
1350 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1351 fra.me.file = LOCATE_mmbuilder;
1352 fra.me.line = 341;
1353 fra.me.meth = LOCATE_mmbuilder___ClassBuilderVisitor___local_class_arity;
1354 fra.me.has_broke = 0;
1355 fra.me.REG_size = 1;
1356 fra.me.REG[0] = NIT_NULL;
1357 fra.me.REG[0] = p0;
1358 REGB0 = TAG_Bool(ATTR_mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0])!=NIT_NULL);
1359 /* ./syntax//mmbuilder.nit:341 */
1360 if (UNTAG_Bool(REGB0)) {
1361 } else {
1362 fprintf(stderr, "Uninitialized attribute %s", "_local_class_arity");
1363 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 341);
1364 nit_exit(1);
1365 }
1366 REGB0 = ATTR_mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0]);
1367 stack_frame_head = fra.me.prev;
1368 return REGB0;
1369 }
1370 void mmbuilder___ClassBuilderVisitor___local_class_arity__eq(val_t p0, val_t p1){
1371 struct {struct stack_frame_t me;} fra;
1372 val_t REGB0;
1373 val_t tmp;
1374 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1375 fra.me.file = LOCATE_mmbuilder;
1376 fra.me.line = 341;
1377 fra.me.meth = LOCATE_mmbuilder___ClassBuilderVisitor___local_class_arity__eq;
1378 fra.me.has_broke = 0;
1379 fra.me.REG_size = 1;
1380 fra.me.REG[0] = NIT_NULL;
1381 fra.me.REG[0] = p0;
1382 REGB0 = p1;
1383 /* ./syntax//mmbuilder.nit:341 */
1384 ATTR_mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0]) = REGB0;
1385 stack_frame_head = fra.me.prev;
1386 return;
1387 }
1388 val_t mmbuilder___ClassBuilderVisitor___formals(val_t p0){
1389 struct {struct stack_frame_t me;} fra;
1390 val_t tmp;
1391 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1392 fra.me.file = LOCATE_mmbuilder;
1393 fra.me.line = 344;
1394 fra.me.meth = LOCATE_mmbuilder___ClassBuilderVisitor___formals;
1395 fra.me.has_broke = 0;
1396 fra.me.REG_size = 1;
1397 fra.me.REG[0] = NIT_NULL;
1398 fra.me.REG[0] = p0;
1399 fra.me.REG[0] = ATTR_mmbuilder___ClassBuilderVisitor____formals(fra.me.REG[0]);
1400 /* ./syntax//mmbuilder.nit:344 */
1401 stack_frame_head = fra.me.prev;
1402 return fra.me.REG[0];
1403 }
1404 void mmbuilder___ClassBuilderVisitor___formals__eq(val_t p0, val_t p1){
1405 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1406 val_t tmp;
1407 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1408 fra.me.file = LOCATE_mmbuilder;
1409 fra.me.line = 344;
1410 fra.me.meth = LOCATE_mmbuilder___ClassBuilderVisitor___formals__eq;
1411 fra.me.has_broke = 0;
1412 fra.me.REG_size = 2;
1413 fra.me.REG[0] = NIT_NULL;
1414 fra.me.REG[1] = NIT_NULL;
1415 fra.me.REG[0] = p0;
1416 fra.me.REG[1] = p1;
1417 /* ./syntax//mmbuilder.nit:344 */
1418 ATTR_mmbuilder___ClassBuilderVisitor____formals(fra.me.REG[0]) = fra.me.REG[1];
1419 stack_frame_head = fra.me.prev;
1420 return;
1421 }
1422 void mmbuilder___ClassBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
1423 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ClassBuilderVisitor].i;
1424 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1425 val_t tmp;
1426 if (init_table[itpos2]) return;
1427 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1428 fra.me.file = LOCATE_mmbuilder;
1429 fra.me.line = 348;
1430 fra.me.meth = LOCATE_mmbuilder___ClassBuilderVisitor___init;
1431 fra.me.has_broke = 0;
1432 fra.me.REG_size = 3;
1433 fra.me.REG[0] = NIT_NULL;
1434 fra.me.REG[1] = NIT_NULL;
1435 fra.me.REG[2] = NIT_NULL;
1436 fra.me.REG[0] = p0;
1437 fra.me.REG[1] = p1;
1438 fra.me.REG[2] = p2;
1439 /* ./syntax//mmbuilder.nit:348 */
1440 CALL_syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1441 stack_frame_head = fra.me.prev;
1442 init_table[itpos2] = 1;
1443 return;
1444 }
1445 void mmbuilder___ClassSpecializationBuilderVisitor___visit(val_t p0, val_t p1){
1446 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1447 val_t REGB0;
1448 val_t tmp;
1449 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1450 fra.me.file = LOCATE_mmbuilder;
1451 fra.me.line = 355;
1452 fra.me.meth = LOCATE_mmbuilder___ClassSpecializationBuilderVisitor___visit;
1453 fra.me.has_broke = 0;
1454 fra.me.REG_size = 2;
1455 fra.me.REG[0] = NIT_NULL;
1456 fra.me.REG[1] = NIT_NULL;
1457 fra.me.REG[0] = p0;
1458 fra.me.REG[1] = p1;
1459 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1460 /* ./syntax//mmbuilder.nit:355 */
1461 if (UNTAG_Bool(REGB0)) {
1462 fprintf(stderr, "Reciever is null");
1463 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 355);
1464 nit_exit(1);
1465 }
1466 CALL_mmbuilder___ANode___accept_class_specialization_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1467 stack_frame_head = fra.me.prev;
1468 return;
1469 }
1470 void mmbuilder___ClassSpecializationBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
1471 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ClassSpecializationBuilderVisitor].i;
1472 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1473 val_t tmp;
1474 if (init_table[itpos3]) return;
1475 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1476 fra.me.file = LOCATE_mmbuilder;
1477 fra.me.line = 356;
1478 fra.me.meth = LOCATE_mmbuilder___ClassSpecializationBuilderVisitor___init;
1479 fra.me.has_broke = 0;
1480 fra.me.REG_size = 3;
1481 fra.me.REG[0] = NIT_NULL;
1482 fra.me.REG[1] = NIT_NULL;
1483 fra.me.REG[2] = NIT_NULL;
1484 fra.me.REG[0] = p0;
1485 fra.me.REG[1] = p1;
1486 fra.me.REG[2] = p2;
1487 /* ./syntax//mmbuilder.nit:356 */
1488 CALL_syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1489 stack_frame_head = fra.me.prev;
1490 init_table[itpos3] = 1;
1491 return;
1492 }
1493 void mmbuilder___ClassAncestorBuilder___visit(val_t p0, val_t p1){
1494 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1495 val_t REGB0;
1496 val_t tmp;
1497 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1498 fra.me.file = LOCATE_mmbuilder;
1499 fra.me.line = 363;
1500 fra.me.meth = LOCATE_mmbuilder___ClassAncestorBuilder___visit;
1501 fra.me.has_broke = 0;
1502 fra.me.REG_size = 2;
1503 fra.me.REG[0] = NIT_NULL;
1504 fra.me.REG[1] = NIT_NULL;
1505 fra.me.REG[0] = p0;
1506 fra.me.REG[1] = p1;
1507 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1508 /* ./syntax//mmbuilder.nit:363 */
1509 if (UNTAG_Bool(REGB0)) {
1510 fprintf(stderr, "Reciever is null");
1511 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 363);
1512 nit_exit(1);
1513 }
1514 CALL_mmbuilder___ANode___accept_class_ancestor_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1515 stack_frame_head = fra.me.prev;
1516 return;
1517 }
1518 void mmbuilder___ClassAncestorBuilder___init(val_t p0, val_t p1, val_t p2, int* init_table){
1519 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ClassAncestorBuilder].i;
1520 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1521 val_t tmp;
1522 if (init_table[itpos4]) return;
1523 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1524 fra.me.file = LOCATE_mmbuilder;
1525 fra.me.line = 364;
1526 fra.me.meth = LOCATE_mmbuilder___ClassAncestorBuilder___init;
1527 fra.me.has_broke = 0;
1528 fra.me.REG_size = 3;
1529 fra.me.REG[0] = NIT_NULL;
1530 fra.me.REG[1] = NIT_NULL;
1531 fra.me.REG[2] = NIT_NULL;
1532 fra.me.REG[0] = p0;
1533 fra.me.REG[1] = p1;
1534 fra.me.REG[2] = p2;
1535 /* ./syntax//mmbuilder.nit:364 */
1536 CALL_syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1537 stack_frame_head = fra.me.prev;
1538 init_table[itpos4] = 1;
1539 return;
1540 }
1541 void mmbuilder___ClassVerifierVisitor___visit(val_t p0, val_t p1){
1542 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1543 val_t REGB0;
1544 val_t tmp;
1545 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1546 fra.me.file = LOCATE_mmbuilder;
1547 fra.me.line = 371;
1548 fra.me.meth = LOCATE_mmbuilder___ClassVerifierVisitor___visit;
1549 fra.me.has_broke = 0;
1550 fra.me.REG_size = 2;
1551 fra.me.REG[0] = NIT_NULL;
1552 fra.me.REG[1] = NIT_NULL;
1553 fra.me.REG[0] = p0;
1554 fra.me.REG[1] = p1;
1555 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1556 /* ./syntax//mmbuilder.nit:371 */
1557 if (UNTAG_Bool(REGB0)) {
1558 fprintf(stderr, "Reciever is null");
1559 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 371);
1560 nit_exit(1);
1561 }
1562 CALL_mmbuilder___ANode___accept_class_verifier(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1563 stack_frame_head = fra.me.prev;
1564 return;
1565 }
1566 void mmbuilder___ClassVerifierVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
1567 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ClassVerifierVisitor].i;
1568 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1569 val_t tmp;
1570 if (init_table[itpos5]) return;
1571 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1572 fra.me.file = LOCATE_mmbuilder;
1573 fra.me.line = 372;
1574 fra.me.meth = LOCATE_mmbuilder___ClassVerifierVisitor___init;
1575 fra.me.has_broke = 0;
1576 fra.me.REG_size = 3;
1577 fra.me.REG[0] = NIT_NULL;
1578 fra.me.REG[1] = NIT_NULL;
1579 fra.me.REG[2] = NIT_NULL;
1580 fra.me.REG[0] = p0;
1581 fra.me.REG[1] = p1;
1582 fra.me.REG[2] = p2;
1583 /* ./syntax//mmbuilder.nit:372 */
1584 CALL_syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1585 stack_frame_head = fra.me.prev;
1586 init_table[itpos5] = 1;
1587 return;
1588 }
1589 void mmbuilder___PropertyBuilderVisitor___visit(val_t p0, val_t p1){
1590 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1591 val_t REGB0;
1592 val_t tmp;
1593 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1594 fra.me.file = LOCATE_mmbuilder;
1595 fra.me.line = 382;
1596 fra.me.meth = LOCATE_mmbuilder___PropertyBuilderVisitor___visit;
1597 fra.me.has_broke = 0;
1598 fra.me.REG_size = 2;
1599 fra.me.REG[0] = NIT_NULL;
1600 fra.me.REG[1] = NIT_NULL;
1601 fra.me.REG[0] = p0;
1602 fra.me.REG[1] = p1;
1603 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1604 /* ./syntax//mmbuilder.nit:382 */
1605 if (UNTAG_Bool(REGB0)) {
1606 fprintf(stderr, "Reciever is null");
1607 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 382);
1608 nit_exit(1);
1609 }
1610 CALL_mmbuilder___ANode___accept_property_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1611 stack_frame_head = fra.me.prev;
1612 return;
1613 }
1614 void mmbuilder___PropertyBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
1615 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_PropertyBuilderVisitor].i;
1616 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1617 val_t tmp;
1618 if (init_table[itpos6]) return;
1619 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1620 fra.me.file = LOCATE_mmbuilder;
1621 fra.me.line = 383;
1622 fra.me.meth = LOCATE_mmbuilder___PropertyBuilderVisitor___init;
1623 fra.me.has_broke = 0;
1624 fra.me.REG_size = 3;
1625 fra.me.REG[0] = NIT_NULL;
1626 fra.me.REG[1] = NIT_NULL;
1627 fra.me.REG[2] = NIT_NULL;
1628 fra.me.REG[0] = p0;
1629 fra.me.REG[1] = p1;
1630 fra.me.REG[2] = p2;
1631 /* ./syntax//mmbuilder.nit:383 */
1632 CALL_syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1633 stack_frame_head = fra.me.prev;
1634 init_table[itpos6] = 1;
1635 return;
1636 }
1637 void mmbuilder___PropertyVerifierVisitor___visit(val_t p0, val_t p1){
1638 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1639 val_t REGB0;
1640 val_t tmp;
1641 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1642 fra.me.file = LOCATE_mmbuilder;
1643 fra.me.line = 394;
1644 fra.me.meth = LOCATE_mmbuilder___PropertyVerifierVisitor___visit;
1645 fra.me.has_broke = 0;
1646 fra.me.REG_size = 2;
1647 fra.me.REG[0] = NIT_NULL;
1648 fra.me.REG[1] = NIT_NULL;
1649 fra.me.REG[0] = p0;
1650 fra.me.REG[1] = p1;
1651 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1652 /* ./syntax//mmbuilder.nit:394 */
1653 if (UNTAG_Bool(REGB0)) {
1654 fprintf(stderr, "Reciever is null");
1655 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 394);
1656 nit_exit(1);
1657 }
1658 CALL_mmbuilder___ANode___accept_property_verifier(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1659 stack_frame_head = fra.me.prev;
1660 return;
1661 }
1662 val_t mmbuilder___PropertyVerifierVisitor___signature_builder(val_t p0){
1663 struct {struct stack_frame_t me;} fra;
1664 val_t REGB0;
1665 val_t tmp;
1666 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1667 fra.me.file = LOCATE_mmbuilder;
1668 fra.me.line = 391;
1669 fra.me.meth = LOCATE_mmbuilder___PropertyVerifierVisitor___signature_builder;
1670 fra.me.has_broke = 0;
1671 fra.me.REG_size = 1;
1672 fra.me.REG[0] = NIT_NULL;
1673 fra.me.REG[0] = p0;
1674 REGB0 = TAG_Bool(ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0])!=NIT_NULL);
1675 /* ./syntax//mmbuilder.nit:391 */
1676 if (UNTAG_Bool(REGB0)) {
1677 } else {
1678 fprintf(stderr, "Uninitialized attribute %s", "_signature_builder");
1679 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 391);
1680 nit_exit(1);
1681 }
1682 fra.me.REG[0] = ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0]);
1683 stack_frame_head = fra.me.prev;
1684 return fra.me.REG[0];
1685 }
1686 void mmbuilder___PropertyVerifierVisitor___signature_builder__eq(val_t p0, val_t p1){
1687 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1688 val_t tmp;
1689 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1690 fra.me.file = LOCATE_mmbuilder;
1691 fra.me.line = 391;
1692 fra.me.meth = LOCATE_mmbuilder___PropertyVerifierVisitor___signature_builder__eq;
1693 fra.me.has_broke = 0;
1694 fra.me.REG_size = 2;
1695 fra.me.REG[0] = NIT_NULL;
1696 fra.me.REG[1] = NIT_NULL;
1697 fra.me.REG[0] = p0;
1698 fra.me.REG[1] = p1;
1699 /* ./syntax//mmbuilder.nit:391 */
1700 ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0]) = fra.me.REG[1];
1701 stack_frame_head = fra.me.prev;
1702 return;
1703 }
1704 void mmbuilder___PropertyVerifierVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
1705 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_PropertyVerifierVisitor].i;
1706 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1707 val_t tmp;
1708 if (init_table[itpos7]) return;
1709 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1710 fra.me.file = LOCATE_mmbuilder;
1711 fra.me.line = 396;
1712 fra.me.meth = LOCATE_mmbuilder___PropertyVerifierVisitor___init;
1713 fra.me.has_broke = 0;
1714 fra.me.REG_size = 4;
1715 fra.me.REG[0] = NIT_NULL;
1716 fra.me.REG[1] = NIT_NULL;
1717 fra.me.REG[2] = NIT_NULL;
1718 fra.me.REG[3] = NIT_NULL;
1719 fra.me.REG[0] = p0;
1720 fra.me.REG[1] = p1;
1721 fra.me.REG[2] = p2;
1722 fra.me.REG[3] = fra.me.REG[0];
1723 /* ./syntax//mmbuilder.nit:398 */
1724 CALL_syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1725 fra.me.REG[2] = NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init();
1726 /* ./syntax//mmbuilder.nit:399 */
1727 ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[3]) = fra.me.REG[2];
1728 stack_frame_head = fra.me.prev;
1729 init_table[itpos7] = 1;
1730 return;
1731 }
1732 val_t mmbuilder___SignatureBuilder___params(val_t p0){
1733 struct {struct stack_frame_t me;} fra;
1734 val_t REGB0;
1735 val_t tmp;
1736 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1737 fra.me.file = LOCATE_mmbuilder;
1738 fra.me.line = 405;
1739 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___params;
1740 fra.me.has_broke = 0;
1741 fra.me.REG_size = 1;
1742 fra.me.REG[0] = NIT_NULL;
1743 fra.me.REG[0] = p0;
1744 REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____params(fra.me.REG[0])!=NIT_NULL);
1745 /* ./syntax//mmbuilder.nit:405 */
1746 if (UNTAG_Bool(REGB0)) {
1747 } else {
1748 fprintf(stderr, "Uninitialized attribute %s", "_params");
1749 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 405);
1750 nit_exit(1);
1751 }
1752 fra.me.REG[0] = ATTR_mmbuilder___SignatureBuilder____params(fra.me.REG[0]);
1753 stack_frame_head = fra.me.prev;
1754 return fra.me.REG[0];
1755 }
1756 void mmbuilder___SignatureBuilder___params__eq(val_t p0, val_t p1){
1757 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1758 val_t tmp;
1759 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1760 fra.me.file = LOCATE_mmbuilder;
1761 fra.me.line = 405;
1762 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___params__eq;
1763 fra.me.has_broke = 0;
1764 fra.me.REG_size = 2;
1765 fra.me.REG[0] = NIT_NULL;
1766 fra.me.REG[1] = NIT_NULL;
1767 fra.me.REG[0] = p0;
1768 fra.me.REG[1] = p1;
1769 /* ./syntax//mmbuilder.nit:405 */
1770 ATTR_mmbuilder___SignatureBuilder____params(fra.me.REG[0]) = fra.me.REG[1];
1771 stack_frame_head = fra.me.prev;
1772 return;
1773 }
1774 val_t mmbuilder___SignatureBuilder___untyped_params(val_t p0){
1775 struct {struct stack_frame_t me;} fra;
1776 val_t REGB0;
1777 val_t tmp;
1778 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1779 fra.me.file = LOCATE_mmbuilder;
1780 fra.me.line = 408;
1781 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___untyped_params;
1782 fra.me.has_broke = 0;
1783 fra.me.REG_size = 1;
1784 fra.me.REG[0] = NIT_NULL;
1785 fra.me.REG[0] = p0;
1786 REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0])!=NIT_NULL);
1787 /* ./syntax//mmbuilder.nit:408 */
1788 if (UNTAG_Bool(REGB0)) {
1789 } else {
1790 fprintf(stderr, "Uninitialized attribute %s", "_untyped_params");
1791 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 408);
1792 nit_exit(1);
1793 }
1794 fra.me.REG[0] = ATTR_mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0]);
1795 stack_frame_head = fra.me.prev;
1796 return fra.me.REG[0];
1797 }
1798 void mmbuilder___SignatureBuilder___untyped_params__eq(val_t p0, val_t p1){
1799 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1800 val_t tmp;
1801 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1802 fra.me.file = LOCATE_mmbuilder;
1803 fra.me.line = 408;
1804 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___untyped_params__eq;
1805 fra.me.has_broke = 0;
1806 fra.me.REG_size = 2;
1807 fra.me.REG[0] = NIT_NULL;
1808 fra.me.REG[1] = NIT_NULL;
1809 fra.me.REG[0] = p0;
1810 fra.me.REG[1] = p1;
1811 /* ./syntax//mmbuilder.nit:408 */
1812 ATTR_mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0]) = fra.me.REG[1];
1813 stack_frame_head = fra.me.prev;
1814 return;
1815 }
1816 val_t mmbuilder___SignatureBuilder___vararg_rank(val_t p0){
1817 struct {struct stack_frame_t me;} fra;
1818 val_t REGB0;
1819 val_t tmp;
1820 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1821 fra.me.file = LOCATE_mmbuilder;
1822 fra.me.line = 411;
1823 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___vararg_rank;
1824 fra.me.has_broke = 0;
1825 fra.me.REG_size = 1;
1826 fra.me.REG[0] = NIT_NULL;
1827 fra.me.REG[0] = p0;
1828 REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0])!=NIT_NULL);
1829 /* ./syntax//mmbuilder.nit:411 */
1830 if (UNTAG_Bool(REGB0)) {
1831 } else {
1832 fprintf(stderr, "Uninitialized attribute %s", "_vararg_rank");
1833 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 411);
1834 nit_exit(1);
1835 }
1836 REGB0 = ATTR_mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]);
1837 stack_frame_head = fra.me.prev;
1838 return REGB0;
1839 }
1840 void mmbuilder___SignatureBuilder___vararg_rank__eq(val_t p0, val_t p1){
1841 struct {struct stack_frame_t me;} fra;
1842 val_t REGB0;
1843 val_t tmp;
1844 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1845 fra.me.file = LOCATE_mmbuilder;
1846 fra.me.line = 411;
1847 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___vararg_rank__eq;
1848 fra.me.has_broke = 0;
1849 fra.me.REG_size = 1;
1850 fra.me.REG[0] = NIT_NULL;
1851 fra.me.REG[0] = p0;
1852 REGB0 = p1;
1853 /* ./syntax//mmbuilder.nit:411 */
1854 ATTR_mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]) = REGB0;
1855 stack_frame_head = fra.me.prev;
1856 return;
1857 }
1858 val_t mmbuilder___SignatureBuilder___closure_decls(val_t p0){
1859 struct {struct stack_frame_t me;} fra;
1860 val_t REGB0;
1861 val_t tmp;
1862 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1863 fra.me.file = LOCATE_mmbuilder;
1864 fra.me.line = 414;
1865 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___closure_decls;
1866 fra.me.has_broke = 0;
1867 fra.me.REG_size = 1;
1868 fra.me.REG[0] = NIT_NULL;
1869 fra.me.REG[0] = p0;
1870 REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0])!=NIT_NULL);
1871 /* ./syntax//mmbuilder.nit:414 */
1872 if (UNTAG_Bool(REGB0)) {
1873 } else {
1874 fprintf(stderr, "Uninitialized attribute %s", "_closure_decls");
1875 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 414);
1876 nit_exit(1);
1877 }
1878 fra.me.REG[0] = ATTR_mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0]);
1879 stack_frame_head = fra.me.prev;
1880 return fra.me.REG[0];
1881 }
1882 void mmbuilder___SignatureBuilder___closure_decls__eq(val_t p0, val_t p1){
1883 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1884 val_t tmp;
1885 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1886 fra.me.file = LOCATE_mmbuilder;
1887 fra.me.line = 414;
1888 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___closure_decls__eq;
1889 fra.me.has_broke = 0;
1890 fra.me.REG_size = 2;
1891 fra.me.REG[0] = NIT_NULL;
1892 fra.me.REG[1] = NIT_NULL;
1893 fra.me.REG[0] = p0;
1894 fra.me.REG[1] = p1;
1895 /* ./syntax//mmbuilder.nit:414 */
1896 ATTR_mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0]) = fra.me.REG[1];
1897 stack_frame_head = fra.me.prev;
1898 return;
1899 }
1900 val_t mmbuilder___SignatureBuilder___has_error_occured(val_t p0){
1901 struct {struct stack_frame_t me;} fra;
1902 val_t REGB0;
1903 val_t tmp;
1904 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1905 fra.me.file = LOCATE_mmbuilder;
1906 fra.me.line = 417;
1907 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___has_error_occured;
1908 fra.me.has_broke = 0;
1909 fra.me.REG_size = 1;
1910 fra.me.REG[0] = NIT_NULL;
1911 fra.me.REG[0] = p0;
1912 REGB0 = TAG_Bool(ATTR_mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0])!=NIT_NULL);
1913 /* ./syntax//mmbuilder.nit:417 */
1914 if (UNTAG_Bool(REGB0)) {
1915 } else {
1916 fprintf(stderr, "Uninitialized attribute %s", "_has_error_occured");
1917 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 417);
1918 nit_exit(1);
1919 }
1920 REGB0 = ATTR_mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]);
1921 stack_frame_head = fra.me.prev;
1922 return REGB0;
1923 }
1924 void mmbuilder___SignatureBuilder___has_error_occured__eq(val_t p0, val_t p1){
1925 struct {struct stack_frame_t me;} fra;
1926 val_t REGB0;
1927 val_t tmp;
1928 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1929 fra.me.file = LOCATE_mmbuilder;
1930 fra.me.line = 417;
1931 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___has_error_occured__eq;
1932 fra.me.has_broke = 0;
1933 fra.me.REG_size = 1;
1934 fra.me.REG[0] = NIT_NULL;
1935 fra.me.REG[0] = p0;
1936 REGB0 = p1;
1937 /* ./syntax//mmbuilder.nit:417 */
1938 ATTR_mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]) = REGB0;
1939 stack_frame_head = fra.me.prev;
1940 return;
1941 }
1942 val_t mmbuilder___SignatureBuilder___signature(val_t p0){
1943 struct {struct stack_frame_t me;} fra;
1944 val_t tmp;
1945 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1946 fra.me.file = LOCATE_mmbuilder;
1947 fra.me.line = 420;
1948 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___signature;
1949 fra.me.has_broke = 0;
1950 fra.me.REG_size = 1;
1951 fra.me.REG[0] = NIT_NULL;
1952 fra.me.REG[0] = p0;
1953 fra.me.REG[0] = ATTR_mmbuilder___SignatureBuilder____signature(fra.me.REG[0]);
1954 /* ./syntax//mmbuilder.nit:420 */
1955 stack_frame_head = fra.me.prev;
1956 return fra.me.REG[0];
1957 }
1958 void mmbuilder___SignatureBuilder___signature__eq(val_t p0, val_t p1){
1959 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1960 val_t tmp;
1961 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1962 fra.me.file = LOCATE_mmbuilder;
1963 fra.me.line = 420;
1964 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___signature__eq;
1965 fra.me.has_broke = 0;
1966 fra.me.REG_size = 2;
1967 fra.me.REG[0] = NIT_NULL;
1968 fra.me.REG[1] = NIT_NULL;
1969 fra.me.REG[0] = p0;
1970 fra.me.REG[1] = p1;
1971 /* ./syntax//mmbuilder.nit:420 */
1972 ATTR_mmbuilder___SignatureBuilder____signature(fra.me.REG[0]) = fra.me.REG[1];
1973 stack_frame_head = fra.me.prev;
1974 return;
1975 }
1976 void mmbuilder___SignatureBuilder___init(val_t p0, int* init_table){
1977 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_SignatureBuilder].i;
1978 struct {struct stack_frame_t me;} fra;
1979 val_t tmp;
1980 if (init_table[itpos8]) return;
1981 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1982 fra.me.file = LOCATE_mmbuilder;
1983 fra.me.line = 0;
1984 fra.me.meth = LOCATE_mmbuilder___SignatureBuilder___init;
1985 fra.me.has_broke = 0;
1986 fra.me.REG_size = 0;
1987 stack_frame_head = fra.me.prev;
1988 init_table[itpos8] = 1;
1989 return;
1990 }
1991 void mmbuilder___ANode___accept_class_builder(val_t p0, val_t p1){
1992 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1993 val_t tmp;
1994 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1995 fra.me.file = LOCATE_mmbuilder;
1996 fra.me.line = 427;
1997 fra.me.meth = LOCATE_mmbuilder___ANode___accept_class_builder;
1998 fra.me.has_broke = 0;
1999 fra.me.REG_size = 2;
2000 fra.me.REG[0] = NIT_NULL;
2001 fra.me.REG[1] = NIT_NULL;
2002 fra.me.REG[0] = p0;
2003 fra.me.REG[1] = p1;
2004 /* ./syntax//mmbuilder.nit:427 */
2005 CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2006 stack_frame_head = fra.me.prev;
2007 return;
2008 }
2009 void mmbuilder___ANode___accept_class_specialization_builder(val_t p0, val_t p1){
2010 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2011 val_t tmp;
2012 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2013 fra.me.file = LOCATE_mmbuilder;
2014 fra.me.line = 428;
2015 fra.me.meth = LOCATE_mmbuilder___ANode___accept_class_specialization_builder;
2016 fra.me.has_broke = 0;
2017 fra.me.REG_size = 2;
2018 fra.me.REG[0] = NIT_NULL;
2019 fra.me.REG[1] = NIT_NULL;
2020 fra.me.REG[0] = p0;
2021 fra.me.REG[1] = p1;
2022 /* ./syntax//mmbuilder.nit:428 */
2023 CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2024 stack_frame_head = fra.me.prev;
2025 return;
2026 }
2027 void mmbuilder___ANode___accept_class_ancestor_builder(val_t p0, val_t p1){
2028 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2029 val_t tmp;
2030 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2031 fra.me.file = LOCATE_mmbuilder;
2032 fra.me.line = 429;
2033 fra.me.meth = LOCATE_mmbuilder___ANode___accept_class_ancestor_builder;
2034 fra.me.has_broke = 0;
2035 fra.me.REG_size = 2;
2036 fra.me.REG[0] = NIT_NULL;
2037 fra.me.REG[1] = NIT_NULL;
2038 fra.me.REG[0] = p0;
2039 fra.me.REG[1] = p1;
2040 /* ./syntax//mmbuilder.nit:429 */
2041 CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2042 stack_frame_head = fra.me.prev;
2043 return;
2044 }
2045 void mmbuilder___ANode___accept_class_verifier(val_t p0, val_t p1){
2046 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2047 val_t tmp;
2048 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2049 fra.me.file = LOCATE_mmbuilder;
2050 fra.me.line = 430;
2051 fra.me.meth = LOCATE_mmbuilder___ANode___accept_class_verifier;
2052 fra.me.has_broke = 0;
2053 fra.me.REG_size = 2;
2054 fra.me.REG[0] = NIT_NULL;
2055 fra.me.REG[1] = NIT_NULL;
2056 fra.me.REG[0] = p0;
2057 fra.me.REG[1] = p1;
2058 /* ./syntax//mmbuilder.nit:430 */
2059 CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2060 stack_frame_head = fra.me.prev;
2061 return;
2062 }
2063 void mmbuilder___ANode___accept_property_builder(val_t p0, val_t p1){
2064 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2065 val_t tmp;
2066 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2067 fra.me.file = LOCATE_mmbuilder;
2068 fra.me.line = 431;
2069 fra.me.meth = LOCATE_mmbuilder___ANode___accept_property_builder;
2070 fra.me.has_broke = 0;
2071 fra.me.REG_size = 2;
2072 fra.me.REG[0] = NIT_NULL;
2073 fra.me.REG[1] = NIT_NULL;
2074 fra.me.REG[0] = p0;
2075 fra.me.REG[1] = p1;
2076 /* ./syntax//mmbuilder.nit:431 */
2077 CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2078 stack_frame_head = fra.me.prev;
2079 return;
2080 }
2081 void mmbuilder___ANode___accept_property_verifier(val_t p0, val_t p1){
2082 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2083 val_t tmp;
2084 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2085 fra.me.file = LOCATE_mmbuilder;
2086 fra.me.line = 432;
2087 fra.me.meth = LOCATE_mmbuilder___ANode___accept_property_verifier;
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:432 */
2095 CALL_syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2096 stack_frame_head = fra.me.prev;
2097 return;
2098 }
2099 void mmbuilder___AModule___import_super_modules(val_t p0, val_t p1, val_t p2){
2100 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
2101 val_t REGB0;
2102 val_t REGB1;
2103 val_t tmp;
2104 static val_t once_value_2; /* Once value */
2105 static val_t once_value_3; /* Once value */
2106 static val_t once_value_4; /* Once value */
2107 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2108 fra.me.file = LOCATE_mmbuilder;
2109 fra.me.line = 436;
2110 fra.me.meth = LOCATE_mmbuilder___AModule___import_super_modules;
2111 fra.me.has_broke = 0;
2112 fra.me.REG_size = 8;
2113 fra.me.REG[0] = NIT_NULL;
2114 fra.me.REG[1] = NIT_NULL;
2115 fra.me.REG[2] = NIT_NULL;
2116 fra.me.REG[3] = NIT_NULL;
2117 fra.me.REG[4] = NIT_NULL;
2118 fra.me.REG[5] = NIT_NULL;
2119 fra.me.REG[6] = NIT_NULL;
2120 fra.me.REG[7] = NIT_NULL;
2121 fra.me.REG[0] = p0;
2122 fra.me.REG[1] = p1;
2123 fra.me.REG[2] = p2;
2124 fra.me.REG[3] = NEW_Array_array___Array___init();
2125 fra.me.REG[4] = NEW_HashMap_hash_collection___HashMap___init();
2126 fra.me.REG[5] = NIT_NULL;
2127 fra.me.REG[0] = CALL_parser_nodes___AModule___n_imports(fra.me.REG[0])(fra.me.REG[0]);
2128 fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
2129 /* ./syntax//mmbuilder.nit:443 */
2130 while(1) {
2131 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
2132 if (UNTAG_Bool(REGB0)) {
2133 fra.me.REG[6] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
2134 fra.me.REG[7] = CALL_mmbuilder___AImport___module_name(fra.me.REG[6])(fra.me.REG[6]);
2135 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2136 /* ./syntax//mmbuilder.nit:445 */
2137 if (UNTAG_Bool(REGB0)) {
2138 } else {
2139 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2140 if (UNTAG_Bool(REGB1)) {
2141 REGB1 = TAG_Bool(false);
2142 REGB0 = REGB1;
2143 } else {
2144 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
2145 REGB0 = REGB1;
2146 }
2147 }
2148 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2149 if (UNTAG_Bool(REGB0)) {
2150 /* ./syntax//mmbuilder.nit:446 */
2151 array___Array___add(fra.me.REG[3], fra.me.REG[7]);
2152 REGB0 = CALL_mmbuilder___AImport___visibility_level(fra.me.REG[6])(fra.me.REG[6]);
2153 /* ./syntax//mmbuilder.nit:447 */
2154 CALL_abstract_collection___Map_____braeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7], REGB0);
2155 } else {
2156 fra.me.REG[5] = fra.me.REG[6];
2157 /* ./syntax//mmbuilder.nit:449 */
2158 }
2159 } else {
2160 /* ./syntax//mmbuilder.nit:443 */
2161 goto label1;
2162 }
2163 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
2164 }
2165 label1: while(0);
2166 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2167 /* ./syntax//mmbuilder.nit:452 */
2168 if (UNTAG_Bool(REGB0)) {
2169 } else {
2170 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2171 if (UNTAG_Bool(REGB1)) {
2172 REGB1 = TAG_Bool(false);
2173 REGB0 = REGB1;
2174 } else {
2175 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
2176 REGB0 = REGB1;
2177 }
2178 }
2179 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2180 if (UNTAG_Bool(REGB0)) {
2181 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
2182 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2183 /* ./syntax//mmbuilder.nit:453 */
2184 if (UNTAG_Bool(REGB0)) {
2185 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2186 /* ./syntax//mmbuilder.nit:454 */
2187 if (UNTAG_Bool(REGB0)) {
2188 fprintf(stderr, "Reciever is null");
2189 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 454);
2190 nit_exit(1);
2191 }
2192 fra.me.REG[5] = CALL_parser_nodes___ANode___location(fra.me.REG[5])(fra.me.REG[5]);
2193 if (!once_value_2) {
2194 fra.me.REG[0] = BOX_NativeString("Error: Top modules cannot import other modules.");
2195 REGB0 = TAG_Int(47);
2196 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
2197 once_value_2 = fra.me.REG[0];
2198 register_static_object(&once_value_2);
2199 } else fra.me.REG[0] = once_value_2;
2200 CALL_mmloader___ToolContext___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5], fra.me.REG[0]);
2201 }
2202 } else {
2203 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
2204 /* ./syntax//mmbuilder.nit:456 */
2205 if (UNTAG_Bool(REGB0)) {
2206 /* ./syntax//mmbuilder.nit:457 */
2207 if (!once_value_3) {
2208 if (!once_value_4) {
2209 fra.me.REG[0] = BOX_NativeString("standard");
2210 REGB0 = TAG_Int(8);
2211 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
2212 once_value_4 = fra.me.REG[0];
2213 register_static_object(&once_value_4);
2214 } else fra.me.REG[0] = once_value_4;
2215 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
2216 once_value_3 = fra.me.REG[0];
2217 register_static_object(&once_value_3);
2218 } else fra.me.REG[0] = once_value_3;
2219 /* ./syntax//mmbuilder.nit:458 */
2220 array___Array___add(fra.me.REG[3], fra.me.REG[0]);
2221 REGB0 = TAG_Int(1);
2222 /* ./syntax//mmbuilder.nit:459 */
2223 CALL_abstract_collection___Map_____braeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0], REGB0);
2224 }
2225 }
2226 /* ./syntax//mmbuilder.nit:462 */
2227 CALL_mmloader___MMModule___import_supers_modules(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2228 fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]);
2229 /* ./syntax//mmbuilder.nit:464 */
2230 while(1) {
2231 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]);
2232 if (UNTAG_Bool(REGB0)) {
2233 fra.me.REG[0] = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]);
2234 fra.me.REG[5] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
2235 REGB0 = fra.me.REG[5];
2236 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]);
2237 /* ./syntax//mmbuilder.nit:467 */
2238 CALL_abstractmetamodel___MMModule___add_super_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], REGB0);
2239 } else {
2240 /* ./syntax//mmbuilder.nit:464 */
2241 goto label5;
2242 }
2243 CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]);
2244 }
2245 label5: while(0);
2246 stack_frame_head = fra.me.prev;
2247 return;
2248 }
2249 void mmbuilder___APackagedecl___accept_class_builder(val_t p0, val_t p1){
2250 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
2251 val_t REGB0;
2252 val_t REGB1;
2253 val_t tmp;
2254 static val_t once_value_1; /* Once value */
2255 static val_t once_value_2; /* Once value */
2256 static val_t once_value_3; /* Once value */
2257 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2258 fra.me.file = LOCATE_mmbuilder;
2259 fra.me.line = 473;
2260 fra.me.meth = LOCATE_mmbuilder___APackagedecl___accept_class_builder;
2261 fra.me.has_broke = 0;
2262 fra.me.REG_size = 5;
2263 fra.me.REG[0] = NIT_NULL;
2264 fra.me.REG[1] = NIT_NULL;
2265 fra.me.REG[2] = NIT_NULL;
2266 fra.me.REG[3] = NIT_NULL;
2267 fra.me.REG[4] = NIT_NULL;
2268 fra.me.REG[0] = p0;
2269 fra.me.REG[1] = p1;
2270 fra.me.REG[2] = CALL_parser_nodes___APackagedecl___n_id(fra.me.REG[0])(fra.me.REG[0]);
2271 fra.me.REG[2] = CALL_syntax_base___Token___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
2272 fra.me.REG[3] = CALL_syntax_base___AbsSyntaxVisitor___module(fra.me.REG[1])(fra.me.REG[1]);
2273 fra.me.REG[3] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[3])(fra.me.REG[3]);
2274 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
2275 /* ./syntax//mmbuilder.nit:475 */
2276 if (UNTAG_Bool(REGB0)) {
2277 } else {
2278 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2279 REGB0 = REGB1;
2280 }
2281 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2282 if (UNTAG_Bool(REGB0)) {
2283 fra.me.REG[3] = CALL_parser_nodes___APackagedecl___n_id(fra.me.REG[0])(fra.me.REG[0]);
2284 REGB0 = TAG_Int(5);
2285 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
2286 /* ./syntax//mmbuilder.nit:476 */
2287 if (!once_value_1) {
2288 fra.me.REG[4] = BOX_NativeString("Error: Package name missmatch between ");
2289 REGB0 = TAG_Int(38);
2290 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
2291 once_value_1 = fra.me.REG[4];
2292 register_static_object(&once_value_1);
2293 } else fra.me.REG[4] = once_value_1;
2294 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
2295 fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___module(fra.me.REG[1])(fra.me.REG[1]);
2296 fra.me.REG[4] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[4])(fra.me.REG[4]);
2297 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
2298 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
2299 if (!once_value_2) {
2300 fra.me.REG[4] = BOX_NativeString(" and ");
2301 REGB0 = TAG_Int(5);
2302 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
2303 once_value_2 = fra.me.REG[4];
2304 register_static_object(&once_value_2);
2305 } else fra.me.REG[4] = once_value_2;
2306 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
2307 fra.me.REG[0] = CALL_parser_nodes___APackagedecl___n_id(fra.me.REG[0])(fra.me.REG[0]);
2308 fra.me.REG[0] = CALL_syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
2309 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2310 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
2311 if (!once_value_3) {
2312 fra.me.REG[0] = BOX_NativeString("");
2313 REGB0 = TAG_Int(0);
2314 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
2315 once_value_3 = fra.me.REG[0];
2316 register_static_object(&once_value_3);
2317 } else fra.me.REG[0] = once_value_3;
2318 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
2319 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2320 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2]);
2321 }
2322 stack_frame_head = fra.me.prev;
2323 return;
2324 }
2325 val_t mmbuilder___AImport___module_name(val_t p0){
2326 struct {struct stack_frame_t me;} fra;
2327 val_t tmp;
2328 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2329 fra.me.file = LOCATE_mmbuilder;
2330 fra.me.line = 482;
2331 fra.me.meth = LOCATE_mmbuilder___AImport___module_name;
2332 fra.me.has_broke = 0;
2333 fra.me.REG_size = 0;
2334 /* ./syntax//mmbuilder.nit:482 */
2335 fprintf(stderr, "Deferred method called");
2336 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 482);
2337 nit_exit(1);
2338 stack_frame_head = fra.me.prev;
2339 return NIT_NULL;
2340 }
2341 val_t mmbuilder___AImport___visibility_level(val_t p0){
2342 struct {struct stack_frame_t me;} fra;
2343 val_t tmp;
2344 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2345 fra.me.file = LOCATE_mmbuilder;
2346 fra.me.line = 485;
2347 fra.me.meth = LOCATE_mmbuilder___AImport___visibility_level;
2348 fra.me.has_broke = 0;
2349 fra.me.REG_size = 0;
2350 /* ./syntax//mmbuilder.nit:485 */
2351 fprintf(stderr, "Deferred method called");
2352 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 485);
2353 nit_exit(1);
2354 stack_frame_head = fra.me.prev;
2355 return NIT_NULL;
2356 }
2357 val_t mmbuilder___AStdImport___module_name(val_t p0){
2358 struct {struct stack_frame_t me;} fra;
2359 val_t tmp;
2360 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2361 fra.me.file = LOCATE_mmbuilder;
2362 fra.me.line = 489;
2363 fra.me.meth = LOCATE_mmbuilder___AStdImport___module_name;
2364 fra.me.has_broke = 0;
2365 fra.me.REG_size = 1;
2366 fra.me.REG[0] = NIT_NULL;
2367 fra.me.REG[0] = p0;
2368 fra.me.REG[0] = CALL_parser_nodes___AStdImport___n_id(fra.me.REG[0])(fra.me.REG[0]);
2369 fra.me.REG[0] = CALL_syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
2370 /* ./syntax//mmbuilder.nit:491 */
2371 goto label1;
2372 label1: while(0);
2373 stack_frame_head = fra.me.prev;
2374 return fra.me.REG[0];
2375 }
2376 val_t mmbuilder___AStdImport___visibility_level(val_t p0){
2377 struct {struct stack_frame_t me;} fra;
2378 val_t REGB0;
2379 val_t tmp;
2380 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2381 fra.me.file = LOCATE_mmbuilder;
2382 fra.me.line = 493;
2383 fra.me.meth = LOCATE_mmbuilder___AStdImport___visibility_level;
2384 fra.me.has_broke = 0;
2385 fra.me.REG_size = 1;
2386 fra.me.REG[0] = NIT_NULL;
2387 fra.me.REG[0] = p0;
2388 fra.me.REG[0] = CALL_parser_nodes___AStdImport___n_visibility(fra.me.REG[0])(fra.me.REG[0]);
2389 REGB0 = CALL_mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
2390 /* ./syntax//mmbuilder.nit:495 */
2391 goto label1;
2392 label1: while(0);
2393 stack_frame_head = fra.me.prev;
2394 return REGB0;
2395 }
2396 val_t mmbuilder___ANoImport___module_name(val_t p0){
2397 struct {struct stack_frame_t me;} fra;
2398 val_t tmp;
2399 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2400 fra.me.file = LOCATE_mmbuilder;
2401 fra.me.line = 499;
2402 fra.me.meth = LOCATE_mmbuilder___ANoImport___module_name;
2403 fra.me.has_broke = 0;
2404 fra.me.REG_size = 1;
2405 fra.me.REG[0] = NIT_NULL;
2406 fra.me.REG[0] = p0;
2407 fra.me.REG[0] = NIT_NULL;
2408 /* ./syntax//mmbuilder.nit:501 */
2409 goto label1;
2410 label1: while(0);
2411 stack_frame_head = fra.me.prev;
2412 return fra.me.REG[0];
2413 }
2414 val_t mmbuilder___AVisibility___level(val_t p0){
2415 struct {struct stack_frame_t me;} fra;
2416 val_t tmp;
2417 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2418 fra.me.file = LOCATE_mmbuilder;
2419 fra.me.line = 506;
2420 fra.me.meth = LOCATE_mmbuilder___AVisibility___level;
2421 fra.me.has_broke = 0;
2422 fra.me.REG_size = 0;
2423 /* ./syntax//mmbuilder.nit:506 */
2424 fprintf(stderr, "Deferred method called");
2425 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 506);
2426 nit_exit(1);
2427 stack_frame_head = fra.me.prev;
2428 return NIT_NULL;
2429 }
2430 val_t mmbuilder___APublicVisibility___level(val_t p0){
2431 struct {struct stack_frame_t me;} fra;
2432 val_t REGB0;
2433 val_t tmp;
2434 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2435 fra.me.file = LOCATE_mmbuilder;
2436 fra.me.line = 510;
2437 fra.me.meth = LOCATE_mmbuilder___APublicVisibility___level;
2438 fra.me.has_broke = 0;
2439 fra.me.REG_size = 1;
2440 fra.me.REG[0] = NIT_NULL;
2441 fra.me.REG[0] = p0;
2442 REGB0 = TAG_Int(1);
2443 /* ./syntax//mmbuilder.nit:510 */
2444 goto label1;
2445 label1: while(0);
2446 stack_frame_head = fra.me.prev;
2447 return REGB0;
2448 }
2449 val_t mmbuilder___AProtectedVisibility___level(val_t p0){
2450 struct {struct stack_frame_t me;} fra;
2451 val_t REGB0;
2452 val_t tmp;
2453 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2454 fra.me.file = LOCATE_mmbuilder;
2455 fra.me.line = 513;
2456 fra.me.meth = LOCATE_mmbuilder___AProtectedVisibility___level;
2457 fra.me.has_broke = 0;
2458 fra.me.REG_size = 1;
2459 fra.me.REG[0] = NIT_NULL;
2460 fra.me.REG[0] = p0;
2461 REGB0 = TAG_Int(2);
2462 /* ./syntax//mmbuilder.nit:513 */
2463 goto label1;
2464 label1: while(0);
2465 stack_frame_head = fra.me.prev;
2466 return REGB0;
2467 }
2468 val_t mmbuilder___APrivateVisibility___level(val_t p0){
2469 struct {struct stack_frame_t me;} fra;
2470 val_t REGB0;
2471 val_t tmp;
2472 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2473 fra.me.file = LOCATE_mmbuilder;
2474 fra.me.line = 516;
2475 fra.me.meth = LOCATE_mmbuilder___APrivateVisibility___level;
2476 fra.me.has_broke = 0;
2477 fra.me.REG_size = 1;
2478 fra.me.REG[0] = NIT_NULL;
2479 fra.me.REG[0] = p0;
2480 REGB0 = TAG_Int(3);
2481 /* ./syntax//mmbuilder.nit:516 */
2482 goto label1;
2483 label1: while(0);
2484 stack_frame_head = fra.me.prev;
2485 return REGB0;
2486 }
2487 val_t mmbuilder___AIntrudeVisibility___level(val_t p0){
2488 struct {struct stack_frame_t me;} fra;
2489 val_t REGB0;
2490 val_t tmp;
2491 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2492 fra.me.file = LOCATE_mmbuilder;
2493 fra.me.line = 519;
2494 fra.me.meth = LOCATE_mmbuilder___AIntrudeVisibility___level;
2495 fra.me.has_broke = 0;
2496 fra.me.REG_size = 1;
2497 fra.me.REG[0] = NIT_NULL;
2498 fra.me.REG[0] = p0;
2499 REGB0 = TAG_Int(0);
2500 /* ./syntax//mmbuilder.nit:519 */
2501 goto label1;
2502 label1: while(0);
2503 stack_frame_head = fra.me.prev;
2504 return REGB0;
2505 }
2506 void mmbuilder___AClassdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
2507 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2508 val_t tmp;
2509 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2510 fra.me.file = LOCATE_mmbuilder;
2511 fra.me.line = 573;
2512 fra.me.meth = LOCATE_mmbuilder___AClassdef___accept_abs_syntax_visitor;
2513 fra.me.has_broke = 0;
2514 fra.me.REG_size = 4;
2515 fra.me.REG[0] = NIT_NULL;
2516 fra.me.REG[1] = NIT_NULL;
2517 fra.me.REG[2] = NIT_NULL;
2518 fra.me.REG[3] = NIT_NULL;
2519 fra.me.REG[0] = p0;
2520 fra.me.REG[1] = p1;
2521 fra.me.REG[2] = fra.me.REG[0];
2522 fra.me.REG[3] = fra.me.REG[1];
2523 fra.me.REG[2] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]);
2524 /* ./syntax//mmbuilder.nit:575 */
2525 CALL_syntax_base___AbsSyntaxVisitor___local_class__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
2526 /* ./syntax//mmbuilder.nit:576 */
2527 CALL_SUPER_mmbuilder___AClassdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2528 /* ./syntax//mmbuilder.nit:577 */
2529 CALL_syntax_base___AbsSyntaxVisitor___local_class__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
2530 stack_frame_head = fra.me.prev;
2531 return;
2532 }
2533 val_t mmbuilder___AClassdef___local_class(val_t p0){
2534 struct {struct stack_frame_t me;} fra;
2535 val_t REGB0;
2536 val_t tmp;
2537 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2538 fra.me.file = LOCATE_mmbuilder;
2539 fra.me.line = 524;
2540 fra.me.meth = LOCATE_mmbuilder___AClassdef___local_class;
2541 fra.me.has_broke = 0;
2542 fra.me.REG_size = 1;
2543 fra.me.REG[0] = NIT_NULL;
2544 fra.me.REG[0] = p0;
2545 fra.me.REG[0] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[0]);
2546 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
2547 /* ./syntax//mmbuilder.nit:524 */
2548 if (UNTAG_Bool(REGB0)) {
2549 } else {
2550 fprintf(stderr, "Cast failed");
2551 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 524);
2552 nit_exit(1);
2553 }
2554 goto label1;
2555 label1: while(0);
2556 stack_frame_head = fra.me.prev;
2557 return fra.me.REG[0];
2558 }
2559 void mmbuilder___AClassdef___accept_class_builder(val_t p0, val_t p1){
2560 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
2561 val_t REGB0;
2562 val_t REGB1;
2563 val_t tmp;
2564 static val_t once_value_1; /* Once value */
2565 static val_t once_value_2; /* Once value */
2566 static val_t once_value_3; /* Once value */
2567 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2568 fra.me.file = LOCATE_mmbuilder;
2569 fra.me.line = 536;
2570 fra.me.meth = LOCATE_mmbuilder___AClassdef___accept_class_builder;
2571 fra.me.has_broke = 0;
2572 fra.me.REG_size = 9;
2573 fra.me.REG[0] = NIT_NULL;
2574 fra.me.REG[1] = NIT_NULL;
2575 fra.me.REG[2] = NIT_NULL;
2576 fra.me.REG[3] = NIT_NULL;
2577 fra.me.REG[4] = NIT_NULL;
2578 fra.me.REG[5] = NIT_NULL;
2579 fra.me.REG[6] = NIT_NULL;
2580 fra.me.REG[7] = NIT_NULL;
2581 fra.me.REG[8] = NIT_NULL;
2582 fra.me.REG[0] = p0;
2583 fra.me.REG[1] = p1;
2584 fra.me.REG[2] = fra.me.REG[0];
2585 fra.me.REG[3] = fra.me.REG[1];
2586 fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___module(fra.me.REG[3])(fra.me.REG[3]);
2587 fra.me.REG[5] = CALL_syntax_base___MMSrcModule___src_local_classes(fra.me.REG[4])(fra.me.REG[4]);
2588 fra.me.REG[6] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
2589 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2590 /* ./syntax//mmbuilder.nit:541 */
2591 if (UNTAG_Bool(REGB0)) {
2592 fra.me.REG[6] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
2593 fra.me.REG[6] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2594 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_AStdClassdef, ID_AStdClassdef)) /*cast AStdClassdef*/;
2595 /* ./syntax//mmbuilder.nit:543 */
2596 if (UNTAG_Bool(REGB0)) {
2597 REGB0 = TAG_Int(5);
2598 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB0);
2599 /* ./syntax//mmbuilder.nit:545 */
2600 if (!once_value_1) {
2601 fra.me.REG[8] = BOX_NativeString("Error: A class ");
2602 REGB0 = TAG_Int(15);
2603 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
2604 once_value_1 = fra.me.REG[8];
2605 register_static_object(&once_value_1);
2606 } else fra.me.REG[8] = once_value_1;
2607 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
2608 fra.me.REG[8] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
2609 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
2610 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
2611 if (!once_value_2) {
2612 fra.me.REG[8] = BOX_NativeString(" is already defined at line ");
2613 REGB0 = TAG_Int(28);
2614 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
2615 once_value_2 = fra.me.REG[8];
2616 register_static_object(&once_value_2);
2617 } else fra.me.REG[8] = once_value_2;
2618 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
2619 fra.me.REG[8] = CALL_syntax_base___MMSrcLocalClass___node(fra.me.REG[6])(fra.me.REG[6]);
2620 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
2621 if (UNTAG_Bool(REGB0)) {
2622 fprintf(stderr, "Reciever is null");
2623 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 545);
2624 nit_exit(1);
2625 }
2626 fra.me.REG[8] = CALL_parser_nodes___ANode___location(fra.me.REG[8])(fra.me.REG[8]);
2627 REGB0 = CALL_location___Location___line_start(fra.me.REG[8])(fra.me.REG[8]);
2628 fra.me.REG[8] = CALL_string___Object___to_s(REGB0)(REGB0);
2629 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
2630 if (!once_value_3) {
2631 fra.me.REG[8] = BOX_NativeString(".");
2632 REGB0 = TAG_Int(1);
2633 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
2634 once_value_3 = fra.me.REG[8];
2635 register_static_object(&once_value_3);
2636 } else fra.me.REG[8] = once_value_3;
2637 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
2638 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
2639 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
2640 /* ./syntax//mmbuilder.nit:546 */
2641 goto label4;
2642 }
2643 fra.me.REG[7] = CALL_syntax_base___MMSrcLocalClass___node(fra.me.REG[6])(fra.me.REG[6]);
2644 /* ./syntax//mmbuilder.nit:550 */
2645 while(1) {
2646 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2647 if (UNTAG_Bool(REGB0)) {
2648 fprintf(stderr, "Reciever is null");
2649 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 550);
2650 nit_exit(1);
2651 }
2652 fra.me.REG[8] = CALL_syntax_base___AClassdef___next_node(fra.me.REG[7])(fra.me.REG[7]);
2653 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
2654 if (UNTAG_Bool(REGB0)) {
2655 } else {
2656 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
2657 if (UNTAG_Bool(REGB1)) {
2658 REGB1 = TAG_Bool(false);
2659 REGB0 = REGB1;
2660 } else {
2661 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
2662 REGB0 = REGB1;
2663 }
2664 }
2665 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2666 if (UNTAG_Bool(REGB0)) {
2667 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2668 if (UNTAG_Bool(REGB0)) {
2669 fprintf(stderr, "Reciever is null");
2670 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 550);
2671 nit_exit(1);
2672 }
2673 fra.me.REG[8] = CALL_syntax_base___AClassdef___next_node(fra.me.REG[7])(fra.me.REG[7]);
2674 fra.me.REG[7] = fra.me.REG[8];
2675 } else {
2676 goto label5;
2677 }
2678 }
2679 label5: while(0);
2680 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2681 /* ./syntax//mmbuilder.nit:551 */
2682 if (UNTAG_Bool(REGB0)) {
2683 fprintf(stderr, "Reciever is null");
2684 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 551);
2685 nit_exit(1);
2686 }
2687 CALL_syntax_base___AClassdef___next_node__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]);
2688 } else {
2689 fra.me.REG[7] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
2690 REGB0 = CALL_mmbuilder___AClassdef___arity(fra.me.REG[2])(fra.me.REG[2]);
2691 fra.me.REG[7] = NEW_MMSrcLocalClass_syntax_base___MMSrcLocalClass___init(fra.me.REG[4], fra.me.REG[7], fra.me.REG[2], REGB0);
2692 fra.me.REG[6] = fra.me.REG[7];
2693 fra.me.REG[7] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
2694 /* ./syntax//mmbuilder.nit:554 */
2695 CALL_abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7], fra.me.REG[6]);
2696 fra.me.REG[7] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
2697 REGB0 = CALL_abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
2698 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2699 /* ./syntax//mmbuilder.nit:555 */
2700 if (UNTAG_Bool(REGB0)) {
2701 /* ./syntax//mmbuilder.nit:556 */
2702 CALL_abstractmetamodel___MMLocalClass___new_global(fra.me.REG[6])(fra.me.REG[6]);
2703 } else {
2704 fra.me.REG[7] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
2705 fra.me.REG[7] = CALL_abstractmetamodel___MMModule___global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
2706 /* ./syntax//mmbuilder.nit:558 */
2707 CALL_abstractmetamodel___MMLocalClass___set_global(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
2708 }
2709 }
2710 /* ./syntax//mmbuilder.nit:562 */
2711 ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]) = fra.me.REG[6];
2712 REGB0 = TAG_Int(0);
2713 /* ./syntax//mmbuilder.nit:563 */
2714 CALL_mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
2715 fra.me.REG[6] = CALL_syntax_base___MMSrcLocalClass___formal_dict(fra.me.REG[6])(fra.me.REG[6]);
2716 /* ./syntax//mmbuilder.nit:564 */
2717 CALL_mmbuilder___ClassBuilderVisitor___formals__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
2718 /* ./syntax//mmbuilder.nit:567 */
2719 CALL_SUPER_mmbuilder___AClassdef___accept_class_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2720 /* ./syntax//mmbuilder.nit:570 */
2721 CALL_mmbuilder___ClassBuilderVisitor___formals__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
2722 label4: while(0);
2723 stack_frame_head = fra.me.prev;
2724 return;
2725 }
2726 val_t mmbuilder___AClassdef___name(val_t p0){
2727 struct {struct stack_frame_t me;} fra;
2728 val_t tmp;
2729 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2730 fra.me.file = LOCATE_mmbuilder;
2731 fra.me.line = 527;
2732 fra.me.meth = LOCATE_mmbuilder___AClassdef___name;
2733 fra.me.has_broke = 0;
2734 fra.me.REG_size = 0;
2735 /* ./syntax//mmbuilder.nit:527 */
2736 fprintf(stderr, "Deferred method called");
2737 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 527);
2738 nit_exit(1);
2739 stack_frame_head = fra.me.prev;
2740 return NIT_NULL;
2741 }
2742 val_t mmbuilder___AClassdef___arity(val_t p0){
2743 struct {struct stack_frame_t me;} fra;
2744 val_t REGB0;
2745 val_t tmp;
2746 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2747 fra.me.file = LOCATE_mmbuilder;
2748 fra.me.line = 530;
2749 fra.me.meth = LOCATE_mmbuilder___AClassdef___arity;
2750 fra.me.has_broke = 0;
2751 fra.me.REG_size = 1;
2752 fra.me.REG[0] = NIT_NULL;
2753 fra.me.REG[0] = p0;
2754 REGB0 = TAG_Int(0);
2755 /* ./syntax//mmbuilder.nit:531 */
2756 goto label1;
2757 label1: while(0);
2758 stack_frame_head = fra.me.prev;
2759 return REGB0;
2760 }
2761 val_t mmbuilder___AClassdef___visibility_level(val_t p0){
2762 struct {struct stack_frame_t me;} fra;
2763 val_t REGB0;
2764 val_t tmp;
2765 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2766 fra.me.file = LOCATE_mmbuilder;
2767 fra.me.line = 533;
2768 fra.me.meth = LOCATE_mmbuilder___AClassdef___visibility_level;
2769 fra.me.has_broke = 0;
2770 fra.me.REG_size = 1;
2771 fra.me.REG[0] = NIT_NULL;
2772 fra.me.REG[0] = p0;
2773 REGB0 = TAG_Int(1);
2774 /* ./syntax//mmbuilder.nit:534 */
2775 goto label1;
2776 label1: while(0);
2777 stack_frame_head = fra.me.prev;
2778 return REGB0;
2779 }
2780 val_t mmbuilder___AClasskind___is_interface(val_t p0){
2781 struct {struct stack_frame_t me;} fra;
2782 val_t REGB0;
2783 val_t tmp;
2784 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2785 fra.me.file = LOCATE_mmbuilder;
2786 fra.me.line = 582;
2787 fra.me.meth = LOCATE_mmbuilder___AClasskind___is_interface;
2788 fra.me.has_broke = 0;
2789 fra.me.REG_size = 1;
2790 fra.me.REG[0] = NIT_NULL;
2791 fra.me.REG[0] = p0;
2792 REGB0 = TAG_Bool(false);
2793 /* ./syntax//mmbuilder.nit:582 */
2794 goto label1;
2795 label1: while(0);
2796 stack_frame_head = fra.me.prev;
2797 return REGB0;
2798 }
2799 val_t mmbuilder___AClasskind___is_universal(val_t p0){
2800 struct {struct stack_frame_t me;} fra;
2801 val_t REGB0;
2802 val_t tmp;
2803 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2804 fra.me.file = LOCATE_mmbuilder;
2805 fra.me.line = 583;
2806 fra.me.meth = LOCATE_mmbuilder___AClasskind___is_universal;
2807 fra.me.has_broke = 0;
2808 fra.me.REG_size = 1;
2809 fra.me.REG[0] = NIT_NULL;
2810 fra.me.REG[0] = p0;
2811 REGB0 = TAG_Bool(false);
2812 /* ./syntax//mmbuilder.nit:583 */
2813 goto label1;
2814 label1: while(0);
2815 stack_frame_head = fra.me.prev;
2816 return REGB0;
2817 }
2818 val_t mmbuilder___AClasskind___is_abstract(val_t p0){
2819 struct {struct stack_frame_t me;} fra;
2820 val_t REGB0;
2821 val_t tmp;
2822 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2823 fra.me.file = LOCATE_mmbuilder;
2824 fra.me.line = 584;
2825 fra.me.meth = LOCATE_mmbuilder___AClasskind___is_abstract;
2826 fra.me.has_broke = 0;
2827 fra.me.REG_size = 1;
2828 fra.me.REG[0] = NIT_NULL;
2829 fra.me.REG[0] = p0;
2830 REGB0 = TAG_Bool(false);
2831 /* ./syntax//mmbuilder.nit:584 */
2832 goto label1;
2833 label1: while(0);
2834 stack_frame_head = fra.me.prev;
2835 return REGB0;
2836 }
2837 val_t mmbuilder___AInterfaceClasskind___is_interface(val_t p0){
2838 struct {struct stack_frame_t me;} fra;
2839 val_t REGB0;
2840 val_t tmp;
2841 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2842 fra.me.file = LOCATE_mmbuilder;
2843 fra.me.line = 588;
2844 fra.me.meth = LOCATE_mmbuilder___AInterfaceClasskind___is_interface;
2845 fra.me.has_broke = 0;
2846 fra.me.REG_size = 1;
2847 fra.me.REG[0] = NIT_NULL;
2848 fra.me.REG[0] = p0;
2849 REGB0 = TAG_Bool(true);
2850 /* ./syntax//mmbuilder.nit:588 */
2851 goto label1;
2852 label1: while(0);
2853 stack_frame_head = fra.me.prev;
2854 return REGB0;
2855 }
2856 val_t mmbuilder___AUniversalClasskind___is_universal(val_t p0){
2857 struct {struct stack_frame_t me;} fra;
2858 val_t REGB0;
2859 val_t tmp;
2860 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2861 fra.me.file = LOCATE_mmbuilder;
2862 fra.me.line = 591;
2863 fra.me.meth = LOCATE_mmbuilder___AUniversalClasskind___is_universal;
2864 fra.me.has_broke = 0;
2865 fra.me.REG_size = 1;
2866 fra.me.REG[0] = NIT_NULL;
2867 fra.me.REG[0] = p0;
2868 REGB0 = TAG_Bool(true);
2869 /* ./syntax//mmbuilder.nit:591 */
2870 goto label1;
2871 label1: while(0);
2872 stack_frame_head = fra.me.prev;
2873 return REGB0;
2874 }
2875 val_t mmbuilder___AAbstractClasskind___is_abstract(val_t p0){
2876 struct {struct stack_frame_t me;} fra;
2877 val_t REGB0;
2878 val_t tmp;
2879 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2880 fra.me.file = LOCATE_mmbuilder;
2881 fra.me.line = 594;
2882 fra.me.meth = LOCATE_mmbuilder___AAbstractClasskind___is_abstract;
2883 fra.me.has_broke = 0;
2884 fra.me.REG_size = 1;
2885 fra.me.REG[0] = NIT_NULL;
2886 fra.me.REG[0] = p0;
2887 REGB0 = TAG_Bool(true);
2888 /* ./syntax//mmbuilder.nit:594 */
2889 goto label1;
2890 label1: while(0);
2891 stack_frame_head = fra.me.prev;
2892 return REGB0;
2893 }
2894 void mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p1){
2895 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
2896 val_t REGB0;
2897 val_t REGB1;
2898 val_t REGB2;
2899 val_t tmp;
2900 static val_t once_value_1; /* Once value */
2901 static val_t once_value_2; /* Once value */
2902 static val_t once_value_3; /* Once value */
2903 static val_t once_value_4; /* Once value */
2904 static val_t once_value_5; /* Once value */
2905 static val_t once_value_6; /* Once value */
2906 static val_t once_value_7; /* Once value */
2907 static val_t once_value_8; /* Once value */
2908 static val_t once_value_9; /* Once value */
2909 static val_t once_value_10; /* Once value */
2910 static val_t once_value_11; /* Once value */
2911 static val_t once_value_12; /* Once value */
2912 static val_t once_value_13; /* Once value */
2913 static val_t once_value_14; /* Once value */
2914 static val_t once_value_17; /* Once value */
2915 static val_t once_value_18; /* Once value */
2916 static val_t once_value_19; /* Once value */
2917 static val_t once_value_20; /* Once value */
2918 static val_t once_value_21; /* Once value */
2919 static val_t once_value_22; /* Once value */
2920 static val_t once_value_23; /* Once value */
2921 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2922 fra.me.file = LOCATE_mmbuilder;
2923 fra.me.line = 606;
2924 fra.me.meth = LOCATE_mmbuilder___AStdClassdef___accept_class_verifier;
2925 fra.me.has_broke = 0;
2926 fra.me.REG_size = 8;
2927 fra.me.REG[0] = NIT_NULL;
2928 fra.me.REG[1] = NIT_NULL;
2929 fra.me.REG[2] = NIT_NULL;
2930 fra.me.REG[3] = NIT_NULL;
2931 fra.me.REG[4] = NIT_NULL;
2932 fra.me.REG[5] = NIT_NULL;
2933 fra.me.REG[6] = NIT_NULL;
2934 fra.me.REG[7] = NIT_NULL;
2935 fra.me.REG[0] = p0;
2936 fra.me.REG[1] = p1;
2937 fra.me.REG[2] = fra.me.REG[0];
2938 fra.me.REG[3] = fra.me.REG[1];
2939 /* ./syntax//mmbuilder.nit:608 */
2940 CALL_SUPER_mmbuilder___AStdClassdef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2941 fra.me.REG[1] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]);
2942 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2943 /* ./syntax//mmbuilder.nit:609 */
2944 if (UNTAG_Bool(REGB0)) {
2945 fprintf(stderr, "Reciever is null");
2946 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 609);
2947 nit_exit(1);
2948 }
2949 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
2950 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
2951 fra.me.REG[4] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]);
2952 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[0],fra.me.REG[4]));
2953 /* ./syntax//mmbuilder.nit:610 */
2954 if (UNTAG_Bool(REGB0)) {
2955 } else {
2956 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
2957 REGB0 = REGB1;
2958 }
2959 if (UNTAG_Bool(REGB0)) {
2960 REGB0 = CALL_mmbuilder___AClassdef___visibility_level(fra.me.REG[2])(fra.me.REG[2]);
2961 /* ./syntax//mmbuilder.nit:612 */
2962 CALL_abstractmetamodel___MMGlobalClass___visibility_level__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
2963 fra.me.REG[4] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
2964 REGB0 = CALL_mmbuilder___AClasskind___is_interface(fra.me.REG[4])(fra.me.REG[4]);
2965 /* ./syntax//mmbuilder.nit:613 */
2966 CALL_abstractmetamodel___MMGlobalClass___is_interface__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
2967 fra.me.REG[4] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
2968 REGB0 = CALL_mmbuilder___AClasskind___is_abstract(fra.me.REG[4])(fra.me.REG[4]);
2969 /* ./syntax//mmbuilder.nit:614 */
2970 CALL_abstractmetamodel___MMGlobalClass___is_abstract__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
2971 fra.me.REG[4] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
2972 REGB0 = CALL_mmbuilder___AClasskind___is_universal(fra.me.REG[4])(fra.me.REG[4]);
2973 /* ./syntax//mmbuilder.nit:615 */
2974 CALL_abstractmetamodel___MMGlobalClass___is_universal__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
2975 fra.me.REG[4] = CALL_parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
2976 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2977 /* ./syntax//mmbuilder.nit:616 */
2978 if (UNTAG_Bool(REGB0)) {
2979 } else {
2980 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2981 if (UNTAG_Bool(REGB1)) {
2982 REGB1 = TAG_Bool(false);
2983 REGB0 = REGB1;
2984 } else {
2985 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
2986 REGB0 = REGB1;
2987 }
2988 }
2989 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2990 if (UNTAG_Bool(REGB0)) {
2991 REGB0 = TAG_Int(3);
2992 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
2993 /* ./syntax//mmbuilder.nit:617 */
2994 if (!once_value_1) {
2995 fra.me.REG[0] = BOX_NativeString("Redef error: No class ");
2996 REGB0 = TAG_Int(22);
2997 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
2998 once_value_1 = fra.me.REG[0];
2999 register_static_object(&once_value_1);
3000 } else fra.me.REG[0] = once_value_1;
3001 array___Array___add(fra.me.REG[4], fra.me.REG[0]);
3002 fra.me.REG[0] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3003 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
3004 array___Array___add(fra.me.REG[4], fra.me.REG[0]);
3005 if (!once_value_2) {
3006 fra.me.REG[0] = BOX_NativeString(" is imported. Remove the redef keyword to define a new class.");
3007 REGB0 = TAG_Int(61);
3008 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
3009 once_value_2 = fra.me.REG[0];
3010 register_static_object(&once_value_2);
3011 } else fra.me.REG[0] = once_value_2;
3012 array___Array___add(fra.me.REG[4], fra.me.REG[0]);
3013 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3014 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]);
3015 }
3016 fra.me.REG[4] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3017 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3018 /* ./syntax//mmbuilder.nit:620 */
3019 if (UNTAG_Bool(REGB0)) {
3020 fprintf(stderr, "Reciever is null");
3021 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 620);
3022 nit_exit(1);
3023 }
3024 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[4])(fra.me.REG[4]);
3025 fra.me.REG[4] = CALL_partial_order___PartialOrderElement___direct_greaters(fra.me.REG[4])(fra.me.REG[4]);
3026 fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[4])(fra.me.REG[4]);
3027 while(1) {
3028 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]);
3029 if (UNTAG_Bool(REGB0)) {
3030 fra.me.REG[0] = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]);
3031 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
3032 REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
3033 /* ./syntax//mmbuilder.nit:622 */
3034 if (UNTAG_Bool(REGB0)) {
3035 REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_universal(fra.me.REG[5])(fra.me.REG[5]);
3036 /* ./syntax//mmbuilder.nit:623 */
3037 if (UNTAG_Bool(REGB0)) {
3038 REGB0 = TAG_Int(5);
3039 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB0);
3040 /* ./syntax//mmbuilder.nit:624 */
3041 if (!once_value_3) {
3042 fra.me.REG[7] = BOX_NativeString("Special error: Interface ");
3043 REGB0 = TAG_Int(25);
3044 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
3045 once_value_3 = fra.me.REG[7];
3046 register_static_object(&once_value_3);
3047 } else fra.me.REG[7] = once_value_3;
3048 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
3049 fra.me.REG[7] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3050 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3051 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
3052 if (!once_value_4) {
3053 fra.me.REG[7] = BOX_NativeString(" try to specialise universal class ");
3054 REGB0 = TAG_Int(35);
3055 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
3056 once_value_4 = fra.me.REG[7];
3057 register_static_object(&once_value_4);
3058 } else fra.me.REG[7] = once_value_4;
3059 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
3060 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
3061 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3062 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
3063 if (!once_value_5) {
3064 fra.me.REG[7] = BOX_NativeString(".");
3065 REGB0 = TAG_Int(1);
3066 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
3067 once_value_5 = fra.me.REG[7];
3068 register_static_object(&once_value_5);
3069 } else fra.me.REG[7] = once_value_5;
3070 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
3071 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
3072 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
3073 } else {
3074 REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[5])(fra.me.REG[5]);
3075 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3076 /* ./syntax//mmbuilder.nit:625 */
3077 if (UNTAG_Bool(REGB0)) {
3078 REGB0 = TAG_Int(5);
3079 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB0);
3080 /* ./syntax//mmbuilder.nit:626 */
3081 if (!once_value_6) {
3082 fra.me.REG[7] = BOX_NativeString("Special error: Interface ");
3083 REGB0 = TAG_Int(25);
3084 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
3085 once_value_6 = fra.me.REG[7];
3086 register_static_object(&once_value_6);
3087 } else fra.me.REG[7] = once_value_6;
3088 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
3089 fra.me.REG[7] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3090 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3091 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
3092 if (!once_value_7) {
3093 fra.me.REG[7] = BOX_NativeString(" try to specialise class ");
3094 REGB0 = TAG_Int(25);
3095 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
3096 once_value_7 = fra.me.REG[7];
3097 register_static_object(&once_value_7);
3098 } else fra.me.REG[7] = once_value_7;
3099 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
3100 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
3101 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3102 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
3103 if (!once_value_8) {
3104 fra.me.REG[7] = BOX_NativeString(".");
3105 REGB0 = TAG_Int(1);
3106 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
3107 once_value_8 = fra.me.REG[7];
3108 register_static_object(&once_value_8);
3109 } else fra.me.REG[7] = once_value_8;
3110 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
3111 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
3112 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
3113 }
3114 }
3115 } else {
3116 REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_universal(fra.me.REG[1])(fra.me.REG[1]);
3117 /* ./syntax//mmbuilder.nit:628 */
3118 if (UNTAG_Bool(REGB0)) {
3119 REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[5])(fra.me.REG[5]);
3120 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3121 /* ./syntax//mmbuilder.nit:629 */
3122 if (UNTAG_Bool(REGB0)) {
3123 REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_universal(fra.me.REG[5])(fra.me.REG[5]);
3124 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3125 } else {
3126 REGB1 = TAG_Bool(false);
3127 REGB0 = REGB1;
3128 }
3129 if (UNTAG_Bool(REGB0)) {
3130 REGB0 = TAG_Int(5);
3131 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB0);
3132 /* ./syntax//mmbuilder.nit:630 */
3133 if (!once_value_9) {
3134 fra.me.REG[7] = BOX_NativeString("Special error: Universal class ");
3135 REGB0 = TAG_Int(31);
3136 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
3137 once_value_9 = fra.me.REG[7];
3138 register_static_object(&once_value_9);
3139 } else fra.me.REG[7] = once_value_9;
3140 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
3141 fra.me.REG[7] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3142 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3143 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
3144 if (!once_value_10) {
3145 fra.me.REG[7] = BOX_NativeString(" try to specialise class ");
3146 REGB0 = TAG_Int(25);
3147 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
3148 once_value_10 = fra.me.REG[7];
3149 register_static_object(&once_value_10);
3150 } else fra.me.REG[7] = once_value_10;
3151 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
3152 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
3153 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3154 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
3155 if (!once_value_11) {
3156 fra.me.REG[7] = BOX_NativeString(".");
3157 REGB0 = TAG_Int(1);
3158 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
3159 once_value_11 = fra.me.REG[7];
3160 register_static_object(&once_value_11);
3161 } else fra.me.REG[7] = once_value_11;
3162 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
3163 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
3164 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
3165 }
3166 } else {
3167 REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_universal(fra.me.REG[5])(fra.me.REG[5]);
3168 /* ./syntax//mmbuilder.nit:633 */
3169 if (UNTAG_Bool(REGB0)) {
3170 REGB0 = TAG_Int(5);
3171 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
3172 /* ./syntax//mmbuilder.nit:634 */
3173 if (!once_value_12) {
3174 fra.me.REG[6] = BOX_NativeString("Special error: Class ");
3175 REGB0 = TAG_Int(21);
3176 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
3177 once_value_12 = fra.me.REG[6];
3178 register_static_object(&once_value_12);
3179 } else fra.me.REG[6] = once_value_12;
3180 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
3181 fra.me.REG[6] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3182 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
3183 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
3184 if (!once_value_13) {
3185 fra.me.REG[6] = BOX_NativeString(" try to specialise universal class ");
3186 REGB0 = TAG_Int(35);
3187 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
3188 once_value_13 = fra.me.REG[6];
3189 register_static_object(&once_value_13);
3190 } else fra.me.REG[6] = once_value_13;
3191 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
3192 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
3193 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
3194 array___Array___add(fra.me.REG[5], fra.me.REG[0]);
3195 if (!once_value_14) {
3196 fra.me.REG[0] = BOX_NativeString(".");
3197 REGB0 = TAG_Int(1);
3198 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
3199 once_value_14 = fra.me.REG[0];
3200 register_static_object(&once_value_14);
3201 } else fra.me.REG[0] = once_value_14;
3202 array___Array___add(fra.me.REG[5], fra.me.REG[0]);
3203 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
3204 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[5]);
3205 }
3206 }
3207 }
3208 } else {
3209 /* ./syntax//mmbuilder.nit:620 */
3210 goto label15;
3211 }
3212 CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]);
3213 }
3214 label15: while(0);
3215 /* ./syntax//mmbuilder.nit:639 */
3216 goto label16;
3217 }
3218 fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___module(fra.me.REG[3])(fra.me.REG[3]);
3219 /* ./syntax//mmbuilder.nit:644 */
3220 CALL_syntax_base___MMGlobalClass___check_visibility(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]);
3221 fra.me.REG[4] = CALL_parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
3222 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3223 /* ./syntax//mmbuilder.nit:645 */
3224 if (UNTAG_Bool(REGB0)) {
3225 } else {
3226 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3227 if (UNTAG_Bool(REGB1)) {
3228 REGB1 = TAG_Bool(false);
3229 REGB0 = REGB1;
3230 } else {
3231 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
3232 REGB0 = REGB1;
3233 }
3234 }
3235 if (UNTAG_Bool(REGB0)) {
3236 REGB0 = TAG_Int(3);
3237 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
3238 /* ./syntax//mmbuilder.nit:646 */
3239 if (!once_value_17) {
3240 fra.me.REG[5] = BOX_NativeString("Redef error: ");
3241 REGB0 = TAG_Int(13);
3242 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
3243 once_value_17 = fra.me.REG[5];
3244 register_static_object(&once_value_17);
3245 } else fra.me.REG[5] = once_value_17;
3246 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
3247 fra.me.REG[5] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3248 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
3249 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
3250 if (!once_value_18) {
3251 fra.me.REG[5] = BOX_NativeString(" is an imported class. Add the redef keyword to refine it.");
3252 REGB0 = TAG_Int(58);
3253 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
3254 once_value_18 = fra.me.REG[5];
3255 register_static_object(&once_value_18);
3256 } else fra.me.REG[5] = once_value_18;
3257 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
3258 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3259 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]);
3260 /* ./syntax//mmbuilder.nit:647 */
3261 goto label16;
3262 }
3263 fra.me.REG[4] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
3264 REGB0 = CALL_abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
3265 fra.me.REG[4] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3266 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3267 /* ./syntax//mmbuilder.nit:650 */
3268 if (UNTAG_Bool(REGB1)) {
3269 fprintf(stderr, "Reciever is null");
3270 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 650);
3271 nit_exit(1);
3272 }
3273 REGB1 = CALL_abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
3274 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
3275 if (UNTAG_Bool(REGB2)) {
3276 } else {
3277 REGB1 = TAG_Bool((REGB0)==(REGB1));
3278 REGB2 = REGB1;
3279 /* ./syntax//mmbuilder.nit:650 */
3280 }
3281 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
3282 if (UNTAG_Bool(REGB2)) {
3283 REGB2 = TAG_Int(5);
3284 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB2);
3285 /* ./syntax//mmbuilder.nit:651 */
3286 if (!once_value_19) {
3287 fra.me.REG[5] = BOX_NativeString("Redef error: Formal parameter arity missmatch; got ");
3288 REGB2 = TAG_Int(51);
3289 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
3290 once_value_19 = fra.me.REG[5];
3291 register_static_object(&once_value_19);
3292 } else fra.me.REG[5] = once_value_19;
3293 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
3294 fra.me.REG[5] = ATTR_mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3295 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3296 if (UNTAG_Bool(REGB2)) {
3297 fprintf(stderr, "Reciever is null");
3298 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 651);
3299 nit_exit(1);
3300 }
3301 REGB2 = CALL_abstractmetamodel___MMLocalClass___arity(fra.me.REG[5])(fra.me.REG[5]);
3302 fra.me.REG[5] = CALL_string___Object___to_s(REGB2)(REGB2);
3303 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
3304 if (!once_value_20) {
3305 fra.me.REG[5] = BOX_NativeString(", expected ");
3306 REGB2 = TAG_Int(11);
3307 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
3308 once_value_20 = fra.me.REG[5];
3309 register_static_object(&once_value_20);
3310 } else fra.me.REG[5] = once_value_20;
3311 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
3312 fra.me.REG[5] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
3313 REGB2 = CALL_abstractmetamodel___MMLocalClass___arity(fra.me.REG[5])(fra.me.REG[5]);
3314 fra.me.REG[5] = CALL_string___Object___to_s(REGB2)(REGB2);
3315 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
3316 if (!once_value_21) {
3317 fra.me.REG[5] = BOX_NativeString(".");
3318 REGB2 = TAG_Int(1);
3319 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
3320 once_value_21 = fra.me.REG[5];
3321 register_static_object(&once_value_21);
3322 } else fra.me.REG[5] = once_value_21;
3323 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
3324 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3325 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]);
3326 }
3327 REGB2 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
3328 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
3329 /* ./syntax//mmbuilder.nit:655 */
3330 if (UNTAG_Bool(REGB2)) {
3331 fra.me.REG[4] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
3332 REGB2 = CALL_mmbuilder___AClasskind___is_interface(fra.me.REG[4])(fra.me.REG[4]);
3333 } else {
3334 REGB1 = TAG_Bool(false);
3335 REGB2 = REGB1;
3336 }
3337 if (UNTAG_Bool(REGB2)) {
3338 REGB2 = TAG_Bool(true);
3339 } else {
3340 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[1])(fra.me.REG[1]);
3341 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3342 REGB2 = REGB1;
3343 /* ./syntax//mmbuilder.nit:655 */
3344 }
3345 if (UNTAG_Bool(REGB2)) {
3346 fra.me.REG[4] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
3347 REGB2 = CALL_mmbuilder___AClasskind___is_abstract(fra.me.REG[4])(fra.me.REG[4]);
3348 /* ./syntax//mmbuilder.nit:655 */
3349 } else {
3350 REGB1 = TAG_Bool(false);
3351 REGB2 = REGB1;
3352 }
3353 if (UNTAG_Bool(REGB2)) {
3354 REGB2 = TAG_Bool(true);
3355 } else {
3356 REGB1 = CALL_abstractmetamodel___MMGlobalClass___is_universal(fra.me.REG[1])(fra.me.REG[1]);
3357 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3358 REGB2 = REGB1;
3359 /* ./syntax//mmbuilder.nit:655 */
3360 }
3361 if (UNTAG_Bool(REGB2)) {
3362 fra.me.REG[1] = CALL_parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
3363 REGB2 = CALL_mmbuilder___AClasskind___is_universal(fra.me.REG[1])(fra.me.REG[1]);
3364 /* ./syntax//mmbuilder.nit:655 */
3365 } else {
3366 REGB1 = TAG_Bool(false);
3367 REGB2 = REGB1;
3368 }
3369 /* ./syntax//mmbuilder.nit:654 */
3370 if (UNTAG_Bool(REGB2)) {
3371 REGB2 = TAG_Int(3);
3372 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB2);
3373 /* ./syntax//mmbuilder.nit:659 */
3374 if (!once_value_22) {
3375 fra.me.REG[4] = BOX_NativeString("Redef error: cannot change kind of class ");
3376 REGB2 = TAG_Int(41);
3377 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
3378 once_value_22 = fra.me.REG[4];
3379 register_static_object(&once_value_22);
3380 } else fra.me.REG[4] = once_value_22;
3381 array___Array___add(fra.me.REG[1], fra.me.REG[4]);
3382 fra.me.REG[4] = CALL_mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3383 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3384 array___Array___add(fra.me.REG[1], fra.me.REG[4]);
3385 if (!once_value_23) {
3386 fra.me.REG[4] = BOX_NativeString(".");
3387 REGB2 = TAG_Int(1);
3388 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
3389 once_value_23 = fra.me.REG[4];
3390 register_static_object(&once_value_23);
3391 } else fra.me.REG[4] = once_value_23;
3392 array___Array___add(fra.me.REG[1], fra.me.REG[4]);
3393 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
3394 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[1]);
3395 }
3396 label16: while(0);
3397 stack_frame_head = fra.me.prev;
3398 return;
3399 }
3400 val_t mmbuilder___AStdClassdef___name(val_t p0){
3401 struct {struct stack_frame_t me;} fra;
3402 val_t REGB0;
3403 val_t tmp;
3404 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3405 fra.me.file = LOCATE_mmbuilder;
3406 fra.me.line = 598;
3407 fra.me.meth = LOCATE_mmbuilder___AStdClassdef___name;
3408 fra.me.has_broke = 0;
3409 fra.me.REG_size = 1;
3410 fra.me.REG[0] = NIT_NULL;
3411 fra.me.REG[0] = p0;
3412 fra.me.REG[0] = CALL_parser_nodes___AStdClassdef___n_id(fra.me.REG[0])(fra.me.REG[0]);
3413 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3414 /* ./syntax//mmbuilder.nit:600 */
3415 if (UNTAG_Bool(REGB0)) {
3416 fprintf(stderr, "Reciever is null");
3417 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 600);
3418 nit_exit(1);
3419 }
3420 fra.me.REG[0] = CALL_syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
3421 goto label1;
3422 label1: while(0);
3423 stack_frame_head = fra.me.prev;
3424 return fra.me.REG[0];
3425 }
3426 val_t mmbuilder___AStdClassdef___arity(val_t p0){
3427 struct {struct stack_frame_t me;} fra;
3428 val_t REGB0;
3429 val_t tmp;
3430 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3431 fra.me.file = LOCATE_mmbuilder;
3432 fra.me.line = 602;
3433 fra.me.meth = LOCATE_mmbuilder___AStdClassdef___arity;
3434 fra.me.has_broke = 0;
3435 fra.me.REG_size = 1;
3436 fra.me.REG[0] = NIT_NULL;
3437 fra.me.REG[0] = p0;
3438 fra.me.REG[0] = CALL_parser_nodes___AStdClassdef___n_formaldefs(fra.me.REG[0])(fra.me.REG[0]);
3439 REGB0 = CALL_abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
3440 /* ./syntax//mmbuilder.nit:604 */
3441 goto label1;
3442 label1: while(0);
3443 stack_frame_head = fra.me.prev;
3444 return REGB0;
3445 }
3446 val_t mmbuilder___AStdClassdef___visibility_level(val_t p0){
3447 struct {struct stack_frame_t me;} fra;
3448 val_t REGB0;
3449 val_t tmp;
3450 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3451 fra.me.file = LOCATE_mmbuilder;
3452 fra.me.line = 663;
3453 fra.me.meth = LOCATE_mmbuilder___AStdClassdef___visibility_level;
3454 fra.me.has_broke = 0;
3455 fra.me.REG_size = 1;
3456 fra.me.REG[0] = NIT_NULL;
3457 fra.me.REG[0] = p0;
3458 fra.me.REG[0] = CALL_parser_nodes___AStdClassdef___n_visibility(fra.me.REG[0])(fra.me.REG[0]);
3459 REGB0 = CALL_mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
3460 /* ./syntax//mmbuilder.nit:665 */
3461 goto label1;
3462 label1: while(0);
3463 stack_frame_head = fra.me.prev;
3464 return REGB0;
3465 }
3466 val_t mmbuilder___AMainClassdef___name(val_t p0){
3467 struct {struct stack_frame_t me;} fra;
3468 val_t REGB0;
3469 val_t tmp;
3470 static val_t once_value_1; /* Once value */
3471 static val_t once_value_2; /* Once value */
3472 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3473 fra.me.file = LOCATE_mmbuilder;
3474 fra.me.line = 670;
3475 fra.me.meth = LOCATE_mmbuilder___AMainClassdef___name;
3476 fra.me.has_broke = 0;
3477 fra.me.REG_size = 1;
3478 fra.me.REG[0] = NIT_NULL;
3479 fra.me.REG[0] = p0;
3480 /* ./syntax//mmbuilder.nit:672 */
3481 if (!once_value_1) {
3482 if (!once_value_2) {
3483 fra.me.REG[0] = BOX_NativeString("Sys");
3484 REGB0 = TAG_Int(3);
3485 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
3486 once_value_2 = fra.me.REG[0];
3487 register_static_object(&once_value_2);
3488 } else fra.me.REG[0] = once_value_2;
3489 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
3490 once_value_1 = fra.me.REG[0];
3491 register_static_object(&once_value_1);
3492 } else fra.me.REG[0] = once_value_1;
3493 goto label3;
3494 label3: while(0);
3495 stack_frame_head = fra.me.prev;
3496 return fra.me.REG[0];
3497 }
3498 val_t mmbuilder___ATopClassdef___name(val_t p0){
3499 struct {struct stack_frame_t me;} fra;
3500 val_t REGB0;
3501 val_t tmp;
3502 static val_t once_value_1; /* Once value */
3503 static val_t once_value_2; /* Once value */
3504 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3505 fra.me.file = LOCATE_mmbuilder;
3506 fra.me.line = 677;
3507 fra.me.meth = LOCATE_mmbuilder___ATopClassdef___name;
3508 fra.me.has_broke = 0;
3509 fra.me.REG_size = 1;
3510 fra.me.REG[0] = NIT_NULL;
3511 fra.me.REG[0] = p0;
3512 /* ./syntax//mmbuilder.nit:679 */
3513 if (!once_value_1) {
3514 if (!once_value_2) {
3515 fra.me.REG[0] = BOX_NativeString("Object");
3516 REGB0 = TAG_Int(6);
3517 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
3518 once_value_2 = fra.me.REG[0];
3519 register_static_object(&once_value_2);
3520 } else fra.me.REG[0] = once_value_2;
3521 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
3522 once_value_1 = fra.me.REG[0];
3523 register_static_object(&once_value_1);
3524 } else fra.me.REG[0] = once_value_1;
3525 goto label3;
3526 label3: while(0);
3527 stack_frame_head = fra.me.prev;
3528 return fra.me.REG[0];
3529 }
3530 void mmbuilder___AFormaldef___accept_class_builder(val_t p0, val_t p1){
3531 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
3532 val_t REGB0;
3533 val_t REGB1;
3534 val_t tmp;
3535 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3536 fra.me.file = LOCATE_mmbuilder;
3537 fra.me.line = 687;
3538 fra.me.meth = LOCATE_mmbuilder___AFormaldef___accept_class_builder;
3539 fra.me.has_broke = 0;
3540 fra.me.REG_size = 6;
3541 fra.me.REG[0] = NIT_NULL;
3542 fra.me.REG[1] = NIT_NULL;
3543 fra.me.REG[2] = NIT_NULL;
3544 fra.me.REG[3] = NIT_NULL;
3545 fra.me.REG[4] = NIT_NULL;
3546 fra.me.REG[5] = NIT_NULL;
3547 fra.me.REG[0] = p0;
3548 fra.me.REG[1] = p1;
3549 fra.me.REG[2] = fra.me.REG[0];
3550 fra.me.REG[3] = fra.me.REG[1];
3551 fra.me.REG[4] = CALL_parser_nodes___AFormaldef___n_id(fra.me.REG[2])(fra.me.REG[2]);
3552 fra.me.REG[4] = CALL_syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
3553 REGB0 = CALL_mmbuilder___ClassBuilderVisitor___local_class_arity(fra.me.REG[3])(fra.me.REG[3]);
3554 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
3555 fra.me.REG[5] = NEW_MMTypeFormalParameter_genericity___MMTypeFormalParameter___init(fra.me.REG[4], REGB0, fra.me.REG[5]);
3556 /* ./syntax//mmbuilder.nit:691 */
3557 ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]) = fra.me.REG[5];
3558 REGB0 = CALL_mmbuilder___ClassBuilderVisitor___local_class_arity(fra.me.REG[3])(fra.me.REG[3]);
3559 REGB1 = TAG_Int(1);
3560 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
3561 /* ./syntax//mmbuilder.nit:692 */
3562 CALL_mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB1);
3563 fra.me.REG[2] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
3564 /* ./syntax//mmbuilder.nit:693 */
3565 CALL_genericity___MMLocalClass___register_formal(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
3566 fra.me.REG[3] = CALL_mmbuilder___ClassBuilderVisitor___formals(fra.me.REG[3])(fra.me.REG[3]);
3567 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3568 /* ./syntax//mmbuilder.nit:694 */
3569 if (UNTAG_Bool(REGB1)) {
3570 fprintf(stderr, "Reciever is null");
3571 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 694);
3572 nit_exit(1);
3573 }
3574 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]);
3575 /* ./syntax//mmbuilder.nit:695 */
3576 CALL_SUPER_mmbuilder___AFormaldef___accept_class_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3577 stack_frame_head = fra.me.prev;
3578 return;
3579 }
3580 void mmbuilder___AFormaldef___accept_class_verifier(val_t p0, val_t p1){
3581 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
3582 val_t REGB0;
3583 val_t REGB1;
3584 val_t tmp;
3585 static val_t once_value_2; /* Once value */
3586 static val_t once_value_3; /* Once value */
3587 static val_t once_value_4; /* Once value */
3588 static val_t once_value_5; /* Once value */
3589 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3590 fra.me.file = LOCATE_mmbuilder;
3591 fra.me.line = 698;
3592 fra.me.meth = LOCATE_mmbuilder___AFormaldef___accept_class_verifier;
3593 fra.me.has_broke = 0;
3594 fra.me.REG_size = 6;
3595 fra.me.REG[0] = NIT_NULL;
3596 fra.me.REG[1] = NIT_NULL;
3597 fra.me.REG[2] = NIT_NULL;
3598 fra.me.REG[3] = NIT_NULL;
3599 fra.me.REG[4] = NIT_NULL;
3600 fra.me.REG[5] = NIT_NULL;
3601 fra.me.REG[0] = p0;
3602 fra.me.REG[1] = p1;
3603 fra.me.REG[2] = fra.me.REG[0];
3604 fra.me.REG[3] = fra.me.REG[1];
3605 /* ./syntax//mmbuilder.nit:700 */
3606 CALL_SUPER_mmbuilder___AFormaldef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3607 fra.me.REG[1] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
3608 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
3609 fra.me.REG[0] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[0])(fra.me.REG[0]);
3610 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
3611 /* ./syntax//mmbuilder.nit:703 */
3612 if (UNTAG_Bool(REGB0)) {
3613 } else {
3614 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3615 REGB0 = REGB1;
3616 }
3617 if (UNTAG_Bool(REGB0)) {
3618 fra.me.REG[4] = CALL_parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
3619 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3620 /* ./syntax//mmbuilder.nit:704 */
3621 if (UNTAG_Bool(REGB0)) {
3622 } else {
3623 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3624 if (UNTAG_Bool(REGB1)) {
3625 REGB1 = TAG_Bool(false);
3626 REGB0 = REGB1;
3627 } else {
3628 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
3629 REGB0 = REGB1;
3630 }
3631 }
3632 if (UNTAG_Bool(REGB0)) {
3633 fra.me.REG[4] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]);
3634 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___module(fra.me.REG[3])(fra.me.REG[3]);
3635 fra.me.REG[5] = CALL_inheritance___MMModule___type_any(fra.me.REG[5])(fra.me.REG[5]);
3636 fra.me.REG[5] = CALL_static_type___MMType___as_nullable(fra.me.REG[5])(fra.me.REG[5]);
3637 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3638 /* ./syntax//mmbuilder.nit:705 */
3639 if (UNTAG_Bool(REGB0)) {
3640 fprintf(stderr, "Reciever is null");
3641 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 705);
3642 nit_exit(1);
3643 }
3644 CALL_genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
3645 } else {
3646 fra.me.REG[5] = CALL_parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
3647 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3648 /* ./syntax//mmbuilder.nit:707 */
3649 if (UNTAG_Bool(REGB0)) {
3650 fprintf(stderr, "Reciever is null");
3651 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 707);
3652 nit_exit(1);
3653 }
3654 fra.me.REG[5] = CALL_syntax_base___AType___get_stype(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
3655 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3656 /* ./syntax//mmbuilder.nit:708 */
3657 if (UNTAG_Bool(REGB0)) {
3658 } else {
3659 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3660 if (UNTAG_Bool(REGB1)) {
3661 REGB1 = TAG_Bool(false);
3662 REGB0 = REGB1;
3663 } else {
3664 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
3665 REGB0 = REGB1;
3666 }
3667 }
3668 if (UNTAG_Bool(REGB0)) {
3669 goto label1;
3670 }
3671 fra.me.REG[4] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]);
3672 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3673 /* ./syntax//mmbuilder.nit:709 */
3674 if (UNTAG_Bool(REGB0)) {
3675 fprintf(stderr, "Reciever is null");
3676 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 709);
3677 nit_exit(1);
3678 }
3679 CALL_genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
3680 }
3681 } else {
3682 fra.me.REG[5] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]);
3683 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3684 /* ./syntax//mmbuilder.nit:712 */
3685 if (UNTAG_Bool(REGB0)) {
3686 fprintf(stderr, "Reciever is null");
3687 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 712);
3688 nit_exit(1);
3689 }
3690 REGB0 = CALL_genericity___MMTypeFormalParameter___position(fra.me.REG[5])(fra.me.REG[5]);
3691 fra.me.REG[0] = CALL_genericity___MMLocalClass___get_formal(fra.me.REG[0])(fra.me.REG[0], REGB0);
3692 fra.me.REG[0] = CALL_type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]);
3693 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___module(fra.me.REG[3])(fra.me.REG[3]);
3694 fra.me.REG[5] = CALL_static_type___MMType___for_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
3695 fra.me.REG[0] = CALL_parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
3696 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3697 /* ./syntax//mmbuilder.nit:713 */
3698 if (UNTAG_Bool(REGB0)) {
3699 } else {
3700 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3701 if (UNTAG_Bool(REGB1)) {
3702 REGB1 = TAG_Bool(false);
3703 REGB0 = REGB1;
3704 } else {
3705 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
3706 REGB0 = REGB1;
3707 }
3708 }
3709 if (UNTAG_Bool(REGB0)) {
3710 fra.me.REG[0] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]);
3711 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3712 /* ./syntax//mmbuilder.nit:714 */
3713 if (UNTAG_Bool(REGB0)) {
3714 fprintf(stderr, "Reciever is null");
3715 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 714);
3716 nit_exit(1);
3717 }
3718 CALL_genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
3719 } else {
3720 fra.me.REG[0] = CALL_parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
3721 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3722 /* ./syntax//mmbuilder.nit:716 */
3723 if (UNTAG_Bool(REGB0)) {
3724 fprintf(stderr, "Reciever is null");
3725 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 716);
3726 nit_exit(1);
3727 }
3728 fra.me.REG[0] = CALL_syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
3729 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3730 /* ./syntax//mmbuilder.nit:717 */
3731 if (UNTAG_Bool(REGB0)) {
3732 } else {
3733 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3734 if (UNTAG_Bool(REGB1)) {
3735 REGB1 = TAG_Bool(false);
3736 REGB0 = REGB1;
3737 } else {
3738 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
3739 REGB0 = REGB1;
3740 }
3741 }
3742 if (UNTAG_Bool(REGB0)) {
3743 goto label1;
3744 }
3745 fra.me.REG[4] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]);
3746 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3747 /* ./syntax//mmbuilder.nit:718 */
3748 if (UNTAG_Bool(REGB0)) {
3749 fprintf(stderr, "Reciever is null");
3750 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 718);
3751 nit_exit(1);
3752 }
3753 CALL_genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
3754 fra.me.REG[0] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]);
3755 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3756 /* ./syntax//mmbuilder.nit:719 */
3757 if (UNTAG_Bool(REGB0)) {
3758 fprintf(stderr, "Reciever is null");
3759 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 719);
3760 nit_exit(1);
3761 }
3762 fra.me.REG[0] = CALL_type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]);
3763 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[5]));
3764 if (UNTAG_Bool(REGB0)) {
3765 } else {
3766 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
3767 REGB0 = REGB1;
3768 }
3769 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3770 if (UNTAG_Bool(REGB0)) {
3771 REGB0 = TAG_Int(7);
3772 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0);
3773 /* ./syntax//mmbuilder.nit:720 */
3774 if (!once_value_2) {
3775 fra.me.REG[4] = BOX_NativeString("Redef error: Cannot change formal parameter type of class ");
3776 REGB0 = TAG_Int(58);
3777 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
3778 once_value_2 = fra.me.REG[4];
3779 register_static_object(&once_value_2);
3780 } else fra.me.REG[4] = once_value_2;
3781 array___Array___add(fra.me.REG[0], fra.me.REG[4]);
3782 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
3783 array___Array___add(fra.me.REG[0], fra.me.REG[1]);
3784 if (!once_value_3) {
3785 fra.me.REG[1] = BOX_NativeString("; got ");
3786 REGB0 = TAG_Int(6);
3787 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
3788 once_value_3 = fra.me.REG[1];
3789 register_static_object(&once_value_3);
3790 } else fra.me.REG[1] = once_value_3;
3791 array___Array___add(fra.me.REG[0], fra.me.REG[1]);
3792 fra.me.REG[1] = ATTR_mmbuilder___AFormaldef____formal(fra.me.REG[2]);
3793 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3794 if (UNTAG_Bool(REGB0)) {
3795 fprintf(stderr, "Reciever is null");
3796 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 720);
3797 nit_exit(1);
3798 }
3799 fra.me.REG[1] = CALL_type_formal___MMTypeFormal___bound(fra.me.REG[1])(fra.me.REG[1]);
3800 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
3801 array___Array___add(fra.me.REG[0], fra.me.REG[1]);
3802 if (!once_value_4) {
3803 fra.me.REG[1] = BOX_NativeString(", expected ");
3804 REGB0 = TAG_Int(11);
3805 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
3806 once_value_4 = fra.me.REG[1];
3807 register_static_object(&once_value_4);
3808 } else fra.me.REG[1] = once_value_4;
3809 array___Array___add(fra.me.REG[0], fra.me.REG[1]);
3810 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
3811 array___Array___add(fra.me.REG[0], fra.me.REG[5]);
3812 if (!once_value_5) {
3813 fra.me.REG[5] = BOX_NativeString(".");
3814 REGB0 = TAG_Int(1);
3815 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
3816 once_value_5 = fra.me.REG[5];
3817 register_static_object(&once_value_5);
3818 } else fra.me.REG[5] = once_value_5;
3819 array___Array___add(fra.me.REG[0], fra.me.REG[5]);
3820 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
3821 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
3822 }
3823 }
3824 }
3825 label1: while(0);
3826 stack_frame_head = fra.me.prev;
3827 return;
3828 }
3829 void mmbuilder___ASuperclass___accept_class_specialization_builder(val_t p0, val_t p1){
3830 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3831 val_t REGB0;
3832 val_t REGB1;
3833 val_t tmp;
3834 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3835 fra.me.file = LOCATE_mmbuilder;
3836 fra.me.line = 730;
3837 fra.me.meth = LOCATE_mmbuilder___ASuperclass___accept_class_specialization_builder;
3838 fra.me.has_broke = 0;
3839 fra.me.REG_size = 4;
3840 fra.me.REG[0] = NIT_NULL;
3841 fra.me.REG[1] = NIT_NULL;
3842 fra.me.REG[2] = NIT_NULL;
3843 fra.me.REG[3] = NIT_NULL;
3844 fra.me.REG[0] = p0;
3845 fra.me.REG[1] = p1;
3846 fra.me.REG[2] = fra.me.REG[0];
3847 fra.me.REG[3] = fra.me.REG[1];
3848 /* ./syntax//mmbuilder.nit:732 */
3849 CALL_SUPER_mmbuilder___ASuperclass___accept_class_specialization_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3850 fra.me.REG[1] = CALL_parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
3851 fra.me.REG[1] = CALL_syntax_base___AType___get_local_class(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3852 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3853 /* ./syntax//mmbuilder.nit:734 */
3854 if (UNTAG_Bool(REGB0)) {
3855 } else {
3856 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3857 if (UNTAG_Bool(REGB1)) {
3858 REGB1 = TAG_Bool(false);
3859 REGB0 = REGB1;
3860 } else {
3861 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
3862 REGB0 = REGB1;
3863 }
3864 }
3865 if (UNTAG_Bool(REGB0)) {
3866 goto label1;
3867 }
3868 fra.me.REG[1] = NEW_MMSrcAncestor_mmbuilder___MMSrcAncestor___init(fra.me.REG[1]);
3869 /* ./syntax//mmbuilder.nit:736 */
3870 ATTR_mmbuilder___ASuperclass____ancestor(fra.me.REG[2]) = fra.me.REG[1];
3871 fra.me.REG[3] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
3872 /* ./syntax//mmbuilder.nit:737 */
3873 CALL_inheritance___MMLocalClass___add_direct_parent(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3874 label1: while(0);
3875 stack_frame_head = fra.me.prev;
3876 return;
3877 }
3878 void mmbuilder___ASuperclass___accept_class_ancestor_builder(val_t p0, val_t p1){
3879 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3880 val_t REGB0;
3881 val_t tmp;
3882 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3883 fra.me.file = LOCATE_mmbuilder;
3884 fra.me.line = 740;
3885 fra.me.meth = LOCATE_mmbuilder___ASuperclass___accept_class_ancestor_builder;
3886 fra.me.has_broke = 0;
3887 fra.me.REG_size = 4;
3888 fra.me.REG[0] = NIT_NULL;
3889 fra.me.REG[1] = NIT_NULL;
3890 fra.me.REG[2] = NIT_NULL;
3891 fra.me.REG[3] = NIT_NULL;
3892 fra.me.REG[0] = p0;
3893 fra.me.REG[1] = p1;
3894 fra.me.REG[2] = fra.me.REG[0];
3895 fra.me.REG[3] = fra.me.REG[1];
3896 /* ./syntax//mmbuilder.nit:742 */
3897 CALL_SUPER_mmbuilder___ASuperclass___accept_class_ancestor_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3898 fra.me.REG[1] = ATTR_mmbuilder___ASuperclass____ancestor(fra.me.REG[2]);
3899 fra.me.REG[0] = CALL_parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
3900 fra.me.REG[0] = CALL_syntax_base___AType___get_unchecked_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
3901 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3902 /* ./syntax//mmbuilder.nit:743 */
3903 if (UNTAG_Bool(REGB0)) {
3904 fprintf(stderr, "Reciever is null");
3905 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 743);
3906 nit_exit(1);
3907 }
3908 CALL_static_type___MMAncestor___stype__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3909 fra.me.REG[2] = ATTR_mmbuilder___ASuperclass____ancestor(fra.me.REG[2]);
3910 fra.me.REG[3] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
3911 fra.me.REG[3] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[3])(fra.me.REG[3]);
3912 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3913 /* ./syntax//mmbuilder.nit:744 */
3914 if (UNTAG_Bool(REGB0)) {
3915 fprintf(stderr, "Reciever is null");
3916 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 744);
3917 nit_exit(1);
3918 }
3919 CALL_static_type___MMAncestor___inheriter__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3920 stack_frame_head = fra.me.prev;
3921 return;
3922 }
3923 void mmbuilder___ASuperclass___accept_class_verifier(val_t p0, val_t p1){
3924 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3925 val_t tmp;
3926 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3927 fra.me.file = LOCATE_mmbuilder;
3928 fra.me.line = 747;
3929 fra.me.meth = LOCATE_mmbuilder___ASuperclass___accept_class_verifier;
3930 fra.me.has_broke = 0;
3931 fra.me.REG_size = 4;
3932 fra.me.REG[0] = NIT_NULL;
3933 fra.me.REG[1] = NIT_NULL;
3934 fra.me.REG[2] = NIT_NULL;
3935 fra.me.REG[3] = NIT_NULL;
3936 fra.me.REG[0] = p0;
3937 fra.me.REG[1] = p1;
3938 fra.me.REG[2] = fra.me.REG[0];
3939 fra.me.REG[3] = fra.me.REG[1];
3940 /* ./syntax//mmbuilder.nit:749 */
3941 CALL_SUPER_mmbuilder___ASuperclass___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3942 fra.me.REG[2] = CALL_parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
3943 /* ./syntax//mmbuilder.nit:750 */
3944 CALL_syntax_base___AType___check_conform(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3945 stack_frame_head = fra.me.prev;
3946 return;
3947 }
3948 val_t mmbuilder___ASuperclass___ancestor(val_t p0){
3949 struct {struct stack_frame_t me;} fra;
3950 val_t tmp;
3951 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3952 fra.me.file = LOCATE_mmbuilder;
3953 fra.me.line = 728;
3954 fra.me.meth = LOCATE_mmbuilder___ASuperclass___ancestor;
3955 fra.me.has_broke = 0;
3956 fra.me.REG_size = 1;
3957 fra.me.REG[0] = NIT_NULL;
3958 fra.me.REG[0] = p0;
3959 fra.me.REG[0] = ATTR_mmbuilder___ASuperclass____ancestor(fra.me.REG[0]);
3960 /* ./syntax//mmbuilder.nit:728 */
3961 stack_frame_head = fra.me.prev;
3962 return fra.me.REG[0];
3963 }
3964 void mmbuilder___APropdef___process_and_check(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
3965 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3966 val_t REGB0;
3967 val_t REGB1;
3968 val_t REGB2;
3969 val_t REGB3;
3970 val_t tmp;
3971 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3972 fra.me.file = LOCATE_mmbuilder;
3973 fra.me.line = 755;
3974 fra.me.meth = LOCATE_mmbuilder___APropdef___process_and_check;
3975 fra.me.has_broke = 0;
3976 fra.me.REG_size = 4;
3977 fra.me.REG[0] = NIT_NULL;
3978 fra.me.REG[1] = NIT_NULL;
3979 fra.me.REG[2] = NIT_NULL;
3980 fra.me.REG[3] = NIT_NULL;
3981 fra.me.REG[0] = p0;
3982 fra.me.REG[1] = p1;
3983 fra.me.REG[2] = p2;
3984 REGB0 = p3;
3985 REGB1 = p4;
3986 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
3987 fra.me.REG[3] = CALL_abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[3])(fra.me.REG[3]);
3988 REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[2]));
3989 /* ./syntax//mmbuilder.nit:763 */
3990 if (UNTAG_Bool(REGB2)) {
3991 } else {
3992 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
3993 REGB2 = REGB3;
3994 }
3995 if (UNTAG_Bool(REGB2)) {
3996 /* ./syntax//mmbuilder.nit:764 */
3997 CALL_mmbuilder___APropdef___do_and_check_intro(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, REGB1);
3998 } else {
3999 /* ./syntax//mmbuilder.nit:766 */
4000 CALL_mmbuilder___APropdef___do_and_check_redef(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, REGB1);
4001 }
4002 stack_frame_head = fra.me.prev;
4003 return;
4004 }
4005 void mmbuilder___APropdef___do_and_check_intro(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
4006 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
4007 val_t REGB0;
4008 val_t REGB1;
4009 val_t REGB2;
4010 val_t REGB3;
4011 val_t tmp;
4012 static val_t once_value_1; /* Once value */
4013 static val_t once_value_2; /* Once value */
4014 static val_t once_value_3; /* Once value */
4015 static val_t once_value_4; /* Once value */
4016 static val_t once_value_5; /* Once value */
4017 static val_t once_value_6; /* Once value */
4018 static val_t once_value_7; /* Once value */
4019 static val_t once_value_8; /* Once value */
4020 static val_t once_value_9; /* Once value */
4021 static val_t once_value_10; /* Once value */
4022 static val_t once_value_11; /* Once value */
4023 static val_t once_value_12; /* Once value */
4024 static val_t once_value_13; /* Once value */
4025 static val_t once_value_14; /* Once value */
4026 static val_t once_value_15; /* Once value */
4027 static val_t once_value_16; /* Once value */
4028 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4029 fra.me.file = LOCATE_mmbuilder;
4030 fra.me.line = 770;
4031 fra.me.meth = LOCATE_mmbuilder___APropdef___do_and_check_intro;
4032 fra.me.has_broke = 0;
4033 fra.me.REG_size = 7;
4034 fra.me.REG[0] = NIT_NULL;
4035 fra.me.REG[1] = NIT_NULL;
4036 fra.me.REG[2] = NIT_NULL;
4037 fra.me.REG[3] = NIT_NULL;
4038 fra.me.REG[4] = NIT_NULL;
4039 fra.me.REG[5] = NIT_NULL;
4040 fra.me.REG[6] = NIT_NULL;
4041 fra.me.REG[0] = p0;
4042 fra.me.REG[1] = p1;
4043 fra.me.REG[2] = p2;
4044 REGB0 = p3;
4045 REGB1 = p4;
4046 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
4047 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4048 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
4049 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
4050 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
4051 REGB2 = CALL_abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[5])(fra.me.REG[5]);
4052 REGB3 = TAG_Int(3);
4053 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
4054 /* ./syntax//mmbuilder.nit:775 */
4055 if (UNTAG_Bool(REGB3)) {
4056 REGB3 = TAG_Int(3);
4057 REGB1 = REGB3;
4058 /* ./syntax//mmbuilder.nit:777 */
4059 }
4060 /* ./syntax//mmbuilder.nit:779 */
4061 CALL_abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[3])(fra.me.REG[3], REGB1);
4062 /* ./syntax//mmbuilder.nit:780 */
4063 if (UNTAG_Bool(REGB0)) {
4064 REGB0 = TAG_Int(5);
4065 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
4066 /* ./syntax//mmbuilder.nit:781 */
4067 if (!once_value_1) {
4068 fra.me.REG[6] = BOX_NativeString("Error: No property ");
4069 REGB0 = TAG_Int(19);
4070 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4071 once_value_1 = fra.me.REG[6];
4072 register_static_object(&once_value_1);
4073 } else fra.me.REG[6] = once_value_1;
4074 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
4075 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4076 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4077 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
4078 if (!once_value_2) {
4079 fra.me.REG[6] = BOX_NativeString("::");
4080 REGB0 = TAG_Int(2);
4081 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4082 once_value_2 = fra.me.REG[6];
4083 register_static_object(&once_value_2);
4084 } else fra.me.REG[6] = once_value_2;
4085 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
4086 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4087 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
4088 if (!once_value_3) {
4089 fra.me.REG[6] = BOX_NativeString(" is inherited. Remove the redef keyword to define a new property.");
4090 REGB0 = TAG_Int(65);
4091 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4092 once_value_3 = fra.me.REG[6];
4093 register_static_object(&once_value_3);
4094 } else fra.me.REG[6] = once_value_3;
4095 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
4096 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4097 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
4098 }
4099 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_attribute(fra.me.REG[3])(fra.me.REG[3]);
4100 /* ./syntax//mmbuilder.nit:783 */
4101 if (UNTAG_Bool(REGB0)) {
4102 REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]);
4103 /* ./syntax//mmbuilder.nit:784 */
4104 if (UNTAG_Bool(REGB0)) {
4105 REGB0 = TAG_Int(5);
4106 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
4107 /* ./syntax//mmbuilder.nit:785 */
4108 if (!once_value_4) {
4109 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
4110 REGB0 = TAG_Int(35);
4111 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4112 once_value_4 = fra.me.REG[6];
4113 register_static_object(&once_value_4);
4114 } else fra.me.REG[6] = once_value_4;
4115 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
4116 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4117 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
4118 if (!once_value_5) {
4119 fra.me.REG[6] = BOX_NativeString(" in the interface ");
4120 REGB0 = TAG_Int(18);
4121 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4122 once_value_5 = fra.me.REG[6];
4123 register_static_object(&once_value_5);
4124 } else fra.me.REG[6] = once_value_5;
4125 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
4126 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4127 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4128 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
4129 if (!once_value_6) {
4130 fra.me.REG[6] = BOX_NativeString(".");
4131 REGB0 = TAG_Int(1);
4132 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4133 once_value_6 = fra.me.REG[6];
4134 register_static_object(&once_value_6);
4135 } else fra.me.REG[6] = once_value_6;
4136 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
4137 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4138 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
4139 } else {
4140 REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_universal(fra.me.REG[4])(fra.me.REG[4]);
4141 /* ./syntax//mmbuilder.nit:786 */
4142 if (UNTAG_Bool(REGB0)) {
4143 REGB0 = TAG_Int(5);
4144 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
4145 /* ./syntax//mmbuilder.nit:787 */
4146 if (!once_value_7) {
4147 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
4148 REGB0 = TAG_Int(35);
4149 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4150 once_value_7 = fra.me.REG[6];
4151 register_static_object(&once_value_7);
4152 } else fra.me.REG[6] = once_value_7;
4153 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
4154 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4155 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
4156 if (!once_value_8) {
4157 fra.me.REG[6] = BOX_NativeString(" in the universal class ");
4158 REGB0 = TAG_Int(24);
4159 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4160 once_value_8 = fra.me.REG[6];
4161 register_static_object(&once_value_8);
4162 } else fra.me.REG[6] = once_value_8;
4163 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
4164 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4165 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4166 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
4167 if (!once_value_9) {
4168 fra.me.REG[6] = BOX_NativeString(".");
4169 REGB0 = TAG_Int(1);
4170 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4171 once_value_9 = fra.me.REG[6];
4172 register_static_object(&once_value_9);
4173 } else fra.me.REG[6] = once_value_9;
4174 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
4175 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4176 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
4177 }
4178 }
4179 } else {
4180 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
4181 /* ./syntax//mmbuilder.nit:789 */
4182 if (UNTAG_Bool(REGB0)) {
4183 REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]);
4184 /* ./syntax//mmbuilder.nit:790 */
4185 if (UNTAG_Bool(REGB0)) {
4186 REGB0 = TAG_Int(5);
4187 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
4188 /* ./syntax//mmbuilder.nit:791 */
4189 if (!once_value_10) {
4190 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define a constructor ");
4191 REGB0 = TAG_Int(39);
4192 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4193 once_value_10 = fra.me.REG[6];
4194 register_static_object(&once_value_10);
4195 } else fra.me.REG[6] = once_value_10;
4196 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
4197 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4198 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
4199 if (!once_value_11) {
4200 fra.me.REG[6] = BOX_NativeString(" in the class ");
4201 REGB0 = TAG_Int(14);
4202 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4203 once_value_11 = fra.me.REG[6];
4204 register_static_object(&once_value_11);
4205 } else fra.me.REG[6] = once_value_11;
4206 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
4207 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4208 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4209 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
4210 if (!once_value_12) {
4211 fra.me.REG[6] = BOX_NativeString(".");
4212 REGB0 = TAG_Int(1);
4213 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
4214 once_value_12 = fra.me.REG[6];
4215 register_static_object(&once_value_12);
4216 } else fra.me.REG[6] = once_value_12;
4217 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
4218 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4219 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
4220 } else {
4221 REGB0 = CALL_abstractmetamodel___MMGlobalClass___is_universal(fra.me.REG[4])(fra.me.REG[4]);
4222 /* ./syntax//mmbuilder.nit:792 */
4223 if (UNTAG_Bool(REGB0)) {
4224 REGB0 = TAG_Int(5);
4225 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
4226 /* ./syntax//mmbuilder.nit:793 */
4227 if (!once_value_13) {
4228 fra.me.REG[5] = BOX_NativeString("Error: Attempt to define a constructor ");
4229 REGB0 = TAG_Int(39);
4230 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
4231 once_value_13 = fra.me.REG[5];
4232 register_static_object(&once_value_13);
4233 } else fra.me.REG[5] = once_value_13;
4234 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
4235 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4236 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
4237 if (!once_value_14) {
4238 fra.me.REG[5] = BOX_NativeString(" in the universal ");
4239 REGB0 = TAG_Int(18);
4240 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
4241 once_value_14 = fra.me.REG[5];
4242 register_static_object(&once_value_14);
4243 } else fra.me.REG[5] = once_value_14;
4244 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
4245 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4246 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4247 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
4248 if (!once_value_15) {
4249 fra.me.REG[5] = BOX_NativeString(".");
4250 REGB0 = TAG_Int(1);
4251 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
4252 once_value_15 = fra.me.REG[5];
4253 register_static_object(&once_value_15);
4254 } else fra.me.REG[5] = once_value_15;
4255 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
4256 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4257 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
4258 }
4259 }
4260 }
4261 }
4262 fra.me.REG[4] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
4263 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4264 /* ./syntax//mmbuilder.nit:796 */
4265 if (UNTAG_Bool(REGB0)) {
4266 } else {
4267 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4268 if (UNTAG_Bool(REGB1)) {
4269 REGB1 = TAG_Bool(false);
4270 REGB0 = REGB1;
4271 } else {
4272 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
4273 REGB0 = REGB1;
4274 }
4275 }
4276 if (UNTAG_Bool(REGB0)) {
4277 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
4278 /* ./syntax//mmbuilder.nit:797 */
4279 if (UNTAG_Bool(REGB0)) {
4280 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4281 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
4282 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___super_methods_named(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
4283 /* ./syntax//mmbuilder.nit:799 */
4284 CALL_mmbuilder___APropdef___inherit_signature(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[4]);
4285 }
4286 fra.me.REG[4] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
4287 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4288 /* ./syntax//mmbuilder.nit:801 */
4289 if (UNTAG_Bool(REGB0)) {
4290 } else {
4291 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4292 if (UNTAG_Bool(REGB1)) {
4293 REGB1 = TAG_Bool(false);
4294 REGB0 = REGB1;
4295 } else {
4296 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
4297 REGB0 = REGB1;
4298 }
4299 }
4300 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4301 if (UNTAG_Bool(REGB0)) {
4302 REGB0 = TAG_Bool(true);
4303 } else {
4304 fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
4305 REGB1 = CALL_mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[4])(fra.me.REG[4]);
4306 REGB0 = REGB1;
4307 }
4308 if (UNTAG_Bool(REGB0)) {
4309 } else {
4310 fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
4311 fra.me.REG[4] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
4312 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[4])(fra.me.REG[4]);
4313 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4314 /* ./syntax//mmbuilder.nit:803 */
4315 if (UNTAG_Bool(REGB0)) {
4316 fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
4317 fra.me.REG[4] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
4318 fra.me.REG[4] = CALL_abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
4319 /* ./syntax//mmbuilder.nit:804 */
4320 if (!once_value_16) {
4321 fra.me.REG[0] = BOX_NativeString("Error: Untyped parameter.");
4322 REGB0 = TAG_Int(25);
4323 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
4324 once_value_16 = fra.me.REG[0];
4325 register_static_object(&once_value_16);
4326 } else fra.me.REG[0] = once_value_16;
4327 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]);
4328 } else {
4329 fra.me.REG[0] = NEW_Array_array___Array___init();
4330 fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
4331 fra.me.REG[4] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
4332 fra.me.REG[4] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[4]);
4333 /* ./syntax//mmbuilder.nit:806 */
4334 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
4335 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
4336 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[1])(fra.me.REG[1]);
4337 fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]);
4338 /* ./syntax//mmbuilder.nit:807 */
4339 while(1) {
4340 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
4341 if (UNTAG_Bool(REGB0)) {
4342 fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
4343 fra.me.REG[0] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
4344 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4345 /* ./syntax//mmbuilder.nit:808 */
4346 if (UNTAG_Bool(REGB0)) {
4347 fprintf(stderr, "Reciever is null");
4348 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 808);
4349 nit_exit(1);
4350 }
4351 fra.me.REG[0] = CALL_static_type___MMSignature___closures(fra.me.REG[0])(fra.me.REG[0]);
4352 fra.me.REG[4] = CALL_syntax_base___AClosureDecl___variable(fra.me.REG[4])(fra.me.REG[4]);
4353 fra.me.REG[4] = CALL_syntax_base___ClosureVariable___closure(fra.me.REG[4])(fra.me.REG[4]);
4354 array___Array___add(fra.me.REG[0], fra.me.REG[4]);
4355 } else {
4356 /* ./syntax//mmbuilder.nit:807 */
4357 goto label17;
4358 }
4359 CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
4360 }
4361 label17: while(0);
4362 }
4363 }
4364 }
4365 stack_frame_head = fra.me.prev;
4366 return;
4367 }
4368 void mmbuilder___APropdef___inherit_signature(val_t p0, val_t p1, val_t p2, val_t p3){
4369 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
4370 val_t REGB0;
4371 val_t REGB1;
4372 val_t REGB2;
4373 val_t tmp;
4374 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4375 fra.me.file = LOCATE_mmbuilder;
4376 fra.me.line = 814;
4377 fra.me.meth = LOCATE_mmbuilder___APropdef___inherit_signature;
4378 fra.me.has_broke = 0;
4379 fra.me.REG_size = 9;
4380 fra.me.REG[0] = NIT_NULL;
4381 fra.me.REG[1] = NIT_NULL;
4382 fra.me.REG[2] = NIT_NULL;
4383 fra.me.REG[3] = NIT_NULL;
4384 fra.me.REG[4] = NIT_NULL;
4385 fra.me.REG[5] = NIT_NULL;
4386 fra.me.REG[6] = NIT_NULL;
4387 fra.me.REG[7] = NIT_NULL;
4388 fra.me.REG[8] = NIT_NULL;
4389 fra.me.REG[0] = p0;
4390 fra.me.REG[1] = p1;
4391 fra.me.REG[2] = p2;
4392 fra.me.REG[3] = p3;
4393 fra.me.REG[0] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
4394 fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]);
4395 /* ./syntax//mmbuilder.nit:817 */
4396 while(1) {
4397 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]);
4398 if (UNTAG_Bool(REGB0)) {
4399 fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]);
4400 fra.me.REG[4] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[4])(fra.me.REG[4]);
4401 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
4402 fra.me.REG[5] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]);
4403 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4404 /* ./syntax//mmbuilder.nit:818 */
4405 if (UNTAG_Bool(REGB0)) {
4406 fprintf(stderr, "Reciever is null");
4407 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 818);
4408 nit_exit(1);
4409 }
4410 fra.me.REG[5] = CALL_static_type___MMSignature___adaptation_to(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
4411 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4412 /* ./syntax//mmbuilder.nit:820 */
4413 if (UNTAG_Bool(REGB0)) {
4414 } else {
4415 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4416 if (UNTAG_Bool(REGB1)) {
4417 REGB1 = TAG_Bool(false);
4418 REGB0 = REGB1;
4419 } else {
4420 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
4421 REGB0 = REGB1;
4422 }
4423 }
4424 if (UNTAG_Bool(REGB0)) {
4425 fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
4426 fra.me.REG[4] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[4])(fra.me.REG[4]);
4427 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
4428 /* ./../lib/standard//collection//array.nit:23 */
4429 if (UNTAG_Bool(REGB0)) {
4430 } else {
4431 fprintf(stderr, "Uninitialized attribute %s", "_length");
4432 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
4433 nit_exit(1);
4434 }
4435 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
4436 REGB1 = CALL_static_type___MMSignature___arity(fra.me.REG[5])(fra.me.REG[5]);
4437 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
4438 /* ./syntax//mmbuilder.nit:821 */
4439 if (UNTAG_Bool(REGB2)) {
4440 } else {
4441 REGB1 = TAG_Bool((REGB0)==(REGB1));
4442 REGB2 = REGB1;
4443 /* ./syntax//mmbuilder.nit:821 */
4444 }
4445 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
4446 if (UNTAG_Bool(REGB2)) {
4447 /* ./syntax//mmbuilder.nit:822 */
4448 goto label1;
4449 }
4450 fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
4451 fra.me.REG[4] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[4])(fra.me.REG[4]);
4452 fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[4])(fra.me.REG[4]);
4453 /* ./syntax//mmbuilder.nit:824 */
4454 while(1) {
4455 REGB2 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]);
4456 if (UNTAG_Bool(REGB2)) {
4457 fra.me.REG[6] = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]);
4458 REGB2 = CALL_syntax_base___AParam___position(fra.me.REG[6])(fra.me.REG[6]);
4459 fra.me.REG[7] = CALL_static_type___MMSignature_____bra(fra.me.REG[5])(fra.me.REG[5], REGB2);
4460 /* ./syntax//mmbuilder.nit:826 */
4461 CALL_mmbuilder___AParam___stype__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4462 REGB2 = CALL_syntax_base___AParam___position(fra.me.REG[6])(fra.me.REG[6]);
4463 REGB1 = CALL_vararg___MMSignature___vararg_rank(fra.me.REG[5])(fra.me.REG[5]);
4464 REGB0 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
4465 /* ./syntax//mmbuilder.nit:827 */
4466 if (UNTAG_Bool(REGB0)) {
4467 } else {
4468 REGB1 = TAG_Bool((REGB2)==(REGB1));
4469 REGB0 = REGB1;
4470 /* ./syntax//mmbuilder.nit:827 */
4471 }
4472 if (UNTAG_Bool(REGB0)) {
4473 fra.me.REG[8] = CALL_syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
4474 fra.me.REG[7] = fra.me.REG[8];
4475 /* ./syntax//mmbuilder.nit:828 */
4476 }
4477 fra.me.REG[6] = CALL_syntax_base___AParam___variable(fra.me.REG[6])(fra.me.REG[6]);
4478 /* ./syntax//mmbuilder.nit:830 */
4479 CALL_syntax_base___Variable___stype__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4480 } else {
4481 /* ./syntax//mmbuilder.nit:824 */
4482 goto label2;
4483 }
4484 CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]);
4485 }
4486 label2: while(0);
4487 fra.me.REG[0] = fra.me.REG[5];
4488 /* ./syntax//mmbuilder.nit:834 */
4489 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4490 }
4491 } else {
4492 /* ./syntax//mmbuilder.nit:817 */
4493 goto label3;
4494 }
4495 CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]);
4496 }
4497 label3: while(0);
4498 label1: while(0);
4499 stack_frame_head = fra.me.prev;
4500 return;
4501 }
4502 void mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
4503 struct {struct stack_frame_t me; val_t MORE_REG[11];} fra;
4504 val_t REGB0;
4505 val_t REGB1;
4506 val_t REGB2;
4507 val_t REGB3;
4508 val_t REGB4;
4509 val_t tmp;
4510 static val_t once_value_1; /* Once value */
4511 static val_t once_value_2; /* Once value */
4512 static val_t once_value_3; /* Once value */
4513 static val_t once_value_5; /* Once value */
4514 static val_t once_value_6; /* Once value */
4515 static val_t once_value_7; /* Once value */
4516 static val_t once_value_8; /* Once value */
4517 static val_t once_value_9; /* Once value */
4518 static val_t once_value_10; /* Once value */
4519 static val_t once_value_11; /* Once value */
4520 static val_t once_value_12; /* Once value */
4521 static val_t once_value_13; /* Once value */
4522 static val_t once_value_14; /* Once value */
4523 static val_t once_value_15; /* Once value */
4524 static val_t once_value_16; /* Once value */
4525 static val_t once_value_17; /* Once value */
4526 static val_t once_value_18; /* Once value */
4527 static val_t once_value_19; /* Once value */
4528 static val_t once_value_20; /* Once value */
4529 static val_t once_value_21; /* Once value */
4530 static val_t once_value_22; /* Once value */
4531 static val_t once_value_24; /* Once value */
4532 static val_t once_value_25; /* Once value */
4533 static val_t once_value_26; /* Once value */
4534 static val_t once_value_27; /* Once value */
4535 static val_t once_value_28; /* Once value */
4536 static val_t once_value_29; /* Once value */
4537 static val_t once_value_30; /* Once value */
4538 static val_t once_value_31; /* Once value */
4539 static val_t once_value_32; /* Once value */
4540 static val_t once_value_33; /* Once value */
4541 static val_t once_value_34; /* Once value */
4542 static val_t once_value_35; /* Once value */
4543 static val_t once_value_36; /* Once value */
4544 static val_t once_value_38; /* Once value */
4545 static val_t once_value_39; /* Once value */
4546 static val_t once_value_40; /* Once value */
4547 static val_t once_value_41; /* Once value */
4548 static val_t once_value_42; /* Once value */
4549 static val_t once_value_43; /* Once value */
4550 static val_t once_value_44; /* Once value */
4551 static val_t once_value_45; /* Once value */
4552 static val_t once_value_46; /* Once value */
4553 static val_t once_value_47; /* Once value */
4554 static val_t once_value_48; /* Once value */
4555 static val_t once_value_49; /* Once value */
4556 static val_t once_value_50; /* Once value */
4557 static val_t once_value_51; /* Once value */
4558 static val_t once_value_52; /* Once value */
4559 static val_t once_value_53; /* Once value */
4560 static val_t once_value_54; /* Once value */
4561 static val_t once_value_55; /* Once value */
4562 static val_t once_value_56; /* Once value */
4563 static val_t once_value_57; /* Once value */
4564 static val_t once_value_58; /* Once value */
4565 static val_t once_value_59; /* Once value */
4566 static val_t once_value_60; /* Once value */
4567 static val_t once_value_61; /* Once value */
4568 static val_t once_value_62; /* Once value */
4569 static val_t once_value_63; /* Once value */
4570 static val_t once_value_64; /* Once value */
4571 static val_t once_value_65; /* Once value */
4572 static val_t once_value_66; /* Once value */
4573 static val_t once_value_68; /* Once value */
4574 static val_t once_value_69; /* Once value */
4575 static val_t once_value_70; /* Once value */
4576 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4577 fra.me.file = LOCATE_mmbuilder;
4578 fra.me.line = 839;
4579 fra.me.meth = LOCATE_mmbuilder___APropdef___do_and_check_redef;
4580 fra.me.has_broke = 0;
4581 fra.me.REG_size = 12;
4582 fra.me.REG[0] = NIT_NULL;
4583 fra.me.REG[1] = NIT_NULL;
4584 fra.me.REG[2] = NIT_NULL;
4585 fra.me.REG[3] = NIT_NULL;
4586 fra.me.REG[4] = NIT_NULL;
4587 fra.me.REG[5] = NIT_NULL;
4588 fra.me.REG[6] = NIT_NULL;
4589 fra.me.REG[7] = NIT_NULL;
4590 fra.me.REG[8] = NIT_NULL;
4591 fra.me.REG[9] = NIT_NULL;
4592 fra.me.REG[10] = NIT_NULL;
4593 fra.me.REG[11] = NIT_NULL;
4594 fra.me.REG[0] = p0;
4595 fra.me.REG[1] = p1;
4596 fra.me.REG[2] = p2;
4597 REGB0 = p3;
4598 REGB1 = p4;
4599 REGB2 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
4600 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
4601 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4602 /* ./syntax//mmbuilder.nit:845 */
4603 if (UNTAG_Bool(REGB0)) {
4604 REGB0 = TAG_Int(5);
4605 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
4606 /* ./syntax//mmbuilder.nit:846 */
4607 if (!once_value_1) {
4608 fra.me.REG[5] = BOX_NativeString("Redef error: ");
4609 REGB0 = TAG_Int(13);
4610 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
4611 once_value_1 = fra.me.REG[5];
4612 register_static_object(&once_value_1);
4613 } else fra.me.REG[5] = once_value_1;
4614 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
4615 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4616 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4617 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
4618 if (!once_value_2) {
4619 fra.me.REG[5] = BOX_NativeString("::");
4620 REGB0 = TAG_Int(2);
4621 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
4622 once_value_2 = fra.me.REG[5];
4623 register_static_object(&once_value_2);
4624 } else fra.me.REG[5] = once_value_2;
4625 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
4626 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4627 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
4628 if (!once_value_3) {
4629 fra.me.REG[5] = BOX_NativeString(" is an inherited property. To redefine it, add the redef keyword.");
4630 REGB0 = TAG_Int(65);
4631 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
4632 once_value_3 = fra.me.REG[5];
4633 register_static_object(&once_value_3);
4634 } else fra.me.REG[5] = once_value_3;
4635 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
4636 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4637 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
4638 /* ./syntax//mmbuilder.nit:847 */
4639 goto label4;
4640 }
4641 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
4642 /* ./syntax//mmbuilder.nit:849 */
4643 if (UNTAG_Bool(REGB0)) {
4644 REGB0 = TAG_Bool(!UNTAG_Bool(REGB2));
4645 } else {
4646 REGB3 = TAG_Bool(false);
4647 REGB0 = REGB3;
4648 }
4649 if (UNTAG_Bool(REGB0)) {
4650 REGB0 = TAG_Int(5);
4651 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
4652 /* ./syntax//mmbuilder.nit:850 */
4653 if (!once_value_5) {
4654 fra.me.REG[5] = BOX_NativeString("Redef error: A method ");
4655 REGB0 = TAG_Int(22);
4656 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
4657 once_value_5 = fra.me.REG[5];
4658 register_static_object(&once_value_5);
4659 } else fra.me.REG[5] = once_value_5;
4660 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
4661 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4662 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4663 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
4664 if (!once_value_6) {
4665 fra.me.REG[5] = BOX_NativeString("::");
4666 REGB0 = TAG_Int(2);
4667 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
4668 once_value_6 = fra.me.REG[5];
4669 register_static_object(&once_value_6);
4670 } else fra.me.REG[5] = once_value_6;
4671 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
4672 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4673 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
4674 if (!once_value_7) {
4675 fra.me.REG[5] = BOX_NativeString(" cannot redefine a constructor.");
4676 REGB0 = TAG_Int(31);
4677 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
4678 once_value_7 = fra.me.REG[5];
4679 register_static_object(&once_value_7);
4680 } else fra.me.REG[5] = once_value_7;
4681 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
4682 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4683 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
4684 } else {
4685 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
4686 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4687 /* ./syntax//mmbuilder.nit:851 */
4688 if (UNTAG_Bool(REGB0)) {
4689 } else {
4690 REGB0 = TAG_Bool(false);
4691 REGB2 = REGB0;
4692 }
4693 if (UNTAG_Bool(REGB2)) {
4694 REGB2 = TAG_Int(5);
4695 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB2);
4696 /* ./syntax//mmbuilder.nit:852 */
4697 if (!once_value_8) {
4698 fra.me.REG[5] = BOX_NativeString("Redef error: A constructor ");
4699 REGB2 = TAG_Int(27);
4700 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
4701 once_value_8 = fra.me.REG[5];
4702 register_static_object(&once_value_8);
4703 } else fra.me.REG[5] = once_value_8;
4704 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
4705 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4706 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4707 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
4708 if (!once_value_9) {
4709 fra.me.REG[5] = BOX_NativeString("::");
4710 REGB2 = TAG_Int(2);
4711 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
4712 once_value_9 = fra.me.REG[5];
4713 register_static_object(&once_value_9);
4714 } else fra.me.REG[5] = once_value_9;
4715 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
4716 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4717 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
4718 if (!once_value_10) {
4719 fra.me.REG[5] = BOX_NativeString(" cannot redefine a method.");
4720 REGB2 = TAG_Int(26);
4721 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
4722 once_value_10 = fra.me.REG[5];
4723 register_static_object(&once_value_10);
4724 } else fra.me.REG[5] = once_value_10;
4725 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
4726 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4727 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
4728 }
4729 }
4730 fra.me.REG[4] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
4731 fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[2])(fra.me.REG[2]);
4732 fra.me.REG[5] = CALL_partial_order___PartialOrderElement___direct_greaters(fra.me.REG[5])(fra.me.REG[5]);
4733 fra.me.REG[5] = CALL_abstract_collection___Collection___iterator(fra.me.REG[5])(fra.me.REG[5]);
4734 /* ./syntax//mmbuilder.nit:857 */
4735 while(1) {
4736 REGB2 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[5])(fra.me.REG[5]);
4737 if (UNTAG_Bool(REGB2)) {
4738 fra.me.REG[6] = CALL_abstract_collection___Iterator___item(fra.me.REG[5])(fra.me.REG[5]);
4739 fra.me.REG[7] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[6])(fra.me.REG[6]);
4740 fra.me.REG[8] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
4741 fra.me.REG[8] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4742 fra.me.REG[6] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[6])(fra.me.REG[6]);
4743 fra.me.REG[7] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
4744 fra.me.REG[7] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[7])(fra.me.REG[7]);
4745 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
4746 /* ./syntax//mmbuilder.nit:859 */
4747 if (UNTAG_Bool(REGB2)) {
4748 fprintf(stderr, "Reciever is null");
4749 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 859);
4750 nit_exit(1);
4751 }
4752 fra.me.REG[7] = CALL_static_type___MMSignature___adaptation_to(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4753 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4754 /* ./syntax//mmbuilder.nit:861 */
4755 if (UNTAG_Bool(REGB2)) {
4756 } else {
4757 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4758 if (UNTAG_Bool(REGB0)) {
4759 REGB0 = TAG_Bool(false);
4760 REGB2 = REGB0;
4761 } else {
4762 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
4763 REGB2 = REGB0;
4764 }
4765 }
4766 if (UNTAG_Bool(REGB2)) {
4767 fra.me.REG[6] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
4768 fra.me.REG[6] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[6])(fra.me.REG[6]);
4769 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
4770 /* ./../lib/standard//collection//array.nit:23 */
4771 if (UNTAG_Bool(REGB2)) {
4772 } else {
4773 fprintf(stderr, "Uninitialized attribute %s", "_length");
4774 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
4775 nit_exit(1);
4776 }
4777 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[6]);
4778 REGB0 = CALL_static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
4779 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB0));
4780 /* ./syntax//mmbuilder.nit:863 */
4781 if (UNTAG_Bool(REGB3)) {
4782 } else {
4783 REGB0 = TAG_Bool((REGB2)==(REGB0));
4784 REGB3 = REGB0;
4785 /* ./syntax//mmbuilder.nit:863 */
4786 }
4787 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
4788 if (UNTAG_Bool(REGB3)) {
4789 REGB3 = TAG_Int(11);
4790 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB3);
4791 /* ./syntax//mmbuilder.nit:864 */
4792 if (!once_value_11) {
4793 fra.me.REG[9] = BOX_NativeString("Redef error: ");
4794 REGB3 = TAG_Int(13);
4795 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB3);
4796 once_value_11 = fra.me.REG[9];
4797 register_static_object(&once_value_11);
4798 } else fra.me.REG[9] = once_value_11;
4799 array___Array___add(fra.me.REG[6], fra.me.REG[9]);
4800 fra.me.REG[9] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4801 fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
4802 array___Array___add(fra.me.REG[6], fra.me.REG[9]);
4803 if (!once_value_12) {
4804 fra.me.REG[9] = BOX_NativeString("::");
4805 REGB3 = TAG_Int(2);
4806 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB3);
4807 once_value_12 = fra.me.REG[9];
4808 register_static_object(&once_value_12);
4809 } else fra.me.REG[9] = once_value_12;
4810 array___Array___add(fra.me.REG[6], fra.me.REG[9]);
4811 fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4812 array___Array___add(fra.me.REG[6], fra.me.REG[9]);
4813 if (!once_value_13) {
4814 fra.me.REG[9] = BOX_NativeString(" redefines ");
4815 REGB3 = TAG_Int(11);
4816 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB3);
4817 once_value_13 = fra.me.REG[9];
4818 register_static_object(&once_value_13);
4819 } else fra.me.REG[9] = once_value_13;
4820 array___Array___add(fra.me.REG[6], fra.me.REG[9]);
4821 fra.me.REG[9] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[8])(fra.me.REG[8]);
4822 fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
4823 array___Array___add(fra.me.REG[6], fra.me.REG[9]);
4824 if (!once_value_14) {
4825 fra.me.REG[9] = BOX_NativeString("::");
4826 REGB3 = TAG_Int(2);
4827 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB3);
4828 once_value_14 = fra.me.REG[9];
4829 register_static_object(&once_value_14);
4830 } else fra.me.REG[9] = once_value_14;
4831 array___Array___add(fra.me.REG[6], fra.me.REG[9]);
4832 fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4833 array___Array___add(fra.me.REG[6], fra.me.REG[9]);
4834 if (!once_value_15) {
4835 fra.me.REG[9] = BOX_NativeString(" with ");
4836 REGB3 = TAG_Int(6);
4837 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB3);
4838 once_value_15 = fra.me.REG[9];
4839 register_static_object(&once_value_15);
4840 } else fra.me.REG[9] = once_value_15;
4841 array___Array___add(fra.me.REG[6], fra.me.REG[9]);
4842 REGB3 = CALL_static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
4843 fra.me.REG[9] = CALL_string___Object___to_s(REGB3)(REGB3);
4844 array___Array___add(fra.me.REG[6], fra.me.REG[9]);
4845 if (!once_value_16) {
4846 fra.me.REG[9] = BOX_NativeString(" parameter(s).");
4847 REGB3 = TAG_Int(14);
4848 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB3);
4849 once_value_16 = fra.me.REG[9];
4850 register_static_object(&once_value_16);
4851 } else fra.me.REG[9] = once_value_16;
4852 array___Array___add(fra.me.REG[6], fra.me.REG[9]);
4853 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4854 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[6]);
4855 /* ./syntax//mmbuilder.nit:865 */
4856 goto label4;
4857 }
4858 fra.me.REG[6] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
4859 fra.me.REG[6] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[6])(fra.me.REG[6]);
4860 REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
4861 /* ./../lib/standard//collection//array.nit:23 */
4862 if (UNTAG_Bool(REGB3)) {
4863 } else {
4864 fprintf(stderr, "Uninitialized attribute %s", "_length");
4865 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
4866 nit_exit(1);
4867 }
4868 REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[6]);
4869 fra.me.REG[6] = CALL_static_type___MMSignature___closures(fra.me.REG[7])(fra.me.REG[7]);
4870 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
4871 /* ./../lib/standard//collection//array.nit:23 */
4872 if (UNTAG_Bool(REGB0)) {
4873 } else {
4874 fprintf(stderr, "Uninitialized attribute %s", "_length");
4875 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
4876 nit_exit(1);
4877 }
4878 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[6]);
4879 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB0));
4880 /* ./syntax//mmbuilder.nit:867 */
4881 if (UNTAG_Bool(REGB2)) {
4882 } else {
4883 REGB0 = TAG_Bool((REGB3)==(REGB0));
4884 REGB2 = REGB0;
4885 /* ./syntax//mmbuilder.nit:867 */
4886 }
4887 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
4888 if (UNTAG_Bool(REGB2)) {
4889 REGB2 = TAG_Int(11);
4890 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB2);
4891 /* ./syntax//mmbuilder.nit:868 */
4892 if (!once_value_17) {
4893 fra.me.REG[9] = BOX_NativeString("Redef error: ");
4894 REGB2 = TAG_Int(13);
4895 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB2);
4896 once_value_17 = fra.me.REG[9];
4897 register_static_object(&once_value_17);
4898 } else fra.me.REG[9] = once_value_17;
4899 array___Array___add(fra.me.REG[6], fra.me.REG[9]);
4900 fra.me.REG[9] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
4901 fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
4902 array___Array___add(fra.me.REG[6], fra.me.REG[9]);
4903 if (!once_value_18) {
4904 fra.me.REG[9] = BOX_NativeString("::");
4905 REGB2 = TAG_Int(2);
4906 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB2);
4907 once_value_18 = fra.me.REG[9];
4908 register_static_object(&once_value_18);
4909 } else fra.me.REG[9] = once_value_18;
4910 array___Array___add(fra.me.REG[6], fra.me.REG[9]);
4911 fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
4912 array___Array___add(fra.me.REG[6], fra.me.REG[9]);
4913 if (!once_value_19) {
4914 fra.me.REG[9] = BOX_NativeString(" redefines ");
4915 REGB2 = TAG_Int(11);
4916 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB2);
4917 once_value_19 = fra.me.REG[9];
4918 register_static_object(&once_value_19);
4919 } else fra.me.REG[9] = once_value_19;
4920 array___Array___add(fra.me.REG[6], fra.me.REG[9]);
4921 fra.me.REG[9] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[8])(fra.me.REG[8]);
4922 fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
4923 array___Array___add(fra.me.REG[6], fra.me.REG[9]);
4924 if (!once_value_20) {
4925 fra.me.REG[9] = BOX_NativeString("::");
4926 REGB2 = TAG_Int(2);
4927 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB2);
4928 once_value_20 = fra.me.REG[9];
4929 register_static_object(&once_value_20);
4930 } else fra.me.REG[9] = once_value_20;
4931 array___Array___add(fra.me.REG[6], fra.me.REG[9]);
4932 fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4933 array___Array___add(fra.me.REG[6], fra.me.REG[9]);
4934 if (!once_value_21) {
4935 fra.me.REG[9] = BOX_NativeString(" with ");
4936 REGB2 = TAG_Int(6);
4937 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB2);
4938 once_value_21 = fra.me.REG[9];
4939 register_static_object(&once_value_21);
4940 } else fra.me.REG[9] = once_value_21;
4941 array___Array___add(fra.me.REG[6], fra.me.REG[9]);
4942 REGB2 = CALL_static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
4943 fra.me.REG[9] = CALL_string___Object___to_s(REGB2)(REGB2);
4944 array___Array___add(fra.me.REG[6], fra.me.REG[9]);
4945 if (!once_value_22) {
4946 fra.me.REG[9] = BOX_NativeString(" closure(s).");
4947 REGB2 = TAG_Int(12);
4948 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB2);
4949 once_value_22 = fra.me.REG[9];
4950 register_static_object(&once_value_22);
4951 } else fra.me.REG[9] = once_value_22;
4952 array___Array___add(fra.me.REG[6], fra.me.REG[9]);
4953 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4954 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[6]);
4955 /* ./syntax//mmbuilder.nit:869 */
4956 goto label4;
4957 }
4958 fra.me.REG[6] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
4959 fra.me.REG[6] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[6])(fra.me.REG[6]);
4960 fra.me.REG[6] = CALL_abstract_collection___Collection___iterator(fra.me.REG[6])(fra.me.REG[6]);
4961 /* ./syntax//mmbuilder.nit:871 */
4962 while(1) {
4963 REGB2 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[6])(fra.me.REG[6]);
4964 if (UNTAG_Bool(REGB2)) {
4965 fra.me.REG[9] = CALL_abstract_collection___Iterator___item(fra.me.REG[6])(fra.me.REG[6]);
4966 REGB2 = CALL_syntax_base___AParam___position(fra.me.REG[9])(fra.me.REG[9]);
4967 fra.me.REG[10] = CALL_static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB2);
4968 /* ./syntax//mmbuilder.nit:873 */
4969 CALL_mmbuilder___AParam___stype__eq(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
4970 REGB2 = CALL_syntax_base___AParam___position(fra.me.REG[9])(fra.me.REG[9]);
4971 REGB0 = CALL_vararg___MMSignature___vararg_rank(fra.me.REG[7])(fra.me.REG[7]);
4972 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB0));
4973 /* ./syntax//mmbuilder.nit:874 */
4974 if (UNTAG_Bool(REGB3)) {
4975 } else {
4976 REGB0 = TAG_Bool((REGB2)==(REGB0));
4977 REGB3 = REGB0;
4978 /* ./syntax//mmbuilder.nit:874 */
4979 }
4980 if (UNTAG_Bool(REGB3)) {
4981 fra.me.REG[11] = CALL_syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[10]);
4982 fra.me.REG[10] = fra.me.REG[11];
4983 /* ./syntax//mmbuilder.nit:875 */
4984 }
4985 fra.me.REG[9] = CALL_syntax_base___AParam___variable(fra.me.REG[9])(fra.me.REG[9]);
4986 /* ./syntax//mmbuilder.nit:877 */
4987 CALL_syntax_base___Variable___stype__eq(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
4988 } else {
4989 /* ./syntax//mmbuilder.nit:871 */
4990 goto label23;
4991 }
4992 CALL_abstract_collection___Iterator___next(fra.me.REG[6])(fra.me.REG[6]);
4993 }
4994 label23: while(0);
4995 fra.me.REG[4] = fra.me.REG[7];
4996 /* ./syntax//mmbuilder.nit:880 */
4997 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
4998 }
4999 fra.me.REG[6] = CALL_syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
5000 REGB3 = CALL_mmloader___ToolContext___error_count(fra.me.REG[6])(fra.me.REG[6]);
5001 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5002 /* ./syntax//mmbuilder.nit:892 */
5003 if (UNTAG_Bool(REGB0)) {
5004 fprintf(stderr, "Reciever is null");
5005 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 892);
5006 nit_exit(1);
5007 }
5008 REGB0 = CALL_static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
5009 REGB2 = CALL_static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
5010 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
5011 if (UNTAG_Bool(REGB4)) {
5012 } else {
5013 REGB2 = TAG_Bool((REGB0)==(REGB2));
5014 REGB4 = REGB2;
5015 /* ./syntax//mmbuilder.nit:892 */
5016 }
5017 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
5018 if (UNTAG_Bool(REGB4)) {
5019 REGB4 = TAG_Int(11);
5020 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB4);
5021 /* ./syntax//mmbuilder.nit:893 */
5022 if (!once_value_24) {
5023 fra.me.REG[10] = BOX_NativeString("Redef error: ");
5024 REGB4 = TAG_Int(13);
5025 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5026 once_value_24 = fra.me.REG[10];
5027 register_static_object(&once_value_24);
5028 } else fra.me.REG[10] = once_value_24;
5029 array___Array___add(fra.me.REG[6], fra.me.REG[10]);
5030 fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5031 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5032 array___Array___add(fra.me.REG[6], fra.me.REG[10]);
5033 if (!once_value_25) {
5034 fra.me.REG[10] = BOX_NativeString("::");
5035 REGB4 = TAG_Int(2);
5036 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5037 once_value_25 = fra.me.REG[10];
5038 register_static_object(&once_value_25);
5039 } else fra.me.REG[10] = once_value_25;
5040 array___Array___add(fra.me.REG[6], fra.me.REG[10]);
5041 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5042 array___Array___add(fra.me.REG[6], fra.me.REG[10]);
5043 if (!once_value_26) {
5044 fra.me.REG[10] = BOX_NativeString(" redefines ");
5045 REGB4 = TAG_Int(11);
5046 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5047 once_value_26 = fra.me.REG[10];
5048 register_static_object(&once_value_26);
5049 } else fra.me.REG[10] = once_value_26;
5050 array___Array___add(fra.me.REG[6], fra.me.REG[10]);
5051 fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[8])(fra.me.REG[8]);
5052 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5053 array___Array___add(fra.me.REG[6], fra.me.REG[10]);
5054 if (!once_value_27) {
5055 fra.me.REG[10] = BOX_NativeString("::");
5056 REGB4 = TAG_Int(2);
5057 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5058 once_value_27 = fra.me.REG[10];
5059 register_static_object(&once_value_27);
5060 } else fra.me.REG[10] = once_value_27;
5061 array___Array___add(fra.me.REG[6], fra.me.REG[10]);
5062 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
5063 array___Array___add(fra.me.REG[6], fra.me.REG[10]);
5064 if (!once_value_28) {
5065 fra.me.REG[10] = BOX_NativeString(" with ");
5066 REGB4 = TAG_Int(6);
5067 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5068 once_value_28 = fra.me.REG[10];
5069 register_static_object(&once_value_28);
5070 } else fra.me.REG[10] = once_value_28;
5071 array___Array___add(fra.me.REG[6], fra.me.REG[10]);
5072 REGB4 = CALL_static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
5073 fra.me.REG[10] = CALL_string___Object___to_s(REGB4)(REGB4);
5074 array___Array___add(fra.me.REG[6], fra.me.REG[10]);
5075 if (!once_value_29) {
5076 fra.me.REG[10] = BOX_NativeString(" parameter(s).");
5077 REGB4 = TAG_Int(14);
5078 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5079 once_value_29 = fra.me.REG[10];
5080 register_static_object(&once_value_29);
5081 } else fra.me.REG[10] = once_value_29;
5082 array___Array___add(fra.me.REG[6], fra.me.REG[10]);
5083 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5084 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[6]);
5085 } else {
5086 REGB4 = TAG_Int(0);
5087 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5088 /* ./syntax//mmbuilder.nit:895 */
5089 if (UNTAG_Bool(REGB2)) {
5090 fprintf(stderr, "Reciever is null");
5091 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 895);
5092 nit_exit(1);
5093 }
5094 REGB2 = CALL_static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
5095 fra.me.REG[6] = NEW_Range_range___Range___without_last(REGB4, REGB2);
5096 fra.me.REG[6] = CALL_abstract_collection___Collection___iterator(fra.me.REG[6])(fra.me.REG[6]);
5097 while(1) {
5098 REGB2 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[6])(fra.me.REG[6]);
5099 if (UNTAG_Bool(REGB2)) {
5100 REGB2 = CALL_abstract_collection___Iterator___item(fra.me.REG[6])(fra.me.REG[6]);
5101 REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5102 /* ./syntax//mmbuilder.nit:896 */
5103 if (UNTAG_Bool(REGB4)) {
5104 fprintf(stderr, "Reciever is null");
5105 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 896);
5106 nit_exit(1);
5107 }
5108 fra.me.REG[10] = CALL_static_type___MMSignature_____bra(fra.me.REG[4])(fra.me.REG[4], REGB2);
5109 fra.me.REG[9] = CALL_static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB2);
5110 REGB4 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[10],fra.me.REG[9]));
5111 if (UNTAG_Bool(REGB4)) {
5112 } else {
5113 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[9]);
5114 REGB4 = REGB0;
5115 }
5116 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
5117 if (UNTAG_Bool(REGB4)) {
5118 REGB4 = TAG_Int(13);
5119 fra.me.REG[9] = NEW_Array_array___Array___with_capacity(REGB4);
5120 /* ./syntax//mmbuilder.nit:897 */
5121 if (!once_value_30) {
5122 fra.me.REG[10] = BOX_NativeString("Redef error: Expected ");
5123 REGB4 = TAG_Int(22);
5124 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5125 once_value_30 = fra.me.REG[10];
5126 register_static_object(&once_value_30);
5127 } else fra.me.REG[10] = once_value_30;
5128 array___Array___add(fra.me.REG[9], fra.me.REG[10]);
5129 fra.me.REG[10] = CALL_static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB2);
5130 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5131 array___Array___add(fra.me.REG[9], fra.me.REG[10]);
5132 if (!once_value_31) {
5133 fra.me.REG[10] = BOX_NativeString(" (as in ");
5134 REGB4 = TAG_Int(8);
5135 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5136 once_value_31 = fra.me.REG[10];
5137 register_static_object(&once_value_31);
5138 } else fra.me.REG[10] = once_value_31;
5139 array___Array___add(fra.me.REG[9], fra.me.REG[10]);
5140 fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[8])(fra.me.REG[8]);
5141 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5142 array___Array___add(fra.me.REG[9], fra.me.REG[10]);
5143 if (!once_value_32) {
5144 fra.me.REG[10] = BOX_NativeString("::");
5145 REGB4 = TAG_Int(2);
5146 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5147 once_value_32 = fra.me.REG[10];
5148 register_static_object(&once_value_32);
5149 } else fra.me.REG[10] = once_value_32;
5150 array___Array___add(fra.me.REG[9], fra.me.REG[10]);
5151 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
5152 array___Array___add(fra.me.REG[9], fra.me.REG[10]);
5153 if (!once_value_33) {
5154 fra.me.REG[10] = BOX_NativeString("), got ");
5155 REGB4 = TAG_Int(7);
5156 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5157 once_value_33 = fra.me.REG[10];
5158 register_static_object(&once_value_33);
5159 } else fra.me.REG[10] = once_value_33;
5160 array___Array___add(fra.me.REG[9], fra.me.REG[10]);
5161 REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5162 if (UNTAG_Bool(REGB4)) {
5163 fprintf(stderr, "Reciever is null");
5164 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 897);
5165 nit_exit(1);
5166 }
5167 fra.me.REG[10] = CALL_static_type___MMSignature_____bra(fra.me.REG[4])(fra.me.REG[4], REGB2);
5168 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5169 array___Array___add(fra.me.REG[9], fra.me.REG[10]);
5170 if (!once_value_34) {
5171 fra.me.REG[10] = BOX_NativeString(" in ");
5172 REGB2 = TAG_Int(4);
5173 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB2);
5174 once_value_34 = fra.me.REG[10];
5175 register_static_object(&once_value_34);
5176 } else fra.me.REG[10] = once_value_34;
5177 array___Array___add(fra.me.REG[9], fra.me.REG[10]);
5178 fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5179 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5180 array___Array___add(fra.me.REG[9], fra.me.REG[10]);
5181 if (!once_value_35) {
5182 fra.me.REG[10] = BOX_NativeString("::");
5183 REGB2 = TAG_Int(2);
5184 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB2);
5185 once_value_35 = fra.me.REG[10];
5186 register_static_object(&once_value_35);
5187 } else fra.me.REG[10] = once_value_35;
5188 array___Array___add(fra.me.REG[9], fra.me.REG[10]);
5189 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5190 array___Array___add(fra.me.REG[9], fra.me.REG[10]);
5191 if (!once_value_36) {
5192 fra.me.REG[10] = BOX_NativeString(".");
5193 REGB2 = TAG_Int(1);
5194 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB2);
5195 once_value_36 = fra.me.REG[10];
5196 register_static_object(&once_value_36);
5197 } else fra.me.REG[10] = once_value_36;
5198 array___Array___add(fra.me.REG[9], fra.me.REG[10]);
5199 fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
5200 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[9]);
5201 }
5202 } else {
5203 /* ./syntax//mmbuilder.nit:895 */
5204 goto label37;
5205 }
5206 CALL_abstract_collection___Iterator___next(fra.me.REG[6])(fra.me.REG[6]);
5207 }
5208 label37: while(0);
5209 }
5210 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5211 /* ./syntax//mmbuilder.nit:902 */
5212 if (UNTAG_Bool(REGB2)) {
5213 fprintf(stderr, "Reciever is null");
5214 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 902);
5215 nit_exit(1);
5216 }
5217 fra.me.REG[6] = CALL_static_type___MMSignature___return_type(fra.me.REG[4])(fra.me.REG[4]);
5218 fra.me.REG[9] = CALL_static_type___MMSignature___return_type(fra.me.REG[7])(fra.me.REG[7]);
5219 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5220 /* ./syntax//mmbuilder.nit:904 */
5221 if (UNTAG_Bool(REGB2)) {
5222 } else {
5223 REGB4 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5224 if (UNTAG_Bool(REGB4)) {
5225 REGB4 = TAG_Bool(false);
5226 REGB2 = REGB4;
5227 } else {
5228 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
5229 REGB2 = REGB4;
5230 }
5231 }
5232 if (UNTAG_Bool(REGB2)) {
5233 REGB2 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
5234 if (UNTAG_Bool(REGB2)) {
5235 } else {
5236 REGB4 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
5237 if (UNTAG_Bool(REGB4)) {
5238 REGB4 = TAG_Bool(false);
5239 REGB2 = REGB4;
5240 } else {
5241 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[9])(fra.me.REG[9], NIT_NULL);
5242 REGB2 = REGB4;
5243 }
5244 }
5245 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
5246 } else {
5247 REGB4 = TAG_Bool(false);
5248 REGB2 = REGB4;
5249 }
5250 if (UNTAG_Bool(REGB2)) {
5251 REGB2 = TAG_Int(9);
5252 fra.me.REG[10] = NEW_Array_array___Array___with_capacity(REGB2);
5253 /* ./syntax//mmbuilder.nit:905 */
5254 if (!once_value_38) {
5255 fra.me.REG[11] = BOX_NativeString("Redef error: The procedure ");
5256 REGB2 = TAG_Int(27);
5257 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2);
5258 once_value_38 = fra.me.REG[11];
5259 register_static_object(&once_value_38);
5260 } else fra.me.REG[11] = once_value_38;
5261 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5262 fra.me.REG[11] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5263 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
5264 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5265 if (!once_value_39) {
5266 fra.me.REG[11] = BOX_NativeString("::");
5267 REGB2 = TAG_Int(2);
5268 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2);
5269 once_value_39 = fra.me.REG[11];
5270 register_static_object(&once_value_39);
5271 } else fra.me.REG[11] = once_value_39;
5272 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5273 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5274 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5275 if (!once_value_40) {
5276 fra.me.REG[11] = BOX_NativeString(" redefines the function ");
5277 REGB2 = TAG_Int(24);
5278 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2);
5279 once_value_40 = fra.me.REG[11];
5280 register_static_object(&once_value_40);
5281 } else fra.me.REG[11] = once_value_40;
5282 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5283 fra.me.REG[11] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[8])(fra.me.REG[8]);
5284 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
5285 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5286 if (!once_value_41) {
5287 fra.me.REG[11] = BOX_NativeString("::");
5288 REGB2 = TAG_Int(2);
5289 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2);
5290 once_value_41 = fra.me.REG[11];
5291 register_static_object(&once_value_41);
5292 } else fra.me.REG[11] = once_value_41;
5293 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5294 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
5295 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5296 if (!once_value_42) {
5297 fra.me.REG[11] = BOX_NativeString(".");
5298 REGB2 = TAG_Int(1);
5299 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2);
5300 once_value_42 = fra.me.REG[11];
5301 register_static_object(&once_value_42);
5302 } else fra.me.REG[11] = once_value_42;
5303 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5304 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5305 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[10]);
5306 } else {
5307 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5308 /* ./syntax//mmbuilder.nit:906 */
5309 if (UNTAG_Bool(REGB2)) {
5310 } else {
5311 REGB4 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5312 if (UNTAG_Bool(REGB4)) {
5313 REGB4 = TAG_Bool(false);
5314 REGB2 = REGB4;
5315 } else {
5316 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
5317 REGB2 = REGB4;
5318 }
5319 }
5320 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
5321 if (UNTAG_Bool(REGB2)) {
5322 REGB2 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
5323 if (UNTAG_Bool(REGB2)) {
5324 } else {
5325 REGB4 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
5326 if (UNTAG_Bool(REGB4)) {
5327 REGB4 = TAG_Bool(false);
5328 REGB2 = REGB4;
5329 } else {
5330 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[9])(fra.me.REG[9], NIT_NULL);
5331 REGB2 = REGB4;
5332 }
5333 }
5334 } else {
5335 REGB4 = TAG_Bool(false);
5336 REGB2 = REGB4;
5337 }
5338 if (UNTAG_Bool(REGB2)) {
5339 REGB2 = TAG_Int(9);
5340 fra.me.REG[10] = NEW_Array_array___Array___with_capacity(REGB2);
5341 /* ./syntax//mmbuilder.nit:907 */
5342 if (!once_value_43) {
5343 fra.me.REG[11] = BOX_NativeString("Redef error: The function ");
5344 REGB2 = TAG_Int(26);
5345 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2);
5346 once_value_43 = fra.me.REG[11];
5347 register_static_object(&once_value_43);
5348 } else fra.me.REG[11] = once_value_43;
5349 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5350 fra.me.REG[11] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5351 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
5352 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5353 if (!once_value_44) {
5354 fra.me.REG[11] = BOX_NativeString("::");
5355 REGB2 = TAG_Int(2);
5356 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2);
5357 once_value_44 = fra.me.REG[11];
5358 register_static_object(&once_value_44);
5359 } else fra.me.REG[11] = once_value_44;
5360 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5361 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5362 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5363 if (!once_value_45) {
5364 fra.me.REG[11] = BOX_NativeString(" redefines the procedure ");
5365 REGB2 = TAG_Int(25);
5366 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2);
5367 once_value_45 = fra.me.REG[11];
5368 register_static_object(&once_value_45);
5369 } else fra.me.REG[11] = once_value_45;
5370 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5371 fra.me.REG[11] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[8])(fra.me.REG[8]);
5372 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
5373 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5374 if (!once_value_46) {
5375 fra.me.REG[11] = BOX_NativeString("::");
5376 REGB2 = TAG_Int(2);
5377 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2);
5378 once_value_46 = fra.me.REG[11];
5379 register_static_object(&once_value_46);
5380 } else fra.me.REG[11] = once_value_46;
5381 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5382 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
5383 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5384 if (!once_value_47) {
5385 fra.me.REG[11] = BOX_NativeString(".");
5386 REGB2 = TAG_Int(1);
5387 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2);
5388 once_value_47 = fra.me.REG[11];
5389 register_static_object(&once_value_47);
5390 } else fra.me.REG[11] = once_value_47;
5391 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5392 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5393 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[10]);
5394 } else {
5395 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5396 /* ./syntax//mmbuilder.nit:908 */
5397 if (UNTAG_Bool(REGB2)) {
5398 } else {
5399 REGB4 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5400 if (UNTAG_Bool(REGB4)) {
5401 REGB4 = TAG_Bool(false);
5402 REGB2 = REGB4;
5403 } else {
5404 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
5405 REGB2 = REGB4;
5406 }
5407 }
5408 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
5409 if (UNTAG_Bool(REGB2)) {
5410 REGB2 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
5411 if (UNTAG_Bool(REGB2)) {
5412 } else {
5413 REGB4 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
5414 if (UNTAG_Bool(REGB4)) {
5415 REGB4 = TAG_Bool(false);
5416 REGB2 = REGB4;
5417 } else {
5418 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[9])(fra.me.REG[9], NIT_NULL);
5419 REGB2 = REGB4;
5420 }
5421 }
5422 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
5423 } else {
5424 REGB4 = TAG_Bool(false);
5425 REGB2 = REGB4;
5426 }
5427 if (UNTAG_Bool(REGB2)) {
5428 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5429 if (UNTAG_Bool(REGB2)) {
5430 fprintf(stderr, "Reciever is null");
5431 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 908);
5432 nit_exit(1);
5433 }
5434 REGB2 = CALL_static_type___MMType_____l(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[9]);
5435 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
5436 } else {
5437 REGB4 = TAG_Bool(false);
5438 REGB2 = REGB4;
5439 }
5440 if (UNTAG_Bool(REGB2)) {
5441 REGB2 = TAG_Int(13);
5442 fra.me.REG[10] = NEW_Array_array___Array___with_capacity(REGB2);
5443 /* ./syntax//mmbuilder.nit:909 */
5444 if (!once_value_48) {
5445 fra.me.REG[11] = BOX_NativeString("Redef error: Expected ");
5446 REGB2 = TAG_Int(22);
5447 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2);
5448 once_value_48 = fra.me.REG[11];
5449 register_static_object(&once_value_48);
5450 } else fra.me.REG[11] = once_value_48;
5451 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5452 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
5453 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5454 if (!once_value_49) {
5455 fra.me.REG[11] = BOX_NativeString(" (as in ");
5456 REGB2 = TAG_Int(8);
5457 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2);
5458 once_value_49 = fra.me.REG[11];
5459 register_static_object(&once_value_49);
5460 } else fra.me.REG[11] = once_value_49;
5461 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5462 fra.me.REG[11] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[8])(fra.me.REG[8]);
5463 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
5464 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5465 if (!once_value_50) {
5466 fra.me.REG[11] = BOX_NativeString("::");
5467 REGB2 = TAG_Int(2);
5468 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2);
5469 once_value_50 = fra.me.REG[11];
5470 register_static_object(&once_value_50);
5471 } else fra.me.REG[11] = once_value_50;
5472 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5473 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
5474 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5475 if (!once_value_51) {
5476 fra.me.REG[11] = BOX_NativeString("), got ");
5477 REGB2 = TAG_Int(7);
5478 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2);
5479 once_value_51 = fra.me.REG[11];
5480 register_static_object(&once_value_51);
5481 } else fra.me.REG[11] = once_value_51;
5482 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5483 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5484 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5485 if (!once_value_52) {
5486 fra.me.REG[11] = BOX_NativeString(" in ");
5487 REGB2 = TAG_Int(4);
5488 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2);
5489 once_value_52 = fra.me.REG[11];
5490 register_static_object(&once_value_52);
5491 } else fra.me.REG[11] = once_value_52;
5492 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5493 fra.me.REG[11] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5494 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
5495 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5496 if (!once_value_53) {
5497 fra.me.REG[11] = BOX_NativeString("::");
5498 REGB2 = TAG_Int(2);
5499 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2);
5500 once_value_53 = fra.me.REG[11];
5501 register_static_object(&once_value_53);
5502 } else fra.me.REG[11] = once_value_53;
5503 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5504 fra.me.REG[11] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5505 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5506 if (!once_value_54) {
5507 fra.me.REG[11] = BOX_NativeString(".");
5508 REGB2 = TAG_Int(1);
5509 fra.me.REG[11] = NEW_String_string___String___with_native(fra.me.REG[11], REGB2);
5510 once_value_54 = fra.me.REG[11];
5511 register_static_object(&once_value_54);
5512 } else fra.me.REG[11] = once_value_54;
5513 array___Array___add(fra.me.REG[10], fra.me.REG[11]);
5514 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5515 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[10]);
5516 } else {
5517 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5518 /* ./syntax//mmbuilder.nit:910 */
5519 if (UNTAG_Bool(REGB2)) {
5520 fprintf(stderr, "Reciever is null");
5521 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 910);
5522 nit_exit(1);
5523 }
5524 REGB2 = CALL_static_type___MMSignature_____l(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
5525 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
5526 if (UNTAG_Bool(REGB2)) {
5527 fra.me.REG[7] = CALL_syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
5528 REGB2 = CALL_mmloader___ToolContext___error_count(fra.me.REG[7])(fra.me.REG[7]);
5529 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB2));
5530 if (UNTAG_Bool(REGB4)) {
5531 } else {
5532 REGB2 = TAG_Bool((REGB3)==(REGB2));
5533 REGB4 = REGB2;
5534 /* ./syntax//mmbuilder.nit:910 */
5535 }
5536 } else {
5537 REGB2 = TAG_Bool(false);
5538 REGB4 = REGB2;
5539 }
5540 if (UNTAG_Bool(REGB4)) {
5541 REGB4 = TAG_Int(9);
5542 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB4);
5543 /* ./syntax//mmbuilder.nit:912 */
5544 if (!once_value_55) {
5545 fra.me.REG[10] = BOX_NativeString("Redef error: Incompatible redefinition of ");
5546 REGB4 = TAG_Int(42);
5547 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5548 once_value_55 = fra.me.REG[10];
5549 register_static_object(&once_value_55);
5550 } else fra.me.REG[10] = once_value_55;
5551 array___Array___add(fra.me.REG[7], fra.me.REG[10]);
5552 fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[8])(fra.me.REG[8]);
5553 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5554 array___Array___add(fra.me.REG[7], fra.me.REG[10]);
5555 if (!once_value_56) {
5556 fra.me.REG[10] = BOX_NativeString("::");
5557 REGB4 = TAG_Int(2);
5558 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5559 once_value_56 = fra.me.REG[10];
5560 register_static_object(&once_value_56);
5561 } else fra.me.REG[10] = once_value_56;
5562 array___Array___add(fra.me.REG[7], fra.me.REG[10]);
5563 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
5564 array___Array___add(fra.me.REG[7], fra.me.REG[10]);
5565 if (!once_value_57) {
5566 fra.me.REG[10] = BOX_NativeString(" with ");
5567 REGB4 = TAG_Int(6);
5568 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5569 once_value_57 = fra.me.REG[10];
5570 register_static_object(&once_value_57);
5571 } else fra.me.REG[10] = once_value_57;
5572 array___Array___add(fra.me.REG[7], fra.me.REG[10]);
5573 fra.me.REG[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5574 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
5575 array___Array___add(fra.me.REG[7], fra.me.REG[10]);
5576 if (!once_value_58) {
5577 fra.me.REG[10] = BOX_NativeString("::");
5578 REGB4 = TAG_Int(2);
5579 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5580 once_value_58 = fra.me.REG[10];
5581 register_static_object(&once_value_58);
5582 } else fra.me.REG[10] = once_value_58;
5583 array___Array___add(fra.me.REG[7], fra.me.REG[10]);
5584 fra.me.REG[10] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5585 array___Array___add(fra.me.REG[7], fra.me.REG[10]);
5586 if (!once_value_59) {
5587 fra.me.REG[10] = BOX_NativeString("");
5588 REGB4 = TAG_Int(0);
5589 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5590 once_value_59 = fra.me.REG[10];
5591 register_static_object(&once_value_59);
5592 } else fra.me.REG[10] = once_value_59;
5593 array___Array___add(fra.me.REG[7], fra.me.REG[10]);
5594 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
5595 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[7]);
5596 } else {
5597 REGB4 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5598 /* ./syntax//mmbuilder.nit:913 */
5599 if (UNTAG_Bool(REGB4)) {
5600 } else {
5601 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5602 if (UNTAG_Bool(REGB2)) {
5603 REGB2 = TAG_Bool(false);
5604 REGB4 = REGB2;
5605 } else {
5606 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
5607 REGB4 = REGB2;
5608 }
5609 }
5610 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
5611 if (UNTAG_Bool(REGB4)) {
5612 REGB4 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
5613 if (UNTAG_Bool(REGB4)) {
5614 } else {
5615 REGB2 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
5616 if (UNTAG_Bool(REGB2)) {
5617 REGB2 = TAG_Bool(false);
5618 REGB4 = REGB2;
5619 } else {
5620 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[9])(fra.me.REG[9], NIT_NULL);
5621 REGB4 = REGB2;
5622 }
5623 }
5624 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
5625 } else {
5626 REGB2 = TAG_Bool(false);
5627 REGB4 = REGB2;
5628 }
5629 if (UNTAG_Bool(REGB4)) {
5630 REGB4 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[6],fra.me.REG[9]));
5631 if (UNTAG_Bool(REGB4)) {
5632 } else {
5633 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5634 if (UNTAG_Bool(REGB2)) {
5635 REGB2 = TAG_Bool(false);
5636 REGB4 = REGB2;
5637 } else {
5638 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[9]);
5639 REGB4 = REGB2;
5640 }
5641 }
5642 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
5643 } else {
5644 REGB2 = TAG_Bool(false);
5645 REGB4 = REGB2;
5646 }
5647 if (UNTAG_Bool(REGB4)) {
5648 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
5649 } else {
5650 REGB2 = TAG_Bool(false);
5651 REGB4 = REGB2;
5652 }
5653 if (UNTAG_Bool(REGB4)) {
5654 REGB4 = TAG_Int(13);
5655 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB4);
5656 /* ./syntax//mmbuilder.nit:915 */
5657 if (!once_value_60) {
5658 fra.me.REG[10] = BOX_NativeString("Redef warning: Expected ");
5659 REGB4 = TAG_Int(24);
5660 fra.me.REG[10] = NEW_String_string___String___with_native(fra.me.REG[10], REGB4);
5661 once_value_60 = fra.me.REG[10];
5662 register_static_object(&once_value_60);
5663 } else fra.me.REG[10] = once_value_60;
5664 array___Array___add(fra.me.REG[7], fra.me.REG[10]);
5665 fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
5666 array___Array___add(fra.me.REG[7], fra.me.REG[9]);
5667 if (!once_value_61) {
5668 fra.me.REG[9] = BOX_NativeString(" (as in ");
5669 REGB4 = TAG_Int(8);
5670 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB4);
5671 once_value_61 = fra.me.REG[9];
5672 register_static_object(&once_value_61);
5673 } else fra.me.REG[9] = once_value_61;
5674 array___Array___add(fra.me.REG[7], fra.me.REG[9]);
5675 fra.me.REG[9] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[8])(fra.me.REG[8]);
5676 fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
5677 array___Array___add(fra.me.REG[7], fra.me.REG[9]);
5678 if (!once_value_62) {
5679 fra.me.REG[9] = BOX_NativeString("::");
5680 REGB4 = TAG_Int(2);
5681 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB4);
5682 once_value_62 = fra.me.REG[9];
5683 register_static_object(&once_value_62);
5684 } else fra.me.REG[9] = once_value_62;
5685 array___Array___add(fra.me.REG[7], fra.me.REG[9]);
5686 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
5687 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
5688 if (!once_value_63) {
5689 fra.me.REG[8] = BOX_NativeString("), got ");
5690 REGB4 = TAG_Int(7);
5691 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB4);
5692 once_value_63 = fra.me.REG[8];
5693 register_static_object(&once_value_63);
5694 } else fra.me.REG[8] = once_value_63;
5695 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
5696 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5697 array___Array___add(fra.me.REG[7], fra.me.REG[6]);
5698 if (!once_value_64) {
5699 fra.me.REG[6] = BOX_NativeString(" in ");
5700 REGB4 = TAG_Int(4);
5701 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB4);
5702 once_value_64 = fra.me.REG[6];
5703 register_static_object(&once_value_64);
5704 } else fra.me.REG[6] = once_value_64;
5705 array___Array___add(fra.me.REG[7], fra.me.REG[6]);
5706 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5707 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5708 array___Array___add(fra.me.REG[7], fra.me.REG[6]);
5709 if (!once_value_65) {
5710 fra.me.REG[6] = BOX_NativeString("::");
5711 REGB4 = TAG_Int(2);
5712 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB4);
5713 once_value_65 = fra.me.REG[6];
5714 register_static_object(&once_value_65);
5715 } else fra.me.REG[6] = once_value_65;
5716 array___Array___add(fra.me.REG[7], fra.me.REG[6]);
5717 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5718 array___Array___add(fra.me.REG[7], fra.me.REG[6]);
5719 if (!once_value_66) {
5720 fra.me.REG[6] = BOX_NativeString(".");
5721 REGB4 = TAG_Int(1);
5722 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB4);
5723 once_value_66 = fra.me.REG[6];
5724 register_static_object(&once_value_66);
5725 } else fra.me.REG[6] = once_value_66;
5726 array___Array___add(fra.me.REG[7], fra.me.REG[6]);
5727 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
5728 CALL_syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[7]);
5729 }
5730 }
5731 }
5732 }
5733 }
5734 } else {
5735 /* ./syntax//mmbuilder.nit:857 */
5736 goto label67;
5737 }
5738 CALL_abstract_collection___Iterator___next(fra.me.REG[5])(fra.me.REG[5]);
5739 }
5740 label67: while(0);
5741 REGB4 = TAG_Int(1);
5742 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB4));
5743 /* ./syntax//mmbuilder.nit:919 */
5744 if (UNTAG_Bool(REGB2)) {
5745 } else {
5746 REGB4 = TAG_Bool((REGB1)==(REGB4));
5747 REGB2 = REGB4;
5748 /* ./syntax//mmbuilder.nit:919 */
5749 }
5750 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
5751 if (UNTAG_Bool(REGB2)) {
5752 REGB2 = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
5753 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
5754 if (UNTAG_Bool(REGB4)) {
5755 } else {
5756 REGB1 = TAG_Bool((REGB2)==(REGB1));
5757 REGB4 = REGB1;
5758 /* ./syntax//mmbuilder.nit:919 */
5759 }
5760 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
5761 } else {
5762 REGB1 = TAG_Bool(false);
5763 REGB4 = REGB1;
5764 }
5765 if (UNTAG_Bool(REGB4)) {
5766 REGB4 = TAG_Int(5);
5767 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB4);
5768 /* ./syntax//mmbuilder.nit:920 */
5769 if (!once_value_68) {
5770 fra.me.REG[4] = BOX_NativeString("Redef error: ");
5771 REGB4 = TAG_Int(13);
5772 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB4);
5773 once_value_68 = fra.me.REG[4];
5774 register_static_object(&once_value_68);
5775 } else fra.me.REG[4] = once_value_68;
5776 array___Array___add(fra.me.REG[5], fra.me.REG[4]);
5777 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5778 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
5779 array___Array___add(fra.me.REG[5], fra.me.REG[4]);
5780 if (!once_value_69) {
5781 fra.me.REG[4] = BOX_NativeString("::");
5782 REGB4 = TAG_Int(2);
5783 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB4);
5784 once_value_69 = fra.me.REG[4];
5785 register_static_object(&once_value_69);
5786 } else fra.me.REG[4] = once_value_69;
5787 array___Array___add(fra.me.REG[5], fra.me.REG[4]);
5788 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5789 array___Array___add(fra.me.REG[5], fra.me.REG[2]);
5790 if (!once_value_70) {
5791 fra.me.REG[2] = BOX_NativeString(" redefinition cannot change visibility.");
5792 REGB4 = TAG_Int(39);
5793 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB4);
5794 once_value_70 = fra.me.REG[2];
5795 register_static_object(&once_value_70);
5796 } else fra.me.REG[2] = once_value_70;
5797 array___Array___add(fra.me.REG[5], fra.me.REG[2]);
5798 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5799 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5800 }
5801 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___module(fra.me.REG[1])(fra.me.REG[1]);
5802 REGB4 = TAG_Bool(true);
5803 /* ./syntax//mmbuilder.nit:922 */
5804 CALL_syntax_base___MMGlobalProperty___check_visibility(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[0], fra.me.REG[5], REGB4);
5805 label4: while(0);
5806 stack_frame_head = fra.me.prev;
5807 return;
5808 }
5809 void mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
5810 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5811 val_t tmp;
5812 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5813 fra.me.file = LOCATE_mmbuilder;
5814 fra.me.line = 986;
5815 fra.me.meth = LOCATE_mmbuilder___AAttrPropdef___accept_abs_syntax_visitor;
5816 fra.me.has_broke = 0;
5817 fra.me.REG_size = 4;
5818 fra.me.REG[0] = NIT_NULL;
5819 fra.me.REG[1] = NIT_NULL;
5820 fra.me.REG[2] = NIT_NULL;
5821 fra.me.REG[3] = NIT_NULL;
5822 fra.me.REG[0] = p0;
5823 fra.me.REG[1] = p1;
5824 fra.me.REG[2] = fra.me.REG[0];
5825 fra.me.REG[3] = fra.me.REG[1];
5826 fra.me.REG[2] = ATTR_mmbuilder___AAttrPropdef____prop(fra.me.REG[2]);
5827 /* ./syntax//mmbuilder.nit:988 */
5828 CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
5829 /* ./syntax//mmbuilder.nit:989 */
5830 CALL_SUPER_mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5831 /* ./syntax//mmbuilder.nit:990 */
5832 CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5833 stack_frame_head = fra.me.prev;
5834 return;
5835 }
5836 val_t mmbuilder___AAttrPropdef___prop(val_t p0){
5837 struct {struct stack_frame_t me;} fra;
5838 val_t REGB0;
5839 val_t tmp;
5840 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5841 fra.me.file = LOCATE_mmbuilder;
5842 fra.me.line = 930;
5843 fra.me.meth = LOCATE_mmbuilder___AAttrPropdef___prop;
5844 fra.me.has_broke = 0;
5845 fra.me.REG_size = 1;
5846 fra.me.REG[0] = NIT_NULL;
5847 fra.me.REG[0] = p0;
5848 fra.me.REG[0] = ATTR_mmbuilder___AAttrPropdef____prop(fra.me.REG[0]);
5849 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
5850 /* ./syntax//mmbuilder.nit:930 */
5851 if (UNTAG_Bool(REGB0)) {
5852 } else {
5853 fprintf(stderr, "Cast failed");
5854 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 930);
5855 nit_exit(1);
5856 }
5857 goto label1;
5858 label1: while(0);
5859 stack_frame_head = fra.me.prev;
5860 return fra.me.REG[0];
5861 }
5862 val_t mmbuilder___AAttrPropdef___readmethod(val_t p0){
5863 struct {struct stack_frame_t me;} fra;
5864 val_t tmp;
5865 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5866 fra.me.file = LOCATE_mmbuilder;
5867 fra.me.line = 927;
5868 fra.me.meth = LOCATE_mmbuilder___AAttrPropdef___readmethod;
5869 fra.me.has_broke = 0;
5870 fra.me.REG_size = 1;
5871 fra.me.REG[0] = NIT_NULL;
5872 fra.me.REG[0] = p0;
5873 fra.me.REG[0] = ATTR_mmbuilder___AAttrPropdef____readmethod(fra.me.REG[0]);
5874 /* ./syntax//mmbuilder.nit:927 */
5875 stack_frame_head = fra.me.prev;
5876 return fra.me.REG[0];
5877 }
5878 val_t mmbuilder___AAttrPropdef___writemethod(val_t p0){
5879 struct {struct stack_frame_t me;} fra;
5880 val_t tmp;
5881 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5882 fra.me.file = LOCATE_mmbuilder;
5883 fra.me.line = 928;
5884 fra.me.meth = LOCATE_mmbuilder___AAttrPropdef___writemethod;
5885 fra.me.has_broke = 0;
5886 fra.me.REG_size = 1;
5887 fra.me.REG[0] = NIT_NULL;
5888 fra.me.REG[0] = p0;
5889 fra.me.REG[0] = ATTR_mmbuilder___AAttrPropdef____writemethod(fra.me.REG[0]);
5890 /* ./syntax//mmbuilder.nit:928 */
5891 stack_frame_head = fra.me.prev;
5892 return fra.me.REG[0];
5893 }
5894 void mmbuilder___AAttrPropdef___accept_property_builder(val_t p0, val_t p1){
5895 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
5896 val_t REGB0;
5897 val_t REGB1;
5898 val_t tmp;
5899 static val_t once_value_1; /* Once value */
5900 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5901 fra.me.file = LOCATE_mmbuilder;
5902 fra.me.line = 932;
5903 fra.me.meth = LOCATE_mmbuilder___AAttrPropdef___accept_property_builder;
5904 fra.me.has_broke = 0;
5905 fra.me.REG_size = 6;
5906 fra.me.REG[0] = NIT_NULL;
5907 fra.me.REG[1] = NIT_NULL;
5908 fra.me.REG[2] = NIT_NULL;
5909 fra.me.REG[3] = NIT_NULL;
5910 fra.me.REG[4] = NIT_NULL;
5911 fra.me.REG[5] = NIT_NULL;
5912 fra.me.REG[0] = p0;
5913 fra.me.REG[1] = p1;
5914 fra.me.REG[2] = fra.me.REG[0];
5915 fra.me.REG[3] = fra.me.REG[1];
5916 /* ./syntax//mmbuilder.nit:934 */
5917 CALL_SUPER_mmbuilder___AAttrPropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5918 fra.me.REG[1] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
5919 fra.me.REG[1] = CALL_syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
5920 fra.me.REG[0] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5921 fra.me.REG[4] = NEW_MMSrcAttribute_syntax_base___MMSrcAttribute___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
5922 /* ./syntax//mmbuilder.nit:938 */
5923 ATTR_mmbuilder___AAttrPropdef____prop(fra.me.REG[2]) = fra.me.REG[4];
5924 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5925 /* ./syntax//mmbuilder.nit:939 */
5926 CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[4]);
5927 fra.me.REG[4] = CALL_parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
5928 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5929 /* ./syntax//mmbuilder.nit:941 */
5930 if (UNTAG_Bool(REGB0)) {
5931 } else {
5932 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5933 if (UNTAG_Bool(REGB1)) {
5934 REGB1 = TAG_Bool(false);
5935 REGB0 = REGB1;
5936 } else {
5937 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5938 REGB0 = REGB1;
5939 }
5940 }
5941 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5942 if (UNTAG_Bool(REGB0)) {
5943 fra.me.REG[4] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
5944 fra.me.REG[4] = CALL_lexer___Token___text(fra.me.REG[4])(fra.me.REG[4]);
5945 REGB0 = TAG_Int(1);
5946 fra.me.REG[4] = CALL_string___AbstractString___substring_from(fra.me.REG[4])(fra.me.REG[4], REGB0);
5947 fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
5948 fra.me.REG[1] = fra.me.REG[4];
5949 fra.me.REG[4] = NEW_MMReadImplementationMethod_syntax_base___MMReadImplementationMethod___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
5950 /* ./syntax//mmbuilder.nit:944 */
5951 ATTR_mmbuilder___AAttrPropdef____readmethod(fra.me.REG[2]) = fra.me.REG[4];
5952 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5953 /* ./syntax//mmbuilder.nit:945 */
5954 CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[4]);
5955 }
5956 fra.me.REG[4] = CALL_parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
5957 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5958 /* ./syntax//mmbuilder.nit:947 */
5959 if (UNTAG_Bool(REGB0)) {
5960 } else {
5961 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5962 if (UNTAG_Bool(REGB1)) {
5963 REGB1 = TAG_Bool(false);
5964 REGB0 = REGB1;
5965 } else {
5966 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5967 REGB0 = REGB1;
5968 }
5969 }
5970 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5971 if (UNTAG_Bool(REGB0)) {
5972 fra.me.REG[4] = CALL_parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
5973 fra.me.REG[4] = CALL_lexer___Token___text(fra.me.REG[4])(fra.me.REG[4]);
5974 REGB0 = TAG_Int(1);
5975 fra.me.REG[4] = CALL_string___AbstractString___substring_from(fra.me.REG[4])(fra.me.REG[4], REGB0);
5976 /* ./syntax//mmbuilder.nit:948 */
5977 if (!once_value_1) {
5978 fra.me.REG[5] = BOX_NativeString("=");
5979 REGB0 = TAG_Int(1);
5980 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
5981 once_value_1 = fra.me.REG[5];
5982 register_static_object(&once_value_1);
5983 } else fra.me.REG[5] = once_value_1;
5984 fra.me.REG[5] = CALL_string___String_____plus(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5985 fra.me.REG[5] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
5986 fra.me.REG[1] = fra.me.REG[5];
5987 fra.me.REG[0] = NEW_MMWriteImplementationMethod_syntax_base___MMWriteImplementationMethod___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
5988 /* ./syntax//mmbuilder.nit:950 */
5989 ATTR_mmbuilder___AAttrPropdef____writemethod(fra.me.REG[2]) = fra.me.REG[0];
5990 fra.me.REG[2] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5991 /* ./syntax//mmbuilder.nit:951 */
5992 CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0]);
5993 }
5994 stack_frame_head = fra.me.prev;
5995 return;
5996 }
5997 void mmbuilder___AAttrPropdef___accept_property_verifier(val_t p0, val_t p1){
5998 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
5999 val_t REGB0;
6000 val_t REGB1;
6001 val_t REGB2;
6002 val_t tmp;
6003 static val_t once_value_2; /* Once value */
6004 static val_t once_value_3; /* Once value */
6005 static val_t once_value_4; /* Once value */
6006 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6007 fra.me.file = LOCATE_mmbuilder;
6008 fra.me.line = 955;
6009 fra.me.meth = LOCATE_mmbuilder___AAttrPropdef___accept_property_verifier;
6010 fra.me.has_broke = 0;
6011 fra.me.REG_size = 6;
6012 fra.me.REG[0] = NIT_NULL;
6013 fra.me.REG[1] = NIT_NULL;
6014 fra.me.REG[2] = NIT_NULL;
6015 fra.me.REG[3] = NIT_NULL;
6016 fra.me.REG[4] = NIT_NULL;
6017 fra.me.REG[5] = NIT_NULL;
6018 fra.me.REG[0] = p0;
6019 fra.me.REG[1] = p1;
6020 fra.me.REG[2] = fra.me.REG[0];
6021 fra.me.REG[3] = fra.me.REG[1];
6022 /* ./syntax//mmbuilder.nit:957 */
6023 CALL_SUPER_mmbuilder___AAttrPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
6024 fra.me.REG[1] = CALL_parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
6025 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6026 /* ./syntax//mmbuilder.nit:959 */
6027 if (UNTAG_Bool(REGB0)) {
6028 } else {
6029 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6030 if (UNTAG_Bool(REGB1)) {
6031 REGB1 = TAG_Bool(false);
6032 REGB0 = REGB1;
6033 } else {
6034 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
6035 REGB0 = REGB1;
6036 }
6037 }
6038 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6039 if (UNTAG_Bool(REGB0)) {
6040 fra.me.REG[1] = CALL_parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
6041 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6042 /* ./syntax//mmbuilder.nit:960 */
6043 if (UNTAG_Bool(REGB0)) {
6044 fprintf(stderr, "Reciever is null");
6045 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 960);
6046 nit_exit(1);
6047 }
6048 fra.me.REG[1] = CALL_syntax_base___AType___get_stype(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6049 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6050 /* ./syntax//mmbuilder.nit:961 */
6051 if (UNTAG_Bool(REGB0)) {
6052 } else {
6053 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6054 if (UNTAG_Bool(REGB1)) {
6055 REGB1 = TAG_Bool(false);
6056 REGB0 = REGB1;
6057 } else {
6058 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
6059 REGB0 = REGB1;
6060 }
6061 }
6062 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6063 if (UNTAG_Bool(REGB0)) {
6064 } else {
6065 goto label1;
6066 }
6067 } else {
6068 REGB0 = TAG_Int(5);
6069 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0);
6070 /* ./syntax//mmbuilder.nit:963 */
6071 if (!once_value_2) {
6072 fra.me.REG[4] = BOX_NativeString("Not yet implemented: Attribute definition ");
6073 REGB0 = TAG_Int(42);
6074 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
6075 once_value_2 = fra.me.REG[4];
6076 register_static_object(&once_value_2);
6077 } else fra.me.REG[4] = once_value_2;
6078 array___Array___add(fra.me.REG[0], fra.me.REG[4]);
6079 fra.me.REG[4] = ATTR_mmbuilder___AAttrPropdef____prop(fra.me.REG[2]);
6080 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6081 if (UNTAG_Bool(REGB0)) {
6082 fprintf(stderr, "Reciever is null");
6083 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 963);
6084 nit_exit(1);
6085 }
6086 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[4])(fra.me.REG[4]);
6087 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
6088 array___Array___add(fra.me.REG[0], fra.me.REG[4]);
6089 if (!once_value_3) {
6090 fra.me.REG[4] = BOX_NativeString("::");
6091 REGB0 = TAG_Int(2);
6092 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
6093 once_value_3 = fra.me.REG[4];
6094 register_static_object(&once_value_3);
6095 } else fra.me.REG[4] = once_value_3;
6096 array___Array___add(fra.me.REG[0], fra.me.REG[4]);
6097 fra.me.REG[4] = ATTR_mmbuilder___AAttrPropdef____prop(fra.me.REG[2]);
6098 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
6099 array___Array___add(fra.me.REG[0], fra.me.REG[4]);
6100 if (!once_value_4) {
6101 fra.me.REG[4] = BOX_NativeString(" requires an explicit type.");
6102 REGB0 = TAG_Int(27);
6103 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
6104 once_value_4 = fra.me.REG[4];
6105 register_static_object(&once_value_4);
6106 } else fra.me.REG[4] = once_value_4;
6107 array___Array___add(fra.me.REG[0], fra.me.REG[4]);
6108 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
6109 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
6110 /* ./syntax//mmbuilder.nit:964 */
6111 goto label1;
6112 }
6113 fra.me.REG[0] = CALL_syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
6114 fra.me.REG[4] = NEW_Array_array___Array___init();
6115 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
6116 fra.me.REG[5] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]);
6117 fra.me.REG[5] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[4], fra.me.REG[1], fra.me.REG[5]);
6118 /* ./syntax//mmbuilder.nit:969 */
6119 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
6120 fra.me.REG[4] = CALL_parser_nodes___AAttrPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
6121 REGB0 = CALL_mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
6122 fra.me.REG[4] = CALL_parser_nodes___AAttrPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
6123 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6124 /* ./syntax//mmbuilder.nit:971 */
6125 if (UNTAG_Bool(REGB1)) {
6126 } else {
6127 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6128 if (UNTAG_Bool(REGB2)) {
6129 REGB2 = TAG_Bool(false);
6130 REGB1 = REGB2;
6131 } else {
6132 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
6133 REGB1 = REGB2;
6134 }
6135 }
6136 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
6137 CALL_mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0], REGB1, REGB0);
6138 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
6139 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6140 /* ./syntax//mmbuilder.nit:972 */
6141 if (UNTAG_Bool(REGB1)) {
6142 } else {
6143 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6144 if (UNTAG_Bool(REGB2)) {
6145 REGB2 = TAG_Bool(false);
6146 REGB1 = REGB2;
6147 } else {
6148 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
6149 REGB1 = REGB2;
6150 }
6151 }
6152 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
6153 if (UNTAG_Bool(REGB1)) {
6154 fra.me.REG[0] = ATTR_mmbuilder___AAttrPropdef____readmethod(fra.me.REG[2]);
6155 REGB1 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
6156 /* ./syntax//mmbuilder.nit:973 */
6157 if (UNTAG_Bool(REGB1)) {
6158 } else {
6159 fprintf(stderr, "Cast failed");
6160 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 973);
6161 nit_exit(1);
6162 }
6163 /* ./syntax//mmbuilder.nit:974 */
6164 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
6165 fra.me.REG[5] = CALL_parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
6166 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6167 /* ./syntax//mmbuilder.nit:975 */
6168 if (UNTAG_Bool(REGB1)) {
6169 fprintf(stderr, "Reciever is null");
6170 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 975);
6171 nit_exit(1);
6172 }
6173 fra.me.REG[5] = CALL_parser_nodes___AAble___n_kwredef(fra.me.REG[5])(fra.me.REG[5]);
6174 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6175 if (UNTAG_Bool(REGB1)) {
6176 } else {
6177 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6178 if (UNTAG_Bool(REGB2)) {
6179 REGB2 = TAG_Bool(false);
6180 REGB1 = REGB2;
6181 } else {
6182 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
6183 REGB1 = REGB2;
6184 }
6185 }
6186 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
6187 CALL_mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0], REGB1, REGB0);
6188 fra.me.REG[5] = CALL_parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
6189 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6190 /* ./syntax//mmbuilder.nit:976 */
6191 if (UNTAG_Bool(REGB1)) {
6192 fprintf(stderr, "Reciever is null");
6193 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 976);
6194 nit_exit(1);
6195 }
6196 CALL_mmbuilder___AType___check_visibility(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[0]);
6197 }
6198 fra.me.REG[0] = CALL_parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
6199 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6200 /* ./syntax//mmbuilder.nit:978 */
6201 if (UNTAG_Bool(REGB1)) {
6202 } else {
6203 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6204 if (UNTAG_Bool(REGB2)) {
6205 REGB2 = TAG_Bool(false);
6206 REGB1 = REGB2;
6207 } else {
6208 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
6209 REGB1 = REGB2;
6210 }
6211 }
6212 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
6213 if (UNTAG_Bool(REGB1)) {
6214 fra.me.REG[0] = ATTR_mmbuilder___AAttrPropdef____writemethod(fra.me.REG[2]);
6215 REGB1 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
6216 /* ./syntax//mmbuilder.nit:979 */
6217 if (UNTAG_Bool(REGB1)) {
6218 } else {
6219 fprintf(stderr, "Cast failed");
6220 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 979);
6221 nit_exit(1);
6222 }
6223 REGB1 = TAG_Int(0);
6224 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB1);
6225 /* ./syntax//mmbuilder.nit:980 */
6226 array___Array___add(fra.me.REG[5], fra.me.REG[1]);
6227 fra.me.REG[5] = NEW_Array_array___Array___with_items(fra.me.REG[5]);
6228 fra.me.REG[1] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
6229 fra.me.REG[1] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
6230 fra.me.REG[1] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[5], NIT_NULL, fra.me.REG[1]);
6231 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
6232 fra.me.REG[1] = CALL_parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
6233 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6234 /* ./syntax//mmbuilder.nit:981 */
6235 if (UNTAG_Bool(REGB1)) {
6236 fprintf(stderr, "Reciever is null");
6237 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 981);
6238 nit_exit(1);
6239 }
6240 fra.me.REG[1] = CALL_parser_nodes___AAble___n_kwredef(fra.me.REG[1])(fra.me.REG[1]);
6241 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6242 if (UNTAG_Bool(REGB1)) {
6243 } else {
6244 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6245 if (UNTAG_Bool(REGB2)) {
6246 REGB2 = TAG_Bool(false);
6247 REGB1 = REGB2;
6248 } else {
6249 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
6250 REGB1 = REGB2;
6251 }
6252 }
6253 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
6254 CALL_mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0], REGB1, REGB0);
6255 fra.me.REG[2] = CALL_parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
6256 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6257 /* ./syntax//mmbuilder.nit:982 */
6258 if (UNTAG_Bool(REGB0)) {
6259 fprintf(stderr, "Reciever is null");
6260 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 982);
6261 nit_exit(1);
6262 }
6263 CALL_mmbuilder___AType___check_visibility(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0]);
6264 }
6265 label1: while(0);
6266 stack_frame_head = fra.me.prev;
6267 return;
6268 }
6269 void mmbuilder___AMethPropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
6270 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6271 val_t tmp;
6272 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6273 fra.me.file = LOCATE_mmbuilder;
6274 fra.me.line = 1047;
6275 fra.me.meth = LOCATE_mmbuilder___AMethPropdef___accept_abs_syntax_visitor;
6276 fra.me.has_broke = 0;
6277 fra.me.REG_size = 4;
6278 fra.me.REG[0] = NIT_NULL;
6279 fra.me.REG[1] = NIT_NULL;
6280 fra.me.REG[2] = NIT_NULL;
6281 fra.me.REG[3] = NIT_NULL;
6282 fra.me.REG[0] = p0;
6283 fra.me.REG[1] = p1;
6284 fra.me.REG[2] = fra.me.REG[0];
6285 fra.me.REG[3] = fra.me.REG[1];
6286 fra.me.REG[2] = ATTR_mmbuilder___AMethPropdef____method(fra.me.REG[2]);
6287 /* ./syntax//mmbuilder.nit:1049 */
6288 CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
6289 /* ./syntax//mmbuilder.nit:1050 */
6290 CALL_SUPER_mmbuilder___AMethPropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
6291 /* ./syntax//mmbuilder.nit:1051 */
6292 CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6293 stack_frame_head = fra.me.prev;
6294 return;
6295 }
6296 val_t mmbuilder___AMethPropdef___method(val_t p0){
6297 struct {struct stack_frame_t me;} fra;
6298 val_t REGB0;
6299 val_t tmp;
6300 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6301 fra.me.file = LOCATE_mmbuilder;
6302 fra.me.line = 999;
6303 fra.me.meth = LOCATE_mmbuilder___AMethPropdef___method;
6304 fra.me.has_broke = 0;
6305 fra.me.REG_size = 1;
6306 fra.me.REG[0] = NIT_NULL;
6307 fra.me.REG[0] = p0;
6308 fra.me.REG[0] = ATTR_mmbuilder___AMethPropdef____method(fra.me.REG[0]);
6309 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
6310 /* ./syntax//mmbuilder.nit:999 */
6311 if (UNTAG_Bool(REGB0)) {
6312 } else {
6313 fprintf(stderr, "Cast failed");
6314 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 999);
6315 nit_exit(1);
6316 }
6317 goto label1;
6318 label1: while(0);
6319 stack_frame_head = fra.me.prev;
6320 return fra.me.REG[0];
6321 }
6322 void mmbuilder___AMethPropdef___accept_property_builder(val_t p0, val_t p1){
6323 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
6324 val_t REGB0;
6325 val_t REGB1;
6326 val_t REGB2;
6327 val_t tmp;
6328 static val_t once_value_1; /* Once value */
6329 static val_t once_value_2; /* Once value */
6330 static val_t once_value_3; /* Once value */
6331 static val_t once_value_4; /* Once value */
6332 static val_t once_value_5; /* Once value */
6333 static val_t once_value_6; /* Once value */
6334 static val_t once_value_7; /* Once value */
6335 static val_t once_value_8; /* Once value */
6336 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6337 fra.me.file = LOCATE_mmbuilder;
6338 fra.me.line = 1001;
6339 fra.me.meth = LOCATE_mmbuilder___AMethPropdef___accept_property_builder;
6340 fra.me.has_broke = 0;
6341 fra.me.REG_size = 5;
6342 fra.me.REG[0] = NIT_NULL;
6343 fra.me.REG[1] = NIT_NULL;
6344 fra.me.REG[2] = NIT_NULL;
6345 fra.me.REG[3] = NIT_NULL;
6346 fra.me.REG[4] = NIT_NULL;
6347 fra.me.REG[0] = p0;
6348 fra.me.REG[1] = p1;
6349 fra.me.REG[2] = fra.me.REG[0];
6350 fra.me.REG[3] = fra.me.REG[1];
6351 /* ./syntax//mmbuilder.nit:1003 */
6352 CALL_SUPER_mmbuilder___AMethPropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
6353 fra.me.REG[1] = CALL_parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
6354 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6355 /* ./syntax//mmbuilder.nit:1005 */
6356 if (UNTAG_Bool(REGB0)) {
6357 } else {
6358 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6359 if (UNTAG_Bool(REGB1)) {
6360 REGB1 = TAG_Bool(false);
6361 REGB0 = REGB1;
6362 } else {
6363 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
6364 REGB0 = REGB1;
6365 }
6366 }
6367 if (UNTAG_Bool(REGB0)) {
6368 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
6369 /* ./syntax//mmbuilder.nit:1006 */
6370 if (UNTAG_Bool(REGB0)) {
6371 /* ./syntax//mmbuilder.nit:1007 */
6372 if (!once_value_1) {
6373 if (!once_value_2) {
6374 fra.me.REG[1] = BOX_NativeString("init");
6375 REGB0 = TAG_Int(4);
6376 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
6377 once_value_2 = fra.me.REG[1];
6378 register_static_object(&once_value_2);
6379 } else fra.me.REG[1] = once_value_2;
6380 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
6381 once_value_1 = fra.me.REG[1];
6382 register_static_object(&once_value_1);
6383 } else fra.me.REG[1] = once_value_1;
6384 } else {
6385 /* ./syntax//mmbuilder.nit:1009 */
6386 if (!once_value_3) {
6387 if (!once_value_4) {
6388 fra.me.REG[0] = BOX_NativeString("main");
6389 REGB0 = TAG_Int(4);
6390 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
6391 once_value_4 = fra.me.REG[0];
6392 register_static_object(&once_value_4);
6393 } else fra.me.REG[0] = once_value_4;
6394 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
6395 once_value_3 = fra.me.REG[0];
6396 register_static_object(&once_value_3);
6397 } else fra.me.REG[0] = once_value_3;
6398 fra.me.REG[1] = fra.me.REG[0];
6399 }
6400 } else {
6401 fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
6402 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6403 /* ./syntax//mmbuilder.nit:1012 */
6404 if (UNTAG_Bool(REGB0)) {
6405 fprintf(stderr, "Reciever is null");
6406 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1012);
6407 nit_exit(1);
6408 }
6409 fra.me.REG[0] = CALL_mmbuilder___AMethid___name(fra.me.REG[0])(fra.me.REG[0]);
6410 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
6411 if (UNTAG_Bool(REGB0)) {
6412 } else {
6413 fprintf(stderr, "Cast failed");
6414 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1012);
6415 nit_exit(1);
6416 }
6417 fra.me.REG[1] = fra.me.REG[0];
6418 fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
6419 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6420 /* ./syntax//mmbuilder.nit:1014 */
6421 if (UNTAG_Bool(REGB0)) {
6422 fprintf(stderr, "Reciever is null");
6423 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1014);
6424 nit_exit(1);
6425 }
6426 fra.me.REG[0] = CALL_mmbuilder___AMethid___name(fra.me.REG[0])(fra.me.REG[0]);
6427 if (!once_value_5) {
6428 if (!once_value_6) {
6429 fra.me.REG[4] = BOX_NativeString("-");
6430 REGB0 = TAG_Int(1);
6431 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
6432 once_value_6 = fra.me.REG[4];
6433 register_static_object(&once_value_6);
6434 } else fra.me.REG[4] = once_value_6;
6435 fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
6436 once_value_5 = fra.me.REG[4];
6437 register_static_object(&once_value_5);
6438 } else fra.me.REG[4] = once_value_5;
6439 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[4],fra.me.REG[0]));
6440 if (UNTAG_Bool(REGB0)) {
6441 } else {
6442 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6443 if (UNTAG_Bool(REGB1)) {
6444 REGB1 = TAG_Bool(false);
6445 REGB0 = REGB1;
6446 } else {
6447 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
6448 REGB0 = REGB1;
6449 }
6450 }
6451 if (UNTAG_Bool(REGB0)) {
6452 fra.me.REG[4] = CALL_parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
6453 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6454 /* ./syntax//mmbuilder.nit:1016 */
6455 if (UNTAG_Bool(REGB0)) {
6456 } else {
6457 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6458 if (UNTAG_Bool(REGB1)) {
6459 REGB1 = TAG_Bool(false);
6460 REGB0 = REGB1;
6461 } else {
6462 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
6463 REGB0 = REGB1;
6464 }
6465 }
6466 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6467 if (UNTAG_Bool(REGB0)) {
6468 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6469 if (UNTAG_Bool(REGB0)) {
6470 fprintf(stderr, "Reciever is null");
6471 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1016);
6472 nit_exit(1);
6473 }
6474 fra.me.REG[4] = CALL_parser_nodes___ASignature___n_params(fra.me.REG[4])(fra.me.REG[4]);
6475 REGB0 = CALL_abstract_collection___Collection___length(fra.me.REG[4])(fra.me.REG[4]);
6476 REGB1 = TAG_Int(0);
6477 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
6478 if (UNTAG_Bool(REGB2)) {
6479 } else {
6480 REGB1 = TAG_Bool((REGB0)==(REGB1));
6481 REGB2 = REGB1;
6482 /* ./syntax//mmbuilder.nit:1016 */
6483 }
6484 } else {
6485 REGB1 = TAG_Bool(false);
6486 REGB2 = REGB1;
6487 }
6488 if (UNTAG_Bool(REGB2)) {
6489 /* ./syntax//mmbuilder.nit:1017 */
6490 if (!once_value_7) {
6491 if (!once_value_8) {
6492 fra.me.REG[4] = BOX_NativeString("unary -");
6493 REGB2 = TAG_Int(7);
6494 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB2);
6495 once_value_8 = fra.me.REG[4];
6496 register_static_object(&once_value_8);
6497 } else fra.me.REG[4] = once_value_8;
6498 fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
6499 once_value_7 = fra.me.REG[4];
6500 register_static_object(&once_value_7);
6501 } else fra.me.REG[4] = once_value_7;
6502 fra.me.REG[1] = fra.me.REG[4];
6503 }
6504 }
6505 }
6506 /* ./syntax//mmbuilder.nit:1021 */
6507 ATTR_mmbuilder___AMethPropdef____name(fra.me.REG[2]) = fra.me.REG[1];
6508 fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
6509 fra.me.REG[4] = NEW_MMMethSrcMethod_syntax_base___MMMethSrcMethod___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
6510 /* ./syntax//mmbuilder.nit:1023 */
6511 ATTR_mmbuilder___AMethPropdef____method(fra.me.REG[2]) = fra.me.REG[4];
6512 fra.me.REG[2] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
6513 /* ./syntax//mmbuilder.nit:1024 */
6514 CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
6515 stack_frame_head = fra.me.prev;
6516 return;
6517 }
6518 void mmbuilder___AMethPropdef___accept_property_verifier(val_t p0, val_t p1){
6519 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
6520 val_t REGB0;
6521 val_t REGB1;
6522 val_t REGB2;
6523 val_t tmp;
6524 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6525 fra.me.file = LOCATE_mmbuilder;
6526 fra.me.line = 1027;
6527 fra.me.meth = LOCATE_mmbuilder___AMethPropdef___accept_property_verifier;
6528 fra.me.has_broke = 0;
6529 fra.me.REG_size = 5;
6530 fra.me.REG[0] = NIT_NULL;
6531 fra.me.REG[1] = NIT_NULL;
6532 fra.me.REG[2] = NIT_NULL;
6533 fra.me.REG[3] = NIT_NULL;
6534 fra.me.REG[4] = NIT_NULL;
6535 fra.me.REG[0] = p0;
6536 fra.me.REG[1] = p1;
6537 fra.me.REG[2] = fra.me.REG[0];
6538 fra.me.REG[3] = fra.me.REG[1];
6539 fra.me.REG[4] = NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init();
6540 /* ./syntax//mmbuilder.nit:1029 */
6541 CALL_mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
6542 /* ./syntax//mmbuilder.nit:1030 */
6543 CALL_SUPER_mmbuilder___AMethPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
6544 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
6545 REGB0 = CALL_mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
6546 /* ./syntax//mmbuilder.nit:1032 */
6547 if (UNTAG_Bool(REGB0)) {
6548 goto label1;
6549 }
6550 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
6551 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
6552 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6553 /* ./syntax//mmbuilder.nit:1034 */
6554 if (UNTAG_Bool(REGB0)) {
6555 } else {
6556 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6557 if (UNTAG_Bool(REGB1)) {
6558 REGB1 = TAG_Bool(false);
6559 REGB0 = REGB1;
6560 } else {
6561 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
6562 REGB0 = REGB1;
6563 }
6564 }
6565 if (UNTAG_Bool(REGB0)) {
6566 } else {
6567 fra.me.REG[1] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
6568 fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
6569 fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___signature(fra.me.REG[0])(fra.me.REG[0]);
6570 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
6571 /* ./syntax//mmbuilder.nit:1037 */
6572 if (UNTAG_Bool(REGB0)) {
6573 } else {
6574 fprintf(stderr, "Cast failed");
6575 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1037);
6576 nit_exit(1);
6577 }
6578 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
6579 }
6580 REGB0 = TAG_Int(1);
6581 fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
6582 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6583 /* ./syntax//mmbuilder.nit:1040 */
6584 if (UNTAG_Bool(REGB1)) {
6585 } else {
6586 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6587 if (UNTAG_Bool(REGB2)) {
6588 REGB2 = TAG_Bool(false);
6589 REGB1 = REGB2;
6590 } else {
6591 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
6592 REGB1 = REGB2;
6593 }
6594 }
6595 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
6596 if (UNTAG_Bool(REGB1)) {
6597 fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
6598 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6599 if (UNTAG_Bool(REGB1)) {
6600 fprintf(stderr, "Reciever is null");
6601 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1040);
6602 nit_exit(1);
6603 }
6604 REGB1 = CALL_mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
6605 REGB2 = TAG_Int(1);
6606 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
6607 /* ./syntax//mmbuilder.nit:1040 */
6608 } else {
6609 REGB1 = TAG_Bool(false);
6610 REGB2 = REGB1;
6611 }
6612 if (UNTAG_Bool(REGB2)) {
6613 fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
6614 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6615 /* ./syntax//mmbuilder.nit:1041 */
6616 if (UNTAG_Bool(REGB2)) {
6617 fprintf(stderr, "Reciever is null");
6618 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1041);
6619 nit_exit(1);
6620 }
6621 REGB2 = CALL_mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
6622 REGB0 = REGB2;
6623 }
6624 fra.me.REG[0] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
6625 fra.me.REG[1] = CALL_parser_nodes___AMethPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
6626 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6627 /* ./syntax//mmbuilder.nit:1043 */
6628 if (UNTAG_Bool(REGB2)) {
6629 } else {
6630 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6631 if (UNTAG_Bool(REGB1)) {
6632 REGB1 = TAG_Bool(false);
6633 REGB2 = REGB1;
6634 } else {
6635 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
6636 REGB2 = REGB1;
6637 }
6638 }
6639 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
6640 CALL_mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0], REGB2, REGB0);
6641 fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
6642 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6643 /* ./syntax//mmbuilder.nit:1044 */
6644 if (UNTAG_Bool(REGB0)) {
6645 } else {
6646 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6647 if (UNTAG_Bool(REGB2)) {
6648 REGB2 = TAG_Bool(false);
6649 REGB0 = REGB2;
6650 } else {
6651 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
6652 REGB0 = REGB2;
6653 }
6654 }
6655 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6656 if (UNTAG_Bool(REGB0)) {
6657 fra.me.REG[0] = CALL_parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
6658 fra.me.REG[2] = CALL_syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
6659 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6660 if (UNTAG_Bool(REGB0)) {
6661 fprintf(stderr, "Reciever is null");
6662 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1044);
6663 nit_exit(1);
6664 }
6665 CALL_mmbuilder___ASignature___check_visibility(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
6666 }
6667 label1: while(0);
6668 stack_frame_head = fra.me.prev;
6669 return;
6670 }
6671 val_t mmbuilder___AMethPropdef___name(val_t p0){
6672 struct {struct stack_frame_t me;} fra;
6673 val_t tmp;
6674 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6675 fra.me.file = LOCATE_mmbuilder;
6676 fra.me.line = 995;
6677 fra.me.meth = LOCATE_mmbuilder___AMethPropdef___name;
6678 fra.me.has_broke = 0;
6679 fra.me.REG_size = 1;
6680 fra.me.REG[0] = NIT_NULL;
6681 fra.me.REG[0] = p0;
6682 fra.me.REG[0] = ATTR_mmbuilder___AMethPropdef____name(fra.me.REG[0]);
6683 /* ./syntax//mmbuilder.nit:995 */
6684 stack_frame_head = fra.me.prev;
6685 return fra.me.REG[0];
6686 }
6687 void mmbuilder___AMainMethPropdef___process_and_check(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
6688 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
6689 val_t REGB0;
6690 val_t REGB1;
6691 val_t tmp;
6692 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6693 fra.me.file = LOCATE_mmbuilder;
6694 fra.me.line = 1056;
6695 fra.me.meth = LOCATE_mmbuilder___AMainMethPropdef___process_and_check;
6696 fra.me.has_broke = 0;
6697 fra.me.REG_size = 3;
6698 fra.me.REG[0] = NIT_NULL;
6699 fra.me.REG[1] = NIT_NULL;
6700 fra.me.REG[2] = NIT_NULL;
6701 fra.me.REG[0] = p0;
6702 fra.me.REG[1] = p1;
6703 fra.me.REG[2] = p2;
6704 REGB0 = p3;
6705 REGB1 = p4;
6706 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
6707 /* ./syntax//mmbuilder.nit:1058 */
6708 CALL_abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[0])(fra.me.REG[0], REGB1);
6709 fra.me.REG[0] = NEW_Array_array___Array___init();
6710 fra.me.REG[1] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
6711 fra.me.REG[1] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
6712 fra.me.REG[1] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[1]);
6713 /* ./syntax//mmbuilder.nit:1059 */
6714 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
6715 stack_frame_head = fra.me.prev;
6716 return;
6717 }
6718 void mmbuilder___ATypePropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
6719 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6720 val_t tmp;
6721 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6722 fra.me.file = LOCATE_mmbuilder;
6723 fra.me.line = 1086;
6724 fra.me.meth = LOCATE_mmbuilder___ATypePropdef___accept_abs_syntax_visitor;
6725 fra.me.has_broke = 0;
6726 fra.me.REG_size = 4;
6727 fra.me.REG[0] = NIT_NULL;
6728 fra.me.REG[1] = NIT_NULL;
6729 fra.me.REG[2] = NIT_NULL;
6730 fra.me.REG[3] = NIT_NULL;
6731 fra.me.REG[0] = p0;
6732 fra.me.REG[1] = p1;
6733 fra.me.REG[2] = fra.me.REG[0];
6734 fra.me.REG[3] = fra.me.REG[1];
6735 fra.me.REG[2] = ATTR_mmbuilder___ATypePropdef____prop(fra.me.REG[2]);
6736 /* ./syntax//mmbuilder.nit:1088 */
6737 CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
6738 /* ./syntax//mmbuilder.nit:1089 */
6739 CALL_SUPER_mmbuilder___ATypePropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
6740 /* ./syntax//mmbuilder.nit:1090 */
6741 CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6742 stack_frame_head = fra.me.prev;
6743 return;
6744 }
6745 val_t mmbuilder___ATypePropdef___prop(val_t p0){
6746 struct {struct stack_frame_t me;} fra;
6747 val_t REGB0;
6748 val_t tmp;
6749 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6750 fra.me.file = LOCATE_mmbuilder;
6751 fra.me.line = 1065;
6752 fra.me.meth = LOCATE_mmbuilder___ATypePropdef___prop;
6753 fra.me.has_broke = 0;
6754 fra.me.REG_size = 1;
6755 fra.me.REG[0] = NIT_NULL;
6756 fra.me.REG[0] = p0;
6757 fra.me.REG[0] = ATTR_mmbuilder___ATypePropdef____prop(fra.me.REG[0]);
6758 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
6759 /* ./syntax//mmbuilder.nit:1065 */
6760 if (UNTAG_Bool(REGB0)) {
6761 } else {
6762 fprintf(stderr, "Cast failed");
6763 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1065);
6764 nit_exit(1);
6765 }
6766 goto label1;
6767 label1: while(0);
6768 stack_frame_head = fra.me.prev;
6769 return fra.me.REG[0];
6770 }
6771 void mmbuilder___ATypePropdef___accept_property_builder(val_t p0, val_t p1){
6772 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6773 val_t tmp;
6774 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6775 fra.me.file = LOCATE_mmbuilder;
6776 fra.me.line = 1068;
6777 fra.me.meth = LOCATE_mmbuilder___ATypePropdef___accept_property_builder;
6778 fra.me.has_broke = 0;
6779 fra.me.REG_size = 4;
6780 fra.me.REG[0] = NIT_NULL;
6781 fra.me.REG[1] = NIT_NULL;
6782 fra.me.REG[2] = NIT_NULL;
6783 fra.me.REG[3] = NIT_NULL;
6784 fra.me.REG[0] = p0;
6785 fra.me.REG[1] = p1;
6786 fra.me.REG[2] = fra.me.REG[0];
6787 fra.me.REG[3] = fra.me.REG[1];
6788 /* ./syntax//mmbuilder.nit:1070 */
6789 CALL_SUPER_mmbuilder___ATypePropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
6790 fra.me.REG[1] = CALL_parser_nodes___ATypePropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
6791 fra.me.REG[1] = CALL_syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
6792 fra.me.REG[0] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
6793 fra.me.REG[0] = NEW_MMSrcTypeProperty_syntax_base___MMSrcTypeProperty___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
6794 /* ./syntax//mmbuilder.nit:1073 */
6795 ATTR_mmbuilder___ATypePropdef____prop(fra.me.REG[2]) = fra.me.REG[0];
6796 fra.me.REG[2] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
6797 /* ./syntax//mmbuilder.nit:1074 */
6798 CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0]);
6799 stack_frame_head = fra.me.prev;
6800 return;
6801 }
6802 void mmbuilder___ATypePropdef___accept_property_verifier(val_t p0, val_t p1){
6803 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
6804 val_t REGB0;
6805 val_t REGB1;
6806 val_t REGB2;
6807 val_t tmp;
6808 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6809 fra.me.file = LOCATE_mmbuilder;
6810 fra.me.line = 1077;
6811 fra.me.meth = LOCATE_mmbuilder___ATypePropdef___accept_property_verifier;
6812 fra.me.has_broke = 0;
6813 fra.me.REG_size = 5;
6814 fra.me.REG[0] = NIT_NULL;
6815 fra.me.REG[1] = NIT_NULL;
6816 fra.me.REG[2] = NIT_NULL;
6817 fra.me.REG[3] = NIT_NULL;
6818 fra.me.REG[4] = NIT_NULL;
6819 fra.me.REG[0] = p0;
6820 fra.me.REG[1] = p1;
6821 fra.me.REG[2] = fra.me.REG[0];
6822 fra.me.REG[3] = fra.me.REG[1];
6823 /* ./syntax//mmbuilder.nit:1079 */
6824 CALL_SUPER_mmbuilder___ATypePropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
6825 fra.me.REG[1] = NEW_Array_array___Array___init();
6826 fra.me.REG[0] = CALL_parser_nodes___ATypePropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
6827 fra.me.REG[0] = CALL_syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
6828 fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
6829 fra.me.REG[4] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
6830 fra.me.REG[4] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
6831 fra.me.REG[0] = CALL_syntax_base___ATypePropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
6832 /* ./syntax//mmbuilder.nit:1081 */
6833 CALL_static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
6834 fra.me.REG[4] = CALL_parser_nodes___ATypePropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
6835 REGB0 = CALL_mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
6836 fra.me.REG[4] = CALL_syntax_base___ATypePropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
6837 fra.me.REG[0] = CALL_parser_nodes___ATypePropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
6838 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6839 /* ./syntax//mmbuilder.nit:1083 */
6840 if (UNTAG_Bool(REGB1)) {
6841 } else {
6842 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6843 if (UNTAG_Bool(REGB2)) {
6844 REGB2 = TAG_Bool(false);
6845 REGB1 = REGB2;
6846 } else {
6847 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
6848 REGB1 = REGB2;
6849 }
6850 }
6851 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
6852 CALL_mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], REGB1, REGB0);
6853 stack_frame_head = fra.me.prev;
6854 return;
6855 }
6856 void mmbuilder___MethidAccumulator___visit(val_t p0, val_t p1){
6857 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6858 val_t REGB0;
6859 val_t tmp;
6860 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6861 fra.me.file = LOCATE_mmbuilder;
6862 fra.me.line = 1098;
6863 fra.me.meth = LOCATE_mmbuilder___MethidAccumulator___visit;
6864 fra.me.has_broke = 0;
6865 fra.me.REG_size = 4;
6866 fra.me.REG[0] = NIT_NULL;
6867 fra.me.REG[1] = NIT_NULL;
6868 fra.me.REG[2] = NIT_NULL;
6869 fra.me.REG[3] = NIT_NULL;
6870 fra.me.REG[0] = p0;
6871 fra.me.REG[1] = p1;
6872 REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_Token, ID_Token)) /*cast Token*/;
6873 /* ./syntax//mmbuilder.nit:1100 */
6874 if (UNTAG_Bool(REGB0)) {
6875 REGB0 = TAG_Bool(ATTR_mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL);
6876 /* ./syntax//mmbuilder.nit:1101 */
6877 if (UNTAG_Bool(REGB0)) {
6878 } else {
6879 fprintf(stderr, "Uninitialized attribute %s", "_name");
6880 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1101);
6881 nit_exit(1);
6882 }
6883 fra.me.REG[2] = ATTR_mmbuilder___MethidAccumulator____name(fra.me.REG[0]);
6884 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6885 if (UNTAG_Bool(REGB0)) {
6886 fprintf(stderr, "Reciever is null");
6887 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1101);
6888 nit_exit(1);
6889 }
6890 fra.me.REG[3] = CALL_lexer___Token___text(fra.me.REG[1])(fra.me.REG[1]);
6891 CALL_abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
6892 } else {
6893 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6894 /* ./syntax//mmbuilder.nit:1103 */
6895 if (UNTAG_Bool(REGB0)) {
6896 fprintf(stderr, "Reciever is null");
6897 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1103);
6898 nit_exit(1);
6899 }
6900 CALL_parser_prod___ANode___visit_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
6901 }
6902 stack_frame_head = fra.me.prev;
6903 return;
6904 }
6905 val_t mmbuilder___MethidAccumulator___name(val_t p0){
6906 struct {struct stack_frame_t me;} fra;
6907 val_t REGB0;
6908 val_t tmp;
6909 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6910 fra.me.file = LOCATE_mmbuilder;
6911 fra.me.line = 1097;
6912 fra.me.meth = LOCATE_mmbuilder___MethidAccumulator___name;
6913 fra.me.has_broke = 0;
6914 fra.me.REG_size = 1;
6915 fra.me.REG[0] = NIT_NULL;
6916 fra.me.REG[0] = p0;
6917 REGB0 = TAG_Bool(ATTR_mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL);
6918 /* ./syntax//mmbuilder.nit:1097 */
6919 if (UNTAG_Bool(REGB0)) {
6920 } else {
6921 fprintf(stderr, "Uninitialized attribute %s", "_name");
6922 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1097);
6923 nit_exit(1);
6924 }
6925 fra.me.REG[0] = ATTR_mmbuilder___MethidAccumulator____name(fra.me.REG[0]);
6926 stack_frame_head = fra.me.prev;
6927 return fra.me.REG[0];
6928 }
6929 void mmbuilder___AMethid___accept_property_builder(val_t p0, val_t p1){
6930 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6931 val_t tmp;
6932 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6933 fra.me.file = LOCATE_mmbuilder;
6934 fra.me.line = 1112;
6935 fra.me.meth = LOCATE_mmbuilder___AMethid___accept_property_builder;
6936 fra.me.has_broke = 0;
6937 fra.me.REG_size = 4;
6938 fra.me.REG[0] = NIT_NULL;
6939 fra.me.REG[1] = NIT_NULL;
6940 fra.me.REG[2] = NIT_NULL;
6941 fra.me.REG[3] = NIT_NULL;
6942 fra.me.REG[0] = p0;
6943 fra.me.REG[1] = p1;
6944 fra.me.REG[2] = fra.me.REG[0];
6945 fra.me.REG[3] = NEW_MethidAccumulator_parser_prod___Visitor___init();
6946 /* ./syntax//mmbuilder.nit:1115 */
6947 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
6948 fra.me.REG[3] = CALL_mmbuilder___MethidAccumulator___name(fra.me.REG[3])(fra.me.REG[3]);
6949 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
6950 fra.me.REG[3] = CALL_symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
6951 /* ./syntax//mmbuilder.nit:1116 */
6952 ATTR_mmbuilder___AMethid____name(fra.me.REG[2]) = fra.me.REG[3];
6953 /* ./syntax//mmbuilder.nit:1117 */
6954 CALL_SUPER_mmbuilder___AMethid___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
6955 stack_frame_head = fra.me.prev;
6956 return;
6957 }
6958 val_t mmbuilder___AMethid___name(val_t p0){
6959 struct {struct stack_frame_t me;} fra;
6960 val_t tmp;
6961 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6962 fra.me.file = LOCATE_mmbuilder;
6963 fra.me.line = 1109;
6964 fra.me.meth = LOCATE_mmbuilder___AMethid___name;
6965 fra.me.has_broke = 0;
6966 fra.me.REG_size = 1;
6967 fra.me.REG[0] = NIT_NULL;
6968 fra.me.REG[0] = p0;
6969 fra.me.REG[0] = ATTR_mmbuilder___AMethid____name(fra.me.REG[0]);
6970 /* ./syntax//mmbuilder.nit:1109 */
6971 stack_frame_head = fra.me.prev;
6972 return fra.me.REG[0];
6973 }
6974 void mmbuilder___ASignature___accept_property_verifier(val_t p0, val_t p1){
6975 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
6976 val_t REGB0;
6977 val_t REGB1;
6978 val_t REGB2;
6979 val_t tmp;
6980 static val_t once_value_2; /* Once value */
6981 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6982 fra.me.file = LOCATE_mmbuilder;
6983 fra.me.line = 1122;
6984 fra.me.meth = LOCATE_mmbuilder___ASignature___accept_property_verifier;
6985 fra.me.has_broke = 0;
6986 fra.me.REG_size = 5;
6987 fra.me.REG[0] = NIT_NULL;
6988 fra.me.REG[1] = NIT_NULL;
6989 fra.me.REG[2] = NIT_NULL;
6990 fra.me.REG[3] = NIT_NULL;
6991 fra.me.REG[4] = NIT_NULL;
6992 fra.me.REG[0] = p0;
6993 fra.me.REG[1] = p1;
6994 fra.me.REG[2] = fra.me.REG[0];
6995 fra.me.REG[3] = fra.me.REG[1];
6996 /* ./syntax//mmbuilder.nit:1124 */
6997 CALL_SUPER_mmbuilder___ASignature___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
6998 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
6999 REGB0 = CALL_mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
7000 /* ./syntax//mmbuilder.nit:1125 */
7001 if (UNTAG_Bool(REGB0)) {
7002 /* ./syntax//mmbuilder.nit:1126 */
7003 goto label1;
7004 } else {
7005 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7006 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
7007 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
7008 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7009 /* ./syntax//mmbuilder.nit:1127 */
7010 if (UNTAG_Bool(REGB0)) {
7011 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7012 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
7013 fra.me.REG[1] = CALL_abstract_collection___Collection___first(fra.me.REG[1])(fra.me.REG[1]);
7014 fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7015 fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[0])(fra.me.REG[0]);
7016 fra.me.REG[0] = CALL_abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]);
7017 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[1],fra.me.REG[0]));
7018 /* ./syntax//mmbuilder.nit:1128 */
7019 if (UNTAG_Bool(REGB0)) {
7020 } else {
7021 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7022 if (UNTAG_Bool(REGB1)) {
7023 REGB1 = TAG_Bool(false);
7024 REGB0 = REGB1;
7025 } else {
7026 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
7027 REGB0 = REGB1;
7028 }
7029 }
7030 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7031 if (UNTAG_Bool(REGB0)) {
7032 REGB0 = TAG_Bool(true);
7033 } else {
7034 fra.me.REG[0] = CALL_parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
7035 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7036 if (UNTAG_Bool(REGB1)) {
7037 } else {
7038 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7039 if (UNTAG_Bool(REGB2)) {
7040 REGB2 = TAG_Bool(false);
7041 REGB1 = REGB2;
7042 } else {
7043 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7044 REGB1 = REGB2;
7045 }
7046 }
7047 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7048 REGB0 = REGB1;
7049 }
7050 if (UNTAG_Bool(REGB0)) {
7051 fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7052 fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[0])(fra.me.REG[0]);
7053 fra.me.REG[0] = CALL_abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]);
7054 /* ./syntax//mmbuilder.nit:1129 */
7055 if (!once_value_2) {
7056 fra.me.REG[1] = BOX_NativeString("Syntax error: untyped parameter.");
7057 REGB0 = TAG_Int(32);
7058 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
7059 once_value_2 = fra.me.REG[1];
7060 register_static_object(&once_value_2);
7061 } else fra.me.REG[1] = once_value_2;
7062 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0], fra.me.REG[1]);
7063 /* ./syntax//mmbuilder.nit:1130 */
7064 goto label1;
7065 }
7066 } else {
7067 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7068 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[1])(fra.me.REG[1]);
7069 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
7070 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7071 /* ./syntax//mmbuilder.nit:1132 */
7072 if (UNTAG_Bool(REGB0)) {
7073 REGB0 = TAG_Bool(true);
7074 } else {
7075 fra.me.REG[1] = CALL_parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
7076 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7077 if (UNTAG_Bool(REGB1)) {
7078 } else {
7079 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7080 if (UNTAG_Bool(REGB2)) {
7081 REGB2 = TAG_Bool(false);
7082 REGB1 = REGB2;
7083 } else {
7084 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7085 REGB1 = REGB2;
7086 }
7087 }
7088 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7089 REGB0 = REGB1;
7090 }
7091 if (UNTAG_Bool(REGB0)) {
7092 fra.me.REG[1] = NEW_Array_array___Array___init();
7093 fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7094 fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[0])(fra.me.REG[0]);
7095 fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
7096 /* ./syntax//mmbuilder.nit:1134 */
7097 while(1) {
7098 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
7099 if (UNTAG_Bool(REGB0)) {
7100 fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
7101 fra.me.REG[4] = CALL_mmbuilder___AParam___stype(fra.me.REG[4])(fra.me.REG[4]);
7102 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
7103 /* ./syntax//mmbuilder.nit:1135 */
7104 if (UNTAG_Bool(REGB0)) {
7105 } else {
7106 fprintf(stderr, "Cast failed");
7107 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1135);
7108 nit_exit(1);
7109 }
7110 array___Array___add(fra.me.REG[1], fra.me.REG[4]);
7111 } else {
7112 /* ./syntax//mmbuilder.nit:1134 */
7113 goto label3;
7114 }
7115 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
7116 }
7117 label3: while(0);
7118 fra.me.REG[0] = NIT_NULL;
7119 fra.me.REG[4] = CALL_parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
7120 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7121 /* ./syntax//mmbuilder.nit:1138 */
7122 if (UNTAG_Bool(REGB0)) {
7123 } else {
7124 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7125 if (UNTAG_Bool(REGB1)) {
7126 REGB1 = TAG_Bool(false);
7127 REGB0 = REGB1;
7128 } else {
7129 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
7130 REGB0 = REGB1;
7131 }
7132 }
7133 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7134 if (UNTAG_Bool(REGB0)) {
7135 fra.me.REG[2] = CALL_parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
7136 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7137 /* ./syntax//mmbuilder.nit:1139 */
7138 if (UNTAG_Bool(REGB0)) {
7139 fprintf(stderr, "Reciever is null");
7140 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1139);
7141 nit_exit(1);
7142 }
7143 fra.me.REG[2] = CALL_syntax_base___AType___get_stype(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
7144 fra.me.REG[0] = fra.me.REG[2];
7145 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7146 /* ./syntax//mmbuilder.nit:1140 */
7147 if (UNTAG_Bool(REGB0)) {
7148 } else {
7149 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7150 if (UNTAG_Bool(REGB1)) {
7151 REGB1 = TAG_Bool(false);
7152 REGB0 = REGB1;
7153 } else {
7154 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7155 REGB0 = REGB1;
7156 }
7157 }
7158 if (UNTAG_Bool(REGB0)) {
7159 fra.me.REG[2] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7160 REGB0 = TAG_Bool(true);
7161 /* ./syntax//mmbuilder.nit:1141 */
7162 CALL_mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
7163 /* ./syntax//mmbuilder.nit:1142 */
7164 goto label1;
7165 }
7166 }
7167 fra.me.REG[2] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7168 fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
7169 fra.me.REG[4] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
7170 fra.me.REG[4] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
7171 /* ./syntax//mmbuilder.nit:1145 */
7172 CALL_mmbuilder___SignatureBuilder___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
7173 fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7174 REGB0 = CALL_mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[4])(fra.me.REG[4]);
7175 REGB1 = TAG_Int(0);
7176 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
7177 /* ./syntax//mmbuilder.nit:1146 */
7178 if (UNTAG_Bool(REGB1)) {
7179 fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7180 fra.me.REG[4] = CALL_mmbuilder___SignatureBuilder___signature(fra.me.REG[4])(fra.me.REG[4]);
7181 fra.me.REG[2] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7182 REGB1 = CALL_mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[2])(fra.me.REG[2]);
7183 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7184 /* ./syntax//mmbuilder.nit:1147 */
7185 if (UNTAG_Bool(REGB0)) {
7186 fprintf(stderr, "Reciever is null");
7187 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1147);
7188 nit_exit(1);
7189 }
7190 CALL_vararg___MMSignature___vararg_rank__eq(fra.me.REG[4])(fra.me.REG[4], REGB1);
7191 }
7192 fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7193 fra.me.REG[4] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
7194 fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[4])(fra.me.REG[4]);
7195 /* ./syntax//mmbuilder.nit:1149 */
7196 while(1) {
7197 REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]);
7198 if (UNTAG_Bool(REGB1)) {
7199 fra.me.REG[2] = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]);
7200 fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7201 fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___signature(fra.me.REG[0])(fra.me.REG[0]);
7202 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7203 /* ./syntax//mmbuilder.nit:1150 */
7204 if (UNTAG_Bool(REGB1)) {
7205 fprintf(stderr, "Reciever is null");
7206 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1150);
7207 nit_exit(1);
7208 }
7209 fra.me.REG[0] = CALL_static_type___MMSignature___closures(fra.me.REG[0])(fra.me.REG[0]);
7210 fra.me.REG[2] = CALL_syntax_base___AClosureDecl___variable(fra.me.REG[2])(fra.me.REG[2]);
7211 fra.me.REG[2] = CALL_syntax_base___ClosureVariable___closure(fra.me.REG[2])(fra.me.REG[2]);
7212 array___Array___add(fra.me.REG[0], fra.me.REG[2]);
7213 } else {
7214 /* ./syntax//mmbuilder.nit:1149 */
7215 goto label4;
7216 }
7217 CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]);
7218 }
7219 label4: while(0);
7220 }
7221 }
7222 }
7223 label1: while(0);
7224 stack_frame_head = fra.me.prev;
7225 return;
7226 }
7227 void mmbuilder___ASignature___check_visibility(val_t p0, val_t p1, val_t p2){
7228 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
7229 val_t REGB0;
7230 val_t REGB1;
7231 val_t tmp;
7232 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7233 fra.me.file = LOCATE_mmbuilder;
7234 fra.me.line = 1155;
7235 fra.me.meth = LOCATE_mmbuilder___ASignature___check_visibility;
7236 fra.me.has_broke = 0;
7237 fra.me.REG_size = 6;
7238 fra.me.REG[0] = NIT_NULL;
7239 fra.me.REG[1] = NIT_NULL;
7240 fra.me.REG[2] = NIT_NULL;
7241 fra.me.REG[3] = NIT_NULL;
7242 fra.me.REG[4] = NIT_NULL;
7243 fra.me.REG[5] = NIT_NULL;
7244 fra.me.REG[0] = p0;
7245 fra.me.REG[1] = p1;
7246 fra.me.REG[2] = p2;
7247 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
7248 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
7249 REGB1 = TAG_Int(3);
7250 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
7251 /* ./syntax//mmbuilder.nit:1158 */
7252 if (UNTAG_Bool(REGB1)) {
7253 goto label1;
7254 }
7255 fra.me.REG[3] = CALL_parser_nodes___ASignature___n_params(fra.me.REG[0])(fra.me.REG[0]);
7256 fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]);
7257 /* ./syntax//mmbuilder.nit:1159 */
7258 while(1) {
7259 REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]);
7260 if (UNTAG_Bool(REGB1)) {
7261 fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]);
7262 fra.me.REG[5] = CALL_parser_nodes___AParam___n_type(fra.me.REG[4])(fra.me.REG[4]);
7263 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7264 /* ./syntax//mmbuilder.nit:1160 */
7265 if (UNTAG_Bool(REGB1)) {
7266 } else {
7267 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7268 if (UNTAG_Bool(REGB0)) {
7269 REGB0 = TAG_Bool(false);
7270 REGB1 = REGB0;
7271 } else {
7272 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
7273 REGB1 = REGB0;
7274 }
7275 }
7276 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7277 if (UNTAG_Bool(REGB1)) {
7278 fra.me.REG[4] = CALL_parser_nodes___AParam___n_type(fra.me.REG[4])(fra.me.REG[4]);
7279 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7280 if (UNTAG_Bool(REGB1)) {
7281 fprintf(stderr, "Reciever is null");
7282 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1160);
7283 nit_exit(1);
7284 }
7285 CALL_mmbuilder___AType___check_visibility(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1], fra.me.REG[2]);
7286 }
7287 } else {
7288 /* ./syntax//mmbuilder.nit:1159 */
7289 goto label2;
7290 }
7291 CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]);
7292 }
7293 label2: while(0);
7294 fra.me.REG[3] = CALL_parser_nodes___ASignature___n_type(fra.me.REG[0])(fra.me.REG[0]);
7295 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7296 /* ./syntax//mmbuilder.nit:1162 */
7297 if (UNTAG_Bool(REGB1)) {
7298 } else {
7299 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7300 if (UNTAG_Bool(REGB0)) {
7301 REGB0 = TAG_Bool(false);
7302 REGB1 = REGB0;
7303 } else {
7304 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7305 REGB1 = REGB0;
7306 }
7307 }
7308 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7309 if (UNTAG_Bool(REGB1)) {
7310 fra.me.REG[0] = CALL_parser_nodes___ASignature___n_type(fra.me.REG[0])(fra.me.REG[0]);
7311 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7312 if (UNTAG_Bool(REGB1)) {
7313 fprintf(stderr, "Reciever is null");
7314 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1162);
7315 nit_exit(1);
7316 }
7317 CALL_mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
7318 }
7319 label1: while(0);
7320 stack_frame_head = fra.me.prev;
7321 return;
7322 }
7323 val_t mmbuilder___AParam___position(val_t p0){
7324 struct {struct stack_frame_t me;} fra;
7325 val_t REGB0;
7326 val_t tmp;
7327 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7328 fra.me.file = LOCATE_mmbuilder;
7329 fra.me.line = 1167;
7330 fra.me.meth = LOCATE_mmbuilder___AParam___position;
7331 fra.me.has_broke = 0;
7332 fra.me.REG_size = 1;
7333 fra.me.REG[0] = NIT_NULL;
7334 fra.me.REG[0] = p0;
7335 REGB0 = TAG_Bool(ATTR_mmbuilder___AParam____position(fra.me.REG[0])!=NIT_NULL);
7336 /* ./syntax//mmbuilder.nit:1167 */
7337 if (UNTAG_Bool(REGB0)) {
7338 } else {
7339 fprintf(stderr, "Uninitialized attribute %s", "_position");
7340 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1167);
7341 nit_exit(1);
7342 }
7343 REGB0 = ATTR_mmbuilder___AParam____position(fra.me.REG[0]);
7344 stack_frame_head = fra.me.prev;
7345 return REGB0;
7346 }
7347 val_t mmbuilder___AParam___variable(val_t p0){
7348 struct {struct stack_frame_t me;} fra;
7349 val_t REGB0;
7350 val_t tmp;
7351 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7352 fra.me.file = LOCATE_mmbuilder;
7353 fra.me.line = 1169;
7354 fra.me.meth = LOCATE_mmbuilder___AParam___variable;
7355 fra.me.has_broke = 0;
7356 fra.me.REG_size = 1;
7357 fra.me.REG[0] = NIT_NULL;
7358 fra.me.REG[0] = p0;
7359 fra.me.REG[0] = ATTR_mmbuilder___AParam____variable(fra.me.REG[0]);
7360 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
7361 /* ./syntax//mmbuilder.nit:1169 */
7362 if (UNTAG_Bool(REGB0)) {
7363 } else {
7364 fprintf(stderr, "Cast failed");
7365 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1169);
7366 nit_exit(1);
7367 }
7368 goto label1;
7369 label1: while(0);
7370 stack_frame_head = fra.me.prev;
7371 return fra.me.REG[0];
7372 }
7373 void mmbuilder___AParam___accept_property_verifier(val_t p0, val_t p1){
7374 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
7375 val_t REGB0;
7376 val_t REGB1;
7377 val_t REGB2;
7378 val_t tmp;
7379 static val_t once_value_2; /* Once value */
7380 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7381 fra.me.file = LOCATE_mmbuilder;
7382 fra.me.line = 1175;
7383 fra.me.meth = LOCATE_mmbuilder___AParam___accept_property_verifier;
7384 fra.me.has_broke = 0;
7385 fra.me.REG_size = 6;
7386 fra.me.REG[0] = NIT_NULL;
7387 fra.me.REG[1] = NIT_NULL;
7388 fra.me.REG[2] = NIT_NULL;
7389 fra.me.REG[3] = NIT_NULL;
7390 fra.me.REG[4] = NIT_NULL;
7391 fra.me.REG[5] = NIT_NULL;
7392 fra.me.REG[0] = p0;
7393 fra.me.REG[1] = p1;
7394 fra.me.REG[2] = fra.me.REG[0];
7395 fra.me.REG[3] = fra.me.REG[1];
7396 /* ./syntax//mmbuilder.nit:1177 */
7397 CALL_SUPER_mmbuilder___AParam___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
7398 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7399 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[1])(fra.me.REG[1]);
7400 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
7401 /* ./../lib/standard//collection//array.nit:23 */
7402 if (UNTAG_Bool(REGB0)) {
7403 } else {
7404 fprintf(stderr, "Uninitialized attribute %s", "_length");
7405 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
7406 nit_exit(1);
7407 }
7408 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
7409 /* ./syntax//mmbuilder.nit:1178 */
7410 ATTR_mmbuilder___AParam____position(fra.me.REG[2]) = REGB0;
7411 fra.me.REG[1] = CALL_parser_nodes___AParam___n_id(fra.me.REG[2])(fra.me.REG[2]);
7412 fra.me.REG[1] = CALL_syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
7413 fra.me.REG[0] = CALL_parser_nodes___AParam___n_id(fra.me.REG[2])(fra.me.REG[2]);
7414 fra.me.REG[0] = NEW_ParamVariable_syntax_base___ParamVariable___init(fra.me.REG[1], fra.me.REG[0]);
7415 /* ./syntax//mmbuilder.nit:1179 */
7416 ATTR_mmbuilder___AParam____variable(fra.me.REG[2]) = fra.me.REG[0];
7417 fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7418 fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___params(fra.me.REG[0])(fra.me.REG[0]);
7419 /* ./syntax//mmbuilder.nit:1180 */
7420 array___Array___add(fra.me.REG[0], fra.me.REG[2]);
7421 fra.me.REG[0] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7422 fra.me.REG[0] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[0])(fra.me.REG[0]);
7423 /* ./syntax//mmbuilder.nit:1181 */
7424 array___Array___add(fra.me.REG[0], fra.me.REG[2]);
7425 fra.me.REG[0] = CALL_parser_nodes___AParam___n_type(fra.me.REG[2])(fra.me.REG[2]);
7426 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7427 /* ./syntax//mmbuilder.nit:1182 */
7428 if (UNTAG_Bool(REGB0)) {
7429 } else {
7430 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7431 if (UNTAG_Bool(REGB1)) {
7432 REGB1 = TAG_Bool(false);
7433 REGB0 = REGB1;
7434 } else {
7435 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7436 REGB0 = REGB1;
7437 }
7438 }
7439 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7440 if (UNTAG_Bool(REGB0)) {
7441 fra.me.REG[0] = CALL_parser_nodes___AParam___n_type(fra.me.REG[2])(fra.me.REG[2]);
7442 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7443 /* ./syntax//mmbuilder.nit:1183 */
7444 if (UNTAG_Bool(REGB0)) {
7445 fprintf(stderr, "Reciever is null");
7446 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1183);
7447 nit_exit(1);
7448 }
7449 fra.me.REG[0] = CALL_syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
7450 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7451 /* ./syntax//mmbuilder.nit:1184 */
7452 if (UNTAG_Bool(REGB0)) {
7453 } else {
7454 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7455 if (UNTAG_Bool(REGB1)) {
7456 REGB1 = TAG_Bool(false);
7457 REGB0 = REGB1;
7458 } else {
7459 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7460 REGB0 = REGB1;
7461 }
7462 }
7463 if (UNTAG_Bool(REGB0)) {
7464 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7465 REGB0 = TAG_Bool(true);
7466 /* ./syntax//mmbuilder.nit:1185 */
7467 CALL_mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
7468 /* ./syntax//mmbuilder.nit:1186 */
7469 goto label1;
7470 }
7471 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7472 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
7473 fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]);
7474 /* ./syntax//mmbuilder.nit:1188 */
7475 while(1) {
7476 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
7477 if (UNTAG_Bool(REGB0)) {
7478 fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
7479 /* ./syntax//mmbuilder.nit:1189 */
7480 CALL_mmbuilder___AParam___stype__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
7481 REGB0 = CALL_mmbuilder___AParam___is_vararg(fra.me.REG[2])(fra.me.REG[2]);
7482 /* ./syntax//mmbuilder.nit:1190 */
7483 if (UNTAG_Bool(REGB0)) {
7484 fra.me.REG[5] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7485 REGB0 = CALL_mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[5])(fra.me.REG[5]);
7486 REGB1 = TAG_Int(1);
7487 REGB1 = TAG_Int(-UNTAG_Int(REGB1));
7488 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
7489 /* ./syntax//mmbuilder.nit:1191 */
7490 if (UNTAG_Bool(REGB2)) {
7491 } else {
7492 REGB1 = TAG_Bool((REGB0)==(REGB1));
7493 REGB2 = REGB1;
7494 /* ./syntax//mmbuilder.nit:1191 */
7495 }
7496 if (UNTAG_Bool(REGB2)) {
7497 fra.me.REG[5] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7498 REGB2 = CALL_syntax_base___AParam___position(fra.me.REG[4])(fra.me.REG[4]);
7499 /* ./syntax//mmbuilder.nit:1192 */
7500 CALL_mmbuilder___SignatureBuilder___vararg_rank__eq(fra.me.REG[5])(fra.me.REG[5], REGB2);
7501 } else {
7502 /* ./syntax//mmbuilder.nit:1194 */
7503 if (!once_value_2) {
7504 fra.me.REG[5] = BOX_NativeString("Error: A vararg parameter is already defined.");
7505 REGB2 = TAG_Int(45);
7506 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2);
7507 once_value_2 = fra.me.REG[5];
7508 register_static_object(&once_value_2);
7509 } else fra.me.REG[5] = once_value_2;
7510 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[5]);
7511 }
7512 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
7513 fra.me.REG[0] = fra.me.REG[5];
7514 /* ./syntax//mmbuilder.nit:1196 */
7515 }
7516 fra.me.REG[4] = CALL_syntax_base___AParam___variable(fra.me.REG[4])(fra.me.REG[4]);
7517 /* ./syntax//mmbuilder.nit:1198 */
7518 CALL_syntax_base___Variable___stype__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
7519 } else {
7520 /* ./syntax//mmbuilder.nit:1188 */
7521 goto label3;
7522 }
7523 CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
7524 }
7525 label3: while(0);
7526 fra.me.REG[3] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7527 fra.me.REG[3] = CALL_mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[3])(fra.me.REG[3]);
7528 /* ./syntax//mmbuilder.nit:1200 */
7529 CALL_abstract_collection___RemovableCollection___clear(fra.me.REG[3])(fra.me.REG[3]);
7530 }
7531 label1: while(0);
7532 stack_frame_head = fra.me.prev;
7533 return;
7534 }
7535 val_t mmbuilder___AParam___stype(val_t p0){
7536 struct {struct stack_frame_t me;} fra;
7537 val_t tmp;
7538 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7539 fra.me.file = LOCATE_mmbuilder;
7540 fra.me.line = 1172;
7541 fra.me.meth = LOCATE_mmbuilder___AParam___stype;
7542 fra.me.has_broke = 0;
7543 fra.me.REG_size = 1;
7544 fra.me.REG[0] = NIT_NULL;
7545 fra.me.REG[0] = p0;
7546 fra.me.REG[0] = ATTR_mmbuilder___AParam____stype(fra.me.REG[0]);
7547 /* ./syntax//mmbuilder.nit:1172 */
7548 stack_frame_head = fra.me.prev;
7549 return fra.me.REG[0];
7550 }
7551 void mmbuilder___AParam___stype__eq(val_t p0, val_t p1){
7552 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
7553 val_t tmp;
7554 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7555 fra.me.file = LOCATE_mmbuilder;
7556 fra.me.line = 1172;
7557 fra.me.meth = LOCATE_mmbuilder___AParam___stype__eq;
7558 fra.me.has_broke = 0;
7559 fra.me.REG_size = 2;
7560 fra.me.REG[0] = NIT_NULL;
7561 fra.me.REG[1] = NIT_NULL;
7562 fra.me.REG[0] = p0;
7563 fra.me.REG[1] = p1;
7564 /* ./syntax//mmbuilder.nit:1172 */
7565 ATTR_mmbuilder___AParam____stype(fra.me.REG[0]) = fra.me.REG[1];
7566 stack_frame_head = fra.me.prev;
7567 return;
7568 }
7569 val_t mmbuilder___AParam___is_vararg(val_t p0){
7570 struct {struct stack_frame_t me;} fra;
7571 val_t REGB0;
7572 val_t REGB1;
7573 val_t tmp;
7574 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7575 fra.me.file = LOCATE_mmbuilder;
7576 fra.me.line = 1204;
7577 fra.me.meth = LOCATE_mmbuilder___AParam___is_vararg;
7578 fra.me.has_broke = 0;
7579 fra.me.REG_size = 1;
7580 fra.me.REG[0] = NIT_NULL;
7581 fra.me.REG[0] = p0;
7582 fra.me.REG[0] = CALL_parser_nodes___AParam___n_dotdotdot(fra.me.REG[0])(fra.me.REG[0]);
7583 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7584 /* ./syntax//mmbuilder.nit:1204 */
7585 if (UNTAG_Bool(REGB0)) {
7586 } else {
7587 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7588 if (UNTAG_Bool(REGB1)) {
7589 REGB1 = TAG_Bool(false);
7590 REGB0 = REGB1;
7591 } else {
7592 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7593 REGB0 = REGB1;
7594 }
7595 }
7596 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7597 goto label1;
7598 label1: while(0);
7599 stack_frame_head = fra.me.prev;
7600 return REGB0;
7601 }
7602 val_t mmbuilder___AClosureDecl___position(val_t p0){
7603 struct {struct stack_frame_t me;} fra;
7604 val_t REGB0;
7605 val_t tmp;
7606 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7607 fra.me.file = LOCATE_mmbuilder;
7608 fra.me.line = 1208;
7609 fra.me.meth = LOCATE_mmbuilder___AClosureDecl___position;
7610 fra.me.has_broke = 0;
7611 fra.me.REG_size = 1;
7612 fra.me.REG[0] = NIT_NULL;
7613 fra.me.REG[0] = p0;
7614 REGB0 = TAG_Bool(ATTR_mmbuilder___AClosureDecl____position(fra.me.REG[0])!=NIT_NULL);
7615 /* ./syntax//mmbuilder.nit:1208 */
7616 if (UNTAG_Bool(REGB0)) {
7617 } else {
7618 fprintf(stderr, "Uninitialized attribute %s", "_position");
7619 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1208);
7620 nit_exit(1);
7621 }
7622 REGB0 = ATTR_mmbuilder___AClosureDecl____position(fra.me.REG[0]);
7623 stack_frame_head = fra.me.prev;
7624 return REGB0;
7625 }
7626 val_t mmbuilder___AClosureDecl___variable(val_t p0){
7627 struct {struct stack_frame_t me;} fra;
7628 val_t REGB0;
7629 val_t tmp;
7630 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7631 fra.me.file = LOCATE_mmbuilder;
7632 fra.me.line = 1210;
7633 fra.me.meth = LOCATE_mmbuilder___AClosureDecl___variable;
7634 fra.me.has_broke = 0;
7635 fra.me.REG_size = 1;
7636 fra.me.REG[0] = NIT_NULL;
7637 fra.me.REG[0] = p0;
7638 fra.me.REG[0] = ATTR_mmbuilder___AClosureDecl____variable(fra.me.REG[0]);
7639 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
7640 /* ./syntax//mmbuilder.nit:1210 */
7641 if (UNTAG_Bool(REGB0)) {
7642 } else {
7643 fprintf(stderr, "Cast failed");
7644 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1210);
7645 nit_exit(1);
7646 }
7647 goto label1;
7648 label1: while(0);
7649 stack_frame_head = fra.me.prev;
7650 return fra.me.REG[0];
7651 }
7652 void mmbuilder___AClosureDecl___accept_property_verifier(val_t p0, val_t p1){
7653 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
7654 val_t REGB0;
7655 val_t REGB1;
7656 val_t REGB2;
7657 val_t tmp;
7658 static val_t once_value_2; /* Once value */
7659 static val_t once_value_3; /* Once value */
7660 static val_t once_value_4; /* Once value */
7661 static val_t once_value_5; /* Once value */
7662 static val_t once_value_6; /* Once value */
7663 static val_t once_value_7; /* Once value */
7664 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7665 fra.me.file = LOCATE_mmbuilder;
7666 fra.me.line = 1213;
7667 fra.me.meth = LOCATE_mmbuilder___AClosureDecl___accept_property_verifier;
7668 fra.me.has_broke = 0;
7669 fra.me.REG_size = 10;
7670 fra.me.REG[0] = NIT_NULL;
7671 fra.me.REG[1] = NIT_NULL;
7672 fra.me.REG[2] = NIT_NULL;
7673 fra.me.REG[3] = NIT_NULL;
7674 fra.me.REG[4] = NIT_NULL;
7675 fra.me.REG[5] = NIT_NULL;
7676 fra.me.REG[6] = NIT_NULL;
7677 fra.me.REG[7] = NIT_NULL;
7678 fra.me.REG[8] = NIT_NULL;
7679 fra.me.REG[9] = NIT_NULL;
7680 fra.me.REG[0] = p0;
7681 fra.me.REG[1] = p1;
7682 fra.me.REG[2] = fra.me.REG[0];
7683 fra.me.REG[3] = fra.me.REG[1];
7684 fra.me.REG[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7685 fra.me.REG[5] = NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init();
7686 /* ./syntax//mmbuilder.nit:1216 */
7687 CALL_mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
7688 /* ./syntax//mmbuilder.nit:1217 */
7689 CALL_SUPER_mmbuilder___AClosureDecl___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
7690 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7691 REGB0 = CALL_mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
7692 /* ./syntax//mmbuilder.nit:1218 */
7693 if (UNTAG_Bool(REGB0)) {
7694 /* ./syntax//mmbuilder.nit:1219 */
7695 goto label1;
7696 }
7697 fra.me.REG[1] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
7698 fra.me.REG[1] = CALL_mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
7699 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7700 /* ./syntax//mmbuilder.nit:1222 */
7701 if (UNTAG_Bool(REGB0)) {
7702 } else {
7703 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7704 if (UNTAG_Bool(REGB1)) {
7705 REGB1 = TAG_Bool(false);
7706 REGB0 = REGB1;
7707 } else {
7708 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7709 REGB0 = REGB1;
7710 }
7711 }
7712 if (UNTAG_Bool(REGB0)) {
7713 fra.me.REG[0] = NEW_Array_array___Array___init();
7714 fra.me.REG[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
7715 fra.me.REG[5] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]);
7716 fra.me.REG[5] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[5]);
7717 fra.me.REG[1] = fra.me.REG[5];
7718 /* ./syntax//mmbuilder.nit:1223 */
7719 }
7720 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7721 /* ./syntax//mmbuilder.nit:1225 */
7722 if (UNTAG_Bool(REGB0)) {
7723 fprintf(stderr, "Reciever is null");
7724 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1225);
7725 nit_exit(1);
7726 }
7727 fra.me.REG[5] = CALL_static_type___MMSignature___return_type(fra.me.REG[1])(fra.me.REG[1]);
7728 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7729 if (UNTAG_Bool(REGB0)) {
7730 } else {
7731 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7732 if (UNTAG_Bool(REGB1)) {
7733 REGB1 = TAG_Bool(false);
7734 REGB0 = REGB1;
7735 } else {
7736 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
7737 REGB0 = REGB1;
7738 }
7739 }
7740 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7741 if (UNTAG_Bool(REGB0)) {
7742 fra.me.REG[5] = CALL_parser_nodes___AClosureDecl___n_kwbreak(fra.me.REG[2])(fra.me.REG[2]);
7743 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7744 if (UNTAG_Bool(REGB0)) {
7745 } else {
7746 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7747 if (UNTAG_Bool(REGB1)) {
7748 REGB1 = TAG_Bool(false);
7749 REGB0 = REGB1;
7750 } else {
7751 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
7752 REGB0 = REGB1;
7753 }
7754 }
7755 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7756 } else {
7757 REGB1 = TAG_Bool(false);
7758 REGB0 = REGB1;
7759 }
7760 if (UNTAG_Bool(REGB0)) {
7761 /* ./syntax//mmbuilder.nit:1226 */
7762 if (!once_value_2) {
7763 fra.me.REG[5] = BOX_NativeString("Syntax Error: A break block cannot have a return value.");
7764 REGB0 = TAG_Int(55);
7765 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
7766 once_value_2 = fra.me.REG[5];
7767 register_static_object(&once_value_2);
7768 } else fra.me.REG[5] = once_value_2;
7769 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[5]);
7770 }
7771 fra.me.REG[5] = NEW_Array_array___Array___init();
7772 fra.me.REG[0] = CALL_syntax_base___AbsSyntaxVisitor___module(fra.me.REG[3])(fra.me.REG[3]);
7773 fra.me.REG[0] = CALL_inheritance___MMModule___type_any(fra.me.REG[0])(fra.me.REG[0]);
7774 fra.me.REG[0] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[5], NIT_NULL, fra.me.REG[0]);
7775 /* ./syntax//mmbuilder.nit:1231 */
7776 if (!once_value_3) {
7777 if (!once_value_4) {
7778 fra.me.REG[5] = BOX_NativeString("break");
7779 REGB0 = TAG_Int(5);
7780 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
7781 once_value_4 = fra.me.REG[5];
7782 register_static_object(&once_value_4);
7783 } else fra.me.REG[5] = once_value_4;
7784 fra.me.REG[5] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
7785 once_value_3 = fra.me.REG[5];
7786 register_static_object(&once_value_3);
7787 } else fra.me.REG[5] = once_value_3;
7788 REGB0 = TAG_Bool(false);
7789 REGB1 = TAG_Bool(true);
7790 fra.me.REG[0] = NEW_MMClosure_static_type___MMClosure___init(fra.me.REG[5], fra.me.REG[0], REGB0, REGB1);
7791 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7792 /* ./syntax//mmbuilder.nit:1232 */
7793 if (UNTAG_Bool(REGB1)) {
7794 fprintf(stderr, "Reciever is null");
7795 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1232);
7796 nit_exit(1);
7797 }
7798 fra.me.REG[5] = CALL_static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
7799 array___Array___add(fra.me.REG[5], fra.me.REG[0]);
7800 fra.me.REG[0] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
7801 fra.me.REG[0] = CALL_syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
7802 fra.me.REG[5] = CALL_parser_nodes___AClosureDecl___n_kwbreak(fra.me.REG[2])(fra.me.REG[2]);
7803 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7804 /* ./syntax//mmbuilder.nit:1235 */
7805 if (UNTAG_Bool(REGB1)) {
7806 } else {
7807 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7808 if (UNTAG_Bool(REGB0)) {
7809 REGB0 = TAG_Bool(false);
7810 REGB1 = REGB0;
7811 } else {
7812 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
7813 REGB1 = REGB0;
7814 }
7815 }
7816 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7817 fra.me.REG[5] = CALL_parser_nodes___AClosureDecl___n_expr(fra.me.REG[2])(fra.me.REG[2]);
7818 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7819 if (UNTAG_Bool(REGB0)) {
7820 } else {
7821 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7822 if (UNTAG_Bool(REGB2)) {
7823 REGB2 = TAG_Bool(false);
7824 REGB0 = REGB2;
7825 } else {
7826 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
7827 REGB0 = REGB2;
7828 }
7829 }
7830 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7831 fra.me.REG[1] = NEW_MMClosure_static_type___MMClosure___init(fra.me.REG[0], fra.me.REG[1], REGB1, REGB0);
7832 fra.me.REG[5] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
7833 fra.me.REG[5] = CALL_abstract_collection___Collection___iterator(fra.me.REG[5])(fra.me.REG[5]);
7834 /* ./syntax//mmbuilder.nit:1236 */
7835 while(1) {
7836 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[5])(fra.me.REG[5]);
7837 if (UNTAG_Bool(REGB0)) {
7838 fra.me.REG[6] = CALL_abstract_collection___Iterator___item(fra.me.REG[5])(fra.me.REG[5]);
7839 fra.me.REG[7] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[6])(fra.me.REG[6]);
7840 fra.me.REG[7] = CALL_syntax_base___Token___to_symbol(fra.me.REG[7])(fra.me.REG[7]);
7841 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[7],fra.me.REG[0]));
7842 /* ./syntax//mmbuilder.nit:1237 */
7843 if (UNTAG_Bool(REGB0)) {
7844 } else {
7845 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[0]);
7846 REGB0 = REGB1;
7847 }
7848 if (UNTAG_Bool(REGB0)) {
7849 fra.me.REG[7] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
7850 REGB0 = TAG_Int(5);
7851 fra.me.REG[8] = NEW_Array_array___Array___with_capacity(REGB0);
7852 /* ./syntax//mmbuilder.nit:1238 */
7853 if (!once_value_5) {
7854 fra.me.REG[9] = BOX_NativeString("A closure '!");
7855 REGB0 = TAG_Int(12);
7856 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB0);
7857 once_value_5 = fra.me.REG[9];
7858 register_static_object(&once_value_5);
7859 } else fra.me.REG[9] = once_value_5;
7860 array___Array___add(fra.me.REG[8], fra.me.REG[9]);
7861 fra.me.REG[9] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
7862 array___Array___add(fra.me.REG[8], fra.me.REG[9]);
7863 if (!once_value_6) {
7864 fra.me.REG[9] = BOX_NativeString("' already defined at ");
7865 REGB0 = TAG_Int(21);
7866 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB0);
7867 once_value_6 = fra.me.REG[9];
7868 register_static_object(&once_value_6);
7869 } else fra.me.REG[9] = once_value_6;
7870 array___Array___add(fra.me.REG[8], fra.me.REG[9]);
7871 fra.me.REG[6] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[6])(fra.me.REG[6]);
7872 fra.me.REG[6] = CALL_parser_nodes___ANode___location(fra.me.REG[6])(fra.me.REG[6]);
7873 fra.me.REG[9] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
7874 fra.me.REG[9] = CALL_parser_nodes___ANode___location(fra.me.REG[9])(fra.me.REG[9]);
7875 fra.me.REG[9] = CALL_location___Location___relative_to(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[9]);
7876 array___Array___add(fra.me.REG[8], fra.me.REG[9]);
7877 if (!once_value_7) {
7878 fra.me.REG[9] = BOX_NativeString(".");
7879 REGB0 = TAG_Int(1);
7880 fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB0);
7881 once_value_7 = fra.me.REG[9];
7882 register_static_object(&once_value_7);
7883 } else fra.me.REG[9] = once_value_7;
7884 array___Array___add(fra.me.REG[8], fra.me.REG[9]);
7885 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
7886 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7], fra.me.REG[8]);
7887 /* ./syntax//mmbuilder.nit:1239 */
7888 goto label1;
7889 }
7890 } else {
7891 /* ./syntax//mmbuilder.nit:1236 */
7892 goto label8;
7893 }
7894 CALL_abstract_collection___Iterator___next(fra.me.REG[5])(fra.me.REG[5]);
7895 }
7896 label8: while(0);
7897 /* ./syntax//mmbuilder.nit:1242 */
7898 CALL_mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
7899 fra.me.REG[3] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
7900 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
7901 /* ./../lib/standard//collection//array.nit:23 */
7902 if (UNTAG_Bool(REGB0)) {
7903 } else {
7904 fprintf(stderr, "Uninitialized attribute %s", "_length");
7905 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
7906 nit_exit(1);
7907 }
7908 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
7909 /* ./syntax//mmbuilder.nit:1243 */
7910 ATTR_mmbuilder___AClosureDecl____position(fra.me.REG[2]) = REGB0;
7911 fra.me.REG[4] = CALL_mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
7912 /* ./syntax//mmbuilder.nit:1244 */
7913 array___Array___add(fra.me.REG[4], fra.me.REG[2]);
7914 fra.me.REG[4] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
7915 fra.me.REG[4] = CALL_syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
7916 fra.me.REG[3] = CALL_parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
7917 fra.me.REG[1] = NEW_ClosureVariable_syntax_base___ClosureVariable___init(fra.me.REG[4], fra.me.REG[3], fra.me.REG[1]);
7918 /* ./syntax//mmbuilder.nit:1245 */
7919 ATTR_mmbuilder___AClosureDecl____variable(fra.me.REG[2]) = fra.me.REG[1];
7920 label1: while(0);
7921 stack_frame_head = fra.me.prev;
7922 return;
7923 }
7924 void mmbuilder___AType___check_visibility(val_t p0, val_t p1, val_t p2){
7925 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
7926 val_t REGB0;
7927 val_t REGB1;
7928 val_t tmp;
7929 static val_t once_value_2; /* Once value */
7930 static val_t once_value_3; /* Once value */
7931 static val_t once_value_4; /* Once value */
7932 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7933 fra.me.file = LOCATE_mmbuilder;
7934 fra.me.line = 1250;
7935 fra.me.meth = LOCATE_mmbuilder___AType___check_visibility;
7936 fra.me.has_broke = 0;
7937 fra.me.REG_size = 6;
7938 fra.me.REG[0] = NIT_NULL;
7939 fra.me.REG[1] = NIT_NULL;
7940 fra.me.REG[2] = NIT_NULL;
7941 fra.me.REG[3] = NIT_NULL;
7942 fra.me.REG[4] = NIT_NULL;
7943 fra.me.REG[5] = NIT_NULL;
7944 fra.me.REG[0] = p0;
7945 fra.me.REG[1] = p1;
7946 fra.me.REG[2] = p2;
7947 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
7948 REGB0 = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
7949 REGB1 = TAG_Int(3);
7950 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
7951 /* ./syntax//mmbuilder.nit:1253 */
7952 if (UNTAG_Bool(REGB1)) {
7953 goto label1;
7954 }
7955 fra.me.REG[3] = CALL_syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
7956 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7957 /* ./syntax//mmbuilder.nit:1255 */
7958 if (UNTAG_Bool(REGB1)) {
7959 } else {
7960 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7961 if (UNTAG_Bool(REGB0)) {
7962 REGB0 = TAG_Bool(false);
7963 REGB1 = REGB0;
7964 } else {
7965 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7966 REGB1 = REGB0;
7967 }
7968 }
7969 if (UNTAG_Bool(REGB1)) {
7970 goto label1;
7971 }
7972 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7973 /* ./syntax//mmbuilder.nit:1256 */
7974 if (UNTAG_Bool(REGB1)) {
7975 fprintf(stderr, "Reciever is null");
7976 fprintf(stderr, " (%s:%d)\n", LOCATE_mmbuilder, 1256);
7977 nit_exit(1);
7978 }
7979 fra.me.REG[3] = CALL_static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]);
7980 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
7981 REGB1 = CALL_abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[4])(fra.me.REG[4]);
7982 REGB0 = TAG_Int(3);
7983 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
7984 /* ./syntax//mmbuilder.nit:1257 */
7985 if (UNTAG_Bool(REGB0)) {
7986 REGB0 = TAG_Int(5);
7987 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
7988 /* ./syntax//mmbuilder.nit:1258 */
7989 if (!once_value_2) {
7990 fra.me.REG[5] = BOX_NativeString("Access error: Class ");
7991 REGB0 = TAG_Int(20);
7992 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
7993 once_value_2 = fra.me.REG[5];
7994 register_static_object(&once_value_2);
7995 } else fra.me.REG[5] = once_value_2;
7996 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
7997 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
7998 array___Array___add(fra.me.REG[4], fra.me.REG[3]);
7999 if (!once_value_3) {
8000 fra.me.REG[3] = BOX_NativeString(" is private and cannot be used in the signature of the non-private property ");
8001 REGB0 = TAG_Int(76);
8002 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
8003 once_value_3 = fra.me.REG[3];
8004 register_static_object(&once_value_3);
8005 } else fra.me.REG[3] = once_value_3;
8006 array___Array___add(fra.me.REG[4], fra.me.REG[3]);
8007 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
8008 array___Array___add(fra.me.REG[4], fra.me.REG[3]);
8009 if (!once_value_4) {
8010 fra.me.REG[3] = BOX_NativeString(".");
8011 REGB0 = TAG_Int(1);
8012 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
8013 once_value_4 = fra.me.REG[3];
8014 register_static_object(&once_value_4);
8015 } else fra.me.REG[3] = once_value_4;
8016 array___Array___add(fra.me.REG[4], fra.me.REG[3]);
8017 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
8018 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
8019 }
8020 fra.me.REG[0] = CALL_parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
8021 fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
8022 /* ./syntax//mmbuilder.nit:1260 */
8023 while(1) {
8024 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
8025 if (UNTAG_Bool(REGB0)) {
8026 fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
8027 /* ./syntax//mmbuilder.nit:1261 */
8028 CALL_mmbuilder___AType___check_visibility(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1], fra.me.REG[2]);
8029 } else {
8030 /* ./syntax//mmbuilder.nit:1260 */
8031 goto label5;
8032 }
8033 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
8034 }
8035 label5: while(0);
8036 label1: while(0);
8037 stack_frame_head = fra.me.prev;
8038 return;
8039 }
8040 void mmbuilder___AExpr___accept_class_builder(val_t p0, val_t p1){
8041 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8042 val_t tmp;
8043 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8044 fra.me.file = LOCATE_mmbuilder;
8045 fra.me.line = 1267;
8046 fra.me.meth = LOCATE_mmbuilder___AExpr___accept_class_builder;
8047 fra.me.has_broke = 0;
8048 fra.me.REG_size = 2;
8049 fra.me.REG[0] = NIT_NULL;
8050 fra.me.REG[1] = NIT_NULL;
8051 fra.me.REG[0] = p0;
8052 fra.me.REG[1] = p1;
8053 /* ./syntax//mmbuilder.nit:1267 */
8054 stack_frame_head = fra.me.prev;
8055 return;
8056 }
8057 void mmbuilder___AExpr___accept_property_builder(val_t p0, val_t p1){
8058 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8059 val_t tmp;
8060 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8061 fra.me.file = LOCATE_mmbuilder;
8062 fra.me.line = 1268;
8063 fra.me.meth = LOCATE_mmbuilder___AExpr___accept_property_builder;
8064 fra.me.has_broke = 0;
8065 fra.me.REG_size = 2;
8066 fra.me.REG[0] = NIT_NULL;
8067 fra.me.REG[1] = NIT_NULL;
8068 fra.me.REG[0] = p0;
8069 fra.me.REG[1] = p1;
8070 /* ./syntax//mmbuilder.nit:1268 */
8071 stack_frame_head = fra.me.prev;
8072 return;
8073 }
8074 void mmbuilder___AExpr___accept_property_verifier(val_t p0, val_t p1){
8075 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8076 val_t tmp;
8077 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8078 fra.me.file = LOCATE_mmbuilder;
8079 fra.me.line = 1269;
8080 fra.me.meth = LOCATE_mmbuilder___AExpr___accept_property_verifier;
8081 fra.me.has_broke = 0;
8082 fra.me.REG_size = 2;
8083 fra.me.REG[0] = NIT_NULL;
8084 fra.me.REG[1] = NIT_NULL;
8085 fra.me.REG[0] = p0;
8086 fra.me.REG[1] = p1;
8087 /* ./syntax//mmbuilder.nit:1269 */
8088 stack_frame_head = fra.me.prev;
8089 return;
8090 }