Merge branch 'nitdoc2' into wip
[nit.git] / c_src / syntax___mmbuilder._sep.c
1 /* This C file is generated by NIT to compile module syntax___mmbuilder. */
2 #include "syntax___mmbuilder._sep.h"
3 void syntax___mmbuilder___ToolContext___handle_property_conflict(val_t p0, val_t p1, val_t p2){
4 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
5 val_t REGB0;
6 val_t REGB1;
7 val_t REGB2;
8 val_t tmp;
9 static val_t once_value_2; /* Once value */
10 static val_t once_value_3; /* Once value */
11 static val_t once_value_4; /* Once value */
12 static val_t once_value_5; /* Once value */
13 static val_t once_value_6; /* Once value */
14 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15 fra.me.file = LOCATE_syntax___mmbuilder;
16 fra.me.line = 25;
17 fra.me.meth = LOCATE_syntax___mmbuilder___ToolContext___handle_property_conflict;
18 fra.me.has_broke = 0;
19 fra.me.REG_size = 8;
20 fra.me.REG[0] = NIT_NULL;
21 fra.me.REG[1] = NIT_NULL;
22 fra.me.REG[2] = NIT_NULL;
23 fra.me.REG[3] = NIT_NULL;
24 fra.me.REG[4] = NIT_NULL;
25 fra.me.REG[5] = NIT_NULL;
26 fra.me.REG[6] = NIT_NULL;
27 fra.me.REG[7] = NIT_NULL;
28 fra.me.REG[0] = p0;
29 fra.me.REG[1] = p1;
30 fra.me.REG[2] = p2;
31 /* ./syntax//mmbuilder.nit:27 */
32 fra.me.REG[3] = NIT_NULL;
33 /* ./syntax//mmbuilder.nit:28 */
34 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_syntax___syntax_base___MMSrcLocalClass, ID_syntax___syntax_base___MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
35 if (UNTAG_Bool(REGB0)) {
36 /* ./syntax//mmbuilder.nit:29 */
37 fra.me.REG[4] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[1])(fra.me.REG[1]);
38 /* ./syntax//mmbuilder.nit:30 */
39 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
40 if (UNTAG_Bool(REGB0)) {
41 } else {
42 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
43 if (UNTAG_Bool(REGB1)) {
44 REGB1 = TAG_Bool(false);
45 REGB0 = REGB1;
46 } else {
47 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
48 REGB0 = REGB1;
49 }
50 }
51 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
52 if (UNTAG_Bool(REGB0)) {
53 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
54 if (UNTAG_Bool(REGB0)) {
55 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 30);
56 }
57 CALL_parser___parser_nodes___ANode___location(fra.me.REG[4])(fra.me.REG[4]);
58 }
59 }
60 /* ./syntax//mmbuilder.nit:33 */
61 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
62 /* ./../lib/standard//collection//array.nit:229 */
63 fra.me.REG[5] = fra.me.REG[2];
64 /* ./../lib/standard//collection//array.nit:232 */
65 REGB0 = TAG_Int(0);
66 /* ./../lib/standard//collection//array.nit:233 */
67 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
68 if (UNTAG_Bool(REGB1)) {
69 } else {
70 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 233);
71 }
72 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
73 /* ./../lib/standard//collection//array.nit:234 */
74 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
75 /* ./../lib/standard//collection//array.nit:235 */
76 while(1) {
77 /* ./../lib/standard//collection//array.nit:23 */
78 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
79 if (UNTAG_Bool(REGB1)) {
80 } else {
81 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
82 }
83 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
84 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
85 if (UNTAG_Bool(REGB2)) {
86 } else {
87 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
88 }
89 /* ./../lib/standard//kernel.nit:215 */
90 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
91 /* ./../lib/standard//collection//array.nit:235 */
92 if (UNTAG_Bool(REGB1)) {
93 /* ./../lib/standard//collection//array.nit:236 */
94 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
95 if (UNTAG_Bool(REGB1)) {
96 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 236);
97 }
98 /* ./../lib/standard//collection//array.nit:652 */
99 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
100 /* ./syntax//mmbuilder.nit:35 */
101 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[7])(fra.me.REG[7]);
102 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
103 /* ./../lib/standard//collection//array.nit:237 */
104 REGB1 = TAG_Int(1);
105 /* ./../lib/standard//kernel.nit:218 */
106 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
107 /* ./../lib/standard//collection//array.nit:237 */
108 REGB0 = REGB1;
109 } else {
110 /* ./../lib/standard//collection//array.nit:235 */
111 goto label1;
112 }
113 }
114 label1: while(0);
115 /* ./syntax//mmbuilder.nit:37 */
116 REGB0 = TAG_Int(7);
117 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
118 if (!once_value_2) {
119 fra.me.REG[5] = BOX_NativeString("Property inheritance conflict in class ");
120 REGB0 = TAG_Int(39);
121 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
122 once_value_2 = fra.me.REG[5];
123 register_static_object(&once_value_2);
124 } else fra.me.REG[5] = once_value_2;
125 fra.me.REG[5] = fra.me.REG[5];
126 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
127 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
128 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1]);
129 if (!once_value_3) {
130 fra.me.REG[1] = BOX_NativeString(" for `");
131 REGB0 = TAG_Int(6);
132 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
133 once_value_3 = fra.me.REG[1];
134 register_static_object(&once_value_3);
135 } else fra.me.REG[1] = once_value_3;
136 fra.me.REG[1] = fra.me.REG[1];
137 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1]);
138 fra.me.REG[2] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]);
139 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
140 if (UNTAG_Bool(REGB0)) {
141 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 37);
142 }
143 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
144 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
145 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
146 if (!once_value_4) {
147 fra.me.REG[2] = BOX_NativeString("': conflicting properties are defined in ");
148 REGB0 = TAG_Int(41);
149 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
150 once_value_4 = fra.me.REG[2];
151 register_static_object(&once_value_4);
152 } else fra.me.REG[2] = once_value_4;
153 fra.me.REG[2] = fra.me.REG[2];
154 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
155 if (!once_value_5) {
156 fra.me.REG[2] = BOX_NativeString(", ");
157 REGB0 = TAG_Int(2);
158 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
159 once_value_5 = fra.me.REG[2];
160 register_static_object(&once_value_5);
161 } else fra.me.REG[2] = once_value_5;
162 fra.me.REG[2] = fra.me.REG[2];
163 fra.me.REG[2] = CALL_standard___string___Collection___join(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
164 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
165 if (!once_value_6) {
166 fra.me.REG[2] = BOX_NativeString("");
167 REGB0 = TAG_Int(0);
168 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
169 once_value_6 = fra.me.REG[2];
170 register_static_object(&once_value_6);
171 } else fra.me.REG[2] = once_value_6;
172 fra.me.REG[2] = fra.me.REG[2];
173 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
174 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
175 CALL_mmloader___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[6]);
176 stack_frame_head = fra.me.prev;
177 return;
178 }
179 val_t syntax___mmbuilder___CSHSorter___compare(val_t p0, val_t p1, val_t p2){
180 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
181 val_t REGB0;
182 val_t REGB1;
183 val_t tmp;
184 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
185 fra.me.file = LOCATE_syntax___mmbuilder;
186 fra.me.line = 44;
187 fra.me.meth = LOCATE_syntax___mmbuilder___CSHSorter___compare;
188 fra.me.has_broke = 0;
189 fra.me.REG_size = 3;
190 fra.me.REG[0] = NIT_NULL;
191 fra.me.REG[1] = NIT_NULL;
192 fra.me.REG[2] = NIT_NULL;
193 fra.me.REG[0] = p0;
194 fra.me.REG[1] = p1;
195 fra.me.REG[2] = p2;
196 /* ./syntax//mmbuilder.nit:46 */
197 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[1])(fra.me.REG[1]);
198 REGB0 = CALL_metamodel___partial_order___PartialOrderElement___rank(fra.me.REG[1])(fra.me.REG[1]);
199 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[2])(fra.me.REG[2]);
200 REGB1 = CALL_metamodel___partial_order___PartialOrderElement___rank(fra.me.REG[2])(fra.me.REG[2]);
201 REGB1 = CALL_standard___kernel___Comparable_____leqg(REGB0)(REGB0, REGB1);
202 goto label1;
203 label1: while(0);
204 stack_frame_head = fra.me.prev;
205 return REGB1;
206 }
207 void syntax___mmbuilder___CSHSorter___init(val_t p0, int* init_table){
208 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___CSHSorter].i;
209 struct {struct stack_frame_t me;} fra;
210 val_t tmp;
211 if (init_table[itpos0]) return;
212 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
213 fra.me.file = LOCATE_syntax___mmbuilder;
214 fra.me.line = 49;
215 fra.me.meth = LOCATE_syntax___mmbuilder___CSHSorter___init;
216 fra.me.has_broke = 0;
217 fra.me.REG_size = 1;
218 fra.me.REG[0] = NIT_NULL;
219 fra.me.REG[0] = p0;
220 /* ./syntax//mmbuilder.nit:49 */
221 CALL_standard___collection___sorter___AbstractSorter___init(fra.me.REG[0])(fra.me.REG[0], init_table);
222 stack_frame_head = fra.me.prev;
223 init_table[itpos0] = 1;
224 return;
225 }
226 void syntax___mmbuilder___MMSrcModule___do_mmbuilder(val_t p0, val_t p1){
227 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
228 val_t REGB0;
229 val_t REGB1;
230 val_t REGB2;
231 val_t tmp;
232 static val_t once_value_3; /* Once value */
233 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
234 fra.me.file = LOCATE_syntax___mmbuilder;
235 fra.me.line = 53;
236 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcModule___do_mmbuilder;
237 fra.me.has_broke = 0;
238 fra.me.REG_size = 8;
239 fra.me.REG[0] = NIT_NULL;
240 fra.me.REG[1] = NIT_NULL;
241 fra.me.REG[2] = NIT_NULL;
242 fra.me.REG[3] = NIT_NULL;
243 fra.me.REG[4] = NIT_NULL;
244 fra.me.REG[5] = NIT_NULL;
245 fra.me.REG[6] = NIT_NULL;
246 fra.me.REG[7] = NIT_NULL;
247 fra.me.REG[0] = p0;
248 fra.me.REG[1] = p1;
249 /* ./syntax//mmbuilder.nit:58 */
250 CALL_metamodel___inheritance___MMModule___import_global_classes(fra.me.REG[0])(fra.me.REG[0]);
251 /* ./syntax//mmbuilder.nit:61 */
252 fra.me.REG[2] = NEW_ClassBuilderVisitor_syntax___mmbuilder___ClassBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]);
253 /* ./syntax//mmbuilder.nit:62 */
254 fra.me.REG[3] = CALL_syntax___syntax_base___MMSrcModule___node(fra.me.REG[0])(fra.me.REG[0]);
255 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
256 /* ./syntax//mmbuilder.nit:63 */
257 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
258 /* ./syntax//mmbuilder.nit:65 */
259 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra.me.REG[0])(fra.me.REG[0]);
260 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
261 if (UNTAG_Bool(REGB0)) {
262 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 65);
263 }
264 fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[3])(fra.me.REG[3]);
265 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
266 if (UNTAG_Bool(REGB0)) {
267 /* ./syntax//mmbuilder.nit:66 */
268 CALL_syntax___mmbuilder___MMSrcModule___process_default_classes(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
269 }
270 /* ./syntax//mmbuilder.nit:70 */
271 CALL_metamodel___inheritance___MMModule___import_local_classes(fra.me.REG[0])(fra.me.REG[0]);
272 /* ./syntax//mmbuilder.nit:73 */
273 fra.me.REG[3] = NEW_ClassSpecializationBuilderVisitor_syntax___mmbuilder___ClassSpecializationBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]);
274 /* ./syntax//mmbuilder.nit:74 */
275 fra.me.REG[2] = CALL_syntax___syntax_base___MMSrcModule___node(fra.me.REG[0])(fra.me.REG[0]);
276 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
277 /* ./syntax//mmbuilder.nit:75 */
278 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
279 /* ./syntax//mmbuilder.nit:78 */
280 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
281 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcModule___do_mmbuilder_1));
282 /* ./syntax//mmbuilder.nit:84 */
283 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
284 /* ./syntax//mmbuilder.nit:89 */
285 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___class_specialization_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
286 fra.me.REG[2] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[2])(fra.me.REG[2]);
287 /* ./syntax//mmbuilder.nit:92 */
288 if (!once_value_3) {
289 fra.me.REG[3] = NEW_CSHSorter_syntax___mmbuilder___CSHSorter___init();
290 once_value_3 = fra.me.REG[3];
291 register_static_object(&once_value_3);
292 } else fra.me.REG[3] = once_value_3;
293 fra.me.REG[3] = fra.me.REG[3];
294 /* ./syntax//mmbuilder.nit:93 */
295 CALL_standard___collection___sorter___AbstractSorter___sort(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
296 /* ./syntax//mmbuilder.nit:96 */
297 fra.me.REG[3] = NEW_ClassAncestorBuilder_syntax___mmbuilder___ClassAncestorBuilder___init(fra.me.REG[1], fra.me.REG[0]);
298 /* ./../lib/standard//collection//array.nit:229 */
299 fra.me.REG[4] = fra.me.REG[2];
300 /* ./../lib/standard//collection//array.nit:232 */
301 REGB0 = TAG_Int(0);
302 /* ./../lib/standard//collection//array.nit:233 */
303 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
304 if (UNTAG_Bool(REGB1)) {
305 } else {
306 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 233);
307 }
308 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
309 /* ./../lib/standard//collection//array.nit:234 */
310 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
311 /* ./../lib/standard//collection//array.nit:235 */
312 while(1) {
313 /* ./../lib/standard//collection//array.nit:23 */
314 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
315 if (UNTAG_Bool(REGB1)) {
316 } else {
317 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
318 }
319 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
320 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
321 if (UNTAG_Bool(REGB2)) {
322 } else {
323 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
324 }
325 /* ./../lib/standard//kernel.nit:215 */
326 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
327 /* ./../lib/standard//collection//array.nit:235 */
328 if (UNTAG_Bool(REGB1)) {
329 /* ./../lib/standard//collection//array.nit:236 */
330 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
331 if (UNTAG_Bool(REGB1)) {
332 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 236);
333 }
334 /* ./../lib/standard//collection//array.nit:652 */
335 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
336 /* ./syntax//mmbuilder.nit:98 */
337 CALL_syntax___mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
338 /* ./syntax//mmbuilder.nit:99 */
339 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
340 /* ./syntax//mmbuilder.nit:100 */
341 CALL_metamodel___inheritance___MMLocalClass___compute_ancestors(fra.me.REG[6])(fra.me.REG[6]);
342 /* ./../lib/standard//collection//array.nit:237 */
343 REGB1 = TAG_Int(1);
344 /* ./../lib/standard//kernel.nit:218 */
345 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
346 /* ./../lib/standard//collection//array.nit:237 */
347 REGB0 = REGB1;
348 } else {
349 /* ./../lib/standard//collection//array.nit:235 */
350 goto label4;
351 }
352 }
353 label4: while(0);
354 /* ./syntax//mmbuilder.nit:104 */
355 fra.me.REG[3] = NEW_ClassVerifierVisitor_syntax___mmbuilder___ClassVerifierVisitor___init(fra.me.REG[1], fra.me.REG[0]);
356 /* ./../lib/standard//collection//array.nit:229 */
357 fra.me.REG[5] = fra.me.REG[2];
358 /* ./../lib/standard//collection//array.nit:232 */
359 REGB0 = TAG_Int(0);
360 /* ./../lib/standard//collection//array.nit:233 */
361 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
362 if (UNTAG_Bool(REGB1)) {
363 } else {
364 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 233);
365 }
366 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
367 /* ./../lib/standard//collection//array.nit:234 */
368 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
369 /* ./../lib/standard//collection//array.nit:235 */
370 while(1) {
371 /* ./../lib/standard//collection//array.nit:23 */
372 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
373 if (UNTAG_Bool(REGB1)) {
374 } else {
375 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
376 }
377 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
378 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
379 if (UNTAG_Bool(REGB2)) {
380 } else {
381 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
382 }
383 /* ./../lib/standard//kernel.nit:215 */
384 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
385 /* ./../lib/standard//collection//array.nit:235 */
386 if (UNTAG_Bool(REGB1)) {
387 /* ./../lib/standard//collection//array.nit:236 */
388 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
389 if (UNTAG_Bool(REGB1)) {
390 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 236);
391 }
392 /* ./../lib/standard//collection//array.nit:652 */
393 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
394 /* ./syntax//mmbuilder.nit:106 */
395 CALL_syntax___mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
396 /* ./../lib/standard//collection//array.nit:237 */
397 REGB1 = TAG_Int(1);
398 /* ./../lib/standard//kernel.nit:218 */
399 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
400 /* ./../lib/standard//collection//array.nit:237 */
401 REGB0 = REGB1;
402 } else {
403 /* ./../lib/standard//collection//array.nit:235 */
404 goto label5;
405 }
406 }
407 label5: while(0);
408 /* ./syntax//mmbuilder.nit:108 */
409 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
410 /* ./syntax//mmbuilder.nit:111 */
411 fra.me.REG[3] = NEW_PropertyBuilderVisitor_syntax___mmbuilder___PropertyBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]);
412 /* ./../lib/standard//collection//array.nit:229 */
413 fra.me.REG[4] = fra.me.REG[2];
414 /* ./../lib/standard//collection//array.nit:232 */
415 REGB0 = TAG_Int(0);
416 /* ./../lib/standard//collection//array.nit:233 */
417 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
418 if (UNTAG_Bool(REGB1)) {
419 } else {
420 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 233);
421 }
422 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
423 /* ./../lib/standard//collection//array.nit:234 */
424 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
425 /* ./../lib/standard//collection//array.nit:235 */
426 while(1) {
427 /* ./../lib/standard//collection//array.nit:23 */
428 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
429 if (UNTAG_Bool(REGB1)) {
430 } else {
431 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
432 }
433 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
434 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
435 if (UNTAG_Bool(REGB2)) {
436 } else {
437 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
438 }
439 /* ./../lib/standard//kernel.nit:215 */
440 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
441 /* ./../lib/standard//collection//array.nit:235 */
442 if (UNTAG_Bool(REGB1)) {
443 /* ./../lib/standard//collection//array.nit:236 */
444 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
445 if (UNTAG_Bool(REGB1)) {
446 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 236);
447 }
448 /* ./../lib/standard//collection//array.nit:652 */
449 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
450 /* ./syntax//mmbuilder.nit:114 */
451 CALL_syntax___mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
452 /* ./syntax//mmbuilder.nit:117 */
453 REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[6], COLOR_syntax___syntax_base___MMSrcLocalClass, ID_syntax___syntax_base___MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
454 if (UNTAG_Bool(REGB1)) {
455 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
456 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[7])(fra.me.REG[7]);
457 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[7],fra.me.REG[6]));
458 if (UNTAG_Bool(REGB1)) {
459 } else {
460 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
461 REGB1 = REGB2;
462 }
463 } else {
464 REGB2 = TAG_Bool(false);
465 REGB1 = REGB2;
466 }
467 if (UNTAG_Bool(REGB1)) {
468 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
469 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[7])(fra.me.REG[7]);
470 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
471 } else {
472 REGB2 = TAG_Bool(false);
473 REGB1 = REGB2;
474 }
475 if (UNTAG_Bool(REGB1)) {
476 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
477 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[7])(fra.me.REG[7]);
478 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
479 } else {
480 REGB2 = TAG_Bool(false);
481 REGB1 = REGB2;
482 }
483 if (UNTAG_Bool(REGB1)) {
484 /* ./syntax//mmbuilder.nit:118 */
485 CALL_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
486 }
487 /* ./../lib/standard//collection//array.nit:237 */
488 REGB1 = TAG_Int(1);
489 /* ./../lib/standard//kernel.nit:218 */
490 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
491 /* ./../lib/standard//collection//array.nit:237 */
492 REGB0 = REGB1;
493 } else {
494 /* ./../lib/standard//collection//array.nit:235 */
495 goto label6;
496 }
497 }
498 label6: while(0);
499 /* ./syntax//mmbuilder.nit:123 */
500 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
501 /* ./syntax//mmbuilder.nit:126 */
502 fra.me.REG[0] = NEW_PropertyVerifierVisitor_syntax___mmbuilder___PropertyVerifierVisitor___init(fra.me.REG[1], fra.me.REG[0]);
503 /* ./../lib/standard//collection//array.nit:232 */
504 REGB0 = TAG_Int(0);
505 /* ./../lib/standard//collection//array.nit:233 */
506 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
507 if (UNTAG_Bool(REGB1)) {
508 } else {
509 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 233);
510 }
511 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
512 /* ./../lib/standard//collection//array.nit:234 */
513 fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
514 /* ./../lib/standard//collection//array.nit:235 */
515 while(1) {
516 /* ./../lib/standard//collection//array.nit:23 */
517 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
518 if (UNTAG_Bool(REGB1)) {
519 } else {
520 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
521 }
522 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
523 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
524 if (UNTAG_Bool(REGB2)) {
525 } else {
526 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
527 }
528 /* ./../lib/standard//kernel.nit:215 */
529 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
530 /* ./../lib/standard//collection//array.nit:235 */
531 if (UNTAG_Bool(REGB1)) {
532 /* ./../lib/standard//collection//array.nit:236 */
533 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
534 if (UNTAG_Bool(REGB1)) {
535 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 236);
536 }
537 /* ./../lib/standard//collection//array.nit:652 */
538 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
539 /* ./syntax//mmbuilder.nit:128 */
540 CALL_syntax___mmbuilder___MMLocalClass___accept_properties_visitor(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
541 /* ./../lib/standard//collection//array.nit:237 */
542 REGB1 = TAG_Int(1);
543 /* ./../lib/standard//kernel.nit:218 */
544 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
545 /* ./../lib/standard//collection//array.nit:237 */
546 REGB0 = REGB1;
547 } else {
548 /* ./../lib/standard//collection//array.nit:235 */
549 goto label7;
550 }
551 }
552 label7: while(0);
553 /* ./syntax//mmbuilder.nit:131 */
554 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
555 stack_frame_head = fra.me.prev;
556 return;
557 }
558 void OC_syntax___mmbuilder___MMSrcModule___do_mmbuilder_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
559 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
560 val_t REGB0;
561 val_t REGB1;
562 val_t REGB2;
563 fun_t CREG[1];
564 val_t tmp;
565 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
566 fra.me.file = LOCATE_syntax___mmbuilder;
567 fra.me.line = 0;
568 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcModule___do_mmbuilder;
569 fra.me.has_broke = 0;
570 fra.me.REG_size = 2;
571 fra.me.REG[0] = NIT_NULL;
572 fra.me.REG[1] = NIT_NULL;
573 fra.me.closure_ctx = closctx_param;
574 fra.me.closure_funs = CREG;
575 fra.me.REG[0] = p0;
576 CREG[0] = clos_fun0;
577 /* ./syntax//mmbuilder.nit:79 */
578 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
579 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
580 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
581 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___visibility_for(closctx->REG[0])(closctx->REG[0], fra.me.REG[1]);
582 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
583 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[1])(fra.me.REG[1]);
584 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
585 if (UNTAG_Bool(REGB2)) {
586 } else {
587 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
588 }
589 /* ./../lib/standard//kernel.nit:215 */
590 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
591 /* ./syntax//mmbuilder.nit:79 */
592 if (UNTAG_Bool(REGB1)) {
593 /* ./syntax//mmbuilder.nit:80 */
594 goto label2;
595 }
596 /* ./syntax//mmbuilder.nit:82 */
597 CALL_metamodel___inheritance___MMLocalClass___compute_super_classes(fra.me.REG[0])(fra.me.REG[0]);
598 label2: while(0);
599 stack_frame_head = fra.me.prev;
600 return;
601 }
602 void syntax___mmbuilder___MMSrcModule___process_default_classes(val_t p0, val_t p1){
603 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
604 val_t REGB0;
605 val_t tmp;
606 static val_t once_value_1; /* Once value */
607 static val_t once_value_2; /* Once value */
608 static val_t once_value_3; /* Once value */
609 static val_t once_value_4; /* Once value */
610 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
611 fra.me.file = LOCATE_syntax___mmbuilder;
612 fra.me.line = 134;
613 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcModule___process_default_classes;
614 fra.me.has_broke = 0;
615 fra.me.REG_size = 4;
616 fra.me.REG[0] = NIT_NULL;
617 fra.me.REG[1] = NIT_NULL;
618 fra.me.REG[2] = NIT_NULL;
619 fra.me.REG[3] = NIT_NULL;
620 fra.me.REG[0] = p0;
621 fra.me.REG[1] = p1;
622 /* ./syntax//mmbuilder.nit:137 */
623 if (!once_value_1) {
624 if (!once_value_2) {
625 fra.me.REG[1] = BOX_NativeString("Object");
626 REGB0 = TAG_Int(6);
627 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
628 once_value_2 = fra.me.REG[1];
629 register_static_object(&once_value_2);
630 } else fra.me.REG[1] = once_value_2;
631 fra.me.REG[1] = fra.me.REG[1];
632 fra.me.REG[1] = CALL_standard___symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
633 once_value_1 = fra.me.REG[1];
634 register_static_object(&once_value_1);
635 } else fra.me.REG[1] = once_value_1;
636 fra.me.REG[1] = fra.me.REG[1];
637 /* ./syntax//mmbuilder.nit:138 */
638 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
639 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
640 if (UNTAG_Bool(REGB0)) {
641 /* ./syntax//mmbuilder.nit:139 */
642 REGB0 = TAG_Int(0);
643 fra.me.REG[2] = NEW_MMSrcLocalClass_syntax___syntax_base___MMSrcLocalClass___init(fra.me.REG[0], fra.me.REG[1], NIT_NULL, REGB0);
644 /* ./syntax//mmbuilder.nit:140 */
645 CALL_metamodel___abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
646 /* ./syntax//mmbuilder.nit:141 */
647 fra.me.REG[3] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra.me.REG[0])(fra.me.REG[0]);
648 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[2]);
649 }
650 /* ./syntax//mmbuilder.nit:143 */
651 if (!once_value_3) {
652 if (!once_value_4) {
653 fra.me.REG[2] = BOX_NativeString("Bool");
654 REGB0 = TAG_Int(4);
655 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
656 once_value_4 = fra.me.REG[2];
657 register_static_object(&once_value_4);
658 } else fra.me.REG[2] = once_value_4;
659 fra.me.REG[2] = fra.me.REG[2];
660 fra.me.REG[2] = CALL_standard___symbol___String___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
661 once_value_3 = fra.me.REG[2];
662 register_static_object(&once_value_3);
663 } else fra.me.REG[2] = once_value_3;
664 fra.me.REG[2] = fra.me.REG[2];
665 fra.me.REG[1] = fra.me.REG[2];
666 /* ./syntax//mmbuilder.nit:144 */
667 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
668 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
669 if (UNTAG_Bool(REGB0)) {
670 /* ./syntax//mmbuilder.nit:145 */
671 REGB0 = TAG_Int(0);
672 fra.me.REG[2] = NEW_MMSrcLocalClass_syntax___syntax_base___MMSrcLocalClass___init(fra.me.REG[0], fra.me.REG[1], NIT_NULL, REGB0);
673 /* ./syntax//mmbuilder.nit:146 */
674 CALL_metamodel___abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
675 /* ./syntax//mmbuilder.nit:147 */
676 fra.me.REG[0] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra.me.REG[0])(fra.me.REG[0]);
677 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
678 }
679 stack_frame_head = fra.me.prev;
680 return;
681 }
682 void syntax___mmbuilder___MMLocalClass___accept_class_visitor(val_t p0, val_t p1){
683 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
684 val_t tmp;
685 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
686 fra.me.file = LOCATE_syntax___mmbuilder;
687 fra.me.line = 153;
688 fra.me.meth = LOCATE_syntax___mmbuilder___MMLocalClass___accept_class_visitor;
689 fra.me.has_broke = 0;
690 fra.me.REG_size = 2;
691 fra.me.REG[0] = NIT_NULL;
692 fra.me.REG[1] = NIT_NULL;
693 fra.me.REG[0] = p0;
694 fra.me.REG[1] = p1;
695 stack_frame_head = fra.me.prev;
696 return;
697 }
698 void syntax___mmbuilder___MMLocalClass___accept_properties_visitor(val_t p0, val_t p1){
699 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
700 val_t tmp;
701 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
702 fra.me.file = LOCATE_syntax___mmbuilder;
703 fra.me.line = 158;
704 fra.me.meth = LOCATE_syntax___mmbuilder___MMLocalClass___accept_properties_visitor;
705 fra.me.has_broke = 0;
706 fra.me.REG_size = 2;
707 fra.me.REG[0] = NIT_NULL;
708 fra.me.REG[1] = NIT_NULL;
709 fra.me.REG[0] = p0;
710 fra.me.REG[1] = p1;
711 stack_frame_head = fra.me.prev;
712 return;
713 }
714 void syntax___mmbuilder___MMSrcLocalClass___accept_class_visitor(val_t p0, val_t p1){
715 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
716 val_t REGB0;
717 val_t REGB1;
718 val_t tmp;
719 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
720 fra.me.file = LOCATE_syntax___mmbuilder;
721 fra.me.line = 165;
722 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___accept_class_visitor;
723 fra.me.has_broke = 0;
724 fra.me.REG_size = 3;
725 fra.me.REG[0] = NIT_NULL;
726 fra.me.REG[1] = NIT_NULL;
727 fra.me.REG[2] = NIT_NULL;
728 fra.me.REG[0] = p0;
729 fra.me.REG[1] = p1;
730 /* ./syntax//mmbuilder.nit:167 */
731 fra.me.REG[0] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[0])(fra.me.REG[0]);
732 /* ./syntax//mmbuilder.nit:168 */
733 while(1) {
734 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
735 if (UNTAG_Bool(REGB0)) {
736 } else {
737 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
738 if (UNTAG_Bool(REGB1)) {
739 REGB1 = TAG_Bool(false);
740 REGB0 = REGB1;
741 } else {
742 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
743 REGB0 = REGB1;
744 }
745 }
746 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
747 if (UNTAG_Bool(REGB0)) {
748 /* ./syntax//mmbuilder.nit:169 */
749 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
750 /* ./syntax//mmbuilder.nit:170 */
751 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
752 if (UNTAG_Bool(REGB0)) {
753 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 170);
754 }
755 fra.me.REG[2] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[0])(fra.me.REG[0]);
756 fra.me.REG[0] = fra.me.REG[2];
757 } else {
758 /* ./syntax//mmbuilder.nit:168 */
759 goto label1;
760 }
761 }
762 label1: while(0);
763 stack_frame_head = fra.me.prev;
764 return;
765 }
766 void syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor(val_t p0, val_t p1){
767 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
768 val_t REGB0;
769 val_t REGB1;
770 val_t tmp;
771 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
772 fra.me.file = LOCATE_syntax___mmbuilder;
773 fra.me.line = 174;
774 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor;
775 fra.me.has_broke = 0;
776 fra.me.REG_size = 4;
777 fra.me.REG[0] = NIT_NULL;
778 fra.me.REG[1] = NIT_NULL;
779 fra.me.REG[2] = NIT_NULL;
780 fra.me.REG[3] = NIT_NULL;
781 fra.me.REG[0] = p0;
782 fra.me.REG[1] = p1;
783 /* ./syntax//mmbuilder.nit:177 */
784 fra.me.REG[2] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[0])(fra.me.REG[0]);
785 /* ./syntax//mmbuilder.nit:178 */
786 while(1) {
787 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
788 if (UNTAG_Bool(REGB0)) {
789 } else {
790 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
791 if (UNTAG_Bool(REGB1)) {
792 REGB1 = TAG_Bool(false);
793 REGB0 = REGB1;
794 } else {
795 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
796 REGB0 = REGB1;
797 }
798 }
799 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
800 if (UNTAG_Bool(REGB0)) {
801 /* ./syntax//mmbuilder.nit:179 */
802 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
803 /* ./syntax//mmbuilder.nit:180 */
804 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
805 if (UNTAG_Bool(REGB0)) {
806 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 180);
807 }
808 fra.me.REG[3] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[2])(fra.me.REG[2]);
809 fra.me.REG[2] = fra.me.REG[3];
810 } else {
811 /* ./syntax//mmbuilder.nit:178 */
812 goto label1;
813 }
814 }
815 label1: while(0);
816 /* ./syntax//mmbuilder.nit:183 */
817 fra.me.REG[0] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
818 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor_2));
819 stack_frame_head = fra.me.prev;
820 return;
821 }
822 void OC_syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
823 struct {struct stack_frame_t me;} fra;
824 fun_t CREG[1];
825 val_t tmp;
826 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
827 fra.me.file = LOCATE_syntax___mmbuilder;
828 fra.me.line = 0;
829 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor;
830 fra.me.has_broke = 0;
831 fra.me.REG_size = 1;
832 fra.me.REG[0] = NIT_NULL;
833 fra.me.closure_ctx = closctx_param;
834 fra.me.closure_funs = CREG;
835 fra.me.REG[0] = p0;
836 CREG[0] = clos_fun0;
837 /* ./syntax//mmbuilder.nit:184 */
838 CALL_syntax___mmbuilder___MMLocalProperty___accept_property_visitor(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
839 stack_frame_head = fra.me.prev;
840 return;
841 }
842 void syntax___mmbuilder___MMSrcLocalClass___process_default_constructors(val_t p0, val_t p1){
843 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
844 val_t REGB0;
845 val_t REGB1;
846 val_t REGB2;
847 val_t tmp;
848 static val_t once_value_7; /* Once value */
849 static val_t once_value_8; /* Once value */
850 static val_t once_value_13; /* Once value */
851 static val_t once_value_14; /* Once value */
852 static val_t once_value_15; /* Once value */
853 static val_t once_value_16; /* Once value */
854 static val_t once_value_17; /* Once value */
855 static val_t once_value_18; /* Once value */
856 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
857 fra.me.file = LOCATE_syntax___mmbuilder;
858 fra.me.line = 188;
859 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
860 fra.me.has_broke = 0;
861 fra.me.REG_size = 11;
862 fra.me.REG[0] = NIT_NULL;
863 fra.me.REG[1] = NIT_NULL;
864 fra.me.REG[2] = NIT_NULL;
865 fra.me.REG[3] = NIT_NULL;
866 fra.me.REG[4] = NIT_NULL;
867 fra.me.REG[5] = NIT_NULL;
868 fra.me.REG[6] = NIT_NULL;
869 fra.me.REG[7] = NIT_NULL;
870 fra.me.REG[8] = NIT_NULL;
871 fra.me.REG[9] = NIT_NULL;
872 fra.me.REG[10] = NIT_NULL;
873 fra.me.REG[0] = p0;
874 fra.me.REG[1] = p1;
875 /* ./syntax//mmbuilder.nit:188 */
876 fra.me.REG[2] = fra.me.REG[0];
877 /* ./syntax//mmbuilder.nit:192 */
878 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[2])(fra.me.REG[2]);
879 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_1));
880 switch ((&(fra.me))->has_broke) {
881 case 0: break;
882 case 1: (&(fra.me))->has_broke = 0; goto label3;
883 }
884 /* ./syntax//mmbuilder.nit:200 */
885 fra.me.REG[3] = NEW_ArraySet_standard___collection___array___ArraySet___init();
886 /* ./syntax//mmbuilder.nit:201 */
887 fra.me.REG[4] = NEW_ArraySet_standard___collection___array___ArraySet___init();
888 /* ./syntax//mmbuilder.nit:202 */
889 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[2])(fra.me.REG[2]);
890 fra.me.REG[5] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[5])(fra.me.REG[5]);
891 /* ./../lib/standard//collection//array.nit:232 */
892 REGB0 = TAG_Int(0);
893 /* ./../lib/standard//collection//array.nit:233 */
894 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
895 if (UNTAG_Bool(REGB1)) {
896 } else {
897 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 233);
898 }
899 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
900 /* ./../lib/standard//collection//array.nit:234 */
901 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
902 /* ./../lib/standard//collection//array.nit:235 */
903 while(1) {
904 /* ./../lib/standard//collection//array.nit:23 */
905 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
906 if (UNTAG_Bool(REGB1)) {
907 } else {
908 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
909 }
910 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
911 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
912 if (UNTAG_Bool(REGB2)) {
913 } else {
914 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
915 }
916 /* ./../lib/standard//kernel.nit:215 */
917 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
918 /* ./../lib/standard//collection//array.nit:235 */
919 if (UNTAG_Bool(REGB1)) {
920 /* ./../lib/standard//collection//array.nit:236 */
921 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
922 if (UNTAG_Bool(REGB1)) {
923 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 236);
924 }
925 /* ./../lib/standard//collection//array.nit:652 */
926 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
927 /* ./syntax//mmbuilder.nit:203 */
928 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
929 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[8])(fra.me.REG[8]);
930 if (UNTAG_Bool(REGB1)) {
931 REGB1 = TAG_Bool(true);
932 } else {
933 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
934 REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[8])(fra.me.REG[8]);
935 REGB1 = REGB2;
936 }
937 if (UNTAG_Bool(REGB1)) {
938 goto label4;
939 }
940 /* ./syntax//mmbuilder.nit:204 */
941 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[7])(fra.me.REG[7]);
942 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[8])(fra.me.REG[8], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_5));
943 /* ./syntax//mmbuilder.nit:208 */
944 if (!once_value_7) {
945 if (!once_value_8) {
946 fra.me.REG[8] = BOX_NativeString("init");
947 REGB1 = TAG_Int(4);
948 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
949 once_value_8 = fra.me.REG[8];
950 register_static_object(&once_value_8);
951 } else fra.me.REG[8] = once_value_8;
952 fra.me.REG[8] = fra.me.REG[8];
953 fra.me.REG[8] = CALL_standard___symbol___String___to_symbol(fra.me.REG[8])(fra.me.REG[8]);
954 once_value_7 = fra.me.REG[8];
955 register_static_object(&once_value_7);
956 } else fra.me.REG[8] = once_value_7;
957 fra.me.REG[8] = fra.me.REG[8];
958 /* ./syntax//mmbuilder.nit:209 */
959 REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
960 if (UNTAG_Bool(REGB1)) {
961 /* ./syntax//mmbuilder.nit:210 */
962 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
963 /* ./syntax//mmbuilder.nit:211 */
964 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]);
965 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
966 }
967 label4: while(0);
968 /* ./../lib/standard//collection//array.nit:237 */
969 REGB1 = TAG_Int(1);
970 /* ./../lib/standard//kernel.nit:218 */
971 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
972 /* ./../lib/standard//collection//array.nit:237 */
973 REGB0 = REGB1;
974 } else {
975 /* ./../lib/standard//collection//array.nit:235 */
976 goto label9;
977 }
978 }
979 label9: while(0);
980 /* ./syntax//mmbuilder.nit:216 */
981 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
982 /* ./syntax//mmbuilder.nit:217 */
983 fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[2])(fra.me.REG[2]);
984 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[5])(fra.me.REG[5], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_10));
985 /* ./syntax//mmbuilder.nit:224 */
986 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[4])(fra.me.REG[4]);
987 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
988 if (UNTAG_Bool(REGB0)) {
989 /* ./syntax//mmbuilder.nit:227 */
990 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
991 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_11));
992 /* ./syntax//mmbuilder.nit:235 */
993 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[2])(fra.me.REG[2]);
994 fra.me.REG[8] = CALL_metamodel___partial_order___PartialOrderElement___order(fra.me.REG[8])(fra.me.REG[8]);
995 fra.me.REG[8] = CALL_metamodel___partial_order___PartialOrder___select_smallests(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
996 fra.me.REG[5] = fra.me.REG[8];
997 /* ./syntax//mmbuilder.nit:238 */
998 fra.me.REG[8] = NIT_NULL;
999 /* ./../lib/standard//collection//array.nit:23 */
1000 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
1001 if (UNTAG_Bool(REGB0)) {
1002 } else {
1003 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
1004 }
1005 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
1006 /* ./syntax//mmbuilder.nit:240 */
1007 REGB1 = TAG_Int(1);
1008 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1009 if (UNTAG_Bool(REGB2)) {
1010 } else {
1011 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1012 }
1013 /* ./../lib/standard//kernel.nit:217 */
1014 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
1015 /* ./syntax//mmbuilder.nit:240 */
1016 if (UNTAG_Bool(REGB1)) {
1017 /* ./syntax//mmbuilder.nit:241 */
1018 fra.me.REG[7] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[2])(fra.me.REG[2]);
1019 REGB1 = TAG_Int(7);
1020 fra.me.REG[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
1021 if (!once_value_13) {
1022 fra.me.REG[10] = BOX_NativeString("Error: Explicit constructor required in ");
1023 REGB1 = TAG_Int(40);
1024 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
1025 once_value_13 = fra.me.REG[10];
1026 register_static_object(&once_value_13);
1027 } else fra.me.REG[10] = once_value_13;
1028 fra.me.REG[10] = fra.me.REG[10];
1029 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1030 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1031 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1032 if (!once_value_14) {
1033 fra.me.REG[10] = BOX_NativeString(" since multiple inheritance of constructor is forbiden. Conflicting classes are ");
1034 REGB1 = TAG_Int(80);
1035 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
1036 once_value_14 = fra.me.REG[10];
1037 register_static_object(&once_value_14);
1038 } else fra.me.REG[10] = once_value_14;
1039 fra.me.REG[10] = fra.me.REG[10];
1040 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1041 if (!once_value_15) {
1042 fra.me.REG[10] = BOX_NativeString(", ");
1043 REGB1 = TAG_Int(2);
1044 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
1045 once_value_15 = fra.me.REG[10];
1046 register_static_object(&once_value_15);
1047 } else fra.me.REG[10] = once_value_15;
1048 fra.me.REG[10] = fra.me.REG[10];
1049 fra.me.REG[10] = CALL_standard___string___Collection___join(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[10]);
1050 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1051 if (!once_value_16) {
1052 fra.me.REG[10] = BOX_NativeString(". Costructors are ");
1053 REGB1 = TAG_Int(18);
1054 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
1055 once_value_16 = fra.me.REG[10];
1056 register_static_object(&once_value_16);
1057 } else fra.me.REG[10] = once_value_16;
1058 fra.me.REG[10] = fra.me.REG[10];
1059 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1060 if (!once_value_17) {
1061 fra.me.REG[10] = BOX_NativeString(", ");
1062 REGB1 = TAG_Int(2);
1063 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
1064 once_value_17 = fra.me.REG[10];
1065 register_static_object(&once_value_17);
1066 } else fra.me.REG[10] = once_value_17;
1067 fra.me.REG[10] = fra.me.REG[10];
1068 fra.me.REG[10] = CALL_standard___string___Collection___join(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[10]);
1069 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1070 if (!once_value_18) {
1071 fra.me.REG[10] = BOX_NativeString(".");
1072 REGB1 = TAG_Int(1);
1073 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
1074 once_value_18 = fra.me.REG[10];
1075 register_static_object(&once_value_18);
1076 } else fra.me.REG[10] = once_value_18;
1077 fra.me.REG[10] = fra.me.REG[10];
1078 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1079 fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
1080 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7], fra.me.REG[9]);
1081 /* ./syntax//mmbuilder.nit:242 */
1082 goto label3;
1083 } else {
1084 /* ./../lib/standard//collection//array.nit:23 */
1085 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
1086 if (UNTAG_Bool(REGB1)) {
1087 } else {
1088 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
1089 }
1090 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
1091 /* ./syntax//mmbuilder.nit:243 */
1092 REGB0 = TAG_Int(1);
1093 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0));
1094 if (UNTAG_Bool(REGB2)) {
1095 } else {
1096 /* ./../lib/standard//kernel.nit:210 */
1097 REGB0 = TAG_Bool((REGB1)==(REGB0));
1098 /* ./syntax//mmbuilder.nit:243 */
1099 REGB2 = REGB0;
1100 }
1101 if (UNTAG_Bool(REGB2)) {
1102 /* ./syntax//mmbuilder.nit:244 */
1103 fra.me.REG[5] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[5])(fra.me.REG[5]);
1104 fra.me.REG[8] = fra.me.REG[5];
1105 }
1106 }
1107 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_19));
1108 /* ./syntax//mmbuilder.nit:253 */
1109 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
1110 REGB2 = TAG_Bool(fra.me.REG[8]!=NIT_NULL);
1111 if (UNTAG_Bool(REGB2)) {
1112 } else {
1113 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 253);
1114 }
1115 REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1116 if (UNTAG_Bool(REGB2)) {
1117 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 253);
1118 }
1119 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[8])(fra.me.REG[8]);
1120 CALL_metamodel___abstractmetamodel___MMGlobalClass___mixin_of__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1121 } else {
1122 /* ./syntax//mmbuilder.nit:258 */
1123 fra.me.REG[3] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[3])(fra.me.REG[3]);
1124 fra.me.REG[3] = NEW_MMImplicitInit_syntax___syntax_base___MMImplicitInit___init(fra.me.REG[2], fra.me.REG[6], fra.me.REG[3]);
1125 /* ./syntax//mmbuilder.nit:259 */
1126 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[3]);
1127 }
1128 label3: while(0);
1129 stack_frame_head = fra.me.prev;
1130 return;
1131 }
1132 void OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
1133 struct {struct stack_frame_t me;} fra;
1134 val_t REGB0;
1135 val_t REGB1;
1136 fun_t CREG[1];
1137 val_t tmp;
1138 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1139 fra.me.file = LOCATE_syntax___mmbuilder;
1140 fra.me.line = 0;
1141 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
1142 fra.me.has_broke = 0;
1143 fra.me.REG_size = 1;
1144 fra.me.REG[0] = NIT_NULL;
1145 fra.me.closure_ctx = closctx_param;
1146 fra.me.closure_funs = CREG;
1147 fra.me.REG[0] = p0;
1148 CREG[0] = clos_fun0;
1149 /* ./syntax//mmbuilder.nit:193 */
1150 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
1151 if (UNTAG_Bool(REGB0)) {
1152 /* ./syntax//mmbuilder.nit:195 */
1153 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
1154 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1155 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],closctx->REG[2]));
1156 if (UNTAG_Bool(REGB0)) {
1157 } else {
1158 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[2]);
1159 REGB0 = REGB1;
1160 }
1161 if (UNTAG_Bool(REGB0)) {
1162 closctx->has_broke = 1;
1163 goto label2;
1164 }
1165 }
1166 label2: while(0);
1167 stack_frame_head = fra.me.prev;
1168 return;
1169 }
1170 void OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_5(struct stack_frame_t *closctx, val_t p0){
1171 struct {struct stack_frame_t me;} fra;
1172 val_t REGB0;
1173 val_t tmp;
1174 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1175 fra.me.file = LOCATE_syntax___mmbuilder;
1176 fra.me.line = 0;
1177 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
1178 fra.me.has_broke = 0;
1179 fra.me.REG_size = 1;
1180 fra.me.REG[0] = NIT_NULL;
1181 fra.me.REG[0] = p0;
1182 /* ./syntax//mmbuilder.nit:205 */
1183 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
1184 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1185 if (UNTAG_Bool(REGB0)) {
1186 goto label6;
1187 }
1188 /* ./syntax//mmbuilder.nit:206 */
1189 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[4])(closctx->REG[4], fra.me.REG[0]);
1190 label6: while(0);
1191 stack_frame_head = fra.me.prev;
1192 return;
1193 }
1194 void OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_10(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
1195 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1196 val_t REGB0;
1197 val_t REGB1;
1198 fun_t CREG[1];
1199 val_t tmp;
1200 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1201 fra.me.file = LOCATE_syntax___mmbuilder;
1202 fra.me.line = 0;
1203 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
1204 fra.me.has_broke = 0;
1205 fra.me.REG_size = 2;
1206 fra.me.REG[0] = NIT_NULL;
1207 fra.me.REG[1] = NIT_NULL;
1208 fra.me.closure_ctx = closctx_param;
1209 fra.me.closure_funs = CREG;
1210 fra.me.REG[0] = p0;
1211 CREG[0] = clos_fun0;
1212 /* ./syntax//mmbuilder.nit:218 */
1213 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_syntax___syntax_base___MMSrcAttribute, ID_syntax___syntax_base___MMSrcAttribute)) /*cast MMSrcAttribute*/;
1214 if (UNTAG_Bool(REGB0)) {
1215 /* ./syntax//mmbuilder.nit:219 */
1216 fra.me.REG[1] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[0])(fra.me.REG[0]);
1217 /* ./syntax//mmbuilder.nit:220 */
1218 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1219 if (UNTAG_Bool(REGB0)) {
1220 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 220);
1221 }
1222 fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra.me.REG[1])(fra.me.REG[1]);
1223 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1224 if (UNTAG_Bool(REGB0)) {
1225 } else {
1226 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1227 if (UNTAG_Bool(REGB1)) {
1228 REGB1 = TAG_Bool(false);
1229 REGB0 = REGB1;
1230 } else {
1231 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
1232 REGB0 = REGB1;
1233 }
1234 }
1235 if (UNTAG_Bool(REGB0)) {
1236 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[6])(closctx->REG[6], fra.me.REG[0]);
1237 }
1238 }
1239 stack_frame_head = fra.me.prev;
1240 return;
1241 }
1242 void OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_11(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
1243 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1244 val_t REGB0;
1245 fun_t CREG[1];
1246 val_t tmp;
1247 /* ./syntax//mmbuilder.nit:228 */
1248 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1249 fra.me.file = LOCATE_syntax___mmbuilder;
1250 fra.me.line = 0;
1251 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
1252 fra.me.has_broke = 0;
1253 fra.me.REG_size = 2;
1254 fra.me.REG[0] = NIT_NULL;
1255 fra.me.REG[1] = NIT_NULL;
1256 fra.me.closure_ctx = closctx_param;
1257 fra.me.closure_funs = CREG;
1258 fra.me.REG[0] = p0;
1259 CREG[0] = clos_fun0;
1260 /* ./syntax//mmbuilder.nit:229 */
1261 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1262 /* ./syntax//mmbuilder.nit:230 */
1263 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(closctx->REG[5])(closctx->REG[5], fra.me.REG[0]);
1264 if (UNTAG_Bool(REGB0)) {
1265 goto label12;
1266 }
1267 /* ./syntax//mmbuilder.nit:231 */
1268 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
1269 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_mixin(fra.me.REG[1])(fra.me.REG[1]);
1270 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1271 if (UNTAG_Bool(REGB0)) {
1272 /* ./syntax//mmbuilder.nit:232 */
1273 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[5])(closctx->REG[5], fra.me.REG[0]);
1274 }
1275 label12: while(0);
1276 stack_frame_head = fra.me.prev;
1277 return;
1278 }
1279 void OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_19(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
1280 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1281 val_t REGB0;
1282 val_t REGB1;
1283 val_t REGB2;
1284 fun_t CREG[1];
1285 val_t tmp;
1286 /* ./syntax//mmbuilder.nit:247 */
1287 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1288 fra.me.file = LOCATE_syntax___mmbuilder;
1289 fra.me.line = 0;
1290 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
1291 fra.me.has_broke = 0;
1292 fra.me.REG_size = 2;
1293 fra.me.REG[0] = NIT_NULL;
1294 fra.me.REG[1] = NIT_NULL;
1295 fra.me.closure_ctx = closctx_param;
1296 fra.me.closure_funs = CREG;
1297 fra.me.REG[0] = p0;
1298 CREG[0] = clos_fun0;
1299 /* ./syntax//mmbuilder.nit:249 */
1300 REGB0 = TAG_Bool(closctx->REG[8]==NIT_NULL);
1301 if (UNTAG_Bool(REGB0)) {
1302 } else {
1303 REGB1 = TAG_Bool(closctx->REG[8]==NIT_NULL);
1304 if (UNTAG_Bool(REGB1)) {
1305 REGB1 = TAG_Bool(false);
1306 REGB0 = REGB1;
1307 } else {
1308 REGB1 = CALL_standard___kernel___Object_____eqeq(closctx->REG[8])(closctx->REG[8], NIT_NULL);
1309 REGB0 = REGB1;
1310 }
1311 }
1312 if (UNTAG_Bool(REGB0)) {
1313 REGB0 = TAG_Bool(true);
1314 } else {
1315 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1316 REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],closctx->REG[8]));
1317 if (UNTAG_Bool(REGB1)) {
1318 } else {
1319 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], closctx->REG[8]);
1320 REGB1 = REGB2;
1321 }
1322 REGB0 = REGB1;
1323 }
1324 if (UNTAG_Bool(REGB0)) {
1325 /* ./syntax//mmbuilder.nit:250 */
1326 CALL_metamodel___inheritance___MMLocalClass___make_visible_an_inherited_global_property(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
1327 }
1328 stack_frame_head = fra.me.prev;
1329 return;
1330 }
1331 void syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(val_t p0, val_t p1, val_t p2){
1332 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
1333 val_t REGB0;
1334 val_t tmp;
1335 static val_t once_value_1; /* Once value */
1336 static val_t once_value_2; /* Once value */
1337 static val_t once_value_3; /* Once value */
1338 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1339 fra.me.file = LOCATE_syntax___mmbuilder;
1340 fra.me.line = 264;
1341 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property;
1342 fra.me.has_broke = 0;
1343 fra.me.REG_size = 7;
1344 fra.me.REG[0] = NIT_NULL;
1345 fra.me.REG[1] = NIT_NULL;
1346 fra.me.REG[2] = NIT_NULL;
1347 fra.me.REG[3] = NIT_NULL;
1348 fra.me.REG[4] = NIT_NULL;
1349 fra.me.REG[5] = NIT_NULL;
1350 fra.me.REG[6] = NIT_NULL;
1351 fra.me.REG[0] = p0;
1352 fra.me.REG[1] = p1;
1353 fra.me.REG[2] = p2;
1354 /* ./syntax//mmbuilder.nit:268 */
1355 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
1356 /* ./syntax//mmbuilder.nit:270 */
1357 fra.me.REG[4] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
1358 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1359 if (UNTAG_Bool(REGB0)) {
1360 /* ./syntax//mmbuilder.nit:271 */
1361 fra.me.REG[4] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[2])(fra.me.REG[2]);
1362 REGB0 = TAG_Int(5);
1363 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1364 if (!once_value_1) {
1365 fra.me.REG[6] = BOX_NativeString("Error: A property ");
1366 REGB0 = TAG_Int(18);
1367 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
1368 once_value_1 = fra.me.REG[6];
1369 register_static_object(&once_value_1);
1370 } else fra.me.REG[6] = once_value_1;
1371 fra.me.REG[6] = fra.me.REG[6];
1372 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1373 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1374 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1375 if (!once_value_2) {
1376 fra.me.REG[6] = BOX_NativeString(" is already defined in class ");
1377 REGB0 = TAG_Int(29);
1378 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
1379 once_value_2 = fra.me.REG[6];
1380 register_static_object(&once_value_2);
1381 } else fra.me.REG[6] = once_value_2;
1382 fra.me.REG[6] = fra.me.REG[6];
1383 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1384 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
1385 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
1386 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1387 if (!once_value_3) {
1388 fra.me.REG[6] = BOX_NativeString(".");
1389 REGB0 = TAG_Int(1);
1390 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
1391 once_value_3 = fra.me.REG[6];
1392 register_static_object(&once_value_3);
1393 } else fra.me.REG[6] = once_value_3;
1394 fra.me.REG[6] = fra.me.REG[6];
1395 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1396 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
1397 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[5]);
1398 /* ./syntax//mmbuilder.nit:272 */
1399 goto label4;
1400 }
1401 /* ./syntax//mmbuilder.nit:274 */
1402 fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
1403 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[2]);
1404 /* ./syntax//mmbuilder.nit:277 */
1405 REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
1406 if (UNTAG_Bool(REGB0)) {
1407 /* ./syntax//mmbuilder.nit:278 */
1408 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
1409 /* ./syntax//mmbuilder.nit:279 */
1410 CALL_metamodel___inheritance___MMLocalProperty___inherit_global(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1411 }
1412 /* ./syntax//mmbuilder.nit:282 */
1413 REGB0 = CALL_metamodel___abstractmetamodel___MMLocalProperty___is_global_set(fra.me.REG[2])(fra.me.REG[2]);
1414 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1415 if (UNTAG_Bool(REGB0)) {
1416 /* ./syntax//mmbuilder.nit:283 */
1417 CALL_metamodel___abstractmetamodel___MMLocalProperty___new_global(fra.me.REG[2])(fra.me.REG[2]);
1418 /* ./syntax//mmbuilder.nit:284 */
1419 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
1420 REGB0 = CALL_syntax___syntax_base___MMLocalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
1421 CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
1422 }
1423 label4: while(0);
1424 stack_frame_head = fra.me.prev;
1425 return;
1426 }
1427 void syntax___mmbuilder___MMLocalProperty___accept_property_visitor(val_t p0, val_t p1){
1428 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1429 val_t tmp;
1430 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1431 fra.me.file = LOCATE_syntax___mmbuilder;
1432 fra.me.line = 290;
1433 fra.me.meth = LOCATE_syntax___mmbuilder___MMLocalProperty___accept_property_visitor;
1434 fra.me.has_broke = 0;
1435 fra.me.REG_size = 2;
1436 fra.me.REG[0] = NIT_NULL;
1437 fra.me.REG[1] = NIT_NULL;
1438 fra.me.REG[0] = p0;
1439 fra.me.REG[1] = p1;
1440 stack_frame_head = fra.me.prev;
1441 return;
1442 }
1443 val_t syntax___mmbuilder___MMImplicitInit___super_init(val_t p0){
1444 struct {struct stack_frame_t me;} fra;
1445 val_t tmp;
1446 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1447 fra.me.file = LOCATE_syntax___mmbuilder;
1448 fra.me.line = 296;
1449 fra.me.meth = LOCATE_syntax___mmbuilder___MMImplicitInit___super_init;
1450 fra.me.has_broke = 0;
1451 fra.me.REG_size = 1;
1452 fra.me.REG[0] = NIT_NULL;
1453 fra.me.REG[0] = p0;
1454 /* ./syntax//mmbuilder.nit:296 */
1455 fra.me.REG[0] = ATTR_syntax___mmbuilder___MMImplicitInit____super_init(fra.me.REG[0]);
1456 stack_frame_head = fra.me.prev;
1457 return fra.me.REG[0];
1458 }
1459 void syntax___mmbuilder___MMImplicitInit___accept_property_visitor(val_t p0, val_t p1){
1460 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
1461 val_t REGB0;
1462 val_t REGB1;
1463 val_t REGB2;
1464 val_t REGB3;
1465 val_t REGB4;
1466 val_t tmp;
1467 static val_t once_value_1; /* Once value */
1468 static val_t once_value_2; /* Once value */
1469 static val_t once_value_3; /* Once value */
1470 static val_t once_value_4; /* Once value */
1471 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1472 fra.me.file = LOCATE_syntax___mmbuilder;
1473 fra.me.line = 297;
1474 fra.me.meth = LOCATE_syntax___mmbuilder___MMImplicitInit___accept_property_visitor;
1475 fra.me.has_broke = 0;
1476 fra.me.REG_size = 9;
1477 fra.me.REG[0] = NIT_NULL;
1478 fra.me.REG[1] = NIT_NULL;
1479 fra.me.REG[2] = NIT_NULL;
1480 fra.me.REG[3] = NIT_NULL;
1481 fra.me.REG[4] = NIT_NULL;
1482 fra.me.REG[5] = NIT_NULL;
1483 fra.me.REG[6] = NIT_NULL;
1484 fra.me.REG[7] = NIT_NULL;
1485 fra.me.REG[8] = NIT_NULL;
1486 fra.me.REG[0] = p0;
1487 fra.me.REG[1] = p1;
1488 /* ./syntax//mmbuilder.nit:297 */
1489 fra.me.REG[2] = fra.me.REG[0];
1490 /* ./syntax//mmbuilder.nit:299 */
1491 fra.me.REG[3] = NIT_NULL;
1492 /* ./syntax//mmbuilder.nit:300 */
1493 fra.me.REG[4] = CALL_syntax___syntax_base___MMImplicitInit___super_inits(fra.me.REG[2])(fra.me.REG[2]);
1494 /* ./../lib/standard//collection//array.nit:232 */
1495 REGB0 = TAG_Int(0);
1496 /* ./../lib/standard//collection//array.nit:233 */
1497 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
1498 if (UNTAG_Bool(REGB1)) {
1499 } else {
1500 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 233);
1501 }
1502 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
1503 /* ./../lib/standard//collection//array.nit:234 */
1504 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
1505 /* ./../lib/standard//collection//array.nit:235 */
1506 while(1) {
1507 /* ./../lib/standard//collection//array.nit:23 */
1508 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
1509 if (UNTAG_Bool(REGB1)) {
1510 } else {
1511 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
1512 }
1513 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
1514 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1515 if (UNTAG_Bool(REGB2)) {
1516 } else {
1517 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1518 }
1519 /* ./../lib/standard//kernel.nit:215 */
1520 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1521 /* ./../lib/standard//collection//array.nit:235 */
1522 if (UNTAG_Bool(REGB1)) {
1523 /* ./../lib/standard//collection//array.nit:236 */
1524 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1525 if (UNTAG_Bool(REGB1)) {
1526 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 236);
1527 }
1528 /* ./../lib/standard//collection//array.nit:652 */
1529 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
1530 /* ./syntax//mmbuilder.nit:301 */
1531 fra.me.REG[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[6])(fra.me.REG[6]);
1532 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
1533 if (UNTAG_Bool(REGB1)) {
1534 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 301);
1535 }
1536 REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
1537 REGB2 = TAG_Int(0);
1538 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1539 if (UNTAG_Bool(REGB3)) {
1540 } else {
1541 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1542 }
1543 /* ./../lib/standard//kernel.nit:217 */
1544 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
1545 /* ./syntax//mmbuilder.nit:301 */
1546 if (UNTAG_Bool(REGB2)) {
1547 /* ./syntax//mmbuilder.nit:302 */
1548 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1549 if (UNTAG_Bool(REGB2)) {
1550 } else {
1551 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1552 if (UNTAG_Bool(REGB1)) {
1553 REGB1 = TAG_Bool(false);
1554 REGB2 = REGB1;
1555 } else {
1556 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1557 REGB2 = REGB1;
1558 }
1559 }
1560 if (UNTAG_Bool(REGB2)) {
1561 /* ./syntax//mmbuilder.nit:303 */
1562 fra.me.REG[3] = fra.me.REG[6];
1563 } else {
1564 /* ./syntax//mmbuilder.nit:305 */
1565 REGB2 = TAG_Int(7);
1566 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
1567 if (!once_value_1) {
1568 fra.me.REG[8] = BOX_NativeString("Error: explicit constructor needed in ");
1569 REGB2 = TAG_Int(38);
1570 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
1571 once_value_1 = fra.me.REG[8];
1572 register_static_object(&once_value_1);
1573 } else fra.me.REG[8] = once_value_1;
1574 fra.me.REG[8] = fra.me.REG[8];
1575 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1576 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
1577 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1578 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1579 if (!once_value_2) {
1580 fra.me.REG[8] = BOX_NativeString(" since both super-constructor ");
1581 REGB2 = TAG_Int(30);
1582 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
1583 once_value_2 = fra.me.REG[8];
1584 register_static_object(&once_value_2);
1585 } else fra.me.REG[8] = once_value_2;
1586 fra.me.REG[8] = fra.me.REG[8];
1587 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1588 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1589 if (UNTAG_Bool(REGB2)) {
1590 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 305);
1591 }
1592 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[3])(fra.me.REG[3]);
1593 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1594 if (!once_value_3) {
1595 fra.me.REG[8] = BOX_NativeString(" and ");
1596 REGB2 = TAG_Int(5);
1597 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
1598 once_value_3 = fra.me.REG[8];
1599 register_static_object(&once_value_3);
1600 } else fra.me.REG[8] = once_value_3;
1601 fra.me.REG[8] = fra.me.REG[8];
1602 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1603 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[6])(fra.me.REG[6]);
1604 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
1605 if (!once_value_4) {
1606 fra.me.REG[6] = BOX_NativeString(" have paramters");
1607 REGB2 = TAG_Int(15);
1608 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
1609 once_value_4 = fra.me.REG[6];
1610 register_static_object(&once_value_4);
1611 } else fra.me.REG[6] = once_value_4;
1612 fra.me.REG[6] = fra.me.REG[6];
1613 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
1614 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
1615 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[7]);
1616 /* ./syntax//mmbuilder.nit:306 */
1617 goto label5;
1618 }
1619 }
1620 /* ./../lib/standard//collection//array.nit:237 */
1621 REGB2 = TAG_Int(1);
1622 /* ./../lib/standard//kernel.nit:218 */
1623 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1624 /* ./../lib/standard//collection//array.nit:237 */
1625 REGB0 = REGB2;
1626 } else {
1627 /* ./../lib/standard//collection//array.nit:235 */
1628 goto label6;
1629 }
1630 }
1631 label6: while(0);
1632 /* ./syntax//mmbuilder.nit:310 */
1633 ATTR_syntax___mmbuilder___MMImplicitInit____super_init(fra.me.REG[2]) = fra.me.REG[3];
1634 /* ./syntax//mmbuilder.nit:312 */
1635 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
1636 /* ./syntax//mmbuilder.nit:313 */
1637 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1638 if (UNTAG_Bool(REGB0)) {
1639 } else {
1640 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1641 if (UNTAG_Bool(REGB2)) {
1642 REGB2 = TAG_Bool(false);
1643 REGB0 = REGB2;
1644 } else {
1645 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1646 REGB0 = REGB2;
1647 }
1648 }
1649 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1650 if (UNTAG_Bool(REGB0)) {
1651 /* ./syntax//mmbuilder.nit:314 */
1652 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1653 if (UNTAG_Bool(REGB0)) {
1654 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 314);
1655 }
1656 fra.me.REG[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[3])(fra.me.REG[3]);
1657 /* ./syntax//mmbuilder.nit:315 */
1658 REGB0 = TAG_Int(0);
1659 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1660 if (UNTAG_Bool(REGB2)) {
1661 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 315);
1662 }
1663 REGB2 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]);
1664 /* ./../lib/standard//kernel.nit:335 */
1665 while(1) {
1666 REGB1 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1667 if (UNTAG_Bool(REGB1)) {
1668 } else {
1669 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1670 }
1671 /* ./../lib/standard//kernel.nit:215 */
1672 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
1673 /* ./../lib/standard//kernel.nit:335 */
1674 if (UNTAG_Bool(REGB1)) {
1675 /* ./syntax//mmbuilder.nit:315 */
1676 REGB1 = REGB0;
1677 /* ./syntax//mmbuilder.nit:316 */
1678 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1679 if (UNTAG_Bool(REGB3)) {
1680 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 316);
1681 }
1682 fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___params(fra.me.REG[3])(fra.me.REG[3]);
1683 /* ./../lib/standard//collection//array.nit:243 */
1684 REGB3 = TAG_Int(0);
1685 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1686 if (UNTAG_Bool(REGB4)) {
1687 } else {
1688 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1689 }
1690 /* ./../lib/standard//kernel.nit:216 */
1691 REGB3 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB3));
1692 /* ./../lib/standard//collection//array.nit:243 */
1693 if (UNTAG_Bool(REGB3)) {
1694 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
1695 if (UNTAG_Bool(REGB3)) {
1696 } else {
1697 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 243);
1698 }
1699 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
1700 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1701 if (UNTAG_Bool(REGB4)) {
1702 } else {
1703 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1704 }
1705 /* ./../lib/standard//kernel.nit:215 */
1706 REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB3));
1707 } else {
1708 /* ./../lib/standard//collection//array.nit:243 */
1709 REGB4 = TAG_Bool(false);
1710 REGB3 = REGB4;
1711 }
1712 if (UNTAG_Bool(REGB3)) {
1713 } else {
1714 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 243);
1715 }
1716 /* ./../lib/standard//collection//array.nit:244 */
1717 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
1718 REGB3 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1719 if (UNTAG_Bool(REGB3)) {
1720 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 244);
1721 }
1722 /* ./../lib/standard//collection//array.nit:652 */
1723 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
1724 /* ./../lib/standard//collection//array.nit:244 */
1725 goto label7;
1726 label7: while(0);
1727 /* ./syntax//mmbuilder.nit:316 */
1728 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
1729 /* ./../lib/standard//kernel.nit:337 */
1730 REGB1 = TAG_Int(1);
1731 /* ./../lib/standard//kernel.nit:218 */
1732 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1733 /* ./../lib/standard//kernel.nit:337 */
1734 REGB0 = REGB1;
1735 } else {
1736 /* ./../lib/standard//kernel.nit:335 */
1737 goto label8;
1738 }
1739 }
1740 label8: while(0);
1741 }
1742 /* ./syntax//mmbuilder.nit:319 */
1743 fra.me.REG[3] = CALL_syntax___syntax_base___MMImplicitInit___unassigned_attributes(fra.me.REG[2])(fra.me.REG[2]);
1744 /* ./../lib/standard//collection//array.nit:232 */
1745 REGB0 = TAG_Int(0);
1746 /* ./../lib/standard//collection//array.nit:233 */
1747 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1748 if (UNTAG_Bool(REGB2)) {
1749 } else {
1750 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 233);
1751 }
1752 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1753 /* ./../lib/standard//collection//array.nit:234 */
1754 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
1755 /* ./../lib/standard//collection//array.nit:235 */
1756 while(1) {
1757 /* ./../lib/standard//collection//array.nit:23 */
1758 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1759 if (UNTAG_Bool(REGB2)) {
1760 } else {
1761 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
1762 }
1763 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1764 REGB1 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1765 if (UNTAG_Bool(REGB1)) {
1766 } else {
1767 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1768 }
1769 /* ./../lib/standard//kernel.nit:215 */
1770 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
1771 /* ./../lib/standard//collection//array.nit:235 */
1772 if (UNTAG_Bool(REGB2)) {
1773 /* ./../lib/standard//collection//array.nit:236 */
1774 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1775 if (UNTAG_Bool(REGB2)) {
1776 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 236);
1777 }
1778 /* ./../lib/standard//collection//array.nit:652 */
1779 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
1780 /* ./syntax//mmbuilder.nit:320 */
1781 fra.me.REG[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[4])(fra.me.REG[4]);
1782 /* ./syntax//mmbuilder.nit:321 */
1783 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
1784 if (UNTAG_Bool(REGB2)) {
1785 } else {
1786 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
1787 if (UNTAG_Bool(REGB1)) {
1788 REGB1 = TAG_Bool(false);
1789 REGB2 = REGB1;
1790 } else {
1791 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
1792 REGB2 = REGB1;
1793 }
1794 }
1795 if (UNTAG_Bool(REGB2)) {
1796 goto label5;
1797 }
1798 /* ./syntax//mmbuilder.nit:322 */
1799 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[4])(fra.me.REG[4]);
1800 /* ./syntax//mmbuilder.nit:323 */
1801 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
1802 fra.me.REG[8] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[8])(fra.me.REG[8]);
1803 REGB2 = TAG_Char('_');
1804 REGB1 = TAG_Bool(IS_EQUAL_ON(REGB2,fra.me.REG[8]));
1805 if (UNTAG_Bool(REGB1)) {
1806 } else {
1807 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1808 if (UNTAG_Bool(REGB3)) {
1809 REGB3 = TAG_Bool(false);
1810 REGB1 = REGB3;
1811 } else {
1812 /* ./../lib/standard//kernel.nit:350 */
1813 REGB2 = TAG_Bool((fra.me.REG[8])==(REGB2));
1814 /* ./syntax//mmbuilder.nit:323 */
1815 REGB1 = REGB2;
1816 }
1817 }
1818 if (UNTAG_Bool(REGB1)) {
1819 REGB1 = TAG_Bool(true);
1820 } else {
1821 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
1822 fra.me.REG[8] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[8])(fra.me.REG[8]);
1823 REGB2 = TAG_Char('@');
1824 REGB3 = TAG_Bool(IS_EQUAL_ON(REGB2,fra.me.REG[8]));
1825 if (UNTAG_Bool(REGB3)) {
1826 } else {
1827 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1828 if (UNTAG_Bool(REGB4)) {
1829 REGB4 = TAG_Bool(false);
1830 REGB3 = REGB4;
1831 } else {
1832 /* ./../lib/standard//kernel.nit:350 */
1833 REGB2 = TAG_Bool((fra.me.REG[8])==(REGB2));
1834 /* ./syntax//mmbuilder.nit:323 */
1835 REGB3 = REGB2;
1836 }
1837 }
1838 REGB1 = REGB3;
1839 }
1840 if (UNTAG_Bool(REGB1)) {
1841 /* ./syntax//mmbuilder.nit:324 */
1842 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1843 REGB1 = TAG_Int(1);
1844 fra.me.REG[4] = CALL_standard___string___AbstractString___substring_from(fra.me.REG[4])(fra.me.REG[4], REGB1);
1845 fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
1846 fra.me.REG[6] = fra.me.REG[4];
1847 }
1848 /* ./syntax//mmbuilder.nit:326 */
1849 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
1850 if (UNTAG_Bool(REGB1)) {
1851 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 326);
1852 }
1853 fra.me.REG[7] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[7])(fra.me.REG[7]);
1854 REGB1 = TAG_Bool((fra.me.REG[7]!=NIT_NULL) && VAL_ISA(fra.me.REG[7], COLOR_metamodel___static_type___MMType, ID_metamodel___static_type___MMType)) /*cast MMType*/;
1855 if (UNTAG_Bool(REGB1)) {
1856 } else {
1857 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 326);
1858 }
1859 fra.me.REG[6] = NEW_MMParam_metamodel___static_type___MMParam___init(fra.me.REG[7], fra.me.REG[6]);
1860 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
1861 /* ./../lib/standard//collection//array.nit:237 */
1862 REGB1 = TAG_Int(1);
1863 /* ./../lib/standard//kernel.nit:218 */
1864 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1865 /* ./../lib/standard//collection//array.nit:237 */
1866 REGB0 = REGB1;
1867 } else {
1868 /* ./../lib/standard//collection//array.nit:235 */
1869 goto label9;
1870 }
1871 }
1872 label9: while(0);
1873 /* ./syntax//mmbuilder.nit:328 */
1874 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
1875 fra.me.REG[0] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[0])(fra.me.REG[0]);
1876 fra.me.REG[0] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[1], NIT_NULL, fra.me.REG[0]);
1877 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1878 label5: while(0);
1879 stack_frame_head = fra.me.prev;
1880 return;
1881 }
1882 val_t syntax___mmbuilder___MMSrcAncestor___local_class(val_t p0){
1883 struct {struct stack_frame_t me;} fra;
1884 val_t REGB0;
1885 val_t tmp;
1886 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1887 fra.me.file = LOCATE_syntax___mmbuilder;
1888 fra.me.line = 336;
1889 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcAncestor___local_class;
1890 fra.me.has_broke = 0;
1891 fra.me.REG_size = 1;
1892 fra.me.REG[0] = NIT_NULL;
1893 fra.me.REG[0] = p0;
1894 /* ./syntax//mmbuilder.nit:336 */
1895 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___MMSrcAncestor____local_class(fra.me.REG[0])!=NIT_NULL);
1896 if (UNTAG_Bool(REGB0)) {
1897 } else {
1898 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_syntax___mmbuilder, 336);
1899 }
1900 fra.me.REG[0] = ATTR_syntax___mmbuilder___MMSrcAncestor____local_class(fra.me.REG[0]);
1901 stack_frame_head = fra.me.prev;
1902 return fra.me.REG[0];
1903 }
1904 void syntax___mmbuilder___MMSrcAncestor___init(val_t p0, val_t p1, int* init_table){
1905 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___MMSrcAncestor].i;
1906 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1907 val_t tmp;
1908 if (init_table[itpos1]) return;
1909 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1910 fra.me.file = LOCATE_syntax___mmbuilder;
1911 fra.me.line = 338;
1912 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcAncestor___init;
1913 fra.me.has_broke = 0;
1914 fra.me.REG_size = 3;
1915 fra.me.REG[0] = NIT_NULL;
1916 fra.me.REG[1] = NIT_NULL;
1917 fra.me.REG[2] = NIT_NULL;
1918 fra.me.REG[0] = p0;
1919 fra.me.REG[1] = p1;
1920 /* ./syntax//mmbuilder.nit:338 */
1921 fra.me.REG[2] = fra.me.REG[0];
1922 CALL_metamodel___static_type___MMAncestor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
1923 /* ./syntax//mmbuilder.nit:340 */
1924 ATTR_syntax___mmbuilder___MMSrcAncestor____local_class(fra.me.REG[2]) = fra.me.REG[1];
1925 stack_frame_head = fra.me.prev;
1926 init_table[itpos1] = 1;
1927 return;
1928 }
1929 val_t syntax___mmbuilder___ClassBuilderVisitor___local_class_arity(val_t p0){
1930 struct {struct stack_frame_t me;} fra;
1931 val_t REGB0;
1932 val_t tmp;
1933 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1934 fra.me.file = LOCATE_syntax___mmbuilder;
1935 fra.me.line = 351;
1936 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity;
1937 fra.me.has_broke = 0;
1938 fra.me.REG_size = 1;
1939 fra.me.REG[0] = NIT_NULL;
1940 fra.me.REG[0] = p0;
1941 /* ./syntax//mmbuilder.nit:351 */
1942 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0])!=NIT_NULL);
1943 if (UNTAG_Bool(REGB0)) {
1944 } else {
1945 nit_abort("Uninitialized attribute %s", "_local_class_arity", LOCATE_syntax___mmbuilder, 351);
1946 }
1947 REGB0 = ATTR_syntax___mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0]);
1948 stack_frame_head = fra.me.prev;
1949 return REGB0;
1950 }
1951 void syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq(val_t p0, val_t p1){
1952 struct {struct stack_frame_t me;} fra;
1953 val_t REGB0;
1954 val_t tmp;
1955 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1956 fra.me.file = LOCATE_syntax___mmbuilder;
1957 fra.me.line = 351;
1958 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq;
1959 fra.me.has_broke = 0;
1960 fra.me.REG_size = 1;
1961 fra.me.REG[0] = NIT_NULL;
1962 fra.me.REG[0] = p0;
1963 REGB0 = p1;
1964 /* ./syntax//mmbuilder.nit:351 */
1965 ATTR_syntax___mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0]) = REGB0;
1966 stack_frame_head = fra.me.prev;
1967 return;
1968 }
1969 val_t syntax___mmbuilder___ClassBuilderVisitor___formals(val_t p0){
1970 struct {struct stack_frame_t me;} fra;
1971 val_t tmp;
1972 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1973 fra.me.file = LOCATE_syntax___mmbuilder;
1974 fra.me.line = 354;
1975 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___formals;
1976 fra.me.has_broke = 0;
1977 fra.me.REG_size = 1;
1978 fra.me.REG[0] = NIT_NULL;
1979 fra.me.REG[0] = p0;
1980 /* ./syntax//mmbuilder.nit:354 */
1981 fra.me.REG[0] = ATTR_syntax___mmbuilder___ClassBuilderVisitor____formals(fra.me.REG[0]);
1982 stack_frame_head = fra.me.prev;
1983 return fra.me.REG[0];
1984 }
1985 void syntax___mmbuilder___ClassBuilderVisitor___formals__eq(val_t p0, val_t p1){
1986 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1987 val_t tmp;
1988 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1989 fra.me.file = LOCATE_syntax___mmbuilder;
1990 fra.me.line = 354;
1991 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___formals__eq;
1992 fra.me.has_broke = 0;
1993 fra.me.REG_size = 2;
1994 fra.me.REG[0] = NIT_NULL;
1995 fra.me.REG[1] = NIT_NULL;
1996 fra.me.REG[0] = p0;
1997 fra.me.REG[1] = p1;
1998 /* ./syntax//mmbuilder.nit:354 */
1999 ATTR_syntax___mmbuilder___ClassBuilderVisitor____formals(fra.me.REG[0]) = fra.me.REG[1];
2000 stack_frame_head = fra.me.prev;
2001 return;
2002 }
2003 void syntax___mmbuilder___ClassBuilderVisitor___visit(val_t p0, val_t p1){
2004 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2005 val_t REGB0;
2006 val_t tmp;
2007 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2008 fra.me.file = LOCATE_syntax___mmbuilder;
2009 fra.me.line = 357;
2010 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___visit;
2011 fra.me.has_broke = 0;
2012 fra.me.REG_size = 2;
2013 fra.me.REG[0] = NIT_NULL;
2014 fra.me.REG[1] = NIT_NULL;
2015 fra.me.REG[0] = p0;
2016 fra.me.REG[1] = p1;
2017 /* ./syntax//mmbuilder.nit:357 */
2018 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2019 if (UNTAG_Bool(REGB0)) {
2020 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 357);
2021 }
2022 CALL_syntax___mmbuilder___ANode___accept_class_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2023 stack_frame_head = fra.me.prev;
2024 return;
2025 }
2026 void syntax___mmbuilder___ClassBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2027 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___ClassBuilderVisitor].i;
2028 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2029 val_t tmp;
2030 if (init_table[itpos2]) return;
2031 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2032 fra.me.file = LOCATE_syntax___mmbuilder;
2033 fra.me.line = 358;
2034 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___init;
2035 fra.me.has_broke = 0;
2036 fra.me.REG_size = 3;
2037 fra.me.REG[0] = NIT_NULL;
2038 fra.me.REG[1] = NIT_NULL;
2039 fra.me.REG[2] = NIT_NULL;
2040 fra.me.REG[0] = p0;
2041 fra.me.REG[1] = p1;
2042 fra.me.REG[2] = p2;
2043 /* ./syntax//mmbuilder.nit:358 */
2044 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2045 stack_frame_head = fra.me.prev;
2046 init_table[itpos2] = 1;
2047 return;
2048 }
2049 void syntax___mmbuilder___ClassSpecializationBuilderVisitor___visit(val_t p0, val_t p1){
2050 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2051 val_t REGB0;
2052 val_t tmp;
2053 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2054 fra.me.file = LOCATE_syntax___mmbuilder;
2055 fra.me.line = 365;
2056 fra.me.meth = LOCATE_syntax___mmbuilder___ClassSpecializationBuilderVisitor___visit;
2057 fra.me.has_broke = 0;
2058 fra.me.REG_size = 2;
2059 fra.me.REG[0] = NIT_NULL;
2060 fra.me.REG[1] = NIT_NULL;
2061 fra.me.REG[0] = p0;
2062 fra.me.REG[1] = p1;
2063 /* ./syntax//mmbuilder.nit:365 */
2064 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2065 if (UNTAG_Bool(REGB0)) {
2066 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 365);
2067 }
2068 CALL_syntax___mmbuilder___ANode___accept_class_specialization_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2069 stack_frame_head = fra.me.prev;
2070 return;
2071 }
2072 void syntax___mmbuilder___ClassSpecializationBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2073 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___ClassSpecializationBuilderVisitor].i;
2074 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2075 val_t tmp;
2076 if (init_table[itpos3]) return;
2077 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2078 fra.me.file = LOCATE_syntax___mmbuilder;
2079 fra.me.line = 366;
2080 fra.me.meth = LOCATE_syntax___mmbuilder___ClassSpecializationBuilderVisitor___init;
2081 fra.me.has_broke = 0;
2082 fra.me.REG_size = 3;
2083 fra.me.REG[0] = NIT_NULL;
2084 fra.me.REG[1] = NIT_NULL;
2085 fra.me.REG[2] = NIT_NULL;
2086 fra.me.REG[0] = p0;
2087 fra.me.REG[1] = p1;
2088 fra.me.REG[2] = p2;
2089 /* ./syntax//mmbuilder.nit:366 */
2090 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2091 stack_frame_head = fra.me.prev;
2092 init_table[itpos3] = 1;
2093 return;
2094 }
2095 void syntax___mmbuilder___ClassAncestorBuilder___visit(val_t p0, val_t p1){
2096 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2097 val_t REGB0;
2098 val_t tmp;
2099 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2100 fra.me.file = LOCATE_syntax___mmbuilder;
2101 fra.me.line = 373;
2102 fra.me.meth = LOCATE_syntax___mmbuilder___ClassAncestorBuilder___visit;
2103 fra.me.has_broke = 0;
2104 fra.me.REG_size = 2;
2105 fra.me.REG[0] = NIT_NULL;
2106 fra.me.REG[1] = NIT_NULL;
2107 fra.me.REG[0] = p0;
2108 fra.me.REG[1] = p1;
2109 /* ./syntax//mmbuilder.nit:373 */
2110 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2111 if (UNTAG_Bool(REGB0)) {
2112 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 373);
2113 }
2114 CALL_syntax___mmbuilder___ANode___accept_class_ancestor_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2115 stack_frame_head = fra.me.prev;
2116 return;
2117 }
2118 void syntax___mmbuilder___ClassAncestorBuilder___init(val_t p0, val_t p1, val_t p2, int* init_table){
2119 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___ClassAncestorBuilder].i;
2120 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2121 val_t tmp;
2122 if (init_table[itpos4]) return;
2123 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2124 fra.me.file = LOCATE_syntax___mmbuilder;
2125 fra.me.line = 374;
2126 fra.me.meth = LOCATE_syntax___mmbuilder___ClassAncestorBuilder___init;
2127 fra.me.has_broke = 0;
2128 fra.me.REG_size = 3;
2129 fra.me.REG[0] = NIT_NULL;
2130 fra.me.REG[1] = NIT_NULL;
2131 fra.me.REG[2] = NIT_NULL;
2132 fra.me.REG[0] = p0;
2133 fra.me.REG[1] = p1;
2134 fra.me.REG[2] = p2;
2135 /* ./syntax//mmbuilder.nit:374 */
2136 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2137 stack_frame_head = fra.me.prev;
2138 init_table[itpos4] = 1;
2139 return;
2140 }
2141 void syntax___mmbuilder___ClassVerifierVisitor___visit(val_t p0, val_t p1){
2142 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2143 val_t REGB0;
2144 val_t tmp;
2145 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2146 fra.me.file = LOCATE_syntax___mmbuilder;
2147 fra.me.line = 381;
2148 fra.me.meth = LOCATE_syntax___mmbuilder___ClassVerifierVisitor___visit;
2149 fra.me.has_broke = 0;
2150 fra.me.REG_size = 2;
2151 fra.me.REG[0] = NIT_NULL;
2152 fra.me.REG[1] = NIT_NULL;
2153 fra.me.REG[0] = p0;
2154 fra.me.REG[1] = p1;
2155 /* ./syntax//mmbuilder.nit:381 */
2156 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2157 if (UNTAG_Bool(REGB0)) {
2158 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 381);
2159 }
2160 CALL_syntax___mmbuilder___ANode___accept_class_verifier(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2161 stack_frame_head = fra.me.prev;
2162 return;
2163 }
2164 void syntax___mmbuilder___ClassVerifierVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2165 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___ClassVerifierVisitor].i;
2166 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2167 val_t tmp;
2168 if (init_table[itpos5]) return;
2169 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2170 fra.me.file = LOCATE_syntax___mmbuilder;
2171 fra.me.line = 382;
2172 fra.me.meth = LOCATE_syntax___mmbuilder___ClassVerifierVisitor___init;
2173 fra.me.has_broke = 0;
2174 fra.me.REG_size = 3;
2175 fra.me.REG[0] = NIT_NULL;
2176 fra.me.REG[1] = NIT_NULL;
2177 fra.me.REG[2] = NIT_NULL;
2178 fra.me.REG[0] = p0;
2179 fra.me.REG[1] = p1;
2180 fra.me.REG[2] = p2;
2181 /* ./syntax//mmbuilder.nit:382 */
2182 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2183 stack_frame_head = fra.me.prev;
2184 init_table[itpos5] = 1;
2185 return;
2186 }
2187 void syntax___mmbuilder___PropertyBuilderVisitor___visit(val_t p0, val_t p1){
2188 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2189 val_t REGB0;
2190 val_t tmp;
2191 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2192 fra.me.file = LOCATE_syntax___mmbuilder;
2193 fra.me.line = 392;
2194 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyBuilderVisitor___visit;
2195 fra.me.has_broke = 0;
2196 fra.me.REG_size = 2;
2197 fra.me.REG[0] = NIT_NULL;
2198 fra.me.REG[1] = NIT_NULL;
2199 fra.me.REG[0] = p0;
2200 fra.me.REG[1] = p1;
2201 /* ./syntax//mmbuilder.nit:392 */
2202 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2203 if (UNTAG_Bool(REGB0)) {
2204 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 392);
2205 }
2206 CALL_syntax___mmbuilder___ANode___accept_property_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2207 stack_frame_head = fra.me.prev;
2208 return;
2209 }
2210 void syntax___mmbuilder___PropertyBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2211 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___PropertyBuilderVisitor].i;
2212 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2213 val_t tmp;
2214 if (init_table[itpos6]) return;
2215 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2216 fra.me.file = LOCATE_syntax___mmbuilder;
2217 fra.me.line = 393;
2218 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyBuilderVisitor___init;
2219 fra.me.has_broke = 0;
2220 fra.me.REG_size = 3;
2221 fra.me.REG[0] = NIT_NULL;
2222 fra.me.REG[1] = NIT_NULL;
2223 fra.me.REG[2] = NIT_NULL;
2224 fra.me.REG[0] = p0;
2225 fra.me.REG[1] = p1;
2226 fra.me.REG[2] = p2;
2227 /* ./syntax//mmbuilder.nit:393 */
2228 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2229 stack_frame_head = fra.me.prev;
2230 init_table[itpos6] = 1;
2231 return;
2232 }
2233 val_t syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(val_t p0){
2234 struct {struct stack_frame_t me;} fra;
2235 val_t REGB0;
2236 val_t tmp;
2237 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2238 fra.me.file = LOCATE_syntax___mmbuilder;
2239 fra.me.line = 401;
2240 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder;
2241 fra.me.has_broke = 0;
2242 fra.me.REG_size = 1;
2243 fra.me.REG[0] = NIT_NULL;
2244 fra.me.REG[0] = p0;
2245 /* ./syntax//mmbuilder.nit:401 */
2246 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0])!=NIT_NULL);
2247 if (UNTAG_Bool(REGB0)) {
2248 } else {
2249 nit_abort("Uninitialized attribute %s", "_signature_builder", LOCATE_syntax___mmbuilder, 401);
2250 }
2251 fra.me.REG[0] = ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0]);
2252 stack_frame_head = fra.me.prev;
2253 return fra.me.REG[0];
2254 }
2255 void syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(val_t p0, val_t p1){
2256 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2257 val_t tmp;
2258 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2259 fra.me.file = LOCATE_syntax___mmbuilder;
2260 fra.me.line = 401;
2261 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq;
2262 fra.me.has_broke = 0;
2263 fra.me.REG_size = 2;
2264 fra.me.REG[0] = NIT_NULL;
2265 fra.me.REG[1] = NIT_NULL;
2266 fra.me.REG[0] = p0;
2267 fra.me.REG[1] = p1;
2268 /* ./syntax//mmbuilder.nit:401 */
2269 ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0]) = fra.me.REG[1];
2270 stack_frame_head = fra.me.prev;
2271 return;
2272 }
2273 void syntax___mmbuilder___PropertyVerifierVisitor___visit(val_t p0, val_t p1){
2274 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2275 val_t REGB0;
2276 val_t tmp;
2277 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2278 fra.me.file = LOCATE_syntax___mmbuilder;
2279 fra.me.line = 404;
2280 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___visit;
2281 fra.me.has_broke = 0;
2282 fra.me.REG_size = 2;
2283 fra.me.REG[0] = NIT_NULL;
2284 fra.me.REG[1] = NIT_NULL;
2285 fra.me.REG[0] = p0;
2286 fra.me.REG[1] = p1;
2287 /* ./syntax//mmbuilder.nit:404 */
2288 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2289 if (UNTAG_Bool(REGB0)) {
2290 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 404);
2291 }
2292 CALL_syntax___mmbuilder___ANode___accept_property_verifier(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2293 stack_frame_head = fra.me.prev;
2294 return;
2295 }
2296 void syntax___mmbuilder___PropertyVerifierVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2297 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___PropertyVerifierVisitor].i;
2298 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2299 val_t tmp;
2300 if (init_table[itpos7]) return;
2301 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2302 fra.me.file = LOCATE_syntax___mmbuilder;
2303 fra.me.line = 406;
2304 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___init;
2305 fra.me.has_broke = 0;
2306 fra.me.REG_size = 4;
2307 fra.me.REG[0] = NIT_NULL;
2308 fra.me.REG[1] = NIT_NULL;
2309 fra.me.REG[2] = NIT_NULL;
2310 fra.me.REG[3] = NIT_NULL;
2311 fra.me.REG[0] = p0;
2312 fra.me.REG[1] = p1;
2313 fra.me.REG[2] = p2;
2314 /* ./syntax//mmbuilder.nit:406 */
2315 fra.me.REG[3] = fra.me.REG[0];
2316 /* ./syntax//mmbuilder.nit:408 */
2317 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2318 /* ./syntax//mmbuilder.nit:409 */
2319 fra.me.REG[2] = NEW_SignatureBuilder_syntax___mmbuilder___SignatureBuilder___init();
2320 ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[3]) = fra.me.REG[2];
2321 stack_frame_head = fra.me.prev;
2322 init_table[itpos7] = 1;
2323 return;
2324 }
2325 val_t syntax___mmbuilder___SignatureBuilder___params(val_t p0){
2326 struct {struct stack_frame_t me;} fra;
2327 val_t REGB0;
2328 val_t tmp;
2329 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2330 fra.me.file = LOCATE_syntax___mmbuilder;
2331 fra.me.line = 415;
2332 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___params;
2333 fra.me.has_broke = 0;
2334 fra.me.REG_size = 1;
2335 fra.me.REG[0] = NIT_NULL;
2336 fra.me.REG[0] = p0;
2337 /* ./syntax//mmbuilder.nit:415 */
2338 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____params(fra.me.REG[0])!=NIT_NULL);
2339 if (UNTAG_Bool(REGB0)) {
2340 } else {
2341 nit_abort("Uninitialized attribute %s", "_params", LOCATE_syntax___mmbuilder, 415);
2342 }
2343 fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____params(fra.me.REG[0]);
2344 stack_frame_head = fra.me.prev;
2345 return fra.me.REG[0];
2346 }
2347 void syntax___mmbuilder___SignatureBuilder___params__eq(val_t p0, val_t p1){
2348 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2349 val_t tmp;
2350 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2351 fra.me.file = LOCATE_syntax___mmbuilder;
2352 fra.me.line = 415;
2353 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___params__eq;
2354 fra.me.has_broke = 0;
2355 fra.me.REG_size = 2;
2356 fra.me.REG[0] = NIT_NULL;
2357 fra.me.REG[1] = NIT_NULL;
2358 fra.me.REG[0] = p0;
2359 fra.me.REG[1] = p1;
2360 /* ./syntax//mmbuilder.nit:415 */
2361 ATTR_syntax___mmbuilder___SignatureBuilder____params(fra.me.REG[0]) = fra.me.REG[1];
2362 stack_frame_head = fra.me.prev;
2363 return;
2364 }
2365 val_t syntax___mmbuilder___SignatureBuilder___untyped_params(val_t p0){
2366 struct {struct stack_frame_t me;} fra;
2367 val_t REGB0;
2368 val_t tmp;
2369 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2370 fra.me.file = LOCATE_syntax___mmbuilder;
2371 fra.me.line = 418;
2372 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___untyped_params;
2373 fra.me.has_broke = 0;
2374 fra.me.REG_size = 1;
2375 fra.me.REG[0] = NIT_NULL;
2376 fra.me.REG[0] = p0;
2377 /* ./syntax//mmbuilder.nit:418 */
2378 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0])!=NIT_NULL);
2379 if (UNTAG_Bool(REGB0)) {
2380 } else {
2381 nit_abort("Uninitialized attribute %s", "_untyped_params", LOCATE_syntax___mmbuilder, 418);
2382 }
2383 fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0]);
2384 stack_frame_head = fra.me.prev;
2385 return fra.me.REG[0];
2386 }
2387 void syntax___mmbuilder___SignatureBuilder___untyped_params__eq(val_t p0, val_t p1){
2388 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2389 val_t tmp;
2390 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2391 fra.me.file = LOCATE_syntax___mmbuilder;
2392 fra.me.line = 418;
2393 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___untyped_params__eq;
2394 fra.me.has_broke = 0;
2395 fra.me.REG_size = 2;
2396 fra.me.REG[0] = NIT_NULL;
2397 fra.me.REG[1] = NIT_NULL;
2398 fra.me.REG[0] = p0;
2399 fra.me.REG[1] = p1;
2400 /* ./syntax//mmbuilder.nit:418 */
2401 ATTR_syntax___mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0]) = fra.me.REG[1];
2402 stack_frame_head = fra.me.prev;
2403 return;
2404 }
2405 val_t syntax___mmbuilder___SignatureBuilder___vararg_rank(val_t p0){
2406 struct {struct stack_frame_t me;} fra;
2407 val_t REGB0;
2408 val_t tmp;
2409 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2410 fra.me.file = LOCATE_syntax___mmbuilder;
2411 fra.me.line = 421;
2412 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___vararg_rank;
2413 fra.me.has_broke = 0;
2414 fra.me.REG_size = 1;
2415 fra.me.REG[0] = NIT_NULL;
2416 fra.me.REG[0] = p0;
2417 /* ./syntax//mmbuilder.nit:421 */
2418 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0])!=NIT_NULL);
2419 if (UNTAG_Bool(REGB0)) {
2420 } else {
2421 nit_abort("Uninitialized attribute %s", "_vararg_rank", LOCATE_syntax___mmbuilder, 421);
2422 }
2423 REGB0 = ATTR_syntax___mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]);
2424 stack_frame_head = fra.me.prev;
2425 return REGB0;
2426 }
2427 void syntax___mmbuilder___SignatureBuilder___vararg_rank__eq(val_t p0, val_t p1){
2428 struct {struct stack_frame_t me;} fra;
2429 val_t REGB0;
2430 val_t tmp;
2431 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2432 fra.me.file = LOCATE_syntax___mmbuilder;
2433 fra.me.line = 421;
2434 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___vararg_rank__eq;
2435 fra.me.has_broke = 0;
2436 fra.me.REG_size = 1;
2437 fra.me.REG[0] = NIT_NULL;
2438 fra.me.REG[0] = p0;
2439 REGB0 = p1;
2440 /* ./syntax//mmbuilder.nit:421 */
2441 ATTR_syntax___mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]) = REGB0;
2442 stack_frame_head = fra.me.prev;
2443 return;
2444 }
2445 val_t syntax___mmbuilder___SignatureBuilder___closure_decls(val_t p0){
2446 struct {struct stack_frame_t me;} fra;
2447 val_t REGB0;
2448 val_t tmp;
2449 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2450 fra.me.file = LOCATE_syntax___mmbuilder;
2451 fra.me.line = 424;
2452 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___closure_decls;
2453 fra.me.has_broke = 0;
2454 fra.me.REG_size = 1;
2455 fra.me.REG[0] = NIT_NULL;
2456 fra.me.REG[0] = p0;
2457 /* ./syntax//mmbuilder.nit:424 */
2458 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0])!=NIT_NULL);
2459 if (UNTAG_Bool(REGB0)) {
2460 } else {
2461 nit_abort("Uninitialized attribute %s", "_closure_decls", LOCATE_syntax___mmbuilder, 424);
2462 }
2463 fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0]);
2464 stack_frame_head = fra.me.prev;
2465 return fra.me.REG[0];
2466 }
2467 void syntax___mmbuilder___SignatureBuilder___closure_decls__eq(val_t p0, val_t p1){
2468 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2469 val_t tmp;
2470 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2471 fra.me.file = LOCATE_syntax___mmbuilder;
2472 fra.me.line = 424;
2473 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___closure_decls__eq;
2474 fra.me.has_broke = 0;
2475 fra.me.REG_size = 2;
2476 fra.me.REG[0] = NIT_NULL;
2477 fra.me.REG[1] = NIT_NULL;
2478 fra.me.REG[0] = p0;
2479 fra.me.REG[1] = p1;
2480 /* ./syntax//mmbuilder.nit:424 */
2481 ATTR_syntax___mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0]) = fra.me.REG[1];
2482 stack_frame_head = fra.me.prev;
2483 return;
2484 }
2485 val_t syntax___mmbuilder___SignatureBuilder___has_error_occured(val_t p0){
2486 struct {struct stack_frame_t me;} fra;
2487 val_t REGB0;
2488 val_t tmp;
2489 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2490 fra.me.file = LOCATE_syntax___mmbuilder;
2491 fra.me.line = 427;
2492 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___has_error_occured;
2493 fra.me.has_broke = 0;
2494 fra.me.REG_size = 1;
2495 fra.me.REG[0] = NIT_NULL;
2496 fra.me.REG[0] = p0;
2497 /* ./syntax//mmbuilder.nit:427 */
2498 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0])!=NIT_NULL);
2499 if (UNTAG_Bool(REGB0)) {
2500 } else {
2501 nit_abort("Uninitialized attribute %s", "_has_error_occured", LOCATE_syntax___mmbuilder, 427);
2502 }
2503 REGB0 = ATTR_syntax___mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]);
2504 stack_frame_head = fra.me.prev;
2505 return REGB0;
2506 }
2507 void syntax___mmbuilder___SignatureBuilder___has_error_occured__eq(val_t p0, val_t p1){
2508 struct {struct stack_frame_t me;} fra;
2509 val_t REGB0;
2510 val_t tmp;
2511 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2512 fra.me.file = LOCATE_syntax___mmbuilder;
2513 fra.me.line = 427;
2514 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___has_error_occured__eq;
2515 fra.me.has_broke = 0;
2516 fra.me.REG_size = 1;
2517 fra.me.REG[0] = NIT_NULL;
2518 fra.me.REG[0] = p0;
2519 REGB0 = p1;
2520 /* ./syntax//mmbuilder.nit:427 */
2521 ATTR_syntax___mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]) = REGB0;
2522 stack_frame_head = fra.me.prev;
2523 return;
2524 }
2525 val_t syntax___mmbuilder___SignatureBuilder___signature(val_t p0){
2526 struct {struct stack_frame_t me;} fra;
2527 val_t tmp;
2528 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2529 fra.me.file = LOCATE_syntax___mmbuilder;
2530 fra.me.line = 430;
2531 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___signature;
2532 fra.me.has_broke = 0;
2533 fra.me.REG_size = 1;
2534 fra.me.REG[0] = NIT_NULL;
2535 fra.me.REG[0] = p0;
2536 /* ./syntax//mmbuilder.nit:430 */
2537 fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____signature(fra.me.REG[0]);
2538 stack_frame_head = fra.me.prev;
2539 return fra.me.REG[0];
2540 }
2541 void syntax___mmbuilder___SignatureBuilder___signature__eq(val_t p0, val_t p1){
2542 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2543 val_t tmp;
2544 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2545 fra.me.file = LOCATE_syntax___mmbuilder;
2546 fra.me.line = 430;
2547 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___signature__eq;
2548 fra.me.has_broke = 0;
2549 fra.me.REG_size = 2;
2550 fra.me.REG[0] = NIT_NULL;
2551 fra.me.REG[1] = NIT_NULL;
2552 fra.me.REG[0] = p0;
2553 fra.me.REG[1] = p1;
2554 /* ./syntax//mmbuilder.nit:430 */
2555 ATTR_syntax___mmbuilder___SignatureBuilder____signature(fra.me.REG[0]) = fra.me.REG[1];
2556 stack_frame_head = fra.me.prev;
2557 return;
2558 }
2559 void syntax___mmbuilder___SignatureBuilder___init(val_t p0, int* init_table){
2560 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___SignatureBuilder].i;
2561 struct {struct stack_frame_t me;} fra;
2562 val_t tmp;
2563 if (init_table[itpos8]) return;
2564 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2565 fra.me.file = LOCATE_syntax___mmbuilder;
2566 fra.me.line = 0;
2567 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___init;
2568 fra.me.has_broke = 0;
2569 fra.me.REG_size = 0;
2570 stack_frame_head = fra.me.prev;
2571 init_table[itpos8] = 1;
2572 return;
2573 }
2574 void syntax___mmbuilder___ANode___accept_class_builder(val_t p0, val_t p1){
2575 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2576 val_t tmp;
2577 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2578 fra.me.file = LOCATE_syntax___mmbuilder;
2579 fra.me.line = 437;
2580 fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_class_builder;
2581 fra.me.has_broke = 0;
2582 fra.me.REG_size = 2;
2583 fra.me.REG[0] = NIT_NULL;
2584 fra.me.REG[1] = NIT_NULL;
2585 fra.me.REG[0] = p0;
2586 fra.me.REG[1] = p1;
2587 /* ./syntax//mmbuilder.nit:437 */
2588 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2589 stack_frame_head = fra.me.prev;
2590 return;
2591 }
2592 void syntax___mmbuilder___ANode___accept_class_specialization_builder(val_t p0, val_t p1){
2593 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2594 val_t tmp;
2595 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2596 fra.me.file = LOCATE_syntax___mmbuilder;
2597 fra.me.line = 438;
2598 fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_class_specialization_builder;
2599 fra.me.has_broke = 0;
2600 fra.me.REG_size = 2;
2601 fra.me.REG[0] = NIT_NULL;
2602 fra.me.REG[1] = NIT_NULL;
2603 fra.me.REG[0] = p0;
2604 fra.me.REG[1] = p1;
2605 /* ./syntax//mmbuilder.nit:438 */
2606 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2607 stack_frame_head = fra.me.prev;
2608 return;
2609 }
2610 void syntax___mmbuilder___ANode___accept_class_ancestor_builder(val_t p0, val_t p1){
2611 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2612 val_t tmp;
2613 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2614 fra.me.file = LOCATE_syntax___mmbuilder;
2615 fra.me.line = 439;
2616 fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_class_ancestor_builder;
2617 fra.me.has_broke = 0;
2618 fra.me.REG_size = 2;
2619 fra.me.REG[0] = NIT_NULL;
2620 fra.me.REG[1] = NIT_NULL;
2621 fra.me.REG[0] = p0;
2622 fra.me.REG[1] = p1;
2623 /* ./syntax//mmbuilder.nit:439 */
2624 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2625 stack_frame_head = fra.me.prev;
2626 return;
2627 }
2628 void syntax___mmbuilder___ANode___accept_class_verifier(val_t p0, val_t p1){
2629 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2630 val_t tmp;
2631 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2632 fra.me.file = LOCATE_syntax___mmbuilder;
2633 fra.me.line = 440;
2634 fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_class_verifier;
2635 fra.me.has_broke = 0;
2636 fra.me.REG_size = 2;
2637 fra.me.REG[0] = NIT_NULL;
2638 fra.me.REG[1] = NIT_NULL;
2639 fra.me.REG[0] = p0;
2640 fra.me.REG[1] = p1;
2641 /* ./syntax//mmbuilder.nit:440 */
2642 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2643 stack_frame_head = fra.me.prev;
2644 return;
2645 }
2646 void syntax___mmbuilder___ANode___accept_property_builder(val_t p0, val_t p1){
2647 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2648 val_t tmp;
2649 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2650 fra.me.file = LOCATE_syntax___mmbuilder;
2651 fra.me.line = 441;
2652 fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_property_builder;
2653 fra.me.has_broke = 0;
2654 fra.me.REG_size = 2;
2655 fra.me.REG[0] = NIT_NULL;
2656 fra.me.REG[1] = NIT_NULL;
2657 fra.me.REG[0] = p0;
2658 fra.me.REG[1] = p1;
2659 /* ./syntax//mmbuilder.nit:441 */
2660 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2661 stack_frame_head = fra.me.prev;
2662 return;
2663 }
2664 void syntax___mmbuilder___ANode___accept_property_verifier(val_t p0, val_t p1){
2665 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2666 val_t tmp;
2667 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2668 fra.me.file = LOCATE_syntax___mmbuilder;
2669 fra.me.line = 442;
2670 fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_property_verifier;
2671 fra.me.has_broke = 0;
2672 fra.me.REG_size = 2;
2673 fra.me.REG[0] = NIT_NULL;
2674 fra.me.REG[1] = NIT_NULL;
2675 fra.me.REG[0] = p0;
2676 fra.me.REG[1] = p1;
2677 /* ./syntax//mmbuilder.nit:442 */
2678 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2679 stack_frame_head = fra.me.prev;
2680 return;
2681 }
2682 void syntax___mmbuilder___AModule___import_super_modules(val_t p0, val_t p1, val_t p2){
2683 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
2684 val_t REGB0;
2685 val_t REGB1;
2686 val_t tmp;
2687 static val_t once_value_2; /* Once value */
2688 static val_t once_value_3; /* Once value */
2689 static val_t once_value_4; /* Once value */
2690 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2691 fra.me.file = LOCATE_syntax___mmbuilder;
2692 fra.me.line = 446;
2693 fra.me.meth = LOCATE_syntax___mmbuilder___AModule___import_super_modules;
2694 fra.me.has_broke = 0;
2695 fra.me.REG_size = 5;
2696 fra.me.REG[0] = NIT_NULL;
2697 fra.me.REG[1] = NIT_NULL;
2698 fra.me.REG[2] = NIT_NULL;
2699 fra.me.REG[3] = NIT_NULL;
2700 fra.me.REG[4] = NIT_NULL;
2701 fra.me.REG[0] = p0;
2702 fra.me.REG[1] = p1;
2703 fra.me.REG[2] = p2;
2704 /* ./syntax//mmbuilder.nit:450 */
2705 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
2706 /* ./syntax//mmbuilder.nit:451 */
2707 fra.me.REG[4] = NIT_NULL;
2708 /* ./syntax//mmbuilder.nit:452 */
2709 fra.me.REG[0] = CALL_parser___parser_nodes___AModule___n_imports(fra.me.REG[0])(fra.me.REG[0]);
2710 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___AModule___import_super_modules_1));
2711 /* ./syntax//mmbuilder.nit:462 */
2712 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2713 if (UNTAG_Bool(REGB0)) {
2714 } else {
2715 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2716 if (UNTAG_Bool(REGB1)) {
2717 REGB1 = TAG_Bool(false);
2718 REGB0 = REGB1;
2719 } else {
2720 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
2721 REGB0 = REGB1;
2722 }
2723 }
2724 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2725 if (UNTAG_Bool(REGB0)) {
2726 /* ./syntax//mmbuilder.nit:463 */
2727 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
2728 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2729 if (UNTAG_Bool(REGB0)) {
2730 /* ./syntax//mmbuilder.nit:464 */
2731 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2732 if (UNTAG_Bool(REGB0)) {
2733 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 464);
2734 }
2735 fra.me.REG[4] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[4])(fra.me.REG[4]);
2736 if (!once_value_2) {
2737 fra.me.REG[0] = BOX_NativeString("Error: Top modules cannot import other modules.");
2738 REGB0 = TAG_Int(47);
2739 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2740 once_value_2 = fra.me.REG[0];
2741 register_static_object(&once_value_2);
2742 } else fra.me.REG[0] = once_value_2;
2743 fra.me.REG[0] = fra.me.REG[0];
2744 CALL_mmloader___ToolContext___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]);
2745 }
2746 } else {
2747 /* ./syntax//mmbuilder.nit:466 */
2748 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
2749 if (UNTAG_Bool(REGB0)) {
2750 /* ./syntax//mmbuilder.nit:467 */
2751 if (!once_value_3) {
2752 if (!once_value_4) {
2753 fra.me.REG[0] = BOX_NativeString("standard");
2754 REGB0 = TAG_Int(8);
2755 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2756 once_value_4 = fra.me.REG[0];
2757 register_static_object(&once_value_4);
2758 } else fra.me.REG[0] = once_value_4;
2759 fra.me.REG[0] = fra.me.REG[0];
2760 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
2761 once_value_3 = fra.me.REG[0];
2762 register_static_object(&once_value_3);
2763 } else fra.me.REG[0] = once_value_3;
2764 fra.me.REG[0] = fra.me.REG[0];
2765 /* ./syntax//mmbuilder.nit:468 */
2766 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]);
2767 /* ./syntax//mmbuilder.nit:469 */
2768 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
2769 /* ./syntax//mmbuilder.nit:470 */
2770 REGB0 = TAG_Int(1);
2771 CALL_metamodel___abstractmetamodel___MMModule___add_super_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], REGB0);
2772 }
2773 }
2774 /* ./syntax//mmbuilder.nit:473 */
2775 CALL_metamodel___abstractmetamodel___MMContext___add_module(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
2776 stack_frame_head = fra.me.prev;
2777 return;
2778 }
2779 void OC_syntax___mmbuilder___AModule___import_super_modules_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
2780 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2781 val_t REGB0;
2782 val_t REGB1;
2783 fun_t CREG[1];
2784 val_t tmp;
2785 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2786 fra.me.file = LOCATE_syntax___mmbuilder;
2787 fra.me.line = 0;
2788 fra.me.meth = LOCATE_syntax___mmbuilder___AModule___import_super_modules;
2789 fra.me.has_broke = 0;
2790 fra.me.REG_size = 2;
2791 fra.me.REG[0] = NIT_NULL;
2792 fra.me.REG[1] = NIT_NULL;
2793 fra.me.closure_ctx = closctx_param;
2794 fra.me.closure_funs = CREG;
2795 fra.me.REG[0] = p0;
2796 CREG[0] = clos_fun0;
2797 /* ./syntax//mmbuilder.nit:453 */
2798 fra.me.REG[1] = CALL_syntax___mmbuilder___AImport___module_name(fra.me.REG[0])(fra.me.REG[0]);
2799 /* ./syntax//mmbuilder.nit:454 */
2800 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2801 if (UNTAG_Bool(REGB0)) {
2802 } else {
2803 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2804 if (UNTAG_Bool(REGB1)) {
2805 REGB1 = TAG_Bool(false);
2806 REGB0 = REGB1;
2807 } else {
2808 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2809 REGB0 = REGB1;
2810 }
2811 }
2812 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2813 if (UNTAG_Bool(REGB0)) {
2814 /* ./syntax//mmbuilder.nit:455 */
2815 fra.me.REG[1] = CALL_mmloader___ToolContext___get_module(closctx->REG[1])(closctx->REG[1], fra.me.REG[1], closctx->REG[2]);
2816 /* ./syntax//mmbuilder.nit:456 */
2817 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[1]);
2818 /* ./syntax//mmbuilder.nit:457 */
2819 REGB0 = CALL_syntax___mmbuilder___AImport___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
2820 CALL_metamodel___abstractmetamodel___MMModule___add_super_module(closctx->REG[2])(closctx->REG[2], fra.me.REG[1], REGB0);
2821 } else {
2822 /* ./syntax//mmbuilder.nit:459 */
2823 closctx->REG[4] = fra.me.REG[0];
2824 }
2825 stack_frame_head = fra.me.prev;
2826 return;
2827 }
2828 void syntax___mmbuilder___AModuledecl___accept_class_builder(val_t p0, val_t p1){
2829 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
2830 val_t REGB0;
2831 val_t REGB1;
2832 val_t tmp;
2833 static val_t once_value_1; /* Once value */
2834 static val_t once_value_2; /* Once value */
2835 static val_t once_value_3; /* Once value */
2836 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2837 fra.me.file = LOCATE_syntax___mmbuilder;
2838 fra.me.line = 478;
2839 fra.me.meth = LOCATE_syntax___mmbuilder___AModuledecl___accept_class_builder;
2840 fra.me.has_broke = 0;
2841 fra.me.REG_size = 5;
2842 fra.me.REG[0] = NIT_NULL;
2843 fra.me.REG[1] = NIT_NULL;
2844 fra.me.REG[2] = NIT_NULL;
2845 fra.me.REG[3] = NIT_NULL;
2846 fra.me.REG[4] = NIT_NULL;
2847 fra.me.REG[0] = p0;
2848 fra.me.REG[1] = p1;
2849 /* ./syntax//mmbuilder.nit:480 */
2850 fra.me.REG[2] = CALL_parser___parser_nodes___AModuledecl___n_name(fra.me.REG[0])(fra.me.REG[0]);
2851 fra.me.REG[2] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[2])(fra.me.REG[2]);
2852 fra.me.REG[2] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
2853 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
2854 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___name(fra.me.REG[3])(fra.me.REG[3]);
2855 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
2856 if (UNTAG_Bool(REGB0)) {
2857 } else {
2858 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2859 REGB0 = REGB1;
2860 }
2861 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2862 if (UNTAG_Bool(REGB0)) {
2863 /* ./syntax//mmbuilder.nit:481 */
2864 fra.me.REG[3] = CALL_parser___parser_nodes___AModuledecl___n_name(fra.me.REG[0])(fra.me.REG[0]);
2865 fra.me.REG[3] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[3])(fra.me.REG[3]);
2866 REGB0 = TAG_Int(5);
2867 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2868 if (!once_value_1) {
2869 fra.me.REG[4] = BOX_NativeString("Error: Module name mismatch between ");
2870 REGB0 = TAG_Int(36);
2871 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2872 once_value_1 = fra.me.REG[4];
2873 register_static_object(&once_value_1);
2874 } else fra.me.REG[4] = once_value_1;
2875 fra.me.REG[4] = fra.me.REG[4];
2876 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
2877 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
2878 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMModule___name(fra.me.REG[4])(fra.me.REG[4]);
2879 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
2880 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
2881 if (!once_value_2) {
2882 fra.me.REG[4] = BOX_NativeString(" and ");
2883 REGB0 = TAG_Int(5);
2884 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2885 once_value_2 = fra.me.REG[4];
2886 register_static_object(&once_value_2);
2887 } else fra.me.REG[4] = once_value_2;
2888 fra.me.REG[4] = fra.me.REG[4];
2889 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
2890 fra.me.REG[0] = CALL_parser___parser_nodes___AModuledecl___n_name(fra.me.REG[0])(fra.me.REG[0]);
2891 fra.me.REG[0] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[0])(fra.me.REG[0]);
2892 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
2893 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2894 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2895 if (!once_value_3) {
2896 fra.me.REG[0] = BOX_NativeString("");
2897 REGB0 = TAG_Int(0);
2898 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2899 once_value_3 = fra.me.REG[0];
2900 register_static_object(&once_value_3);
2901 } else fra.me.REG[0] = once_value_3;
2902 fra.me.REG[0] = fra.me.REG[0];
2903 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2904 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2905 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2]);
2906 }
2907 stack_frame_head = fra.me.prev;
2908 return;
2909 }
2910 val_t syntax___mmbuilder___AImport___module_name(val_t p0){
2911 struct {struct stack_frame_t me;} fra;
2912 val_t tmp;
2913 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2914 fra.me.file = LOCATE_syntax___mmbuilder;
2915 fra.me.line = 487;
2916 fra.me.meth = LOCATE_syntax___mmbuilder___AImport___module_name;
2917 fra.me.has_broke = 0;
2918 fra.me.REG_size = 0;
2919 /* ./syntax//mmbuilder.nit:487 */
2920 nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 487);
2921 stack_frame_head = fra.me.prev;
2922 return NIT_NULL;
2923 }
2924 val_t syntax___mmbuilder___AImport___visibility_level(val_t p0){
2925 struct {struct stack_frame_t me;} fra;
2926 val_t tmp;
2927 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2928 fra.me.file = LOCATE_syntax___mmbuilder;
2929 fra.me.line = 490;
2930 fra.me.meth = LOCATE_syntax___mmbuilder___AImport___visibility_level;
2931 fra.me.has_broke = 0;
2932 fra.me.REG_size = 0;
2933 /* ./syntax//mmbuilder.nit:490 */
2934 nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 490);
2935 stack_frame_head = fra.me.prev;
2936 return NIT_NULL;
2937 }
2938 val_t syntax___mmbuilder___AStdImport___module_name(val_t p0){
2939 struct {struct stack_frame_t me;} fra;
2940 val_t tmp;
2941 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2942 fra.me.file = LOCATE_syntax___mmbuilder;
2943 fra.me.line = 494;
2944 fra.me.meth = LOCATE_syntax___mmbuilder___AStdImport___module_name;
2945 fra.me.has_broke = 0;
2946 fra.me.REG_size = 1;
2947 fra.me.REG[0] = NIT_NULL;
2948 fra.me.REG[0] = p0;
2949 /* ./syntax//mmbuilder.nit:496 */
2950 fra.me.REG[0] = CALL_parser___parser_nodes___AStdImport___n_name(fra.me.REG[0])(fra.me.REG[0]);
2951 fra.me.REG[0] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[0])(fra.me.REG[0]);
2952 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
2953 goto label1;
2954 label1: while(0);
2955 stack_frame_head = fra.me.prev;
2956 return fra.me.REG[0];
2957 }
2958 val_t syntax___mmbuilder___AStdImport___visibility_level(val_t p0){
2959 struct {struct stack_frame_t me;} fra;
2960 val_t REGB0;
2961 val_t tmp;
2962 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2963 fra.me.file = LOCATE_syntax___mmbuilder;
2964 fra.me.line = 498;
2965 fra.me.meth = LOCATE_syntax___mmbuilder___AStdImport___visibility_level;
2966 fra.me.has_broke = 0;
2967 fra.me.REG_size = 1;
2968 fra.me.REG[0] = NIT_NULL;
2969 fra.me.REG[0] = p0;
2970 /* ./syntax//mmbuilder.nit:500 */
2971 fra.me.REG[0] = CALL_parser___parser_nodes___AStdImport___n_visibility(fra.me.REG[0])(fra.me.REG[0]);
2972 REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
2973 goto label1;
2974 label1: while(0);
2975 stack_frame_head = fra.me.prev;
2976 return REGB0;
2977 }
2978 val_t syntax___mmbuilder___ANoImport___module_name(val_t p0){
2979 struct {struct stack_frame_t me;} fra;
2980 val_t tmp;
2981 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2982 fra.me.file = LOCATE_syntax___mmbuilder;
2983 fra.me.line = 504;
2984 fra.me.meth = LOCATE_syntax___mmbuilder___ANoImport___module_name;
2985 fra.me.has_broke = 0;
2986 fra.me.REG_size = 1;
2987 fra.me.REG[0] = NIT_NULL;
2988 fra.me.REG[0] = p0;
2989 /* ./syntax//mmbuilder.nit:506 */
2990 fra.me.REG[0] = NIT_NULL;
2991 goto label1;
2992 label1: while(0);
2993 stack_frame_head = fra.me.prev;
2994 return fra.me.REG[0];
2995 }
2996 val_t syntax___mmbuilder___AVisibility___level(val_t p0){
2997 struct {struct stack_frame_t me;} fra;
2998 val_t tmp;
2999 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3000 fra.me.file = LOCATE_syntax___mmbuilder;
3001 fra.me.line = 511;
3002 fra.me.meth = LOCATE_syntax___mmbuilder___AVisibility___level;
3003 fra.me.has_broke = 0;
3004 fra.me.REG_size = 0;
3005 /* ./syntax//mmbuilder.nit:511 */
3006 nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 511);
3007 stack_frame_head = fra.me.prev;
3008 return NIT_NULL;
3009 }
3010 val_t syntax___mmbuilder___APublicVisibility___level(val_t p0){
3011 struct {struct stack_frame_t me;} fra;
3012 val_t REGB0;
3013 val_t tmp;
3014 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3015 fra.me.file = LOCATE_syntax___mmbuilder;
3016 fra.me.line = 515;
3017 fra.me.meth = LOCATE_syntax___mmbuilder___APublicVisibility___level;
3018 fra.me.has_broke = 0;
3019 fra.me.REG_size = 1;
3020 fra.me.REG[0] = NIT_NULL;
3021 fra.me.REG[0] = p0;
3022 /* ./syntax//mmbuilder.nit:515 */
3023 REGB0 = TAG_Int(1);
3024 goto label1;
3025 label1: while(0);
3026 stack_frame_head = fra.me.prev;
3027 return REGB0;
3028 }
3029 val_t syntax___mmbuilder___AProtectedVisibility___level(val_t p0){
3030 struct {struct stack_frame_t me;} fra;
3031 val_t REGB0;
3032 val_t tmp;
3033 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3034 fra.me.file = LOCATE_syntax___mmbuilder;
3035 fra.me.line = 518;
3036 fra.me.meth = LOCATE_syntax___mmbuilder___AProtectedVisibility___level;
3037 fra.me.has_broke = 0;
3038 fra.me.REG_size = 1;
3039 fra.me.REG[0] = NIT_NULL;
3040 fra.me.REG[0] = p0;
3041 /* ./syntax//mmbuilder.nit:518 */
3042 REGB0 = TAG_Int(2);
3043 goto label1;
3044 label1: while(0);
3045 stack_frame_head = fra.me.prev;
3046 return REGB0;
3047 }
3048 val_t syntax___mmbuilder___APrivateVisibility___level(val_t p0){
3049 struct {struct stack_frame_t me;} fra;
3050 val_t REGB0;
3051 val_t tmp;
3052 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3053 fra.me.file = LOCATE_syntax___mmbuilder;
3054 fra.me.line = 521;
3055 fra.me.meth = LOCATE_syntax___mmbuilder___APrivateVisibility___level;
3056 fra.me.has_broke = 0;
3057 fra.me.REG_size = 1;
3058 fra.me.REG[0] = NIT_NULL;
3059 fra.me.REG[0] = p0;
3060 /* ./syntax//mmbuilder.nit:521 */
3061 REGB0 = TAG_Int(3);
3062 goto label1;
3063 label1: while(0);
3064 stack_frame_head = fra.me.prev;
3065 return REGB0;
3066 }
3067 val_t syntax___mmbuilder___AIntrudeVisibility___level(val_t p0){
3068 struct {struct stack_frame_t me;} fra;
3069 val_t REGB0;
3070 val_t tmp;
3071 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3072 fra.me.file = LOCATE_syntax___mmbuilder;
3073 fra.me.line = 524;
3074 fra.me.meth = LOCATE_syntax___mmbuilder___AIntrudeVisibility___level;
3075 fra.me.has_broke = 0;
3076 fra.me.REG_size = 1;
3077 fra.me.REG[0] = NIT_NULL;
3078 fra.me.REG[0] = p0;
3079 /* ./syntax//mmbuilder.nit:524 */
3080 REGB0 = TAG_Int(0);
3081 goto label1;
3082 label1: while(0);
3083 stack_frame_head = fra.me.prev;
3084 return REGB0;
3085 }
3086 val_t syntax___mmbuilder___AClassdef___local_class(val_t p0){
3087 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3088 val_t REGB0;
3089 val_t tmp;
3090 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3091 fra.me.file = LOCATE_syntax___mmbuilder;
3092 fra.me.line = 529;
3093 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___local_class;
3094 fra.me.has_broke = 0;
3095 fra.me.REG_size = 2;
3096 fra.me.REG[0] = NIT_NULL;
3097 fra.me.REG[1] = NIT_NULL;
3098 fra.me.REG[0] = p0;
3099 /* ./syntax//mmbuilder.nit:529 */
3100 fra.me.REG[1] = fra.me.REG[0];
3101 fra.me.REG[1] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[1]);
3102 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
3103 if (UNTAG_Bool(REGB0)) {
3104 } else {
3105 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 529);
3106 }
3107 goto label1;
3108 label1: while(0);
3109 stack_frame_head = fra.me.prev;
3110 return fra.me.REG[1];
3111 }
3112 val_t syntax___mmbuilder___AClassdef___name(val_t p0){
3113 struct {struct stack_frame_t me;} fra;
3114 val_t tmp;
3115 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3116 fra.me.file = LOCATE_syntax___mmbuilder;
3117 fra.me.line = 532;
3118 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___name;
3119 fra.me.has_broke = 0;
3120 fra.me.REG_size = 0;
3121 /* ./syntax//mmbuilder.nit:532 */
3122 nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 532);
3123 stack_frame_head = fra.me.prev;
3124 return NIT_NULL;
3125 }
3126 val_t syntax___mmbuilder___AClassdef___arity(val_t p0){
3127 struct {struct stack_frame_t me;} fra;
3128 val_t REGB0;
3129 val_t tmp;
3130 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3131 fra.me.file = LOCATE_syntax___mmbuilder;
3132 fra.me.line = 535;
3133 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___arity;
3134 fra.me.has_broke = 0;
3135 fra.me.REG_size = 1;
3136 fra.me.REG[0] = NIT_NULL;
3137 fra.me.REG[0] = p0;
3138 /* ./syntax//mmbuilder.nit:536 */
3139 REGB0 = TAG_Int(0);
3140 goto label1;
3141 label1: while(0);
3142 stack_frame_head = fra.me.prev;
3143 return REGB0;
3144 }
3145 val_t syntax___mmbuilder___AClassdef___visibility_level(val_t p0){
3146 struct {struct stack_frame_t me;} fra;
3147 val_t REGB0;
3148 val_t tmp;
3149 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3150 fra.me.file = LOCATE_syntax___mmbuilder;
3151 fra.me.line = 538;
3152 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___visibility_level;
3153 fra.me.has_broke = 0;
3154 fra.me.REG_size = 1;
3155 fra.me.REG[0] = NIT_NULL;
3156 fra.me.REG[0] = p0;
3157 /* ./syntax//mmbuilder.nit:539 */
3158 REGB0 = TAG_Int(1);
3159 goto label1;
3160 label1: while(0);
3161 stack_frame_head = fra.me.prev;
3162 return REGB0;
3163 }
3164 void syntax___mmbuilder___AClassdef___accept_class_builder(val_t p0, val_t p1){
3165 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
3166 val_t REGB0;
3167 val_t REGB1;
3168 val_t tmp;
3169 static val_t once_value_1; /* Once value */
3170 static val_t once_value_2; /* Once value */
3171 static val_t once_value_3; /* Once value */
3172 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3173 fra.me.file = LOCATE_syntax___mmbuilder;
3174 fra.me.line = 541;
3175 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___accept_class_builder;
3176 fra.me.has_broke = 0;
3177 fra.me.REG_size = 9;
3178 fra.me.REG[0] = NIT_NULL;
3179 fra.me.REG[1] = NIT_NULL;
3180 fra.me.REG[2] = NIT_NULL;
3181 fra.me.REG[3] = NIT_NULL;
3182 fra.me.REG[4] = NIT_NULL;
3183 fra.me.REG[5] = NIT_NULL;
3184 fra.me.REG[6] = NIT_NULL;
3185 fra.me.REG[7] = NIT_NULL;
3186 fra.me.REG[8] = NIT_NULL;
3187 fra.me.REG[0] = p0;
3188 fra.me.REG[1] = p1;
3189 /* ./syntax//mmbuilder.nit:541 */
3190 fra.me.REG[2] = fra.me.REG[0];
3191 fra.me.REG[3] = fra.me.REG[1];
3192 /* ./syntax//mmbuilder.nit:544 */
3193 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
3194 /* ./syntax//mmbuilder.nit:545 */
3195 fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra.me.REG[4])(fra.me.REG[4]);
3196 /* ./syntax//mmbuilder.nit:546 */
3197 fra.me.REG[6] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3198 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
3199 if (UNTAG_Bool(REGB0)) {
3200 /* ./syntax//mmbuilder.nit:547 */
3201 fra.me.REG[6] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3202 fra.me.REG[6] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
3203 /* ./syntax//mmbuilder.nit:548 */
3204 ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]) = fra.me.REG[6];
3205 /* ./syntax//mmbuilder.nit:549 */
3206 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
3207 if (UNTAG_Bool(REGB0)) {
3208 /* ./syntax//mmbuilder.nit:551 */
3209 REGB0 = TAG_Int(5);
3210 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3211 if (!once_value_1) {
3212 fra.me.REG[8] = BOX_NativeString("Error: A class ");
3213 REGB0 = TAG_Int(15);
3214 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3215 once_value_1 = fra.me.REG[8];
3216 register_static_object(&once_value_1);
3217 } else fra.me.REG[8] = once_value_1;
3218 fra.me.REG[8] = fra.me.REG[8];
3219 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3220 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3221 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3222 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3223 if (!once_value_2) {
3224 fra.me.REG[8] = BOX_NativeString(" is already defined at line ");
3225 REGB0 = TAG_Int(28);
3226 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3227 once_value_2 = fra.me.REG[8];
3228 register_static_object(&once_value_2);
3229 } else fra.me.REG[8] = once_value_2;
3230 fra.me.REG[8] = fra.me.REG[8];
3231 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3232 fra.me.REG[8] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[6])(fra.me.REG[6]);
3233 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
3234 if (UNTAG_Bool(REGB0)) {
3235 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 551);
3236 }
3237 fra.me.REG[8] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[8])(fra.me.REG[8]);
3238 REGB0 = CALL_location___Location___line_start(fra.me.REG[8])(fra.me.REG[8]);
3239 fra.me.REG[8] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
3240 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3241 if (!once_value_3) {
3242 fra.me.REG[8] = BOX_NativeString(".");
3243 REGB0 = TAG_Int(1);
3244 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3245 once_value_3 = fra.me.REG[8];
3246 register_static_object(&once_value_3);
3247 } else fra.me.REG[8] = once_value_3;
3248 fra.me.REG[8] = fra.me.REG[8];
3249 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3250 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3251 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3252 /* ./syntax//mmbuilder.nit:552 */
3253 goto label4;
3254 }
3255 /* ./syntax//mmbuilder.nit:555 */
3256 fra.me.REG[7] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[6])(fra.me.REG[6]);
3257 /* ./syntax//mmbuilder.nit:556 */
3258 while(1) {
3259 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
3260 if (UNTAG_Bool(REGB0)) {
3261 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 556);
3262 }
3263 fra.me.REG[8] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[7])(fra.me.REG[7]);
3264 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
3265 if (UNTAG_Bool(REGB0)) {
3266 } else {
3267 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
3268 if (UNTAG_Bool(REGB1)) {
3269 REGB1 = TAG_Bool(false);
3270 REGB0 = REGB1;
3271 } else {
3272 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
3273 REGB0 = REGB1;
3274 }
3275 }
3276 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3277 if (UNTAG_Bool(REGB0)) {
3278 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
3279 if (UNTAG_Bool(REGB0)) {
3280 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 556);
3281 }
3282 fra.me.REG[8] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[7])(fra.me.REG[7]);
3283 fra.me.REG[7] = fra.me.REG[8];
3284 } else {
3285 goto label5;
3286 }
3287 }
3288 label5: while(0);
3289 /* ./syntax//mmbuilder.nit:557 */
3290 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
3291 if (UNTAG_Bool(REGB0)) {
3292 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 557);
3293 }
3294 CALL_syntax___syntax_base___AClassdef___next_node__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]);
3295 } else {
3296 /* ./syntax//mmbuilder.nit:559 */
3297 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3298 REGB0 = CALL_syntax___mmbuilder___AClassdef___arity(fra.me.REG[2])(fra.me.REG[2]);
3299 fra.me.REG[7] = NEW_MMSrcLocalClass_syntax___syntax_base___MMSrcLocalClass___init(fra.me.REG[4], fra.me.REG[7], fra.me.REG[2], REGB0);
3300 fra.me.REG[6] = fra.me.REG[7];
3301 /* ./syntax//mmbuilder.nit:560 */
3302 ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]) = fra.me.REG[6];
3303 /* ./syntax//mmbuilder.nit:561 */
3304 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3305 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7], fra.me.REG[6]);
3306 /* ./syntax//mmbuilder.nit:562 */
3307 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3308 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
3309 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3310 if (UNTAG_Bool(REGB0)) {
3311 /* ./syntax//mmbuilder.nit:563 */
3312 CALL_syntax___mmbuilder___AClassdef___build_class_introduction(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3313 } else {
3314 /* ./syntax//mmbuilder.nit:565 */
3315 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3316 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMModule___global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
3317 /* ./syntax//mmbuilder.nit:566 */
3318 CALL_syntax___mmbuilder___AClassdef___build_class_refinement(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[7]);
3319 }
3320 }
3321 /* ./syntax//mmbuilder.nit:570 */
3322 REGB0 = TAG_Int(0);
3323 CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
3324 /* ./syntax//mmbuilder.nit:571 */
3325 fra.me.REG[6] = CALL_syntax___syntax_base___MMSrcLocalClass___formal_dict(fra.me.REG[6])(fra.me.REG[6]);
3326 CALL_syntax___mmbuilder___ClassBuilderVisitor___formals__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
3327 /* ./syntax//mmbuilder.nit:574 */
3328 CALL_SUPER_syntax___mmbuilder___AClassdef___accept_class_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3329 /* ./syntax//mmbuilder.nit:577 */
3330 CALL_syntax___mmbuilder___ClassBuilderVisitor___formals__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3331 label4: while(0);
3332 stack_frame_head = fra.me.prev;
3333 return;
3334 }
3335 void syntax___mmbuilder___AClassdef___build_class_introduction(val_t p0, val_t p1){
3336 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
3337 val_t REGB0;
3338 val_t REGB1;
3339 val_t tmp;
3340 static val_t once_value_1; /* Once value */
3341 static val_t once_value_2; /* Once value */
3342 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3343 fra.me.file = LOCATE_syntax___mmbuilder;
3344 fra.me.line = 580;
3345 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___build_class_introduction;
3346 fra.me.has_broke = 0;
3347 fra.me.REG_size = 5;
3348 fra.me.REG[0] = NIT_NULL;
3349 fra.me.REG[1] = NIT_NULL;
3350 fra.me.REG[2] = NIT_NULL;
3351 fra.me.REG[3] = NIT_NULL;
3352 fra.me.REG[4] = NIT_NULL;
3353 fra.me.REG[0] = p0;
3354 fra.me.REG[1] = p1;
3355 /* ./syntax//mmbuilder.nit:582 */
3356 fra.me.REG[2] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[0])(fra.me.REG[0]);
3357 CALL_metamodel___abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
3358 /* ./syntax//mmbuilder.nit:583 */
3359 fra.me.REG[2] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[0])(fra.me.REG[0]);
3360 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
3361 /* ./syntax//mmbuilder.nit:585 */
3362 REGB0 = CALL_syntax___mmbuilder___AClassdef___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
3363 CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
3364 /* ./syntax//mmbuilder.nit:586 */
3365 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
3366 if (UNTAG_Bool(REGB0)) {
3367 /* ./syntax//mmbuilder.nit:587 */
3368 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[0])(fra.me.REG[0]);
3369 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3370 if (UNTAG_Bool(REGB0)) {
3371 } else {
3372 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3373 if (UNTAG_Bool(REGB1)) {
3374 REGB1 = TAG_Bool(false);
3375 REGB0 = REGB1;
3376 } else {
3377 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3378 REGB0 = REGB1;
3379 }
3380 }
3381 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3382 if (UNTAG_Bool(REGB0)) {
3383 /* ./syntax//mmbuilder.nit:588 */
3384 REGB0 = TAG_Int(3);
3385 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3386 if (!once_value_1) {
3387 fra.me.REG[4] = BOX_NativeString("Redef error: No class ");
3388 REGB0 = TAG_Int(22);
3389 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
3390 once_value_1 = fra.me.REG[4];
3391 register_static_object(&once_value_1);
3392 } else fra.me.REG[4] = once_value_1;
3393 fra.me.REG[4] = fra.me.REG[4];
3394 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3395 fra.me.REG[4] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[0])(fra.me.REG[0]);
3396 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3397 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3398 if (!once_value_2) {
3399 fra.me.REG[4] = BOX_NativeString(" is imported. Remove the redef keyword to define a new class.");
3400 REGB0 = TAG_Int(61);
3401 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
3402 once_value_2 = fra.me.REG[4];
3403 register_static_object(&once_value_2);
3404 } else fra.me.REG[4] = once_value_2;
3405 fra.me.REG[4] = fra.me.REG[4];
3406 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3407 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3408 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
3409 /* ./syntax//mmbuilder.nit:589 */
3410 goto label3;
3411 }
3412 /* ./syntax//mmbuilder.nit:591 */
3413 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3414 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[3])(fra.me.REG[3]);
3415 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
3416 /* ./syntax//mmbuilder.nit:592 */
3417 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3418 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[3])(fra.me.REG[3]);
3419 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
3420 /* ./syntax//mmbuilder.nit:593 */
3421 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3422 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[0])(fra.me.REG[0]);
3423 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
3424 }
3425 label3: while(0);
3426 stack_frame_head = fra.me.prev;
3427 return;
3428 }
3429 void syntax___mmbuilder___AClassdef___build_class_refinement(val_t p0, val_t p1, val_t p2){
3430 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
3431 val_t REGB0;
3432 val_t REGB1;
3433 val_t REGB2;
3434 val_t tmp;
3435 static val_t once_value_1; /* Once value */
3436 static val_t once_value_2; /* Once value */
3437 static val_t once_value_4; /* Once value */
3438 static val_t once_value_5; /* Once value */
3439 static val_t once_value_6; /* Once value */
3440 static val_t once_value_7; /* Once value */
3441 static val_t once_value_8; /* Once value */
3442 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3443 fra.me.file = LOCATE_syntax___mmbuilder;
3444 fra.me.line = 597;
3445 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___build_class_refinement;
3446 fra.me.has_broke = 0;
3447 fra.me.REG_size = 5;
3448 fra.me.REG[0] = NIT_NULL;
3449 fra.me.REG[1] = NIT_NULL;
3450 fra.me.REG[2] = NIT_NULL;
3451 fra.me.REG[3] = NIT_NULL;
3452 fra.me.REG[4] = NIT_NULL;
3453 fra.me.REG[0] = p0;
3454 fra.me.REG[1] = p1;
3455 fra.me.REG[2] = p2;
3456 /* ./syntax//mmbuilder.nit:599 */
3457 fra.me.REG[3] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[0])(fra.me.REG[0]);
3458 CALL_metamodel___abstractmetamodel___MMLocalClass___set_global(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
3459 /* ./syntax//mmbuilder.nit:601 */
3460 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
3461 CALL_syntax___syntax_base___MMGlobalClass___check_visibility(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
3462 /* ./syntax//mmbuilder.nit:602 */
3463 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
3464 if (UNTAG_Bool(REGB0)) {
3465 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[0])(fra.me.REG[0]);
3466 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3467 if (UNTAG_Bool(REGB0)) {
3468 } else {
3469 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3470 if (UNTAG_Bool(REGB1)) {
3471 REGB1 = TAG_Bool(false);
3472 REGB0 = REGB1;
3473 } else {
3474 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3475 REGB0 = REGB1;
3476 }
3477 }
3478 } else {
3479 REGB1 = TAG_Bool(false);
3480 REGB0 = REGB1;
3481 }
3482 if (UNTAG_Bool(REGB0)) {
3483 /* ./syntax//mmbuilder.nit:603 */
3484 REGB0 = TAG_Int(3);
3485 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3486 if (!once_value_1) {
3487 fra.me.REG[4] = BOX_NativeString("Redef error: ");
3488 REGB0 = TAG_Int(13);
3489 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
3490 once_value_1 = fra.me.REG[4];
3491 register_static_object(&once_value_1);
3492 } else fra.me.REG[4] = once_value_1;
3493 fra.me.REG[4] = fra.me.REG[4];
3494 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3495 fra.me.REG[4] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[0])(fra.me.REG[0]);
3496 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3497 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3498 if (!once_value_2) {
3499 fra.me.REG[4] = BOX_NativeString(" is an imported class. Add the redef keyword to refine it.");
3500 REGB0 = TAG_Int(58);
3501 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
3502 once_value_2 = fra.me.REG[4];
3503 register_static_object(&once_value_2);
3504 } else fra.me.REG[4] = once_value_2;
3505 fra.me.REG[4] = fra.me.REG[4];
3506 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3507 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3508 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
3509 /* ./syntax//mmbuilder.nit:604 */
3510 goto label3;
3511 }
3512 /* ./syntax//mmbuilder.nit:607 */
3513 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[2])(fra.me.REG[2]);
3514 REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[3])(fra.me.REG[3]);
3515 fra.me.REG[3] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[0]);
3516 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3517 if (UNTAG_Bool(REGB1)) {
3518 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 607);
3519 }
3520 REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[3])(fra.me.REG[3]);
3521 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
3522 if (UNTAG_Bool(REGB2)) {
3523 } else {
3524 /* ./../lib/standard//kernel.nit:210 */
3525 REGB1 = TAG_Bool((REGB0)==(REGB1));
3526 /* ./syntax//mmbuilder.nit:607 */
3527 REGB2 = REGB1;
3528 }
3529 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
3530 if (UNTAG_Bool(REGB2)) {
3531 /* ./syntax//mmbuilder.nit:608 */
3532 REGB2 = TAG_Int(5);
3533 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
3534 if (!once_value_4) {
3535 fra.me.REG[4] = BOX_NativeString("Redef error: Formal parameter arity missmatch; got ");
3536 REGB2 = TAG_Int(51);
3537 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
3538 once_value_4 = fra.me.REG[4];
3539 register_static_object(&once_value_4);
3540 } else fra.me.REG[4] = once_value_4;
3541 fra.me.REG[4] = fra.me.REG[4];
3542 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3543 fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[0]);
3544 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3545 if (UNTAG_Bool(REGB2)) {
3546 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 608);
3547 }
3548 REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
3549 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
3550 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3551 if (!once_value_5) {
3552 fra.me.REG[4] = BOX_NativeString(", expected ");
3553 REGB2 = TAG_Int(11);
3554 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
3555 once_value_5 = fra.me.REG[4];
3556 register_static_object(&once_value_5);
3557 } else fra.me.REG[4] = once_value_5;
3558 fra.me.REG[4] = fra.me.REG[4];
3559 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3560 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[2])(fra.me.REG[2]);
3561 REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
3562 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
3563 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3564 if (!once_value_6) {
3565 fra.me.REG[4] = BOX_NativeString(".");
3566 REGB2 = TAG_Int(1);
3567 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
3568 once_value_6 = fra.me.REG[4];
3569 register_static_object(&once_value_6);
3570 } else fra.me.REG[4] = once_value_6;
3571 fra.me.REG[4] = fra.me.REG[4];
3572 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3573 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3574 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
3575 }
3576 /* ./syntax//mmbuilder.nit:611 */
3577 REGB2 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
3578 if (UNTAG_Bool(REGB2)) {
3579 REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[2])(fra.me.REG[2]);
3580 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
3581 if (UNTAG_Bool(REGB2)) {
3582 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3583 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[3])(fra.me.REG[3]);
3584 } else {
3585 REGB1 = TAG_Bool(false);
3586 REGB2 = REGB1;
3587 }
3588 if (UNTAG_Bool(REGB2)) {
3589 REGB2 = TAG_Bool(true);
3590 } else {
3591 /* ./syntax//mmbuilder.nit:612 */
3592 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[2])(fra.me.REG[2]);
3593 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3594 /* ./syntax//mmbuilder.nit:611 */
3595 REGB2 = REGB1;
3596 }
3597 if (UNTAG_Bool(REGB2)) {
3598 /* ./syntax//mmbuilder.nit:612 */
3599 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3600 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[3])(fra.me.REG[3]);
3601 } else {
3602 /* ./syntax//mmbuilder.nit:611 */
3603 REGB1 = TAG_Bool(false);
3604 REGB2 = REGB1;
3605 }
3606 if (UNTAG_Bool(REGB2)) {
3607 REGB2 = TAG_Bool(true);
3608 } else {
3609 /* ./syntax//mmbuilder.nit:613 */
3610 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[2])(fra.me.REG[2]);
3611 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3612 /* ./syntax//mmbuilder.nit:611 */
3613 REGB2 = REGB1;
3614 }
3615 if (UNTAG_Bool(REGB2)) {
3616 /* ./syntax//mmbuilder.nit:613 */
3617 fra.me.REG[2] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3618 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[2])(fra.me.REG[2]);
3619 } else {
3620 /* ./syntax//mmbuilder.nit:611 */
3621 REGB1 = TAG_Bool(false);
3622 REGB2 = REGB1;
3623 }
3624 } else {
3625 REGB1 = TAG_Bool(false);
3626 REGB2 = REGB1;
3627 }
3628 if (UNTAG_Bool(REGB2)) {
3629 /* ./syntax//mmbuilder.nit:615 */
3630 REGB2 = TAG_Int(3);
3631 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
3632 if (!once_value_7) {
3633 fra.me.REG[3] = BOX_NativeString("Redef error: cannot change kind of class ");
3634 REGB2 = TAG_Int(41);
3635 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
3636 once_value_7 = fra.me.REG[3];
3637 register_static_object(&once_value_7);
3638 } else fra.me.REG[3] = once_value_7;
3639 fra.me.REG[3] = fra.me.REG[3];
3640 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3641 fra.me.REG[3] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[0])(fra.me.REG[0]);
3642 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3643 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3644 if (!once_value_8) {
3645 fra.me.REG[3] = BOX_NativeString(".");
3646 REGB2 = TAG_Int(1);
3647 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
3648 once_value_8 = fra.me.REG[3];
3649 register_static_object(&once_value_8);
3650 } else fra.me.REG[3] = once_value_8;
3651 fra.me.REG[3] = fra.me.REG[3];
3652 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3653 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3654 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
3655 }
3656 label3: while(0);
3657 stack_frame_head = fra.me.prev;
3658 return;
3659 }
3660 void syntax___mmbuilder___AClassdef___accept_class_verifier(val_t p0, val_t p1){
3661 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
3662 val_t REGB0;
3663 val_t REGB1;
3664 val_t REGB2;
3665 val_t tmp;
3666 static val_t once_value_1; /* Once value */
3667 static val_t once_value_2; /* Once value */
3668 static val_t once_value_3; /* Once value */
3669 static val_t once_value_4; /* Once value */
3670 static val_t once_value_5; /* Once value */
3671 static val_t once_value_6; /* Once value */
3672 static val_t once_value_7; /* Once value */
3673 static val_t once_value_8; /* Once value */
3674 static val_t once_value_9; /* Once value */
3675 static val_t once_value_10; /* Once value */
3676 static val_t once_value_11; /* Once value */
3677 static val_t once_value_12; /* Once value */
3678 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3679 fra.me.file = LOCATE_syntax___mmbuilder;
3680 fra.me.line = 619;
3681 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___accept_class_verifier;
3682 fra.me.has_broke = 0;
3683 fra.me.REG_size = 9;
3684 fra.me.REG[0] = NIT_NULL;
3685 fra.me.REG[1] = NIT_NULL;
3686 fra.me.REG[2] = NIT_NULL;
3687 fra.me.REG[3] = NIT_NULL;
3688 fra.me.REG[4] = NIT_NULL;
3689 fra.me.REG[5] = NIT_NULL;
3690 fra.me.REG[6] = NIT_NULL;
3691 fra.me.REG[7] = NIT_NULL;
3692 fra.me.REG[8] = NIT_NULL;
3693 fra.me.REG[0] = p0;
3694 fra.me.REG[1] = p1;
3695 /* ./syntax//mmbuilder.nit:619 */
3696 fra.me.REG[2] = fra.me.REG[0];
3697 fra.me.REG[3] = fra.me.REG[1];
3698 /* ./syntax//mmbuilder.nit:621 */
3699 CALL_SUPER_syntax___mmbuilder___AClassdef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3700 /* ./syntax//mmbuilder.nit:622 */
3701 fra.me.REG[1] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3702 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3703 if (UNTAG_Bool(REGB0)) {
3704 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 622);
3705 }
3706 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
3707 /* ./syntax//mmbuilder.nit:623 */
3708 fra.me.REG[0] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3709 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3710 if (UNTAG_Bool(REGB0)) {
3711 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 623);
3712 }
3713 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
3714 fra.me.REG[0] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[0])(fra.me.REG[0]);
3715 /* ./../lib/standard//collection//array.nit:232 */
3716 REGB0 = TAG_Int(0);
3717 /* ./../lib/standard//collection//array.nit:233 */
3718 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3719 if (UNTAG_Bool(REGB1)) {
3720 } else {
3721 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 233);
3722 }
3723 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
3724 /* ./../lib/standard//collection//array.nit:234 */
3725 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
3726 /* ./../lib/standard//collection//array.nit:235 */
3727 while(1) {
3728 /* ./../lib/standard//collection//array.nit:23 */
3729 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3730 if (UNTAG_Bool(REGB1)) {
3731 } else {
3732 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
3733 }
3734 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
3735 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3736 if (UNTAG_Bool(REGB2)) {
3737 } else {
3738 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3739 }
3740 /* ./../lib/standard//kernel.nit:215 */
3741 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3742 /* ./../lib/standard//collection//array.nit:235 */
3743 if (UNTAG_Bool(REGB1)) {
3744 /* ./../lib/standard//collection//array.nit:236 */
3745 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3746 if (UNTAG_Bool(REGB1)) {
3747 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 236);
3748 }
3749 /* ./../lib/standard//collection//array.nit:652 */
3750 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
3751 /* ./syntax//mmbuilder.nit:624 */
3752 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
3753 /* ./syntax//mmbuilder.nit:625 */
3754 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
3755 if (UNTAG_Bool(REGB1)) {
3756 /* ./syntax//mmbuilder.nit:626 */
3757 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
3758 if (UNTAG_Bool(REGB1)) {
3759 /* ./syntax//mmbuilder.nit:627 */
3760 REGB1 = TAG_Int(5);
3761 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
3762 if (!once_value_1) {
3763 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
3764 REGB1 = TAG_Int(25);
3765 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3766 once_value_1 = fra.me.REG[8];
3767 register_static_object(&once_value_1);
3768 } else fra.me.REG[8] = once_value_1;
3769 fra.me.REG[8] = fra.me.REG[8];
3770 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3771 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3772 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3773 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3774 if (!once_value_2) {
3775 fra.me.REG[8] = BOX_NativeString(" try to specialise enum class ");
3776 REGB1 = TAG_Int(30);
3777 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3778 once_value_2 = fra.me.REG[8];
3779 register_static_object(&once_value_2);
3780 } else fra.me.REG[8] = once_value_2;
3781 fra.me.REG[8] = fra.me.REG[8];
3782 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3783 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3784 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3785 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3786 if (!once_value_3) {
3787 fra.me.REG[8] = BOX_NativeString(".");
3788 REGB1 = TAG_Int(1);
3789 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3790 once_value_3 = fra.me.REG[8];
3791 register_static_object(&once_value_3);
3792 } else fra.me.REG[8] = once_value_3;
3793 fra.me.REG[8] = fra.me.REG[8];
3794 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3795 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3796 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3797 } else {
3798 /* ./syntax//mmbuilder.nit:628 */
3799 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
3800 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3801 if (UNTAG_Bool(REGB1)) {
3802 /* ./syntax//mmbuilder.nit:629 */
3803 REGB1 = TAG_Int(5);
3804 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
3805 if (!once_value_4) {
3806 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
3807 REGB1 = TAG_Int(25);
3808 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3809 once_value_4 = fra.me.REG[8];
3810 register_static_object(&once_value_4);
3811 } else fra.me.REG[8] = once_value_4;
3812 fra.me.REG[8] = fra.me.REG[8];
3813 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3814 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3815 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3816 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3817 if (!once_value_5) {
3818 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
3819 REGB1 = TAG_Int(25);
3820 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3821 once_value_5 = fra.me.REG[8];
3822 register_static_object(&once_value_5);
3823 } else fra.me.REG[8] = once_value_5;
3824 fra.me.REG[8] = fra.me.REG[8];
3825 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3826 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3827 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3828 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3829 if (!once_value_6) {
3830 fra.me.REG[8] = BOX_NativeString(".");
3831 REGB1 = TAG_Int(1);
3832 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3833 once_value_6 = fra.me.REG[8];
3834 register_static_object(&once_value_6);
3835 } else fra.me.REG[8] = once_value_6;
3836 fra.me.REG[8] = fra.me.REG[8];
3837 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3838 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3839 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3840 }
3841 }
3842 } else {
3843 /* ./syntax//mmbuilder.nit:631 */
3844 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
3845 if (UNTAG_Bool(REGB1)) {
3846 /* ./syntax//mmbuilder.nit:632 */
3847 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
3848 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3849 if (UNTAG_Bool(REGB1)) {
3850 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
3851 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3852 } else {
3853 REGB2 = TAG_Bool(false);
3854 REGB1 = REGB2;
3855 }
3856 if (UNTAG_Bool(REGB1)) {
3857 /* ./syntax//mmbuilder.nit:633 */
3858 REGB1 = TAG_Int(5);
3859 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
3860 if (!once_value_7) {
3861 fra.me.REG[8] = BOX_NativeString("Special error: Enum class ");
3862 REGB1 = TAG_Int(26);
3863 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3864 once_value_7 = fra.me.REG[8];
3865 register_static_object(&once_value_7);
3866 } else fra.me.REG[8] = once_value_7;
3867 fra.me.REG[8] = fra.me.REG[8];
3868 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3869 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3870 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3871 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3872 if (!once_value_8) {
3873 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
3874 REGB1 = TAG_Int(25);
3875 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3876 once_value_8 = fra.me.REG[8];
3877 register_static_object(&once_value_8);
3878 } else fra.me.REG[8] = once_value_8;
3879 fra.me.REG[8] = fra.me.REG[8];
3880 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3881 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3882 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3883 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3884 if (!once_value_9) {
3885 fra.me.REG[8] = BOX_NativeString(".");
3886 REGB1 = TAG_Int(1);
3887 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3888 once_value_9 = fra.me.REG[8];
3889 register_static_object(&once_value_9);
3890 } else fra.me.REG[8] = once_value_9;
3891 fra.me.REG[8] = fra.me.REG[8];
3892 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3893 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3894 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3895 }
3896 } else {
3897 /* ./syntax//mmbuilder.nit:636 */
3898 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
3899 if (UNTAG_Bool(REGB1)) {
3900 /* ./syntax//mmbuilder.nit:637 */
3901 REGB1 = TAG_Int(5);
3902 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
3903 if (!once_value_10) {
3904 fra.me.REG[7] = BOX_NativeString("Special error: Class ");
3905 REGB1 = TAG_Int(21);
3906 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
3907 once_value_10 = fra.me.REG[7];
3908 register_static_object(&once_value_10);
3909 } else fra.me.REG[7] = once_value_10;
3910 fra.me.REG[7] = fra.me.REG[7];
3911 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
3912 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3913 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3914 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
3915 if (!once_value_11) {
3916 fra.me.REG[7] = BOX_NativeString(" try to specialise enum class ");
3917 REGB1 = TAG_Int(30);
3918 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
3919 once_value_11 = fra.me.REG[7];
3920 register_static_object(&once_value_11);
3921 } else fra.me.REG[7] = once_value_11;
3922 fra.me.REG[7] = fra.me.REG[7];
3923 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
3924 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3925 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
3926 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
3927 if (!once_value_12) {
3928 fra.me.REG[5] = BOX_NativeString(".");
3929 REGB1 = TAG_Int(1);
3930 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
3931 once_value_12 = fra.me.REG[5];
3932 register_static_object(&once_value_12);
3933 } else fra.me.REG[5] = once_value_12;
3934 fra.me.REG[5] = fra.me.REG[5];
3935 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
3936 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
3937 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
3938 }
3939 }
3940 }
3941 /* ./../lib/standard//collection//array.nit:237 */
3942 REGB1 = TAG_Int(1);
3943 /* ./../lib/standard//kernel.nit:218 */
3944 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
3945 /* ./../lib/standard//collection//array.nit:237 */
3946 REGB0 = REGB1;
3947 } else {
3948 /* ./../lib/standard//collection//array.nit:235 */
3949 goto label13;
3950 }
3951 }
3952 label13: while(0);
3953 stack_frame_head = fra.me.prev;
3954 return;
3955 }
3956 void syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
3957 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3958 val_t tmp;
3959 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3960 fra.me.file = LOCATE_syntax___mmbuilder;
3961 fra.me.line = 644;
3962 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor;
3963 fra.me.has_broke = 0;
3964 fra.me.REG_size = 4;
3965 fra.me.REG[0] = NIT_NULL;
3966 fra.me.REG[1] = NIT_NULL;
3967 fra.me.REG[2] = NIT_NULL;
3968 fra.me.REG[3] = NIT_NULL;
3969 fra.me.REG[0] = p0;
3970 fra.me.REG[1] = p1;
3971 /* ./syntax//mmbuilder.nit:644 */
3972 fra.me.REG[2] = fra.me.REG[0];
3973 fra.me.REG[3] = fra.me.REG[1];
3974 /* ./syntax//mmbuilder.nit:646 */
3975 fra.me.REG[2] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3976 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
3977 /* ./syntax//mmbuilder.nit:647 */
3978 CALL_SUPER_syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3979 /* ./syntax//mmbuilder.nit:648 */
3980 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3981 stack_frame_head = fra.me.prev;
3982 return;
3983 }
3984 val_t syntax___mmbuilder___AClasskind___is_interface(val_t p0){
3985 struct {struct stack_frame_t me;} fra;
3986 val_t REGB0;
3987 val_t tmp;
3988 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3989 fra.me.file = LOCATE_syntax___mmbuilder;
3990 fra.me.line = 653;
3991 fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_interface;
3992 fra.me.has_broke = 0;
3993 fra.me.REG_size = 1;
3994 fra.me.REG[0] = NIT_NULL;
3995 fra.me.REG[0] = p0;
3996 /* ./syntax//mmbuilder.nit:653 */
3997 REGB0 = TAG_Bool(false);
3998 goto label1;
3999 label1: while(0);
4000 stack_frame_head = fra.me.prev;
4001 return REGB0;
4002 }
4003 val_t syntax___mmbuilder___AClasskind___is_enum(val_t p0){
4004 struct {struct stack_frame_t me;} fra;
4005 val_t REGB0;
4006 val_t tmp;
4007 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4008 fra.me.file = LOCATE_syntax___mmbuilder;
4009 fra.me.line = 654;
4010 fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_enum;
4011 fra.me.has_broke = 0;
4012 fra.me.REG_size = 1;
4013 fra.me.REG[0] = NIT_NULL;
4014 fra.me.REG[0] = p0;
4015 /* ./syntax//mmbuilder.nit:654 */
4016 REGB0 = TAG_Bool(false);
4017 goto label1;
4018 label1: while(0);
4019 stack_frame_head = fra.me.prev;
4020 return REGB0;
4021 }
4022 val_t syntax___mmbuilder___AClasskind___is_abstract(val_t p0){
4023 struct {struct stack_frame_t me;} fra;
4024 val_t REGB0;
4025 val_t tmp;
4026 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4027 fra.me.file = LOCATE_syntax___mmbuilder;
4028 fra.me.line = 655;
4029 fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_abstract;
4030 fra.me.has_broke = 0;
4031 fra.me.REG_size = 1;
4032 fra.me.REG[0] = NIT_NULL;
4033 fra.me.REG[0] = p0;
4034 /* ./syntax//mmbuilder.nit:655 */
4035 REGB0 = TAG_Bool(false);
4036 goto label1;
4037 label1: while(0);
4038 stack_frame_head = fra.me.prev;
4039 return REGB0;
4040 }
4041 val_t syntax___mmbuilder___AInterfaceClasskind___is_interface(val_t p0){
4042 struct {struct stack_frame_t me;} fra;
4043 val_t REGB0;
4044 val_t tmp;
4045 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4046 fra.me.file = LOCATE_syntax___mmbuilder;
4047 fra.me.line = 659;
4048 fra.me.meth = LOCATE_syntax___mmbuilder___AInterfaceClasskind___is_interface;
4049 fra.me.has_broke = 0;
4050 fra.me.REG_size = 1;
4051 fra.me.REG[0] = NIT_NULL;
4052 fra.me.REG[0] = p0;
4053 /* ./syntax//mmbuilder.nit:659 */
4054 REGB0 = TAG_Bool(true);
4055 goto label1;
4056 label1: while(0);
4057 stack_frame_head = fra.me.prev;
4058 return REGB0;
4059 }
4060 val_t syntax___mmbuilder___AEnumClasskind___is_enum(val_t p0){
4061 struct {struct stack_frame_t me;} fra;
4062 val_t REGB0;
4063 val_t tmp;
4064 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4065 fra.me.file = LOCATE_syntax___mmbuilder;
4066 fra.me.line = 662;
4067 fra.me.meth = LOCATE_syntax___mmbuilder___AEnumClasskind___is_enum;
4068 fra.me.has_broke = 0;
4069 fra.me.REG_size = 1;
4070 fra.me.REG[0] = NIT_NULL;
4071 fra.me.REG[0] = p0;
4072 /* ./syntax//mmbuilder.nit:662 */
4073 REGB0 = TAG_Bool(true);
4074 goto label1;
4075 label1: while(0);
4076 stack_frame_head = fra.me.prev;
4077 return REGB0;
4078 }
4079 val_t syntax___mmbuilder___AAbstractClasskind___is_abstract(val_t p0){
4080 struct {struct stack_frame_t me;} fra;
4081 val_t REGB0;
4082 val_t tmp;
4083 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4084 fra.me.file = LOCATE_syntax___mmbuilder;
4085 fra.me.line = 665;
4086 fra.me.meth = LOCATE_syntax___mmbuilder___AAbstractClasskind___is_abstract;
4087 fra.me.has_broke = 0;
4088 fra.me.REG_size = 1;
4089 fra.me.REG[0] = NIT_NULL;
4090 fra.me.REG[0] = p0;
4091 /* ./syntax//mmbuilder.nit:665 */
4092 REGB0 = TAG_Bool(true);
4093 goto label1;
4094 label1: while(0);
4095 stack_frame_head = fra.me.prev;
4096 return REGB0;
4097 }
4098 val_t syntax___mmbuilder___AStdClassdef___name(val_t p0){
4099 struct {struct stack_frame_t me;} fra;
4100 val_t REGB0;
4101 val_t tmp;
4102 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4103 fra.me.file = LOCATE_syntax___mmbuilder;
4104 fra.me.line = 669;
4105 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___name;
4106 fra.me.has_broke = 0;
4107 fra.me.REG_size = 1;
4108 fra.me.REG[0] = NIT_NULL;
4109 fra.me.REG[0] = p0;
4110 /* ./syntax//mmbuilder.nit:671 */
4111 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_id(fra.me.REG[0])(fra.me.REG[0]);
4112 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4113 if (UNTAG_Bool(REGB0)) {
4114 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 671);
4115 }
4116 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
4117 goto label1;
4118 label1: while(0);
4119 stack_frame_head = fra.me.prev;
4120 return fra.me.REG[0];
4121 }
4122 val_t syntax___mmbuilder___AStdClassdef___arity(val_t p0){
4123 struct {struct stack_frame_t me;} fra;
4124 val_t REGB0;
4125 val_t tmp;
4126 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4127 fra.me.file = LOCATE_syntax___mmbuilder;
4128 fra.me.line = 673;
4129 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___arity;
4130 fra.me.has_broke = 0;
4131 fra.me.REG_size = 1;
4132 fra.me.REG[0] = NIT_NULL;
4133 fra.me.REG[0] = p0;
4134 /* ./syntax//mmbuilder.nit:675 */
4135 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_formaldefs(fra.me.REG[0])(fra.me.REG[0]);
4136 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
4137 goto label1;
4138 label1: while(0);
4139 stack_frame_head = fra.me.prev;
4140 return REGB0;
4141 }
4142 void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p1){
4143 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
4144 val_t REGB0;
4145 val_t REGB1;
4146 val_t REGB2;
4147 val_t tmp;
4148 static val_t once_value_1; /* Once value */
4149 static val_t once_value_2; /* Once value */
4150 static val_t once_value_3; /* Once value */
4151 static val_t once_value_4; /* Once value */
4152 static val_t once_value_5; /* Once value */
4153 static val_t once_value_6; /* Once value */
4154 static val_t once_value_7; /* Once value */
4155 static val_t once_value_8; /* Once value */
4156 static val_t once_value_9; /* Once value */
4157 static val_t once_value_10; /* Once value */
4158 static val_t once_value_11; /* Once value */
4159 static val_t once_value_12; /* Once value */
4160 static val_t once_value_13; /* Once value */
4161 static val_t once_value_14; /* Once value */
4162 static val_t once_value_17; /* Once value */
4163 static val_t once_value_18; /* Once value */
4164 static val_t once_value_19; /* Once value */
4165 static val_t once_value_20; /* Once value */
4166 static val_t once_value_21; /* Once value */
4167 static val_t once_value_22; /* Once value */
4168 static val_t once_value_23; /* Once value */
4169 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4170 fra.me.file = LOCATE_syntax___mmbuilder;
4171 fra.me.line = 677;
4172 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___accept_class_verifier;
4173 fra.me.has_broke = 0;
4174 fra.me.REG_size = 9;
4175 fra.me.REG[0] = NIT_NULL;
4176 fra.me.REG[1] = NIT_NULL;
4177 fra.me.REG[2] = NIT_NULL;
4178 fra.me.REG[3] = NIT_NULL;
4179 fra.me.REG[4] = NIT_NULL;
4180 fra.me.REG[5] = NIT_NULL;
4181 fra.me.REG[6] = NIT_NULL;
4182 fra.me.REG[7] = NIT_NULL;
4183 fra.me.REG[8] = NIT_NULL;
4184 fra.me.REG[0] = p0;
4185 fra.me.REG[1] = p1;
4186 /* ./syntax//mmbuilder.nit:677 */
4187 fra.me.REG[2] = fra.me.REG[0];
4188 fra.me.REG[3] = fra.me.REG[1];
4189 /* ./syntax//mmbuilder.nit:679 */
4190 CALL_SUPER_syntax___mmbuilder___AStdClassdef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4191 /* ./syntax//mmbuilder.nit:680 */
4192 fra.me.REG[1] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4193 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4194 if (UNTAG_Bool(REGB0)) {
4195 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 680);
4196 }
4197 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
4198 /* ./syntax//mmbuilder.nit:681 */
4199 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
4200 fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4201 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[0],fra.me.REG[4]));
4202 if (UNTAG_Bool(REGB0)) {
4203 } else {
4204 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4205 REGB0 = REGB1;
4206 }
4207 if (UNTAG_Bool(REGB0)) {
4208 /* ./syntax//mmbuilder.nit:683 */
4209 REGB0 = CALL_syntax___mmbuilder___AClassdef___visibility_level(fra.me.REG[2])(fra.me.REG[2]);
4210 CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
4211 /* ./syntax//mmbuilder.nit:684 */
4212 fra.me.REG[4] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4213 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[4])(fra.me.REG[4]);
4214 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
4215 /* ./syntax//mmbuilder.nit:685 */
4216 fra.me.REG[4] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4217 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[4])(fra.me.REG[4]);
4218 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
4219 /* ./syntax//mmbuilder.nit:686 */
4220 fra.me.REG[4] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4221 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[4])(fra.me.REG[4]);
4222 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
4223 /* ./syntax//mmbuilder.nit:687 */
4224 fra.me.REG[4] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
4225 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4226 if (UNTAG_Bool(REGB0)) {
4227 } else {
4228 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4229 if (UNTAG_Bool(REGB1)) {
4230 REGB1 = TAG_Bool(false);
4231 REGB0 = REGB1;
4232 } else {
4233 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
4234 REGB0 = REGB1;
4235 }
4236 }
4237 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4238 if (UNTAG_Bool(REGB0)) {
4239 /* ./syntax//mmbuilder.nit:688 */
4240 REGB0 = TAG_Int(3);
4241 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
4242 if (!once_value_1) {
4243 fra.me.REG[0] = BOX_NativeString("Redef error: No class ");
4244 REGB0 = TAG_Int(22);
4245 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4246 once_value_1 = fra.me.REG[0];
4247 register_static_object(&once_value_1);
4248 } else fra.me.REG[0] = once_value_1;
4249 fra.me.REG[0] = fra.me.REG[0];
4250 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
4251 fra.me.REG[0] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4252 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
4253 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
4254 if (!once_value_2) {
4255 fra.me.REG[0] = BOX_NativeString(" is imported. Remove the redef keyword to define a new class.");
4256 REGB0 = TAG_Int(61);
4257 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4258 once_value_2 = fra.me.REG[0];
4259 register_static_object(&once_value_2);
4260 } else fra.me.REG[0] = once_value_2;
4261 fra.me.REG[0] = fra.me.REG[0];
4262 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
4263 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4264 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]);
4265 }
4266 /* ./syntax//mmbuilder.nit:691 */
4267 fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4268 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4269 if (UNTAG_Bool(REGB0)) {
4270 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 691);
4271 }
4272 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[4])(fra.me.REG[4]);
4273 fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[4])(fra.me.REG[4]);
4274 /* ./../lib/standard//collection//array.nit:232 */
4275 REGB0 = TAG_Int(0);
4276 /* ./../lib/standard//collection//array.nit:233 */
4277 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
4278 if (UNTAG_Bool(REGB1)) {
4279 } else {
4280 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 233);
4281 }
4282 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
4283 /* ./../lib/standard//collection//array.nit:234 */
4284 fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
4285 /* ./../lib/standard//collection//array.nit:235 */
4286 while(1) {
4287 /* ./../lib/standard//collection//array.nit:23 */
4288 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
4289 if (UNTAG_Bool(REGB1)) {
4290 } else {
4291 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
4292 }
4293 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
4294 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
4295 if (UNTAG_Bool(REGB2)) {
4296 } else {
4297 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4298 }
4299 /* ./../lib/standard//kernel.nit:215 */
4300 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
4301 /* ./../lib/standard//collection//array.nit:235 */
4302 if (UNTAG_Bool(REGB1)) {
4303 /* ./../lib/standard//collection//array.nit:236 */
4304 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4305 if (UNTAG_Bool(REGB1)) {
4306 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 236);
4307 }
4308 /* ./../lib/standard//collection//array.nit:652 */
4309 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
4310 /* ./syntax//mmbuilder.nit:692 */
4311 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
4312 /* ./syntax//mmbuilder.nit:693 */
4313 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
4314 if (UNTAG_Bool(REGB1)) {
4315 /* ./syntax//mmbuilder.nit:694 */
4316 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
4317 if (UNTAG_Bool(REGB1)) {
4318 /* ./syntax//mmbuilder.nit:695 */
4319 REGB1 = TAG_Int(5);
4320 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4321 if (!once_value_3) {
4322 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
4323 REGB1 = TAG_Int(25);
4324 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4325 once_value_3 = fra.me.REG[8];
4326 register_static_object(&once_value_3);
4327 } else fra.me.REG[8] = once_value_3;
4328 fra.me.REG[8] = fra.me.REG[8];
4329 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4330 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4331 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4332 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4333 if (!once_value_4) {
4334 fra.me.REG[8] = BOX_NativeString(" try to specialise enum class ");
4335 REGB1 = TAG_Int(30);
4336 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4337 once_value_4 = fra.me.REG[8];
4338 register_static_object(&once_value_4);
4339 } else fra.me.REG[8] = once_value_4;
4340 fra.me.REG[8] = fra.me.REG[8];
4341 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4342 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4343 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4344 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4345 if (!once_value_5) {
4346 fra.me.REG[8] = BOX_NativeString(".");
4347 REGB1 = TAG_Int(1);
4348 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4349 once_value_5 = fra.me.REG[8];
4350 register_static_object(&once_value_5);
4351 } else fra.me.REG[8] = once_value_5;
4352 fra.me.REG[8] = fra.me.REG[8];
4353 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4354 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4355 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4356 } else {
4357 /* ./syntax//mmbuilder.nit:696 */
4358 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
4359 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4360 if (UNTAG_Bool(REGB1)) {
4361 /* ./syntax//mmbuilder.nit:697 */
4362 REGB1 = TAG_Int(5);
4363 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4364 if (!once_value_6) {
4365 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
4366 REGB1 = TAG_Int(25);
4367 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4368 once_value_6 = fra.me.REG[8];
4369 register_static_object(&once_value_6);
4370 } else fra.me.REG[8] = once_value_6;
4371 fra.me.REG[8] = fra.me.REG[8];
4372 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4373 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4374 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4375 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4376 if (!once_value_7) {
4377 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
4378 REGB1 = TAG_Int(25);
4379 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4380 once_value_7 = fra.me.REG[8];
4381 register_static_object(&once_value_7);
4382 } else fra.me.REG[8] = once_value_7;
4383 fra.me.REG[8] = fra.me.REG[8];
4384 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4385 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4386 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4387 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4388 if (!once_value_8) {
4389 fra.me.REG[8] = BOX_NativeString(".");
4390 REGB1 = TAG_Int(1);
4391 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4392 once_value_8 = fra.me.REG[8];
4393 register_static_object(&once_value_8);
4394 } else fra.me.REG[8] = once_value_8;
4395 fra.me.REG[8] = fra.me.REG[8];
4396 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4397 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4398 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4399 }
4400 }
4401 } else {
4402 /* ./syntax//mmbuilder.nit:699 */
4403 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
4404 if (UNTAG_Bool(REGB1)) {
4405 /* ./syntax//mmbuilder.nit:700 */
4406 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
4407 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4408 if (UNTAG_Bool(REGB1)) {
4409 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
4410 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4411 } else {
4412 REGB2 = TAG_Bool(false);
4413 REGB1 = REGB2;
4414 }
4415 if (UNTAG_Bool(REGB1)) {
4416 /* ./syntax//mmbuilder.nit:701 */
4417 REGB1 = TAG_Int(5);
4418 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4419 if (!once_value_9) {
4420 fra.me.REG[8] = BOX_NativeString("Special error: Enum class ");
4421 REGB1 = TAG_Int(26);
4422 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4423 once_value_9 = fra.me.REG[8];
4424 register_static_object(&once_value_9);
4425 } else fra.me.REG[8] = once_value_9;
4426 fra.me.REG[8] = fra.me.REG[8];
4427 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4428 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4429 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4430 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4431 if (!once_value_10) {
4432 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
4433 REGB1 = TAG_Int(25);
4434 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4435 once_value_10 = fra.me.REG[8];
4436 register_static_object(&once_value_10);
4437 } else fra.me.REG[8] = once_value_10;
4438 fra.me.REG[8] = fra.me.REG[8];
4439 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4440 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4441 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4442 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4443 if (!once_value_11) {
4444 fra.me.REG[8] = BOX_NativeString(".");
4445 REGB1 = TAG_Int(1);
4446 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4447 once_value_11 = fra.me.REG[8];
4448 register_static_object(&once_value_11);
4449 } else fra.me.REG[8] = once_value_11;
4450 fra.me.REG[8] = fra.me.REG[8];
4451 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4452 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4453 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4454 }
4455 } else {
4456 /* ./syntax//mmbuilder.nit:704 */
4457 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
4458 if (UNTAG_Bool(REGB1)) {
4459 /* ./syntax//mmbuilder.nit:705 */
4460 REGB1 = TAG_Int(5);
4461 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4462 if (!once_value_12) {
4463 fra.me.REG[7] = BOX_NativeString("Special error: Class ");
4464 REGB1 = TAG_Int(21);
4465 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
4466 once_value_12 = fra.me.REG[7];
4467 register_static_object(&once_value_12);
4468 } else fra.me.REG[7] = once_value_12;
4469 fra.me.REG[7] = fra.me.REG[7];
4470 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4471 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4472 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4473 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4474 if (!once_value_13) {
4475 fra.me.REG[7] = BOX_NativeString(" try to specialise enum class ");
4476 REGB1 = TAG_Int(30);
4477 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
4478 once_value_13 = fra.me.REG[7];
4479 register_static_object(&once_value_13);
4480 } else fra.me.REG[7] = once_value_13;
4481 fra.me.REG[7] = fra.me.REG[7];
4482 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4483 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4484 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4485 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
4486 if (!once_value_14) {
4487 fra.me.REG[5] = BOX_NativeString(".");
4488 REGB1 = TAG_Int(1);
4489 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
4490 once_value_14 = fra.me.REG[5];
4491 register_static_object(&once_value_14);
4492 } else fra.me.REG[5] = once_value_14;
4493 fra.me.REG[5] = fra.me.REG[5];
4494 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
4495 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4496 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
4497 }
4498 }
4499 }
4500 /* ./../lib/standard//collection//array.nit:237 */
4501 REGB1 = TAG_Int(1);
4502 /* ./../lib/standard//kernel.nit:218 */
4503 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
4504 /* ./../lib/standard//collection//array.nit:237 */
4505 REGB0 = REGB1;
4506 } else {
4507 /* ./../lib/standard//collection//array.nit:235 */
4508 goto label15;
4509 }
4510 }
4511 label15: while(0);
4512 /* ./syntax//mmbuilder.nit:710 */
4513 goto label16;
4514 }
4515 /* ./syntax//mmbuilder.nit:715 */
4516 fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
4517 CALL_syntax___syntax_base___MMGlobalClass___check_visibility(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
4518 /* ./syntax//mmbuilder.nit:716 */
4519 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
4520 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4521 if (UNTAG_Bool(REGB0)) {
4522 } else {
4523 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4524 if (UNTAG_Bool(REGB1)) {
4525 REGB1 = TAG_Bool(false);
4526 REGB0 = REGB1;
4527 } else {
4528 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
4529 REGB0 = REGB1;
4530 }
4531 }
4532 if (UNTAG_Bool(REGB0)) {
4533 /* ./syntax//mmbuilder.nit:717 */
4534 REGB0 = TAG_Int(3);
4535 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
4536 if (!once_value_17) {
4537 fra.me.REG[4] = BOX_NativeString("Redef error: ");
4538 REGB0 = TAG_Int(13);
4539 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
4540 once_value_17 = fra.me.REG[4];
4541 register_static_object(&once_value_17);
4542 } else fra.me.REG[4] = once_value_17;
4543 fra.me.REG[4] = fra.me.REG[4];
4544 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4545 fra.me.REG[4] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4546 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4547 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4548 if (!once_value_18) {
4549 fra.me.REG[4] = BOX_NativeString(" is an imported class. Add the redef keyword to refine it.");
4550 REGB0 = TAG_Int(58);
4551 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
4552 once_value_18 = fra.me.REG[4];
4553 register_static_object(&once_value_18);
4554 } else fra.me.REG[4] = once_value_18;
4555 fra.me.REG[4] = fra.me.REG[4];
4556 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4557 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
4558 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
4559 /* ./syntax//mmbuilder.nit:718 */
4560 goto label16;
4561 }
4562 /* ./syntax//mmbuilder.nit:721 */
4563 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
4564 REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[0])(fra.me.REG[0]);
4565 fra.me.REG[0] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4566 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4567 if (UNTAG_Bool(REGB1)) {
4568 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 721);
4569 }
4570 REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[0])(fra.me.REG[0]);
4571 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
4572 if (UNTAG_Bool(REGB2)) {
4573 } else {
4574 /* ./../lib/standard//kernel.nit:210 */
4575 REGB1 = TAG_Bool((REGB0)==(REGB1));
4576 /* ./syntax//mmbuilder.nit:721 */
4577 REGB2 = REGB1;
4578 }
4579 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
4580 if (UNTAG_Bool(REGB2)) {
4581 /* ./syntax//mmbuilder.nit:722 */
4582 REGB2 = TAG_Int(5);
4583 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
4584 if (!once_value_19) {
4585 fra.me.REG[4] = BOX_NativeString("Redef error: Formal parameter arity mismatch; got ");
4586 REGB2 = TAG_Int(50);
4587 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
4588 once_value_19 = fra.me.REG[4];
4589 register_static_object(&once_value_19);
4590 } else fra.me.REG[4] = once_value_19;
4591 fra.me.REG[4] = fra.me.REG[4];
4592 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4593 fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4594 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4595 if (UNTAG_Bool(REGB2)) {
4596 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 722);
4597 }
4598 REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
4599 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
4600 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4601 if (!once_value_20) {
4602 fra.me.REG[4] = BOX_NativeString(", expected ");
4603 REGB2 = TAG_Int(11);
4604 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
4605 once_value_20 = fra.me.REG[4];
4606 register_static_object(&once_value_20);
4607 } else fra.me.REG[4] = once_value_20;
4608 fra.me.REG[4] = fra.me.REG[4];
4609 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4610 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
4611 REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
4612 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
4613 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4614 if (!once_value_21) {
4615 fra.me.REG[4] = BOX_NativeString(".");
4616 REGB2 = TAG_Int(1);
4617 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
4618 once_value_21 = fra.me.REG[4];
4619 register_static_object(&once_value_21);
4620 } else fra.me.REG[4] = once_value_21;
4621 fra.me.REG[4] = fra.me.REG[4];
4622 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4623 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
4624 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
4625 }
4626 /* ./syntax//mmbuilder.nit:726 */
4627 REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
4628 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
4629 if (UNTAG_Bool(REGB2)) {
4630 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4631 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[0])(fra.me.REG[0]);
4632 } else {
4633 REGB1 = TAG_Bool(false);
4634 REGB2 = REGB1;
4635 }
4636 if (UNTAG_Bool(REGB2)) {
4637 REGB2 = TAG_Bool(true);
4638 } else {
4639 /* ./syntax//mmbuilder.nit:727 */
4640 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[1])(fra.me.REG[1]);
4641 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4642 /* ./syntax//mmbuilder.nit:726 */
4643 REGB2 = REGB1;
4644 }
4645 if (UNTAG_Bool(REGB2)) {
4646 /* ./syntax//mmbuilder.nit:727 */
4647 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4648 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[0])(fra.me.REG[0]);
4649 } else {
4650 /* ./syntax//mmbuilder.nit:726 */
4651 REGB1 = TAG_Bool(false);
4652 REGB2 = REGB1;
4653 }
4654 if (UNTAG_Bool(REGB2)) {
4655 REGB2 = TAG_Bool(true);
4656 } else {
4657 /* ./syntax//mmbuilder.nit:728 */
4658 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
4659 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4660 /* ./syntax//mmbuilder.nit:726 */
4661 REGB2 = REGB1;
4662 }
4663 if (UNTAG_Bool(REGB2)) {
4664 /* ./syntax//mmbuilder.nit:728 */
4665 fra.me.REG[1] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4666 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[1])(fra.me.REG[1]);
4667 } else {
4668 /* ./syntax//mmbuilder.nit:726 */
4669 REGB1 = TAG_Bool(false);
4670 REGB2 = REGB1;
4671 }
4672 /* ./syntax//mmbuilder.nit:725 */
4673 if (UNTAG_Bool(REGB2)) {
4674 /* ./syntax//mmbuilder.nit:730 */
4675 REGB2 = TAG_Int(3);
4676 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
4677 if (!once_value_22) {
4678 fra.me.REG[0] = BOX_NativeString("Redef error: cannot change kind of class ");
4679 REGB2 = TAG_Int(41);
4680 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB2);
4681 once_value_22 = fra.me.REG[0];
4682 register_static_object(&once_value_22);
4683 } else fra.me.REG[0] = once_value_22;
4684 fra.me.REG[0] = fra.me.REG[0];
4685 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4686 fra.me.REG[0] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4687 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
4688 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4689 if (!once_value_23) {
4690 fra.me.REG[0] = BOX_NativeString(".");
4691 REGB2 = TAG_Int(1);
4692 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB2);
4693 once_value_23 = fra.me.REG[0];
4694 register_static_object(&once_value_23);
4695 } else fra.me.REG[0] = once_value_23;
4696 fra.me.REG[0] = fra.me.REG[0];
4697 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4698 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
4699 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[1]);
4700 }
4701 label16: while(0);
4702 stack_frame_head = fra.me.prev;
4703 return;
4704 }
4705 val_t syntax___mmbuilder___AStdClassdef___visibility_level(val_t p0){
4706 struct {struct stack_frame_t me;} fra;
4707 val_t REGB0;
4708 val_t tmp;
4709 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4710 fra.me.file = LOCATE_syntax___mmbuilder;
4711 fra.me.line = 734;
4712 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___visibility_level;
4713 fra.me.has_broke = 0;
4714 fra.me.REG_size = 1;
4715 fra.me.REG[0] = NIT_NULL;
4716 fra.me.REG[0] = p0;
4717 /* ./syntax//mmbuilder.nit:736 */
4718 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_visibility(fra.me.REG[0])(fra.me.REG[0]);
4719 REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
4720 goto label1;
4721 label1: while(0);
4722 stack_frame_head = fra.me.prev;
4723 return REGB0;
4724 }
4725 val_t syntax___mmbuilder___AMainClassdef___name(val_t p0){
4726 struct {struct stack_frame_t me;} fra;
4727 val_t REGB0;
4728 val_t tmp;
4729 static val_t once_value_1; /* Once value */
4730 static val_t once_value_2; /* Once value */
4731 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4732 fra.me.file = LOCATE_syntax___mmbuilder;
4733 fra.me.line = 741;
4734 fra.me.meth = LOCATE_syntax___mmbuilder___AMainClassdef___name;
4735 fra.me.has_broke = 0;
4736 fra.me.REG_size = 1;
4737 fra.me.REG[0] = NIT_NULL;
4738 fra.me.REG[0] = p0;
4739 /* ./syntax//mmbuilder.nit:743 */
4740 if (!once_value_1) {
4741 if (!once_value_2) {
4742 fra.me.REG[0] = BOX_NativeString("Sys");
4743 REGB0 = TAG_Int(3);
4744 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4745 once_value_2 = fra.me.REG[0];
4746 register_static_object(&once_value_2);
4747 } else fra.me.REG[0] = once_value_2;
4748 fra.me.REG[0] = fra.me.REG[0];
4749 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
4750 once_value_1 = fra.me.REG[0];
4751 register_static_object(&once_value_1);
4752 } else fra.me.REG[0] = once_value_1;
4753 fra.me.REG[0] = fra.me.REG[0];
4754 goto label3;
4755 label3: while(0);
4756 stack_frame_head = fra.me.prev;
4757 return fra.me.REG[0];
4758 }
4759 val_t syntax___mmbuilder___ATopClassdef___name(val_t p0){
4760 struct {struct stack_frame_t me;} fra;
4761 val_t REGB0;
4762 val_t tmp;
4763 static val_t once_value_1; /* Once value */
4764 static val_t once_value_2; /* Once value */
4765 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4766 fra.me.file = LOCATE_syntax___mmbuilder;
4767 fra.me.line = 748;
4768 fra.me.meth = LOCATE_syntax___mmbuilder___ATopClassdef___name;
4769 fra.me.has_broke = 0;
4770 fra.me.REG_size = 1;
4771 fra.me.REG[0] = NIT_NULL;
4772 fra.me.REG[0] = p0;
4773 /* ./syntax//mmbuilder.nit:750 */
4774 if (!once_value_1) {
4775 if (!once_value_2) {
4776 fra.me.REG[0] = BOX_NativeString("Object");
4777 REGB0 = TAG_Int(6);
4778 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4779 once_value_2 = fra.me.REG[0];
4780 register_static_object(&once_value_2);
4781 } else fra.me.REG[0] = once_value_2;
4782 fra.me.REG[0] = fra.me.REG[0];
4783 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
4784 once_value_1 = fra.me.REG[0];
4785 register_static_object(&once_value_1);
4786 } else fra.me.REG[0] = once_value_1;
4787 fra.me.REG[0] = fra.me.REG[0];
4788 goto label3;
4789 label3: while(0);
4790 stack_frame_head = fra.me.prev;
4791 return fra.me.REG[0];
4792 }
4793 void syntax___mmbuilder___AFormaldef___accept_class_builder(val_t p0, val_t p1){
4794 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
4795 val_t REGB0;
4796 val_t REGB1;
4797 val_t tmp;
4798 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4799 fra.me.file = LOCATE_syntax___mmbuilder;
4800 fra.me.line = 758;
4801 fra.me.meth = LOCATE_syntax___mmbuilder___AFormaldef___accept_class_builder;
4802 fra.me.has_broke = 0;
4803 fra.me.REG_size = 6;
4804 fra.me.REG[0] = NIT_NULL;
4805 fra.me.REG[1] = NIT_NULL;
4806 fra.me.REG[2] = NIT_NULL;
4807 fra.me.REG[3] = NIT_NULL;
4808 fra.me.REG[4] = NIT_NULL;
4809 fra.me.REG[5] = NIT_NULL;
4810 fra.me.REG[0] = p0;
4811 fra.me.REG[1] = p1;
4812 /* ./syntax//mmbuilder.nit:758 */
4813 fra.me.REG[2] = fra.me.REG[0];
4814 fra.me.REG[3] = fra.me.REG[1];
4815 /* ./syntax//mmbuilder.nit:760 */
4816 fra.me.REG[4] = CALL_parser___parser_nodes___AFormaldef___n_id(fra.me.REG[2])(fra.me.REG[2]);
4817 fra.me.REG[4] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
4818 /* ./syntax//mmbuilder.nit:761 */
4819 REGB0 = CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity(fra.me.REG[3])(fra.me.REG[3]);
4820 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
4821 fra.me.REG[5] = NEW_MMTypeFormalParameter_metamodel___genericity___MMTypeFormalParameter___init(fra.me.REG[4], REGB0, fra.me.REG[5]);
4822 /* ./syntax//mmbuilder.nit:762 */
4823 ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]) = fra.me.REG[5];
4824 /* ./syntax//mmbuilder.nit:763 */
4825 REGB0 = CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity(fra.me.REG[3])(fra.me.REG[3]);
4826 REGB1 = TAG_Int(1);
4827 /* ./../lib/standard//kernel.nit:218 */
4828 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
4829 /* ./syntax//mmbuilder.nit:763 */
4830 CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB1);
4831 /* ./syntax//mmbuilder.nit:764 */
4832 fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
4833 CALL_metamodel___genericity___MMLocalClass___register_formal(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
4834 /* ./syntax//mmbuilder.nit:765 */
4835 fra.me.REG[3] = CALL_syntax___mmbuilder___ClassBuilderVisitor___formals(fra.me.REG[3])(fra.me.REG[3]);
4836 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4837 if (UNTAG_Bool(REGB1)) {
4838 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 765);
4839 }
4840 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]);
4841 /* ./syntax//mmbuilder.nit:766 */
4842 CALL_SUPER_syntax___mmbuilder___AFormaldef___accept_class_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4843 stack_frame_head = fra.me.prev;
4844 return;
4845 }
4846 void syntax___mmbuilder___AFormaldef___accept_class_verifier(val_t p0, val_t p1){
4847 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
4848 val_t REGB0;
4849 val_t REGB1;
4850 val_t tmp;
4851 static val_t once_value_2; /* Once value */
4852 static val_t once_value_3; /* Once value */
4853 static val_t once_value_4; /* Once value */
4854 static val_t once_value_5; /* Once value */
4855 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4856 fra.me.file = LOCATE_syntax___mmbuilder;
4857 fra.me.line = 769;
4858 fra.me.meth = LOCATE_syntax___mmbuilder___AFormaldef___accept_class_verifier;
4859 fra.me.has_broke = 0;
4860 fra.me.REG_size = 6;
4861 fra.me.REG[0] = NIT_NULL;
4862 fra.me.REG[1] = NIT_NULL;
4863 fra.me.REG[2] = NIT_NULL;
4864 fra.me.REG[3] = NIT_NULL;
4865 fra.me.REG[4] = NIT_NULL;
4866 fra.me.REG[5] = NIT_NULL;
4867 fra.me.REG[0] = p0;
4868 fra.me.REG[1] = p1;
4869 /* ./syntax//mmbuilder.nit:769 */
4870 fra.me.REG[2] = fra.me.REG[0];
4871 fra.me.REG[3] = fra.me.REG[1];
4872 /* ./syntax//mmbuilder.nit:771 */
4873 CALL_SUPER_syntax___mmbuilder___AFormaldef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4874 /* ./syntax//mmbuilder.nit:772 */
4875 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
4876 /* ./syntax//mmbuilder.nit:773 */
4877 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
4878 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[0])(fra.me.REG[0]);
4879 /* ./syntax//mmbuilder.nit:774 */
4880 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
4881 if (UNTAG_Bool(REGB0)) {
4882 } else {
4883 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4884 REGB0 = REGB1;
4885 }
4886 if (UNTAG_Bool(REGB0)) {
4887 /* ./syntax//mmbuilder.nit:775 */
4888 fra.me.REG[4] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
4889 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4890 if (UNTAG_Bool(REGB0)) {
4891 } else {
4892 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4893 if (UNTAG_Bool(REGB1)) {
4894 REGB1 = TAG_Bool(false);
4895 REGB0 = REGB1;
4896 } else {
4897 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
4898 REGB0 = REGB1;
4899 }
4900 }
4901 if (UNTAG_Bool(REGB0)) {
4902 /* ./syntax//mmbuilder.nit:776 */
4903 fra.me.REG[4] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
4904 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
4905 fra.me.REG[5] = CALL_metamodel___inheritance___MMModule___type_any(fra.me.REG[5])(fra.me.REG[5]);
4906 fra.me.REG[5] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[5])(fra.me.REG[5]);
4907 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4908 if (UNTAG_Bool(REGB0)) {
4909 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 776);
4910 }
4911 CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
4912 } else {
4913 /* ./syntax//mmbuilder.nit:778 */
4914 fra.me.REG[5] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
4915 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4916 if (UNTAG_Bool(REGB0)) {
4917 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 778);
4918 }
4919 fra.me.REG[5] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
4920 /* ./syntax//mmbuilder.nit:779 */
4921 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4922 if (UNTAG_Bool(REGB0)) {
4923 } else {
4924 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4925 if (UNTAG_Bool(REGB1)) {
4926 REGB1 = TAG_Bool(false);
4927 REGB0 = REGB1;
4928 } else {
4929 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
4930 REGB0 = REGB1;
4931 }
4932 }
4933 if (UNTAG_Bool(REGB0)) {
4934 goto label1;
4935 }
4936 /* ./syntax//mmbuilder.nit:780 */
4937 fra.me.REG[4] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
4938 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4939 if (UNTAG_Bool(REGB0)) {
4940 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 780);
4941 }
4942 CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
4943 }
4944 } else {
4945 /* ./syntax//mmbuilder.nit:783 */
4946 fra.me.REG[5] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
4947 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4948 if (UNTAG_Bool(REGB0)) {
4949 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 783);
4950 }
4951 REGB0 = CALL_metamodel___genericity___MMTypeFormalParameter___position(fra.me.REG[5])(fra.me.REG[5]);
4952 fra.me.REG[0] = CALL_metamodel___genericity___MMLocalClass___get_formal(fra.me.REG[0])(fra.me.REG[0], REGB0);
4953 fra.me.REG[0] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]);
4954 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
4955 fra.me.REG[5] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
4956 /* ./syntax//mmbuilder.nit:784 */
4957 fra.me.REG[0] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
4958 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4959 if (UNTAG_Bool(REGB0)) {
4960 } else {
4961 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4962 if (UNTAG_Bool(REGB1)) {
4963 REGB1 = TAG_Bool(false);
4964 REGB0 = REGB1;
4965 } else {
4966 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
4967 REGB0 = REGB1;
4968 }
4969 }
4970 if (UNTAG_Bool(REGB0)) {
4971 /* ./syntax//mmbuilder.nit:785 */
4972 fra.me.REG[0] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
4973 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4974 if (UNTAG_Bool(REGB0)) {
4975 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 785);
4976 }
4977 CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
4978 } else {
4979 /* ./syntax//mmbuilder.nit:787 */
4980 fra.me.REG[0] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
4981 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4982 if (UNTAG_Bool(REGB0)) {
4983 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 787);
4984 }
4985 fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
4986 /* ./syntax//mmbuilder.nit:788 */
4987 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4988 if (UNTAG_Bool(REGB0)) {
4989 } else {
4990 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4991 if (UNTAG_Bool(REGB1)) {
4992 REGB1 = TAG_Bool(false);
4993 REGB0 = REGB1;
4994 } else {
4995 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
4996 REGB0 = REGB1;
4997 }
4998 }
4999 if (UNTAG_Bool(REGB0)) {
5000 goto label1;
5001 }
5002 /* ./syntax//mmbuilder.nit:789 */
5003 fra.me.REG[4] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5004 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5005 if (UNTAG_Bool(REGB0)) {
5006 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 789);
5007 }
5008 CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
5009 /* ./syntax//mmbuilder.nit:790 */
5010 fra.me.REG[0] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5011 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5012 if (UNTAG_Bool(REGB0)) {
5013 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 790);
5014 }
5015 fra.me.REG[0] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]);
5016 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[5]));
5017 if (UNTAG_Bool(REGB0)) {
5018 } else {
5019 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
5020 REGB0 = REGB1;
5021 }
5022 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5023 if (UNTAG_Bool(REGB0)) {
5024 /* ./syntax//mmbuilder.nit:791 */
5025 REGB0 = TAG_Int(7);
5026 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5027 if (!once_value_2) {
5028 fra.me.REG[4] = BOX_NativeString("Redef error: Cannot change formal parameter type of class ");
5029 REGB0 = TAG_Int(58);
5030 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
5031 once_value_2 = fra.me.REG[4];
5032 register_static_object(&once_value_2);
5033 } else fra.me.REG[4] = once_value_2;
5034 fra.me.REG[4] = fra.me.REG[4];
5035 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
5036 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
5037 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5038 if (!once_value_3) {
5039 fra.me.REG[1] = BOX_NativeString("; got ");
5040 REGB0 = TAG_Int(6);
5041 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
5042 once_value_3 = fra.me.REG[1];
5043 register_static_object(&once_value_3);
5044 } else fra.me.REG[1] = once_value_3;
5045 fra.me.REG[1] = fra.me.REG[1];
5046 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5047 fra.me.REG[1] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5048 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5049 if (UNTAG_Bool(REGB0)) {
5050 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 791);
5051 }
5052 fra.me.REG[1] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[1])(fra.me.REG[1]);
5053 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
5054 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5055 if (!once_value_4) {
5056 fra.me.REG[1] = BOX_NativeString(", expected ");
5057 REGB0 = TAG_Int(11);
5058 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
5059 once_value_4 = fra.me.REG[1];
5060 register_static_object(&once_value_4);
5061 } else fra.me.REG[1] = once_value_4;
5062 fra.me.REG[1] = fra.me.REG[1];
5063 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5064 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5065 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
5066 if (!once_value_5) {
5067 fra.me.REG[5] = BOX_NativeString(".");
5068 REGB0 = TAG_Int(1);
5069 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
5070 once_value_5 = fra.me.REG[5];
5071 register_static_object(&once_value_5);
5072 } else fra.me.REG[5] = once_value_5;
5073 fra.me.REG[5] = fra.me.REG[5];
5074 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
5075 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
5076 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
5077 }
5078 }
5079 }
5080 label1: while(0);
5081 stack_frame_head = fra.me.prev;
5082 return;
5083 }
5084 val_t syntax___mmbuilder___ASuperclass___ancestor(val_t p0){
5085 struct {struct stack_frame_t me;} fra;
5086 val_t tmp;
5087 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5088 fra.me.file = LOCATE_syntax___mmbuilder;
5089 fra.me.line = 799;
5090 fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___ancestor;
5091 fra.me.has_broke = 0;
5092 fra.me.REG_size = 1;
5093 fra.me.REG[0] = NIT_NULL;
5094 fra.me.REG[0] = p0;
5095 /* ./syntax//mmbuilder.nit:799 */
5096 fra.me.REG[0] = ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[0]);
5097 stack_frame_head = fra.me.prev;
5098 return fra.me.REG[0];
5099 }
5100 void syntax___mmbuilder___ASuperclass___accept_class_specialization_builder(val_t p0, val_t p1){
5101 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5102 val_t REGB0;
5103 val_t REGB1;
5104 val_t tmp;
5105 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5106 fra.me.file = LOCATE_syntax___mmbuilder;
5107 fra.me.line = 801;
5108 fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___accept_class_specialization_builder;
5109 fra.me.has_broke = 0;
5110 fra.me.REG_size = 4;
5111 fra.me.REG[0] = NIT_NULL;
5112 fra.me.REG[1] = NIT_NULL;
5113 fra.me.REG[2] = NIT_NULL;
5114 fra.me.REG[3] = NIT_NULL;
5115 fra.me.REG[0] = p0;
5116 fra.me.REG[1] = p1;
5117 /* ./syntax//mmbuilder.nit:801 */
5118 fra.me.REG[2] = fra.me.REG[0];
5119 fra.me.REG[3] = fra.me.REG[1];
5120 /* ./syntax//mmbuilder.nit:803 */
5121 CALL_SUPER_syntax___mmbuilder___ASuperclass___accept_class_specialization_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5122 /* ./syntax//mmbuilder.nit:804 */
5123 fra.me.REG[1] = CALL_parser___parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
5124 fra.me.REG[1] = CALL_syntax___syntax_base___AType___get_local_class(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5125 /* ./syntax//mmbuilder.nit:805 */
5126 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5127 if (UNTAG_Bool(REGB0)) {
5128 } else {
5129 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5130 if (UNTAG_Bool(REGB1)) {
5131 REGB1 = TAG_Bool(false);
5132 REGB0 = REGB1;
5133 } else {
5134 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
5135 REGB0 = REGB1;
5136 }
5137 }
5138 if (UNTAG_Bool(REGB0)) {
5139 goto label1;
5140 }
5141 /* ./syntax//mmbuilder.nit:806 */
5142 fra.me.REG[1] = NEW_MMSrcAncestor_syntax___mmbuilder___MMSrcAncestor___init(fra.me.REG[1]);
5143 /* ./syntax//mmbuilder.nit:807 */
5144 ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[2]) = fra.me.REG[1];
5145 /* ./syntax//mmbuilder.nit:808 */
5146 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5147 CALL_metamodel___inheritance___MMLocalClass___add_direct_parent(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5148 label1: while(0);
5149 stack_frame_head = fra.me.prev;
5150 return;
5151 }
5152 void syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder(val_t p0, val_t p1){
5153 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5154 val_t REGB0;
5155 val_t tmp;
5156 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5157 fra.me.file = LOCATE_syntax___mmbuilder;
5158 fra.me.line = 811;
5159 fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder;
5160 fra.me.has_broke = 0;
5161 fra.me.REG_size = 4;
5162 fra.me.REG[0] = NIT_NULL;
5163 fra.me.REG[1] = NIT_NULL;
5164 fra.me.REG[2] = NIT_NULL;
5165 fra.me.REG[3] = NIT_NULL;
5166 fra.me.REG[0] = p0;
5167 fra.me.REG[1] = p1;
5168 /* ./syntax//mmbuilder.nit:811 */
5169 fra.me.REG[2] = fra.me.REG[0];
5170 fra.me.REG[3] = fra.me.REG[1];
5171 /* ./syntax//mmbuilder.nit:813 */
5172 CALL_SUPER_syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5173 /* ./syntax//mmbuilder.nit:814 */
5174 fra.me.REG[1] = ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[2]);
5175 fra.me.REG[0] = CALL_parser___parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
5176 fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_unchecked_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
5177 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5178 if (UNTAG_Bool(REGB0)) {
5179 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 814);
5180 }
5181 CALL_metamodel___static_type___MMAncestor___stype__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
5182 /* ./syntax//mmbuilder.nit:815 */
5183 fra.me.REG[2] = ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[2]);
5184 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5185 fra.me.REG[3] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[3])(fra.me.REG[3]);
5186 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5187 if (UNTAG_Bool(REGB0)) {
5188 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 815);
5189 }
5190 CALL_metamodel___static_type___MMAncestor___inheriter__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
5191 stack_frame_head = fra.me.prev;
5192 return;
5193 }
5194 void syntax___mmbuilder___ASuperclass___accept_class_verifier(val_t p0, val_t p1){
5195 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5196 val_t tmp;
5197 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5198 fra.me.file = LOCATE_syntax___mmbuilder;
5199 fra.me.line = 818;
5200 fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___accept_class_verifier;
5201 fra.me.has_broke = 0;
5202 fra.me.REG_size = 4;
5203 fra.me.REG[0] = NIT_NULL;
5204 fra.me.REG[1] = NIT_NULL;
5205 fra.me.REG[2] = NIT_NULL;
5206 fra.me.REG[3] = NIT_NULL;
5207 fra.me.REG[0] = p0;
5208 fra.me.REG[1] = p1;
5209 /* ./syntax//mmbuilder.nit:818 */
5210 fra.me.REG[2] = fra.me.REG[0];
5211 fra.me.REG[3] = fra.me.REG[1];
5212 /* ./syntax//mmbuilder.nit:820 */
5213 CALL_SUPER_syntax___mmbuilder___ASuperclass___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5214 /* ./syntax//mmbuilder.nit:821 */
5215 fra.me.REG[2] = CALL_parser___parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
5216 CALL_syntax___syntax_base___AType___check_conform(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
5217 stack_frame_head = fra.me.prev;
5218 return;
5219 }
5220 void syntax___mmbuilder___APropdef___process_and_check(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
5221 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5222 val_t REGB0;
5223 val_t REGB1;
5224 val_t REGB2;
5225 val_t REGB3;
5226 val_t tmp;
5227 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5228 fra.me.file = LOCATE_syntax___mmbuilder;
5229 fra.me.line = 826;
5230 fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___process_and_check;
5231 fra.me.has_broke = 0;
5232 fra.me.REG_size = 4;
5233 fra.me.REG[0] = NIT_NULL;
5234 fra.me.REG[1] = NIT_NULL;
5235 fra.me.REG[2] = NIT_NULL;
5236 fra.me.REG[3] = NIT_NULL;
5237 fra.me.REG[0] = p0;
5238 fra.me.REG[1] = p1;
5239 fra.me.REG[2] = p2;
5240 REGB0 = p3;
5241 REGB1 = p4;
5242 /* ./syntax//mmbuilder.nit:834 */
5243 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
5244 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[3])(fra.me.REG[3]);
5245 REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[2]));
5246 if (UNTAG_Bool(REGB2)) {
5247 } else {
5248 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
5249 REGB2 = REGB3;
5250 }
5251 if (UNTAG_Bool(REGB2)) {
5252 /* ./syntax//mmbuilder.nit:835 */
5253 CALL_syntax___mmbuilder___APropdef___do_and_check_intro(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, REGB1);
5254 } else {
5255 /* ./syntax//mmbuilder.nit:837 */
5256 CALL_syntax___mmbuilder___APropdef___do_and_check_redef(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, REGB1);
5257 }
5258 stack_frame_head = fra.me.prev;
5259 return;
5260 }
5261 void syntax___mmbuilder___APropdef___do_and_check_intro(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
5262 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
5263 val_t REGB0;
5264 val_t REGB1;
5265 val_t REGB2;
5266 val_t REGB3;
5267 val_t REGB4;
5268 val_t tmp;
5269 static val_t once_value_1; /* Once value */
5270 static val_t once_value_2; /* Once value */
5271 static val_t once_value_3; /* Once value */
5272 static val_t once_value_4; /* Once value */
5273 static val_t once_value_5; /* Once value */
5274 static val_t once_value_6; /* Once value */
5275 static val_t once_value_7; /* Once value */
5276 static val_t once_value_8; /* Once value */
5277 static val_t once_value_9; /* Once value */
5278 static val_t once_value_10; /* Once value */
5279 static val_t once_value_11; /* Once value */
5280 static val_t once_value_12; /* Once value */
5281 static val_t once_value_13; /* Once value */
5282 static val_t once_value_14; /* Once value */
5283 static val_t once_value_15; /* Once value */
5284 static val_t once_value_16; /* Once value */
5285 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5286 fra.me.file = LOCATE_syntax___mmbuilder;
5287 fra.me.line = 841;
5288 fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___do_and_check_intro;
5289 fra.me.has_broke = 0;
5290 fra.me.REG_size = 7;
5291 fra.me.REG[0] = NIT_NULL;
5292 fra.me.REG[1] = NIT_NULL;
5293 fra.me.REG[2] = NIT_NULL;
5294 fra.me.REG[3] = NIT_NULL;
5295 fra.me.REG[4] = NIT_NULL;
5296 fra.me.REG[5] = NIT_NULL;
5297 fra.me.REG[6] = NIT_NULL;
5298 fra.me.REG[0] = p0;
5299 fra.me.REG[1] = p1;
5300 fra.me.REG[2] = p2;
5301 REGB0 = p3;
5302 REGB1 = p4;
5303 /* ./syntax//mmbuilder.nit:844 */
5304 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
5305 /* ./syntax//mmbuilder.nit:845 */
5306 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5307 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
5308 /* ./syntax//mmbuilder.nit:846 */
5309 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
5310 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
5311 REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[5])(fra.me.REG[5]);
5312 REGB3 = TAG_Int(3);
5313 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
5314 if (UNTAG_Bool(REGB4)) {
5315 } else {
5316 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5317 }
5318 /* ./../lib/standard//kernel.nit:216 */
5319 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
5320 /* ./syntax//mmbuilder.nit:846 */
5321 if (UNTAG_Bool(REGB3)) {
5322 /* ./syntax//mmbuilder.nit:848 */
5323 REGB3 = TAG_Int(3);
5324 REGB1 = REGB3;
5325 }
5326 /* ./syntax//mmbuilder.nit:850 */
5327 CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[3])(fra.me.REG[3], REGB1);
5328 /* ./syntax//mmbuilder.nit:851 */
5329 if (UNTAG_Bool(REGB0)) {
5330 /* ./syntax//mmbuilder.nit:852 */
5331 REGB0 = TAG_Int(5);
5332 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5333 if (!once_value_1) {
5334 fra.me.REG[6] = BOX_NativeString("Error: No property ");
5335 REGB0 = TAG_Int(19);
5336 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5337 once_value_1 = fra.me.REG[6];
5338 register_static_object(&once_value_1);
5339 } else fra.me.REG[6] = once_value_1;
5340 fra.me.REG[6] = fra.me.REG[6];
5341 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5342 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5343 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5344 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5345 if (!once_value_2) {
5346 fra.me.REG[6] = BOX_NativeString("::");
5347 REGB0 = TAG_Int(2);
5348 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5349 once_value_2 = fra.me.REG[6];
5350 register_static_object(&once_value_2);
5351 } else fra.me.REG[6] = once_value_2;
5352 fra.me.REG[6] = fra.me.REG[6];
5353 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5354 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5355 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5356 if (!once_value_3) {
5357 fra.me.REG[6] = BOX_NativeString(" is inherited. Remove the redef keyword to define a new property.");
5358 REGB0 = TAG_Int(65);
5359 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5360 once_value_3 = fra.me.REG[6];
5361 register_static_object(&once_value_3);
5362 } else fra.me.REG[6] = once_value_3;
5363 fra.me.REG[6] = fra.me.REG[6];
5364 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5365 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5366 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5367 }
5368 /* ./syntax//mmbuilder.nit:854 */
5369 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_attribute(fra.me.REG[3])(fra.me.REG[3]);
5370 if (UNTAG_Bool(REGB0)) {
5371 /* ./syntax//mmbuilder.nit:855 */
5372 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]);
5373 if (UNTAG_Bool(REGB0)) {
5374 /* ./syntax//mmbuilder.nit:856 */
5375 REGB0 = TAG_Int(5);
5376 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5377 if (!once_value_4) {
5378 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
5379 REGB0 = TAG_Int(35);
5380 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5381 once_value_4 = fra.me.REG[6];
5382 register_static_object(&once_value_4);
5383 } else fra.me.REG[6] = once_value_4;
5384 fra.me.REG[6] = fra.me.REG[6];
5385 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5386 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5387 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5388 if (!once_value_5) {
5389 fra.me.REG[6] = BOX_NativeString(" in the interface ");
5390 REGB0 = TAG_Int(18);
5391 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5392 once_value_5 = fra.me.REG[6];
5393 register_static_object(&once_value_5);
5394 } else fra.me.REG[6] = once_value_5;
5395 fra.me.REG[6] = fra.me.REG[6];
5396 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5397 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5398 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5399 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5400 if (!once_value_6) {
5401 fra.me.REG[6] = BOX_NativeString(".");
5402 REGB0 = TAG_Int(1);
5403 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5404 once_value_6 = fra.me.REG[6];
5405 register_static_object(&once_value_6);
5406 } else fra.me.REG[6] = once_value_6;
5407 fra.me.REG[6] = fra.me.REG[6];
5408 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5409 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5410 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5411 } else {
5412 /* ./syntax//mmbuilder.nit:857 */
5413 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[4])(fra.me.REG[4]);
5414 if (UNTAG_Bool(REGB0)) {
5415 /* ./syntax//mmbuilder.nit:858 */
5416 REGB0 = TAG_Int(5);
5417 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5418 if (!once_value_7) {
5419 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
5420 REGB0 = TAG_Int(35);
5421 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5422 once_value_7 = fra.me.REG[6];
5423 register_static_object(&once_value_7);
5424 } else fra.me.REG[6] = once_value_7;
5425 fra.me.REG[6] = fra.me.REG[6];
5426 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5427 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5428 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5429 if (!once_value_8) {
5430 fra.me.REG[6] = BOX_NativeString(" in the enum class ");
5431 REGB0 = TAG_Int(19);
5432 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5433 once_value_8 = fra.me.REG[6];
5434 register_static_object(&once_value_8);
5435 } else fra.me.REG[6] = once_value_8;
5436 fra.me.REG[6] = fra.me.REG[6];
5437 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5438 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5439 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5440 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5441 if (!once_value_9) {
5442 fra.me.REG[6] = BOX_NativeString(".");
5443 REGB0 = TAG_Int(1);
5444 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5445 once_value_9 = fra.me.REG[6];
5446 register_static_object(&once_value_9);
5447 } else fra.me.REG[6] = once_value_9;
5448 fra.me.REG[6] = fra.me.REG[6];
5449 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5450 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5451 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5452 }
5453 }
5454 } else {
5455 /* ./syntax//mmbuilder.nit:860 */
5456 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
5457 if (UNTAG_Bool(REGB0)) {
5458 /* ./syntax//mmbuilder.nit:861 */
5459 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]);
5460 if (UNTAG_Bool(REGB0)) {
5461 /* ./syntax//mmbuilder.nit:862 */
5462 REGB0 = TAG_Int(5);
5463 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5464 if (!once_value_10) {
5465 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define a constructor ");
5466 REGB0 = TAG_Int(39);
5467 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5468 once_value_10 = fra.me.REG[6];
5469 register_static_object(&once_value_10);
5470 } else fra.me.REG[6] = once_value_10;
5471 fra.me.REG[6] = fra.me.REG[6];
5472 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5473 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5474 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5475 if (!once_value_11) {
5476 fra.me.REG[6] = BOX_NativeString(" in the class ");
5477 REGB0 = TAG_Int(14);
5478 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5479 once_value_11 = fra.me.REG[6];
5480 register_static_object(&once_value_11);
5481 } else fra.me.REG[6] = once_value_11;
5482 fra.me.REG[6] = fra.me.REG[6];
5483 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5484 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5485 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5486 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5487 if (!once_value_12) {
5488 fra.me.REG[6] = BOX_NativeString(".");
5489 REGB0 = TAG_Int(1);
5490 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5491 once_value_12 = fra.me.REG[6];
5492 register_static_object(&once_value_12);
5493 } else fra.me.REG[6] = once_value_12;
5494 fra.me.REG[6] = fra.me.REG[6];
5495 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5496 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5497 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5498 } else {
5499 /* ./syntax//mmbuilder.nit:863 */
5500 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[4])(fra.me.REG[4]);
5501 if (UNTAG_Bool(REGB0)) {
5502 /* ./syntax//mmbuilder.nit:864 */
5503 REGB0 = TAG_Int(5);
5504 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5505 if (!once_value_13) {
5506 fra.me.REG[5] = BOX_NativeString("Error: Attempt to define a constructor ");
5507 REGB0 = TAG_Int(39);
5508 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
5509 once_value_13 = fra.me.REG[5];
5510 register_static_object(&once_value_13);
5511 } else fra.me.REG[5] = once_value_13;
5512 fra.me.REG[5] = fra.me.REG[5];
5513 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5514 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5515 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5516 if (!once_value_14) {
5517 fra.me.REG[5] = BOX_NativeString(" in the enum ");
5518 REGB0 = TAG_Int(13);
5519 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
5520 once_value_14 = fra.me.REG[5];
5521 register_static_object(&once_value_14);
5522 } else fra.me.REG[5] = once_value_14;
5523 fra.me.REG[5] = fra.me.REG[5];
5524 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5525 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5526 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5527 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5528 if (!once_value_15) {
5529 fra.me.REG[5] = BOX_NativeString(".");
5530 REGB0 = TAG_Int(1);
5531 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
5532 once_value_15 = fra.me.REG[5];
5533 register_static_object(&once_value_15);
5534 } else fra.me.REG[5] = once_value_15;
5535 fra.me.REG[5] = fra.me.REG[5];
5536 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5537 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
5538 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
5539 }
5540 }
5541 }
5542 }
5543 /* ./syntax//mmbuilder.nit:867 */
5544 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
5545 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5546 if (UNTAG_Bool(REGB0)) {
5547 } else {
5548 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5549 if (UNTAG_Bool(REGB1)) {
5550 REGB1 = TAG_Bool(false);
5551 REGB0 = REGB1;
5552 } else {
5553 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5554 REGB0 = REGB1;
5555 }
5556 }
5557 if (UNTAG_Bool(REGB0)) {
5558 /* ./syntax//mmbuilder.nit:868 */
5559 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
5560 if (UNTAG_Bool(REGB0)) {
5561 /* ./syntax//mmbuilder.nit:869 */
5562 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5563 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
5564 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
5565 /* ./syntax//mmbuilder.nit:870 */
5566 CALL_syntax___mmbuilder___APropdef___inherit_signature(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[4]);
5567 }
5568 /* ./syntax//mmbuilder.nit:872 */
5569 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
5570 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5571 if (UNTAG_Bool(REGB0)) {
5572 } else {
5573 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5574 if (UNTAG_Bool(REGB1)) {
5575 REGB1 = TAG_Bool(false);
5576 REGB0 = REGB1;
5577 } else {
5578 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5579 REGB0 = REGB1;
5580 }
5581 }
5582 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5583 if (UNTAG_Bool(REGB0)) {
5584 REGB0 = TAG_Bool(true);
5585 } else {
5586 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5587 REGB1 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[4])(fra.me.REG[4]);
5588 REGB0 = REGB1;
5589 }
5590 if (UNTAG_Bool(REGB0)) {
5591 } else {
5592 /* ./syntax//mmbuilder.nit:874 */
5593 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5594 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
5595 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[4])(fra.me.REG[4]);
5596 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5597 if (UNTAG_Bool(REGB0)) {
5598 /* ./syntax//mmbuilder.nit:875 */
5599 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5600 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
5601 fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
5602 if (!once_value_16) {
5603 fra.me.REG[0] = BOX_NativeString("Error: Untyped parameter.");
5604 REGB0 = TAG_Int(25);
5605 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
5606 once_value_16 = fra.me.REG[0];
5607 register_static_object(&once_value_16);
5608 } else fra.me.REG[0] = once_value_16;
5609 fra.me.REG[0] = fra.me.REG[0];
5610 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]);
5611 } else {
5612 /* ./syntax//mmbuilder.nit:877 */
5613 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
5614 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
5615 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
5616 fra.me.REG[4] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[4]);
5617 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
5618 /* ./syntax//mmbuilder.nit:878 */
5619 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5620 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[1])(fra.me.REG[1]);
5621 /* ./../lib/standard//collection//array.nit:232 */
5622 REGB0 = TAG_Int(0);
5623 /* ./../lib/standard//collection//array.nit:233 */
5624 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
5625 if (UNTAG_Bool(REGB1)) {
5626 } else {
5627 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 233);
5628 }
5629 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
5630 /* ./../lib/standard//collection//array.nit:234 */
5631 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
5632 /* ./../lib/standard//collection//array.nit:235 */
5633 while(1) {
5634 /* ./../lib/standard//collection//array.nit:23 */
5635 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
5636 if (UNTAG_Bool(REGB1)) {
5637 } else {
5638 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
5639 }
5640 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
5641 REGB3 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
5642 if (UNTAG_Bool(REGB3)) {
5643 } else {
5644 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5645 }
5646 /* ./../lib/standard//kernel.nit:215 */
5647 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
5648 /* ./../lib/standard//collection//array.nit:235 */
5649 if (UNTAG_Bool(REGB1)) {
5650 /* ./../lib/standard//collection//array.nit:236 */
5651 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5652 if (UNTAG_Bool(REGB1)) {
5653 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 236);
5654 }
5655 /* ./../lib/standard//collection//array.nit:652 */
5656 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
5657 /* ./syntax//mmbuilder.nit:879 */
5658 fra.me.REG[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
5659 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5660 if (UNTAG_Bool(REGB1)) {
5661 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 879);
5662 }
5663 fra.me.REG[3] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[3])(fra.me.REG[3]);
5664 fra.me.REG[0] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[0])(fra.me.REG[0]);
5665 fra.me.REG[0] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[0])(fra.me.REG[0]);
5666 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
5667 /* ./../lib/standard//collection//array.nit:237 */
5668 REGB1 = TAG_Int(1);
5669 /* ./../lib/standard//kernel.nit:218 */
5670 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
5671 /* ./../lib/standard//collection//array.nit:237 */
5672 REGB0 = REGB1;
5673 } else {
5674 /* ./../lib/standard//collection//array.nit:235 */
5675 goto label17;
5676 }
5677 }
5678 label17: while(0);
5679 }
5680 }
5681 }
5682 stack_frame_head = fra.me.prev;
5683 return;
5684 }
5685 void syntax___mmbuilder___APropdef___inherit_signature(val_t p0, val_t p1, val_t p2, val_t p3){
5686 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
5687 val_t REGB0;
5688 val_t REGB1;
5689 val_t REGB2;
5690 val_t REGB3;
5691 val_t REGB4;
5692 val_t tmp;
5693 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5694 fra.me.file = LOCATE_syntax___mmbuilder;
5695 fra.me.line = 885;
5696 fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___inherit_signature;
5697 fra.me.has_broke = 0;
5698 fra.me.REG_size = 11;
5699 fra.me.REG[0] = NIT_NULL;
5700 fra.me.REG[1] = NIT_NULL;
5701 fra.me.REG[2] = NIT_NULL;
5702 fra.me.REG[3] = NIT_NULL;
5703 fra.me.REG[4] = NIT_NULL;
5704 fra.me.REG[5] = NIT_NULL;
5705 fra.me.REG[6] = NIT_NULL;
5706 fra.me.REG[7] = NIT_NULL;
5707 fra.me.REG[8] = NIT_NULL;
5708 fra.me.REG[9] = NIT_NULL;
5709 fra.me.REG[10] = NIT_NULL;
5710 fra.me.REG[0] = p0;
5711 fra.me.REG[1] = p1;
5712 fra.me.REG[2] = p2;
5713 fra.me.REG[3] = p3;
5714 /* ./syntax//mmbuilder.nit:887 */
5715 fra.me.REG[0] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
5716 /* ./../lib/standard//collection//array.nit:232 */
5717 REGB0 = TAG_Int(0);
5718 /* ./../lib/standard//collection//array.nit:233 */
5719 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
5720 if (UNTAG_Bool(REGB1)) {
5721 } else {
5722 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 233);
5723 }
5724 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
5725 /* ./../lib/standard//collection//array.nit:234 */
5726 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
5727 /* ./../lib/standard//collection//array.nit:235 */
5728 while(1) {
5729 /* ./../lib/standard//collection//array.nit:23 */
5730 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
5731 if (UNTAG_Bool(REGB1)) {
5732 } else {
5733 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
5734 }
5735 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
5736 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
5737 if (UNTAG_Bool(REGB2)) {
5738 } else {
5739 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5740 }
5741 /* ./../lib/standard//kernel.nit:215 */
5742 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
5743 /* ./../lib/standard//collection//array.nit:235 */
5744 if (UNTAG_Bool(REGB1)) {
5745 /* ./../lib/standard//collection//array.nit:236 */
5746 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5747 if (UNTAG_Bool(REGB1)) {
5748 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 236);
5749 }
5750 /* ./../lib/standard//collection//array.nit:652 */
5751 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
5752 /* ./syntax//mmbuilder.nit:889 */
5753 fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[5])(fra.me.REG[5]);
5754 fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
5755 fra.me.REG[6] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[6])(fra.me.REG[6]);
5756 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
5757 if (UNTAG_Bool(REGB1)) {
5758 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 889);
5759 }
5760 fra.me.REG[6] = CALL_metamodel___static_type___MMSignature___adaptation_to(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5761 /* ./syntax//mmbuilder.nit:891 */
5762 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5763 if (UNTAG_Bool(REGB1)) {
5764 } else {
5765 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5766 if (UNTAG_Bool(REGB2)) {
5767 REGB2 = TAG_Bool(false);
5768 REGB1 = REGB2;
5769 } else {
5770 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
5771 REGB1 = REGB2;
5772 }
5773 }
5774 if (UNTAG_Bool(REGB1)) {
5775 /* ./syntax//mmbuilder.nit:892 */
5776 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5777 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[5])(fra.me.REG[5]);
5778 /* ./../lib/standard//collection//array.nit:23 */
5779 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
5780 if (UNTAG_Bool(REGB1)) {
5781 } else {
5782 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
5783 }
5784 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
5785 /* ./syntax//mmbuilder.nit:892 */
5786 REGB2 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[6])(fra.me.REG[6]);
5787 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
5788 if (UNTAG_Bool(REGB3)) {
5789 } else {
5790 /* ./../lib/standard//kernel.nit:210 */
5791 REGB2 = TAG_Bool((REGB1)==(REGB2));
5792 /* ./syntax//mmbuilder.nit:892 */
5793 REGB3 = REGB2;
5794 }
5795 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
5796 if (UNTAG_Bool(REGB3)) {
5797 /* ./syntax//mmbuilder.nit:893 */
5798 goto label1;
5799 }
5800 /* ./syntax//mmbuilder.nit:895 */
5801 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5802 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[5])(fra.me.REG[5]);
5803 /* ./../lib/standard//collection//array.nit:232 */
5804 REGB3 = TAG_Int(0);
5805 /* ./../lib/standard//collection//array.nit:233 */
5806 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
5807 if (UNTAG_Bool(REGB2)) {
5808 } else {
5809 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 233);
5810 }
5811 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
5812 /* ./../lib/standard//collection//array.nit:234 */
5813 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
5814 /* ./../lib/standard//collection//array.nit:235 */
5815 while(1) {
5816 /* ./../lib/standard//collection//array.nit:23 */
5817 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
5818 if (UNTAG_Bool(REGB2)) {
5819 } else {
5820 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
5821 }
5822 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
5823 REGB1 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
5824 if (UNTAG_Bool(REGB1)) {
5825 } else {
5826 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5827 }
5828 /* ./../lib/standard//kernel.nit:215 */
5829 REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB2));
5830 /* ./../lib/standard//collection//array.nit:235 */
5831 if (UNTAG_Bool(REGB2)) {
5832 /* ./../lib/standard//collection//array.nit:236 */
5833 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5834 if (UNTAG_Bool(REGB2)) {
5835 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 236);
5836 }
5837 /* ./../lib/standard//collection//array.nit:652 */
5838 fra.me.REG[8] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB3)];
5839 /* ./syntax//mmbuilder.nit:896 */
5840 REGB2 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[8])(fra.me.REG[8]);
5841 fra.me.REG[9] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[6])(fra.me.REG[6], REGB2);
5842 /* ./syntax//mmbuilder.nit:897 */
5843 CALL_syntax___mmbuilder___AParam___stype__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
5844 /* ./syntax//mmbuilder.nit:898 */
5845 REGB2 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[8])(fra.me.REG[8]);
5846 REGB1 = CALL_metamodel___vararg___MMSignature___vararg_rank(fra.me.REG[6])(fra.me.REG[6]);
5847 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
5848 if (UNTAG_Bool(REGB4)) {
5849 } else {
5850 /* ./../lib/standard//kernel.nit:210 */
5851 REGB1 = TAG_Bool((REGB2)==(REGB1));
5852 /* ./syntax//mmbuilder.nit:898 */
5853 REGB4 = REGB1;
5854 }
5855 if (UNTAG_Bool(REGB4)) {
5856 /* ./syntax//mmbuilder.nit:899 */
5857 fra.me.REG[10] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
5858 fra.me.REG[9] = fra.me.REG[10];
5859 }
5860 /* ./syntax//mmbuilder.nit:901 */
5861 fra.me.REG[8] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[8])(fra.me.REG[8]);
5862 CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
5863 /* ./../lib/standard//collection//array.nit:237 */
5864 REGB4 = TAG_Int(1);
5865 /* ./../lib/standard//kernel.nit:218 */
5866 REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB4));
5867 /* ./../lib/standard//collection//array.nit:237 */
5868 REGB3 = REGB4;
5869 } else {
5870 /* ./../lib/standard//collection//array.nit:235 */
5871 goto label2;
5872 }
5873 }
5874 label2: while(0);
5875 /* ./syntax//mmbuilder.nit:904 */
5876 fra.me.REG[0] = fra.me.REG[6];
5877 /* ./syntax//mmbuilder.nit:905 */
5878 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5879 }
5880 /* ./../lib/standard//collection//array.nit:237 */
5881 REGB3 = TAG_Int(1);
5882 /* ./../lib/standard//kernel.nit:218 */
5883 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
5884 /* ./../lib/standard//collection//array.nit:237 */
5885 REGB0 = REGB3;
5886 } else {
5887 /* ./../lib/standard//collection//array.nit:235 */
5888 goto label3;
5889 }
5890 }
5891 label3: while(0);
5892 label1: while(0);
5893 stack_frame_head = fra.me.prev;
5894 return;
5895 }
5896 void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
5897 struct {struct stack_frame_t me; val_t MORE_REG[13];} fra;
5898 val_t REGB0;
5899 val_t REGB1;
5900 val_t REGB2;
5901 val_t REGB3;
5902 val_t REGB4;
5903 val_t REGB5;
5904 val_t REGB6;
5905 val_t REGB7;
5906 val_t tmp;
5907 static val_t once_value_1; /* Once value */
5908 static val_t once_value_2; /* Once value */
5909 static val_t once_value_3; /* Once value */
5910 static val_t once_value_5; /* Once value */
5911 static val_t once_value_6; /* Once value */
5912 static val_t once_value_7; /* Once value */
5913 static val_t once_value_8; /* Once value */
5914 static val_t once_value_9; /* Once value */
5915 static val_t once_value_10; /* Once value */
5916 static val_t once_value_12; /* Once value */
5917 static val_t once_value_13; /* Once value */
5918 static val_t once_value_14; /* Once value */
5919 static val_t once_value_15; /* Once value */
5920 static val_t once_value_16; /* Once value */
5921 static val_t once_value_17; /* Once value */
5922 static val_t once_value_18; /* Once value */
5923 static val_t once_value_19; /* Once value */
5924 static val_t once_value_20; /* Once value */
5925 static val_t once_value_21; /* Once value */
5926 static val_t once_value_22; /* Once value */
5927 static val_t once_value_23; /* Once value */
5928 static val_t once_value_25; /* Once value */
5929 static val_t once_value_26; /* Once value */
5930 static val_t once_value_27; /* Once value */
5931 static val_t once_value_28; /* Once value */
5932 static val_t once_value_29; /* Once value */
5933 static val_t once_value_30; /* Once value */
5934 static val_t once_value_31; /* Once value */
5935 static val_t once_value_32; /* Once value */
5936 static val_t once_value_33; /* Once value */
5937 static val_t once_value_34; /* Once value */
5938 static val_t once_value_36; /* Once value */
5939 static val_t once_value_37; /* Once value */
5940 static val_t once_value_38; /* Once value */
5941 static val_t once_value_39; /* Once value */
5942 static val_t once_value_40; /* Once value */
5943 static val_t once_value_41; /* Once value */
5944 static val_t once_value_42; /* Once value */
5945 static val_t once_value_43; /* Once value */
5946 static val_t once_value_44; /* Once value */
5947 static val_t once_value_45; /* Once value */
5948 static val_t once_value_46; /* Once value */
5949 static val_t once_value_47; /* Once value */
5950 static val_t once_value_48; /* Once value */
5951 static val_t once_value_49; /* Once value */
5952 static val_t once_value_50; /* Once value */
5953 static val_t once_value_51; /* Once value */
5954 static val_t once_value_52; /* Once value */
5955 static val_t once_value_53; /* Once value */
5956 static val_t once_value_54; /* Once value */
5957 static val_t once_value_55; /* Once value */
5958 static val_t once_value_56; /* Once value */
5959 static val_t once_value_57; /* Once value */
5960 static val_t once_value_58; /* Once value */
5961 static val_t once_value_59; /* Once value */
5962 static val_t once_value_60; /* Once value */
5963 static val_t once_value_61; /* Once value */
5964 static val_t once_value_62; /* Once value */
5965 static val_t once_value_64; /* Once value */
5966 static val_t once_value_65; /* Once value */
5967 static val_t once_value_66; /* Once value */
5968 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5969 fra.me.file = LOCATE_syntax___mmbuilder;
5970 fra.me.line = 910;
5971 fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___do_and_check_redef;
5972 fra.me.has_broke = 0;
5973 fra.me.REG_size = 14;
5974 fra.me.REG[0] = NIT_NULL;
5975 fra.me.REG[1] = NIT_NULL;
5976 fra.me.REG[2] = NIT_NULL;
5977 fra.me.REG[3] = NIT_NULL;
5978 fra.me.REG[4] = NIT_NULL;
5979 fra.me.REG[5] = NIT_NULL;
5980 fra.me.REG[6] = NIT_NULL;
5981 fra.me.REG[7] = NIT_NULL;
5982 fra.me.REG[8] = NIT_NULL;
5983 fra.me.REG[9] = NIT_NULL;
5984 fra.me.REG[10] = NIT_NULL;
5985 fra.me.REG[11] = NIT_NULL;
5986 fra.me.REG[12] = NIT_NULL;
5987 fra.me.REG[13] = NIT_NULL;
5988 fra.me.REG[0] = p0;
5989 fra.me.REG[1] = p1;
5990 fra.me.REG[2] = p2;
5991 REGB0 = p3;
5992 REGB1 = p4;
5993 /* ./syntax//mmbuilder.nit:913 */
5994 REGB2 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AConcreteInitPropdef, ID_parser___parser_nodes___AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
5995 /* ./syntax//mmbuilder.nit:914 */
5996 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
5997 /* ./syntax//mmbuilder.nit:916 */
5998 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5999 if (UNTAG_Bool(REGB0)) {
6000 /* ./syntax//mmbuilder.nit:917 */
6001 REGB0 = TAG_Int(5);
6002 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
6003 if (!once_value_1) {
6004 fra.me.REG[5] = BOX_NativeString("Redef error: ");
6005 REGB0 = TAG_Int(13);
6006 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6007 once_value_1 = fra.me.REG[5];
6008 register_static_object(&once_value_1);
6009 } else fra.me.REG[5] = once_value_1;
6010 fra.me.REG[5] = fra.me.REG[5];
6011 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6012 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6013 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
6014 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6015 if (!once_value_2) {
6016 fra.me.REG[5] = BOX_NativeString("::");
6017 REGB0 = TAG_Int(2);
6018 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6019 once_value_2 = fra.me.REG[5];
6020 register_static_object(&once_value_2);
6021 } else fra.me.REG[5] = once_value_2;
6022 fra.me.REG[5] = fra.me.REG[5];
6023 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6024 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6025 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6026 if (!once_value_3) {
6027 fra.me.REG[5] = BOX_NativeString(" is an inherited property. To redefine it, add the redef keyword.");
6028 REGB0 = TAG_Int(65);
6029 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6030 once_value_3 = fra.me.REG[5];
6031 register_static_object(&once_value_3);
6032 } else fra.me.REG[5] = once_value_3;
6033 fra.me.REG[5] = fra.me.REG[5];
6034 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6035 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
6036 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
6037 /* ./syntax//mmbuilder.nit:918 */
6038 goto label4;
6039 }
6040 /* ./syntax//mmbuilder.nit:920 */
6041 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
6042 if (UNTAG_Bool(REGB0)) {
6043 REGB0 = TAG_Bool(!UNTAG_Bool(REGB2));
6044 } else {
6045 REGB3 = TAG_Bool(false);
6046 REGB0 = REGB3;
6047 }
6048 if (UNTAG_Bool(REGB0)) {
6049 /* ./syntax//mmbuilder.nit:921 */
6050 REGB0 = TAG_Int(5);
6051 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
6052 if (!once_value_5) {
6053 fra.me.REG[5] = BOX_NativeString("Redef error: A method ");
6054 REGB0 = TAG_Int(22);
6055 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6056 once_value_5 = fra.me.REG[5];
6057 register_static_object(&once_value_5);
6058 } else fra.me.REG[5] = once_value_5;
6059 fra.me.REG[5] = fra.me.REG[5];
6060 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6061 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6062 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
6063 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6064 if (!once_value_6) {
6065 fra.me.REG[5] = BOX_NativeString("::");
6066 REGB0 = TAG_Int(2);
6067 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6068 once_value_6 = fra.me.REG[5];
6069 register_static_object(&once_value_6);
6070 } else fra.me.REG[5] = once_value_6;
6071 fra.me.REG[5] = fra.me.REG[5];
6072 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6073 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6074 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6075 if (!once_value_7) {
6076 fra.me.REG[5] = BOX_NativeString(" cannot redefine a constructor.");
6077 REGB0 = TAG_Int(31);
6078 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6079 once_value_7 = fra.me.REG[5];
6080 register_static_object(&once_value_7);
6081 } else fra.me.REG[5] = once_value_7;
6082 fra.me.REG[5] = fra.me.REG[5];
6083 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6084 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
6085 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
6086 } else {
6087 /* ./syntax//mmbuilder.nit:922 */
6088 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
6089 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6090 if (UNTAG_Bool(REGB0)) {
6091 } else {
6092 REGB0 = TAG_Bool(false);
6093 REGB2 = REGB0;
6094 }
6095 if (UNTAG_Bool(REGB2)) {
6096 /* ./syntax//mmbuilder.nit:923 */
6097 REGB2 = TAG_Int(5);
6098 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
6099 if (!once_value_8) {
6100 fra.me.REG[5] = BOX_NativeString("Redef error: A constructor ");
6101 REGB2 = TAG_Int(27);
6102 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
6103 once_value_8 = fra.me.REG[5];
6104 register_static_object(&once_value_8);
6105 } else fra.me.REG[5] = once_value_8;
6106 fra.me.REG[5] = fra.me.REG[5];
6107 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6108 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6109 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
6110 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6111 if (!once_value_9) {
6112 fra.me.REG[5] = BOX_NativeString("::");
6113 REGB2 = TAG_Int(2);
6114 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
6115 once_value_9 = fra.me.REG[5];
6116 register_static_object(&once_value_9);
6117 } else fra.me.REG[5] = once_value_9;
6118 fra.me.REG[5] = fra.me.REG[5];
6119 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6120 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6121 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6122 if (!once_value_10) {
6123 fra.me.REG[5] = BOX_NativeString(" cannot redefine a method.");
6124 REGB2 = TAG_Int(26);
6125 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
6126 once_value_10 = fra.me.REG[5];
6127 register_static_object(&once_value_10);
6128 } else fra.me.REG[5] = once_value_10;
6129 fra.me.REG[5] = fra.me.REG[5];
6130 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6131 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
6132 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
6133 }
6134 }
6135 /* ./syntax//mmbuilder.nit:926 */
6136 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
6137 /* ./syntax//mmbuilder.nit:928 */
6138 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[2])(fra.me.REG[2]);
6139 fra.me.REG[5] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[5])(fra.me.REG[5]);
6140 /* ./../lib/standard//collection//array.nit:232 */
6141 REGB2 = TAG_Int(0);
6142 /* ./../lib/standard//collection//array.nit:233 */
6143 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
6144 if (UNTAG_Bool(REGB0)) {
6145 } else {
6146 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 233);
6147 }
6148 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
6149 /* ./../lib/standard//collection//array.nit:234 */
6150 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
6151 /* ./../lib/standard//collection//array.nit:235 */
6152 while(1) {
6153 /* ./../lib/standard//collection//array.nit:23 */
6154 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
6155 if (UNTAG_Bool(REGB0)) {
6156 } else {
6157 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
6158 }
6159 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
6160 REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
6161 if (UNTAG_Bool(REGB3)) {
6162 } else {
6163 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6164 }
6165 /* ./../lib/standard//kernel.nit:215 */
6166 REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
6167 /* ./../lib/standard//collection//array.nit:235 */
6168 if (UNTAG_Bool(REGB0)) {
6169 /* ./../lib/standard//collection//array.nit:236 */
6170 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
6171 if (UNTAG_Bool(REGB0)) {
6172 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 236);
6173 }
6174 /* ./../lib/standard//collection//array.nit:652 */
6175 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB2)];
6176 /* ./syntax//mmbuilder.nit:929 */
6177 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[7])(fra.me.REG[7]);
6178 fra.me.REG[9] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
6179 fra.me.REG[9] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
6180 /* ./syntax//mmbuilder.nit:930 */
6181 fra.me.REG[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[7])(fra.me.REG[7]);
6182 /* ./syntax//mmbuilder.nit:931 */
6183 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6184 if (UNTAG_Bool(REGB0)) {
6185 } else {
6186 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6187 if (UNTAG_Bool(REGB3)) {
6188 REGB3 = TAG_Bool(false);
6189 REGB0 = REGB3;
6190 } else {
6191 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
6192 REGB0 = REGB3;
6193 }
6194 }
6195 if (UNTAG_Bool(REGB0)) {
6196 goto label11;
6197 }
6198 /* ./syntax//mmbuilder.nit:932 */
6199 fra.me.REG[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
6200 fra.me.REG[8] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[8])(fra.me.REG[8]);
6201 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6202 if (UNTAG_Bool(REGB0)) {
6203 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 932);
6204 }
6205 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___adaptation_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
6206 fra.me.REG[7] = fra.me.REG[8];
6207 /* ./syntax//mmbuilder.nit:934 */
6208 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6209 if (UNTAG_Bool(REGB0)) {
6210 } else {
6211 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6212 if (UNTAG_Bool(REGB3)) {
6213 REGB3 = TAG_Bool(false);
6214 REGB0 = REGB3;
6215 } else {
6216 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
6217 REGB0 = REGB3;
6218 }
6219 }
6220 if (UNTAG_Bool(REGB0)) {
6221 /* ./syntax//mmbuilder.nit:936 */
6222 fra.me.REG[8] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6223 fra.me.REG[8] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[8])(fra.me.REG[8]);
6224 /* ./../lib/standard//collection//array.nit:23 */
6225 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6226 if (UNTAG_Bool(REGB0)) {
6227 } else {
6228 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
6229 }
6230 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6231 /* ./syntax//mmbuilder.nit:936 */
6232 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6233 if (UNTAG_Bool(REGB3)) {
6234 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 936);
6235 }
6236 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
6237 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB3));
6238 if (UNTAG_Bool(REGB4)) {
6239 } else {
6240 /* ./../lib/standard//kernel.nit:210 */
6241 REGB3 = TAG_Bool((REGB0)==(REGB3));
6242 /* ./syntax//mmbuilder.nit:936 */
6243 REGB4 = REGB3;
6244 }
6245 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
6246 if (UNTAG_Bool(REGB4)) {
6247 /* ./syntax//mmbuilder.nit:937 */
6248 REGB4 = TAG_Int(11);
6249 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
6250 if (!once_value_12) {
6251 fra.me.REG[10] = BOX_NativeString("Redef error: ");
6252 REGB4 = TAG_Int(13);
6253 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6254 once_value_12 = fra.me.REG[10];
6255 register_static_object(&once_value_12);
6256 } else fra.me.REG[10] = once_value_12;
6257 fra.me.REG[10] = fra.me.REG[10];
6258 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6259 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6260 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6261 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6262 if (!once_value_13) {
6263 fra.me.REG[10] = BOX_NativeString("::");
6264 REGB4 = TAG_Int(2);
6265 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6266 once_value_13 = fra.me.REG[10];
6267 register_static_object(&once_value_13);
6268 } else fra.me.REG[10] = once_value_13;
6269 fra.me.REG[10] = fra.me.REG[10];
6270 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6271 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6272 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6273 if (!once_value_14) {
6274 fra.me.REG[10] = BOX_NativeString(" redefines ");
6275 REGB4 = TAG_Int(11);
6276 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6277 once_value_14 = fra.me.REG[10];
6278 register_static_object(&once_value_14);
6279 } else fra.me.REG[10] = once_value_14;
6280 fra.me.REG[10] = fra.me.REG[10];
6281 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6282 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6283 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6284 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6285 if (!once_value_15) {
6286 fra.me.REG[10] = BOX_NativeString("::");
6287 REGB4 = TAG_Int(2);
6288 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6289 once_value_15 = fra.me.REG[10];
6290 register_static_object(&once_value_15);
6291 } else fra.me.REG[10] = once_value_15;
6292 fra.me.REG[10] = fra.me.REG[10];
6293 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6294 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6295 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6296 if (!once_value_16) {
6297 fra.me.REG[10] = BOX_NativeString(" with ");
6298 REGB4 = TAG_Int(6);
6299 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6300 once_value_16 = fra.me.REG[10];
6301 register_static_object(&once_value_16);
6302 } else fra.me.REG[10] = once_value_16;
6303 fra.me.REG[10] = fra.me.REG[10];
6304 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6305 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6306 if (UNTAG_Bool(REGB4)) {
6307 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 937);
6308 }
6309 REGB4 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
6310 fra.me.REG[10] = CALL_standard___string___Object___to_s(REGB4)(REGB4);
6311 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6312 if (!once_value_17) {
6313 fra.me.REG[10] = BOX_NativeString(" parameter(s).");
6314 REGB4 = TAG_Int(14);
6315 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6316 once_value_17 = fra.me.REG[10];
6317 register_static_object(&once_value_17);
6318 } else fra.me.REG[10] = once_value_17;
6319 fra.me.REG[10] = fra.me.REG[10];
6320 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6321 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
6322 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]);
6323 /* ./syntax//mmbuilder.nit:938 */
6324 goto label4;
6325 }
6326 /* ./syntax//mmbuilder.nit:940 */
6327 fra.me.REG[8] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6328 fra.me.REG[8] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[8])(fra.me.REG[8]);
6329 /* ./../lib/standard//collection//array.nit:23 */
6330 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6331 if (UNTAG_Bool(REGB4)) {
6332 } else {
6333 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
6334 }
6335 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6336 /* ./syntax//mmbuilder.nit:940 */
6337 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6338 if (UNTAG_Bool(REGB3)) {
6339 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 940);
6340 }
6341 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[7])(fra.me.REG[7]);
6342 /* ./../lib/standard//collection//array.nit:23 */
6343 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6344 if (UNTAG_Bool(REGB3)) {
6345 } else {
6346 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
6347 }
6348 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6349 /* ./syntax//mmbuilder.nit:940 */
6350 REGB0 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB3));
6351 if (UNTAG_Bool(REGB0)) {
6352 } else {
6353 /* ./../lib/standard//kernel.nit:210 */
6354 REGB3 = TAG_Bool((REGB4)==(REGB3));
6355 /* ./syntax//mmbuilder.nit:940 */
6356 REGB0 = REGB3;
6357 }
6358 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6359 if (UNTAG_Bool(REGB0)) {
6360 /* ./syntax//mmbuilder.nit:941 */
6361 REGB0 = TAG_Int(11);
6362 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
6363 if (!once_value_18) {
6364 fra.me.REG[10] = BOX_NativeString("Redef error: ");
6365 REGB0 = TAG_Int(13);
6366 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6367 once_value_18 = fra.me.REG[10];
6368 register_static_object(&once_value_18);
6369 } else fra.me.REG[10] = once_value_18;
6370 fra.me.REG[10] = fra.me.REG[10];
6371 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6372 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6373 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6374 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6375 if (!once_value_19) {
6376 fra.me.REG[10] = BOX_NativeString("::");
6377 REGB0 = TAG_Int(2);
6378 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6379 once_value_19 = fra.me.REG[10];
6380 register_static_object(&once_value_19);
6381 } else fra.me.REG[10] = once_value_19;
6382 fra.me.REG[10] = fra.me.REG[10];
6383 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6384 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6385 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6386 if (!once_value_20) {
6387 fra.me.REG[10] = BOX_NativeString(" redefines ");
6388 REGB0 = TAG_Int(11);
6389 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6390 once_value_20 = fra.me.REG[10];
6391 register_static_object(&once_value_20);
6392 } else fra.me.REG[10] = once_value_20;
6393 fra.me.REG[10] = fra.me.REG[10];
6394 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6395 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6396 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6397 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6398 if (!once_value_21) {
6399 fra.me.REG[10] = BOX_NativeString("::");
6400 REGB0 = TAG_Int(2);
6401 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6402 once_value_21 = fra.me.REG[10];
6403 register_static_object(&once_value_21);
6404 } else fra.me.REG[10] = once_value_21;
6405 fra.me.REG[10] = fra.me.REG[10];
6406 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6407 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6408 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6409 if (!once_value_22) {
6410 fra.me.REG[10] = BOX_NativeString(" with ");
6411 REGB0 = TAG_Int(6);
6412 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6413 once_value_22 = fra.me.REG[10];
6414 register_static_object(&once_value_22);
6415 } else fra.me.REG[10] = once_value_22;
6416 fra.me.REG[10] = fra.me.REG[10];
6417 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6418 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6419 if (UNTAG_Bool(REGB0)) {
6420 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 941);
6421 }
6422 REGB0 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
6423 fra.me.REG[10] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
6424 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6425 if (!once_value_23) {
6426 fra.me.REG[10] = BOX_NativeString(" closure(s).");
6427 REGB0 = TAG_Int(12);
6428 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6429 once_value_23 = fra.me.REG[10];
6430 register_static_object(&once_value_23);
6431 } else fra.me.REG[10] = once_value_23;
6432 fra.me.REG[10] = fra.me.REG[10];
6433 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6434 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
6435 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]);
6436 /* ./syntax//mmbuilder.nit:942 */
6437 goto label4;
6438 }
6439 /* ./syntax//mmbuilder.nit:944 */
6440 fra.me.REG[8] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6441 fra.me.REG[8] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[8])(fra.me.REG[8]);
6442 /* ./../lib/standard//collection//array.nit:232 */
6443 REGB0 = TAG_Int(0);
6444 /* ./../lib/standard//collection//array.nit:233 */
6445 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6446 if (UNTAG_Bool(REGB3)) {
6447 } else {
6448 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 233);
6449 }
6450 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6451 /* ./../lib/standard//collection//array.nit:234 */
6452 fra.me.REG[10] = ATTR_standard___collection___array___Array____items(fra.me.REG[8]);
6453 /* ./../lib/standard//collection//array.nit:235 */
6454 while(1) {
6455 /* ./../lib/standard//collection//array.nit:23 */
6456 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6457 if (UNTAG_Bool(REGB3)) {
6458 } else {
6459 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
6460 }
6461 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6462 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
6463 if (UNTAG_Bool(REGB4)) {
6464 } else {
6465 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6466 }
6467 /* ./../lib/standard//kernel.nit:215 */
6468 REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB3));
6469 /* ./../lib/standard//collection//array.nit:235 */
6470 if (UNTAG_Bool(REGB3)) {
6471 /* ./../lib/standard//collection//array.nit:236 */
6472 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6473 if (UNTAG_Bool(REGB3)) {
6474 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 236);
6475 }
6476 /* ./../lib/standard//collection//array.nit:652 */
6477 fra.me.REG[11] = ((Nit_NativeArray)fra.me.REG[10])->val[UNTAG_Int(REGB0)];
6478 /* ./syntax//mmbuilder.nit:945 */
6479 REGB3 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]);
6480 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6481 if (UNTAG_Bool(REGB4)) {
6482 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 945);
6483 }
6484 fra.me.REG[12] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB3);
6485 /* ./syntax//mmbuilder.nit:946 */
6486 CALL_syntax___mmbuilder___AParam___stype__eq(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
6487 /* ./syntax//mmbuilder.nit:947 */
6488 REGB3 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]);
6489 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6490 if (UNTAG_Bool(REGB4)) {
6491 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 947);
6492 }
6493 REGB4 = CALL_metamodel___vararg___MMSignature___vararg_rank(fra.me.REG[7])(fra.me.REG[7]);
6494 REGB5 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB4));
6495 if (UNTAG_Bool(REGB5)) {
6496 } else {
6497 /* ./../lib/standard//kernel.nit:210 */
6498 REGB4 = TAG_Bool((REGB3)==(REGB4));
6499 /* ./syntax//mmbuilder.nit:947 */
6500 REGB5 = REGB4;
6501 }
6502 if (UNTAG_Bool(REGB5)) {
6503 /* ./syntax//mmbuilder.nit:948 */
6504 fra.me.REG[13] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[12]);
6505 fra.me.REG[12] = fra.me.REG[13];
6506 }
6507 /* ./syntax//mmbuilder.nit:950 */
6508 fra.me.REG[11] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[11])(fra.me.REG[11]);
6509 CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
6510 /* ./../lib/standard//collection//array.nit:237 */
6511 REGB5 = TAG_Int(1);
6512 /* ./../lib/standard//kernel.nit:218 */
6513 REGB5 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB5));
6514 /* ./../lib/standard//collection//array.nit:237 */
6515 REGB0 = REGB5;
6516 } else {
6517 /* ./../lib/standard//collection//array.nit:235 */
6518 goto label24;
6519 }
6520 }
6521 label24: while(0);
6522 /* ./syntax//mmbuilder.nit:952 */
6523 fra.me.REG[4] = fra.me.REG[7];
6524 /* ./syntax//mmbuilder.nit:953 */
6525 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
6526 }
6527 /* ./syntax//mmbuilder.nit:957 */
6528 fra.me.REG[10] = CALL_syntax___syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
6529 REGB0 = CALL_mmloader___ToolContext___error_count(fra.me.REG[10])(fra.me.REG[10]);
6530 /* ./syntax//mmbuilder.nit:965 */
6531 REGB5 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6532 if (UNTAG_Bool(REGB5)) {
6533 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 965);
6534 }
6535 REGB5 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
6536 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6537 if (UNTAG_Bool(REGB4)) {
6538 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 965);
6539 }
6540 REGB4 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
6541 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB5,REGB4));
6542 if (UNTAG_Bool(REGB3)) {
6543 } else {
6544 /* ./../lib/standard//kernel.nit:210 */
6545 REGB4 = TAG_Bool((REGB5)==(REGB4));
6546 /* ./syntax//mmbuilder.nit:965 */
6547 REGB3 = REGB4;
6548 }
6549 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
6550 if (UNTAG_Bool(REGB3)) {
6551 /* ./syntax//mmbuilder.nit:966 */
6552 REGB3 = TAG_Int(11);
6553 fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
6554 if (!once_value_25) {
6555 fra.me.REG[8] = BOX_NativeString("Redef error: ");
6556 REGB3 = TAG_Int(13);
6557 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
6558 once_value_25 = fra.me.REG[8];
6559 register_static_object(&once_value_25);
6560 } else fra.me.REG[8] = once_value_25;
6561 fra.me.REG[8] = fra.me.REG[8];
6562 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6563 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6564 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
6565 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6566 if (!once_value_26) {
6567 fra.me.REG[8] = BOX_NativeString("::");
6568 REGB3 = TAG_Int(2);
6569 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
6570 once_value_26 = fra.me.REG[8];
6571 register_static_object(&once_value_26);
6572 } else fra.me.REG[8] = once_value_26;
6573 fra.me.REG[8] = fra.me.REG[8];
6574 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6575 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6576 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6577 if (!once_value_27) {
6578 fra.me.REG[8] = BOX_NativeString(" redefines ");
6579 REGB3 = TAG_Int(11);
6580 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
6581 once_value_27 = fra.me.REG[8];
6582 register_static_object(&once_value_27);
6583 } else fra.me.REG[8] = once_value_27;
6584 fra.me.REG[8] = fra.me.REG[8];
6585 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6586 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6587 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
6588 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6589 if (!once_value_28) {
6590 fra.me.REG[8] = BOX_NativeString("::");
6591 REGB3 = TAG_Int(2);
6592 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
6593 once_value_28 = fra.me.REG[8];
6594 register_static_object(&once_value_28);
6595 } else fra.me.REG[8] = once_value_28;
6596 fra.me.REG[8] = fra.me.REG[8];
6597 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6598 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6599 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6600 if (!once_value_29) {
6601 fra.me.REG[8] = BOX_NativeString(" with ");
6602 REGB3 = TAG_Int(6);
6603 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
6604 once_value_29 = fra.me.REG[8];
6605 register_static_object(&once_value_29);
6606 } else fra.me.REG[8] = once_value_29;
6607 fra.me.REG[8] = fra.me.REG[8];
6608 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6609 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6610 if (UNTAG_Bool(REGB3)) {
6611 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 966);
6612 }
6613 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
6614 fra.me.REG[8] = CALL_standard___string___Object___to_s(REGB3)(REGB3);
6615 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6616 if (!once_value_30) {
6617 fra.me.REG[8] = BOX_NativeString(" parameter(s).");
6618 REGB3 = TAG_Int(14);
6619 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
6620 once_value_30 = fra.me.REG[8];
6621 register_static_object(&once_value_30);
6622 } else fra.me.REG[8] = once_value_30;
6623 fra.me.REG[8] = fra.me.REG[8];
6624 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6625 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6626 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[10]);
6627 } else {
6628 /* ./syntax//mmbuilder.nit:967 */
6629 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6630 if (UNTAG_Bool(REGB3)) {
6631 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 967);
6632 }
6633 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
6634 REGB4 = TAG_Int(0);
6635 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
6636 if (UNTAG_Bool(REGB5)) {
6637 } else {
6638 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6639 }
6640 /* ./../lib/standard//kernel.nit:217 */
6641 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB4));
6642 /* ./syntax//mmbuilder.nit:967 */
6643 if (UNTAG_Bool(REGB4)) {
6644 /* ./syntax//mmbuilder.nit:968 */
6645 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AMethPropdef, ID_parser___parser_nodes___AMethPropdef)) /*cast AMethPropdef*/;
6646 if (UNTAG_Bool(REGB4)) {
6647 /* ./syntax//mmbuilder.nit:970 */
6648 REGB4 = TAG_Int(0);
6649 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6650 if (UNTAG_Bool(REGB3)) {
6651 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 970);
6652 }
6653 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
6654 /* ./../lib/standard//kernel.nit:335 */
6655 while(1) {
6656 REGB5 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
6657 if (UNTAG_Bool(REGB5)) {
6658 } else {
6659 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6660 }
6661 /* ./../lib/standard//kernel.nit:215 */
6662 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB3));
6663 /* ./../lib/standard//kernel.nit:335 */
6664 if (UNTAG_Bool(REGB5)) {
6665 /* ./syntax//mmbuilder.nit:970 */
6666 REGB5 = REGB4;
6667 /* ./syntax//mmbuilder.nit:971 */
6668 REGB6 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6669 if (UNTAG_Bool(REGB6)) {
6670 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 971);
6671 }
6672 fra.me.REG[10] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[4])(fra.me.REG[4], REGB5);
6673 REGB6 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6674 if (UNTAG_Bool(REGB6)) {
6675 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 971);
6676 }
6677 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB5);
6678 REGB6 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[10],fra.me.REG[8]));
6679 if (UNTAG_Bool(REGB6)) {
6680 } else {
6681 REGB7 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6682 REGB6 = REGB7;
6683 }
6684 REGB6 = TAG_Bool(!UNTAG_Bool(REGB6));
6685 if (UNTAG_Bool(REGB6)) {
6686 /* ./syntax//mmbuilder.nit:972 */
6687 fra.me.REG[8] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[0])(fra.me.REG[0]);
6688 REGB6 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
6689 if (UNTAG_Bool(REGB6)) {
6690 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 972);
6691 }
6692 fra.me.REG[8] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[8])(fra.me.REG[8]);
6693 fra.me.REG[8] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[8])(fra.me.REG[8], REGB5);
6694 REGB6 = TAG_Int(7);
6695 fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB6);
6696 if (!once_value_31) {
6697 fra.me.REG[12] = BOX_NativeString("Redef error: Expected ");
6698 REGB6 = TAG_Int(22);
6699 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB6);
6700 once_value_31 = fra.me.REG[12];
6701 register_static_object(&once_value_31);
6702 } else fra.me.REG[12] = once_value_31;
6703 fra.me.REG[12] = fra.me.REG[12];
6704 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6705 REGB6 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6706 if (UNTAG_Bool(REGB6)) {
6707 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 972);
6708 }
6709 fra.me.REG[12] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB5);
6710 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
6711 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6712 if (!once_value_32) {
6713 fra.me.REG[12] = BOX_NativeString(", as in ");
6714 REGB5 = TAG_Int(8);
6715 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB5);
6716 once_value_32 = fra.me.REG[12];
6717 register_static_object(&once_value_32);
6718 } else fra.me.REG[12] = once_value_32;
6719 fra.me.REG[12] = fra.me.REG[12];
6720 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6721 fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6722 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
6723 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6724 if (!once_value_33) {
6725 fra.me.REG[12] = BOX_NativeString("::");
6726 REGB5 = TAG_Int(2);
6727 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB5);
6728 once_value_33 = fra.me.REG[12];
6729 register_static_object(&once_value_33);
6730 } else fra.me.REG[12] = once_value_33;
6731 fra.me.REG[12] = fra.me.REG[12];
6732 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6733 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6734 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6735 if (!once_value_34) {
6736 fra.me.REG[12] = BOX_NativeString(".");
6737 REGB5 = TAG_Int(1);
6738 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB5);
6739 once_value_34 = fra.me.REG[12];
6740 register_static_object(&once_value_34);
6741 } else fra.me.REG[12] = once_value_34;
6742 fra.me.REG[12] = fra.me.REG[12];
6743 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6744 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6745 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8], fra.me.REG[10]);
6746 }
6747 /* ./../lib/standard//kernel.nit:337 */
6748 REGB5 = TAG_Int(1);
6749 /* ./../lib/standard//kernel.nit:218 */
6750 REGB5 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB5));
6751 /* ./../lib/standard//kernel.nit:337 */
6752 REGB4 = REGB5;
6753 } else {
6754 /* ./../lib/standard//kernel.nit:335 */
6755 goto label35;
6756 }
6757 }
6758 label35: while(0);
6759 } else {
6760 /* ./syntax//mmbuilder.nit:975 */
6761 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AAttrPropdef, ID_parser___parser_nodes___AAttrPropdef)) /*cast AAttrPropdef*/;
6762 if (UNTAG_Bool(REGB4)) {
6763 /* ./syntax//mmbuilder.nit:977 */
6764 REGB4 = TAG_Int(0);
6765 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6766 if (UNTAG_Bool(REGB3)) {
6767 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 977);
6768 }
6769 fra.me.REG[10] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[4])(fra.me.REG[4], REGB4);
6770 REGB4 = TAG_Int(0);
6771 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6772 if (UNTAG_Bool(REGB3)) {
6773 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 977);
6774 }
6775 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB4);
6776 REGB4 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[10],fra.me.REG[8]));
6777 if (UNTAG_Bool(REGB4)) {
6778 } else {
6779 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6780 REGB4 = REGB3;
6781 }
6782 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
6783 if (UNTAG_Bool(REGB4)) {
6784 /* ./syntax//mmbuilder.nit:978 */
6785 fra.me.REG[8] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[0])(fra.me.REG[0]);
6786 REGB4 = TAG_Int(7);
6787 fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
6788 if (!once_value_36) {
6789 fra.me.REG[12] = BOX_NativeString("Redef error: Expected ");
6790 REGB4 = TAG_Int(22);
6791 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
6792 once_value_36 = fra.me.REG[12];
6793 register_static_object(&once_value_36);
6794 } else fra.me.REG[12] = once_value_36;
6795 fra.me.REG[12] = fra.me.REG[12];
6796 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6797 REGB4 = TAG_Int(0);
6798 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6799 if (UNTAG_Bool(REGB3)) {
6800 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 978);
6801 }
6802 fra.me.REG[12] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB4);
6803 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
6804 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6805 if (!once_value_37) {
6806 fra.me.REG[12] = BOX_NativeString(", as in the parameter of ");
6807 REGB4 = TAG_Int(25);
6808 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
6809 once_value_37 = fra.me.REG[12];
6810 register_static_object(&once_value_37);
6811 } else fra.me.REG[12] = once_value_37;
6812 fra.me.REG[12] = fra.me.REG[12];
6813 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6814 fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6815 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
6816 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6817 if (!once_value_38) {
6818 fra.me.REG[12] = BOX_NativeString("::");
6819 REGB4 = TAG_Int(2);
6820 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
6821 once_value_38 = fra.me.REG[12];
6822 register_static_object(&once_value_38);
6823 } else fra.me.REG[12] = once_value_38;
6824 fra.me.REG[12] = fra.me.REG[12];
6825 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6826 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6827 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6828 if (!once_value_39) {
6829 fra.me.REG[12] = BOX_NativeString(".");
6830 REGB4 = TAG_Int(1);
6831 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
6832 once_value_39 = fra.me.REG[12];
6833 register_static_object(&once_value_39);
6834 } else fra.me.REG[12] = once_value_39;
6835 fra.me.REG[12] = fra.me.REG[12];
6836 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6837 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6838 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8], fra.me.REG[10]);
6839 }
6840 } else {
6841 /* ./syntax//mmbuilder.nit:982 */
6842 nit_abort("Aborted", NULL, LOCATE_syntax___mmbuilder, 982);
6843 }
6844 }
6845 }
6846 }
6847 /* ./syntax//mmbuilder.nit:986 */
6848 REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6849 if (UNTAG_Bool(REGB4)) {
6850 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 986);
6851 }
6852 fra.me.REG[10] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[4])(fra.me.REG[4]);
6853 /* ./syntax//mmbuilder.nit:987 */
6854 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6855 if (UNTAG_Bool(REGB4)) {
6856 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 987);
6857 }
6858 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[7])(fra.me.REG[7]);
6859 /* ./syntax//mmbuilder.nit:988 */
6860 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6861 if (UNTAG_Bool(REGB4)) {
6862 } else {
6863 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6864 if (UNTAG_Bool(REGB3)) {
6865 REGB3 = TAG_Bool(false);
6866 REGB4 = REGB3;
6867 } else {
6868 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
6869 REGB4 = REGB3;
6870 }
6871 }
6872 if (UNTAG_Bool(REGB4)) {
6873 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
6874 if (UNTAG_Bool(REGB4)) {
6875 } else {
6876 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
6877 if (UNTAG_Bool(REGB3)) {
6878 REGB3 = TAG_Bool(false);
6879 REGB4 = REGB3;
6880 } else {
6881 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
6882 REGB4 = REGB3;
6883 }
6884 }
6885 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
6886 } else {
6887 REGB3 = TAG_Bool(false);
6888 REGB4 = REGB3;
6889 }
6890 if (UNTAG_Bool(REGB4)) {
6891 /* ./syntax//mmbuilder.nit:989 */
6892 REGB4 = TAG_Int(9);
6893 fra.me.REG[12] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
6894 if (!once_value_40) {
6895 fra.me.REG[11] = BOX_NativeString("Redef error: The procedure ");
6896 REGB4 = TAG_Int(27);
6897 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
6898 once_value_40 = fra.me.REG[11];
6899 register_static_object(&once_value_40);
6900 } else fra.me.REG[11] = once_value_40;
6901 fra.me.REG[11] = fra.me.REG[11];
6902 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6903 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6904 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
6905 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6906 if (!once_value_41) {
6907 fra.me.REG[11] = BOX_NativeString("::");
6908 REGB4 = TAG_Int(2);
6909 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
6910 once_value_41 = fra.me.REG[11];
6911 register_static_object(&once_value_41);
6912 } else fra.me.REG[11] = once_value_41;
6913 fra.me.REG[11] = fra.me.REG[11];
6914 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6915 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6916 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6917 if (!once_value_42) {
6918 fra.me.REG[11] = BOX_NativeString(" redefines the function ");
6919 REGB4 = TAG_Int(24);
6920 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
6921 once_value_42 = fra.me.REG[11];
6922 register_static_object(&once_value_42);
6923 } else fra.me.REG[11] = once_value_42;
6924 fra.me.REG[11] = fra.me.REG[11];
6925 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6926 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6927 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
6928 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6929 if (!once_value_43) {
6930 fra.me.REG[11] = BOX_NativeString("::");
6931 REGB4 = TAG_Int(2);
6932 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
6933 once_value_43 = fra.me.REG[11];
6934 register_static_object(&once_value_43);
6935 } else fra.me.REG[11] = once_value_43;
6936 fra.me.REG[11] = fra.me.REG[11];
6937 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6938 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6939 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6940 if (!once_value_44) {
6941 fra.me.REG[11] = BOX_NativeString(".");
6942 REGB4 = TAG_Int(1);
6943 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
6944 once_value_44 = fra.me.REG[11];
6945 register_static_object(&once_value_44);
6946 } else fra.me.REG[11] = once_value_44;
6947 fra.me.REG[11] = fra.me.REG[11];
6948 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6949 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
6950 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[12]);
6951 } else {
6952 /* ./syntax//mmbuilder.nit:990 */
6953 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6954 if (UNTAG_Bool(REGB4)) {
6955 } else {
6956 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6957 if (UNTAG_Bool(REGB3)) {
6958 REGB3 = TAG_Bool(false);
6959 REGB4 = REGB3;
6960 } else {
6961 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
6962 REGB4 = REGB3;
6963 }
6964 }
6965 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
6966 if (UNTAG_Bool(REGB4)) {
6967 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
6968 if (UNTAG_Bool(REGB4)) {
6969 } else {
6970 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
6971 if (UNTAG_Bool(REGB3)) {
6972 REGB3 = TAG_Bool(false);
6973 REGB4 = REGB3;
6974 } else {
6975 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
6976 REGB4 = REGB3;
6977 }
6978 }
6979 } else {
6980 REGB3 = TAG_Bool(false);
6981 REGB4 = REGB3;
6982 }
6983 if (UNTAG_Bool(REGB4)) {
6984 /* ./syntax//mmbuilder.nit:991 */
6985 REGB4 = TAG_Int(9);
6986 fra.me.REG[12] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
6987 if (!once_value_45) {
6988 fra.me.REG[11] = BOX_NativeString("Redef error: The function ");
6989 REGB4 = TAG_Int(26);
6990 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
6991 once_value_45 = fra.me.REG[11];
6992 register_static_object(&once_value_45);
6993 } else fra.me.REG[11] = once_value_45;
6994 fra.me.REG[11] = fra.me.REG[11];
6995 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6996 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6997 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
6998 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6999 if (!once_value_46) {
7000 fra.me.REG[11] = BOX_NativeString("::");
7001 REGB4 = TAG_Int(2);
7002 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
7003 once_value_46 = fra.me.REG[11];
7004 register_static_object(&once_value_46);
7005 } else fra.me.REG[11] = once_value_46;
7006 fra.me.REG[11] = fra.me.REG[11];
7007 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7008 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
7009 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7010 if (!once_value_47) {
7011 fra.me.REG[11] = BOX_NativeString(" redefines the procedure ");
7012 REGB4 = TAG_Int(25);
7013 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
7014 once_value_47 = fra.me.REG[11];
7015 register_static_object(&once_value_47);
7016 } else fra.me.REG[11] = once_value_47;
7017 fra.me.REG[11] = fra.me.REG[11];
7018 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7019 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7020 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7021 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7022 if (!once_value_48) {
7023 fra.me.REG[11] = BOX_NativeString("::");
7024 REGB4 = TAG_Int(2);
7025 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
7026 once_value_48 = fra.me.REG[11];
7027 register_static_object(&once_value_48);
7028 } else fra.me.REG[11] = once_value_48;
7029 fra.me.REG[11] = fra.me.REG[11];
7030 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7031 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7032 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7033 if (!once_value_49) {
7034 fra.me.REG[11] = BOX_NativeString(".");
7035 REGB4 = TAG_Int(1);
7036 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
7037 once_value_49 = fra.me.REG[11];
7038 register_static_object(&once_value_49);
7039 } else fra.me.REG[11] = once_value_49;
7040 fra.me.REG[11] = fra.me.REG[11];
7041 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7042 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7043 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[12]);
7044 } else {
7045 /* ./syntax//mmbuilder.nit:992 */
7046 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7047 if (UNTAG_Bool(REGB4)) {
7048 } else {
7049 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7050 if (UNTAG_Bool(REGB3)) {
7051 REGB3 = TAG_Bool(false);
7052 REGB4 = REGB3;
7053 } else {
7054 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
7055 REGB4 = REGB3;
7056 }
7057 }
7058 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7059 if (UNTAG_Bool(REGB4)) {
7060 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7061 if (UNTAG_Bool(REGB4)) {
7062 } else {
7063 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7064 if (UNTAG_Bool(REGB3)) {
7065 REGB3 = TAG_Bool(false);
7066 REGB4 = REGB3;
7067 } else {
7068 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
7069 REGB4 = REGB3;
7070 }
7071 }
7072 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7073 } else {
7074 REGB3 = TAG_Bool(false);
7075 REGB4 = REGB3;
7076 }
7077 if (UNTAG_Bool(REGB4)) {
7078 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7079 if (UNTAG_Bool(REGB4)) {
7080 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 992);
7081 }
7082 REGB4 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7083 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7084 } else {
7085 REGB3 = TAG_Bool(false);
7086 REGB4 = REGB3;
7087 }
7088 if (UNTAG_Bool(REGB4)) {
7089 /* ./syntax//mmbuilder.nit:993 */
7090 fra.me.REG[12] = NIT_NULL;
7091 /* ./syntax//mmbuilder.nit:994 */
7092 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AMethPropdef, ID_parser___parser_nodes___AMethPropdef)) /*cast AMethPropdef*/;
7093 if (UNTAG_Bool(REGB4)) {
7094 /* ./syntax//mmbuilder.nit:995 */
7095 fra.me.REG[11] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[0])(fra.me.REG[0]);
7096 REGB4 = TAG_Bool(fra.me.REG[11]==NIT_NULL);
7097 if (UNTAG_Bool(REGB4)) {
7098 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 995);
7099 }
7100 fra.me.REG[11] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[11])(fra.me.REG[11]);
7101 fra.me.REG[12] = fra.me.REG[11];
7102 } else {
7103 /* ./syntax//mmbuilder.nit:996 */
7104 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AAttrPropdef, ID_parser___parser_nodes___AAttrPropdef)) /*cast AAttrPropdef*/;
7105 if (UNTAG_Bool(REGB4)) {
7106 /* ./syntax//mmbuilder.nit:997 */
7107 fra.me.REG[11] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[0])(fra.me.REG[0]);
7108 fra.me.REG[12] = fra.me.REG[11];
7109 } else {
7110 /* ./syntax//mmbuilder.nit:998 */
7111 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___ATypePropdef, ID_parser___parser_nodes___ATypePropdef)) /*cast ATypePropdef*/;
7112 if (UNTAG_Bool(REGB4)) {
7113 /* ./syntax//mmbuilder.nit:999 */
7114 fra.me.REG[11] = CALL_parser___parser_nodes___ATypePropdef___n_type(fra.me.REG[0])(fra.me.REG[0]);
7115 fra.me.REG[12] = fra.me.REG[11];
7116 }
7117 }
7118 }
7119 /* ./syntax//mmbuilder.nit:1001 */
7120 REGB4 = TAG_Int(7);
7121 fra.me.REG[11] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
7122 if (!once_value_50) {
7123 fra.me.REG[13] = BOX_NativeString("Redef error: Expected ");
7124 REGB4 = TAG_Int(22);
7125 fra.me.REG[13] = NEW_String_standard___string___String___with_native(fra.me.REG[13], REGB4);
7126 once_value_50 = fra.me.REG[13];
7127 register_static_object(&once_value_50);
7128 } else fra.me.REG[13] = once_value_50;
7129 fra.me.REG[13] = fra.me.REG[13];
7130 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[13]);
7131 fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
7132 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[13]);
7133 if (!once_value_51) {
7134 fra.me.REG[13] = BOX_NativeString(", as in ");
7135 REGB4 = TAG_Int(8);
7136 fra.me.REG[13] = NEW_String_standard___string___String___with_native(fra.me.REG[13], REGB4);
7137 once_value_51 = fra.me.REG[13];
7138 register_static_object(&once_value_51);
7139 } else fra.me.REG[13] = once_value_51;
7140 fra.me.REG[13] = fra.me.REG[13];
7141 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[13]);
7142 fra.me.REG[13] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7143 fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[13])(fra.me.REG[13]);
7144 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[13]);
7145 if (!once_value_52) {
7146 fra.me.REG[13] = BOX_NativeString("::");
7147 REGB4 = TAG_Int(2);
7148 fra.me.REG[13] = NEW_String_standard___string___String___with_native(fra.me.REG[13], REGB4);
7149 once_value_52 = fra.me.REG[13];
7150 register_static_object(&once_value_52);
7151 } else fra.me.REG[13] = once_value_52;
7152 fra.me.REG[13] = fra.me.REG[13];
7153 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[13]);
7154 fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7155 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[13]);
7156 if (!once_value_53) {
7157 fra.me.REG[13] = BOX_NativeString(".");
7158 REGB4 = TAG_Int(1);
7159 fra.me.REG[13] = NEW_String_standard___string___String___with_native(fra.me.REG[13], REGB4);
7160 once_value_53 = fra.me.REG[13];
7161 register_static_object(&once_value_53);
7162 } else fra.me.REG[13] = once_value_53;
7163 fra.me.REG[13] = fra.me.REG[13];
7164 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[13]);
7165 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7166 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[12], fra.me.REG[11]);
7167 } else {
7168 /* ./syntax//mmbuilder.nit:1002 */
7169 REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7170 if (UNTAG_Bool(REGB4)) {
7171 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1002);
7172 }
7173 REGB4 = CALL_metamodel___static_type___MMSignature_____l(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
7174 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7175 if (UNTAG_Bool(REGB4)) {
7176 fra.me.REG[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
7177 REGB4 = CALL_mmloader___ToolContext___error_count(fra.me.REG[7])(fra.me.REG[7]);
7178 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB4));
7179 if (UNTAG_Bool(REGB3)) {
7180 } else {
7181 /* ./../lib/standard//kernel.nit:210 */
7182 REGB4 = TAG_Bool((REGB0)==(REGB4));
7183 /* ./syntax//mmbuilder.nit:1002 */
7184 REGB3 = REGB4;
7185 }
7186 } else {
7187 REGB4 = TAG_Bool(false);
7188 REGB3 = REGB4;
7189 }
7190 if (UNTAG_Bool(REGB3)) {
7191 /* ./syntax//mmbuilder.nit:1004 */
7192 REGB3 = TAG_Int(9);
7193 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
7194 if (!once_value_54) {
7195 fra.me.REG[11] = BOX_NativeString("Redef error: Incompatible redefinition of ");
7196 REGB3 = TAG_Int(42);
7197 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB3);
7198 once_value_54 = fra.me.REG[11];
7199 register_static_object(&once_value_54);
7200 } else fra.me.REG[11] = once_value_54;
7201 fra.me.REG[11] = fra.me.REG[11];
7202 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7203 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7204 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7205 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7206 if (!once_value_55) {
7207 fra.me.REG[11] = BOX_NativeString("::");
7208 REGB3 = TAG_Int(2);
7209 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB3);
7210 once_value_55 = fra.me.REG[11];
7211 register_static_object(&once_value_55);
7212 } else fra.me.REG[11] = once_value_55;
7213 fra.me.REG[11] = fra.me.REG[11];
7214 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7215 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7216 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7217 if (!once_value_56) {
7218 fra.me.REG[11] = BOX_NativeString(" with ");
7219 REGB3 = TAG_Int(6);
7220 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB3);
7221 once_value_56 = fra.me.REG[11];
7222 register_static_object(&once_value_56);
7223 } else fra.me.REG[11] = once_value_56;
7224 fra.me.REG[11] = fra.me.REG[11];
7225 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7226 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
7227 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7228 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7229 if (!once_value_57) {
7230 fra.me.REG[11] = BOX_NativeString("::");
7231 REGB3 = TAG_Int(2);
7232 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB3);
7233 once_value_57 = fra.me.REG[11];
7234 register_static_object(&once_value_57);
7235 } else fra.me.REG[11] = once_value_57;
7236 fra.me.REG[11] = fra.me.REG[11];
7237 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7238 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
7239 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7240 if (!once_value_58) {
7241 fra.me.REG[11] = BOX_NativeString("");
7242 REGB3 = TAG_Int(0);
7243 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB3);
7244 once_value_58 = fra.me.REG[11];
7245 register_static_object(&once_value_58);
7246 } else fra.me.REG[11] = once_value_58;
7247 fra.me.REG[11] = fra.me.REG[11];
7248 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7249 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
7250 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[7]);
7251 } else {
7252 /* ./syntax//mmbuilder.nit:1005 */
7253 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7254 if (UNTAG_Bool(REGB3)) {
7255 } else {
7256 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7257 if (UNTAG_Bool(REGB4)) {
7258 REGB4 = TAG_Bool(false);
7259 REGB3 = REGB4;
7260 } else {
7261 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
7262 REGB3 = REGB4;
7263 }
7264 }
7265 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7266 if (UNTAG_Bool(REGB3)) {
7267 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7268 if (UNTAG_Bool(REGB3)) {
7269 } else {
7270 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7271 if (UNTAG_Bool(REGB4)) {
7272 REGB4 = TAG_Bool(false);
7273 REGB3 = REGB4;
7274 } else {
7275 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
7276 REGB3 = REGB4;
7277 }
7278 }
7279 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7280 } else {
7281 REGB4 = TAG_Bool(false);
7282 REGB3 = REGB4;
7283 }
7284 if (UNTAG_Bool(REGB3)) {
7285 REGB3 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[10],fra.me.REG[8]));
7286 if (UNTAG_Bool(REGB3)) {
7287 } else {
7288 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7289 if (UNTAG_Bool(REGB4)) {
7290 REGB4 = TAG_Bool(false);
7291 REGB3 = REGB4;
7292 } else {
7293 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7294 REGB3 = REGB4;
7295 }
7296 }
7297 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7298 } else {
7299 REGB4 = TAG_Bool(false);
7300 REGB3 = REGB4;
7301 }
7302 if (UNTAG_Bool(REGB3)) {
7303 REGB3 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_metamodel___abstractmetamodel___MMAttribute, ID_metamodel___abstractmetamodel___MMAttribute)) /*cast MMAttribute*/;
7304 } else {
7305 REGB4 = TAG_Bool(false);
7306 REGB3 = REGB4;
7307 }
7308 if (UNTAG_Bool(REGB3)) {
7309 /* ./syntax//mmbuilder.nit:1007 */
7310 REGB3 = TAG_Int(7);
7311 fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
7312 if (!once_value_59) {
7313 fra.me.REG[7] = BOX_NativeString("Redef warning: Expected ");
7314 REGB3 = TAG_Int(24);
7315 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB3);
7316 once_value_59 = fra.me.REG[7];
7317 register_static_object(&once_value_59);
7318 } else fra.me.REG[7] = once_value_59;
7319 fra.me.REG[7] = fra.me.REG[7];
7320 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
7321 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
7322 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7323 if (!once_value_60) {
7324 fra.me.REG[8] = BOX_NativeString(", as in ");
7325 REGB3 = TAG_Int(8);
7326 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
7327 once_value_60 = fra.me.REG[8];
7328 register_static_object(&once_value_60);
7329 } else fra.me.REG[8] = once_value_60;
7330 fra.me.REG[8] = fra.me.REG[8];
7331 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7332 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7333 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
7334 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7335 if (!once_value_61) {
7336 fra.me.REG[8] = BOX_NativeString("::");
7337 REGB3 = TAG_Int(2);
7338 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
7339 once_value_61 = fra.me.REG[8];
7340 register_static_object(&once_value_61);
7341 } else fra.me.REG[8] = once_value_61;
7342 fra.me.REG[8] = fra.me.REG[8];
7343 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7344 fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7345 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[9]);
7346 if (!once_value_62) {
7347 fra.me.REG[9] = BOX_NativeString(".");
7348 REGB3 = TAG_Int(1);
7349 fra.me.REG[9] = NEW_String_standard___string___String___with_native(fra.me.REG[9], REGB3);
7350 once_value_62 = fra.me.REG[9];
7351 register_static_object(&once_value_62);
7352 } else fra.me.REG[9] = once_value_62;
7353 fra.me.REG[9] = fra.me.REG[9];
7354 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[9]);
7355 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
7356 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[10]);
7357 }
7358 }
7359 }
7360 }
7361 }
7362 /* ./../lib/standard//collection//array.nit:237 */
7363 REGB3 = TAG_Int(1);
7364 /* ./../lib/standard//kernel.nit:218 */
7365 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
7366 /* ./../lib/standard//collection//array.nit:237 */
7367 REGB2 = REGB3;
7368 } else {
7369 /* ./../lib/standard//collection//array.nit:235 */
7370 goto label63;
7371 }
7372 }
7373 label63: while(0);
7374 label11: while(0);
7375 /* ./syntax//mmbuilder.nit:1011 */
7376 REGB2 = TAG_Int(1);
7377 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
7378 if (UNTAG_Bool(REGB3)) {
7379 } else {
7380 /* ./../lib/standard//kernel.nit:210 */
7381 REGB2 = TAG_Bool((REGB1)==(REGB2));
7382 /* ./syntax//mmbuilder.nit:1011 */
7383 REGB3 = REGB2;
7384 }
7385 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7386 if (UNTAG_Bool(REGB3)) {
7387 REGB3 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
7388 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB1));
7389 if (UNTAG_Bool(REGB2)) {
7390 } else {
7391 /* ./../lib/standard//kernel.nit:210 */
7392 REGB1 = TAG_Bool((REGB3)==(REGB1));
7393 /* ./syntax//mmbuilder.nit:1011 */
7394 REGB2 = REGB1;
7395 }
7396 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
7397 } else {
7398 REGB1 = TAG_Bool(false);
7399 REGB2 = REGB1;
7400 }
7401 if (UNTAG_Bool(REGB2)) {
7402 /* ./syntax//mmbuilder.nit:1012 */
7403 REGB2 = TAG_Int(5);
7404 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
7405 if (!once_value_64) {
7406 fra.me.REG[6] = BOX_NativeString("Redef error: ");
7407 REGB2 = TAG_Int(13);
7408 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
7409 once_value_64 = fra.me.REG[6];
7410 register_static_object(&once_value_64);
7411 } else fra.me.REG[6] = once_value_64;
7412 fra.me.REG[6] = fra.me.REG[6];
7413 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
7414 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
7415 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7416 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
7417 if (!once_value_65) {
7418 fra.me.REG[6] = BOX_NativeString("::");
7419 REGB2 = TAG_Int(2);
7420 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
7421 once_value_65 = fra.me.REG[6];
7422 register_static_object(&once_value_65);
7423 } else fra.me.REG[6] = once_value_65;
7424 fra.me.REG[6] = fra.me.REG[6];
7425 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
7426 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
7427 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
7428 if (!once_value_66) {
7429 fra.me.REG[2] = BOX_NativeString(" redefinition cannot change visibility.");
7430 REGB2 = TAG_Int(39);
7431 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB2);
7432 once_value_66 = fra.me.REG[2];
7433 register_static_object(&once_value_66);
7434 } else fra.me.REG[2] = once_value_66;
7435 fra.me.REG[2] = fra.me.REG[2];
7436 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
7437 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
7438 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
7439 }
7440 /* ./syntax//mmbuilder.nit:1014 */
7441 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
7442 REGB2 = TAG_Bool(true);
7443 CALL_syntax___syntax_base___MMGlobalProperty___check_visibility(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[0], fra.me.REG[4], REGB2);
7444 label4: while(0);
7445 stack_frame_head = fra.me.prev;
7446 return;
7447 }
7448 val_t syntax___mmbuilder___AAttrPropdef___readmethod(val_t p0){
7449 struct {struct stack_frame_t me;} fra;
7450 val_t tmp;
7451 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7452 fra.me.file = LOCATE_syntax___mmbuilder;
7453 fra.me.line = 1019;
7454 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___readmethod;
7455 fra.me.has_broke = 0;
7456 fra.me.REG_size = 1;
7457 fra.me.REG[0] = NIT_NULL;
7458 fra.me.REG[0] = p0;
7459 /* ./syntax//mmbuilder.nit:1019 */
7460 fra.me.REG[0] = ATTR_syntax___mmbuilder___AAttrPropdef____readmethod(fra.me.REG[0]);
7461 stack_frame_head = fra.me.prev;
7462 return fra.me.REG[0];
7463 }
7464 val_t syntax___mmbuilder___AAttrPropdef___writemethod(val_t p0){
7465 struct {struct stack_frame_t me;} fra;
7466 val_t tmp;
7467 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7468 fra.me.file = LOCATE_syntax___mmbuilder;
7469 fra.me.line = 1020;
7470 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___writemethod;
7471 fra.me.has_broke = 0;
7472 fra.me.REG_size = 1;
7473 fra.me.REG[0] = NIT_NULL;
7474 fra.me.REG[0] = p0;
7475 /* ./syntax//mmbuilder.nit:1020 */
7476 fra.me.REG[0] = ATTR_syntax___mmbuilder___AAttrPropdef____writemethod(fra.me.REG[0]);
7477 stack_frame_head = fra.me.prev;
7478 return fra.me.REG[0];
7479 }
7480 val_t syntax___mmbuilder___AAttrPropdef___prop(val_t p0){
7481 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
7482 val_t REGB0;
7483 val_t tmp;
7484 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7485 fra.me.file = LOCATE_syntax___mmbuilder;
7486 fra.me.line = 1022;
7487 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___prop;
7488 fra.me.has_broke = 0;
7489 fra.me.REG_size = 2;
7490 fra.me.REG[0] = NIT_NULL;
7491 fra.me.REG[1] = NIT_NULL;
7492 fra.me.REG[0] = p0;
7493 /* ./syntax//mmbuilder.nit:1022 */
7494 fra.me.REG[1] = fra.me.REG[0];
7495 fra.me.REG[1] = ATTR_syntax___mmbuilder___AAttrPropdef____prop(fra.me.REG[1]);
7496 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
7497 if (UNTAG_Bool(REGB0)) {
7498 } else {
7499 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1022);
7500 }
7501 goto label1;
7502 label1: while(0);
7503 stack_frame_head = fra.me.prev;
7504 return fra.me.REG[1];
7505 }
7506 void syntax___mmbuilder___AAttrPropdef___accept_property_builder(val_t p0, val_t p1){
7507 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
7508 val_t REGB0;
7509 val_t REGB1;
7510 val_t REGB2;
7511 val_t tmp;
7512 static val_t once_value_1; /* Once value */
7513 static val_t once_value_2; /* Once value */
7514 static val_t once_value_3; /* Once value */
7515 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7516 fra.me.file = LOCATE_syntax___mmbuilder;
7517 fra.me.line = 1024;
7518 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___accept_property_builder;
7519 fra.me.has_broke = 0;
7520 fra.me.REG_size = 6;
7521 fra.me.REG[0] = NIT_NULL;
7522 fra.me.REG[1] = NIT_NULL;
7523 fra.me.REG[2] = NIT_NULL;
7524 fra.me.REG[3] = NIT_NULL;
7525 fra.me.REG[4] = NIT_NULL;
7526 fra.me.REG[5] = NIT_NULL;
7527 fra.me.REG[0] = p0;
7528 fra.me.REG[1] = p1;
7529 /* ./syntax//mmbuilder.nit:1024 */
7530 fra.me.REG[2] = fra.me.REG[0];
7531 fra.me.REG[3] = fra.me.REG[1];
7532 /* ./syntax//mmbuilder.nit:1026 */
7533 CALL_SUPER_syntax___mmbuilder___AAttrPropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
7534 /* ./syntax//mmbuilder.nit:1028 */
7535 fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7536 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7537 if (UNTAG_Bool(REGB0)) {
7538 } else {
7539 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7540 if (UNTAG_Bool(REGB1)) {
7541 REGB1 = TAG_Bool(false);
7542 REGB0 = REGB1;
7543 } else {
7544 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7545 REGB0 = REGB1;
7546 }
7547 }
7548 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7549 if (UNTAG_Bool(REGB0)) {
7550 /* ./syntax//mmbuilder.nit:1029 */
7551 fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7552 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7553 if (UNTAG_Bool(REGB0)) {
7554 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1029);
7555 }
7556 fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
7557 } else {
7558 /* ./syntax//mmbuilder.nit:1031 */
7559 if (!once_value_1) {
7560 fra.me.REG[0] = BOX_NativeString("@");
7561 REGB0 = TAG_Int(1);
7562 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
7563 once_value_1 = fra.me.REG[0];
7564 register_static_object(&once_value_1);
7565 } else fra.me.REG[0] = once_value_1;
7566 fra.me.REG[0] = fra.me.REG[0];
7567 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
7568 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7569 if (UNTAG_Bool(REGB0)) {
7570 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1031);
7571 }
7572 fra.me.REG[4] = CALL_parser___lexer___Token___text(fra.me.REG[4])(fra.me.REG[4]);
7573 fra.me.REG[4] = CALL_standard___string___String_____plus(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
7574 fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
7575 fra.me.REG[1] = fra.me.REG[4];
7576 }
7577 /* ./syntax//mmbuilder.nit:1033 */
7578 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
7579 /* ./syntax//mmbuilder.nit:1034 */
7580 fra.me.REG[0] = NEW_MMSrcAttribute_syntax___syntax_base___MMSrcAttribute___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
7581 /* ./syntax//mmbuilder.nit:1035 */
7582 ATTR_syntax___mmbuilder___AAttrPropdef____prop(fra.me.REG[2]) = fra.me.REG[0];
7583 /* ./syntax//mmbuilder.nit:1036 */
7584 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
7585 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[0]);
7586 /* ./syntax//mmbuilder.nit:1038 */
7587 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
7588 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7589 if (UNTAG_Bool(REGB0)) {
7590 } else {
7591 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7592 if (UNTAG_Bool(REGB1)) {
7593 REGB1 = TAG_Bool(false);
7594 REGB0 = REGB1;
7595 } else {
7596 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7597 REGB0 = REGB1;
7598 }
7599 }
7600 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7601 if (UNTAG_Bool(REGB0)) {
7602 REGB0 = TAG_Bool(true);
7603 } else {
7604 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7605 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7606 if (UNTAG_Bool(REGB1)) {
7607 } else {
7608 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7609 if (UNTAG_Bool(REGB2)) {
7610 REGB2 = TAG_Bool(false);
7611 REGB1 = REGB2;
7612 } else {
7613 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7614 REGB1 = REGB2;
7615 }
7616 }
7617 REGB0 = REGB1;
7618 }
7619 if (UNTAG_Bool(REGB0)) {
7620 /* ./syntax//mmbuilder.nit:1039 */
7621 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7622 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7623 if (UNTAG_Bool(REGB0)) {
7624 } else {
7625 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7626 if (UNTAG_Bool(REGB1)) {
7627 REGB1 = TAG_Bool(false);
7628 REGB0 = REGB1;
7629 } else {
7630 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7631 REGB0 = REGB1;
7632 }
7633 }
7634 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7635 if (UNTAG_Bool(REGB0)) {
7636 /* ./syntax//mmbuilder.nit:1040 */
7637 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7638 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7639 if (UNTAG_Bool(REGB0)) {
7640 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1040);
7641 }
7642 fra.me.REG[0] = CALL_parser___lexer___Token___text(fra.me.REG[0])(fra.me.REG[0]);
7643 REGB0 = TAG_Int(1);
7644 fra.me.REG[0] = CALL_standard___string___AbstractString___substring_from(fra.me.REG[0])(fra.me.REG[0], REGB0);
7645 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
7646 fra.me.REG[1] = fra.me.REG[0];
7647 } else {
7648 /* ./syntax//mmbuilder.nit:1042 */
7649 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
7650 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7651 if (UNTAG_Bool(REGB0)) {
7652 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1042);
7653 }
7654 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
7655 fra.me.REG[1] = fra.me.REG[0];
7656 }
7657 /* ./syntax//mmbuilder.nit:1044 */
7658 fra.me.REG[0] = NEW_MMReadImplementationMethod_syntax___syntax_base___MMReadImplementationMethod___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
7659 /* ./syntax//mmbuilder.nit:1045 */
7660 ATTR_syntax___mmbuilder___AAttrPropdef____readmethod(fra.me.REG[2]) = fra.me.REG[0];
7661 /* ./syntax//mmbuilder.nit:1046 */
7662 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
7663 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[0]);
7664 }
7665 /* ./syntax//mmbuilder.nit:1048 */
7666 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
7667 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7668 if (UNTAG_Bool(REGB0)) {
7669 } else {
7670 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7671 if (UNTAG_Bool(REGB1)) {
7672 REGB1 = TAG_Bool(false);
7673 REGB0 = REGB1;
7674 } else {
7675 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7676 REGB0 = REGB1;
7677 }
7678 }
7679 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7680 if (UNTAG_Bool(REGB0)) {
7681 REGB0 = TAG_Bool(true);
7682 } else {
7683 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7684 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7685 if (UNTAG_Bool(REGB1)) {
7686 } else {
7687 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7688 if (UNTAG_Bool(REGB2)) {
7689 REGB2 = TAG_Bool(false);
7690 REGB1 = REGB2;
7691 } else {
7692 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7693 REGB1 = REGB2;
7694 }
7695 }
7696 REGB0 = REGB1;
7697 }
7698 if (UNTAG_Bool(REGB0)) {
7699 /* ./syntax//mmbuilder.nit:1049 */
7700 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7701 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7702 if (UNTAG_Bool(REGB0)) {
7703 } else {
7704 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7705 if (UNTAG_Bool(REGB1)) {
7706 REGB1 = TAG_Bool(false);
7707 REGB0 = REGB1;
7708 } else {
7709 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7710 REGB0 = REGB1;
7711 }
7712 }
7713 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7714 if (UNTAG_Bool(REGB0)) {
7715 /* ./syntax//mmbuilder.nit:1050 */
7716 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7717 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7718 if (UNTAG_Bool(REGB0)) {
7719 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1050);
7720 }
7721 fra.me.REG[0] = CALL_parser___lexer___Token___text(fra.me.REG[0])(fra.me.REG[0]);
7722 REGB0 = TAG_Int(1);
7723 fra.me.REG[0] = CALL_standard___string___AbstractString___substring_from(fra.me.REG[0])(fra.me.REG[0], REGB0);
7724 if (!once_value_2) {
7725 fra.me.REG[5] = BOX_NativeString("=");
7726 REGB0 = TAG_Int(1);
7727 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
7728 once_value_2 = fra.me.REG[5];
7729 register_static_object(&once_value_2);
7730 } else fra.me.REG[5] = once_value_2;
7731 fra.me.REG[5] = fra.me.REG[5];
7732 fra.me.REG[5] = CALL_standard___string___String_____plus(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
7733 fra.me.REG[5] = CALL_standard___symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
7734 fra.me.REG[1] = fra.me.REG[5];
7735 } else {
7736 /* ./syntax//mmbuilder.nit:1052 */
7737 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
7738 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7739 if (UNTAG_Bool(REGB0)) {
7740 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1052);
7741 }
7742 fra.me.REG[5] = CALL_parser___lexer___Token___text(fra.me.REG[5])(fra.me.REG[5]);
7743 if (!once_value_3) {
7744 fra.me.REG[0] = BOX_NativeString("=");
7745 REGB0 = TAG_Int(1);
7746 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
7747 once_value_3 = fra.me.REG[0];
7748 register_static_object(&once_value_3);
7749 } else fra.me.REG[0] = once_value_3;
7750 fra.me.REG[0] = fra.me.REG[0];
7751 fra.me.REG[0] = CALL_standard___string___String_____plus(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
7752 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
7753 fra.me.REG[1] = fra.me.REG[0];
7754 }
7755 /* ./syntax//mmbuilder.nit:1054 */
7756 fra.me.REG[4] = NEW_MMWriteImplementationMethod_syntax___syntax_base___MMWriteImplementationMethod___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
7757 /* ./syntax//mmbuilder.nit:1055 */
7758 ATTR_syntax___mmbuilder___AAttrPropdef____writemethod(fra.me.REG[2]) = fra.me.REG[4];
7759 /* ./syntax//mmbuilder.nit:1056 */
7760 fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
7761 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
7762 }
7763 stack_frame_head = fra.me.prev;
7764 return;
7765 }
7766 void syntax___mmbuilder___AAttrPropdef___accept_property_verifier(val_t p0, val_t p1){
7767 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
7768 val_t REGB0;
7769 val_t REGB1;
7770 val_t REGB2;
7771 val_t REGB3;
7772 val_t tmp;
7773 static val_t once_value_2; /* Once value */
7774 static val_t once_value_3; /* Once value */
7775 static val_t once_value_4; /* Once value */
7776 static val_t once_value_5; /* Once value */
7777 static val_t once_value_6; /* Once value */
7778 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7779 fra.me.file = LOCATE_syntax___mmbuilder;
7780 fra.me.line = 1060;
7781 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___accept_property_verifier;
7782 fra.me.has_broke = 0;
7783 fra.me.REG_size = 7;
7784 fra.me.REG[0] = NIT_NULL;
7785 fra.me.REG[1] = NIT_NULL;
7786 fra.me.REG[2] = NIT_NULL;
7787 fra.me.REG[3] = NIT_NULL;
7788 fra.me.REG[4] = NIT_NULL;
7789 fra.me.REG[5] = NIT_NULL;
7790 fra.me.REG[6] = NIT_NULL;
7791 fra.me.REG[0] = p0;
7792 fra.me.REG[1] = p1;
7793 /* ./syntax//mmbuilder.nit:1060 */
7794 fra.me.REG[2] = fra.me.REG[0];
7795 fra.me.REG[3] = fra.me.REG[1];
7796 /* ./syntax//mmbuilder.nit:1062 */
7797 CALL_SUPER_syntax___mmbuilder___AAttrPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
7798 /* ./syntax//mmbuilder.nit:1064 */
7799 fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
7800 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7801 if (UNTAG_Bool(REGB0)) {
7802 } else {
7803 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7804 if (UNTAG_Bool(REGB1)) {
7805 REGB1 = TAG_Bool(false);
7806 REGB0 = REGB1;
7807 } else {
7808 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7809 REGB0 = REGB1;
7810 }
7811 }
7812 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7813 if (UNTAG_Bool(REGB0)) {
7814 /* ./syntax//mmbuilder.nit:1065 */
7815 fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
7816 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7817 if (UNTAG_Bool(REGB0)) {
7818 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1065);
7819 }
7820 fra.me.REG[1] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7821 /* ./syntax//mmbuilder.nit:1066 */
7822 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7823 if (UNTAG_Bool(REGB0)) {
7824 } else {
7825 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7826 if (UNTAG_Bool(REGB1)) {
7827 REGB1 = TAG_Bool(false);
7828 REGB0 = REGB1;
7829 } else {
7830 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7831 REGB0 = REGB1;
7832 }
7833 }
7834 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7835 if (UNTAG_Bool(REGB0)) {
7836 } else {
7837 goto label1;
7838 }
7839 } else {
7840 /* ./syntax//mmbuilder.nit:1068 */
7841 REGB0 = TAG_Int(5);
7842 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
7843 if (!once_value_2) {
7844 fra.me.REG[5] = BOX_NativeString("Not yet implemented: Attribute definition ");
7845 REGB0 = TAG_Int(42);
7846 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
7847 once_value_2 = fra.me.REG[5];
7848 register_static_object(&once_value_2);
7849 } else fra.me.REG[5] = once_value_2;
7850 fra.me.REG[5] = fra.me.REG[5];
7851 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
7852 fra.me.REG[5] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
7853 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[5])(fra.me.REG[5]);
7854 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
7855 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
7856 if (!once_value_3) {
7857 fra.me.REG[5] = BOX_NativeString("::");
7858 REGB0 = TAG_Int(2);
7859 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
7860 once_value_3 = fra.me.REG[5];
7861 register_static_object(&once_value_3);
7862 } else fra.me.REG[5] = once_value_3;
7863 fra.me.REG[5] = fra.me.REG[5];
7864 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
7865 fra.me.REG[5] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
7866 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
7867 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
7868 if (!once_value_4) {
7869 fra.me.REG[5] = BOX_NativeString(" requires an explicit type.");
7870 REGB0 = TAG_Int(27);
7871 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
7872 once_value_4 = fra.me.REG[5];
7873 register_static_object(&once_value_4);
7874 } else fra.me.REG[5] = once_value_4;
7875 fra.me.REG[5] = fra.me.REG[5];
7876 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
7877 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
7878 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]);
7879 /* ./syntax//mmbuilder.nit:1069 */
7880 goto label1;
7881 }
7882 /* ./syntax//mmbuilder.nit:1072 */
7883 fra.me.REG[4] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
7884 /* ./syntax//mmbuilder.nit:1073 */
7885 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
7886 fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
7887 fra.me.REG[6] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[6])(fra.me.REG[6]);
7888 fra.me.REG[6] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[5], fra.me.REG[1], fra.me.REG[6]);
7889 /* ./syntax//mmbuilder.nit:1074 */
7890 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
7891 /* ./syntax//mmbuilder.nit:1075 */
7892 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
7893 REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[5])(fra.me.REG[5]);
7894 /* ./syntax//mmbuilder.nit:1076 */
7895 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7896 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7897 if (UNTAG_Bool(REGB1)) {
7898 } else {
7899 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7900 if (UNTAG_Bool(REGB2)) {
7901 REGB2 = TAG_Bool(false);
7902 REGB1 = REGB2;
7903 } else {
7904 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
7905 REGB1 = REGB2;
7906 }
7907 }
7908 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7909 if (UNTAG_Bool(REGB1)) {
7910 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
7911 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7912 if (UNTAG_Bool(REGB1)) {
7913 } else {
7914 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7915 if (UNTAG_Bool(REGB2)) {
7916 REGB2 = TAG_Bool(false);
7917 REGB1 = REGB2;
7918 } else {
7919 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
7920 REGB1 = REGB2;
7921 }
7922 }
7923 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7924 } else {
7925 REGB2 = TAG_Bool(false);
7926 REGB1 = REGB2;
7927 }
7928 CALL_syntax___mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], REGB1, REGB0);
7929 /* ./syntax//mmbuilder.nit:1077 */
7930 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
7931 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7932 if (UNTAG_Bool(REGB1)) {
7933 } else {
7934 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7935 if (UNTAG_Bool(REGB2)) {
7936 REGB2 = TAG_Bool(false);
7937 REGB1 = REGB2;
7938 } else {
7939 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
7940 REGB1 = REGB2;
7941 }
7942 }
7943 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7944 if (UNTAG_Bool(REGB1)) {
7945 REGB1 = TAG_Bool(true);
7946 } else {
7947 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7948 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7949 if (UNTAG_Bool(REGB2)) {
7950 } else {
7951 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7952 if (UNTAG_Bool(REGB3)) {
7953 REGB3 = TAG_Bool(false);
7954 REGB2 = REGB3;
7955 } else {
7956 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
7957 REGB2 = REGB3;
7958 }
7959 }
7960 REGB1 = REGB2;
7961 }
7962 if (UNTAG_Bool(REGB1)) {
7963 /* ./syntax//mmbuilder.nit:1078 */
7964 fra.me.REG[4] = ATTR_syntax___mmbuilder___AAttrPropdef____readmethod(fra.me.REG[2]);
7965 REGB1 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
7966 if (UNTAG_Bool(REGB1)) {
7967 } else {
7968 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1078);
7969 }
7970 /* ./syntax//mmbuilder.nit:1079 */
7971 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
7972 /* ./syntax//mmbuilder.nit:1080 */
7973 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
7974 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
7975 if (UNTAG_Bool(REGB1)) {
7976 } else {
7977 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
7978 if (UNTAG_Bool(REGB2)) {
7979 REGB2 = TAG_Bool(false);
7980 REGB1 = REGB2;
7981 } else {
7982 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
7983 REGB1 = REGB2;
7984 }
7985 }
7986 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
7987 if (UNTAG_Bool(REGB1)) {
7988 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
7989 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
7990 if (UNTAG_Bool(REGB1)) {
7991 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1080);
7992 }
7993 fra.me.REG[6] = CALL_parser___parser_nodes___AAble___n_kwredef(fra.me.REG[6])(fra.me.REG[6]);
7994 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
7995 if (UNTAG_Bool(REGB1)) {
7996 } else {
7997 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
7998 if (UNTAG_Bool(REGB2)) {
7999 REGB2 = TAG_Bool(false);
8000 REGB1 = REGB2;
8001 } else {
8002 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8003 REGB1 = REGB2;
8004 }
8005 }
8006 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8007 } else {
8008 REGB2 = TAG_Bool(false);
8009 REGB1 = REGB2;
8010 }
8011 if (UNTAG_Bool(REGB1)) {
8012 REGB1 = TAG_Bool(true);
8013 } else {
8014 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8015 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8016 if (UNTAG_Bool(REGB2)) {
8017 } else {
8018 REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8019 if (UNTAG_Bool(REGB3)) {
8020 REGB3 = TAG_Bool(false);
8021 REGB2 = REGB3;
8022 } else {
8023 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8024 REGB2 = REGB3;
8025 }
8026 }
8027 if (UNTAG_Bool(REGB2)) {
8028 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
8029 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8030 if (UNTAG_Bool(REGB2)) {
8031 } else {
8032 REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8033 if (UNTAG_Bool(REGB3)) {
8034 REGB3 = TAG_Bool(false);
8035 REGB2 = REGB3;
8036 } else {
8037 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8038 REGB2 = REGB3;
8039 }
8040 }
8041 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
8042 } else {
8043 REGB3 = TAG_Bool(false);
8044 REGB2 = REGB3;
8045 }
8046 REGB1 = REGB2;
8047 }
8048 CALL_syntax___mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], REGB1, REGB0);
8049 /* ./syntax//mmbuilder.nit:1081 */
8050 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8051 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8052 if (UNTAG_Bool(REGB1)) {
8053 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1081);
8054 }
8055 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3], fra.me.REG[4]);
8056 }
8057 /* ./syntax//mmbuilder.nit:1083 */
8058 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8059 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8060 if (UNTAG_Bool(REGB1)) {
8061 } else {
8062 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8063 if (UNTAG_Bool(REGB2)) {
8064 REGB2 = TAG_Bool(false);
8065 REGB1 = REGB2;
8066 } else {
8067 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8068 REGB1 = REGB2;
8069 }
8070 }
8071 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8072 if (UNTAG_Bool(REGB1)) {
8073 REGB1 = TAG_Bool(true);
8074 } else {
8075 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8076 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8077 if (UNTAG_Bool(REGB2)) {
8078 } else {
8079 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8080 if (UNTAG_Bool(REGB3)) {
8081 REGB3 = TAG_Bool(false);
8082 REGB2 = REGB3;
8083 } else {
8084 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8085 REGB2 = REGB3;
8086 }
8087 }
8088 REGB1 = REGB2;
8089 }
8090 if (UNTAG_Bool(REGB1)) {
8091 /* ./syntax//mmbuilder.nit:1084 */
8092 fra.me.REG[4] = ATTR_syntax___mmbuilder___AAttrPropdef____writemethod(fra.me.REG[2]);
8093 REGB1 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8094 if (UNTAG_Bool(REGB1)) {
8095 } else {
8096 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1084);
8097 }
8098 /* ./syntax//mmbuilder.nit:1085 */
8099 REGB1 = TAG_Int(0);
8100 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8101 if (!once_value_5) {
8102 if (!once_value_6) {
8103 fra.me.REG[6] = BOX_NativeString("value");
8104 REGB1 = TAG_Int(5);
8105 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8106 once_value_6 = fra.me.REG[6];
8107 register_static_object(&once_value_6);
8108 } else fra.me.REG[6] = once_value_6;
8109 fra.me.REG[6] = fra.me.REG[6];
8110 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8111 once_value_5 = fra.me.REG[6];
8112 register_static_object(&once_value_5);
8113 } else fra.me.REG[6] = once_value_5;
8114 fra.me.REG[6] = fra.me.REG[6];
8115 fra.me.REG[6] = NEW_MMParam_metamodel___static_type___MMParam___init(fra.me.REG[1], fra.me.REG[6]);
8116 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
8117 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_items(fra.me.REG[0]);
8118 fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8119 fra.me.REG[6] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[6])(fra.me.REG[6]);
8120 fra.me.REG[6] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[6]);
8121 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
8122 /* ./syntax//mmbuilder.nit:1087 */
8123 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8124 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8125 if (UNTAG_Bool(REGB1)) {
8126 } else {
8127 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8128 if (UNTAG_Bool(REGB2)) {
8129 REGB2 = TAG_Bool(false);
8130 REGB1 = REGB2;
8131 } else {
8132 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8133 REGB1 = REGB2;
8134 }
8135 }
8136 if (UNTAG_Bool(REGB1)) {
8137 /* ./syntax//mmbuilder.nit:1088 */
8138 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8139 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8140 if (UNTAG_Bool(REGB1)) {
8141 } else {
8142 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8143 if (UNTAG_Bool(REGB2)) {
8144 REGB2 = TAG_Bool(false);
8145 REGB1 = REGB2;
8146 } else {
8147 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8148 REGB1 = REGB2;
8149 }
8150 }
8151 if (UNTAG_Bool(REGB1)) {
8152 REGB1 = TAG_Int(3);
8153 REGB0 = REGB1;
8154 } else {
8155 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8156 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8157 if (UNTAG_Bool(REGB1)) {
8158 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1088);
8159 }
8160 fra.me.REG[6] = CALL_parser___parser_nodes___AAble___n_visibility(fra.me.REG[6])(fra.me.REG[6]);
8161 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8162 if (UNTAG_Bool(REGB1)) {
8163 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1088);
8164 }
8165 REGB1 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[6])(fra.me.REG[6]);
8166 REGB0 = REGB1;
8167 }
8168 }
8169 /* ./syntax//mmbuilder.nit:1090 */
8170 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8171 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8172 if (UNTAG_Bool(REGB1)) {
8173 } else {
8174 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8175 if (UNTAG_Bool(REGB2)) {
8176 REGB2 = TAG_Bool(false);
8177 REGB1 = REGB2;
8178 } else {
8179 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8180 REGB1 = REGB2;
8181 }
8182 }
8183 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8184 if (UNTAG_Bool(REGB1)) {
8185 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8186 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8187 if (UNTAG_Bool(REGB1)) {
8188 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1090);
8189 }
8190 fra.me.REG[6] = CALL_parser___parser_nodes___AAble___n_kwredef(fra.me.REG[6])(fra.me.REG[6]);
8191 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8192 if (UNTAG_Bool(REGB1)) {
8193 } else {
8194 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8195 if (UNTAG_Bool(REGB2)) {
8196 REGB2 = TAG_Bool(false);
8197 REGB1 = REGB2;
8198 } else {
8199 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8200 REGB1 = REGB2;
8201 }
8202 }
8203 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8204 } else {
8205 REGB2 = TAG_Bool(false);
8206 REGB1 = REGB2;
8207 }
8208 CALL_syntax___mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], REGB1, REGB0);
8209 /* ./syntax//mmbuilder.nit:1091 */
8210 fra.me.REG[2] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8211 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8212 if (UNTAG_Bool(REGB0)) {
8213 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1091);
8214 }
8215 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
8216 }
8217 label1: while(0);
8218 stack_frame_head = fra.me.prev;
8219 return;
8220 }
8221 void syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
8222 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8223 val_t tmp;
8224 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8225 fra.me.file = LOCATE_syntax___mmbuilder;
8226 fra.me.line = 1095;
8227 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor;
8228 fra.me.has_broke = 0;
8229 fra.me.REG_size = 4;
8230 fra.me.REG[0] = NIT_NULL;
8231 fra.me.REG[1] = NIT_NULL;
8232 fra.me.REG[2] = NIT_NULL;
8233 fra.me.REG[3] = NIT_NULL;
8234 fra.me.REG[0] = p0;
8235 fra.me.REG[1] = p1;
8236 /* ./syntax//mmbuilder.nit:1095 */
8237 fra.me.REG[2] = fra.me.REG[0];
8238 fra.me.REG[3] = fra.me.REG[1];
8239 /* ./syntax//mmbuilder.nit:1097 */
8240 fra.me.REG[2] = ATTR_syntax___mmbuilder___AAttrPropdef____prop(fra.me.REG[2]);
8241 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
8242 /* ./syntax//mmbuilder.nit:1098 */
8243 CALL_SUPER_syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8244 /* ./syntax//mmbuilder.nit:1099 */
8245 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8246 stack_frame_head = fra.me.prev;
8247 return;
8248 }
8249 val_t syntax___mmbuilder___AMethPropdef___name(val_t p0){
8250 struct {struct stack_frame_t me;} fra;
8251 val_t tmp;
8252 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8253 fra.me.file = LOCATE_syntax___mmbuilder;
8254 fra.me.line = 1104;
8255 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___name;
8256 fra.me.has_broke = 0;
8257 fra.me.REG_size = 1;
8258 fra.me.REG[0] = NIT_NULL;
8259 fra.me.REG[0] = p0;
8260 /* ./syntax//mmbuilder.nit:1104 */
8261 fra.me.REG[0] = ATTR_syntax___mmbuilder___AMethPropdef____name(fra.me.REG[0]);
8262 stack_frame_head = fra.me.prev;
8263 return fra.me.REG[0];
8264 }
8265 val_t syntax___mmbuilder___AMethPropdef___method(val_t p0){
8266 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8267 val_t REGB0;
8268 val_t tmp;
8269 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8270 fra.me.file = LOCATE_syntax___mmbuilder;
8271 fra.me.line = 1108;
8272 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___method;
8273 fra.me.has_broke = 0;
8274 fra.me.REG_size = 2;
8275 fra.me.REG[0] = NIT_NULL;
8276 fra.me.REG[1] = NIT_NULL;
8277 fra.me.REG[0] = p0;
8278 /* ./syntax//mmbuilder.nit:1108 */
8279 fra.me.REG[1] = fra.me.REG[0];
8280 fra.me.REG[1] = ATTR_syntax___mmbuilder___AMethPropdef____method(fra.me.REG[1]);
8281 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
8282 if (UNTAG_Bool(REGB0)) {
8283 } else {
8284 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1108);
8285 }
8286 goto label1;
8287 label1: while(0);
8288 stack_frame_head = fra.me.prev;
8289 return fra.me.REG[1];
8290 }
8291 void syntax___mmbuilder___AMethPropdef___accept_property_builder(val_t p0, val_t p1){
8292 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
8293 val_t REGB0;
8294 val_t REGB1;
8295 val_t REGB2;
8296 val_t tmp;
8297 static val_t once_value_1; /* Once value */
8298 static val_t once_value_2; /* Once value */
8299 static val_t once_value_3; /* Once value */
8300 static val_t once_value_4; /* Once value */
8301 static val_t once_value_5; /* Once value */
8302 static val_t once_value_6; /* Once value */
8303 static val_t once_value_7; /* Once value */
8304 static val_t once_value_8; /* Once value */
8305 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8306 fra.me.file = LOCATE_syntax___mmbuilder;
8307 fra.me.line = 1110;
8308 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___accept_property_builder;
8309 fra.me.has_broke = 0;
8310 fra.me.REG_size = 5;
8311 fra.me.REG[0] = NIT_NULL;
8312 fra.me.REG[1] = NIT_NULL;
8313 fra.me.REG[2] = NIT_NULL;
8314 fra.me.REG[3] = NIT_NULL;
8315 fra.me.REG[4] = NIT_NULL;
8316 fra.me.REG[0] = p0;
8317 fra.me.REG[1] = p1;
8318 /* ./syntax//mmbuilder.nit:1110 */
8319 fra.me.REG[2] = fra.me.REG[0];
8320 fra.me.REG[3] = fra.me.REG[1];
8321 /* ./syntax//mmbuilder.nit:1112 */
8322 CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8323 /* ./syntax//mmbuilder.nit:1114 */
8324 fra.me.REG[1] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
8325 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8326 if (UNTAG_Bool(REGB0)) {
8327 } else {
8328 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8329 if (UNTAG_Bool(REGB1)) {
8330 REGB1 = TAG_Bool(false);
8331 REGB0 = REGB1;
8332 } else {
8333 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8334 REGB0 = REGB1;
8335 }
8336 }
8337 if (UNTAG_Bool(REGB0)) {
8338 /* ./syntax//mmbuilder.nit:1115 */
8339 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AConcreteInitPropdef, ID_parser___parser_nodes___AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
8340 if (UNTAG_Bool(REGB0)) {
8341 /* ./syntax//mmbuilder.nit:1116 */
8342 if (!once_value_1) {
8343 if (!once_value_2) {
8344 fra.me.REG[1] = BOX_NativeString("init");
8345 REGB0 = TAG_Int(4);
8346 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
8347 once_value_2 = fra.me.REG[1];
8348 register_static_object(&once_value_2);
8349 } else fra.me.REG[1] = once_value_2;
8350 fra.me.REG[1] = fra.me.REG[1];
8351 fra.me.REG[1] = CALL_standard___symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
8352 once_value_1 = fra.me.REG[1];
8353 register_static_object(&once_value_1);
8354 } else fra.me.REG[1] = once_value_1;
8355 fra.me.REG[1] = fra.me.REG[1];
8356 } else {
8357 /* ./syntax//mmbuilder.nit:1118 */
8358 if (!once_value_3) {
8359 if (!once_value_4) {
8360 fra.me.REG[4] = BOX_NativeString("main");
8361 REGB0 = TAG_Int(4);
8362 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
8363 once_value_4 = fra.me.REG[4];
8364 register_static_object(&once_value_4);
8365 } else fra.me.REG[4] = once_value_4;
8366 fra.me.REG[4] = fra.me.REG[4];
8367 fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
8368 once_value_3 = fra.me.REG[4];
8369 register_static_object(&once_value_3);
8370 } else fra.me.REG[4] = once_value_3;
8371 fra.me.REG[4] = fra.me.REG[4];
8372 fra.me.REG[1] = fra.me.REG[4];
8373 }
8374 } else {
8375 /* ./syntax//mmbuilder.nit:1121 */
8376 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
8377 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8378 if (UNTAG_Bool(REGB0)) {
8379 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1121);
8380 }
8381 fra.me.REG[4] = CALL_syntax___syntax_base___AMethid___name(fra.me.REG[4])(fra.me.REG[4]);
8382 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8383 if (UNTAG_Bool(REGB0)) {
8384 } else {
8385 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1121);
8386 }
8387 fra.me.REG[1] = fra.me.REG[4];
8388 /* ./syntax//mmbuilder.nit:1123 */
8389 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
8390 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8391 if (UNTAG_Bool(REGB0)) {
8392 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1123);
8393 }
8394 fra.me.REG[4] = CALL_syntax___syntax_base___AMethid___name(fra.me.REG[4])(fra.me.REG[4]);
8395 if (!once_value_5) {
8396 if (!once_value_6) {
8397 fra.me.REG[0] = BOX_NativeString("-");
8398 REGB0 = TAG_Int(1);
8399 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
8400 once_value_6 = fra.me.REG[0];
8401 register_static_object(&once_value_6);
8402 } else fra.me.REG[0] = once_value_6;
8403 fra.me.REG[0] = fra.me.REG[0];
8404 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
8405 once_value_5 = fra.me.REG[0];
8406 register_static_object(&once_value_5);
8407 } else fra.me.REG[0] = once_value_5;
8408 fra.me.REG[0] = fra.me.REG[0];
8409 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[0],fra.me.REG[4]));
8410 if (UNTAG_Bool(REGB0)) {
8411 } else {
8412 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8413 if (UNTAG_Bool(REGB1)) {
8414 REGB1 = TAG_Bool(false);
8415 REGB0 = REGB1;
8416 } else {
8417 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
8418 REGB0 = REGB1;
8419 }
8420 }
8421 if (UNTAG_Bool(REGB0)) {
8422 /* ./syntax//mmbuilder.nit:1124 */
8423 fra.me.REG[0] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
8424 /* ./syntax//mmbuilder.nit:1125 */
8425 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8426 if (UNTAG_Bool(REGB0)) {
8427 } else {
8428 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8429 if (UNTAG_Bool(REGB1)) {
8430 REGB1 = TAG_Bool(false);
8431 REGB0 = REGB1;
8432 } else {
8433 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8434 REGB0 = REGB1;
8435 }
8436 }
8437 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8438 if (UNTAG_Bool(REGB0)) {
8439 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8440 if (UNTAG_Bool(REGB0)) {
8441 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1125);
8442 }
8443 fra.me.REG[0] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[0])(fra.me.REG[0]);
8444 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
8445 REGB1 = TAG_Int(0);
8446 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
8447 if (UNTAG_Bool(REGB2)) {
8448 } else {
8449 /* ./../lib/standard//kernel.nit:210 */
8450 REGB1 = TAG_Bool((REGB0)==(REGB1));
8451 /* ./syntax//mmbuilder.nit:1125 */
8452 REGB2 = REGB1;
8453 }
8454 } else {
8455 REGB1 = TAG_Bool(false);
8456 REGB2 = REGB1;
8457 }
8458 if (UNTAG_Bool(REGB2)) {
8459 /* ./syntax//mmbuilder.nit:1126 */
8460 if (!once_value_7) {
8461 if (!once_value_8) {
8462 fra.me.REG[0] = BOX_NativeString("unary -");
8463 REGB2 = TAG_Int(7);
8464 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB2);
8465 once_value_8 = fra.me.REG[0];
8466 register_static_object(&once_value_8);
8467 } else fra.me.REG[0] = once_value_8;
8468 fra.me.REG[0] = fra.me.REG[0];
8469 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
8470 once_value_7 = fra.me.REG[0];
8471 register_static_object(&once_value_7);
8472 } else fra.me.REG[0] = once_value_7;
8473 fra.me.REG[0] = fra.me.REG[0];
8474 fra.me.REG[1] = fra.me.REG[0];
8475 }
8476 }
8477 }
8478 /* ./syntax//mmbuilder.nit:1130 */
8479 ATTR_syntax___mmbuilder___AMethPropdef____name(fra.me.REG[2]) = fra.me.REG[1];
8480 /* ./syntax//mmbuilder.nit:1131 */
8481 fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8482 fra.me.REG[0] = NEW_MMMethSrcMethod_syntax___syntax_base___MMMethSrcMethod___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
8483 /* ./syntax//mmbuilder.nit:1132 */
8484 ATTR_syntax___mmbuilder___AMethPropdef____method(fra.me.REG[2]) = fra.me.REG[0];
8485 /* ./syntax//mmbuilder.nit:1133 */
8486 fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8487 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0]);
8488 stack_frame_head = fra.me.prev;
8489 return;
8490 }
8491 void syntax___mmbuilder___AMethPropdef___accept_property_verifier(val_t p0, val_t p1){
8492 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
8493 val_t REGB0;
8494 val_t REGB1;
8495 val_t REGB2;
8496 val_t REGB3;
8497 val_t tmp;
8498 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8499 fra.me.file = LOCATE_syntax___mmbuilder;
8500 fra.me.line = 1136;
8501 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___accept_property_verifier;
8502 fra.me.has_broke = 0;
8503 fra.me.REG_size = 5;
8504 fra.me.REG[0] = NIT_NULL;
8505 fra.me.REG[1] = NIT_NULL;
8506 fra.me.REG[2] = NIT_NULL;
8507 fra.me.REG[3] = NIT_NULL;
8508 fra.me.REG[4] = NIT_NULL;
8509 fra.me.REG[0] = p0;
8510 fra.me.REG[1] = p1;
8511 /* ./syntax//mmbuilder.nit:1136 */
8512 fra.me.REG[2] = fra.me.REG[0];
8513 fra.me.REG[3] = fra.me.REG[1];
8514 /* ./syntax//mmbuilder.nit:1138 */
8515 fra.me.REG[4] = NEW_SignatureBuilder_syntax___mmbuilder___SignatureBuilder___init();
8516 CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
8517 /* ./syntax//mmbuilder.nit:1139 */
8518 CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8519 /* ./syntax//mmbuilder.nit:1141 */
8520 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8521 REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
8522 if (UNTAG_Bool(REGB0)) {
8523 goto label1;
8524 }
8525 /* ./syntax//mmbuilder.nit:1143 */
8526 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8527 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
8528 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8529 if (UNTAG_Bool(REGB0)) {
8530 } else {
8531 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8532 if (UNTAG_Bool(REGB1)) {
8533 REGB1 = TAG_Bool(false);
8534 REGB0 = REGB1;
8535 } else {
8536 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8537 REGB0 = REGB1;
8538 }
8539 }
8540 if (UNTAG_Bool(REGB0)) {
8541 } else {
8542 /* ./syntax//mmbuilder.nit:1146 */
8543 fra.me.REG[1] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
8544 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8545 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[4])(fra.me.REG[4]);
8546 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8547 if (UNTAG_Bool(REGB0)) {
8548 } else {
8549 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1146);
8550 }
8551 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
8552 }
8553 /* ./syntax//mmbuilder.nit:1148 */
8554 REGB0 = TAG_Int(1);
8555 /* ./syntax//mmbuilder.nit:1149 */
8556 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
8557 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8558 if (UNTAG_Bool(REGB1)) {
8559 } else {
8560 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8561 if (UNTAG_Bool(REGB2)) {
8562 REGB2 = TAG_Bool(false);
8563 REGB1 = REGB2;
8564 } else {
8565 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8566 REGB1 = REGB2;
8567 }
8568 }
8569 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8570 if (UNTAG_Bool(REGB1)) {
8571 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
8572 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8573 if (UNTAG_Bool(REGB1)) {
8574 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1149);
8575 }
8576 REGB1 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
8577 REGB2 = TAG_Int(1);
8578 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8579 if (UNTAG_Bool(REGB3)) {
8580 } else {
8581 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8582 }
8583 /* ./../lib/standard//kernel.nit:217 */
8584 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
8585 } else {
8586 /* ./syntax//mmbuilder.nit:1149 */
8587 REGB1 = TAG_Bool(false);
8588 REGB2 = REGB1;
8589 }
8590 if (UNTAG_Bool(REGB2)) {
8591 /* ./syntax//mmbuilder.nit:1150 */
8592 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
8593 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8594 if (UNTAG_Bool(REGB2)) {
8595 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1150);
8596 }
8597 REGB2 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
8598 REGB0 = REGB2;
8599 }
8600 /* ./syntax//mmbuilder.nit:1152 */
8601 fra.me.REG[4] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
8602 fra.me.REG[1] = CALL_parser___parser_nodes___AMethPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
8603 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8604 if (UNTAG_Bool(REGB2)) {
8605 } else {
8606 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8607 if (UNTAG_Bool(REGB1)) {
8608 REGB1 = TAG_Bool(false);
8609 REGB2 = REGB1;
8610 } else {
8611 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8612 REGB2 = REGB1;
8613 }
8614 }
8615 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
8616 CALL_syntax___mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], REGB2, REGB0);
8617 /* ./syntax//mmbuilder.nit:1153 */
8618 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
8619 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8620 if (UNTAG_Bool(REGB0)) {
8621 } else {
8622 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8623 if (UNTAG_Bool(REGB2)) {
8624 REGB2 = TAG_Bool(false);
8625 REGB0 = REGB2;
8626 } else {
8627 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8628 REGB0 = REGB2;
8629 }
8630 }
8631 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8632 if (UNTAG_Bool(REGB0)) {
8633 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
8634 fra.me.REG[2] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
8635 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8636 if (UNTAG_Bool(REGB0)) {
8637 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1153);
8638 }
8639 CALL_syntax___mmbuilder___ASignature___check_visibility(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3], fra.me.REG[2]);
8640 }
8641 label1: while(0);
8642 stack_frame_head = fra.me.prev;
8643 return;
8644 }
8645 void syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
8646 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8647 val_t tmp;
8648 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8649 fra.me.file = LOCATE_syntax___mmbuilder;
8650 fra.me.line = 1156;
8651 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor;
8652 fra.me.has_broke = 0;
8653 fra.me.REG_size = 4;
8654 fra.me.REG[0] = NIT_NULL;
8655 fra.me.REG[1] = NIT_NULL;
8656 fra.me.REG[2] = NIT_NULL;
8657 fra.me.REG[3] = NIT_NULL;
8658 fra.me.REG[0] = p0;
8659 fra.me.REG[1] = p1;
8660 /* ./syntax//mmbuilder.nit:1156 */
8661 fra.me.REG[2] = fra.me.REG[0];
8662 fra.me.REG[3] = fra.me.REG[1];
8663 /* ./syntax//mmbuilder.nit:1158 */
8664 fra.me.REG[2] = ATTR_syntax___mmbuilder___AMethPropdef____method(fra.me.REG[2]);
8665 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
8666 /* ./syntax//mmbuilder.nit:1159 */
8667 CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8668 /* ./syntax//mmbuilder.nit:1160 */
8669 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8670 stack_frame_head = fra.me.prev;
8671 return;
8672 }
8673 void syntax___mmbuilder___AMainMethPropdef___process_and_check(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
8674 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
8675 val_t REGB0;
8676 val_t REGB1;
8677 val_t tmp;
8678 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8679 fra.me.file = LOCATE_syntax___mmbuilder;
8680 fra.me.line = 1165;
8681 fra.me.meth = LOCATE_syntax___mmbuilder___AMainMethPropdef___process_and_check;
8682 fra.me.has_broke = 0;
8683 fra.me.REG_size = 3;
8684 fra.me.REG[0] = NIT_NULL;
8685 fra.me.REG[1] = NIT_NULL;
8686 fra.me.REG[2] = NIT_NULL;
8687 fra.me.REG[0] = p0;
8688 fra.me.REG[1] = p1;
8689 fra.me.REG[2] = p2;
8690 REGB0 = p3;
8691 REGB1 = p4;
8692 /* ./syntax//mmbuilder.nit:1167 */
8693 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
8694 CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[0])(fra.me.REG[0], REGB1);
8695 /* ./syntax//mmbuilder.nit:1168 */
8696 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
8697 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
8698 fra.me.REG[1] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
8699 fra.me.REG[1] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[1]);
8700 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
8701 stack_frame_head = fra.me.prev;
8702 return;
8703 }
8704 void syntax___mmbuilder___AExternMethPropdef___accept_property_verifier(val_t p0, val_t p1){
8705 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8706 val_t REGB0;
8707 val_t REGB1;
8708 val_t REGB2;
8709 val_t tmp;
8710 static val_t once_value_1; /* Once value */
8711 static val_t once_value_2; /* Once value */
8712 static val_t once_value_3; /* Once value */
8713 static val_t once_value_4; /* Once value */
8714 static val_t once_value_5; /* Once value */
8715 static val_t once_value_6; /* Once value */
8716 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8717 fra.me.file = LOCATE_syntax___mmbuilder;
8718 fra.me.line = 1174;
8719 fra.me.meth = LOCATE_syntax___mmbuilder___AExternMethPropdef___accept_property_verifier;
8720 fra.me.has_broke = 0;
8721 fra.me.REG_size = 4;
8722 fra.me.REG[0] = NIT_NULL;
8723 fra.me.REG[1] = NIT_NULL;
8724 fra.me.REG[2] = NIT_NULL;
8725 fra.me.REG[3] = NIT_NULL;
8726 fra.me.REG[0] = p0;
8727 fra.me.REG[1] = p1;
8728 /* ./syntax//mmbuilder.nit:1174 */
8729 fra.me.REG[2] = fra.me.REG[0];
8730 /* ./syntax//mmbuilder.nit:1176 */
8731 CALL_SUPER_syntax___mmbuilder___AExternMethPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8732 /* ./syntax//mmbuilder.nit:1178 */
8733 fra.me.REG[1] = CALL_parser___parser_nodes___AExternMethPropdef___n_extern(fra.me.REG[2])(fra.me.REG[2]);
8734 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8735 if (UNTAG_Bool(REGB0)) {
8736 } else {
8737 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8738 if (UNTAG_Bool(REGB1)) {
8739 REGB1 = TAG_Bool(false);
8740 REGB0 = REGB1;
8741 } else {
8742 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8743 REGB0 = REGB1;
8744 }
8745 }
8746 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8747 if (UNTAG_Bool(REGB0)) {
8748 /* ./syntax//mmbuilder.nit:1179 */
8749 fra.me.REG[1] = CALL_parser___parser_nodes___AExternMethPropdef___n_extern(fra.me.REG[2])(fra.me.REG[2]);
8750 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8751 if (UNTAG_Bool(REGB0)) {
8752 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1179);
8753 }
8754 fra.me.REG[1] = CALL_parser___lexer___Token___text(fra.me.REG[1])(fra.me.REG[1]);
8755 /* ./syntax//mmbuilder.nit:1180 */
8756 REGB0 = TAG_Int(1);
8757 /* ./../lib/standard//collection//array.nit:23 */
8758 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
8759 if (UNTAG_Bool(REGB1)) {
8760 } else {
8761 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
8762 }
8763 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
8764 /* ./syntax//mmbuilder.nit:1180 */
8765 REGB2 = TAG_Int(2);
8766 /* ./../lib/standard//kernel.nit:220 */
8767 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
8768 /* ./syntax//mmbuilder.nit:1180 */
8769 fra.me.REG[0] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB0, REGB2);
8770 fra.me.REG[1] = fra.me.REG[0];
8771 } else {
8772 /* ./syntax//mmbuilder.nit:1182 */
8773 REGB2 = TAG_Int(11);
8774 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
8775 if (!once_value_1) {
8776 fra.me.REG[3] = BOX_NativeString("");
8777 REGB2 = TAG_Int(0);
8778 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
8779 once_value_1 = fra.me.REG[3];
8780 register_static_object(&once_value_1);
8781 } else fra.me.REG[3] = once_value_1;
8782 fra.me.REG[3] = fra.me.REG[3];
8783 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8784 fra.me.REG[3] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
8785 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
8786 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___name(fra.me.REG[3])(fra.me.REG[3]);
8787 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
8788 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8789 if (!once_value_2) {
8790 fra.me.REG[3] = BOX_NativeString("_");
8791 REGB2 = TAG_Int(1);
8792 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
8793 once_value_2 = fra.me.REG[3];
8794 register_static_object(&once_value_2);
8795 } else fra.me.REG[3] = once_value_2;
8796 fra.me.REG[3] = fra.me.REG[3];
8797 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8798 fra.me.REG[3] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
8799 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[3])(fra.me.REG[3]);
8800 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[3])(fra.me.REG[3]);
8801 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
8802 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8803 if (!once_value_3) {
8804 fra.me.REG[3] = BOX_NativeString("_");
8805 REGB2 = TAG_Int(1);
8806 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
8807 once_value_3 = fra.me.REG[3];
8808 register_static_object(&once_value_3);
8809 } else fra.me.REG[3] = once_value_3;
8810 fra.me.REG[3] = fra.me.REG[3];
8811 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8812 fra.me.REG[3] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
8813 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[3])(fra.me.REG[3]);
8814 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[3])(fra.me.REG[3]);
8815 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
8816 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8817 if (!once_value_4) {
8818 fra.me.REG[3] = BOX_NativeString("_");
8819 REGB2 = TAG_Int(1);
8820 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
8821 once_value_4 = fra.me.REG[3];
8822 register_static_object(&once_value_4);
8823 } else fra.me.REG[3] = once_value_4;
8824 fra.me.REG[3] = fra.me.REG[3];
8825 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8826 fra.me.REG[3] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
8827 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[3])(fra.me.REG[3]);
8828 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
8829 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8830 if (!once_value_5) {
8831 fra.me.REG[3] = BOX_NativeString("_");
8832 REGB2 = TAG_Int(1);
8833 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
8834 once_value_5 = fra.me.REG[3];
8835 register_static_object(&once_value_5);
8836 } else fra.me.REG[3] = once_value_5;
8837 fra.me.REG[3] = fra.me.REG[3];
8838 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8839 fra.me.REG[3] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
8840 fra.me.REG[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[3])(fra.me.REG[3]);
8841 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8842 if (UNTAG_Bool(REGB2)) {
8843 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1182);
8844 }
8845 REGB2 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]);
8846 fra.me.REG[3] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
8847 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8848 if (!once_value_6) {
8849 fra.me.REG[3] = BOX_NativeString("");
8850 REGB2 = TAG_Int(0);
8851 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
8852 once_value_6 = fra.me.REG[3];
8853 register_static_object(&once_value_6);
8854 } else fra.me.REG[3] = once_value_6;
8855 fra.me.REG[3] = fra.me.REG[3];
8856 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8857 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
8858 fra.me.REG[1] = fra.me.REG[0];
8859 }
8860 /* ./syntax//mmbuilder.nit:1184 */
8861 fra.me.REG[2] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
8862 CALL_syntax___syntax_base___MMMethSrcMethod___extern_name__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
8863 stack_frame_head = fra.me.prev;
8864 return;
8865 }
8866 val_t syntax___mmbuilder___ATypePropdef___prop(val_t p0){
8867 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8868 val_t REGB0;
8869 val_t tmp;
8870 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8871 fra.me.file = LOCATE_syntax___mmbuilder;
8872 fra.me.line = 1189;
8873 fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___prop;
8874 fra.me.has_broke = 0;
8875 fra.me.REG_size = 2;
8876 fra.me.REG[0] = NIT_NULL;
8877 fra.me.REG[1] = NIT_NULL;
8878 fra.me.REG[0] = p0;
8879 /* ./syntax//mmbuilder.nit:1189 */
8880 fra.me.REG[1] = fra.me.REG[0];
8881 fra.me.REG[1] = ATTR_syntax___mmbuilder___ATypePropdef____prop(fra.me.REG[1]);
8882 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
8883 if (UNTAG_Bool(REGB0)) {
8884 } else {
8885 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1189);
8886 }
8887 goto label1;
8888 label1: while(0);
8889 stack_frame_head = fra.me.prev;
8890 return fra.me.REG[1];
8891 }
8892 void syntax___mmbuilder___ATypePropdef___accept_property_builder(val_t p0, val_t p1){
8893 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8894 val_t tmp;
8895 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8896 fra.me.file = LOCATE_syntax___mmbuilder;
8897 fra.me.line = 1192;
8898 fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___accept_property_builder;
8899 fra.me.has_broke = 0;
8900 fra.me.REG_size = 4;
8901 fra.me.REG[0] = NIT_NULL;
8902 fra.me.REG[1] = NIT_NULL;
8903 fra.me.REG[2] = NIT_NULL;
8904 fra.me.REG[3] = NIT_NULL;
8905 fra.me.REG[0] = p0;
8906 fra.me.REG[1] = p1;
8907 /* ./syntax//mmbuilder.nit:1192 */
8908 fra.me.REG[2] = fra.me.REG[0];
8909 fra.me.REG[3] = fra.me.REG[1];
8910 /* ./syntax//mmbuilder.nit:1194 */
8911 CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8912 /* ./syntax//mmbuilder.nit:1195 */
8913 fra.me.REG[1] = CALL_parser___parser_nodes___ATypePropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8914 fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
8915 /* ./syntax//mmbuilder.nit:1196 */
8916 fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8917 fra.me.REG[0] = NEW_MMSrcTypeProperty_syntax___syntax_base___MMSrcTypeProperty___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
8918 /* ./syntax//mmbuilder.nit:1197 */
8919 ATTR_syntax___mmbuilder___ATypePropdef____prop(fra.me.REG[2]) = fra.me.REG[0];
8920 /* ./syntax//mmbuilder.nit:1198 */
8921 fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8922 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0]);
8923 stack_frame_head = fra.me.prev;
8924 return;
8925 }
8926 void syntax___mmbuilder___ATypePropdef___accept_property_verifier(val_t p0, val_t p1){
8927 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
8928 val_t REGB0;
8929 val_t REGB1;
8930 val_t REGB2;
8931 val_t tmp;
8932 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8933 fra.me.file = LOCATE_syntax___mmbuilder;
8934 fra.me.line = 1201;
8935 fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___accept_property_verifier;
8936 fra.me.has_broke = 0;
8937 fra.me.REG_size = 5;
8938 fra.me.REG[0] = NIT_NULL;
8939 fra.me.REG[1] = NIT_NULL;
8940 fra.me.REG[2] = NIT_NULL;
8941 fra.me.REG[3] = NIT_NULL;
8942 fra.me.REG[4] = NIT_NULL;
8943 fra.me.REG[0] = p0;
8944 fra.me.REG[1] = p1;
8945 /* ./syntax//mmbuilder.nit:1201 */
8946 fra.me.REG[2] = fra.me.REG[0];
8947 fra.me.REG[3] = fra.me.REG[1];
8948 /* ./syntax//mmbuilder.nit:1203 */
8949 CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8950 /* ./syntax//mmbuilder.nit:1204 */
8951 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
8952 fra.me.REG[0] = CALL_parser___parser_nodes___ATypePropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8953 fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
8954 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8955 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
8956 fra.me.REG[4] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
8957 /* ./syntax//mmbuilder.nit:1205 */
8958 fra.me.REG[0] = CALL_syntax___syntax_base___ATypePropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
8959 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
8960 /* ./syntax//mmbuilder.nit:1206 */
8961 fra.me.REG[4] = CALL_parser___parser_nodes___ATypePropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
8962 REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
8963 /* ./syntax//mmbuilder.nit:1207 */
8964 fra.me.REG[4] = CALL_syntax___syntax_base___ATypePropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
8965 fra.me.REG[0] = CALL_parser___parser_nodes___ATypePropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
8966 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8967 if (UNTAG_Bool(REGB1)) {
8968 } else {
8969 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8970 if (UNTAG_Bool(REGB2)) {
8971 REGB2 = TAG_Bool(false);
8972 REGB1 = REGB2;
8973 } else {
8974 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8975 REGB1 = REGB2;
8976 }
8977 }
8978 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8979 CALL_syntax___mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], REGB1, REGB0);
8980 stack_frame_head = fra.me.prev;
8981 return;
8982 }
8983 void syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
8984 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8985 val_t tmp;
8986 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8987 fra.me.file = LOCATE_syntax___mmbuilder;
8988 fra.me.line = 1210;
8989 fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor;
8990 fra.me.has_broke = 0;
8991 fra.me.REG_size = 4;
8992 fra.me.REG[0] = NIT_NULL;
8993 fra.me.REG[1] = NIT_NULL;
8994 fra.me.REG[2] = NIT_NULL;
8995 fra.me.REG[3] = NIT_NULL;
8996 fra.me.REG[0] = p0;
8997 fra.me.REG[1] = p1;
8998 /* ./syntax//mmbuilder.nit:1210 */
8999 fra.me.REG[2] = fra.me.REG[0];
9000 fra.me.REG[3] = fra.me.REG[1];
9001 /* ./syntax//mmbuilder.nit:1212 */
9002 fra.me.REG[2] = ATTR_syntax___mmbuilder___ATypePropdef____prop(fra.me.REG[2]);
9003 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
9004 /* ./syntax//mmbuilder.nit:1213 */
9005 CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9006 /* ./syntax//mmbuilder.nit:1214 */
9007 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9008 stack_frame_head = fra.me.prev;
9009 return;
9010 }
9011 val_t syntax___mmbuilder___MethidAccumulator___name(val_t p0){
9012 struct {struct stack_frame_t me;} fra;
9013 val_t REGB0;
9014 val_t tmp;
9015 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9016 fra.me.file = LOCATE_syntax___mmbuilder;
9017 fra.me.line = 1221;
9018 fra.me.meth = LOCATE_syntax___mmbuilder___MethidAccumulator___name;
9019 fra.me.has_broke = 0;
9020 fra.me.REG_size = 1;
9021 fra.me.REG[0] = NIT_NULL;
9022 fra.me.REG[0] = p0;
9023 /* ./syntax//mmbuilder.nit:1221 */
9024 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL);
9025 if (UNTAG_Bool(REGB0)) {
9026 } else {
9027 nit_abort("Uninitialized attribute %s", "_name", LOCATE_syntax___mmbuilder, 1221);
9028 }
9029 fra.me.REG[0] = ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0]);
9030 stack_frame_head = fra.me.prev;
9031 return fra.me.REG[0];
9032 }
9033 void syntax___mmbuilder___MethidAccumulator___visit(val_t p0, val_t p1){
9034 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9035 val_t REGB0;
9036 val_t tmp;
9037 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9038 fra.me.file = LOCATE_syntax___mmbuilder;
9039 fra.me.line = 1222;
9040 fra.me.meth = LOCATE_syntax___mmbuilder___MethidAccumulator___visit;
9041 fra.me.has_broke = 0;
9042 fra.me.REG_size = 4;
9043 fra.me.REG[0] = NIT_NULL;
9044 fra.me.REG[1] = NIT_NULL;
9045 fra.me.REG[2] = NIT_NULL;
9046 fra.me.REG[3] = NIT_NULL;
9047 fra.me.REG[0] = p0;
9048 fra.me.REG[1] = p1;
9049 /* ./syntax//mmbuilder.nit:1224 */
9050 REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_parser___parser_nodes___Token, ID_parser___parser_nodes___Token)) /*cast Token*/;
9051 if (UNTAG_Bool(REGB0)) {
9052 /* ./syntax//mmbuilder.nit:1225 */
9053 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL);
9054 if (UNTAG_Bool(REGB0)) {
9055 } else {
9056 nit_abort("Uninitialized attribute %s", "_name", LOCATE_syntax___mmbuilder, 1225);
9057 }
9058 fra.me.REG[2] = ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0]);
9059 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9060 if (UNTAG_Bool(REGB0)) {
9061 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1225);
9062 }
9063 fra.me.REG[3] = CALL_parser___lexer___Token___text(fra.me.REG[1])(fra.me.REG[1]);
9064 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
9065 } else {
9066 /* ./syntax//mmbuilder.nit:1227 */
9067 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9068 if (UNTAG_Bool(REGB0)) {
9069 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1227);
9070 }
9071 CALL_parser___parser_prod___ANode___visit_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
9072 }
9073 stack_frame_head = fra.me.prev;
9074 return;
9075 }
9076 val_t syntax___mmbuilder___AMethid___name(val_t p0){
9077 struct {struct stack_frame_t me;} fra;
9078 val_t tmp;
9079 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9080 fra.me.file = LOCATE_syntax___mmbuilder;
9081 fra.me.line = 1233;
9082 fra.me.meth = LOCATE_syntax___mmbuilder___AMethid___name;
9083 fra.me.has_broke = 0;
9084 fra.me.REG_size = 1;
9085 fra.me.REG[0] = NIT_NULL;
9086 fra.me.REG[0] = p0;
9087 /* ./syntax//mmbuilder.nit:1233 */
9088 fra.me.REG[0] = ATTR_syntax___mmbuilder___AMethid____name(fra.me.REG[0]);
9089 stack_frame_head = fra.me.prev;
9090 return fra.me.REG[0];
9091 }
9092 void syntax___mmbuilder___AMethid___accept_property_builder(val_t p0, val_t p1){
9093 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9094 val_t tmp;
9095 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9096 fra.me.file = LOCATE_syntax___mmbuilder;
9097 fra.me.line = 1235;
9098 fra.me.meth = LOCATE_syntax___mmbuilder___AMethid___accept_property_builder;
9099 fra.me.has_broke = 0;
9100 fra.me.REG_size = 4;
9101 fra.me.REG[0] = NIT_NULL;
9102 fra.me.REG[1] = NIT_NULL;
9103 fra.me.REG[2] = NIT_NULL;
9104 fra.me.REG[3] = NIT_NULL;
9105 fra.me.REG[0] = p0;
9106 fra.me.REG[1] = p1;
9107 /* ./syntax//mmbuilder.nit:1235 */
9108 fra.me.REG[2] = fra.me.REG[0];
9109 /* ./syntax//mmbuilder.nit:1237 */
9110 fra.me.REG[3] = NEW_MethidAccumulator_parser___parser_prod___Visitor___init();
9111 /* ./syntax//mmbuilder.nit:1238 */
9112 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
9113 /* ./syntax//mmbuilder.nit:1239 */
9114 fra.me.REG[3] = CALL_syntax___mmbuilder___MethidAccumulator___name(fra.me.REG[3])(fra.me.REG[3]);
9115 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
9116 fra.me.REG[3] = CALL_standard___symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
9117 ATTR_syntax___mmbuilder___AMethid____name(fra.me.REG[2]) = fra.me.REG[3];
9118 /* ./syntax//mmbuilder.nit:1240 */
9119 CALL_SUPER_syntax___mmbuilder___AMethid___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9120 stack_frame_head = fra.me.prev;
9121 return;
9122 }
9123 void syntax___mmbuilder___ASignature___accept_property_verifier(val_t p0, val_t p1){
9124 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
9125 val_t REGB0;
9126 val_t REGB1;
9127 val_t REGB2;
9128 val_t tmp;
9129 static val_t once_value_2; /* Once value */
9130 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9131 fra.me.file = LOCATE_syntax___mmbuilder;
9132 fra.me.line = 1245;
9133 fra.me.meth = LOCATE_syntax___mmbuilder___ASignature___accept_property_verifier;
9134 fra.me.has_broke = 0;
9135 fra.me.REG_size = 8;
9136 fra.me.REG[0] = NIT_NULL;
9137 fra.me.REG[1] = NIT_NULL;
9138 fra.me.REG[2] = NIT_NULL;
9139 fra.me.REG[3] = NIT_NULL;
9140 fra.me.REG[4] = NIT_NULL;
9141 fra.me.REG[5] = NIT_NULL;
9142 fra.me.REG[6] = NIT_NULL;
9143 fra.me.REG[7] = NIT_NULL;
9144 fra.me.REG[0] = p0;
9145 fra.me.REG[1] = p1;
9146 /* ./syntax//mmbuilder.nit:1245 */
9147 fra.me.REG[2] = fra.me.REG[0];
9148 fra.me.REG[3] = fra.me.REG[1];
9149 /* ./syntax//mmbuilder.nit:1247 */
9150 CALL_SUPER_syntax___mmbuilder___ASignature___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9151 /* ./syntax//mmbuilder.nit:1248 */
9152 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9153 REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
9154 if (UNTAG_Bool(REGB0)) {
9155 /* ./syntax//mmbuilder.nit:1249 */
9156 goto label1;
9157 } else {
9158 /* ./syntax//mmbuilder.nit:1250 */
9159 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9160 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
9161 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
9162 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9163 if (UNTAG_Bool(REGB0)) {
9164 /* ./syntax//mmbuilder.nit:1251 */
9165 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9166 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
9167 fra.me.REG[1] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[1])(fra.me.REG[1]);
9168 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9169 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[4])(fra.me.REG[4]);
9170 fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
9171 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[1],fra.me.REG[4]));
9172 if (UNTAG_Bool(REGB0)) {
9173 } else {
9174 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9175 if (UNTAG_Bool(REGB1)) {
9176 REGB1 = TAG_Bool(false);
9177 REGB0 = REGB1;
9178 } else {
9179 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
9180 REGB0 = REGB1;
9181 }
9182 }
9183 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9184 if (UNTAG_Bool(REGB0)) {
9185 REGB0 = TAG_Bool(true);
9186 } else {
9187 fra.me.REG[4] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
9188 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9189 if (UNTAG_Bool(REGB1)) {
9190 } else {
9191 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9192 if (UNTAG_Bool(REGB2)) {
9193 REGB2 = TAG_Bool(false);
9194 REGB1 = REGB2;
9195 } else {
9196 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
9197 REGB1 = REGB2;
9198 }
9199 }
9200 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
9201 REGB0 = REGB1;
9202 }
9203 if (UNTAG_Bool(REGB0)) {
9204 /* ./syntax//mmbuilder.nit:1252 */
9205 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9206 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
9207 fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
9208 if (!once_value_2) {
9209 fra.me.REG[1] = BOX_NativeString("Syntax error: untyped parameter.");
9210 REGB0 = TAG_Int(32);
9211 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
9212 once_value_2 = fra.me.REG[1];
9213 register_static_object(&once_value_2);
9214 } else fra.me.REG[1] = once_value_2;
9215 fra.me.REG[1] = fra.me.REG[1];
9216 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[1]);
9217 /* ./syntax//mmbuilder.nit:1253 */
9218 goto label1;
9219 }
9220 } else {
9221 /* ./syntax//mmbuilder.nit:1255 */
9222 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9223 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[1])(fra.me.REG[1]);
9224 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
9225 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9226 if (UNTAG_Bool(REGB0)) {
9227 REGB0 = TAG_Bool(true);
9228 } else {
9229 fra.me.REG[1] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
9230 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9231 if (UNTAG_Bool(REGB1)) {
9232 } else {
9233 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9234 if (UNTAG_Bool(REGB2)) {
9235 REGB2 = TAG_Bool(false);
9236 REGB1 = REGB2;
9237 } else {
9238 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9239 REGB1 = REGB2;
9240 }
9241 }
9242 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
9243 REGB0 = REGB1;
9244 }
9245 if (UNTAG_Bool(REGB0)) {
9246 /* ./syntax//mmbuilder.nit:1256 */
9247 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
9248 /* ./syntax//mmbuilder.nit:1257 */
9249 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9250 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[4])(fra.me.REG[4]);
9251 /* ./../lib/standard//collection//array.nit:232 */
9252 REGB0 = TAG_Int(0);
9253 /* ./../lib/standard//collection//array.nit:233 */
9254 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
9255 if (UNTAG_Bool(REGB1)) {
9256 } else {
9257 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 233);
9258 }
9259 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
9260 /* ./../lib/standard//collection//array.nit:234 */
9261 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
9262 /* ./../lib/standard//collection//array.nit:235 */
9263 while(1) {
9264 /* ./../lib/standard//collection//array.nit:23 */
9265 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
9266 if (UNTAG_Bool(REGB1)) {
9267 } else {
9268 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
9269 }
9270 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
9271 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
9272 if (UNTAG_Bool(REGB2)) {
9273 } else {
9274 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9275 }
9276 /* ./../lib/standard//kernel.nit:215 */
9277 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
9278 /* ./../lib/standard//collection//array.nit:235 */
9279 if (UNTAG_Bool(REGB1)) {
9280 /* ./../lib/standard//collection//array.nit:236 */
9281 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9282 if (UNTAG_Bool(REGB1)) {
9283 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 236);
9284 }
9285 /* ./../lib/standard//collection//array.nit:652 */
9286 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
9287 /* ./syntax//mmbuilder.nit:1258 */
9288 fra.me.REG[7] = CALL_syntax___mmbuilder___AParam___stype(fra.me.REG[6])(fra.me.REG[6]);
9289 REGB1 = TAG_Bool(fra.me.REG[7]!=NIT_NULL);
9290 if (UNTAG_Bool(REGB1)) {
9291 } else {
9292 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1258);
9293 }
9294 fra.me.REG[6] = CALL_parser___parser_nodes___AParam___n_id(fra.me.REG[6])(fra.me.REG[6]);
9295 fra.me.REG[6] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9296 fra.me.REG[6] = NEW_MMParam_metamodel___static_type___MMParam___init(fra.me.REG[7], fra.me.REG[6]);
9297 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
9298 /* ./../lib/standard//collection//array.nit:237 */
9299 REGB1 = TAG_Int(1);
9300 /* ./../lib/standard//kernel.nit:218 */
9301 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
9302 /* ./../lib/standard//collection//array.nit:237 */
9303 REGB0 = REGB1;
9304 } else {
9305 /* ./../lib/standard//collection//array.nit:235 */
9306 goto label3;
9307 }
9308 }
9309 label3: while(0);
9310 /* ./syntax//mmbuilder.nit:1260 */
9311 fra.me.REG[0] = NIT_NULL;
9312 /* ./syntax//mmbuilder.nit:1261 */
9313 fra.me.REG[5] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
9314 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9315 if (UNTAG_Bool(REGB0)) {
9316 } else {
9317 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9318 if (UNTAG_Bool(REGB1)) {
9319 REGB1 = TAG_Bool(false);
9320 REGB0 = REGB1;
9321 } else {
9322 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
9323 REGB0 = REGB1;
9324 }
9325 }
9326 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9327 if (UNTAG_Bool(REGB0)) {
9328 /* ./syntax//mmbuilder.nit:1262 */
9329 fra.me.REG[2] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
9330 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9331 if (UNTAG_Bool(REGB0)) {
9332 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1262);
9333 }
9334 fra.me.REG[2] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
9335 fra.me.REG[0] = fra.me.REG[2];
9336 /* ./syntax//mmbuilder.nit:1263 */
9337 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9338 if (UNTAG_Bool(REGB0)) {
9339 } else {
9340 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9341 if (UNTAG_Bool(REGB1)) {
9342 REGB1 = TAG_Bool(false);
9343 REGB0 = REGB1;
9344 } else {
9345 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
9346 REGB0 = REGB1;
9347 }
9348 }
9349 if (UNTAG_Bool(REGB0)) {
9350 /* ./syntax//mmbuilder.nit:1264 */
9351 fra.me.REG[2] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9352 REGB0 = TAG_Bool(true);
9353 CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
9354 /* ./syntax//mmbuilder.nit:1265 */
9355 goto label1;
9356 }
9357 }
9358 /* ./syntax//mmbuilder.nit:1268 */
9359 fra.me.REG[2] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9360 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9361 fra.me.REG[5] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]);
9362 fra.me.REG[5] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
9363 CALL_syntax___mmbuilder___SignatureBuilder___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
9364 /* ./syntax//mmbuilder.nit:1269 */
9365 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9366 REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[5])(fra.me.REG[5]);
9367 REGB1 = TAG_Int(0);
9368 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
9369 if (UNTAG_Bool(REGB2)) {
9370 } else {
9371 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9372 }
9373 /* ./../lib/standard//kernel.nit:216 */
9374 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
9375 /* ./syntax//mmbuilder.nit:1269 */
9376 if (UNTAG_Bool(REGB1)) {
9377 /* ./syntax//mmbuilder.nit:1270 */
9378 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9379 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[5])(fra.me.REG[5]);
9380 fra.me.REG[2] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9381 REGB1 = CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[2])(fra.me.REG[2]);
9382 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9383 if (UNTAG_Bool(REGB0)) {
9384 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1270);
9385 }
9386 CALL_metamodel___vararg___MMSignature___vararg_rank__eq(fra.me.REG[5])(fra.me.REG[5], REGB1);
9387 }
9388 /* ./syntax//mmbuilder.nit:1272 */
9389 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9390 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[5])(fra.me.REG[5]);
9391 /* ./../lib/standard//collection//array.nit:232 */
9392 REGB1 = TAG_Int(0);
9393 /* ./../lib/standard//collection//array.nit:233 */
9394 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
9395 if (UNTAG_Bool(REGB0)) {
9396 } else {
9397 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 233);
9398 }
9399 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
9400 /* ./../lib/standard//collection//array.nit:234 */
9401 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
9402 /* ./../lib/standard//collection//array.nit:235 */
9403 while(1) {
9404 /* ./../lib/standard//collection//array.nit:23 */
9405 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
9406 if (UNTAG_Bool(REGB0)) {
9407 } else {
9408 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
9409 }
9410 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
9411 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9412 if (UNTAG_Bool(REGB2)) {
9413 } else {
9414 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9415 }
9416 /* ./../lib/standard//kernel.nit:215 */
9417 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
9418 /* ./../lib/standard//collection//array.nit:235 */
9419 if (UNTAG_Bool(REGB0)) {
9420 /* ./../lib/standard//collection//array.nit:236 */
9421 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9422 if (UNTAG_Bool(REGB0)) {
9423 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 236);
9424 }
9425 /* ./../lib/standard//collection//array.nit:652 */
9426 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
9427 /* ./syntax//mmbuilder.nit:1273 */
9428 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9429 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
9430 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9431 if (UNTAG_Bool(REGB0)) {
9432 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1273);
9433 }
9434 fra.me.REG[1] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
9435 fra.me.REG[0] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[0])(fra.me.REG[0]);
9436 fra.me.REG[0] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[0])(fra.me.REG[0]);
9437 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
9438 /* ./../lib/standard//collection//array.nit:237 */
9439 REGB0 = TAG_Int(1);
9440 /* ./../lib/standard//kernel.nit:218 */
9441 REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
9442 /* ./../lib/standard//collection//array.nit:237 */
9443 REGB1 = REGB0;
9444 } else {
9445 /* ./../lib/standard//collection//array.nit:235 */
9446 goto label4;
9447 }
9448 }
9449 label4: while(0);
9450 }
9451 }
9452 }
9453 label1: while(0);
9454 stack_frame_head = fra.me.prev;
9455 return;
9456 }
9457 void syntax___mmbuilder___ASignature___check_visibility(val_t p0, val_t p1, val_t p2){
9458 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9459 val_t REGB0;
9460 val_t REGB1;
9461 val_t REGB2;
9462 val_t tmp;
9463 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9464 fra.me.file = LOCATE_syntax___mmbuilder;
9465 fra.me.line = 1278;
9466 fra.me.meth = LOCATE_syntax___mmbuilder___ASignature___check_visibility;
9467 fra.me.has_broke = 0;
9468 fra.me.REG_size = 4;
9469 fra.me.REG[0] = NIT_NULL;
9470 fra.me.REG[1] = NIT_NULL;
9471 fra.me.REG[2] = NIT_NULL;
9472 fra.me.REG[3] = NIT_NULL;
9473 fra.me.REG[0] = p0;
9474 fra.me.REG[1] = p1;
9475 fra.me.REG[2] = p2;
9476 /* ./syntax//mmbuilder.nit:1281 */
9477 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
9478 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
9479 REGB1 = TAG_Int(3);
9480 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
9481 if (UNTAG_Bool(REGB2)) {
9482 } else {
9483 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9484 }
9485 /* ./../lib/standard//kernel.nit:216 */
9486 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
9487 /* ./syntax//mmbuilder.nit:1281 */
9488 if (UNTAG_Bool(REGB1)) {
9489 goto label1;
9490 }
9491 /* ./syntax//mmbuilder.nit:1282 */
9492 fra.me.REG[3] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[0])(fra.me.REG[0]);
9493 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___ASignature___check_visibility_2));
9494 /* ./syntax//mmbuilder.nit:1285 */
9495 fra.me.REG[3] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[0])(fra.me.REG[0]);
9496 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9497 if (UNTAG_Bool(REGB1)) {
9498 } else {
9499 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9500 if (UNTAG_Bool(REGB0)) {
9501 REGB0 = TAG_Bool(false);
9502 REGB1 = REGB0;
9503 } else {
9504 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9505 REGB1 = REGB0;
9506 }
9507 }
9508 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
9509 if (UNTAG_Bool(REGB1)) {
9510 fra.me.REG[0] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[0])(fra.me.REG[0]);
9511 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9512 if (UNTAG_Bool(REGB1)) {
9513 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1285);
9514 }
9515 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
9516 }
9517 label1: while(0);
9518 stack_frame_head = fra.me.prev;
9519 return;
9520 }
9521 void OC_syntax___mmbuilder___ASignature___check_visibility_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
9522 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9523 val_t REGB0;
9524 val_t REGB1;
9525 fun_t CREG[1];
9526 val_t tmp;
9527 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9528 fra.me.file = LOCATE_syntax___mmbuilder;
9529 fra.me.line = 0;
9530 fra.me.meth = LOCATE_syntax___mmbuilder___ASignature___check_visibility;
9531 fra.me.has_broke = 0;
9532 fra.me.REG_size = 2;
9533 fra.me.REG[0] = NIT_NULL;
9534 fra.me.REG[1] = NIT_NULL;
9535 fra.me.closure_ctx = closctx_param;
9536 fra.me.closure_funs = CREG;
9537 fra.me.REG[0] = p0;
9538 CREG[0] = clos_fun0;
9539 /* ./syntax//mmbuilder.nit:1283 */
9540 fra.me.REG[1] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[0])(fra.me.REG[0]);
9541 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9542 if (UNTAG_Bool(REGB0)) {
9543 } else {
9544 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9545 if (UNTAG_Bool(REGB1)) {
9546 REGB1 = TAG_Bool(false);
9547 REGB0 = REGB1;
9548 } else {
9549 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9550 REGB0 = REGB1;
9551 }
9552 }
9553 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9554 if (UNTAG_Bool(REGB0)) {
9555 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[0])(fra.me.REG[0]);
9556 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9557 if (UNTAG_Bool(REGB0)) {
9558 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1283);
9559 }
9560 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1], closctx->REG[2]);
9561 }
9562 stack_frame_head = fra.me.prev;
9563 return;
9564 }
9565 val_t syntax___mmbuilder___AParam___position(val_t p0){
9566 struct {struct stack_frame_t me;} fra;
9567 val_t REGB0;
9568 val_t tmp;
9569 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9570 fra.me.file = LOCATE_syntax___mmbuilder;
9571 fra.me.line = 1290;
9572 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___position;
9573 fra.me.has_broke = 0;
9574 fra.me.REG_size = 1;
9575 fra.me.REG[0] = NIT_NULL;
9576 fra.me.REG[0] = p0;
9577 /* ./syntax//mmbuilder.nit:1290 */
9578 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___AParam____position(fra.me.REG[0])!=NIT_NULL);
9579 if (UNTAG_Bool(REGB0)) {
9580 } else {
9581 nit_abort("Uninitialized attribute %s", "_position", LOCATE_syntax___mmbuilder, 1290);
9582 }
9583 REGB0 = ATTR_syntax___mmbuilder___AParam____position(fra.me.REG[0]);
9584 stack_frame_head = fra.me.prev;
9585 return REGB0;
9586 }
9587 val_t syntax___mmbuilder___AParam___variable(val_t p0){
9588 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9589 val_t REGB0;
9590 val_t tmp;
9591 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9592 fra.me.file = LOCATE_syntax___mmbuilder;
9593 fra.me.line = 1292;
9594 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___variable;
9595 fra.me.has_broke = 0;
9596 fra.me.REG_size = 2;
9597 fra.me.REG[0] = NIT_NULL;
9598 fra.me.REG[1] = NIT_NULL;
9599 fra.me.REG[0] = p0;
9600 /* ./syntax//mmbuilder.nit:1292 */
9601 fra.me.REG[1] = fra.me.REG[0];
9602 fra.me.REG[1] = ATTR_syntax___mmbuilder___AParam____variable(fra.me.REG[1]);
9603 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
9604 if (UNTAG_Bool(REGB0)) {
9605 } else {
9606 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1292);
9607 }
9608 goto label1;
9609 label1: while(0);
9610 stack_frame_head = fra.me.prev;
9611 return fra.me.REG[1];
9612 }
9613 val_t syntax___mmbuilder___AParam___stype(val_t p0){
9614 struct {struct stack_frame_t me;} fra;
9615 val_t tmp;
9616 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9617 fra.me.file = LOCATE_syntax___mmbuilder;
9618 fra.me.line = 1295;
9619 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___stype;
9620 fra.me.has_broke = 0;
9621 fra.me.REG_size = 1;
9622 fra.me.REG[0] = NIT_NULL;
9623 fra.me.REG[0] = p0;
9624 /* ./syntax//mmbuilder.nit:1295 */
9625 fra.me.REG[0] = ATTR_syntax___mmbuilder___AParam____stype(fra.me.REG[0]);
9626 stack_frame_head = fra.me.prev;
9627 return fra.me.REG[0];
9628 }
9629 void syntax___mmbuilder___AParam___stype__eq(val_t p0, val_t p1){
9630 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9631 val_t tmp;
9632 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9633 fra.me.file = LOCATE_syntax___mmbuilder;
9634 fra.me.line = 1295;
9635 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___stype__eq;
9636 fra.me.has_broke = 0;
9637 fra.me.REG_size = 2;
9638 fra.me.REG[0] = NIT_NULL;
9639 fra.me.REG[1] = NIT_NULL;
9640 fra.me.REG[0] = p0;
9641 fra.me.REG[1] = p1;
9642 /* ./syntax//mmbuilder.nit:1295 */
9643 ATTR_syntax___mmbuilder___AParam____stype(fra.me.REG[0]) = fra.me.REG[1];
9644 stack_frame_head = fra.me.prev;
9645 return;
9646 }
9647 void syntax___mmbuilder___AParam___accept_property_verifier(val_t p0, val_t p1){
9648 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
9649 val_t REGB0;
9650 val_t REGB1;
9651 val_t REGB2;
9652 val_t REGB3;
9653 val_t tmp;
9654 static val_t once_value_2; /* Once value */
9655 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9656 fra.me.file = LOCATE_syntax___mmbuilder;
9657 fra.me.line = 1298;
9658 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___accept_property_verifier;
9659 fra.me.has_broke = 0;
9660 fra.me.REG_size = 7;
9661 fra.me.REG[0] = NIT_NULL;
9662 fra.me.REG[1] = NIT_NULL;
9663 fra.me.REG[2] = NIT_NULL;
9664 fra.me.REG[3] = NIT_NULL;
9665 fra.me.REG[4] = NIT_NULL;
9666 fra.me.REG[5] = NIT_NULL;
9667 fra.me.REG[6] = NIT_NULL;
9668 fra.me.REG[0] = p0;
9669 fra.me.REG[1] = p1;
9670 /* ./syntax//mmbuilder.nit:1298 */
9671 fra.me.REG[2] = fra.me.REG[0];
9672 fra.me.REG[3] = fra.me.REG[1];
9673 /* ./syntax//mmbuilder.nit:1300 */
9674 CALL_SUPER_syntax___mmbuilder___AParam___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9675 /* ./syntax//mmbuilder.nit:1301 */
9676 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9677 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[1])(fra.me.REG[1]);
9678 /* ./../lib/standard//collection//array.nit:23 */
9679 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
9680 if (UNTAG_Bool(REGB0)) {
9681 } else {
9682 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
9683 }
9684 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
9685 /* ./syntax//mmbuilder.nit:1301 */
9686 ATTR_syntax___mmbuilder___AParam____position(fra.me.REG[2]) = REGB0;
9687 /* ./syntax//mmbuilder.nit:1302 */
9688 fra.me.REG[1] = CALL_parser___parser_nodes___AParam___n_id(fra.me.REG[2])(fra.me.REG[2]);
9689 fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
9690 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_id(fra.me.REG[2])(fra.me.REG[2]);
9691 fra.me.REG[0] = NEW_ParamVariable_syntax___syntax_base___ParamVariable___init(fra.me.REG[1], fra.me.REG[0]);
9692 ATTR_syntax___mmbuilder___AParam____variable(fra.me.REG[2]) = fra.me.REG[0];
9693 /* ./syntax//mmbuilder.nit:1303 */
9694 fra.me.REG[0] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9695 fra.me.REG[0] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[0])(fra.me.REG[0]);
9696 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
9697 /* ./syntax//mmbuilder.nit:1304 */
9698 fra.me.REG[0] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9699 fra.me.REG[0] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[0])(fra.me.REG[0]);
9700 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
9701 /* ./syntax//mmbuilder.nit:1305 */
9702 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[2])(fra.me.REG[2]);
9703 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9704 if (UNTAG_Bool(REGB0)) {
9705 } else {
9706 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9707 if (UNTAG_Bool(REGB1)) {
9708 REGB1 = TAG_Bool(false);
9709 REGB0 = REGB1;
9710 } else {
9711 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
9712 REGB0 = REGB1;
9713 }
9714 }
9715 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9716 if (UNTAG_Bool(REGB0)) {
9717 /* ./syntax//mmbuilder.nit:1306 */
9718 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[2])(fra.me.REG[2]);
9719 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9720 if (UNTAG_Bool(REGB0)) {
9721 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1306);
9722 }
9723 fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
9724 /* ./syntax//mmbuilder.nit:1307 */
9725 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9726 if (UNTAG_Bool(REGB0)) {
9727 } else {
9728 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9729 if (UNTAG_Bool(REGB1)) {
9730 REGB1 = TAG_Bool(false);
9731 REGB0 = REGB1;
9732 } else {
9733 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
9734 REGB0 = REGB1;
9735 }
9736 }
9737 if (UNTAG_Bool(REGB0)) {
9738 /* ./syntax//mmbuilder.nit:1308 */
9739 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9740 REGB0 = TAG_Bool(true);
9741 CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
9742 /* ./syntax//mmbuilder.nit:1309 */
9743 goto label1;
9744 }
9745 /* ./syntax//mmbuilder.nit:1311 */
9746 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9747 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
9748 /* ./../lib/standard//collection//array.nit:232 */
9749 REGB0 = TAG_Int(0);
9750 /* ./../lib/standard//collection//array.nit:233 */
9751 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
9752 if (UNTAG_Bool(REGB1)) {
9753 } else {
9754 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 233);
9755 }
9756 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
9757 /* ./../lib/standard//collection//array.nit:234 */
9758 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
9759 /* ./../lib/standard//collection//array.nit:235 */
9760 while(1) {
9761 /* ./../lib/standard//collection//array.nit:23 */
9762 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
9763 if (UNTAG_Bool(REGB1)) {
9764 } else {
9765 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
9766 }
9767 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
9768 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
9769 if (UNTAG_Bool(REGB2)) {
9770 } else {
9771 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9772 }
9773 /* ./../lib/standard//kernel.nit:215 */
9774 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
9775 /* ./../lib/standard//collection//array.nit:235 */
9776 if (UNTAG_Bool(REGB1)) {
9777 /* ./../lib/standard//collection//array.nit:236 */
9778 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9779 if (UNTAG_Bool(REGB1)) {
9780 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 236);
9781 }
9782 /* ./../lib/standard//collection//array.nit:652 */
9783 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
9784 /* ./syntax//mmbuilder.nit:1312 */
9785 CALL_syntax___mmbuilder___AParam___stype__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
9786 /* ./syntax//mmbuilder.nit:1313 */
9787 REGB1 = CALL_syntax___mmbuilder___AParam___is_vararg(fra.me.REG[2])(fra.me.REG[2]);
9788 if (UNTAG_Bool(REGB1)) {
9789 /* ./syntax//mmbuilder.nit:1314 */
9790 fra.me.REG[6] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9791 REGB1 = CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[6])(fra.me.REG[6]);
9792 REGB2 = TAG_Int(1);
9793 /* ./../lib/standard//kernel.nit:219 */
9794 REGB2 = TAG_Int(-UNTAG_Int(REGB2));
9795 /* ./syntax//mmbuilder.nit:1314 */
9796 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
9797 if (UNTAG_Bool(REGB3)) {
9798 } else {
9799 /* ./../lib/standard//kernel.nit:210 */
9800 REGB2 = TAG_Bool((REGB1)==(REGB2));
9801 /* ./syntax//mmbuilder.nit:1314 */
9802 REGB3 = REGB2;
9803 }
9804 if (UNTAG_Bool(REGB3)) {
9805 /* ./syntax//mmbuilder.nit:1315 */
9806 fra.me.REG[6] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9807 REGB3 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[5])(fra.me.REG[5]);
9808 CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank__eq(fra.me.REG[6])(fra.me.REG[6], REGB3);
9809 } else {
9810 /* ./syntax//mmbuilder.nit:1317 */
9811 if (!once_value_2) {
9812 fra.me.REG[6] = BOX_NativeString("Error: A vararg parameter is already defined.");
9813 REGB3 = TAG_Int(45);
9814 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB3);
9815 once_value_2 = fra.me.REG[6];
9816 register_static_object(&once_value_2);
9817 } else fra.me.REG[6] = once_value_2;
9818 fra.me.REG[6] = fra.me.REG[6];
9819 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
9820 }
9821 /* ./syntax//mmbuilder.nit:1319 */
9822 fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
9823 fra.me.REG[0] = fra.me.REG[6];
9824 }
9825 /* ./syntax//mmbuilder.nit:1321 */
9826 fra.me.REG[5] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[5])(fra.me.REG[5]);
9827 CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
9828 /* ./../lib/standard//collection//array.nit:237 */
9829 REGB3 = TAG_Int(1);
9830 /* ./../lib/standard//kernel.nit:218 */
9831 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
9832 /* ./../lib/standard//collection//array.nit:237 */
9833 REGB0 = REGB3;
9834 } else {
9835 /* ./../lib/standard//collection//array.nit:235 */
9836 goto label3;
9837 }
9838 }
9839 label3: while(0);
9840 /* ./syntax//mmbuilder.nit:1323 */
9841 fra.me.REG[3] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9842 fra.me.REG[3] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[3])(fra.me.REG[3]);
9843 CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[3])(fra.me.REG[3]);
9844 }
9845 label1: while(0);
9846 stack_frame_head = fra.me.prev;
9847 return;
9848 }
9849 val_t syntax___mmbuilder___AParam___is_vararg(val_t p0){
9850 struct {struct stack_frame_t me;} fra;
9851 val_t REGB0;
9852 val_t REGB1;
9853 val_t tmp;
9854 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9855 fra.me.file = LOCATE_syntax___mmbuilder;
9856 fra.me.line = 1327;
9857 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___is_vararg;
9858 fra.me.has_broke = 0;
9859 fra.me.REG_size = 1;
9860 fra.me.REG[0] = NIT_NULL;
9861 fra.me.REG[0] = p0;
9862 /* ./syntax//mmbuilder.nit:1327 */
9863 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_dotdotdot(fra.me.REG[0])(fra.me.REG[0]);
9864 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9865 if (UNTAG_Bool(REGB0)) {
9866 } else {
9867 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9868 if (UNTAG_Bool(REGB1)) {
9869 REGB1 = TAG_Bool(false);
9870 REGB0 = REGB1;
9871 } else {
9872 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
9873 REGB0 = REGB1;
9874 }
9875 }
9876 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9877 goto label1;
9878 label1: while(0);
9879 stack_frame_head = fra.me.prev;
9880 return REGB0;
9881 }
9882 val_t syntax___mmbuilder___AClosureDecl___position(val_t p0){
9883 struct {struct stack_frame_t me;} fra;
9884 val_t REGB0;
9885 val_t tmp;
9886 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9887 fra.me.file = LOCATE_syntax___mmbuilder;
9888 fra.me.line = 1331;
9889 fra.me.meth = LOCATE_syntax___mmbuilder___AClosureDecl___position;
9890 fra.me.has_broke = 0;
9891 fra.me.REG_size = 1;
9892 fra.me.REG[0] = NIT_NULL;
9893 fra.me.REG[0] = p0;
9894 /* ./syntax//mmbuilder.nit:1331 */
9895 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___AClosureDecl____position(fra.me.REG[0])!=NIT_NULL);
9896 if (UNTAG_Bool(REGB0)) {
9897 } else {
9898 nit_abort("Uninitialized attribute %s", "_position", LOCATE_syntax___mmbuilder, 1331);
9899 }
9900 REGB0 = ATTR_syntax___mmbuilder___AClosureDecl____position(fra.me.REG[0]);
9901 stack_frame_head = fra.me.prev;
9902 return REGB0;
9903 }
9904 val_t syntax___mmbuilder___AClosureDecl___variable(val_t p0){
9905 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9906 val_t REGB0;
9907 val_t tmp;
9908 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9909 fra.me.file = LOCATE_syntax___mmbuilder;
9910 fra.me.line = 1333;
9911 fra.me.meth = LOCATE_syntax___mmbuilder___AClosureDecl___variable;
9912 fra.me.has_broke = 0;
9913 fra.me.REG_size = 2;
9914 fra.me.REG[0] = NIT_NULL;
9915 fra.me.REG[1] = NIT_NULL;
9916 fra.me.REG[0] = p0;
9917 /* ./syntax//mmbuilder.nit:1333 */
9918 fra.me.REG[1] = fra.me.REG[0];
9919 fra.me.REG[1] = ATTR_syntax___mmbuilder___AClosureDecl____variable(fra.me.REG[1]);
9920 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
9921 if (UNTAG_Bool(REGB0)) {
9922 } else {
9923 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1333);
9924 }
9925 goto label1;
9926 label1: while(0);
9927 stack_frame_head = fra.me.prev;
9928 return fra.me.REG[1];
9929 }
9930 void syntax___mmbuilder___AClosureDecl___accept_property_verifier(val_t p0, val_t p1){
9931 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
9932 val_t REGB0;
9933 val_t REGB1;
9934 val_t REGB2;
9935 val_t tmp;
9936 static val_t once_value_2; /* Once value */
9937 static val_t once_value_3; /* Once value */
9938 static val_t once_value_4; /* Once value */
9939 static val_t once_value_5; /* Once value */
9940 static val_t once_value_6; /* Once value */
9941 static val_t once_value_7; /* Once value */
9942 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9943 fra.me.file = LOCATE_syntax___mmbuilder;
9944 fra.me.line = 1336;
9945 fra.me.meth = LOCATE_syntax___mmbuilder___AClosureDecl___accept_property_verifier;
9946 fra.me.has_broke = 0;
9947 fra.me.REG_size = 11;
9948 fra.me.REG[0] = NIT_NULL;
9949 fra.me.REG[1] = NIT_NULL;
9950 fra.me.REG[2] = NIT_NULL;
9951 fra.me.REG[3] = NIT_NULL;
9952 fra.me.REG[4] = NIT_NULL;
9953 fra.me.REG[5] = NIT_NULL;
9954 fra.me.REG[6] = NIT_NULL;
9955 fra.me.REG[7] = NIT_NULL;
9956 fra.me.REG[8] = NIT_NULL;
9957 fra.me.REG[9] = NIT_NULL;
9958 fra.me.REG[10] = NIT_NULL;
9959 fra.me.REG[0] = p0;
9960 fra.me.REG[1] = p1;
9961 /* ./syntax//mmbuilder.nit:1336 */
9962 fra.me.REG[2] = fra.me.REG[0];
9963 fra.me.REG[3] = fra.me.REG[1];
9964 /* ./syntax//mmbuilder.nit:1338 */
9965 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9966 /* ./syntax//mmbuilder.nit:1339 */
9967 fra.me.REG[5] = NEW_SignatureBuilder_syntax___mmbuilder___SignatureBuilder___init();
9968 CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
9969 /* ./syntax//mmbuilder.nit:1340 */
9970 CALL_SUPER_syntax___mmbuilder___AClosureDecl___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9971 /* ./syntax//mmbuilder.nit:1341 */
9972 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9973 REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
9974 if (UNTAG_Bool(REGB0)) {
9975 /* ./syntax//mmbuilder.nit:1342 */
9976 goto label1;
9977 }
9978 /* ./syntax//mmbuilder.nit:1344 */
9979 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9980 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
9981 /* ./syntax//mmbuilder.nit:1345 */
9982 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9983 if (UNTAG_Bool(REGB0)) {
9984 } else {
9985 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9986 if (UNTAG_Bool(REGB1)) {
9987 REGB1 = TAG_Bool(false);
9988 REGB0 = REGB1;
9989 } else {
9990 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9991 REGB0 = REGB1;
9992 }
9993 }
9994 if (UNTAG_Bool(REGB0)) {
9995 /* ./syntax//mmbuilder.nit:1346 */
9996 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
9997 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9998 fra.me.REG[5] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]);
9999 fra.me.REG[5] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[5]);
10000 fra.me.REG[1] = fra.me.REG[5];
10001 }
10002 /* ./syntax//mmbuilder.nit:1348 */
10003 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10004 if (UNTAG_Bool(REGB0)) {
10005 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1348);
10006 }
10007 fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[1])(fra.me.REG[1]);
10008 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10009 if (UNTAG_Bool(REGB0)) {
10010 } else {
10011 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10012 if (UNTAG_Bool(REGB1)) {
10013 REGB1 = TAG_Bool(false);
10014 REGB0 = REGB1;
10015 } else {
10016 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10017 REGB0 = REGB1;
10018 }
10019 }
10020 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10021 if (UNTAG_Bool(REGB0)) {
10022 fra.me.REG[5] = CALL_parser___parser_nodes___AClosureDecl___n_kwbreak(fra.me.REG[2])(fra.me.REG[2]);
10023 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10024 if (UNTAG_Bool(REGB0)) {
10025 } else {
10026 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10027 if (UNTAG_Bool(REGB1)) {
10028 REGB1 = TAG_Bool(false);
10029 REGB0 = REGB1;
10030 } else {
10031 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10032 REGB0 = REGB1;
10033 }
10034 }
10035 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10036 } else {
10037 REGB1 = TAG_Bool(false);
10038 REGB0 = REGB1;
10039 }
10040 if (UNTAG_Bool(REGB0)) {
10041 /* ./syntax//mmbuilder.nit:1349 */
10042 if (!once_value_2) {
10043 fra.me.REG[5] = BOX_NativeString("Syntax Error: A break block cannot have a return value.");
10044 REGB0 = TAG_Int(55);
10045 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
10046 once_value_2 = fra.me.REG[5];
10047 register_static_object(&once_value_2);
10048 } else fra.me.REG[5] = once_value_2;
10049 fra.me.REG[5] = fra.me.REG[5];
10050 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[5]);
10051 }
10052 /* ./syntax//mmbuilder.nit:1353 */
10053 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
10054 fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
10055 fra.me.REG[0] = CALL_metamodel___inheritance___MMModule___type_any(fra.me.REG[0])(fra.me.REG[0]);
10056 fra.me.REG[0] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[5], NIT_NULL, fra.me.REG[0]);
10057 /* ./syntax//mmbuilder.nit:1354 */
10058 if (!once_value_3) {
10059 if (!once_value_4) {
10060 fra.me.REG[5] = BOX_NativeString("break");
10061 REGB0 = TAG_Int(5);
10062 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
10063 once_value_4 = fra.me.REG[5];
10064 register_static_object(&once_value_4);
10065 } else fra.me.REG[5] = once_value_4;
10066 fra.me.REG[5] = fra.me.REG[5];
10067 fra.me.REG[5] = CALL_standard___symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
10068 once_value_3 = fra.me.REG[5];
10069 register_static_object(&once_value_3);
10070 } else fra.me.REG[5] = once_value_3;
10071 fra.me.REG[5] = fra.me.REG[5];
10072 REGB0 = TAG_Bool(false);
10073 REGB1 = TAG_Bool(true);
10074 fra.me.REG[0] = NEW_MMClosure_metamodel___static_type___MMClosure___init(fra.me.REG[5], fra.me.REG[0], REGB0, REGB1);
10075 /* ./syntax//mmbuilder.nit:1355 */
10076 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10077 if (UNTAG_Bool(REGB1)) {
10078 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1355);
10079 }
10080 fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
10081 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
10082 /* ./syntax//mmbuilder.nit:1357 */
10083 fra.me.REG[0] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10084 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
10085 /* ./syntax//mmbuilder.nit:1358 */
10086 fra.me.REG[5] = CALL_parser___parser_nodes___AClosureDecl___n_kwbreak(fra.me.REG[2])(fra.me.REG[2]);
10087 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10088 if (UNTAG_Bool(REGB1)) {
10089 } else {
10090 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10091 if (UNTAG_Bool(REGB0)) {
10092 REGB0 = TAG_Bool(false);
10093 REGB1 = REGB0;
10094 } else {
10095 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10096 REGB1 = REGB0;
10097 }
10098 }
10099 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
10100 fra.me.REG[5] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra.me.REG[2])(fra.me.REG[2]);
10101 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10102 if (UNTAG_Bool(REGB0)) {
10103 } else {
10104 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10105 if (UNTAG_Bool(REGB2)) {
10106 REGB2 = TAG_Bool(false);
10107 REGB0 = REGB2;
10108 } else {
10109 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10110 REGB0 = REGB2;
10111 }
10112 }
10113 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10114 fra.me.REG[1] = NEW_MMClosure_metamodel___static_type___MMClosure___init(fra.me.REG[0], fra.me.REG[1], REGB1, REGB0);
10115 /* ./syntax//mmbuilder.nit:1359 */
10116 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
10117 /* ./../lib/standard//collection//array.nit:232 */
10118 REGB0 = TAG_Int(0);
10119 /* ./../lib/standard//collection//array.nit:233 */
10120 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
10121 if (UNTAG_Bool(REGB1)) {
10122 } else {
10123 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 233);
10124 }
10125 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
10126 /* ./../lib/standard//collection//array.nit:234 */
10127 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
10128 /* ./../lib/standard//collection//array.nit:235 */
10129 while(1) {
10130 /* ./../lib/standard//collection//array.nit:23 */
10131 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
10132 if (UNTAG_Bool(REGB1)) {
10133 } else {
10134 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
10135 }
10136 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
10137 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
10138 if (UNTAG_Bool(REGB2)) {
10139 } else {
10140 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10141 }
10142 /* ./../lib/standard//kernel.nit:215 */
10143 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
10144 /* ./../lib/standard//collection//array.nit:235 */
10145 if (UNTAG_Bool(REGB1)) {
10146 /* ./../lib/standard//collection//array.nit:236 */
10147 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
10148 if (UNTAG_Bool(REGB1)) {
10149 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 236);
10150 }
10151 /* ./../lib/standard//collection//array.nit:652 */
10152 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
10153 /* ./syntax//mmbuilder.nit:1360 */
10154 fra.me.REG[8] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[7])(fra.me.REG[7]);
10155 fra.me.REG[8] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[8])(fra.me.REG[8]);
10156 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[8],fra.me.REG[0]));
10157 if (UNTAG_Bool(REGB1)) {
10158 } else {
10159 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
10160 REGB1 = REGB2;
10161 }
10162 if (UNTAG_Bool(REGB1)) {
10163 /* ./syntax//mmbuilder.nit:1361 */
10164 fra.me.REG[8] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10165 REGB1 = TAG_Int(5);
10166 fra.me.REG[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10167 if (!once_value_5) {
10168 fra.me.REG[10] = BOX_NativeString("A closure '!");
10169 REGB1 = TAG_Int(12);
10170 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
10171 once_value_5 = fra.me.REG[10];
10172 register_static_object(&once_value_5);
10173 } else fra.me.REG[10] = once_value_5;
10174 fra.me.REG[10] = fra.me.REG[10];
10175 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10176 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
10177 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10178 if (!once_value_6) {
10179 fra.me.REG[10] = BOX_NativeString("' already defined at ");
10180 REGB1 = TAG_Int(21);
10181 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
10182 once_value_6 = fra.me.REG[10];
10183 register_static_object(&once_value_6);
10184 } else fra.me.REG[10] = once_value_6;
10185 fra.me.REG[10] = fra.me.REG[10];
10186 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10187 fra.me.REG[7] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[7])(fra.me.REG[7]);
10188 fra.me.REG[7] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[7])(fra.me.REG[7]);
10189 fra.me.REG[10] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10190 fra.me.REG[10] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[10])(fra.me.REG[10]);
10191 fra.me.REG[10] = CALL_location___Location___relative_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
10192 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10193 if (!once_value_7) {
10194 fra.me.REG[10] = BOX_NativeString(".");
10195 REGB1 = TAG_Int(1);
10196 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
10197 once_value_7 = fra.me.REG[10];
10198 register_static_object(&once_value_7);
10199 } else fra.me.REG[10] = once_value_7;
10200 fra.me.REG[10] = fra.me.REG[10];
10201 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10202 fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
10203 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8], fra.me.REG[9]);
10204 /* ./syntax//mmbuilder.nit:1362 */
10205 goto label1;
10206 }
10207 /* ./../lib/standard//collection//array.nit:237 */
10208 REGB1 = TAG_Int(1);
10209 /* ./../lib/standard//kernel.nit:218 */
10210 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
10211 /* ./../lib/standard//collection//array.nit:237 */
10212 REGB0 = REGB1;
10213 } else {
10214 /* ./../lib/standard//collection//array.nit:235 */
10215 goto label8;
10216 }
10217 }
10218 label8: while(0);
10219 /* ./syntax//mmbuilder.nit:1365 */
10220 CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
10221 /* ./syntax//mmbuilder.nit:1366 */
10222 fra.me.REG[3] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
10223 /* ./../lib/standard//collection//array.nit:23 */
10224 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
10225 if (UNTAG_Bool(REGB0)) {
10226 } else {
10227 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
10228 }
10229 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
10230 /* ./syntax//mmbuilder.nit:1366 */
10231 ATTR_syntax___mmbuilder___AClosureDecl____position(fra.me.REG[2]) = REGB0;
10232 /* ./syntax//mmbuilder.nit:1367 */
10233 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
10234 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
10235 /* ./syntax//mmbuilder.nit:1368 */
10236 fra.me.REG[4] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10237 fra.me.REG[4] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
10238 fra.me.REG[3] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10239 fra.me.REG[1] = NEW_ClosureVariable_syntax___syntax_base___ClosureVariable___init(fra.me.REG[4], fra.me.REG[3], fra.me.REG[1]);
10240 ATTR_syntax___mmbuilder___AClosureDecl____variable(fra.me.REG[2]) = fra.me.REG[1];
10241 label1: while(0);
10242 stack_frame_head = fra.me.prev;
10243 return;
10244 }
10245 void syntax___mmbuilder___AType___check_visibility(val_t p0, val_t p1, val_t p2){
10246 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
10247 val_t REGB0;
10248 val_t REGB1;
10249 val_t REGB2;
10250 val_t tmp;
10251 static val_t once_value_2; /* Once value */
10252 static val_t once_value_3; /* Once value */
10253 static val_t once_value_4; /* Once value */
10254 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10255 fra.me.file = LOCATE_syntax___mmbuilder;
10256 fra.me.line = 1373;
10257 fra.me.meth = LOCATE_syntax___mmbuilder___AType___check_visibility;
10258 fra.me.has_broke = 0;
10259 fra.me.REG_size = 6;
10260 fra.me.REG[0] = NIT_NULL;
10261 fra.me.REG[1] = NIT_NULL;
10262 fra.me.REG[2] = NIT_NULL;
10263 fra.me.REG[3] = NIT_NULL;
10264 fra.me.REG[4] = NIT_NULL;
10265 fra.me.REG[5] = NIT_NULL;
10266 fra.me.REG[0] = p0;
10267 fra.me.REG[1] = p1;
10268 fra.me.REG[2] = p2;
10269 /* ./syntax//mmbuilder.nit:1376 */
10270 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
10271 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
10272 REGB1 = TAG_Int(3);
10273 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
10274 if (UNTAG_Bool(REGB2)) {
10275 } else {
10276 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10277 }
10278 /* ./../lib/standard//kernel.nit:216 */
10279 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
10280 /* ./syntax//mmbuilder.nit:1376 */
10281 if (UNTAG_Bool(REGB1)) {
10282 goto label1;
10283 }
10284 /* ./syntax//mmbuilder.nit:1377 */
10285 fra.me.REG[3] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
10286 /* ./syntax//mmbuilder.nit:1378 */
10287 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10288 if (UNTAG_Bool(REGB1)) {
10289 } else {
10290 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10291 if (UNTAG_Bool(REGB0)) {
10292 REGB0 = TAG_Bool(false);
10293 REGB1 = REGB0;
10294 } else {
10295 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10296 REGB1 = REGB0;
10297 }
10298 }
10299 if (UNTAG_Bool(REGB1)) {
10300 goto label1;
10301 }
10302 /* ./syntax//mmbuilder.nit:1379 */
10303 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10304 if (UNTAG_Bool(REGB1)) {
10305 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1379);
10306 }
10307 fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]);
10308 /* ./syntax//mmbuilder.nit:1380 */
10309 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
10310 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[4])(fra.me.REG[4]);
10311 REGB0 = TAG_Int(3);
10312 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10313 if (UNTAG_Bool(REGB2)) {
10314 } else {
10315 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10316 }
10317 /* ./../lib/standard//kernel.nit:216 */
10318 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
10319 /* ./syntax//mmbuilder.nit:1380 */
10320 if (UNTAG_Bool(REGB0)) {
10321 /* ./syntax//mmbuilder.nit:1381 */
10322 REGB0 = TAG_Int(5);
10323 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
10324 if (!once_value_2) {
10325 fra.me.REG[5] = BOX_NativeString("Access error: Class ");
10326 REGB0 = TAG_Int(20);
10327 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
10328 once_value_2 = fra.me.REG[5];
10329 register_static_object(&once_value_2);
10330 } else fra.me.REG[5] = once_value_2;
10331 fra.me.REG[5] = fra.me.REG[5];
10332 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
10333 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
10334 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
10335 if (!once_value_3) {
10336 fra.me.REG[3] = BOX_NativeString(" is private and cannot be used in the signature of the non-private property ");
10337 REGB0 = TAG_Int(76);
10338 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
10339 once_value_3 = fra.me.REG[3];
10340 register_static_object(&once_value_3);
10341 } else fra.me.REG[3] = once_value_3;
10342 fra.me.REG[3] = fra.me.REG[3];
10343 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
10344 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
10345 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
10346 if (!once_value_4) {
10347 fra.me.REG[3] = BOX_NativeString(".");
10348 REGB0 = TAG_Int(1);
10349 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
10350 once_value_4 = fra.me.REG[3];
10351 register_static_object(&once_value_4);
10352 } else fra.me.REG[3] = once_value_4;
10353 fra.me.REG[3] = fra.me.REG[3];
10354 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
10355 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
10356 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
10357 }
10358 /* ./syntax//mmbuilder.nit:1383 */
10359 fra.me.REG[0] = CALL_parser___parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
10360 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___AType___check_visibility_5));
10361 label1: while(0);
10362 stack_frame_head = fra.me.prev;
10363 return;
10364 }
10365 void OC_syntax___mmbuilder___AType___check_visibility_5(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
10366 struct {struct stack_frame_t me;} fra;
10367 fun_t CREG[1];
10368 val_t tmp;
10369 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10370 fra.me.file = LOCATE_syntax___mmbuilder;
10371 fra.me.line = 0;
10372 fra.me.meth = LOCATE_syntax___mmbuilder___AType___check_visibility;
10373 fra.me.has_broke = 0;
10374 fra.me.REG_size = 1;
10375 fra.me.REG[0] = NIT_NULL;
10376 fra.me.closure_ctx = closctx_param;
10377 fra.me.closure_funs = CREG;
10378 fra.me.REG[0] = p0;
10379 CREG[0] = clos_fun0;
10380 /* ./syntax//mmbuilder.nit:1384 */
10381 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1], closctx->REG[2]);
10382 stack_frame_head = fra.me.prev;
10383 return;
10384 }
10385 void syntax___mmbuilder___AExpr___accept_class_builder(val_t p0, val_t p1){
10386 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10387 val_t tmp;
10388 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10389 fra.me.file = LOCATE_syntax___mmbuilder;
10390 fra.me.line = 1390;
10391 fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___accept_class_builder;
10392 fra.me.has_broke = 0;
10393 fra.me.REG_size = 2;
10394 fra.me.REG[0] = NIT_NULL;
10395 fra.me.REG[1] = NIT_NULL;
10396 fra.me.REG[0] = p0;
10397 fra.me.REG[1] = p1;
10398 stack_frame_head = fra.me.prev;
10399 return;
10400 }
10401 void syntax___mmbuilder___AExpr___accept_property_builder(val_t p0, val_t p1){
10402 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10403 val_t tmp;
10404 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10405 fra.me.file = LOCATE_syntax___mmbuilder;
10406 fra.me.line = 1391;
10407 fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___accept_property_builder;
10408 fra.me.has_broke = 0;
10409 fra.me.REG_size = 2;
10410 fra.me.REG[0] = NIT_NULL;
10411 fra.me.REG[1] = NIT_NULL;
10412 fra.me.REG[0] = p0;
10413 fra.me.REG[1] = p1;
10414 stack_frame_head = fra.me.prev;
10415 return;
10416 }
10417 void syntax___mmbuilder___AExpr___accept_property_verifier(val_t p0, val_t p1){
10418 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10419 val_t tmp;
10420 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10421 fra.me.file = LOCATE_syntax___mmbuilder;
10422 fra.me.line = 1392;
10423 fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___accept_property_verifier;
10424 fra.me.has_broke = 0;
10425 fra.me.REG_size = 2;
10426 fra.me.REG[0] = NIT_NULL;
10427 fra.me.REG[1] = NIT_NULL;
10428 fra.me.REG[0] = p0;
10429 fra.me.REG[1] = p1;
10430 stack_frame_head = fra.me.prev;
10431 return;
10432 }