add src/doc in gitignore
[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 = 26;
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:28 */
32 fra.me.REG[3] = NIT_NULL;
33 /* ./syntax//mmbuilder.nit:29 */
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:30 */
37 fra.me.REG[4] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[1])(fra.me.REG[1]);
38 /* ./syntax//mmbuilder.nit:31 */
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, 31);
56 }
57 CALL_parser___parser_nodes___ANode___location(fra.me.REG[4])(fra.me.REG[4]);
58 }
59 }
60 /* ./syntax//mmbuilder.nit:34 */
61 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
62 /* ./../lib/standard//collection//array.nit:266 */
63 fra.me.REG[5] = fra.me.REG[2];
64 /* ./../lib/standard//collection//array.nit:269 */
65 REGB0 = TAG_Int(0);
66 /* ./../lib/standard//collection//array.nit:270 */
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, 270);
71 }
72 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
73 /* ./../lib/standard//collection//array.nit:271 */
74 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
75 /* ./../lib/standard//collection//array.nit:272 */
76 while(1) {
77 /* ./../lib/standard//collection//array.nit:24 */
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, 24);
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:232 */
90 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
91 /* ./../lib/standard//collection//array.nit:272 */
92 if (UNTAG_Bool(REGB1)) {
93 /* ./../lib/standard//collection//array.nit:273 */
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, 273);
97 }
98 /* ./../lib/standard//collection//array.nit:718 */
99 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
100 /* ./syntax//mmbuilder.nit:36 */
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:274 */
104 REGB1 = TAG_Int(1);
105 /* ./../lib/standard//kernel.nit:235 */
106 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
107 /* ./../lib/standard//collection//array.nit:274 */
108 REGB0 = REGB1;
109 } else {
110 /* ./../lib/standard//collection//array.nit:272 */
111 goto label1;
112 }
113 }
114 label1: while(0);
115 /* ./syntax//mmbuilder.nit:38 */
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, 38);
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 = 45;
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:47 */
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 = 50;
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:50 */
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 = 54;
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:59 */
250 CALL_metamodel___inheritance___MMModule___import_global_classes(fra.me.REG[0])(fra.me.REG[0]);
251 /* ./syntax//mmbuilder.nit:62 */
252 fra.me.REG[2] = NEW_ClassBuilderVisitor_syntax___mmbuilder___ClassBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]);
253 /* ./syntax//mmbuilder.nit:63 */
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:64 */
257 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
258 /* ./syntax//mmbuilder.nit:66 */
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, 66);
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:67 */
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:71 */
271 CALL_metamodel___inheritance___MMModule___import_local_classes(fra.me.REG[0])(fra.me.REG[0]);
272 /* ./syntax//mmbuilder.nit:74 */
273 fra.me.REG[3] = NEW_ClassSpecializationBuilderVisitor_syntax___mmbuilder___ClassSpecializationBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]);
274 /* ./syntax//mmbuilder.nit:75 */
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:76 */
278 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
279 /* ./syntax//mmbuilder.nit:79 */
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:85 */
283 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
284 /* ./syntax//mmbuilder.nit:90 */
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:93 */
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:94 */
295 CALL_standard___collection___sorter___AbstractSorter___sort(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
296 /* ./syntax//mmbuilder.nit:97 */
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:266 */
299 fra.me.REG[4] = fra.me.REG[2];
300 /* ./../lib/standard//collection//array.nit:269 */
301 REGB0 = TAG_Int(0);
302 /* ./../lib/standard//collection//array.nit:270 */
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, 270);
307 }
308 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
309 /* ./../lib/standard//collection//array.nit:271 */
310 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
311 /* ./../lib/standard//collection//array.nit:272 */
312 while(1) {
313 /* ./../lib/standard//collection//array.nit:24 */
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, 24);
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:232 */
326 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
327 /* ./../lib/standard//collection//array.nit:272 */
328 if (UNTAG_Bool(REGB1)) {
329 /* ./../lib/standard//collection//array.nit:273 */
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, 273);
333 }
334 /* ./../lib/standard//collection//array.nit:718 */
335 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
336 /* ./syntax//mmbuilder.nit:99 */
337 CALL_syntax___mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
338 /* ./syntax//mmbuilder.nit:100 */
339 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
340 /* ./syntax//mmbuilder.nit:101 */
341 CALL_metamodel___inheritance___MMLocalClass___compute_ancestors(fra.me.REG[6])(fra.me.REG[6]);
342 /* ./../lib/standard//collection//array.nit:274 */
343 REGB1 = TAG_Int(1);
344 /* ./../lib/standard//kernel.nit:235 */
345 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
346 /* ./../lib/standard//collection//array.nit:274 */
347 REGB0 = REGB1;
348 } else {
349 /* ./../lib/standard//collection//array.nit:272 */
350 goto label4;
351 }
352 }
353 label4: while(0);
354 /* ./syntax//mmbuilder.nit:105 */
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:266 */
357 fra.me.REG[5] = fra.me.REG[2];
358 /* ./../lib/standard//collection//array.nit:269 */
359 REGB0 = TAG_Int(0);
360 /* ./../lib/standard//collection//array.nit:270 */
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, 270);
365 }
366 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
367 /* ./../lib/standard//collection//array.nit:271 */
368 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
369 /* ./../lib/standard//collection//array.nit:272 */
370 while(1) {
371 /* ./../lib/standard//collection//array.nit:24 */
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, 24);
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:232 */
384 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
385 /* ./../lib/standard//collection//array.nit:272 */
386 if (UNTAG_Bool(REGB1)) {
387 /* ./../lib/standard//collection//array.nit:273 */
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, 273);
391 }
392 /* ./../lib/standard//collection//array.nit:718 */
393 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
394 /* ./syntax//mmbuilder.nit:107 */
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:274 */
397 REGB1 = TAG_Int(1);
398 /* ./../lib/standard//kernel.nit:235 */
399 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
400 /* ./../lib/standard//collection//array.nit:274 */
401 REGB0 = REGB1;
402 } else {
403 /* ./../lib/standard//collection//array.nit:272 */
404 goto label5;
405 }
406 }
407 label5: while(0);
408 /* ./syntax//mmbuilder.nit:109 */
409 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
410 /* ./syntax//mmbuilder.nit:112 */
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:266 */
413 fra.me.REG[4] = fra.me.REG[2];
414 /* ./../lib/standard//collection//array.nit:269 */
415 REGB0 = TAG_Int(0);
416 /* ./../lib/standard//collection//array.nit:270 */
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, 270);
421 }
422 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
423 /* ./../lib/standard//collection//array.nit:271 */
424 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
425 /* ./../lib/standard//collection//array.nit:272 */
426 while(1) {
427 /* ./../lib/standard//collection//array.nit:24 */
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, 24);
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:232 */
440 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
441 /* ./../lib/standard//collection//array.nit:272 */
442 if (UNTAG_Bool(REGB1)) {
443 /* ./../lib/standard//collection//array.nit:273 */
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, 273);
447 }
448 /* ./../lib/standard//collection//array.nit:718 */
449 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
450 /* ./syntax//mmbuilder.nit:115 */
451 CALL_syntax___mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
452 /* ./syntax//mmbuilder.nit:118 */
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_extern(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 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
485 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[7])(fra.me.REG[7]);
486 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
487 } else {
488 REGB2 = TAG_Bool(false);
489 REGB1 = REGB2;
490 }
491 if (UNTAG_Bool(REGB1)) {
492 /* ./syntax//mmbuilder.nit:119 */
493 CALL_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
494 }
495 /* ./../lib/standard//collection//array.nit:274 */
496 REGB1 = TAG_Int(1);
497 /* ./../lib/standard//kernel.nit:235 */
498 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
499 /* ./../lib/standard//collection//array.nit:274 */
500 REGB0 = REGB1;
501 } else {
502 /* ./../lib/standard//collection//array.nit:272 */
503 goto label6;
504 }
505 }
506 label6: while(0);
507 /* ./syntax//mmbuilder.nit:124 */
508 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
509 /* ./syntax//mmbuilder.nit:127 */
510 fra.me.REG[0] = NEW_PropertyVerifierVisitor_syntax___mmbuilder___PropertyVerifierVisitor___init(fra.me.REG[1], fra.me.REG[0]);
511 /* ./../lib/standard//collection//array.nit:269 */
512 REGB0 = TAG_Int(0);
513 /* ./../lib/standard//collection//array.nit:270 */
514 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
515 if (UNTAG_Bool(REGB1)) {
516 } else {
517 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
518 }
519 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
520 /* ./../lib/standard//collection//array.nit:271 */
521 fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
522 /* ./../lib/standard//collection//array.nit:272 */
523 while(1) {
524 /* ./../lib/standard//collection//array.nit:24 */
525 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
526 if (UNTAG_Bool(REGB1)) {
527 } else {
528 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
529 }
530 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
531 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
532 if (UNTAG_Bool(REGB2)) {
533 } else {
534 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
535 }
536 /* ./../lib/standard//kernel.nit:232 */
537 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
538 /* ./../lib/standard//collection//array.nit:272 */
539 if (UNTAG_Bool(REGB1)) {
540 /* ./../lib/standard//collection//array.nit:273 */
541 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
542 if (UNTAG_Bool(REGB1)) {
543 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
544 }
545 /* ./../lib/standard//collection//array.nit:718 */
546 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
547 /* ./syntax//mmbuilder.nit:129 */
548 CALL_syntax___mmbuilder___MMLocalClass___accept_properties_visitor(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
549 /* ./../lib/standard//collection//array.nit:274 */
550 REGB1 = TAG_Int(1);
551 /* ./../lib/standard//kernel.nit:235 */
552 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
553 /* ./../lib/standard//collection//array.nit:274 */
554 REGB0 = REGB1;
555 } else {
556 /* ./../lib/standard//collection//array.nit:272 */
557 goto label7;
558 }
559 }
560 label7: while(0);
561 /* ./syntax//mmbuilder.nit:132 */
562 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
563 stack_frame_head = fra.me.prev;
564 return;
565 }
566 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){
567 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
568 val_t REGB0;
569 val_t REGB1;
570 val_t REGB2;
571 fun_t CREG[1];
572 val_t tmp;
573 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
574 fra.me.file = LOCATE_syntax___mmbuilder;
575 fra.me.line = 0;
576 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcModule___do_mmbuilder;
577 fra.me.has_broke = 0;
578 fra.me.REG_size = 2;
579 fra.me.REG[0] = NIT_NULL;
580 fra.me.REG[1] = NIT_NULL;
581 fra.me.closure_ctx = closctx_param;
582 fra.me.closure_funs = CREG;
583 fra.me.REG[0] = p0;
584 CREG[0] = clos_fun0;
585 /* ./syntax//mmbuilder.nit:80 */
586 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
587 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
588 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
589 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___visibility_for(closctx->REG[0])(closctx->REG[0], fra.me.REG[1]);
590 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
591 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[1])(fra.me.REG[1]);
592 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
593 if (UNTAG_Bool(REGB2)) {
594 } else {
595 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
596 }
597 /* ./../lib/standard//kernel.nit:232 */
598 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
599 /* ./syntax//mmbuilder.nit:80 */
600 if (UNTAG_Bool(REGB1)) {
601 /* ./syntax//mmbuilder.nit:81 */
602 goto label2;
603 }
604 /* ./syntax//mmbuilder.nit:83 */
605 CALL_metamodel___inheritance___MMLocalClass___compute_super_classes(fra.me.REG[0])(fra.me.REG[0]);
606 label2: while(0);
607 stack_frame_head = fra.me.prev;
608 return;
609 }
610 void syntax___mmbuilder___MMSrcModule___process_default_classes(val_t p0, val_t p1){
611 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
612 val_t REGB0;
613 val_t tmp;
614 static val_t once_value_1; /* Once value */
615 static val_t once_value_2; /* Once value */
616 static val_t once_value_3; /* Once value */
617 static val_t once_value_4; /* Once value */
618 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
619 fra.me.file = LOCATE_syntax___mmbuilder;
620 fra.me.line = 135;
621 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcModule___process_default_classes;
622 fra.me.has_broke = 0;
623 fra.me.REG_size = 4;
624 fra.me.REG[0] = NIT_NULL;
625 fra.me.REG[1] = NIT_NULL;
626 fra.me.REG[2] = NIT_NULL;
627 fra.me.REG[3] = NIT_NULL;
628 fra.me.REG[0] = p0;
629 fra.me.REG[1] = p1;
630 /* ./syntax//mmbuilder.nit:138 */
631 if (!once_value_1) {
632 if (!once_value_2) {
633 fra.me.REG[1] = BOX_NativeString("Object");
634 REGB0 = TAG_Int(6);
635 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
636 once_value_2 = fra.me.REG[1];
637 register_static_object(&once_value_2);
638 } else fra.me.REG[1] = once_value_2;
639 fra.me.REG[1] = fra.me.REG[1];
640 fra.me.REG[1] = CALL_standard___symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
641 once_value_1 = fra.me.REG[1];
642 register_static_object(&once_value_1);
643 } else fra.me.REG[1] = once_value_1;
644 fra.me.REG[1] = fra.me.REG[1];
645 /* ./syntax//mmbuilder.nit:139 */
646 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
647 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
648 if (UNTAG_Bool(REGB0)) {
649 /* ./syntax//mmbuilder.nit:140 */
650 REGB0 = TAG_Int(0);
651 fra.me.REG[2] = NEW_MMSrcLocalClass_syntax___syntax_base___MMSrcLocalClass___init(fra.me.REG[0], fra.me.REG[1], NIT_NULL, REGB0);
652 /* ./syntax//mmbuilder.nit:141 */
653 CALL_metamodel___abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
654 /* ./syntax//mmbuilder.nit:142 */
655 fra.me.REG[3] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra.me.REG[0])(fra.me.REG[0]);
656 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[2]);
657 }
658 /* ./syntax//mmbuilder.nit:144 */
659 if (!once_value_3) {
660 if (!once_value_4) {
661 fra.me.REG[2] = BOX_NativeString("Bool");
662 REGB0 = TAG_Int(4);
663 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
664 once_value_4 = fra.me.REG[2];
665 register_static_object(&once_value_4);
666 } else fra.me.REG[2] = once_value_4;
667 fra.me.REG[2] = fra.me.REG[2];
668 fra.me.REG[2] = CALL_standard___symbol___String___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
669 once_value_3 = fra.me.REG[2];
670 register_static_object(&once_value_3);
671 } else fra.me.REG[2] = once_value_3;
672 fra.me.REG[2] = fra.me.REG[2];
673 fra.me.REG[1] = fra.me.REG[2];
674 /* ./syntax//mmbuilder.nit:145 */
675 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
676 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
677 if (UNTAG_Bool(REGB0)) {
678 /* ./syntax//mmbuilder.nit:146 */
679 REGB0 = TAG_Int(0);
680 fra.me.REG[2] = NEW_MMSrcLocalClass_syntax___syntax_base___MMSrcLocalClass___init(fra.me.REG[0], fra.me.REG[1], NIT_NULL, REGB0);
681 /* ./syntax//mmbuilder.nit:147 */
682 CALL_metamodel___abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
683 /* ./syntax//mmbuilder.nit:148 */
684 fra.me.REG[0] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra.me.REG[0])(fra.me.REG[0]);
685 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
686 }
687 stack_frame_head = fra.me.prev;
688 return;
689 }
690 void syntax___mmbuilder___MMLocalClass___accept_class_visitor(val_t p0, val_t p1){
691 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
692 val_t tmp;
693 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
694 fra.me.file = LOCATE_syntax___mmbuilder;
695 fra.me.line = 154;
696 fra.me.meth = LOCATE_syntax___mmbuilder___MMLocalClass___accept_class_visitor;
697 fra.me.has_broke = 0;
698 fra.me.REG_size = 2;
699 fra.me.REG[0] = NIT_NULL;
700 fra.me.REG[1] = NIT_NULL;
701 fra.me.REG[0] = p0;
702 fra.me.REG[1] = p1;
703 stack_frame_head = fra.me.prev;
704 return;
705 }
706 void syntax___mmbuilder___MMLocalClass___accept_properties_visitor(val_t p0, val_t p1){
707 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
708 val_t tmp;
709 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
710 fra.me.file = LOCATE_syntax___mmbuilder;
711 fra.me.line = 159;
712 fra.me.meth = LOCATE_syntax___mmbuilder___MMLocalClass___accept_properties_visitor;
713 fra.me.has_broke = 0;
714 fra.me.REG_size = 2;
715 fra.me.REG[0] = NIT_NULL;
716 fra.me.REG[1] = NIT_NULL;
717 fra.me.REG[0] = p0;
718 fra.me.REG[1] = p1;
719 stack_frame_head = fra.me.prev;
720 return;
721 }
722 void syntax___mmbuilder___MMSrcLocalClass___accept_class_visitor(val_t p0, val_t p1){
723 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
724 val_t REGB0;
725 val_t REGB1;
726 val_t tmp;
727 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
728 fra.me.file = LOCATE_syntax___mmbuilder;
729 fra.me.line = 166;
730 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___accept_class_visitor;
731 fra.me.has_broke = 0;
732 fra.me.REG_size = 3;
733 fra.me.REG[0] = NIT_NULL;
734 fra.me.REG[1] = NIT_NULL;
735 fra.me.REG[2] = NIT_NULL;
736 fra.me.REG[0] = p0;
737 fra.me.REG[1] = p1;
738 /* ./syntax//mmbuilder.nit:168 */
739 fra.me.REG[0] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[0])(fra.me.REG[0]);
740 /* ./syntax//mmbuilder.nit:169 */
741 while(1) {
742 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
743 if (UNTAG_Bool(REGB0)) {
744 } else {
745 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
746 if (UNTAG_Bool(REGB1)) {
747 REGB1 = TAG_Bool(false);
748 REGB0 = REGB1;
749 } else {
750 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
751 REGB0 = REGB1;
752 }
753 }
754 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
755 if (UNTAG_Bool(REGB0)) {
756 /* ./syntax//mmbuilder.nit:170 */
757 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
758 /* ./syntax//mmbuilder.nit:171 */
759 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
760 if (UNTAG_Bool(REGB0)) {
761 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 171);
762 }
763 fra.me.REG[2] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[0])(fra.me.REG[0]);
764 fra.me.REG[0] = fra.me.REG[2];
765 } else {
766 /* ./syntax//mmbuilder.nit:169 */
767 goto label1;
768 }
769 }
770 label1: while(0);
771 stack_frame_head = fra.me.prev;
772 return;
773 }
774 void syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor(val_t p0, val_t p1){
775 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
776 val_t REGB0;
777 val_t REGB1;
778 val_t tmp;
779 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
780 fra.me.file = LOCATE_syntax___mmbuilder;
781 fra.me.line = 175;
782 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor;
783 fra.me.has_broke = 0;
784 fra.me.REG_size = 4;
785 fra.me.REG[0] = NIT_NULL;
786 fra.me.REG[1] = NIT_NULL;
787 fra.me.REG[2] = NIT_NULL;
788 fra.me.REG[3] = NIT_NULL;
789 fra.me.REG[0] = p0;
790 fra.me.REG[1] = p1;
791 /* ./syntax//mmbuilder.nit:178 */
792 fra.me.REG[2] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[0])(fra.me.REG[0]);
793 /* ./syntax//mmbuilder.nit:179 */
794 while(1) {
795 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
796 if (UNTAG_Bool(REGB0)) {
797 } else {
798 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
799 if (UNTAG_Bool(REGB1)) {
800 REGB1 = TAG_Bool(false);
801 REGB0 = REGB1;
802 } else {
803 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
804 REGB0 = REGB1;
805 }
806 }
807 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
808 if (UNTAG_Bool(REGB0)) {
809 /* ./syntax//mmbuilder.nit:180 */
810 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
811 /* ./syntax//mmbuilder.nit:181 */
812 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
813 if (UNTAG_Bool(REGB0)) {
814 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 181);
815 }
816 fra.me.REG[3] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[2])(fra.me.REG[2]);
817 fra.me.REG[2] = fra.me.REG[3];
818 } else {
819 /* ./syntax//mmbuilder.nit:179 */
820 goto label1;
821 }
822 }
823 label1: while(0);
824 /* ./syntax//mmbuilder.nit:184 */
825 fra.me.REG[0] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
826 fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead___values(fra.me.REG[0])(fra.me.REG[0]);
827 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));
828 stack_frame_head = fra.me.prev;
829 return;
830 }
831 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){
832 struct {struct stack_frame_t me;} fra;
833 fun_t CREG[1];
834 val_t tmp;
835 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
836 fra.me.file = LOCATE_syntax___mmbuilder;
837 fra.me.line = 0;
838 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor;
839 fra.me.has_broke = 0;
840 fra.me.REG_size = 1;
841 fra.me.REG[0] = NIT_NULL;
842 fra.me.closure_ctx = closctx_param;
843 fra.me.closure_funs = CREG;
844 fra.me.REG[0] = p0;
845 CREG[0] = clos_fun0;
846 /* ./syntax//mmbuilder.nit:185 */
847 CALL_syntax___mmbuilder___MMLocalProperty___accept_property_visitor(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
848 stack_frame_head = fra.me.prev;
849 return;
850 }
851 void syntax___mmbuilder___MMSrcLocalClass___process_default_constructors(val_t p0, val_t p1){
852 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
853 val_t REGB0;
854 val_t REGB1;
855 val_t REGB2;
856 val_t tmp;
857 static val_t once_value_7; /* Once value */
858 static val_t once_value_8; /* Once value */
859 static val_t once_value_13; /* Once value */
860 static val_t once_value_14; /* Once value */
861 static val_t once_value_15; /* Once value */
862 static val_t once_value_16; /* Once value */
863 static val_t once_value_17; /* Once value */
864 static val_t once_value_18; /* Once value */
865 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
866 fra.me.file = LOCATE_syntax___mmbuilder;
867 fra.me.line = 189;
868 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
869 fra.me.has_broke = 0;
870 fra.me.REG_size = 11;
871 fra.me.REG[0] = NIT_NULL;
872 fra.me.REG[1] = NIT_NULL;
873 fra.me.REG[2] = NIT_NULL;
874 fra.me.REG[3] = NIT_NULL;
875 fra.me.REG[4] = NIT_NULL;
876 fra.me.REG[5] = NIT_NULL;
877 fra.me.REG[6] = NIT_NULL;
878 fra.me.REG[7] = NIT_NULL;
879 fra.me.REG[8] = NIT_NULL;
880 fra.me.REG[9] = NIT_NULL;
881 fra.me.REG[10] = NIT_NULL;
882 fra.me.REG[0] = p0;
883 fra.me.REG[1] = p1;
884 /* ./syntax//mmbuilder.nit:189 */
885 fra.me.REG[2] = fra.me.REG[0];
886 /* ./syntax//mmbuilder.nit:193 */
887 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[2])(fra.me.REG[2]);
888 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));
889 switch ((&(fra.me))->has_broke) {
890 case 0: break;
891 case 1: (&(fra.me))->has_broke = 0; goto label3;
892 }
893 /* ./syntax//mmbuilder.nit:201 */
894 fra.me.REG[3] = NEW_ArraySet_standard___collection___array___ArraySet___init();
895 /* ./syntax//mmbuilder.nit:202 */
896 fra.me.REG[4] = NEW_ArraySet_standard___collection___array___ArraySet___init();
897 /* ./syntax//mmbuilder.nit:203 */
898 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[2])(fra.me.REG[2]);
899 fra.me.REG[5] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[5])(fra.me.REG[5]);
900 /* ./../lib/standard//collection//array.nit:269 */
901 REGB0 = TAG_Int(0);
902 /* ./../lib/standard//collection//array.nit:270 */
903 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
904 if (UNTAG_Bool(REGB1)) {
905 } else {
906 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
907 }
908 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
909 /* ./../lib/standard//collection//array.nit:271 */
910 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
911 /* ./../lib/standard//collection//array.nit:272 */
912 while(1) {
913 /* ./../lib/standard//collection//array.nit:24 */
914 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
915 if (UNTAG_Bool(REGB1)) {
916 } else {
917 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
918 }
919 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
920 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
921 if (UNTAG_Bool(REGB2)) {
922 } else {
923 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
924 }
925 /* ./../lib/standard//kernel.nit:232 */
926 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
927 /* ./../lib/standard//collection//array.nit:272 */
928 if (UNTAG_Bool(REGB1)) {
929 /* ./../lib/standard//collection//array.nit:273 */
930 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
931 if (UNTAG_Bool(REGB1)) {
932 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
933 }
934 /* ./../lib/standard//collection//array.nit:718 */
935 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
936 /* ./syntax//mmbuilder.nit:204 */
937 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
938 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[8])(fra.me.REG[8]);
939 if (UNTAG_Bool(REGB1)) {
940 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
941 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[8])(fra.me.REG[8]);
942 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
943 } else {
944 REGB2 = TAG_Bool(false);
945 REGB1 = REGB2;
946 }
947 if (UNTAG_Bool(REGB1)) {
948 REGB1 = TAG_Bool(true);
949 } else {
950 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
951 REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[8])(fra.me.REG[8]);
952 REGB1 = REGB2;
953 }
954 if (UNTAG_Bool(REGB1)) {
955 goto label4;
956 }
957 /* ./syntax//mmbuilder.nit:205 */
958 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[7])(fra.me.REG[7]);
959 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));
960 /* ./syntax//mmbuilder.nit:209 */
961 if (!once_value_7) {
962 if (!once_value_8) {
963 fra.me.REG[8] = BOX_NativeString("init");
964 REGB1 = TAG_Int(4);
965 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
966 once_value_8 = fra.me.REG[8];
967 register_static_object(&once_value_8);
968 } else fra.me.REG[8] = once_value_8;
969 fra.me.REG[8] = fra.me.REG[8];
970 fra.me.REG[8] = CALL_standard___symbol___String___to_symbol(fra.me.REG[8])(fra.me.REG[8]);
971 once_value_7 = fra.me.REG[8];
972 register_static_object(&once_value_7);
973 } else fra.me.REG[8] = once_value_7;
974 fra.me.REG[8] = fra.me.REG[8];
975 /* ./syntax//mmbuilder.nit:210 */
976 REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
977 if (UNTAG_Bool(REGB1)) {
978 /* ./syntax//mmbuilder.nit:211 */
979 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
980 /* ./syntax//mmbuilder.nit:212 */
981 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]);
982 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
983 }
984 label4: while(0);
985 /* ./../lib/standard//collection//array.nit:274 */
986 REGB1 = TAG_Int(1);
987 /* ./../lib/standard//kernel.nit:235 */
988 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
989 /* ./../lib/standard//collection//array.nit:274 */
990 REGB0 = REGB1;
991 } else {
992 /* ./../lib/standard//collection//array.nit:272 */
993 goto label9;
994 }
995 }
996 label9: while(0);
997 /* ./syntax//mmbuilder.nit:217 */
998 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
999 /* ./syntax//mmbuilder.nit:218 */
1000 fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[2])(fra.me.REG[2]);
1001 fra.me.REG[5] = CALL_standard___collection___abstract_collection___MapRead___values(fra.me.REG[5])(fra.me.REG[5]);
1002 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));
1003 /* ./syntax//mmbuilder.nit:225 */
1004 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[4])(fra.me.REG[4]);
1005 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1006 if (UNTAG_Bool(REGB0)) {
1007 /* ./syntax//mmbuilder.nit:228 */
1008 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
1009 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));
1010 /* ./syntax//mmbuilder.nit:236 */
1011 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[2])(fra.me.REG[2]);
1012 fra.me.REG[8] = CALL_metamodel___partial_order___PartialOrderElement___order(fra.me.REG[8])(fra.me.REG[8]);
1013 fra.me.REG[8] = CALL_metamodel___partial_order___PartialOrder___select_smallests(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
1014 fra.me.REG[5] = fra.me.REG[8];
1015 /* ./syntax//mmbuilder.nit:239 */
1016 fra.me.REG[8] = NIT_NULL;
1017 /* ./../lib/standard//collection//array.nit:24 */
1018 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
1019 if (UNTAG_Bool(REGB0)) {
1020 } else {
1021 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1022 }
1023 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
1024 /* ./syntax//mmbuilder.nit:241 */
1025 REGB1 = TAG_Int(1);
1026 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1027 if (UNTAG_Bool(REGB2)) {
1028 } else {
1029 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1030 }
1031 /* ./../lib/standard//kernel.nit:234 */
1032 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
1033 /* ./syntax//mmbuilder.nit:241 */
1034 if (UNTAG_Bool(REGB1)) {
1035 /* ./syntax//mmbuilder.nit:242 */
1036 fra.me.REG[7] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[2])(fra.me.REG[2]);
1037 REGB1 = TAG_Int(7);
1038 fra.me.REG[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
1039 if (!once_value_13) {
1040 fra.me.REG[10] = BOX_NativeString("Error: Explicit constructor required in ");
1041 REGB1 = TAG_Int(40);
1042 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
1043 once_value_13 = fra.me.REG[10];
1044 register_static_object(&once_value_13);
1045 } else fra.me.REG[10] = once_value_13;
1046 fra.me.REG[10] = fra.me.REG[10];
1047 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1048 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1049 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1050 if (!once_value_14) {
1051 fra.me.REG[10] = BOX_NativeString(" since multiple inheritance of constructor is forbiden. Conflicting classes are ");
1052 REGB1 = TAG_Int(80);
1053 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
1054 once_value_14 = fra.me.REG[10];
1055 register_static_object(&once_value_14);
1056 } else fra.me.REG[10] = once_value_14;
1057 fra.me.REG[10] = fra.me.REG[10];
1058 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1059 if (!once_value_15) {
1060 fra.me.REG[10] = BOX_NativeString(", ");
1061 REGB1 = TAG_Int(2);
1062 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
1063 once_value_15 = fra.me.REG[10];
1064 register_static_object(&once_value_15);
1065 } else fra.me.REG[10] = once_value_15;
1066 fra.me.REG[10] = fra.me.REG[10];
1067 fra.me.REG[10] = CALL_standard___string___Collection___join(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[10]);
1068 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1069 if (!once_value_16) {
1070 fra.me.REG[10] = BOX_NativeString(". Costructors are ");
1071 REGB1 = TAG_Int(18);
1072 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
1073 once_value_16 = fra.me.REG[10];
1074 register_static_object(&once_value_16);
1075 } else fra.me.REG[10] = once_value_16;
1076 fra.me.REG[10] = fra.me.REG[10];
1077 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1078 if (!once_value_17) {
1079 fra.me.REG[10] = BOX_NativeString(", ");
1080 REGB1 = TAG_Int(2);
1081 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
1082 once_value_17 = fra.me.REG[10];
1083 register_static_object(&once_value_17);
1084 } else fra.me.REG[10] = once_value_17;
1085 fra.me.REG[10] = fra.me.REG[10];
1086 fra.me.REG[10] = CALL_standard___string___Collection___join(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[10]);
1087 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1088 if (!once_value_18) {
1089 fra.me.REG[10] = BOX_NativeString(".");
1090 REGB1 = TAG_Int(1);
1091 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
1092 once_value_18 = fra.me.REG[10];
1093 register_static_object(&once_value_18);
1094 } else fra.me.REG[10] = once_value_18;
1095 fra.me.REG[10] = fra.me.REG[10];
1096 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1097 fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
1098 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7], fra.me.REG[9]);
1099 /* ./syntax//mmbuilder.nit:243 */
1100 goto label3;
1101 } else {
1102 /* ./../lib/standard//collection//array.nit:24 */
1103 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
1104 if (UNTAG_Bool(REGB1)) {
1105 } else {
1106 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1107 }
1108 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
1109 /* ./syntax//mmbuilder.nit:244 */
1110 REGB0 = TAG_Int(1);
1111 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0));
1112 if (UNTAG_Bool(REGB2)) {
1113 } else {
1114 /* ./../lib/standard//kernel.nit:227 */
1115 REGB0 = TAG_Bool((REGB1)==(REGB0));
1116 /* ./syntax//mmbuilder.nit:244 */
1117 REGB2 = REGB0;
1118 }
1119 if (UNTAG_Bool(REGB2)) {
1120 /* ./syntax//mmbuilder.nit:245 */
1121 fra.me.REG[5] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[5])(fra.me.REG[5]);
1122 fra.me.REG[8] = fra.me.REG[5];
1123 }
1124 }
1125 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));
1126 /* ./syntax//mmbuilder.nit:254 */
1127 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
1128 REGB2 = TAG_Bool(fra.me.REG[8]!=NIT_NULL);
1129 if (UNTAG_Bool(REGB2)) {
1130 } else {
1131 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 254);
1132 }
1133 REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1134 if (UNTAG_Bool(REGB2)) {
1135 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 254);
1136 }
1137 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[8])(fra.me.REG[8]);
1138 CALL_metamodel___abstractmetamodel___MMGlobalClass___mixin_of__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1139 } else {
1140 /* ./syntax//mmbuilder.nit:259 */
1141 fra.me.REG[3] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[3])(fra.me.REG[3]);
1142 fra.me.REG[3] = NEW_MMImplicitInit_syntax___syntax_base___MMImplicitInit___init(fra.me.REG[2], fra.me.REG[6], fra.me.REG[3]);
1143 /* ./syntax//mmbuilder.nit:260 */
1144 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[3]);
1145 }
1146 label3: while(0);
1147 stack_frame_head = fra.me.prev;
1148 return;
1149 }
1150 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){
1151 struct {struct stack_frame_t me;} fra;
1152 val_t REGB0;
1153 val_t REGB1;
1154 fun_t CREG[1];
1155 val_t tmp;
1156 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1157 fra.me.file = LOCATE_syntax___mmbuilder;
1158 fra.me.line = 0;
1159 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
1160 fra.me.has_broke = 0;
1161 fra.me.REG_size = 1;
1162 fra.me.REG[0] = NIT_NULL;
1163 fra.me.closure_ctx = closctx_param;
1164 fra.me.closure_funs = CREG;
1165 fra.me.REG[0] = p0;
1166 CREG[0] = clos_fun0;
1167 /* ./syntax//mmbuilder.nit:194 */
1168 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
1169 if (UNTAG_Bool(REGB0)) {
1170 /* ./syntax//mmbuilder.nit:196 */
1171 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
1172 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1173 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],closctx->REG[2]));
1174 if (UNTAG_Bool(REGB0)) {
1175 } else {
1176 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[2]);
1177 REGB0 = REGB1;
1178 }
1179 if (UNTAG_Bool(REGB0)) {
1180 closctx->has_broke = 1;
1181 goto label2;
1182 }
1183 }
1184 label2: while(0);
1185 stack_frame_head = fra.me.prev;
1186 return;
1187 }
1188 void OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_5(struct stack_frame_t *closctx, val_t p0){
1189 struct {struct stack_frame_t me;} fra;
1190 val_t REGB0;
1191 val_t tmp;
1192 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1193 fra.me.file = LOCATE_syntax___mmbuilder;
1194 fra.me.line = 0;
1195 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
1196 fra.me.has_broke = 0;
1197 fra.me.REG_size = 1;
1198 fra.me.REG[0] = NIT_NULL;
1199 fra.me.REG[0] = p0;
1200 /* ./syntax//mmbuilder.nit:206 */
1201 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
1202 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1203 if (UNTAG_Bool(REGB0)) {
1204 goto label6;
1205 }
1206 /* ./syntax//mmbuilder.nit:207 */
1207 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[4])(closctx->REG[4], fra.me.REG[0]);
1208 label6: while(0);
1209 stack_frame_head = fra.me.prev;
1210 return;
1211 }
1212 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){
1213 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1214 val_t REGB0;
1215 val_t REGB1;
1216 fun_t CREG[1];
1217 val_t tmp;
1218 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1219 fra.me.file = LOCATE_syntax___mmbuilder;
1220 fra.me.line = 0;
1221 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
1222 fra.me.has_broke = 0;
1223 fra.me.REG_size = 2;
1224 fra.me.REG[0] = NIT_NULL;
1225 fra.me.REG[1] = NIT_NULL;
1226 fra.me.closure_ctx = closctx_param;
1227 fra.me.closure_funs = CREG;
1228 fra.me.REG[0] = p0;
1229 CREG[0] = clos_fun0;
1230 /* ./syntax//mmbuilder.nit:219 */
1231 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_syntax___syntax_base___MMSrcAttribute, ID_syntax___syntax_base___MMSrcAttribute)) /*cast MMSrcAttribute*/;
1232 if (UNTAG_Bool(REGB0)) {
1233 /* ./syntax//mmbuilder.nit:220 */
1234 fra.me.REG[1] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[0])(fra.me.REG[0]);
1235 /* ./syntax//mmbuilder.nit:221 */
1236 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1237 if (UNTAG_Bool(REGB0)) {
1238 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 221);
1239 }
1240 fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra.me.REG[1])(fra.me.REG[1]);
1241 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1242 if (UNTAG_Bool(REGB0)) {
1243 } else {
1244 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1245 if (UNTAG_Bool(REGB1)) {
1246 REGB1 = TAG_Bool(false);
1247 REGB0 = REGB1;
1248 } else {
1249 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
1250 REGB0 = REGB1;
1251 }
1252 }
1253 if (UNTAG_Bool(REGB0)) {
1254 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[6])(closctx->REG[6], fra.me.REG[0]);
1255 }
1256 }
1257 stack_frame_head = fra.me.prev;
1258 return;
1259 }
1260 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){
1261 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1262 val_t REGB0;
1263 fun_t CREG[1];
1264 val_t tmp;
1265 /* ./syntax//mmbuilder.nit:229 */
1266 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1267 fra.me.file = LOCATE_syntax___mmbuilder;
1268 fra.me.line = 0;
1269 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
1270 fra.me.has_broke = 0;
1271 fra.me.REG_size = 2;
1272 fra.me.REG[0] = NIT_NULL;
1273 fra.me.REG[1] = NIT_NULL;
1274 fra.me.closure_ctx = closctx_param;
1275 fra.me.closure_funs = CREG;
1276 fra.me.REG[0] = p0;
1277 CREG[0] = clos_fun0;
1278 /* ./syntax//mmbuilder.nit:230 */
1279 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1280 /* ./syntax//mmbuilder.nit:231 */
1281 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(closctx->REG[5])(closctx->REG[5], fra.me.REG[0]);
1282 if (UNTAG_Bool(REGB0)) {
1283 goto label12;
1284 }
1285 /* ./syntax//mmbuilder.nit:232 */
1286 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
1287 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_mixin(fra.me.REG[1])(fra.me.REG[1]);
1288 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1289 if (UNTAG_Bool(REGB0)) {
1290 /* ./syntax//mmbuilder.nit:233 */
1291 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[5])(closctx->REG[5], fra.me.REG[0]);
1292 }
1293 label12: while(0);
1294 stack_frame_head = fra.me.prev;
1295 return;
1296 }
1297 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){
1298 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1299 val_t REGB0;
1300 val_t REGB1;
1301 val_t REGB2;
1302 fun_t CREG[1];
1303 val_t tmp;
1304 /* ./syntax//mmbuilder.nit:248 */
1305 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1306 fra.me.file = LOCATE_syntax___mmbuilder;
1307 fra.me.line = 0;
1308 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
1309 fra.me.has_broke = 0;
1310 fra.me.REG_size = 2;
1311 fra.me.REG[0] = NIT_NULL;
1312 fra.me.REG[1] = NIT_NULL;
1313 fra.me.closure_ctx = closctx_param;
1314 fra.me.closure_funs = CREG;
1315 fra.me.REG[0] = p0;
1316 CREG[0] = clos_fun0;
1317 /* ./syntax//mmbuilder.nit:250 */
1318 REGB0 = TAG_Bool(closctx->REG[8]==NIT_NULL);
1319 if (UNTAG_Bool(REGB0)) {
1320 } else {
1321 REGB1 = TAG_Bool(closctx->REG[8]==NIT_NULL);
1322 if (UNTAG_Bool(REGB1)) {
1323 REGB1 = TAG_Bool(false);
1324 REGB0 = REGB1;
1325 } else {
1326 REGB1 = CALL_standard___kernel___Object_____eqeq(closctx->REG[8])(closctx->REG[8], NIT_NULL);
1327 REGB0 = REGB1;
1328 }
1329 }
1330 if (UNTAG_Bool(REGB0)) {
1331 REGB0 = TAG_Bool(true);
1332 } else {
1333 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1334 REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],closctx->REG[8]));
1335 if (UNTAG_Bool(REGB1)) {
1336 } else {
1337 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], closctx->REG[8]);
1338 REGB1 = REGB2;
1339 }
1340 REGB0 = REGB1;
1341 }
1342 if (UNTAG_Bool(REGB0)) {
1343 /* ./syntax//mmbuilder.nit:251 */
1344 CALL_metamodel___inheritance___MMLocalClass___make_visible_an_inherited_global_property(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
1345 }
1346 stack_frame_head = fra.me.prev;
1347 return;
1348 }
1349 void syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(val_t p0, val_t p1, val_t p2){
1350 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
1351 val_t REGB0;
1352 val_t tmp;
1353 static val_t once_value_1; /* Once value */
1354 static val_t once_value_2; /* Once value */
1355 static val_t once_value_3; /* Once value */
1356 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1357 fra.me.file = LOCATE_syntax___mmbuilder;
1358 fra.me.line = 265;
1359 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property;
1360 fra.me.has_broke = 0;
1361 fra.me.REG_size = 7;
1362 fra.me.REG[0] = NIT_NULL;
1363 fra.me.REG[1] = NIT_NULL;
1364 fra.me.REG[2] = NIT_NULL;
1365 fra.me.REG[3] = NIT_NULL;
1366 fra.me.REG[4] = NIT_NULL;
1367 fra.me.REG[5] = NIT_NULL;
1368 fra.me.REG[6] = NIT_NULL;
1369 fra.me.REG[0] = p0;
1370 fra.me.REG[1] = p1;
1371 fra.me.REG[2] = p2;
1372 /* ./syntax//mmbuilder.nit:269 */
1373 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
1374 /* ./syntax//mmbuilder.nit:271 */
1375 fra.me.REG[4] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
1376 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1377 if (UNTAG_Bool(REGB0)) {
1378 /* ./syntax//mmbuilder.nit:272 */
1379 fra.me.REG[4] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[2])(fra.me.REG[2]);
1380 REGB0 = TAG_Int(5);
1381 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1382 if (!once_value_1) {
1383 fra.me.REG[6] = BOX_NativeString("Error: A property ");
1384 REGB0 = TAG_Int(18);
1385 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
1386 once_value_1 = fra.me.REG[6];
1387 register_static_object(&once_value_1);
1388 } else fra.me.REG[6] = once_value_1;
1389 fra.me.REG[6] = fra.me.REG[6];
1390 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1391 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1392 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1393 if (!once_value_2) {
1394 fra.me.REG[6] = BOX_NativeString(" is already defined in class ");
1395 REGB0 = TAG_Int(29);
1396 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
1397 once_value_2 = fra.me.REG[6];
1398 register_static_object(&once_value_2);
1399 } else fra.me.REG[6] = once_value_2;
1400 fra.me.REG[6] = fra.me.REG[6];
1401 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1402 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
1403 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
1404 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1405 if (!once_value_3) {
1406 fra.me.REG[6] = BOX_NativeString(".");
1407 REGB0 = TAG_Int(1);
1408 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
1409 once_value_3 = fra.me.REG[6];
1410 register_static_object(&once_value_3);
1411 } else fra.me.REG[6] = once_value_3;
1412 fra.me.REG[6] = fra.me.REG[6];
1413 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1414 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
1415 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[5]);
1416 /* ./syntax//mmbuilder.nit:273 */
1417 goto label4;
1418 }
1419 /* ./syntax//mmbuilder.nit:275 */
1420 fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
1421 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[2]);
1422 /* ./syntax//mmbuilder.nit:278 */
1423 REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
1424 if (UNTAG_Bool(REGB0)) {
1425 /* ./syntax//mmbuilder.nit:279 */
1426 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
1427 /* ./syntax//mmbuilder.nit:280 */
1428 CALL_metamodel___inheritance___MMLocalProperty___inherit_global(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1429 }
1430 /* ./syntax//mmbuilder.nit:283 */
1431 REGB0 = CALL_metamodel___abstractmetamodel___MMLocalProperty___is_global_set(fra.me.REG[2])(fra.me.REG[2]);
1432 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1433 if (UNTAG_Bool(REGB0)) {
1434 /* ./syntax//mmbuilder.nit:284 */
1435 CALL_metamodel___abstractmetamodel___MMLocalProperty___new_global(fra.me.REG[2])(fra.me.REG[2]);
1436 /* ./syntax//mmbuilder.nit:285 */
1437 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
1438 REGB0 = CALL_syntax___syntax_base___MMLocalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
1439 CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
1440 }
1441 label4: while(0);
1442 stack_frame_head = fra.me.prev;
1443 return;
1444 }
1445 void syntax___mmbuilder___MMLocalProperty___accept_property_visitor(val_t p0, val_t p1){
1446 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1447 val_t tmp;
1448 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1449 fra.me.file = LOCATE_syntax___mmbuilder;
1450 fra.me.line = 291;
1451 fra.me.meth = LOCATE_syntax___mmbuilder___MMLocalProperty___accept_property_visitor;
1452 fra.me.has_broke = 0;
1453 fra.me.REG_size = 2;
1454 fra.me.REG[0] = NIT_NULL;
1455 fra.me.REG[1] = NIT_NULL;
1456 fra.me.REG[0] = p0;
1457 fra.me.REG[1] = p1;
1458 stack_frame_head = fra.me.prev;
1459 return;
1460 }
1461 val_t syntax___mmbuilder___MMImplicitInit___super_init(val_t p0){
1462 struct {struct stack_frame_t me;} fra;
1463 val_t tmp;
1464 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1465 fra.me.file = LOCATE_syntax___mmbuilder;
1466 fra.me.line = 297;
1467 fra.me.meth = LOCATE_syntax___mmbuilder___MMImplicitInit___super_init;
1468 fra.me.has_broke = 0;
1469 fra.me.REG_size = 1;
1470 fra.me.REG[0] = NIT_NULL;
1471 fra.me.REG[0] = p0;
1472 /* ./syntax//mmbuilder.nit:297 */
1473 fra.me.REG[0] = ATTR_syntax___mmbuilder___MMImplicitInit____super_init(fra.me.REG[0]);
1474 stack_frame_head = fra.me.prev;
1475 return fra.me.REG[0];
1476 }
1477 void syntax___mmbuilder___MMImplicitInit___accept_property_visitor(val_t p0, val_t p1){
1478 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
1479 val_t REGB0;
1480 val_t REGB1;
1481 val_t REGB2;
1482 val_t REGB3;
1483 val_t REGB4;
1484 val_t tmp;
1485 static val_t once_value_1; /* Once value */
1486 static val_t once_value_2; /* Once value */
1487 static val_t once_value_3; /* Once value */
1488 static val_t once_value_4; /* Once value */
1489 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1490 fra.me.file = LOCATE_syntax___mmbuilder;
1491 fra.me.line = 298;
1492 fra.me.meth = LOCATE_syntax___mmbuilder___MMImplicitInit___accept_property_visitor;
1493 fra.me.has_broke = 0;
1494 fra.me.REG_size = 9;
1495 fra.me.REG[0] = NIT_NULL;
1496 fra.me.REG[1] = NIT_NULL;
1497 fra.me.REG[2] = NIT_NULL;
1498 fra.me.REG[3] = NIT_NULL;
1499 fra.me.REG[4] = NIT_NULL;
1500 fra.me.REG[5] = NIT_NULL;
1501 fra.me.REG[6] = NIT_NULL;
1502 fra.me.REG[7] = NIT_NULL;
1503 fra.me.REG[8] = NIT_NULL;
1504 fra.me.REG[0] = p0;
1505 fra.me.REG[1] = p1;
1506 /* ./syntax//mmbuilder.nit:298 */
1507 fra.me.REG[2] = fra.me.REG[0];
1508 /* ./syntax//mmbuilder.nit:300 */
1509 fra.me.REG[3] = NIT_NULL;
1510 /* ./syntax//mmbuilder.nit:301 */
1511 fra.me.REG[4] = CALL_syntax___syntax_base___MMImplicitInit___super_inits(fra.me.REG[2])(fra.me.REG[2]);
1512 /* ./../lib/standard//collection//array.nit:269 */
1513 REGB0 = TAG_Int(0);
1514 /* ./../lib/standard//collection//array.nit:270 */
1515 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
1516 if (UNTAG_Bool(REGB1)) {
1517 } else {
1518 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1519 }
1520 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
1521 /* ./../lib/standard//collection//array.nit:271 */
1522 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
1523 /* ./../lib/standard//collection//array.nit:272 */
1524 while(1) {
1525 /* ./../lib/standard//collection//array.nit:24 */
1526 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
1527 if (UNTAG_Bool(REGB1)) {
1528 } else {
1529 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1530 }
1531 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
1532 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1533 if (UNTAG_Bool(REGB2)) {
1534 } else {
1535 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1536 }
1537 /* ./../lib/standard//kernel.nit:232 */
1538 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1539 /* ./../lib/standard//collection//array.nit:272 */
1540 if (UNTAG_Bool(REGB1)) {
1541 /* ./../lib/standard//collection//array.nit:273 */
1542 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1543 if (UNTAG_Bool(REGB1)) {
1544 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1545 }
1546 /* ./../lib/standard//collection//array.nit:718 */
1547 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
1548 /* ./syntax//mmbuilder.nit:302 */
1549 fra.me.REG[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[6])(fra.me.REG[6]);
1550 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
1551 if (UNTAG_Bool(REGB1)) {
1552 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 302);
1553 }
1554 REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
1555 REGB2 = TAG_Int(0);
1556 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1557 if (UNTAG_Bool(REGB3)) {
1558 } else {
1559 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1560 }
1561 /* ./../lib/standard//kernel.nit:234 */
1562 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
1563 /* ./syntax//mmbuilder.nit:302 */
1564 if (UNTAG_Bool(REGB2)) {
1565 /* ./syntax//mmbuilder.nit:303 */
1566 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1567 if (UNTAG_Bool(REGB2)) {
1568 } else {
1569 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1570 if (UNTAG_Bool(REGB1)) {
1571 REGB1 = TAG_Bool(false);
1572 REGB2 = REGB1;
1573 } else {
1574 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1575 REGB2 = REGB1;
1576 }
1577 }
1578 if (UNTAG_Bool(REGB2)) {
1579 /* ./syntax//mmbuilder.nit:304 */
1580 fra.me.REG[3] = fra.me.REG[6];
1581 } else {
1582 /* ./syntax//mmbuilder.nit:306 */
1583 REGB2 = TAG_Int(7);
1584 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
1585 if (!once_value_1) {
1586 fra.me.REG[8] = BOX_NativeString("Error: explicit constructor needed in ");
1587 REGB2 = TAG_Int(38);
1588 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
1589 once_value_1 = fra.me.REG[8];
1590 register_static_object(&once_value_1);
1591 } else fra.me.REG[8] = once_value_1;
1592 fra.me.REG[8] = fra.me.REG[8];
1593 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1594 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
1595 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1596 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1597 if (!once_value_2) {
1598 fra.me.REG[8] = BOX_NativeString(" since both super-constructor ");
1599 REGB2 = TAG_Int(30);
1600 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
1601 once_value_2 = fra.me.REG[8];
1602 register_static_object(&once_value_2);
1603 } else fra.me.REG[8] = once_value_2;
1604 fra.me.REG[8] = fra.me.REG[8];
1605 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1606 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1607 if (UNTAG_Bool(REGB2)) {
1608 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 306);
1609 }
1610 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[3])(fra.me.REG[3]);
1611 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1612 if (!once_value_3) {
1613 fra.me.REG[8] = BOX_NativeString(" and ");
1614 REGB2 = TAG_Int(5);
1615 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
1616 once_value_3 = fra.me.REG[8];
1617 register_static_object(&once_value_3);
1618 } else fra.me.REG[8] = once_value_3;
1619 fra.me.REG[8] = fra.me.REG[8];
1620 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1621 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[6])(fra.me.REG[6]);
1622 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
1623 if (!once_value_4) {
1624 fra.me.REG[6] = BOX_NativeString(" have paramters");
1625 REGB2 = TAG_Int(15);
1626 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
1627 once_value_4 = fra.me.REG[6];
1628 register_static_object(&once_value_4);
1629 } else fra.me.REG[6] = once_value_4;
1630 fra.me.REG[6] = fra.me.REG[6];
1631 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
1632 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
1633 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[7]);
1634 /* ./syntax//mmbuilder.nit:307 */
1635 goto label5;
1636 }
1637 }
1638 /* ./../lib/standard//collection//array.nit:274 */
1639 REGB2 = TAG_Int(1);
1640 /* ./../lib/standard//kernel.nit:235 */
1641 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1642 /* ./../lib/standard//collection//array.nit:274 */
1643 REGB0 = REGB2;
1644 } else {
1645 /* ./../lib/standard//collection//array.nit:272 */
1646 goto label6;
1647 }
1648 }
1649 label6: while(0);
1650 /* ./syntax//mmbuilder.nit:311 */
1651 ATTR_syntax___mmbuilder___MMImplicitInit____super_init(fra.me.REG[2]) = fra.me.REG[3];
1652 /* ./syntax//mmbuilder.nit:313 */
1653 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
1654 /* ./syntax//mmbuilder.nit:314 */
1655 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1656 if (UNTAG_Bool(REGB0)) {
1657 } else {
1658 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1659 if (UNTAG_Bool(REGB2)) {
1660 REGB2 = TAG_Bool(false);
1661 REGB0 = REGB2;
1662 } else {
1663 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1664 REGB0 = REGB2;
1665 }
1666 }
1667 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1668 if (UNTAG_Bool(REGB0)) {
1669 /* ./syntax//mmbuilder.nit:315 */
1670 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1671 if (UNTAG_Bool(REGB0)) {
1672 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 315);
1673 }
1674 fra.me.REG[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[3])(fra.me.REG[3]);
1675 /* ./syntax//mmbuilder.nit:316 */
1676 REGB0 = TAG_Int(0);
1677 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1678 if (UNTAG_Bool(REGB2)) {
1679 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 316);
1680 }
1681 REGB2 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]);
1682 /* ./../lib/standard//kernel.nit:352 */
1683 while(1) {
1684 REGB1 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1685 if (UNTAG_Bool(REGB1)) {
1686 } else {
1687 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1688 }
1689 /* ./../lib/standard//kernel.nit:232 */
1690 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
1691 /* ./../lib/standard//kernel.nit:352 */
1692 if (UNTAG_Bool(REGB1)) {
1693 /* ./syntax//mmbuilder.nit:316 */
1694 REGB1 = REGB0;
1695 /* ./syntax//mmbuilder.nit:317 */
1696 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1697 if (UNTAG_Bool(REGB3)) {
1698 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 317);
1699 }
1700 fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___params(fra.me.REG[3])(fra.me.REG[3]);
1701 /* ./../lib/standard//collection//array.nit:280 */
1702 REGB3 = TAG_Int(0);
1703 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1704 if (UNTAG_Bool(REGB4)) {
1705 } else {
1706 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1707 }
1708 /* ./../lib/standard//kernel.nit:233 */
1709 REGB3 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB3));
1710 /* ./../lib/standard//collection//array.nit:280 */
1711 if (UNTAG_Bool(REGB3)) {
1712 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
1713 if (UNTAG_Bool(REGB3)) {
1714 } else {
1715 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
1716 }
1717 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
1718 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1719 if (UNTAG_Bool(REGB4)) {
1720 } else {
1721 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1722 }
1723 /* ./../lib/standard//kernel.nit:232 */
1724 REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB3));
1725 } else {
1726 /* ./../lib/standard//collection//array.nit:280 */
1727 REGB4 = TAG_Bool(false);
1728 REGB3 = REGB4;
1729 }
1730 if (UNTAG_Bool(REGB3)) {
1731 } else {
1732 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 280);
1733 }
1734 /* ./../lib/standard//collection//array.nit:281 */
1735 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
1736 REGB3 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1737 if (UNTAG_Bool(REGB3)) {
1738 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
1739 }
1740 /* ./../lib/standard//collection//array.nit:718 */
1741 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
1742 /* ./../lib/standard//collection//array.nit:281 */
1743 goto label7;
1744 label7: while(0);
1745 /* ./syntax//mmbuilder.nit:317 */
1746 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
1747 /* ./../lib/standard//kernel.nit:354 */
1748 REGB1 = TAG_Int(1);
1749 /* ./../lib/standard//kernel.nit:235 */
1750 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1751 /* ./../lib/standard//kernel.nit:354 */
1752 REGB0 = REGB1;
1753 } else {
1754 /* ./../lib/standard//kernel.nit:352 */
1755 goto label8;
1756 }
1757 }
1758 label8: while(0);
1759 }
1760 /* ./syntax//mmbuilder.nit:320 */
1761 fra.me.REG[3] = CALL_syntax___syntax_base___MMImplicitInit___unassigned_attributes(fra.me.REG[2])(fra.me.REG[2]);
1762 /* ./../lib/standard//collection//array.nit:269 */
1763 REGB0 = TAG_Int(0);
1764 /* ./../lib/standard//collection//array.nit:270 */
1765 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1766 if (UNTAG_Bool(REGB2)) {
1767 } else {
1768 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1769 }
1770 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1771 /* ./../lib/standard//collection//array.nit:271 */
1772 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
1773 /* ./../lib/standard//collection//array.nit:272 */
1774 while(1) {
1775 /* ./../lib/standard//collection//array.nit:24 */
1776 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1777 if (UNTAG_Bool(REGB2)) {
1778 } else {
1779 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1780 }
1781 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1782 REGB1 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1783 if (UNTAG_Bool(REGB1)) {
1784 } else {
1785 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1786 }
1787 /* ./../lib/standard//kernel.nit:232 */
1788 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
1789 /* ./../lib/standard//collection//array.nit:272 */
1790 if (UNTAG_Bool(REGB2)) {
1791 /* ./../lib/standard//collection//array.nit:273 */
1792 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1793 if (UNTAG_Bool(REGB2)) {
1794 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1795 }
1796 /* ./../lib/standard//collection//array.nit:718 */
1797 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
1798 /* ./syntax//mmbuilder.nit:321 */
1799 fra.me.REG[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[4])(fra.me.REG[4]);
1800 /* ./syntax//mmbuilder.nit:322 */
1801 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
1802 if (UNTAG_Bool(REGB2)) {
1803 } else {
1804 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
1805 if (UNTAG_Bool(REGB1)) {
1806 REGB1 = TAG_Bool(false);
1807 REGB2 = REGB1;
1808 } else {
1809 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
1810 REGB2 = REGB1;
1811 }
1812 }
1813 if (UNTAG_Bool(REGB2)) {
1814 goto label5;
1815 }
1816 /* ./syntax//mmbuilder.nit:323 */
1817 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[4])(fra.me.REG[4]);
1818 /* ./syntax//mmbuilder.nit:324 */
1819 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
1820 fra.me.REG[8] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[8])(fra.me.REG[8]);
1821 REGB2 = TAG_Char('_');
1822 REGB1 = TAG_Bool(IS_EQUAL_ON(REGB2,fra.me.REG[8]));
1823 if (UNTAG_Bool(REGB1)) {
1824 } else {
1825 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1826 if (UNTAG_Bool(REGB3)) {
1827 REGB3 = TAG_Bool(false);
1828 REGB1 = REGB3;
1829 } else {
1830 /* ./../lib/standard//kernel.nit:378 */
1831 REGB2 = TAG_Bool((fra.me.REG[8])==(REGB2));
1832 /* ./syntax//mmbuilder.nit:324 */
1833 REGB1 = REGB2;
1834 }
1835 }
1836 if (UNTAG_Bool(REGB1)) {
1837 REGB1 = TAG_Bool(true);
1838 } else {
1839 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
1840 fra.me.REG[8] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[8])(fra.me.REG[8]);
1841 REGB2 = TAG_Char('@');
1842 REGB3 = TAG_Bool(IS_EQUAL_ON(REGB2,fra.me.REG[8]));
1843 if (UNTAG_Bool(REGB3)) {
1844 } else {
1845 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1846 if (UNTAG_Bool(REGB4)) {
1847 REGB4 = TAG_Bool(false);
1848 REGB3 = REGB4;
1849 } else {
1850 /* ./../lib/standard//kernel.nit:378 */
1851 REGB2 = TAG_Bool((fra.me.REG[8])==(REGB2));
1852 /* ./syntax//mmbuilder.nit:324 */
1853 REGB3 = REGB2;
1854 }
1855 }
1856 REGB1 = REGB3;
1857 }
1858 if (UNTAG_Bool(REGB1)) {
1859 /* ./syntax//mmbuilder.nit:325 */
1860 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1861 REGB1 = TAG_Int(1);
1862 fra.me.REG[4] = CALL_standard___string___AbstractString___substring_from(fra.me.REG[4])(fra.me.REG[4], REGB1);
1863 fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
1864 fra.me.REG[6] = fra.me.REG[4];
1865 }
1866 /* ./syntax//mmbuilder.nit:327 */
1867 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
1868 if (UNTAG_Bool(REGB1)) {
1869 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 327);
1870 }
1871 fra.me.REG[7] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[7])(fra.me.REG[7]);
1872 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*/;
1873 if (UNTAG_Bool(REGB1)) {
1874 } else {
1875 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 327);
1876 }
1877 fra.me.REG[6] = NEW_MMParam_metamodel___static_type___MMParam___init(fra.me.REG[7], fra.me.REG[6]);
1878 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
1879 /* ./../lib/standard//collection//array.nit:274 */
1880 REGB1 = TAG_Int(1);
1881 /* ./../lib/standard//kernel.nit:235 */
1882 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1883 /* ./../lib/standard//collection//array.nit:274 */
1884 REGB0 = REGB1;
1885 } else {
1886 /* ./../lib/standard//collection//array.nit:272 */
1887 goto label9;
1888 }
1889 }
1890 label9: while(0);
1891 /* ./syntax//mmbuilder.nit:329 */
1892 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
1893 fra.me.REG[0] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[0])(fra.me.REG[0]);
1894 fra.me.REG[0] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[1], NIT_NULL, fra.me.REG[0]);
1895 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1896 label5: while(0);
1897 stack_frame_head = fra.me.prev;
1898 return;
1899 }
1900 val_t syntax___mmbuilder___MMSrcAncestor___local_class(val_t p0){
1901 struct {struct stack_frame_t me;} fra;
1902 val_t REGB0;
1903 val_t tmp;
1904 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1905 fra.me.file = LOCATE_syntax___mmbuilder;
1906 fra.me.line = 337;
1907 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcAncestor___local_class;
1908 fra.me.has_broke = 0;
1909 fra.me.REG_size = 1;
1910 fra.me.REG[0] = NIT_NULL;
1911 fra.me.REG[0] = p0;
1912 /* ./syntax//mmbuilder.nit:337 */
1913 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___MMSrcAncestor____local_class(fra.me.REG[0])!=NIT_NULL);
1914 if (UNTAG_Bool(REGB0)) {
1915 } else {
1916 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_syntax___mmbuilder, 337);
1917 }
1918 fra.me.REG[0] = ATTR_syntax___mmbuilder___MMSrcAncestor____local_class(fra.me.REG[0]);
1919 stack_frame_head = fra.me.prev;
1920 return fra.me.REG[0];
1921 }
1922 void syntax___mmbuilder___MMSrcAncestor___init(val_t p0, val_t p1, int* init_table){
1923 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___MMSrcAncestor].i;
1924 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1925 val_t tmp;
1926 if (init_table[itpos1]) return;
1927 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1928 fra.me.file = LOCATE_syntax___mmbuilder;
1929 fra.me.line = 339;
1930 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcAncestor___init;
1931 fra.me.has_broke = 0;
1932 fra.me.REG_size = 3;
1933 fra.me.REG[0] = NIT_NULL;
1934 fra.me.REG[1] = NIT_NULL;
1935 fra.me.REG[2] = NIT_NULL;
1936 fra.me.REG[0] = p0;
1937 fra.me.REG[1] = p1;
1938 /* ./syntax//mmbuilder.nit:339 */
1939 fra.me.REG[2] = fra.me.REG[0];
1940 CALL_metamodel___static_type___MMAncestor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
1941 /* ./syntax//mmbuilder.nit:341 */
1942 ATTR_syntax___mmbuilder___MMSrcAncestor____local_class(fra.me.REG[2]) = fra.me.REG[1];
1943 stack_frame_head = fra.me.prev;
1944 init_table[itpos1] = 1;
1945 return;
1946 }
1947 val_t syntax___mmbuilder___ClassBuilderVisitor___local_class_arity(val_t p0){
1948 struct {struct stack_frame_t me;} fra;
1949 val_t REGB0;
1950 val_t tmp;
1951 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1952 fra.me.file = LOCATE_syntax___mmbuilder;
1953 fra.me.line = 352;
1954 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity;
1955 fra.me.has_broke = 0;
1956 fra.me.REG_size = 1;
1957 fra.me.REG[0] = NIT_NULL;
1958 fra.me.REG[0] = p0;
1959 /* ./syntax//mmbuilder.nit:352 */
1960 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0])!=NIT_NULL);
1961 if (UNTAG_Bool(REGB0)) {
1962 } else {
1963 nit_abort("Uninitialized attribute %s", "_local_class_arity", LOCATE_syntax___mmbuilder, 352);
1964 }
1965 REGB0 = ATTR_syntax___mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0]);
1966 stack_frame_head = fra.me.prev;
1967 return REGB0;
1968 }
1969 void syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq(val_t p0, val_t p1){
1970 struct {struct stack_frame_t me;} fra;
1971 val_t REGB0;
1972 val_t tmp;
1973 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1974 fra.me.file = LOCATE_syntax___mmbuilder;
1975 fra.me.line = 352;
1976 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq;
1977 fra.me.has_broke = 0;
1978 fra.me.REG_size = 1;
1979 fra.me.REG[0] = NIT_NULL;
1980 fra.me.REG[0] = p0;
1981 REGB0 = p1;
1982 /* ./syntax//mmbuilder.nit:352 */
1983 ATTR_syntax___mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0]) = REGB0;
1984 stack_frame_head = fra.me.prev;
1985 return;
1986 }
1987 val_t syntax___mmbuilder___ClassBuilderVisitor___formals(val_t p0){
1988 struct {struct stack_frame_t me;} fra;
1989 val_t tmp;
1990 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1991 fra.me.file = LOCATE_syntax___mmbuilder;
1992 fra.me.line = 355;
1993 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___formals;
1994 fra.me.has_broke = 0;
1995 fra.me.REG_size = 1;
1996 fra.me.REG[0] = NIT_NULL;
1997 fra.me.REG[0] = p0;
1998 /* ./syntax//mmbuilder.nit:355 */
1999 fra.me.REG[0] = ATTR_syntax___mmbuilder___ClassBuilderVisitor____formals(fra.me.REG[0]);
2000 stack_frame_head = fra.me.prev;
2001 return fra.me.REG[0];
2002 }
2003 void syntax___mmbuilder___ClassBuilderVisitor___formals__eq(val_t p0, val_t p1){
2004 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2005 val_t tmp;
2006 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2007 fra.me.file = LOCATE_syntax___mmbuilder;
2008 fra.me.line = 355;
2009 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___formals__eq;
2010 fra.me.has_broke = 0;
2011 fra.me.REG_size = 2;
2012 fra.me.REG[0] = NIT_NULL;
2013 fra.me.REG[1] = NIT_NULL;
2014 fra.me.REG[0] = p0;
2015 fra.me.REG[1] = p1;
2016 /* ./syntax//mmbuilder.nit:355 */
2017 ATTR_syntax___mmbuilder___ClassBuilderVisitor____formals(fra.me.REG[0]) = fra.me.REG[1];
2018 stack_frame_head = fra.me.prev;
2019 return;
2020 }
2021 void syntax___mmbuilder___ClassBuilderVisitor___visit(val_t p0, val_t p1){
2022 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2023 val_t REGB0;
2024 val_t tmp;
2025 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2026 fra.me.file = LOCATE_syntax___mmbuilder;
2027 fra.me.line = 358;
2028 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___visit;
2029 fra.me.has_broke = 0;
2030 fra.me.REG_size = 2;
2031 fra.me.REG[0] = NIT_NULL;
2032 fra.me.REG[1] = NIT_NULL;
2033 fra.me.REG[0] = p0;
2034 fra.me.REG[1] = p1;
2035 /* ./syntax//mmbuilder.nit:358 */
2036 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2037 if (UNTAG_Bool(REGB0)) {
2038 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 358);
2039 }
2040 CALL_syntax___mmbuilder___ANode___accept_class_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2041 stack_frame_head = fra.me.prev;
2042 return;
2043 }
2044 void syntax___mmbuilder___ClassBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2045 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___ClassBuilderVisitor].i;
2046 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2047 val_t tmp;
2048 if (init_table[itpos2]) return;
2049 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2050 fra.me.file = LOCATE_syntax___mmbuilder;
2051 fra.me.line = 359;
2052 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___init;
2053 fra.me.has_broke = 0;
2054 fra.me.REG_size = 3;
2055 fra.me.REG[0] = NIT_NULL;
2056 fra.me.REG[1] = NIT_NULL;
2057 fra.me.REG[2] = NIT_NULL;
2058 fra.me.REG[0] = p0;
2059 fra.me.REG[1] = p1;
2060 fra.me.REG[2] = p2;
2061 /* ./syntax//mmbuilder.nit:359 */
2062 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2063 stack_frame_head = fra.me.prev;
2064 init_table[itpos2] = 1;
2065 return;
2066 }
2067 void syntax___mmbuilder___ClassSpecializationBuilderVisitor___visit(val_t p0, val_t p1){
2068 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2069 val_t REGB0;
2070 val_t tmp;
2071 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2072 fra.me.file = LOCATE_syntax___mmbuilder;
2073 fra.me.line = 366;
2074 fra.me.meth = LOCATE_syntax___mmbuilder___ClassSpecializationBuilderVisitor___visit;
2075 fra.me.has_broke = 0;
2076 fra.me.REG_size = 2;
2077 fra.me.REG[0] = NIT_NULL;
2078 fra.me.REG[1] = NIT_NULL;
2079 fra.me.REG[0] = p0;
2080 fra.me.REG[1] = p1;
2081 /* ./syntax//mmbuilder.nit:366 */
2082 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2083 if (UNTAG_Bool(REGB0)) {
2084 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 366);
2085 }
2086 CALL_syntax___mmbuilder___ANode___accept_class_specialization_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2087 stack_frame_head = fra.me.prev;
2088 return;
2089 }
2090 void syntax___mmbuilder___ClassSpecializationBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2091 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___ClassSpecializationBuilderVisitor].i;
2092 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2093 val_t tmp;
2094 if (init_table[itpos3]) return;
2095 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2096 fra.me.file = LOCATE_syntax___mmbuilder;
2097 fra.me.line = 367;
2098 fra.me.meth = LOCATE_syntax___mmbuilder___ClassSpecializationBuilderVisitor___init;
2099 fra.me.has_broke = 0;
2100 fra.me.REG_size = 3;
2101 fra.me.REG[0] = NIT_NULL;
2102 fra.me.REG[1] = NIT_NULL;
2103 fra.me.REG[2] = NIT_NULL;
2104 fra.me.REG[0] = p0;
2105 fra.me.REG[1] = p1;
2106 fra.me.REG[2] = p2;
2107 /* ./syntax//mmbuilder.nit:367 */
2108 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2109 stack_frame_head = fra.me.prev;
2110 init_table[itpos3] = 1;
2111 return;
2112 }
2113 void syntax___mmbuilder___ClassAncestorBuilder___visit(val_t p0, val_t p1){
2114 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2115 val_t REGB0;
2116 val_t tmp;
2117 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2118 fra.me.file = LOCATE_syntax___mmbuilder;
2119 fra.me.line = 374;
2120 fra.me.meth = LOCATE_syntax___mmbuilder___ClassAncestorBuilder___visit;
2121 fra.me.has_broke = 0;
2122 fra.me.REG_size = 2;
2123 fra.me.REG[0] = NIT_NULL;
2124 fra.me.REG[1] = NIT_NULL;
2125 fra.me.REG[0] = p0;
2126 fra.me.REG[1] = p1;
2127 /* ./syntax//mmbuilder.nit:374 */
2128 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2129 if (UNTAG_Bool(REGB0)) {
2130 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 374);
2131 }
2132 CALL_syntax___mmbuilder___ANode___accept_class_ancestor_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2133 stack_frame_head = fra.me.prev;
2134 return;
2135 }
2136 void syntax___mmbuilder___ClassAncestorBuilder___init(val_t p0, val_t p1, val_t p2, int* init_table){
2137 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___ClassAncestorBuilder].i;
2138 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2139 val_t tmp;
2140 if (init_table[itpos4]) return;
2141 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2142 fra.me.file = LOCATE_syntax___mmbuilder;
2143 fra.me.line = 375;
2144 fra.me.meth = LOCATE_syntax___mmbuilder___ClassAncestorBuilder___init;
2145 fra.me.has_broke = 0;
2146 fra.me.REG_size = 3;
2147 fra.me.REG[0] = NIT_NULL;
2148 fra.me.REG[1] = NIT_NULL;
2149 fra.me.REG[2] = NIT_NULL;
2150 fra.me.REG[0] = p0;
2151 fra.me.REG[1] = p1;
2152 fra.me.REG[2] = p2;
2153 /* ./syntax//mmbuilder.nit:375 */
2154 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2155 stack_frame_head = fra.me.prev;
2156 init_table[itpos4] = 1;
2157 return;
2158 }
2159 void syntax___mmbuilder___ClassVerifierVisitor___visit(val_t p0, val_t p1){
2160 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2161 val_t REGB0;
2162 val_t tmp;
2163 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2164 fra.me.file = LOCATE_syntax___mmbuilder;
2165 fra.me.line = 382;
2166 fra.me.meth = LOCATE_syntax___mmbuilder___ClassVerifierVisitor___visit;
2167 fra.me.has_broke = 0;
2168 fra.me.REG_size = 2;
2169 fra.me.REG[0] = NIT_NULL;
2170 fra.me.REG[1] = NIT_NULL;
2171 fra.me.REG[0] = p0;
2172 fra.me.REG[1] = p1;
2173 /* ./syntax//mmbuilder.nit:382 */
2174 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2175 if (UNTAG_Bool(REGB0)) {
2176 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 382);
2177 }
2178 CALL_syntax___mmbuilder___ANode___accept_class_verifier(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2179 stack_frame_head = fra.me.prev;
2180 return;
2181 }
2182 void syntax___mmbuilder___ClassVerifierVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2183 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___ClassVerifierVisitor].i;
2184 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2185 val_t tmp;
2186 if (init_table[itpos5]) return;
2187 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2188 fra.me.file = LOCATE_syntax___mmbuilder;
2189 fra.me.line = 383;
2190 fra.me.meth = LOCATE_syntax___mmbuilder___ClassVerifierVisitor___init;
2191 fra.me.has_broke = 0;
2192 fra.me.REG_size = 3;
2193 fra.me.REG[0] = NIT_NULL;
2194 fra.me.REG[1] = NIT_NULL;
2195 fra.me.REG[2] = NIT_NULL;
2196 fra.me.REG[0] = p0;
2197 fra.me.REG[1] = p1;
2198 fra.me.REG[2] = p2;
2199 /* ./syntax//mmbuilder.nit:383 */
2200 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2201 stack_frame_head = fra.me.prev;
2202 init_table[itpos5] = 1;
2203 return;
2204 }
2205 void syntax___mmbuilder___PropertyBuilderVisitor___visit(val_t p0, val_t p1){
2206 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2207 val_t REGB0;
2208 val_t tmp;
2209 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2210 fra.me.file = LOCATE_syntax___mmbuilder;
2211 fra.me.line = 393;
2212 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyBuilderVisitor___visit;
2213 fra.me.has_broke = 0;
2214 fra.me.REG_size = 2;
2215 fra.me.REG[0] = NIT_NULL;
2216 fra.me.REG[1] = NIT_NULL;
2217 fra.me.REG[0] = p0;
2218 fra.me.REG[1] = p1;
2219 /* ./syntax//mmbuilder.nit:393 */
2220 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2221 if (UNTAG_Bool(REGB0)) {
2222 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 393);
2223 }
2224 CALL_syntax___mmbuilder___ANode___accept_property_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2225 stack_frame_head = fra.me.prev;
2226 return;
2227 }
2228 void syntax___mmbuilder___PropertyBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2229 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___PropertyBuilderVisitor].i;
2230 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2231 val_t tmp;
2232 if (init_table[itpos6]) return;
2233 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2234 fra.me.file = LOCATE_syntax___mmbuilder;
2235 fra.me.line = 394;
2236 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyBuilderVisitor___init;
2237 fra.me.has_broke = 0;
2238 fra.me.REG_size = 3;
2239 fra.me.REG[0] = NIT_NULL;
2240 fra.me.REG[1] = NIT_NULL;
2241 fra.me.REG[2] = NIT_NULL;
2242 fra.me.REG[0] = p0;
2243 fra.me.REG[1] = p1;
2244 fra.me.REG[2] = p2;
2245 /* ./syntax//mmbuilder.nit:394 */
2246 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2247 stack_frame_head = fra.me.prev;
2248 init_table[itpos6] = 1;
2249 return;
2250 }
2251 val_t syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(val_t p0){
2252 struct {struct stack_frame_t me;} fra;
2253 val_t REGB0;
2254 val_t tmp;
2255 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2256 fra.me.file = LOCATE_syntax___mmbuilder;
2257 fra.me.line = 402;
2258 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder;
2259 fra.me.has_broke = 0;
2260 fra.me.REG_size = 1;
2261 fra.me.REG[0] = NIT_NULL;
2262 fra.me.REG[0] = p0;
2263 /* ./syntax//mmbuilder.nit:402 */
2264 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0])!=NIT_NULL);
2265 if (UNTAG_Bool(REGB0)) {
2266 } else {
2267 nit_abort("Uninitialized attribute %s", "_signature_builder", LOCATE_syntax___mmbuilder, 402);
2268 }
2269 fra.me.REG[0] = ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0]);
2270 stack_frame_head = fra.me.prev;
2271 return fra.me.REG[0];
2272 }
2273 void syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(val_t p0, val_t p1){
2274 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2275 val_t tmp;
2276 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2277 fra.me.file = LOCATE_syntax___mmbuilder;
2278 fra.me.line = 402;
2279 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq;
2280 fra.me.has_broke = 0;
2281 fra.me.REG_size = 2;
2282 fra.me.REG[0] = NIT_NULL;
2283 fra.me.REG[1] = NIT_NULL;
2284 fra.me.REG[0] = p0;
2285 fra.me.REG[1] = p1;
2286 /* ./syntax//mmbuilder.nit:402 */
2287 ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0]) = fra.me.REG[1];
2288 stack_frame_head = fra.me.prev;
2289 return;
2290 }
2291 void syntax___mmbuilder___PropertyVerifierVisitor___visit(val_t p0, val_t p1){
2292 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2293 val_t REGB0;
2294 val_t tmp;
2295 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2296 fra.me.file = LOCATE_syntax___mmbuilder;
2297 fra.me.line = 405;
2298 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___visit;
2299 fra.me.has_broke = 0;
2300 fra.me.REG_size = 2;
2301 fra.me.REG[0] = NIT_NULL;
2302 fra.me.REG[1] = NIT_NULL;
2303 fra.me.REG[0] = p0;
2304 fra.me.REG[1] = p1;
2305 /* ./syntax//mmbuilder.nit:405 */
2306 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2307 if (UNTAG_Bool(REGB0)) {
2308 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 405);
2309 }
2310 CALL_syntax___mmbuilder___ANode___accept_property_verifier(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2311 stack_frame_head = fra.me.prev;
2312 return;
2313 }
2314 void syntax___mmbuilder___PropertyVerifierVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2315 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___PropertyVerifierVisitor].i;
2316 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2317 val_t tmp;
2318 if (init_table[itpos7]) return;
2319 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2320 fra.me.file = LOCATE_syntax___mmbuilder;
2321 fra.me.line = 407;
2322 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___init;
2323 fra.me.has_broke = 0;
2324 fra.me.REG_size = 4;
2325 fra.me.REG[0] = NIT_NULL;
2326 fra.me.REG[1] = NIT_NULL;
2327 fra.me.REG[2] = NIT_NULL;
2328 fra.me.REG[3] = NIT_NULL;
2329 fra.me.REG[0] = p0;
2330 fra.me.REG[1] = p1;
2331 fra.me.REG[2] = p2;
2332 /* ./syntax//mmbuilder.nit:407 */
2333 fra.me.REG[3] = fra.me.REG[0];
2334 /* ./syntax//mmbuilder.nit:409 */
2335 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2336 /* ./syntax//mmbuilder.nit:410 */
2337 fra.me.REG[2] = NEW_SignatureBuilder_syntax___mmbuilder___SignatureBuilder___init();
2338 ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[3]) = fra.me.REG[2];
2339 stack_frame_head = fra.me.prev;
2340 init_table[itpos7] = 1;
2341 return;
2342 }
2343 val_t syntax___mmbuilder___SignatureBuilder___params(val_t p0){
2344 struct {struct stack_frame_t me;} fra;
2345 val_t REGB0;
2346 val_t tmp;
2347 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2348 fra.me.file = LOCATE_syntax___mmbuilder;
2349 fra.me.line = 416;
2350 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___params;
2351 fra.me.has_broke = 0;
2352 fra.me.REG_size = 1;
2353 fra.me.REG[0] = NIT_NULL;
2354 fra.me.REG[0] = p0;
2355 /* ./syntax//mmbuilder.nit:416 */
2356 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____params(fra.me.REG[0])!=NIT_NULL);
2357 if (UNTAG_Bool(REGB0)) {
2358 } else {
2359 nit_abort("Uninitialized attribute %s", "_params", LOCATE_syntax___mmbuilder, 416);
2360 }
2361 fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____params(fra.me.REG[0]);
2362 stack_frame_head = fra.me.prev;
2363 return fra.me.REG[0];
2364 }
2365 void syntax___mmbuilder___SignatureBuilder___params__eq(val_t p0, val_t p1){
2366 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2367 val_t tmp;
2368 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2369 fra.me.file = LOCATE_syntax___mmbuilder;
2370 fra.me.line = 416;
2371 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___params__eq;
2372 fra.me.has_broke = 0;
2373 fra.me.REG_size = 2;
2374 fra.me.REG[0] = NIT_NULL;
2375 fra.me.REG[1] = NIT_NULL;
2376 fra.me.REG[0] = p0;
2377 fra.me.REG[1] = p1;
2378 /* ./syntax//mmbuilder.nit:416 */
2379 ATTR_syntax___mmbuilder___SignatureBuilder____params(fra.me.REG[0]) = fra.me.REG[1];
2380 stack_frame_head = fra.me.prev;
2381 return;
2382 }
2383 val_t syntax___mmbuilder___SignatureBuilder___untyped_params(val_t p0){
2384 struct {struct stack_frame_t me;} fra;
2385 val_t REGB0;
2386 val_t tmp;
2387 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2388 fra.me.file = LOCATE_syntax___mmbuilder;
2389 fra.me.line = 419;
2390 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___untyped_params;
2391 fra.me.has_broke = 0;
2392 fra.me.REG_size = 1;
2393 fra.me.REG[0] = NIT_NULL;
2394 fra.me.REG[0] = p0;
2395 /* ./syntax//mmbuilder.nit:419 */
2396 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0])!=NIT_NULL);
2397 if (UNTAG_Bool(REGB0)) {
2398 } else {
2399 nit_abort("Uninitialized attribute %s", "_untyped_params", LOCATE_syntax___mmbuilder, 419);
2400 }
2401 fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0]);
2402 stack_frame_head = fra.me.prev;
2403 return fra.me.REG[0];
2404 }
2405 void syntax___mmbuilder___SignatureBuilder___untyped_params__eq(val_t p0, val_t p1){
2406 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2407 val_t tmp;
2408 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2409 fra.me.file = LOCATE_syntax___mmbuilder;
2410 fra.me.line = 419;
2411 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___untyped_params__eq;
2412 fra.me.has_broke = 0;
2413 fra.me.REG_size = 2;
2414 fra.me.REG[0] = NIT_NULL;
2415 fra.me.REG[1] = NIT_NULL;
2416 fra.me.REG[0] = p0;
2417 fra.me.REG[1] = p1;
2418 /* ./syntax//mmbuilder.nit:419 */
2419 ATTR_syntax___mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0]) = fra.me.REG[1];
2420 stack_frame_head = fra.me.prev;
2421 return;
2422 }
2423 val_t syntax___mmbuilder___SignatureBuilder___vararg_rank(val_t p0){
2424 struct {struct stack_frame_t me;} fra;
2425 val_t REGB0;
2426 val_t tmp;
2427 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2428 fra.me.file = LOCATE_syntax___mmbuilder;
2429 fra.me.line = 422;
2430 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___vararg_rank;
2431 fra.me.has_broke = 0;
2432 fra.me.REG_size = 1;
2433 fra.me.REG[0] = NIT_NULL;
2434 fra.me.REG[0] = p0;
2435 /* ./syntax//mmbuilder.nit:422 */
2436 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0])!=NIT_NULL);
2437 if (UNTAG_Bool(REGB0)) {
2438 } else {
2439 nit_abort("Uninitialized attribute %s", "_vararg_rank", LOCATE_syntax___mmbuilder, 422);
2440 }
2441 REGB0 = ATTR_syntax___mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]);
2442 stack_frame_head = fra.me.prev;
2443 return REGB0;
2444 }
2445 void syntax___mmbuilder___SignatureBuilder___vararg_rank__eq(val_t p0, val_t p1){
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 = 422;
2452 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___vararg_rank__eq;
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 REGB0 = p1;
2458 /* ./syntax//mmbuilder.nit:422 */
2459 ATTR_syntax___mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]) = REGB0;
2460 stack_frame_head = fra.me.prev;
2461 return;
2462 }
2463 val_t syntax___mmbuilder___SignatureBuilder___closure_decls(val_t p0){
2464 struct {struct stack_frame_t me;} fra;
2465 val_t REGB0;
2466 val_t tmp;
2467 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2468 fra.me.file = LOCATE_syntax___mmbuilder;
2469 fra.me.line = 425;
2470 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___closure_decls;
2471 fra.me.has_broke = 0;
2472 fra.me.REG_size = 1;
2473 fra.me.REG[0] = NIT_NULL;
2474 fra.me.REG[0] = p0;
2475 /* ./syntax//mmbuilder.nit:425 */
2476 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0])!=NIT_NULL);
2477 if (UNTAG_Bool(REGB0)) {
2478 } else {
2479 nit_abort("Uninitialized attribute %s", "_closure_decls", LOCATE_syntax___mmbuilder, 425);
2480 }
2481 fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0]);
2482 stack_frame_head = fra.me.prev;
2483 return fra.me.REG[0];
2484 }
2485 void syntax___mmbuilder___SignatureBuilder___closure_decls__eq(val_t p0, val_t p1){
2486 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2487 val_t tmp;
2488 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2489 fra.me.file = LOCATE_syntax___mmbuilder;
2490 fra.me.line = 425;
2491 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___closure_decls__eq;
2492 fra.me.has_broke = 0;
2493 fra.me.REG_size = 2;
2494 fra.me.REG[0] = NIT_NULL;
2495 fra.me.REG[1] = NIT_NULL;
2496 fra.me.REG[0] = p0;
2497 fra.me.REG[1] = p1;
2498 /* ./syntax//mmbuilder.nit:425 */
2499 ATTR_syntax___mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0]) = fra.me.REG[1];
2500 stack_frame_head = fra.me.prev;
2501 return;
2502 }
2503 val_t syntax___mmbuilder___SignatureBuilder___has_error_occured(val_t p0){
2504 struct {struct stack_frame_t me;} fra;
2505 val_t REGB0;
2506 val_t tmp;
2507 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2508 fra.me.file = LOCATE_syntax___mmbuilder;
2509 fra.me.line = 428;
2510 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___has_error_occured;
2511 fra.me.has_broke = 0;
2512 fra.me.REG_size = 1;
2513 fra.me.REG[0] = NIT_NULL;
2514 fra.me.REG[0] = p0;
2515 /* ./syntax//mmbuilder.nit:428 */
2516 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0])!=NIT_NULL);
2517 if (UNTAG_Bool(REGB0)) {
2518 } else {
2519 nit_abort("Uninitialized attribute %s", "_has_error_occured", LOCATE_syntax___mmbuilder, 428);
2520 }
2521 REGB0 = ATTR_syntax___mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]);
2522 stack_frame_head = fra.me.prev;
2523 return REGB0;
2524 }
2525 void syntax___mmbuilder___SignatureBuilder___has_error_occured__eq(val_t p0, val_t p1){
2526 struct {struct stack_frame_t me;} fra;
2527 val_t REGB0;
2528 val_t tmp;
2529 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2530 fra.me.file = LOCATE_syntax___mmbuilder;
2531 fra.me.line = 428;
2532 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___has_error_occured__eq;
2533 fra.me.has_broke = 0;
2534 fra.me.REG_size = 1;
2535 fra.me.REG[0] = NIT_NULL;
2536 fra.me.REG[0] = p0;
2537 REGB0 = p1;
2538 /* ./syntax//mmbuilder.nit:428 */
2539 ATTR_syntax___mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]) = REGB0;
2540 stack_frame_head = fra.me.prev;
2541 return;
2542 }
2543 val_t syntax___mmbuilder___SignatureBuilder___signature(val_t p0){
2544 struct {struct stack_frame_t me;} fra;
2545 val_t tmp;
2546 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2547 fra.me.file = LOCATE_syntax___mmbuilder;
2548 fra.me.line = 431;
2549 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___signature;
2550 fra.me.has_broke = 0;
2551 fra.me.REG_size = 1;
2552 fra.me.REG[0] = NIT_NULL;
2553 fra.me.REG[0] = p0;
2554 /* ./syntax//mmbuilder.nit:431 */
2555 fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____signature(fra.me.REG[0]);
2556 stack_frame_head = fra.me.prev;
2557 return fra.me.REG[0];
2558 }
2559 void syntax___mmbuilder___SignatureBuilder___signature__eq(val_t p0, val_t p1){
2560 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2561 val_t tmp;
2562 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2563 fra.me.file = LOCATE_syntax___mmbuilder;
2564 fra.me.line = 431;
2565 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___signature__eq;
2566 fra.me.has_broke = 0;
2567 fra.me.REG_size = 2;
2568 fra.me.REG[0] = NIT_NULL;
2569 fra.me.REG[1] = NIT_NULL;
2570 fra.me.REG[0] = p0;
2571 fra.me.REG[1] = p1;
2572 /* ./syntax//mmbuilder.nit:431 */
2573 ATTR_syntax___mmbuilder___SignatureBuilder____signature(fra.me.REG[0]) = fra.me.REG[1];
2574 stack_frame_head = fra.me.prev;
2575 return;
2576 }
2577 void syntax___mmbuilder___SignatureBuilder___init(val_t p0, int* init_table){
2578 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___SignatureBuilder].i;
2579 struct {struct stack_frame_t me;} fra;
2580 val_t tmp;
2581 if (init_table[itpos8]) return;
2582 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2583 fra.me.file = LOCATE_syntax___mmbuilder;
2584 fra.me.line = 0;
2585 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___init;
2586 fra.me.has_broke = 0;
2587 fra.me.REG_size = 0;
2588 stack_frame_head = fra.me.prev;
2589 init_table[itpos8] = 1;
2590 return;
2591 }
2592 void syntax___mmbuilder___ANode___accept_class_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_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_specialization_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_specialization_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_ancestor_builder(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_ancestor_builder;
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_class_verifier(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_class_verifier;
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_builder(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_builder;
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___ANode___accept_property_verifier(val_t p0, val_t p1){
2683 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2684 val_t tmp;
2685 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2686 fra.me.file = LOCATE_syntax___mmbuilder;
2687 fra.me.line = 443;
2688 fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_property_verifier;
2689 fra.me.has_broke = 0;
2690 fra.me.REG_size = 2;
2691 fra.me.REG[0] = NIT_NULL;
2692 fra.me.REG[1] = NIT_NULL;
2693 fra.me.REG[0] = p0;
2694 fra.me.REG[1] = p1;
2695 /* ./syntax//mmbuilder.nit:443 */
2696 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2697 stack_frame_head = fra.me.prev;
2698 return;
2699 }
2700 void syntax___mmbuilder___AModule___import_super_modules(val_t p0, val_t p1, val_t p2){
2701 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
2702 val_t REGB0;
2703 val_t REGB1;
2704 val_t tmp;
2705 static val_t once_value_2; /* Once value */
2706 static val_t once_value_3; /* Once value */
2707 static val_t once_value_4; /* Once value */
2708 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2709 fra.me.file = LOCATE_syntax___mmbuilder;
2710 fra.me.line = 447;
2711 fra.me.meth = LOCATE_syntax___mmbuilder___AModule___import_super_modules;
2712 fra.me.has_broke = 0;
2713 fra.me.REG_size = 5;
2714 fra.me.REG[0] = NIT_NULL;
2715 fra.me.REG[1] = NIT_NULL;
2716 fra.me.REG[2] = NIT_NULL;
2717 fra.me.REG[3] = NIT_NULL;
2718 fra.me.REG[4] = NIT_NULL;
2719 fra.me.REG[0] = p0;
2720 fra.me.REG[1] = p1;
2721 fra.me.REG[2] = p2;
2722 /* ./syntax//mmbuilder.nit:451 */
2723 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
2724 /* ./syntax//mmbuilder.nit:452 */
2725 fra.me.REG[4] = NIT_NULL;
2726 /* ./syntax//mmbuilder.nit:453 */
2727 fra.me.REG[0] = CALL_parser___parser_nodes___AModule___n_imports(fra.me.REG[0])(fra.me.REG[0]);
2728 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));
2729 /* ./syntax//mmbuilder.nit:463 */
2730 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2731 if (UNTAG_Bool(REGB0)) {
2732 } else {
2733 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2734 if (UNTAG_Bool(REGB1)) {
2735 REGB1 = TAG_Bool(false);
2736 REGB0 = REGB1;
2737 } else {
2738 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
2739 REGB0 = REGB1;
2740 }
2741 }
2742 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2743 if (UNTAG_Bool(REGB0)) {
2744 /* ./syntax//mmbuilder.nit:464 */
2745 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
2746 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2747 if (UNTAG_Bool(REGB0)) {
2748 /* ./syntax//mmbuilder.nit:465 */
2749 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2750 if (UNTAG_Bool(REGB0)) {
2751 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 465);
2752 }
2753 fra.me.REG[4] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[4])(fra.me.REG[4]);
2754 if (!once_value_2) {
2755 fra.me.REG[0] = BOX_NativeString("Error: Top modules cannot import other modules.");
2756 REGB0 = TAG_Int(47);
2757 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2758 once_value_2 = fra.me.REG[0];
2759 register_static_object(&once_value_2);
2760 } else fra.me.REG[0] = once_value_2;
2761 fra.me.REG[0] = fra.me.REG[0];
2762 CALL_mmloader___ToolContext___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]);
2763 }
2764 } else {
2765 /* ./syntax//mmbuilder.nit:467 */
2766 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
2767 if (UNTAG_Bool(REGB0)) {
2768 /* ./syntax//mmbuilder.nit:468 */
2769 if (!once_value_3) {
2770 if (!once_value_4) {
2771 fra.me.REG[0] = BOX_NativeString("standard");
2772 REGB0 = TAG_Int(8);
2773 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2774 once_value_4 = fra.me.REG[0];
2775 register_static_object(&once_value_4);
2776 } else fra.me.REG[0] = once_value_4;
2777 fra.me.REG[0] = fra.me.REG[0];
2778 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
2779 once_value_3 = fra.me.REG[0];
2780 register_static_object(&once_value_3);
2781 } else fra.me.REG[0] = once_value_3;
2782 fra.me.REG[0] = fra.me.REG[0];
2783 /* ./syntax//mmbuilder.nit:469 */
2784 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]);
2785 /* ./syntax//mmbuilder.nit:470 */
2786 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
2787 /* ./syntax//mmbuilder.nit:471 */
2788 REGB0 = TAG_Int(1);
2789 CALL_metamodel___abstractmetamodel___MMModule___add_super_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], REGB0);
2790 }
2791 }
2792 /* ./syntax//mmbuilder.nit:474 */
2793 CALL_metamodel___abstractmetamodel___MMContext___add_module(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
2794 stack_frame_head = fra.me.prev;
2795 return;
2796 }
2797 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){
2798 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2799 val_t REGB0;
2800 val_t REGB1;
2801 fun_t CREG[1];
2802 val_t tmp;
2803 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2804 fra.me.file = LOCATE_syntax___mmbuilder;
2805 fra.me.line = 0;
2806 fra.me.meth = LOCATE_syntax___mmbuilder___AModule___import_super_modules;
2807 fra.me.has_broke = 0;
2808 fra.me.REG_size = 2;
2809 fra.me.REG[0] = NIT_NULL;
2810 fra.me.REG[1] = NIT_NULL;
2811 fra.me.closure_ctx = closctx_param;
2812 fra.me.closure_funs = CREG;
2813 fra.me.REG[0] = p0;
2814 CREG[0] = clos_fun0;
2815 /* ./syntax//mmbuilder.nit:454 */
2816 fra.me.REG[1] = CALL_syntax___mmbuilder___AImport___module_name(fra.me.REG[0])(fra.me.REG[0]);
2817 /* ./syntax//mmbuilder.nit:455 */
2818 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2819 if (UNTAG_Bool(REGB0)) {
2820 } else {
2821 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2822 if (UNTAG_Bool(REGB1)) {
2823 REGB1 = TAG_Bool(false);
2824 REGB0 = REGB1;
2825 } else {
2826 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2827 REGB0 = REGB1;
2828 }
2829 }
2830 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2831 if (UNTAG_Bool(REGB0)) {
2832 /* ./syntax//mmbuilder.nit:456 */
2833 fra.me.REG[1] = CALL_mmloader___ToolContext___get_module(closctx->REG[1])(closctx->REG[1], fra.me.REG[1], closctx->REG[2]);
2834 /* ./syntax//mmbuilder.nit:457 */
2835 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[1]);
2836 /* ./syntax//mmbuilder.nit:458 */
2837 REGB0 = CALL_syntax___mmbuilder___AImport___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
2838 CALL_metamodel___abstractmetamodel___MMModule___add_super_module(closctx->REG[2])(closctx->REG[2], fra.me.REG[1], REGB0);
2839 } else {
2840 /* ./syntax//mmbuilder.nit:460 */
2841 closctx->REG[4] = fra.me.REG[0];
2842 }
2843 stack_frame_head = fra.me.prev;
2844 return;
2845 }
2846 void syntax___mmbuilder___AModuledecl___accept_class_builder(val_t p0, val_t p1){
2847 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
2848 val_t REGB0;
2849 val_t REGB1;
2850 val_t tmp;
2851 static val_t once_value_1; /* Once value */
2852 static val_t once_value_2; /* Once value */
2853 static val_t once_value_3; /* Once value */
2854 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2855 fra.me.file = LOCATE_syntax___mmbuilder;
2856 fra.me.line = 479;
2857 fra.me.meth = LOCATE_syntax___mmbuilder___AModuledecl___accept_class_builder;
2858 fra.me.has_broke = 0;
2859 fra.me.REG_size = 5;
2860 fra.me.REG[0] = NIT_NULL;
2861 fra.me.REG[1] = NIT_NULL;
2862 fra.me.REG[2] = NIT_NULL;
2863 fra.me.REG[3] = NIT_NULL;
2864 fra.me.REG[4] = NIT_NULL;
2865 fra.me.REG[0] = p0;
2866 fra.me.REG[1] = p1;
2867 /* ./syntax//mmbuilder.nit:481 */
2868 fra.me.REG[2] = CALL_parser___parser_nodes___AModuledecl___n_name(fra.me.REG[0])(fra.me.REG[0]);
2869 fra.me.REG[2] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[2])(fra.me.REG[2]);
2870 fra.me.REG[2] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
2871 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
2872 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___name(fra.me.REG[3])(fra.me.REG[3]);
2873 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
2874 if (UNTAG_Bool(REGB0)) {
2875 } else {
2876 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2877 REGB0 = REGB1;
2878 }
2879 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2880 if (UNTAG_Bool(REGB0)) {
2881 /* ./syntax//mmbuilder.nit:482 */
2882 fra.me.REG[3] = CALL_parser___parser_nodes___AModuledecl___n_name(fra.me.REG[0])(fra.me.REG[0]);
2883 fra.me.REG[3] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[3])(fra.me.REG[3]);
2884 REGB0 = TAG_Int(5);
2885 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2886 if (!once_value_1) {
2887 fra.me.REG[4] = BOX_NativeString("Error: Module name mismatch between ");
2888 REGB0 = TAG_Int(36);
2889 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2890 once_value_1 = fra.me.REG[4];
2891 register_static_object(&once_value_1);
2892 } else fra.me.REG[4] = once_value_1;
2893 fra.me.REG[4] = fra.me.REG[4];
2894 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
2895 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
2896 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMModule___name(fra.me.REG[4])(fra.me.REG[4]);
2897 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
2898 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
2899 if (!once_value_2) {
2900 fra.me.REG[4] = BOX_NativeString(" and ");
2901 REGB0 = TAG_Int(5);
2902 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2903 once_value_2 = fra.me.REG[4];
2904 register_static_object(&once_value_2);
2905 } else fra.me.REG[4] = once_value_2;
2906 fra.me.REG[4] = fra.me.REG[4];
2907 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
2908 fra.me.REG[0] = CALL_parser___parser_nodes___AModuledecl___n_name(fra.me.REG[0])(fra.me.REG[0]);
2909 fra.me.REG[0] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[0])(fra.me.REG[0]);
2910 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
2911 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2912 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2913 if (!once_value_3) {
2914 fra.me.REG[0] = BOX_NativeString("");
2915 REGB0 = TAG_Int(0);
2916 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2917 once_value_3 = fra.me.REG[0];
2918 register_static_object(&once_value_3);
2919 } else fra.me.REG[0] = once_value_3;
2920 fra.me.REG[0] = fra.me.REG[0];
2921 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2922 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2923 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2]);
2924 }
2925 stack_frame_head = fra.me.prev;
2926 return;
2927 }
2928 val_t syntax___mmbuilder___AImport___module_name(val_t p0){
2929 struct {struct stack_frame_t me;} fra;
2930 val_t tmp;
2931 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2932 fra.me.file = LOCATE_syntax___mmbuilder;
2933 fra.me.line = 488;
2934 fra.me.meth = LOCATE_syntax___mmbuilder___AImport___module_name;
2935 fra.me.has_broke = 0;
2936 fra.me.REG_size = 0;
2937 /* ./syntax//mmbuilder.nit:488 */
2938 nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 488);
2939 stack_frame_head = fra.me.prev;
2940 return NIT_NULL;
2941 }
2942 val_t syntax___mmbuilder___AImport___visibility_level(val_t p0){
2943 struct {struct stack_frame_t me;} fra;
2944 val_t tmp;
2945 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2946 fra.me.file = LOCATE_syntax___mmbuilder;
2947 fra.me.line = 491;
2948 fra.me.meth = LOCATE_syntax___mmbuilder___AImport___visibility_level;
2949 fra.me.has_broke = 0;
2950 fra.me.REG_size = 0;
2951 /* ./syntax//mmbuilder.nit:491 */
2952 nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 491);
2953 stack_frame_head = fra.me.prev;
2954 return NIT_NULL;
2955 }
2956 val_t syntax___mmbuilder___AStdImport___module_name(val_t p0){
2957 struct {struct stack_frame_t me;} fra;
2958 val_t tmp;
2959 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2960 fra.me.file = LOCATE_syntax___mmbuilder;
2961 fra.me.line = 495;
2962 fra.me.meth = LOCATE_syntax___mmbuilder___AStdImport___module_name;
2963 fra.me.has_broke = 0;
2964 fra.me.REG_size = 1;
2965 fra.me.REG[0] = NIT_NULL;
2966 fra.me.REG[0] = p0;
2967 /* ./syntax//mmbuilder.nit:497 */
2968 fra.me.REG[0] = CALL_parser___parser_nodes___AStdImport___n_name(fra.me.REG[0])(fra.me.REG[0]);
2969 fra.me.REG[0] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[0])(fra.me.REG[0]);
2970 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
2971 goto label1;
2972 label1: while(0);
2973 stack_frame_head = fra.me.prev;
2974 return fra.me.REG[0];
2975 }
2976 val_t syntax___mmbuilder___AStdImport___visibility_level(val_t p0){
2977 struct {struct stack_frame_t me;} fra;
2978 val_t REGB0;
2979 val_t tmp;
2980 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2981 fra.me.file = LOCATE_syntax___mmbuilder;
2982 fra.me.line = 499;
2983 fra.me.meth = LOCATE_syntax___mmbuilder___AStdImport___visibility_level;
2984 fra.me.has_broke = 0;
2985 fra.me.REG_size = 1;
2986 fra.me.REG[0] = NIT_NULL;
2987 fra.me.REG[0] = p0;
2988 /* ./syntax//mmbuilder.nit:501 */
2989 fra.me.REG[0] = CALL_parser___parser_nodes___AStdImport___n_visibility(fra.me.REG[0])(fra.me.REG[0]);
2990 REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
2991 goto label1;
2992 label1: while(0);
2993 stack_frame_head = fra.me.prev;
2994 return REGB0;
2995 }
2996 val_t syntax___mmbuilder___ANoImport___module_name(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 = 505;
3002 fra.me.meth = LOCATE_syntax___mmbuilder___ANoImport___module_name;
3003 fra.me.has_broke = 0;
3004 fra.me.REG_size = 1;
3005 fra.me.REG[0] = NIT_NULL;
3006 fra.me.REG[0] = p0;
3007 /* ./syntax//mmbuilder.nit:507 */
3008 fra.me.REG[0] = NIT_NULL;
3009 goto label1;
3010 label1: while(0);
3011 stack_frame_head = fra.me.prev;
3012 return fra.me.REG[0];
3013 }
3014 val_t syntax___mmbuilder___AVisibility___level(val_t p0){
3015 struct {struct stack_frame_t me;} fra;
3016 val_t tmp;
3017 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3018 fra.me.file = LOCATE_syntax___mmbuilder;
3019 fra.me.line = 512;
3020 fra.me.meth = LOCATE_syntax___mmbuilder___AVisibility___level;
3021 fra.me.has_broke = 0;
3022 fra.me.REG_size = 0;
3023 /* ./syntax//mmbuilder.nit:512 */
3024 nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 512);
3025 stack_frame_head = fra.me.prev;
3026 return NIT_NULL;
3027 }
3028 val_t syntax___mmbuilder___APublicVisibility___level(val_t p0){
3029 struct {struct stack_frame_t me;} fra;
3030 val_t REGB0;
3031 val_t tmp;
3032 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3033 fra.me.file = LOCATE_syntax___mmbuilder;
3034 fra.me.line = 516;
3035 fra.me.meth = LOCATE_syntax___mmbuilder___APublicVisibility___level;
3036 fra.me.has_broke = 0;
3037 fra.me.REG_size = 1;
3038 fra.me.REG[0] = NIT_NULL;
3039 fra.me.REG[0] = p0;
3040 /* ./syntax//mmbuilder.nit:516 */
3041 REGB0 = TAG_Int(1);
3042 goto label1;
3043 label1: while(0);
3044 stack_frame_head = fra.me.prev;
3045 return REGB0;
3046 }
3047 val_t syntax___mmbuilder___AProtectedVisibility___level(val_t p0){
3048 struct {struct stack_frame_t me;} fra;
3049 val_t REGB0;
3050 val_t tmp;
3051 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3052 fra.me.file = LOCATE_syntax___mmbuilder;
3053 fra.me.line = 519;
3054 fra.me.meth = LOCATE_syntax___mmbuilder___AProtectedVisibility___level;
3055 fra.me.has_broke = 0;
3056 fra.me.REG_size = 1;
3057 fra.me.REG[0] = NIT_NULL;
3058 fra.me.REG[0] = p0;
3059 /* ./syntax//mmbuilder.nit:519 */
3060 REGB0 = TAG_Int(2);
3061 goto label1;
3062 label1: while(0);
3063 stack_frame_head = fra.me.prev;
3064 return REGB0;
3065 }
3066 val_t syntax___mmbuilder___APrivateVisibility___level(val_t p0){
3067 struct {struct stack_frame_t me;} fra;
3068 val_t REGB0;
3069 val_t tmp;
3070 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3071 fra.me.file = LOCATE_syntax___mmbuilder;
3072 fra.me.line = 522;
3073 fra.me.meth = LOCATE_syntax___mmbuilder___APrivateVisibility___level;
3074 fra.me.has_broke = 0;
3075 fra.me.REG_size = 1;
3076 fra.me.REG[0] = NIT_NULL;
3077 fra.me.REG[0] = p0;
3078 /* ./syntax//mmbuilder.nit:522 */
3079 REGB0 = TAG_Int(3);
3080 goto label1;
3081 label1: while(0);
3082 stack_frame_head = fra.me.prev;
3083 return REGB0;
3084 }
3085 val_t syntax___mmbuilder___AIntrudeVisibility___level(val_t p0){
3086 struct {struct stack_frame_t me;} fra;
3087 val_t REGB0;
3088 val_t tmp;
3089 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3090 fra.me.file = LOCATE_syntax___mmbuilder;
3091 fra.me.line = 525;
3092 fra.me.meth = LOCATE_syntax___mmbuilder___AIntrudeVisibility___level;
3093 fra.me.has_broke = 0;
3094 fra.me.REG_size = 1;
3095 fra.me.REG[0] = NIT_NULL;
3096 fra.me.REG[0] = p0;
3097 /* ./syntax//mmbuilder.nit:525 */
3098 REGB0 = TAG_Int(0);
3099 goto label1;
3100 label1: while(0);
3101 stack_frame_head = fra.me.prev;
3102 return REGB0;
3103 }
3104 val_t syntax___mmbuilder___AClassdef___local_class(val_t p0){
3105 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3106 val_t REGB0;
3107 val_t tmp;
3108 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3109 fra.me.file = LOCATE_syntax___mmbuilder;
3110 fra.me.line = 530;
3111 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___local_class;
3112 fra.me.has_broke = 0;
3113 fra.me.REG_size = 2;
3114 fra.me.REG[0] = NIT_NULL;
3115 fra.me.REG[1] = NIT_NULL;
3116 fra.me.REG[0] = p0;
3117 /* ./syntax//mmbuilder.nit:530 */
3118 fra.me.REG[1] = fra.me.REG[0];
3119 fra.me.REG[1] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[1]);
3120 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
3121 if (UNTAG_Bool(REGB0)) {
3122 } else {
3123 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 530);
3124 }
3125 goto label1;
3126 label1: while(0);
3127 stack_frame_head = fra.me.prev;
3128 return fra.me.REG[1];
3129 }
3130 val_t syntax___mmbuilder___AClassdef___name(val_t p0){
3131 struct {struct stack_frame_t me;} fra;
3132 val_t tmp;
3133 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3134 fra.me.file = LOCATE_syntax___mmbuilder;
3135 fra.me.line = 533;
3136 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___name;
3137 fra.me.has_broke = 0;
3138 fra.me.REG_size = 0;
3139 /* ./syntax//mmbuilder.nit:533 */
3140 nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 533);
3141 stack_frame_head = fra.me.prev;
3142 return NIT_NULL;
3143 }
3144 val_t syntax___mmbuilder___AClassdef___arity(val_t p0){
3145 struct {struct stack_frame_t me;} fra;
3146 val_t REGB0;
3147 val_t tmp;
3148 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3149 fra.me.file = LOCATE_syntax___mmbuilder;
3150 fra.me.line = 536;
3151 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___arity;
3152 fra.me.has_broke = 0;
3153 fra.me.REG_size = 1;
3154 fra.me.REG[0] = NIT_NULL;
3155 fra.me.REG[0] = p0;
3156 /* ./syntax//mmbuilder.nit:537 */
3157 REGB0 = TAG_Int(0);
3158 goto label1;
3159 label1: while(0);
3160 stack_frame_head = fra.me.prev;
3161 return REGB0;
3162 }
3163 val_t syntax___mmbuilder___AClassdef___visibility_level(val_t p0){
3164 struct {struct stack_frame_t me;} fra;
3165 val_t REGB0;
3166 val_t tmp;
3167 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3168 fra.me.file = LOCATE_syntax___mmbuilder;
3169 fra.me.line = 539;
3170 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___visibility_level;
3171 fra.me.has_broke = 0;
3172 fra.me.REG_size = 1;
3173 fra.me.REG[0] = NIT_NULL;
3174 fra.me.REG[0] = p0;
3175 /* ./syntax//mmbuilder.nit:540 */
3176 REGB0 = TAG_Int(1);
3177 goto label1;
3178 label1: while(0);
3179 stack_frame_head = fra.me.prev;
3180 return REGB0;
3181 }
3182 void syntax___mmbuilder___AClassdef___accept_class_builder(val_t p0, val_t p1){
3183 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
3184 val_t REGB0;
3185 val_t REGB1;
3186 val_t tmp;
3187 static val_t once_value_1; /* Once value */
3188 static val_t once_value_2; /* Once value */
3189 static val_t once_value_3; /* Once value */
3190 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3191 fra.me.file = LOCATE_syntax___mmbuilder;
3192 fra.me.line = 542;
3193 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___accept_class_builder;
3194 fra.me.has_broke = 0;
3195 fra.me.REG_size = 9;
3196 fra.me.REG[0] = NIT_NULL;
3197 fra.me.REG[1] = NIT_NULL;
3198 fra.me.REG[2] = NIT_NULL;
3199 fra.me.REG[3] = NIT_NULL;
3200 fra.me.REG[4] = NIT_NULL;
3201 fra.me.REG[5] = NIT_NULL;
3202 fra.me.REG[6] = NIT_NULL;
3203 fra.me.REG[7] = NIT_NULL;
3204 fra.me.REG[8] = NIT_NULL;
3205 fra.me.REG[0] = p0;
3206 fra.me.REG[1] = p1;
3207 /* ./syntax//mmbuilder.nit:542 */
3208 fra.me.REG[2] = fra.me.REG[0];
3209 fra.me.REG[3] = fra.me.REG[1];
3210 /* ./syntax//mmbuilder.nit:545 */
3211 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
3212 /* ./syntax//mmbuilder.nit:546 */
3213 fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra.me.REG[4])(fra.me.REG[4]);
3214 /* ./syntax//mmbuilder.nit:547 */
3215 fra.me.REG[6] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3216 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
3217 if (UNTAG_Bool(REGB0)) {
3218 /* ./syntax//mmbuilder.nit:548 */
3219 fra.me.REG[6] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3220 fra.me.REG[6] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
3221 /* ./syntax//mmbuilder.nit:549 */
3222 ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]) = fra.me.REG[6];
3223 /* ./syntax//mmbuilder.nit:550 */
3224 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
3225 if (UNTAG_Bool(REGB0)) {
3226 /* ./syntax//mmbuilder.nit:552 */
3227 REGB0 = TAG_Int(5);
3228 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3229 if (!once_value_1) {
3230 fra.me.REG[8] = BOX_NativeString("Error: A class ");
3231 REGB0 = TAG_Int(15);
3232 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3233 once_value_1 = fra.me.REG[8];
3234 register_static_object(&once_value_1);
3235 } else fra.me.REG[8] = once_value_1;
3236 fra.me.REG[8] = fra.me.REG[8];
3237 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3238 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3239 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3240 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3241 if (!once_value_2) {
3242 fra.me.REG[8] = BOX_NativeString(" is already defined at line ");
3243 REGB0 = TAG_Int(28);
3244 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3245 once_value_2 = fra.me.REG[8];
3246 register_static_object(&once_value_2);
3247 } else fra.me.REG[8] = once_value_2;
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[8] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[6])(fra.me.REG[6]);
3251 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
3252 if (UNTAG_Bool(REGB0)) {
3253 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 552);
3254 }
3255 fra.me.REG[8] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[8])(fra.me.REG[8]);
3256 REGB0 = CALL_location___Location___line_start(fra.me.REG[8])(fra.me.REG[8]);
3257 fra.me.REG[8] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
3258 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3259 if (!once_value_3) {
3260 fra.me.REG[8] = BOX_NativeString(".");
3261 REGB0 = TAG_Int(1);
3262 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3263 once_value_3 = fra.me.REG[8];
3264 register_static_object(&once_value_3);
3265 } else fra.me.REG[8] = once_value_3;
3266 fra.me.REG[8] = fra.me.REG[8];
3267 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3268 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3269 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3270 /* ./syntax//mmbuilder.nit:553 */
3271 goto label4;
3272 }
3273 /* ./syntax//mmbuilder.nit:556 */
3274 fra.me.REG[7] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[6])(fra.me.REG[6]);
3275 /* ./syntax//mmbuilder.nit:557 */
3276 while(1) {
3277 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
3278 if (UNTAG_Bool(REGB0)) {
3279 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 557);
3280 }
3281 fra.me.REG[8] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[7])(fra.me.REG[7]);
3282 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
3283 if (UNTAG_Bool(REGB0)) {
3284 } else {
3285 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
3286 if (UNTAG_Bool(REGB1)) {
3287 REGB1 = TAG_Bool(false);
3288 REGB0 = REGB1;
3289 } else {
3290 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
3291 REGB0 = REGB1;
3292 }
3293 }
3294 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3295 if (UNTAG_Bool(REGB0)) {
3296 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
3297 if (UNTAG_Bool(REGB0)) {
3298 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 557);
3299 }
3300 fra.me.REG[8] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[7])(fra.me.REG[7]);
3301 fra.me.REG[7] = fra.me.REG[8];
3302 } else {
3303 goto label5;
3304 }
3305 }
3306 label5: while(0);
3307 /* ./syntax//mmbuilder.nit:558 */
3308 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
3309 if (UNTAG_Bool(REGB0)) {
3310 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 558);
3311 }
3312 CALL_syntax___syntax_base___AClassdef___next_node__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]);
3313 } else {
3314 /* ./syntax//mmbuilder.nit:560 */
3315 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3316 REGB0 = CALL_syntax___mmbuilder___AClassdef___arity(fra.me.REG[2])(fra.me.REG[2]);
3317 fra.me.REG[7] = NEW_MMSrcLocalClass_syntax___syntax_base___MMSrcLocalClass___init(fra.me.REG[4], fra.me.REG[7], fra.me.REG[2], REGB0);
3318 fra.me.REG[6] = fra.me.REG[7];
3319 /* ./syntax//mmbuilder.nit:561 */
3320 ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]) = fra.me.REG[6];
3321 /* ./syntax//mmbuilder.nit:562 */
3322 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3323 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7], fra.me.REG[6]);
3324 /* ./syntax//mmbuilder.nit:563 */
3325 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3326 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
3327 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3328 if (UNTAG_Bool(REGB0)) {
3329 /* ./syntax//mmbuilder.nit:564 */
3330 CALL_syntax___mmbuilder___AClassdef___build_class_introduction(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3331 } else {
3332 /* ./syntax//mmbuilder.nit:566 */
3333 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3334 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMModule___global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
3335 /* ./syntax//mmbuilder.nit:567 */
3336 CALL_syntax___mmbuilder___AClassdef___build_class_refinement(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[7]);
3337 }
3338 }
3339 /* ./syntax//mmbuilder.nit:571 */
3340 REGB0 = TAG_Int(0);
3341 CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
3342 /* ./syntax//mmbuilder.nit:572 */
3343 fra.me.REG[6] = CALL_syntax___syntax_base___MMSrcLocalClass___formal_dict(fra.me.REG[6])(fra.me.REG[6]);
3344 CALL_syntax___mmbuilder___ClassBuilderVisitor___formals__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
3345 /* ./syntax//mmbuilder.nit:575 */
3346 CALL_SUPER_syntax___mmbuilder___AClassdef___accept_class_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3347 /* ./syntax//mmbuilder.nit:578 */
3348 CALL_syntax___mmbuilder___ClassBuilderVisitor___formals__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3349 label4: while(0);
3350 stack_frame_head = fra.me.prev;
3351 return;
3352 }
3353 void syntax___mmbuilder___AClassdef___build_class_introduction(val_t p0, val_t p1){
3354 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
3355 val_t REGB0;
3356 val_t REGB1;
3357 val_t tmp;
3358 static val_t once_value_1; /* Once value */
3359 static val_t once_value_2; /* Once value */
3360 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3361 fra.me.file = LOCATE_syntax___mmbuilder;
3362 fra.me.line = 581;
3363 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___build_class_introduction;
3364 fra.me.has_broke = 0;
3365 fra.me.REG_size = 5;
3366 fra.me.REG[0] = NIT_NULL;
3367 fra.me.REG[1] = NIT_NULL;
3368 fra.me.REG[2] = NIT_NULL;
3369 fra.me.REG[3] = NIT_NULL;
3370 fra.me.REG[4] = NIT_NULL;
3371 fra.me.REG[0] = p0;
3372 fra.me.REG[1] = p1;
3373 /* ./syntax//mmbuilder.nit:583 */
3374 fra.me.REG[2] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[0])(fra.me.REG[0]);
3375 CALL_metamodel___abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
3376 /* ./syntax//mmbuilder.nit:584 */
3377 fra.me.REG[2] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[0])(fra.me.REG[0]);
3378 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
3379 /* ./syntax//mmbuilder.nit:586 */
3380 REGB0 = CALL_syntax___mmbuilder___AClassdef___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
3381 CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
3382 /* ./syntax//mmbuilder.nit:587 */
3383 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
3384 if (UNTAG_Bool(REGB0)) {
3385 /* ./syntax//mmbuilder.nit:588 */
3386 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[0])(fra.me.REG[0]);
3387 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3388 if (UNTAG_Bool(REGB0)) {
3389 } else {
3390 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3391 if (UNTAG_Bool(REGB1)) {
3392 REGB1 = TAG_Bool(false);
3393 REGB0 = REGB1;
3394 } else {
3395 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3396 REGB0 = REGB1;
3397 }
3398 }
3399 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3400 if (UNTAG_Bool(REGB0)) {
3401 /* ./syntax//mmbuilder.nit:589 */
3402 REGB0 = TAG_Int(3);
3403 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3404 if (!once_value_1) {
3405 fra.me.REG[4] = BOX_NativeString("Redef error: No class ");
3406 REGB0 = TAG_Int(22);
3407 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
3408 once_value_1 = fra.me.REG[4];
3409 register_static_object(&once_value_1);
3410 } else fra.me.REG[4] = once_value_1;
3411 fra.me.REG[4] = fra.me.REG[4];
3412 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3413 fra.me.REG[4] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[0])(fra.me.REG[0]);
3414 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3415 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3416 if (!once_value_2) {
3417 fra.me.REG[4] = BOX_NativeString(" is imported. Remove the redef keyword to define a new class.");
3418 REGB0 = TAG_Int(61);
3419 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
3420 once_value_2 = fra.me.REG[4];
3421 register_static_object(&once_value_2);
3422 } else fra.me.REG[4] = once_value_2;
3423 fra.me.REG[4] = fra.me.REG[4];
3424 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3425 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3426 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
3427 /* ./syntax//mmbuilder.nit:590 */
3428 goto label3;
3429 }
3430 /* ./syntax//mmbuilder.nit:592 */
3431 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3432 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[3])(fra.me.REG[3]);
3433 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
3434 /* ./syntax//mmbuilder.nit:593 */
3435 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3436 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[3])(fra.me.REG[3]);
3437 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
3438 /* ./syntax//mmbuilder.nit:594 */
3439 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3440 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[0])(fra.me.REG[0]);
3441 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
3442 }
3443 label3: while(0);
3444 stack_frame_head = fra.me.prev;
3445 return;
3446 }
3447 void syntax___mmbuilder___AClassdef___build_class_refinement(val_t p0, val_t p1, val_t p2){
3448 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
3449 val_t REGB0;
3450 val_t REGB1;
3451 val_t REGB2;
3452 val_t tmp;
3453 static val_t once_value_1; /* Once value */
3454 static val_t once_value_2; /* Once value */
3455 static val_t once_value_4; /* Once value */
3456 static val_t once_value_5; /* Once value */
3457 static val_t once_value_6; /* Once value */
3458 static val_t once_value_7; /* Once value */
3459 static val_t once_value_8; /* Once value */
3460 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3461 fra.me.file = LOCATE_syntax___mmbuilder;
3462 fra.me.line = 598;
3463 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___build_class_refinement;
3464 fra.me.has_broke = 0;
3465 fra.me.REG_size = 5;
3466 fra.me.REG[0] = NIT_NULL;
3467 fra.me.REG[1] = NIT_NULL;
3468 fra.me.REG[2] = NIT_NULL;
3469 fra.me.REG[3] = NIT_NULL;
3470 fra.me.REG[4] = NIT_NULL;
3471 fra.me.REG[0] = p0;
3472 fra.me.REG[1] = p1;
3473 fra.me.REG[2] = p2;
3474 /* ./syntax//mmbuilder.nit:600 */
3475 fra.me.REG[3] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[0])(fra.me.REG[0]);
3476 CALL_metamodel___abstractmetamodel___MMLocalClass___set_global(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
3477 /* ./syntax//mmbuilder.nit:602 */
3478 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
3479 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]);
3480 /* ./syntax//mmbuilder.nit:603 */
3481 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
3482 if (UNTAG_Bool(REGB0)) {
3483 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[0])(fra.me.REG[0]);
3484 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3485 if (UNTAG_Bool(REGB0)) {
3486 } else {
3487 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3488 if (UNTAG_Bool(REGB1)) {
3489 REGB1 = TAG_Bool(false);
3490 REGB0 = REGB1;
3491 } else {
3492 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3493 REGB0 = REGB1;
3494 }
3495 }
3496 } else {
3497 REGB1 = TAG_Bool(false);
3498 REGB0 = REGB1;
3499 }
3500 if (UNTAG_Bool(REGB0)) {
3501 /* ./syntax//mmbuilder.nit:604 */
3502 REGB0 = TAG_Int(3);
3503 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3504 if (!once_value_1) {
3505 fra.me.REG[4] = BOX_NativeString("Redef error: ");
3506 REGB0 = TAG_Int(13);
3507 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
3508 once_value_1 = fra.me.REG[4];
3509 register_static_object(&once_value_1);
3510 } else fra.me.REG[4] = once_value_1;
3511 fra.me.REG[4] = fra.me.REG[4];
3512 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3513 fra.me.REG[4] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[0])(fra.me.REG[0]);
3514 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3515 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3516 if (!once_value_2) {
3517 fra.me.REG[4] = BOX_NativeString(" is an imported class. Add the redef keyword to refine it.");
3518 REGB0 = TAG_Int(58);
3519 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
3520 once_value_2 = fra.me.REG[4];
3521 register_static_object(&once_value_2);
3522 } else fra.me.REG[4] = once_value_2;
3523 fra.me.REG[4] = fra.me.REG[4];
3524 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3525 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3526 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
3527 /* ./syntax//mmbuilder.nit:605 */
3528 goto label3;
3529 }
3530 /* ./syntax//mmbuilder.nit:608 */
3531 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[2])(fra.me.REG[2]);
3532 REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[3])(fra.me.REG[3]);
3533 fra.me.REG[3] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[0]);
3534 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3535 if (UNTAG_Bool(REGB1)) {
3536 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 608);
3537 }
3538 REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[3])(fra.me.REG[3]);
3539 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
3540 if (UNTAG_Bool(REGB2)) {
3541 } else {
3542 /* ./../lib/standard//kernel.nit:227 */
3543 REGB1 = TAG_Bool((REGB0)==(REGB1));
3544 /* ./syntax//mmbuilder.nit:608 */
3545 REGB2 = REGB1;
3546 }
3547 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
3548 if (UNTAG_Bool(REGB2)) {
3549 /* ./syntax//mmbuilder.nit:609 */
3550 REGB2 = TAG_Int(5);
3551 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
3552 if (!once_value_4) {
3553 fra.me.REG[4] = BOX_NativeString("Redef error: Formal parameter arity missmatch; got ");
3554 REGB2 = TAG_Int(51);
3555 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
3556 once_value_4 = fra.me.REG[4];
3557 register_static_object(&once_value_4);
3558 } else fra.me.REG[4] = once_value_4;
3559 fra.me.REG[4] = fra.me.REG[4];
3560 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3561 fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[0]);
3562 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3563 if (UNTAG_Bool(REGB2)) {
3564 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 609);
3565 }
3566 REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
3567 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
3568 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3569 if (!once_value_5) {
3570 fra.me.REG[4] = BOX_NativeString(", expected ");
3571 REGB2 = TAG_Int(11);
3572 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
3573 once_value_5 = fra.me.REG[4];
3574 register_static_object(&once_value_5);
3575 } else fra.me.REG[4] = once_value_5;
3576 fra.me.REG[4] = fra.me.REG[4];
3577 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3578 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[2])(fra.me.REG[2]);
3579 REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
3580 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
3581 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3582 if (!once_value_6) {
3583 fra.me.REG[4] = BOX_NativeString(".");
3584 REGB2 = TAG_Int(1);
3585 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
3586 once_value_6 = fra.me.REG[4];
3587 register_static_object(&once_value_6);
3588 } else fra.me.REG[4] = once_value_6;
3589 fra.me.REG[4] = fra.me.REG[4];
3590 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3591 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3592 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
3593 }
3594 /* ./syntax//mmbuilder.nit:612 */
3595 REGB2 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
3596 if (UNTAG_Bool(REGB2)) {
3597 REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[2])(fra.me.REG[2]);
3598 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
3599 if (UNTAG_Bool(REGB2)) {
3600 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3601 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[3])(fra.me.REG[3]);
3602 } else {
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_abstract(fra.me.REG[2])(fra.me.REG[2]);
3611 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3612 /* ./syntax//mmbuilder.nit:612 */
3613 REGB2 = REGB1;
3614 }
3615 if (UNTAG_Bool(REGB2)) {
3616 /* ./syntax//mmbuilder.nit:613 */
3617 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3618 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[3])(fra.me.REG[3]);
3619 } else {
3620 /* ./syntax//mmbuilder.nit:612 */
3621 REGB1 = TAG_Bool(false);
3622 REGB2 = REGB1;
3623 }
3624 if (UNTAG_Bool(REGB2)) {
3625 REGB2 = TAG_Bool(true);
3626 } else {
3627 /* ./syntax//mmbuilder.nit:614 */
3628 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[2])(fra.me.REG[2]);
3629 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3630 /* ./syntax//mmbuilder.nit:612 */
3631 REGB2 = REGB1;
3632 }
3633 if (UNTAG_Bool(REGB2)) {
3634 /* ./syntax//mmbuilder.nit:614 */
3635 fra.me.REG[2] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3636 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[2])(fra.me.REG[2]);
3637 } else {
3638 /* ./syntax//mmbuilder.nit:612 */
3639 REGB1 = TAG_Bool(false);
3640 REGB2 = REGB1;
3641 }
3642 } else {
3643 REGB1 = TAG_Bool(false);
3644 REGB2 = REGB1;
3645 }
3646 if (UNTAG_Bool(REGB2)) {
3647 /* ./syntax//mmbuilder.nit:616 */
3648 REGB2 = TAG_Int(3);
3649 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
3650 if (!once_value_7) {
3651 fra.me.REG[3] = BOX_NativeString("Redef error: cannot change kind of class ");
3652 REGB2 = TAG_Int(41);
3653 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
3654 once_value_7 = fra.me.REG[3];
3655 register_static_object(&once_value_7);
3656 } else fra.me.REG[3] = once_value_7;
3657 fra.me.REG[3] = fra.me.REG[3];
3658 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3659 fra.me.REG[3] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[0])(fra.me.REG[0]);
3660 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3661 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3662 if (!once_value_8) {
3663 fra.me.REG[3] = BOX_NativeString(".");
3664 REGB2 = TAG_Int(1);
3665 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
3666 once_value_8 = fra.me.REG[3];
3667 register_static_object(&once_value_8);
3668 } else fra.me.REG[3] = once_value_8;
3669 fra.me.REG[3] = fra.me.REG[3];
3670 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3671 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3672 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
3673 }
3674 label3: while(0);
3675 stack_frame_head = fra.me.prev;
3676 return;
3677 }
3678 void syntax___mmbuilder___AClassdef___accept_class_verifier(val_t p0, val_t p1){
3679 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
3680 val_t REGB0;
3681 val_t REGB1;
3682 val_t REGB2;
3683 val_t tmp;
3684 static val_t once_value_1; /* Once value */
3685 static val_t once_value_2; /* Once value */
3686 static val_t once_value_3; /* Once value */
3687 static val_t once_value_4; /* Once value */
3688 static val_t once_value_5; /* Once value */
3689 static val_t once_value_6; /* Once value */
3690 static val_t once_value_7; /* Once value */
3691 static val_t once_value_8; /* Once value */
3692 static val_t once_value_9; /* Once value */
3693 static val_t once_value_10; /* Once value */
3694 static val_t once_value_11; /* Once value */
3695 static val_t once_value_12; /* Once value */
3696 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3697 fra.me.file = LOCATE_syntax___mmbuilder;
3698 fra.me.line = 620;
3699 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___accept_class_verifier;
3700 fra.me.has_broke = 0;
3701 fra.me.REG_size = 9;
3702 fra.me.REG[0] = NIT_NULL;
3703 fra.me.REG[1] = NIT_NULL;
3704 fra.me.REG[2] = NIT_NULL;
3705 fra.me.REG[3] = NIT_NULL;
3706 fra.me.REG[4] = NIT_NULL;
3707 fra.me.REG[5] = NIT_NULL;
3708 fra.me.REG[6] = NIT_NULL;
3709 fra.me.REG[7] = NIT_NULL;
3710 fra.me.REG[8] = NIT_NULL;
3711 fra.me.REG[0] = p0;
3712 fra.me.REG[1] = p1;
3713 /* ./syntax//mmbuilder.nit:620 */
3714 fra.me.REG[2] = fra.me.REG[0];
3715 fra.me.REG[3] = fra.me.REG[1];
3716 /* ./syntax//mmbuilder.nit:622 */
3717 CALL_SUPER_syntax___mmbuilder___AClassdef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3718 /* ./syntax//mmbuilder.nit:623 */
3719 fra.me.REG[1] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3720 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3721 if (UNTAG_Bool(REGB0)) {
3722 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 623);
3723 }
3724 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
3725 /* ./syntax//mmbuilder.nit:624 */
3726 fra.me.REG[0] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3727 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3728 if (UNTAG_Bool(REGB0)) {
3729 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 624);
3730 }
3731 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
3732 fra.me.REG[0] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[0])(fra.me.REG[0]);
3733 /* ./../lib/standard//collection//array.nit:269 */
3734 REGB0 = TAG_Int(0);
3735 /* ./../lib/standard//collection//array.nit:270 */
3736 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3737 if (UNTAG_Bool(REGB1)) {
3738 } else {
3739 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
3740 }
3741 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
3742 /* ./../lib/standard//collection//array.nit:271 */
3743 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
3744 /* ./../lib/standard//collection//array.nit:272 */
3745 while(1) {
3746 /* ./../lib/standard//collection//array.nit:24 */
3747 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3748 if (UNTAG_Bool(REGB1)) {
3749 } else {
3750 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
3751 }
3752 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
3753 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3754 if (UNTAG_Bool(REGB2)) {
3755 } else {
3756 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3757 }
3758 /* ./../lib/standard//kernel.nit:232 */
3759 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3760 /* ./../lib/standard//collection//array.nit:272 */
3761 if (UNTAG_Bool(REGB1)) {
3762 /* ./../lib/standard//collection//array.nit:273 */
3763 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3764 if (UNTAG_Bool(REGB1)) {
3765 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
3766 }
3767 /* ./../lib/standard//collection//array.nit:718 */
3768 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
3769 /* ./syntax//mmbuilder.nit:625 */
3770 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
3771 /* ./syntax//mmbuilder.nit:626 */
3772 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
3773 if (UNTAG_Bool(REGB1)) {
3774 /* ./syntax//mmbuilder.nit:627 */
3775 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
3776 if (UNTAG_Bool(REGB1)) {
3777 /* ./syntax//mmbuilder.nit:628 */
3778 REGB1 = TAG_Int(5);
3779 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
3780 if (!once_value_1) {
3781 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
3782 REGB1 = TAG_Int(25);
3783 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3784 once_value_1 = fra.me.REG[8];
3785 register_static_object(&once_value_1);
3786 } else fra.me.REG[8] = once_value_1;
3787 fra.me.REG[8] = fra.me.REG[8];
3788 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3789 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3790 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3791 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3792 if (!once_value_2) {
3793 fra.me.REG[8] = BOX_NativeString(" try to specialise enum class ");
3794 REGB1 = TAG_Int(30);
3795 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3796 once_value_2 = fra.me.REG[8];
3797 register_static_object(&once_value_2);
3798 } else fra.me.REG[8] = once_value_2;
3799 fra.me.REG[8] = fra.me.REG[8];
3800 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3801 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3802 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3803 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3804 if (!once_value_3) {
3805 fra.me.REG[8] = BOX_NativeString(".");
3806 REGB1 = TAG_Int(1);
3807 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3808 once_value_3 = fra.me.REG[8];
3809 register_static_object(&once_value_3);
3810 } else fra.me.REG[8] = once_value_3;
3811 fra.me.REG[8] = fra.me.REG[8];
3812 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3813 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3814 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3815 } else {
3816 /* ./syntax//mmbuilder.nit:629 */
3817 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
3818 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3819 if (UNTAG_Bool(REGB1)) {
3820 /* ./syntax//mmbuilder.nit:630 */
3821 REGB1 = TAG_Int(5);
3822 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
3823 if (!once_value_4) {
3824 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
3825 REGB1 = TAG_Int(25);
3826 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3827 once_value_4 = fra.me.REG[8];
3828 register_static_object(&once_value_4);
3829 } else fra.me.REG[8] = once_value_4;
3830 fra.me.REG[8] = fra.me.REG[8];
3831 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3832 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3833 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3834 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3835 if (!once_value_5) {
3836 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
3837 REGB1 = TAG_Int(25);
3838 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3839 once_value_5 = fra.me.REG[8];
3840 register_static_object(&once_value_5);
3841 } else fra.me.REG[8] = once_value_5;
3842 fra.me.REG[8] = fra.me.REG[8];
3843 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3844 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3845 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3846 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3847 if (!once_value_6) {
3848 fra.me.REG[8] = BOX_NativeString(".");
3849 REGB1 = TAG_Int(1);
3850 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3851 once_value_6 = fra.me.REG[8];
3852 register_static_object(&once_value_6);
3853 } else fra.me.REG[8] = once_value_6;
3854 fra.me.REG[8] = fra.me.REG[8];
3855 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3856 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3857 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3858 }
3859 }
3860 } else {
3861 /* ./syntax//mmbuilder.nit:632 */
3862 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
3863 if (UNTAG_Bool(REGB1)) {
3864 /* ./syntax//mmbuilder.nit:633 */
3865 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
3866 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3867 if (UNTAG_Bool(REGB1)) {
3868 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
3869 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3870 } else {
3871 REGB2 = TAG_Bool(false);
3872 REGB1 = REGB2;
3873 }
3874 if (UNTAG_Bool(REGB1)) {
3875 /* ./syntax//mmbuilder.nit:634 */
3876 REGB1 = TAG_Int(5);
3877 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
3878 if (!once_value_7) {
3879 fra.me.REG[8] = BOX_NativeString("Special error: Enum class ");
3880 REGB1 = TAG_Int(26);
3881 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3882 once_value_7 = fra.me.REG[8];
3883 register_static_object(&once_value_7);
3884 } else fra.me.REG[8] = once_value_7;
3885 fra.me.REG[8] = fra.me.REG[8];
3886 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3887 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3888 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3889 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3890 if (!once_value_8) {
3891 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
3892 REGB1 = TAG_Int(25);
3893 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3894 once_value_8 = fra.me.REG[8];
3895 register_static_object(&once_value_8);
3896 } else fra.me.REG[8] = once_value_8;
3897 fra.me.REG[8] = fra.me.REG[8];
3898 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3899 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3900 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3901 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3902 if (!once_value_9) {
3903 fra.me.REG[8] = BOX_NativeString(".");
3904 REGB1 = TAG_Int(1);
3905 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3906 once_value_9 = fra.me.REG[8];
3907 register_static_object(&once_value_9);
3908 } else fra.me.REG[8] = once_value_9;
3909 fra.me.REG[8] = fra.me.REG[8];
3910 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3911 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3912 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3913 }
3914 } else {
3915 /* ./syntax//mmbuilder.nit:637 */
3916 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
3917 if (UNTAG_Bool(REGB1)) {
3918 /* ./syntax//mmbuilder.nit:638 */
3919 REGB1 = TAG_Int(5);
3920 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
3921 if (!once_value_10) {
3922 fra.me.REG[7] = BOX_NativeString("Special error: Class ");
3923 REGB1 = TAG_Int(21);
3924 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
3925 once_value_10 = fra.me.REG[7];
3926 register_static_object(&once_value_10);
3927 } else fra.me.REG[7] = once_value_10;
3928 fra.me.REG[7] = fra.me.REG[7];
3929 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
3930 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3931 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3932 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
3933 if (!once_value_11) {
3934 fra.me.REG[7] = BOX_NativeString(" try to specialise enum class ");
3935 REGB1 = TAG_Int(30);
3936 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
3937 once_value_11 = fra.me.REG[7];
3938 register_static_object(&once_value_11);
3939 } else fra.me.REG[7] = once_value_11;
3940 fra.me.REG[7] = fra.me.REG[7];
3941 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
3942 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3943 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
3944 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
3945 if (!once_value_12) {
3946 fra.me.REG[5] = BOX_NativeString(".");
3947 REGB1 = TAG_Int(1);
3948 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
3949 once_value_12 = fra.me.REG[5];
3950 register_static_object(&once_value_12);
3951 } else fra.me.REG[5] = once_value_12;
3952 fra.me.REG[5] = fra.me.REG[5];
3953 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
3954 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
3955 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
3956 }
3957 }
3958 }
3959 /* ./../lib/standard//collection//array.nit:274 */
3960 REGB1 = TAG_Int(1);
3961 /* ./../lib/standard//kernel.nit:235 */
3962 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
3963 /* ./../lib/standard//collection//array.nit:274 */
3964 REGB0 = REGB1;
3965 } else {
3966 /* ./../lib/standard//collection//array.nit:272 */
3967 goto label13;
3968 }
3969 }
3970 label13: while(0);
3971 stack_frame_head = fra.me.prev;
3972 return;
3973 }
3974 void syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
3975 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3976 val_t tmp;
3977 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3978 fra.me.file = LOCATE_syntax___mmbuilder;
3979 fra.me.line = 645;
3980 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor;
3981 fra.me.has_broke = 0;
3982 fra.me.REG_size = 4;
3983 fra.me.REG[0] = NIT_NULL;
3984 fra.me.REG[1] = NIT_NULL;
3985 fra.me.REG[2] = NIT_NULL;
3986 fra.me.REG[3] = NIT_NULL;
3987 fra.me.REG[0] = p0;
3988 fra.me.REG[1] = p1;
3989 /* ./syntax//mmbuilder.nit:645 */
3990 fra.me.REG[2] = fra.me.REG[0];
3991 fra.me.REG[3] = fra.me.REG[1];
3992 /* ./syntax//mmbuilder.nit:647 */
3993 fra.me.REG[2] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3994 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
3995 /* ./syntax//mmbuilder.nit:648 */
3996 CALL_SUPER_syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3997 /* ./syntax//mmbuilder.nit:649 */
3998 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3999 stack_frame_head = fra.me.prev;
4000 return;
4001 }
4002 val_t syntax___mmbuilder___AClasskind___is_interface(val_t p0){
4003 struct {struct stack_frame_t me;} fra;
4004 val_t REGB0;
4005 val_t tmp;
4006 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4007 fra.me.file = LOCATE_syntax___mmbuilder;
4008 fra.me.line = 654;
4009 fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_interface;
4010 fra.me.has_broke = 0;
4011 fra.me.REG_size = 1;
4012 fra.me.REG[0] = NIT_NULL;
4013 fra.me.REG[0] = p0;
4014 /* ./syntax//mmbuilder.nit:654 */
4015 REGB0 = TAG_Bool(false);
4016 goto label1;
4017 label1: while(0);
4018 stack_frame_head = fra.me.prev;
4019 return REGB0;
4020 }
4021 val_t syntax___mmbuilder___AClasskind___is_enum(val_t p0){
4022 struct {struct stack_frame_t me;} fra;
4023 val_t REGB0;
4024 val_t tmp;
4025 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4026 fra.me.file = LOCATE_syntax___mmbuilder;
4027 fra.me.line = 655;
4028 fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_enum;
4029 fra.me.has_broke = 0;
4030 fra.me.REG_size = 1;
4031 fra.me.REG[0] = NIT_NULL;
4032 fra.me.REG[0] = p0;
4033 /* ./syntax//mmbuilder.nit:655 */
4034 REGB0 = TAG_Bool(false);
4035 goto label1;
4036 label1: while(0);
4037 stack_frame_head = fra.me.prev;
4038 return REGB0;
4039 }
4040 val_t syntax___mmbuilder___AClasskind___is_abstract(val_t p0){
4041 struct {struct stack_frame_t me;} fra;
4042 val_t REGB0;
4043 val_t tmp;
4044 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4045 fra.me.file = LOCATE_syntax___mmbuilder;
4046 fra.me.line = 656;
4047 fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_abstract;
4048 fra.me.has_broke = 0;
4049 fra.me.REG_size = 1;
4050 fra.me.REG[0] = NIT_NULL;
4051 fra.me.REG[0] = p0;
4052 /* ./syntax//mmbuilder.nit:656 */
4053 REGB0 = TAG_Bool(false);
4054 goto label1;
4055 label1: while(0);
4056 stack_frame_head = fra.me.prev;
4057 return REGB0;
4058 }
4059 val_t syntax___mmbuilder___AClasskind___is_extern(val_t p0){
4060 struct {struct stack_frame_t me;} fra;
4061 val_t REGB0;
4062 val_t tmp;
4063 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4064 fra.me.file = LOCATE_syntax___mmbuilder;
4065 fra.me.line = 657;
4066 fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_extern;
4067 fra.me.has_broke = 0;
4068 fra.me.REG_size = 1;
4069 fra.me.REG[0] = NIT_NULL;
4070 fra.me.REG[0] = p0;
4071 /* ./syntax//mmbuilder.nit:657 */
4072 REGB0 = TAG_Bool(false);
4073 goto label1;
4074 label1: while(0);
4075 stack_frame_head = fra.me.prev;
4076 return REGB0;
4077 }
4078 val_t syntax___mmbuilder___AInterfaceClasskind___is_interface(val_t p0){
4079 struct {struct stack_frame_t me;} fra;
4080 val_t REGB0;
4081 val_t tmp;
4082 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4083 fra.me.file = LOCATE_syntax___mmbuilder;
4084 fra.me.line = 661;
4085 fra.me.meth = LOCATE_syntax___mmbuilder___AInterfaceClasskind___is_interface;
4086 fra.me.has_broke = 0;
4087 fra.me.REG_size = 1;
4088 fra.me.REG[0] = NIT_NULL;
4089 fra.me.REG[0] = p0;
4090 /* ./syntax//mmbuilder.nit:661 */
4091 REGB0 = TAG_Bool(true);
4092 goto label1;
4093 label1: while(0);
4094 stack_frame_head = fra.me.prev;
4095 return REGB0;
4096 }
4097 val_t syntax___mmbuilder___AEnumClasskind___is_enum(val_t p0){
4098 struct {struct stack_frame_t me;} fra;
4099 val_t REGB0;
4100 val_t tmp;
4101 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4102 fra.me.file = LOCATE_syntax___mmbuilder;
4103 fra.me.line = 664;
4104 fra.me.meth = LOCATE_syntax___mmbuilder___AEnumClasskind___is_enum;
4105 fra.me.has_broke = 0;
4106 fra.me.REG_size = 1;
4107 fra.me.REG[0] = NIT_NULL;
4108 fra.me.REG[0] = p0;
4109 /* ./syntax//mmbuilder.nit:664 */
4110 REGB0 = TAG_Bool(true);
4111 goto label1;
4112 label1: while(0);
4113 stack_frame_head = fra.me.prev;
4114 return REGB0;
4115 }
4116 val_t syntax___mmbuilder___AExternClasskind___is_extern(val_t p0){
4117 struct {struct stack_frame_t me;} fra;
4118 val_t REGB0;
4119 val_t tmp;
4120 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4121 fra.me.file = LOCATE_syntax___mmbuilder;
4122 fra.me.line = 667;
4123 fra.me.meth = LOCATE_syntax___mmbuilder___AExternClasskind___is_extern;
4124 fra.me.has_broke = 0;
4125 fra.me.REG_size = 1;
4126 fra.me.REG[0] = NIT_NULL;
4127 fra.me.REG[0] = p0;
4128 /* ./syntax//mmbuilder.nit:667 */
4129 REGB0 = TAG_Bool(true);
4130 goto label1;
4131 label1: while(0);
4132 stack_frame_head = fra.me.prev;
4133 return REGB0;
4134 }
4135 val_t syntax___mmbuilder___AAbstractClasskind___is_abstract(val_t p0){
4136 struct {struct stack_frame_t me;} fra;
4137 val_t REGB0;
4138 val_t tmp;
4139 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4140 fra.me.file = LOCATE_syntax___mmbuilder;
4141 fra.me.line = 670;
4142 fra.me.meth = LOCATE_syntax___mmbuilder___AAbstractClasskind___is_abstract;
4143 fra.me.has_broke = 0;
4144 fra.me.REG_size = 1;
4145 fra.me.REG[0] = NIT_NULL;
4146 fra.me.REG[0] = p0;
4147 /* ./syntax//mmbuilder.nit:670 */
4148 REGB0 = TAG_Bool(true);
4149 goto label1;
4150 label1: while(0);
4151 stack_frame_head = fra.me.prev;
4152 return REGB0;
4153 }
4154 val_t syntax___mmbuilder___AStdClassdef___name(val_t p0){
4155 struct {struct stack_frame_t me;} fra;
4156 val_t REGB0;
4157 val_t tmp;
4158 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4159 fra.me.file = LOCATE_syntax___mmbuilder;
4160 fra.me.line = 674;
4161 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___name;
4162 fra.me.has_broke = 0;
4163 fra.me.REG_size = 1;
4164 fra.me.REG[0] = NIT_NULL;
4165 fra.me.REG[0] = p0;
4166 /* ./syntax//mmbuilder.nit:676 */
4167 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_id(fra.me.REG[0])(fra.me.REG[0]);
4168 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4169 if (UNTAG_Bool(REGB0)) {
4170 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 676);
4171 }
4172 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
4173 goto label1;
4174 label1: while(0);
4175 stack_frame_head = fra.me.prev;
4176 return fra.me.REG[0];
4177 }
4178 val_t syntax___mmbuilder___AStdClassdef___arity(val_t p0){
4179 struct {struct stack_frame_t me;} fra;
4180 val_t REGB0;
4181 val_t tmp;
4182 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4183 fra.me.file = LOCATE_syntax___mmbuilder;
4184 fra.me.line = 678;
4185 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___arity;
4186 fra.me.has_broke = 0;
4187 fra.me.REG_size = 1;
4188 fra.me.REG[0] = NIT_NULL;
4189 fra.me.REG[0] = p0;
4190 /* ./syntax//mmbuilder.nit:680 */
4191 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_formaldefs(fra.me.REG[0])(fra.me.REG[0]);
4192 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
4193 goto label1;
4194 label1: while(0);
4195 stack_frame_head = fra.me.prev;
4196 return REGB0;
4197 }
4198 void syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder(val_t p0, val_t p1){
4199 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4200 val_t REGB0;
4201 val_t REGB1;
4202 val_t tmp;
4203 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4204 fra.me.file = LOCATE_syntax___mmbuilder;
4205 fra.me.line = 682;
4206 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder;
4207 fra.me.has_broke = 0;
4208 fra.me.REG_size = 4;
4209 fra.me.REG[0] = NIT_NULL;
4210 fra.me.REG[1] = NIT_NULL;
4211 fra.me.REG[2] = NIT_NULL;
4212 fra.me.REG[3] = NIT_NULL;
4213 fra.me.REG[0] = p0;
4214 fra.me.REG[1] = p1;
4215 /* ./syntax//mmbuilder.nit:682 */
4216 fra.me.REG[2] = fra.me.REG[0];
4217 /* ./syntax//mmbuilder.nit:684 */
4218 CALL_SUPER_syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4219 /* ./syntax//mmbuilder.nit:686 */
4220 fra.me.REG[1] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[2])(fra.me.REG[2]);
4221 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
4222 /* ./syntax//mmbuilder.nit:687 */
4223 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
4224 fra.me.REG[3] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[2])(fra.me.REG[2]);
4225 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[3]));
4226 if (UNTAG_Bool(REGB0)) {
4227 } else {
4228 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
4229 REGB0 = REGB1;
4230 }
4231 if (UNTAG_Bool(REGB0)) {
4232 /* ./syntax//mmbuilder.nit:688 */
4233 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4234 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[3])(fra.me.REG[3]);
4235 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
4236 /* ./syntax//mmbuilder.nit:689 */
4237 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4238 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[3])(fra.me.REG[3]);
4239 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
4240 /* ./syntax//mmbuilder.nit:690 */
4241 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4242 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[3])(fra.me.REG[3]);
4243 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
4244 /* ./syntax//mmbuilder.nit:691 */
4245 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4246 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_extern(fra.me.REG[3])(fra.me.REG[3]);
4247 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
4248 /* ./syntax//mmbuilder.nit:692 */
4249 REGB0 = CALL_syntax___mmbuilder___AClassdef___visibility_level(fra.me.REG[2])(fra.me.REG[2]);
4250 CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
4251 }
4252 stack_frame_head = fra.me.prev;
4253 return;
4254 }
4255 void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p1){
4256 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
4257 val_t REGB0;
4258 val_t REGB1;
4259 val_t REGB2;
4260 val_t tmp;
4261 static val_t once_value_1; /* Once value */
4262 static val_t once_value_2; /* Once value */
4263 static val_t once_value_3; /* Once value */
4264 static val_t once_value_4; /* Once value */
4265 static val_t once_value_5; /* Once value */
4266 static val_t once_value_6; /* Once value */
4267 static val_t once_value_7; /* Once value */
4268 static val_t once_value_8; /* Once value */
4269 static val_t once_value_9; /* Once value */
4270 static val_t once_value_10; /* Once value */
4271 static val_t once_value_11; /* Once value */
4272 static val_t once_value_12; /* Once value */
4273 static val_t once_value_13; /* Once value */
4274 static val_t once_value_14; /* Once value */
4275 static val_t once_value_15; /* Once value */
4276 static val_t once_value_16; /* Once value */
4277 static val_t once_value_17; /* Once value */
4278 static val_t once_value_18; /* Once value */
4279 static val_t once_value_19; /* Once value */
4280 static val_t once_value_20; /* Once value */
4281 static val_t once_value_23; /* Once value */
4282 static val_t once_value_24; /* Once value */
4283 static val_t once_value_25; /* Once value */
4284 static val_t once_value_26; /* Once value */
4285 static val_t once_value_27; /* Once value */
4286 static val_t once_value_28; /* Once value */
4287 static val_t once_value_29; /* Once value */
4288 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4289 fra.me.file = LOCATE_syntax___mmbuilder;
4290 fra.me.line = 695;
4291 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___accept_class_verifier;
4292 fra.me.has_broke = 0;
4293 fra.me.REG_size = 9;
4294 fra.me.REG[0] = NIT_NULL;
4295 fra.me.REG[1] = NIT_NULL;
4296 fra.me.REG[2] = NIT_NULL;
4297 fra.me.REG[3] = NIT_NULL;
4298 fra.me.REG[4] = NIT_NULL;
4299 fra.me.REG[5] = NIT_NULL;
4300 fra.me.REG[6] = NIT_NULL;
4301 fra.me.REG[7] = NIT_NULL;
4302 fra.me.REG[8] = NIT_NULL;
4303 fra.me.REG[0] = p0;
4304 fra.me.REG[1] = p1;
4305 /* ./syntax//mmbuilder.nit:695 */
4306 fra.me.REG[2] = fra.me.REG[0];
4307 fra.me.REG[3] = fra.me.REG[1];
4308 /* ./syntax//mmbuilder.nit:697 */
4309 CALL_SUPER_syntax___mmbuilder___AStdClassdef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4310 /* ./syntax//mmbuilder.nit:698 */
4311 fra.me.REG[1] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4312 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4313 if (UNTAG_Bool(REGB0)) {
4314 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 698);
4315 }
4316 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
4317 /* ./syntax//mmbuilder.nit:699 */
4318 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
4319 fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4320 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[0],fra.me.REG[4]));
4321 if (UNTAG_Bool(REGB0)) {
4322 } else {
4323 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4324 REGB0 = REGB1;
4325 }
4326 if (UNTAG_Bool(REGB0)) {
4327 /* ./syntax//mmbuilder.nit:701 */
4328 fra.me.REG[4] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
4329 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4330 if (UNTAG_Bool(REGB0)) {
4331 } else {
4332 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4333 if (UNTAG_Bool(REGB1)) {
4334 REGB1 = TAG_Bool(false);
4335 REGB0 = REGB1;
4336 } else {
4337 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
4338 REGB0 = REGB1;
4339 }
4340 }
4341 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4342 if (UNTAG_Bool(REGB0)) {
4343 /* ./syntax//mmbuilder.nit:702 */
4344 REGB0 = TAG_Int(3);
4345 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
4346 if (!once_value_1) {
4347 fra.me.REG[0] = BOX_NativeString("Redef error: No class ");
4348 REGB0 = TAG_Int(22);
4349 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4350 once_value_1 = fra.me.REG[0];
4351 register_static_object(&once_value_1);
4352 } else fra.me.REG[0] = once_value_1;
4353 fra.me.REG[0] = fra.me.REG[0];
4354 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
4355 fra.me.REG[0] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4356 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
4357 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
4358 if (!once_value_2) {
4359 fra.me.REG[0] = BOX_NativeString(" is imported. Remove the redef keyword to define a new class.");
4360 REGB0 = TAG_Int(61);
4361 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4362 once_value_2 = fra.me.REG[0];
4363 register_static_object(&once_value_2);
4364 } else fra.me.REG[0] = once_value_2;
4365 fra.me.REG[0] = fra.me.REG[0];
4366 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
4367 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4368 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]);
4369 }
4370 /* ./syntax//mmbuilder.nit:704 */
4371 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[1])(fra.me.REG[1]);
4372 if (UNTAG_Bool(REGB0)) {
4373 /* ./syntax//mmbuilder.nit:705 */
4374 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
4375 REGB0 = TAG_Bool(true);
4376 CALL_metamodel___abstractmetamodel___MMModule___is_extern_hybrid__eq(fra.me.REG[4])(fra.me.REG[4], REGB0);
4377 }
4378 /* ./syntax//mmbuilder.nit:708 */
4379 fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4380 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4381 if (UNTAG_Bool(REGB0)) {
4382 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 708);
4383 }
4384 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[4])(fra.me.REG[4]);
4385 fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[4])(fra.me.REG[4]);
4386 /* ./../lib/standard//collection//array.nit:269 */
4387 REGB0 = TAG_Int(0);
4388 /* ./../lib/standard//collection//array.nit:270 */
4389 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
4390 if (UNTAG_Bool(REGB1)) {
4391 } else {
4392 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
4393 }
4394 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
4395 /* ./../lib/standard//collection//array.nit:271 */
4396 fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
4397 /* ./../lib/standard//collection//array.nit:272 */
4398 while(1) {
4399 /* ./../lib/standard//collection//array.nit:24 */
4400 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
4401 if (UNTAG_Bool(REGB1)) {
4402 } else {
4403 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
4404 }
4405 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
4406 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
4407 if (UNTAG_Bool(REGB2)) {
4408 } else {
4409 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4410 }
4411 /* ./../lib/standard//kernel.nit:232 */
4412 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
4413 /* ./../lib/standard//collection//array.nit:272 */
4414 if (UNTAG_Bool(REGB1)) {
4415 /* ./../lib/standard//collection//array.nit:273 */
4416 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4417 if (UNTAG_Bool(REGB1)) {
4418 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
4419 }
4420 /* ./../lib/standard//collection//array.nit:718 */
4421 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
4422 /* ./syntax//mmbuilder.nit:709 */
4423 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
4424 /* ./syntax//mmbuilder.nit:710 */
4425 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
4426 if (UNTAG_Bool(REGB1)) {
4427 /* ./syntax//mmbuilder.nit:711 */
4428 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
4429 if (UNTAG_Bool(REGB1)) {
4430 /* ./syntax//mmbuilder.nit:712 */
4431 REGB1 = TAG_Int(5);
4432 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4433 if (!once_value_3) {
4434 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
4435 REGB1 = TAG_Int(25);
4436 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4437 once_value_3 = fra.me.REG[8];
4438 register_static_object(&once_value_3);
4439 } else fra.me.REG[8] = once_value_3;
4440 fra.me.REG[8] = fra.me.REG[8];
4441 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4442 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4443 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4444 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4445 if (!once_value_4) {
4446 fra.me.REG[8] = BOX_NativeString(" try to specialise enum class ");
4447 REGB1 = TAG_Int(30);
4448 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4449 once_value_4 = fra.me.REG[8];
4450 register_static_object(&once_value_4);
4451 } else fra.me.REG[8] = once_value_4;
4452 fra.me.REG[8] = fra.me.REG[8];
4453 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4454 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4455 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4456 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4457 if (!once_value_5) {
4458 fra.me.REG[8] = BOX_NativeString(".");
4459 REGB1 = TAG_Int(1);
4460 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4461 once_value_5 = fra.me.REG[8];
4462 register_static_object(&once_value_5);
4463 } else fra.me.REG[8] = once_value_5;
4464 fra.me.REG[8] = fra.me.REG[8];
4465 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4466 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4467 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4468 } else {
4469 /* ./syntax//mmbuilder.nit:713 */
4470 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
4471 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4472 if (UNTAG_Bool(REGB1)) {
4473 /* ./syntax//mmbuilder.nit:714 */
4474 REGB1 = TAG_Int(5);
4475 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4476 if (!once_value_6) {
4477 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
4478 REGB1 = TAG_Int(25);
4479 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4480 once_value_6 = fra.me.REG[8];
4481 register_static_object(&once_value_6);
4482 } else fra.me.REG[8] = once_value_6;
4483 fra.me.REG[8] = fra.me.REG[8];
4484 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4485 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4486 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4487 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4488 if (!once_value_7) {
4489 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
4490 REGB1 = TAG_Int(25);
4491 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4492 once_value_7 = fra.me.REG[8];
4493 register_static_object(&once_value_7);
4494 } else fra.me.REG[8] = once_value_7;
4495 fra.me.REG[8] = fra.me.REG[8];
4496 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4497 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4498 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4499 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4500 if (!once_value_8) {
4501 fra.me.REG[8] = BOX_NativeString(".");
4502 REGB1 = TAG_Int(1);
4503 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4504 once_value_8 = fra.me.REG[8];
4505 register_static_object(&once_value_8);
4506 } else fra.me.REG[8] = once_value_8;
4507 fra.me.REG[8] = fra.me.REG[8];
4508 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4509 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4510 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4511 }
4512 }
4513 } else {
4514 /* ./syntax//mmbuilder.nit:716 */
4515 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
4516 if (UNTAG_Bool(REGB1)) {
4517 /* ./syntax//mmbuilder.nit:717 */
4518 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
4519 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4520 if (UNTAG_Bool(REGB1)) {
4521 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
4522 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4523 } else {
4524 REGB2 = TAG_Bool(false);
4525 REGB1 = REGB2;
4526 }
4527 if (UNTAG_Bool(REGB1)) {
4528 /* ./syntax//mmbuilder.nit:718 */
4529 REGB1 = TAG_Int(5);
4530 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4531 if (!once_value_9) {
4532 fra.me.REG[8] = BOX_NativeString("Special error: Enum class ");
4533 REGB1 = TAG_Int(26);
4534 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4535 once_value_9 = fra.me.REG[8];
4536 register_static_object(&once_value_9);
4537 } else fra.me.REG[8] = once_value_9;
4538 fra.me.REG[8] = fra.me.REG[8];
4539 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4540 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4541 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4542 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4543 if (!once_value_10) {
4544 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
4545 REGB1 = TAG_Int(25);
4546 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4547 once_value_10 = fra.me.REG[8];
4548 register_static_object(&once_value_10);
4549 } else fra.me.REG[8] = once_value_10;
4550 fra.me.REG[8] = fra.me.REG[8];
4551 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4552 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4553 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4554 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4555 if (!once_value_11) {
4556 fra.me.REG[8] = BOX_NativeString(".");
4557 REGB1 = TAG_Int(1);
4558 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4559 once_value_11 = fra.me.REG[8];
4560 register_static_object(&once_value_11);
4561 } else fra.me.REG[8] = once_value_11;
4562 fra.me.REG[8] = fra.me.REG[8];
4563 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4564 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4565 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4566 }
4567 } else {
4568 /* ./syntax//mmbuilder.nit:720 */
4569 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[1])(fra.me.REG[1]);
4570 if (UNTAG_Bool(REGB1)) {
4571 /* ./syntax//mmbuilder.nit:721 */
4572 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
4573 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4574 if (UNTAG_Bool(REGB1)) {
4575 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[6])(fra.me.REG[6]);
4576 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4577 } else {
4578 REGB2 = TAG_Bool(false);
4579 REGB1 = REGB2;
4580 }
4581 if (UNTAG_Bool(REGB1)) {
4582 /* ./syntax//mmbuilder.nit:722 */
4583 REGB1 = TAG_Int(5);
4584 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4585 if (!once_value_12) {
4586 fra.me.REG[8] = BOX_NativeString("Special error: Extern class ");
4587 REGB1 = TAG_Int(28);
4588 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4589 once_value_12 = fra.me.REG[8];
4590 register_static_object(&once_value_12);
4591 } else fra.me.REG[8] = once_value_12;
4592 fra.me.REG[8] = fra.me.REG[8];
4593 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4594 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4595 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4596 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4597 if (!once_value_13) {
4598 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
4599 REGB1 = TAG_Int(25);
4600 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4601 once_value_13 = fra.me.REG[8];
4602 register_static_object(&once_value_13);
4603 } else fra.me.REG[8] = once_value_13;
4604 fra.me.REG[8] = fra.me.REG[8];
4605 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4606 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4607 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4608 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4609 if (!once_value_14) {
4610 fra.me.REG[8] = BOX_NativeString(".");
4611 REGB1 = TAG_Int(1);
4612 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4613 once_value_14 = fra.me.REG[8];
4614 register_static_object(&once_value_14);
4615 } else fra.me.REG[8] = once_value_14;
4616 fra.me.REG[8] = fra.me.REG[8];
4617 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4618 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4619 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4620 }
4621 } else {
4622 /* ./syntax//mmbuilder.nit:725 */
4623 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
4624 if (UNTAG_Bool(REGB1)) {
4625 /* ./syntax//mmbuilder.nit:726 */
4626 REGB1 = TAG_Int(5);
4627 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4628 if (!once_value_15) {
4629 fra.me.REG[8] = BOX_NativeString("Special error: Class ");
4630 REGB1 = TAG_Int(21);
4631 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4632 once_value_15 = fra.me.REG[8];
4633 register_static_object(&once_value_15);
4634 } else fra.me.REG[8] = once_value_15;
4635 fra.me.REG[8] = fra.me.REG[8];
4636 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4637 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4638 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4639 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4640 if (!once_value_16) {
4641 fra.me.REG[8] = BOX_NativeString(" try to specialise enum class ");
4642 REGB1 = TAG_Int(30);
4643 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4644 once_value_16 = fra.me.REG[8];
4645 register_static_object(&once_value_16);
4646 } else fra.me.REG[8] = once_value_16;
4647 fra.me.REG[8] = fra.me.REG[8];
4648 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4649 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4650 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4651 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4652 if (!once_value_17) {
4653 fra.me.REG[8] = BOX_NativeString(".");
4654 REGB1 = TAG_Int(1);
4655 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4656 once_value_17 = fra.me.REG[8];
4657 register_static_object(&once_value_17);
4658 } else fra.me.REG[8] = once_value_17;
4659 fra.me.REG[8] = fra.me.REG[8];
4660 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4661 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4662 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4663 } else {
4664 /* ./syntax//mmbuilder.nit:727 */
4665 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[6])(fra.me.REG[6]);
4666 if (UNTAG_Bool(REGB1)) {
4667 /* ./syntax//mmbuilder.nit:728 */
4668 REGB1 = TAG_Int(5);
4669 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4670 if (!once_value_18) {
4671 fra.me.REG[7] = BOX_NativeString("Special error: Class ");
4672 REGB1 = TAG_Int(21);
4673 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
4674 once_value_18 = fra.me.REG[7];
4675 register_static_object(&once_value_18);
4676 } else fra.me.REG[7] = once_value_18;
4677 fra.me.REG[7] = fra.me.REG[7];
4678 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4679 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4680 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4681 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4682 if (!once_value_19) {
4683 fra.me.REG[7] = BOX_NativeString(" try to specialise extern class ");
4684 REGB1 = TAG_Int(32);
4685 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
4686 once_value_19 = fra.me.REG[7];
4687 register_static_object(&once_value_19);
4688 } else fra.me.REG[7] = once_value_19;
4689 fra.me.REG[7] = fra.me.REG[7];
4690 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4691 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4692 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4693 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
4694 if (!once_value_20) {
4695 fra.me.REG[5] = BOX_NativeString(".");
4696 REGB1 = TAG_Int(1);
4697 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
4698 once_value_20 = fra.me.REG[5];
4699 register_static_object(&once_value_20);
4700 } else fra.me.REG[5] = once_value_20;
4701 fra.me.REG[5] = fra.me.REG[5];
4702 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
4703 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4704 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
4705 }
4706 }
4707 }
4708 }
4709 }
4710 /* ./../lib/standard//collection//array.nit:274 */
4711 REGB1 = TAG_Int(1);
4712 /* ./../lib/standard//kernel.nit:235 */
4713 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
4714 /* ./../lib/standard//collection//array.nit:274 */
4715 REGB0 = REGB1;
4716 } else {
4717 /* ./../lib/standard//collection//array.nit:272 */
4718 goto label21;
4719 }
4720 }
4721 label21: while(0);
4722 /* ./syntax//mmbuilder.nit:733 */
4723 goto label22;
4724 }
4725 /* ./syntax//mmbuilder.nit:738 */
4726 fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
4727 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]);
4728 /* ./syntax//mmbuilder.nit:739 */
4729 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
4730 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4731 if (UNTAG_Bool(REGB0)) {
4732 } else {
4733 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4734 if (UNTAG_Bool(REGB1)) {
4735 REGB1 = TAG_Bool(false);
4736 REGB0 = REGB1;
4737 } else {
4738 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
4739 REGB0 = REGB1;
4740 }
4741 }
4742 if (UNTAG_Bool(REGB0)) {
4743 /* ./syntax//mmbuilder.nit:740 */
4744 REGB0 = TAG_Int(3);
4745 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
4746 if (!once_value_23) {
4747 fra.me.REG[4] = BOX_NativeString("Redef error: ");
4748 REGB0 = TAG_Int(13);
4749 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
4750 once_value_23 = fra.me.REG[4];
4751 register_static_object(&once_value_23);
4752 } else fra.me.REG[4] = once_value_23;
4753 fra.me.REG[4] = fra.me.REG[4];
4754 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4755 fra.me.REG[4] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4756 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4757 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4758 if (!once_value_24) {
4759 fra.me.REG[4] = BOX_NativeString(" is an imported class. Add the redef keyword to refine it.");
4760 REGB0 = TAG_Int(58);
4761 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
4762 once_value_24 = fra.me.REG[4];
4763 register_static_object(&once_value_24);
4764 } else fra.me.REG[4] = once_value_24;
4765 fra.me.REG[4] = fra.me.REG[4];
4766 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4767 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
4768 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
4769 /* ./syntax//mmbuilder.nit:741 */
4770 goto label22;
4771 }
4772 /* ./syntax//mmbuilder.nit:744 */
4773 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
4774 REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[0])(fra.me.REG[0]);
4775 fra.me.REG[0] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4776 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4777 if (UNTAG_Bool(REGB1)) {
4778 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 744);
4779 }
4780 REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[0])(fra.me.REG[0]);
4781 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
4782 if (UNTAG_Bool(REGB2)) {
4783 } else {
4784 /* ./../lib/standard//kernel.nit:227 */
4785 REGB1 = TAG_Bool((REGB0)==(REGB1));
4786 /* ./syntax//mmbuilder.nit:744 */
4787 REGB2 = REGB1;
4788 }
4789 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
4790 if (UNTAG_Bool(REGB2)) {
4791 /* ./syntax//mmbuilder.nit:745 */
4792 REGB2 = TAG_Int(5);
4793 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
4794 if (!once_value_25) {
4795 fra.me.REG[4] = BOX_NativeString("Redef error: Formal parameter arity mismatch; got ");
4796 REGB2 = TAG_Int(50);
4797 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
4798 once_value_25 = fra.me.REG[4];
4799 register_static_object(&once_value_25);
4800 } else fra.me.REG[4] = once_value_25;
4801 fra.me.REG[4] = fra.me.REG[4];
4802 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4803 fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4804 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4805 if (UNTAG_Bool(REGB2)) {
4806 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 745);
4807 }
4808 REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
4809 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
4810 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4811 if (!once_value_26) {
4812 fra.me.REG[4] = BOX_NativeString(", expected ");
4813 REGB2 = TAG_Int(11);
4814 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
4815 once_value_26 = fra.me.REG[4];
4816 register_static_object(&once_value_26);
4817 } else fra.me.REG[4] = once_value_26;
4818 fra.me.REG[4] = fra.me.REG[4];
4819 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4820 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
4821 REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
4822 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
4823 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4824 if (!once_value_27) {
4825 fra.me.REG[4] = BOX_NativeString(".");
4826 REGB2 = TAG_Int(1);
4827 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
4828 once_value_27 = fra.me.REG[4];
4829 register_static_object(&once_value_27);
4830 } else fra.me.REG[4] = once_value_27;
4831 fra.me.REG[4] = fra.me.REG[4];
4832 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4833 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
4834 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
4835 }
4836 /* ./syntax//mmbuilder.nit:749 */
4837 REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
4838 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
4839 if (UNTAG_Bool(REGB2)) {
4840 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4841 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[0])(fra.me.REG[0]);
4842 } else {
4843 REGB1 = TAG_Bool(false);
4844 REGB2 = REGB1;
4845 }
4846 if (UNTAG_Bool(REGB2)) {
4847 REGB2 = TAG_Bool(true);
4848 } else {
4849 /* ./syntax//mmbuilder.nit:750 */
4850 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[1])(fra.me.REG[1]);
4851 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4852 /* ./syntax//mmbuilder.nit:749 */
4853 REGB2 = REGB1;
4854 }
4855 if (UNTAG_Bool(REGB2)) {
4856 /* ./syntax//mmbuilder.nit:750 */
4857 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4858 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[0])(fra.me.REG[0]);
4859 } else {
4860 /* ./syntax//mmbuilder.nit:749 */
4861 REGB1 = TAG_Bool(false);
4862 REGB2 = REGB1;
4863 }
4864 if (UNTAG_Bool(REGB2)) {
4865 REGB2 = TAG_Bool(true);
4866 } else {
4867 /* ./syntax//mmbuilder.nit:751 */
4868 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
4869 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4870 /* ./syntax//mmbuilder.nit:749 */
4871 REGB2 = REGB1;
4872 }
4873 if (UNTAG_Bool(REGB2)) {
4874 /* ./syntax//mmbuilder.nit:751 */
4875 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4876 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[0])(fra.me.REG[0]);
4877 } else {
4878 /* ./syntax//mmbuilder.nit:749 */
4879 REGB1 = TAG_Bool(false);
4880 REGB2 = REGB1;
4881 }
4882 if (UNTAG_Bool(REGB2)) {
4883 REGB2 = TAG_Bool(true);
4884 } else {
4885 /* ./syntax//mmbuilder.nit:752 */
4886 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[1])(fra.me.REG[1]);
4887 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4888 /* ./syntax//mmbuilder.nit:749 */
4889 REGB2 = REGB1;
4890 }
4891 if (UNTAG_Bool(REGB2)) {
4892 /* ./syntax//mmbuilder.nit:752 */
4893 fra.me.REG[1] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4894 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_extern(fra.me.REG[1])(fra.me.REG[1]);
4895 } else {
4896 /* ./syntax//mmbuilder.nit:749 */
4897 REGB1 = TAG_Bool(false);
4898 REGB2 = REGB1;
4899 }
4900 /* ./syntax//mmbuilder.nit:748 */
4901 if (UNTAG_Bool(REGB2)) {
4902 /* ./syntax//mmbuilder.nit:754 */
4903 REGB2 = TAG_Int(3);
4904 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
4905 if (!once_value_28) {
4906 fra.me.REG[0] = BOX_NativeString("Redef error: cannot change kind of class ");
4907 REGB2 = TAG_Int(41);
4908 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB2);
4909 once_value_28 = fra.me.REG[0];
4910 register_static_object(&once_value_28);
4911 } else fra.me.REG[0] = once_value_28;
4912 fra.me.REG[0] = fra.me.REG[0];
4913 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4914 fra.me.REG[0] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4915 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
4916 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4917 if (!once_value_29) {
4918 fra.me.REG[0] = BOX_NativeString(".");
4919 REGB2 = TAG_Int(1);
4920 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB2);
4921 once_value_29 = fra.me.REG[0];
4922 register_static_object(&once_value_29);
4923 } else fra.me.REG[0] = once_value_29;
4924 fra.me.REG[0] = fra.me.REG[0];
4925 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4926 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
4927 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[1]);
4928 }
4929 label22: while(0);
4930 stack_frame_head = fra.me.prev;
4931 return;
4932 }
4933 val_t syntax___mmbuilder___AStdClassdef___visibility_level(val_t p0){
4934 struct {struct stack_frame_t me;} fra;
4935 val_t REGB0;
4936 val_t tmp;
4937 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4938 fra.me.file = LOCATE_syntax___mmbuilder;
4939 fra.me.line = 758;
4940 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___visibility_level;
4941 fra.me.has_broke = 0;
4942 fra.me.REG_size = 1;
4943 fra.me.REG[0] = NIT_NULL;
4944 fra.me.REG[0] = p0;
4945 /* ./syntax//mmbuilder.nit:760 */
4946 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_visibility(fra.me.REG[0])(fra.me.REG[0]);
4947 REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
4948 goto label1;
4949 label1: while(0);
4950 stack_frame_head = fra.me.prev;
4951 return REGB0;
4952 }
4953 val_t syntax___mmbuilder___AMainClassdef___name(val_t p0){
4954 struct {struct stack_frame_t me;} fra;
4955 val_t REGB0;
4956 val_t tmp;
4957 static val_t once_value_1; /* Once value */
4958 static val_t once_value_2; /* Once value */
4959 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4960 fra.me.file = LOCATE_syntax___mmbuilder;
4961 fra.me.line = 765;
4962 fra.me.meth = LOCATE_syntax___mmbuilder___AMainClassdef___name;
4963 fra.me.has_broke = 0;
4964 fra.me.REG_size = 1;
4965 fra.me.REG[0] = NIT_NULL;
4966 fra.me.REG[0] = p0;
4967 /* ./syntax//mmbuilder.nit:767 */
4968 if (!once_value_1) {
4969 if (!once_value_2) {
4970 fra.me.REG[0] = BOX_NativeString("Sys");
4971 REGB0 = TAG_Int(3);
4972 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4973 once_value_2 = fra.me.REG[0];
4974 register_static_object(&once_value_2);
4975 } else fra.me.REG[0] = once_value_2;
4976 fra.me.REG[0] = fra.me.REG[0];
4977 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
4978 once_value_1 = fra.me.REG[0];
4979 register_static_object(&once_value_1);
4980 } else fra.me.REG[0] = once_value_1;
4981 fra.me.REG[0] = fra.me.REG[0];
4982 goto label3;
4983 label3: while(0);
4984 stack_frame_head = fra.me.prev;
4985 return fra.me.REG[0];
4986 }
4987 val_t syntax___mmbuilder___ATopClassdef___name(val_t p0){
4988 struct {struct stack_frame_t me;} fra;
4989 val_t REGB0;
4990 val_t tmp;
4991 static val_t once_value_1; /* Once value */
4992 static val_t once_value_2; /* Once value */
4993 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4994 fra.me.file = LOCATE_syntax___mmbuilder;
4995 fra.me.line = 772;
4996 fra.me.meth = LOCATE_syntax___mmbuilder___ATopClassdef___name;
4997 fra.me.has_broke = 0;
4998 fra.me.REG_size = 1;
4999 fra.me.REG[0] = NIT_NULL;
5000 fra.me.REG[0] = p0;
5001 /* ./syntax//mmbuilder.nit:774 */
5002 if (!once_value_1) {
5003 if (!once_value_2) {
5004 fra.me.REG[0] = BOX_NativeString("Object");
5005 REGB0 = TAG_Int(6);
5006 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
5007 once_value_2 = fra.me.REG[0];
5008 register_static_object(&once_value_2);
5009 } else fra.me.REG[0] = once_value_2;
5010 fra.me.REG[0] = fra.me.REG[0];
5011 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
5012 once_value_1 = fra.me.REG[0];
5013 register_static_object(&once_value_1);
5014 } else fra.me.REG[0] = once_value_1;
5015 fra.me.REG[0] = fra.me.REG[0];
5016 goto label3;
5017 label3: while(0);
5018 stack_frame_head = fra.me.prev;
5019 return fra.me.REG[0];
5020 }
5021 void syntax___mmbuilder___AFormaldef___accept_class_builder(val_t p0, val_t p1){
5022 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
5023 val_t REGB0;
5024 val_t REGB1;
5025 val_t tmp;
5026 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5027 fra.me.file = LOCATE_syntax___mmbuilder;
5028 fra.me.line = 782;
5029 fra.me.meth = LOCATE_syntax___mmbuilder___AFormaldef___accept_class_builder;
5030 fra.me.has_broke = 0;
5031 fra.me.REG_size = 6;
5032 fra.me.REG[0] = NIT_NULL;
5033 fra.me.REG[1] = NIT_NULL;
5034 fra.me.REG[2] = NIT_NULL;
5035 fra.me.REG[3] = NIT_NULL;
5036 fra.me.REG[4] = NIT_NULL;
5037 fra.me.REG[5] = NIT_NULL;
5038 fra.me.REG[0] = p0;
5039 fra.me.REG[1] = p1;
5040 /* ./syntax//mmbuilder.nit:782 */
5041 fra.me.REG[2] = fra.me.REG[0];
5042 fra.me.REG[3] = fra.me.REG[1];
5043 /* ./syntax//mmbuilder.nit:784 */
5044 fra.me.REG[4] = CALL_parser___parser_nodes___AFormaldef___n_id(fra.me.REG[2])(fra.me.REG[2]);
5045 fra.me.REG[4] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
5046 /* ./syntax//mmbuilder.nit:785 */
5047 REGB0 = CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity(fra.me.REG[3])(fra.me.REG[3]);
5048 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5049 fra.me.REG[5] = NEW_MMTypeFormalParameter_metamodel___genericity___MMTypeFormalParameter___init(fra.me.REG[4], REGB0, fra.me.REG[5]);
5050 /* ./syntax//mmbuilder.nit:786 */
5051 ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]) = fra.me.REG[5];
5052 /* ./syntax//mmbuilder.nit:787 */
5053 REGB0 = CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity(fra.me.REG[3])(fra.me.REG[3]);
5054 REGB1 = TAG_Int(1);
5055 /* ./../lib/standard//kernel.nit:235 */
5056 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
5057 /* ./syntax//mmbuilder.nit:787 */
5058 CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB1);
5059 /* ./syntax//mmbuilder.nit:788 */
5060 fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5061 CALL_metamodel___genericity___MMLocalClass___register_formal(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
5062 /* ./syntax//mmbuilder.nit:789 */
5063 fra.me.REG[3] = CALL_syntax___mmbuilder___ClassBuilderVisitor___formals(fra.me.REG[3])(fra.me.REG[3]);
5064 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5065 if (UNTAG_Bool(REGB1)) {
5066 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 789);
5067 }
5068 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]);
5069 /* ./syntax//mmbuilder.nit:790 */
5070 CALL_SUPER_syntax___mmbuilder___AFormaldef___accept_class_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5071 stack_frame_head = fra.me.prev;
5072 return;
5073 }
5074 void syntax___mmbuilder___AFormaldef___accept_class_verifier(val_t p0, val_t p1){
5075 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
5076 val_t REGB0;
5077 val_t REGB1;
5078 val_t tmp;
5079 static val_t once_value_2; /* Once value */
5080 static val_t once_value_3; /* Once value */
5081 static val_t once_value_4; /* Once value */
5082 static val_t once_value_5; /* Once value */
5083 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5084 fra.me.file = LOCATE_syntax___mmbuilder;
5085 fra.me.line = 793;
5086 fra.me.meth = LOCATE_syntax___mmbuilder___AFormaldef___accept_class_verifier;
5087 fra.me.has_broke = 0;
5088 fra.me.REG_size = 6;
5089 fra.me.REG[0] = NIT_NULL;
5090 fra.me.REG[1] = NIT_NULL;
5091 fra.me.REG[2] = NIT_NULL;
5092 fra.me.REG[3] = NIT_NULL;
5093 fra.me.REG[4] = NIT_NULL;
5094 fra.me.REG[5] = NIT_NULL;
5095 fra.me.REG[0] = p0;
5096 fra.me.REG[1] = p1;
5097 /* ./syntax//mmbuilder.nit:793 */
5098 fra.me.REG[2] = fra.me.REG[0];
5099 fra.me.REG[3] = fra.me.REG[1];
5100 /* ./syntax//mmbuilder.nit:795 */
5101 CALL_SUPER_syntax___mmbuilder___AFormaldef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5102 /* ./syntax//mmbuilder.nit:796 */
5103 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5104 /* ./syntax//mmbuilder.nit:797 */
5105 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
5106 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[0])(fra.me.REG[0]);
5107 /* ./syntax//mmbuilder.nit:798 */
5108 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
5109 if (UNTAG_Bool(REGB0)) {
5110 } else {
5111 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
5112 REGB0 = REGB1;
5113 }
5114 if (UNTAG_Bool(REGB0)) {
5115 /* ./syntax//mmbuilder.nit:799 */
5116 fra.me.REG[4] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
5117 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5118 if (UNTAG_Bool(REGB0)) {
5119 } else {
5120 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5121 if (UNTAG_Bool(REGB1)) {
5122 REGB1 = TAG_Bool(false);
5123 REGB0 = REGB1;
5124 } else {
5125 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5126 REGB0 = REGB1;
5127 }
5128 }
5129 if (UNTAG_Bool(REGB0)) {
5130 /* ./syntax//mmbuilder.nit:800 */
5131 fra.me.REG[4] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5132 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
5133 fra.me.REG[5] = CALL_metamodel___inheritance___MMModule___type_any(fra.me.REG[5])(fra.me.REG[5]);
5134 fra.me.REG[5] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[5])(fra.me.REG[5]);
5135 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5136 if (UNTAG_Bool(REGB0)) {
5137 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 800);
5138 }
5139 CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5140 } else {
5141 /* ./syntax//mmbuilder.nit:802 */
5142 fra.me.REG[5] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
5143 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
5144 if (UNTAG_Bool(REGB0)) {
5145 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 802);
5146 }
5147 fra.me.REG[5] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
5148 /* ./syntax//mmbuilder.nit:803 */
5149 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
5150 if (UNTAG_Bool(REGB0)) {
5151 } else {
5152 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
5153 if (UNTAG_Bool(REGB1)) {
5154 REGB1 = TAG_Bool(false);
5155 REGB0 = REGB1;
5156 } else {
5157 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
5158 REGB0 = REGB1;
5159 }
5160 }
5161 if (UNTAG_Bool(REGB0)) {
5162 goto label1;
5163 }
5164 /* ./syntax//mmbuilder.nit:804 */
5165 fra.me.REG[4] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5166 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5167 if (UNTAG_Bool(REGB0)) {
5168 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 804);
5169 }
5170 CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5171 }
5172 } else {
5173 /* ./syntax//mmbuilder.nit:807 */
5174 fra.me.REG[5] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5175 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
5176 if (UNTAG_Bool(REGB0)) {
5177 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 807);
5178 }
5179 REGB0 = CALL_metamodel___genericity___MMTypeFormalParameter___position(fra.me.REG[5])(fra.me.REG[5]);
5180 fra.me.REG[0] = CALL_metamodel___genericity___MMLocalClass___get_formal(fra.me.REG[0])(fra.me.REG[0], REGB0);
5181 fra.me.REG[0] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]);
5182 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
5183 fra.me.REG[5] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
5184 /* ./syntax//mmbuilder.nit:808 */
5185 fra.me.REG[0] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
5186 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5187 if (UNTAG_Bool(REGB0)) {
5188 } else {
5189 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5190 if (UNTAG_Bool(REGB1)) {
5191 REGB1 = TAG_Bool(false);
5192 REGB0 = REGB1;
5193 } else {
5194 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
5195 REGB0 = REGB1;
5196 }
5197 }
5198 if (UNTAG_Bool(REGB0)) {
5199 /* ./syntax//mmbuilder.nit:809 */
5200 fra.me.REG[0] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5201 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5202 if (UNTAG_Bool(REGB0)) {
5203 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 809);
5204 }
5205 CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
5206 } else {
5207 /* ./syntax//mmbuilder.nit:811 */
5208 fra.me.REG[0] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
5209 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5210 if (UNTAG_Bool(REGB0)) {
5211 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 811);
5212 }
5213 fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
5214 /* ./syntax//mmbuilder.nit:812 */
5215 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5216 if (UNTAG_Bool(REGB0)) {
5217 } else {
5218 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5219 if (UNTAG_Bool(REGB1)) {
5220 REGB1 = TAG_Bool(false);
5221 REGB0 = REGB1;
5222 } else {
5223 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
5224 REGB0 = REGB1;
5225 }
5226 }
5227 if (UNTAG_Bool(REGB0)) {
5228 goto label1;
5229 }
5230 /* ./syntax//mmbuilder.nit:813 */
5231 fra.me.REG[4] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5232 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5233 if (UNTAG_Bool(REGB0)) {
5234 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 813);
5235 }
5236 CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
5237 /* ./syntax//mmbuilder.nit:814 */
5238 fra.me.REG[0] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5239 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5240 if (UNTAG_Bool(REGB0)) {
5241 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 814);
5242 }
5243 fra.me.REG[0] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]);
5244 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[5]));
5245 if (UNTAG_Bool(REGB0)) {
5246 } else {
5247 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
5248 REGB0 = REGB1;
5249 }
5250 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5251 if (UNTAG_Bool(REGB0)) {
5252 /* ./syntax//mmbuilder.nit:815 */
5253 REGB0 = TAG_Int(7);
5254 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5255 if (!once_value_2) {
5256 fra.me.REG[4] = BOX_NativeString("Redef error: Cannot change formal parameter type of class ");
5257 REGB0 = TAG_Int(58);
5258 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
5259 once_value_2 = fra.me.REG[4];
5260 register_static_object(&once_value_2);
5261 } else fra.me.REG[4] = once_value_2;
5262 fra.me.REG[4] = fra.me.REG[4];
5263 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
5264 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
5265 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5266 if (!once_value_3) {
5267 fra.me.REG[1] = BOX_NativeString("; got ");
5268 REGB0 = TAG_Int(6);
5269 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
5270 once_value_3 = fra.me.REG[1];
5271 register_static_object(&once_value_3);
5272 } else fra.me.REG[1] = once_value_3;
5273 fra.me.REG[1] = fra.me.REG[1];
5274 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5275 fra.me.REG[1] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5276 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5277 if (UNTAG_Bool(REGB0)) {
5278 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 815);
5279 }
5280 fra.me.REG[1] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[1])(fra.me.REG[1]);
5281 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
5282 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5283 if (!once_value_4) {
5284 fra.me.REG[1] = BOX_NativeString(", expected ");
5285 REGB0 = TAG_Int(11);
5286 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
5287 once_value_4 = fra.me.REG[1];
5288 register_static_object(&once_value_4);
5289 } else fra.me.REG[1] = once_value_4;
5290 fra.me.REG[1] = fra.me.REG[1];
5291 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5292 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5293 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
5294 if (!once_value_5) {
5295 fra.me.REG[5] = BOX_NativeString(".");
5296 REGB0 = TAG_Int(1);
5297 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
5298 once_value_5 = fra.me.REG[5];
5299 register_static_object(&once_value_5);
5300 } else fra.me.REG[5] = once_value_5;
5301 fra.me.REG[5] = fra.me.REG[5];
5302 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
5303 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
5304 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
5305 }
5306 }
5307 }
5308 label1: while(0);
5309 stack_frame_head = fra.me.prev;
5310 return;
5311 }
5312 val_t syntax___mmbuilder___ASuperclass___ancestor(val_t p0){
5313 struct {struct stack_frame_t me;} fra;
5314 val_t tmp;
5315 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5316 fra.me.file = LOCATE_syntax___mmbuilder;
5317 fra.me.line = 823;
5318 fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___ancestor;
5319 fra.me.has_broke = 0;
5320 fra.me.REG_size = 1;
5321 fra.me.REG[0] = NIT_NULL;
5322 fra.me.REG[0] = p0;
5323 /* ./syntax//mmbuilder.nit:823 */
5324 fra.me.REG[0] = ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[0]);
5325 stack_frame_head = fra.me.prev;
5326 return fra.me.REG[0];
5327 }
5328 void syntax___mmbuilder___ASuperclass___accept_class_specialization_builder(val_t p0, val_t p1){
5329 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5330 val_t REGB0;
5331 val_t REGB1;
5332 val_t tmp;
5333 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5334 fra.me.file = LOCATE_syntax___mmbuilder;
5335 fra.me.line = 825;
5336 fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___accept_class_specialization_builder;
5337 fra.me.has_broke = 0;
5338 fra.me.REG_size = 4;
5339 fra.me.REG[0] = NIT_NULL;
5340 fra.me.REG[1] = NIT_NULL;
5341 fra.me.REG[2] = NIT_NULL;
5342 fra.me.REG[3] = NIT_NULL;
5343 fra.me.REG[0] = p0;
5344 fra.me.REG[1] = p1;
5345 /* ./syntax//mmbuilder.nit:825 */
5346 fra.me.REG[2] = fra.me.REG[0];
5347 fra.me.REG[3] = fra.me.REG[1];
5348 /* ./syntax//mmbuilder.nit:827 */
5349 CALL_SUPER_syntax___mmbuilder___ASuperclass___accept_class_specialization_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5350 /* ./syntax//mmbuilder.nit:828 */
5351 fra.me.REG[1] = CALL_parser___parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
5352 fra.me.REG[1] = CALL_syntax___syntax_base___AType___get_local_class(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5353 /* ./syntax//mmbuilder.nit:829 */
5354 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5355 if (UNTAG_Bool(REGB0)) {
5356 } else {
5357 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5358 if (UNTAG_Bool(REGB1)) {
5359 REGB1 = TAG_Bool(false);
5360 REGB0 = REGB1;
5361 } else {
5362 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
5363 REGB0 = REGB1;
5364 }
5365 }
5366 if (UNTAG_Bool(REGB0)) {
5367 goto label1;
5368 }
5369 /* ./syntax//mmbuilder.nit:830 */
5370 fra.me.REG[1] = NEW_MMSrcAncestor_syntax___mmbuilder___MMSrcAncestor___init(fra.me.REG[1]);
5371 /* ./syntax//mmbuilder.nit:831 */
5372 ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[2]) = fra.me.REG[1];
5373 /* ./syntax//mmbuilder.nit:832 */
5374 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5375 CALL_metamodel___inheritance___MMLocalClass___add_direct_parent(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5376 label1: while(0);
5377 stack_frame_head = fra.me.prev;
5378 return;
5379 }
5380 void syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder(val_t p0, val_t p1){
5381 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5382 val_t REGB0;
5383 val_t tmp;
5384 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5385 fra.me.file = LOCATE_syntax___mmbuilder;
5386 fra.me.line = 835;
5387 fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder;
5388 fra.me.has_broke = 0;
5389 fra.me.REG_size = 4;
5390 fra.me.REG[0] = NIT_NULL;
5391 fra.me.REG[1] = NIT_NULL;
5392 fra.me.REG[2] = NIT_NULL;
5393 fra.me.REG[3] = NIT_NULL;
5394 fra.me.REG[0] = p0;
5395 fra.me.REG[1] = p1;
5396 /* ./syntax//mmbuilder.nit:835 */
5397 fra.me.REG[2] = fra.me.REG[0];
5398 fra.me.REG[3] = fra.me.REG[1];
5399 /* ./syntax//mmbuilder.nit:837 */
5400 CALL_SUPER_syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5401 /* ./syntax//mmbuilder.nit:838 */
5402 fra.me.REG[1] = ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[2]);
5403 fra.me.REG[0] = CALL_parser___parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
5404 fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_unchecked_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
5405 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5406 if (UNTAG_Bool(REGB0)) {
5407 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 838);
5408 }
5409 CALL_metamodel___static_type___MMAncestor___stype__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
5410 /* ./syntax//mmbuilder.nit:839 */
5411 fra.me.REG[2] = ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[2]);
5412 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5413 fra.me.REG[3] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[3])(fra.me.REG[3]);
5414 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5415 if (UNTAG_Bool(REGB0)) {
5416 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 839);
5417 }
5418 CALL_metamodel___static_type___MMAncestor___inheriter__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
5419 stack_frame_head = fra.me.prev;
5420 return;
5421 }
5422 void syntax___mmbuilder___ASuperclass___accept_class_verifier(val_t p0, val_t p1){
5423 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5424 val_t tmp;
5425 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5426 fra.me.file = LOCATE_syntax___mmbuilder;
5427 fra.me.line = 842;
5428 fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___accept_class_verifier;
5429 fra.me.has_broke = 0;
5430 fra.me.REG_size = 4;
5431 fra.me.REG[0] = NIT_NULL;
5432 fra.me.REG[1] = NIT_NULL;
5433 fra.me.REG[2] = NIT_NULL;
5434 fra.me.REG[3] = NIT_NULL;
5435 fra.me.REG[0] = p0;
5436 fra.me.REG[1] = p1;
5437 /* ./syntax//mmbuilder.nit:842 */
5438 fra.me.REG[2] = fra.me.REG[0];
5439 fra.me.REG[3] = fra.me.REG[1];
5440 /* ./syntax//mmbuilder.nit:844 */
5441 CALL_SUPER_syntax___mmbuilder___ASuperclass___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5442 /* ./syntax//mmbuilder.nit:845 */
5443 fra.me.REG[2] = CALL_parser___parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
5444 CALL_syntax___syntax_base___AType___check_conform(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
5445 stack_frame_head = fra.me.prev;
5446 return;
5447 }
5448 void syntax___mmbuilder___APropdef___process_and_check(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
5449 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5450 val_t REGB0;
5451 val_t REGB1;
5452 val_t REGB2;
5453 val_t REGB3;
5454 val_t tmp;
5455 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5456 fra.me.file = LOCATE_syntax___mmbuilder;
5457 fra.me.line = 850;
5458 fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___process_and_check;
5459 fra.me.has_broke = 0;
5460 fra.me.REG_size = 4;
5461 fra.me.REG[0] = NIT_NULL;
5462 fra.me.REG[1] = NIT_NULL;
5463 fra.me.REG[2] = NIT_NULL;
5464 fra.me.REG[3] = NIT_NULL;
5465 fra.me.REG[0] = p0;
5466 fra.me.REG[1] = p1;
5467 fra.me.REG[2] = p2;
5468 REGB0 = p3;
5469 REGB1 = p4;
5470 /* ./syntax//mmbuilder.nit:858 */
5471 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
5472 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[3])(fra.me.REG[3]);
5473 REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[2]));
5474 if (UNTAG_Bool(REGB2)) {
5475 } else {
5476 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
5477 REGB2 = REGB3;
5478 }
5479 if (UNTAG_Bool(REGB2)) {
5480 /* ./syntax//mmbuilder.nit:859 */
5481 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);
5482 } else {
5483 /* ./syntax//mmbuilder.nit:861 */
5484 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);
5485 }
5486 stack_frame_head = fra.me.prev;
5487 return;
5488 }
5489 void syntax___mmbuilder___APropdef___do_and_check_intro(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
5490 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
5491 val_t REGB0;
5492 val_t REGB1;
5493 val_t REGB2;
5494 val_t REGB3;
5495 val_t REGB4;
5496 val_t tmp;
5497 static val_t once_value_1; /* Once value */
5498 static val_t once_value_2; /* Once value */
5499 static val_t once_value_3; /* Once value */
5500 static val_t once_value_4; /* Once value */
5501 static val_t once_value_5; /* Once value */
5502 static val_t once_value_6; /* Once value */
5503 static val_t once_value_7; /* Once value */
5504 static val_t once_value_8; /* Once value */
5505 static val_t once_value_9; /* Once value */
5506 static val_t once_value_10; /* Once value */
5507 static val_t once_value_11; /* Once value */
5508 static val_t once_value_12; /* Once value */
5509 static val_t once_value_13; /* Once value */
5510 static val_t once_value_14; /* Once value */
5511 static val_t once_value_15; /* Once value */
5512 static val_t once_value_16; /* Once value */
5513 static val_t once_value_17; /* Once value */
5514 static val_t once_value_18; /* Once value */
5515 static val_t once_value_19; /* Once value */
5516 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5517 fra.me.file = LOCATE_syntax___mmbuilder;
5518 fra.me.line = 865;
5519 fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___do_and_check_intro;
5520 fra.me.has_broke = 0;
5521 fra.me.REG_size = 7;
5522 fra.me.REG[0] = NIT_NULL;
5523 fra.me.REG[1] = NIT_NULL;
5524 fra.me.REG[2] = NIT_NULL;
5525 fra.me.REG[3] = NIT_NULL;
5526 fra.me.REG[4] = NIT_NULL;
5527 fra.me.REG[5] = NIT_NULL;
5528 fra.me.REG[6] = NIT_NULL;
5529 fra.me.REG[0] = p0;
5530 fra.me.REG[1] = p1;
5531 fra.me.REG[2] = p2;
5532 REGB0 = p3;
5533 REGB1 = p4;
5534 /* ./syntax//mmbuilder.nit:868 */
5535 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
5536 /* ./syntax//mmbuilder.nit:869 */
5537 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5538 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
5539 /* ./syntax//mmbuilder.nit:870 */
5540 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
5541 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
5542 REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[5])(fra.me.REG[5]);
5543 REGB3 = TAG_Int(3);
5544 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
5545 if (UNTAG_Bool(REGB4)) {
5546 } else {
5547 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5548 }
5549 /* ./../lib/standard//kernel.nit:233 */
5550 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
5551 /* ./syntax//mmbuilder.nit:870 */
5552 if (UNTAG_Bool(REGB3)) {
5553 /* ./syntax//mmbuilder.nit:872 */
5554 REGB3 = TAG_Int(3);
5555 REGB1 = REGB3;
5556 }
5557 /* ./syntax//mmbuilder.nit:874 */
5558 CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[3])(fra.me.REG[3], REGB1);
5559 /* ./syntax//mmbuilder.nit:875 */
5560 if (UNTAG_Bool(REGB0)) {
5561 /* ./syntax//mmbuilder.nit:876 */
5562 REGB0 = TAG_Int(5);
5563 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5564 if (!once_value_1) {
5565 fra.me.REG[6] = BOX_NativeString("Error: No property ");
5566 REGB0 = TAG_Int(19);
5567 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5568 once_value_1 = fra.me.REG[6];
5569 register_static_object(&once_value_1);
5570 } else fra.me.REG[6] = once_value_1;
5571 fra.me.REG[6] = fra.me.REG[6];
5572 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5573 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5574 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5575 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5576 if (!once_value_2) {
5577 fra.me.REG[6] = BOX_NativeString("::");
5578 REGB0 = TAG_Int(2);
5579 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5580 once_value_2 = fra.me.REG[6];
5581 register_static_object(&once_value_2);
5582 } else fra.me.REG[6] = once_value_2;
5583 fra.me.REG[6] = fra.me.REG[6];
5584 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5585 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5586 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5587 if (!once_value_3) {
5588 fra.me.REG[6] = BOX_NativeString(" is inherited. Remove the redef keyword to define a new property.");
5589 REGB0 = TAG_Int(65);
5590 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5591 once_value_3 = fra.me.REG[6];
5592 register_static_object(&once_value_3);
5593 } else fra.me.REG[6] = once_value_3;
5594 fra.me.REG[6] = fra.me.REG[6];
5595 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5596 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5597 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5598 }
5599 /* ./syntax//mmbuilder.nit:878 */
5600 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_attribute(fra.me.REG[3])(fra.me.REG[3]);
5601 if (UNTAG_Bool(REGB0)) {
5602 /* ./syntax//mmbuilder.nit:879 */
5603 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]);
5604 if (UNTAG_Bool(REGB0)) {
5605 /* ./syntax//mmbuilder.nit:880 */
5606 REGB0 = TAG_Int(5);
5607 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5608 if (!once_value_4) {
5609 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
5610 REGB0 = TAG_Int(35);
5611 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5612 once_value_4 = fra.me.REG[6];
5613 register_static_object(&once_value_4);
5614 } else fra.me.REG[6] = once_value_4;
5615 fra.me.REG[6] = fra.me.REG[6];
5616 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5617 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5618 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5619 if (!once_value_5) {
5620 fra.me.REG[6] = BOX_NativeString(" in the interface ");
5621 REGB0 = TAG_Int(18);
5622 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5623 once_value_5 = fra.me.REG[6];
5624 register_static_object(&once_value_5);
5625 } else fra.me.REG[6] = once_value_5;
5626 fra.me.REG[6] = fra.me.REG[6];
5627 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5628 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5629 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5630 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5631 if (!once_value_6) {
5632 fra.me.REG[6] = BOX_NativeString(".");
5633 REGB0 = TAG_Int(1);
5634 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5635 once_value_6 = fra.me.REG[6];
5636 register_static_object(&once_value_6);
5637 } else fra.me.REG[6] = once_value_6;
5638 fra.me.REG[6] = fra.me.REG[6];
5639 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5640 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5641 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5642 } else {
5643 /* ./syntax//mmbuilder.nit:881 */
5644 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[4])(fra.me.REG[4]);
5645 if (UNTAG_Bool(REGB0)) {
5646 /* ./syntax//mmbuilder.nit:882 */
5647 REGB0 = TAG_Int(5);
5648 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5649 if (!once_value_7) {
5650 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
5651 REGB0 = TAG_Int(35);
5652 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5653 once_value_7 = fra.me.REG[6];
5654 register_static_object(&once_value_7);
5655 } else fra.me.REG[6] = once_value_7;
5656 fra.me.REG[6] = fra.me.REG[6];
5657 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5658 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5659 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5660 if (!once_value_8) {
5661 fra.me.REG[6] = BOX_NativeString(" in the enum class ");
5662 REGB0 = TAG_Int(19);
5663 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5664 once_value_8 = fra.me.REG[6];
5665 register_static_object(&once_value_8);
5666 } else fra.me.REG[6] = once_value_8;
5667 fra.me.REG[6] = fra.me.REG[6];
5668 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5669 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5670 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5671 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5672 if (!once_value_9) {
5673 fra.me.REG[6] = BOX_NativeString(".");
5674 REGB0 = TAG_Int(1);
5675 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5676 once_value_9 = fra.me.REG[6];
5677 register_static_object(&once_value_9);
5678 } else fra.me.REG[6] = once_value_9;
5679 fra.me.REG[6] = fra.me.REG[6];
5680 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5681 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5682 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5683 } else {
5684 /* ./syntax//mmbuilder.nit:883 */
5685 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[4])(fra.me.REG[4]);
5686 if (UNTAG_Bool(REGB0)) {
5687 /* ./syntax//mmbuilder.nit:884 */
5688 REGB0 = TAG_Int(5);
5689 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5690 if (!once_value_10) {
5691 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
5692 REGB0 = TAG_Int(35);
5693 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5694 once_value_10 = fra.me.REG[6];
5695 register_static_object(&once_value_10);
5696 } else fra.me.REG[6] = once_value_10;
5697 fra.me.REG[6] = fra.me.REG[6];
5698 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5699 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5700 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5701 if (!once_value_11) {
5702 fra.me.REG[6] = BOX_NativeString(" in the extern class ");
5703 REGB0 = TAG_Int(21);
5704 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5705 once_value_11 = fra.me.REG[6];
5706 register_static_object(&once_value_11);
5707 } else fra.me.REG[6] = once_value_11;
5708 fra.me.REG[6] = fra.me.REG[6];
5709 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5710 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5711 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5712 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5713 if (!once_value_12) {
5714 fra.me.REG[6] = BOX_NativeString(".");
5715 REGB0 = TAG_Int(1);
5716 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5717 once_value_12 = fra.me.REG[6];
5718 register_static_object(&once_value_12);
5719 } else fra.me.REG[6] = once_value_12;
5720 fra.me.REG[6] = fra.me.REG[6];
5721 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5722 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5723 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5724 }
5725 }
5726 }
5727 } else {
5728 /* ./syntax//mmbuilder.nit:886 */
5729 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
5730 if (UNTAG_Bool(REGB0)) {
5731 /* ./syntax//mmbuilder.nit:887 */
5732 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]);
5733 if (UNTAG_Bool(REGB0)) {
5734 /* ./syntax//mmbuilder.nit:888 */
5735 REGB0 = TAG_Int(5);
5736 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5737 if (!once_value_13) {
5738 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define a constructor ");
5739 REGB0 = TAG_Int(39);
5740 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5741 once_value_13 = fra.me.REG[6];
5742 register_static_object(&once_value_13);
5743 } else fra.me.REG[6] = once_value_13;
5744 fra.me.REG[6] = fra.me.REG[6];
5745 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5746 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5747 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5748 if (!once_value_14) {
5749 fra.me.REG[6] = BOX_NativeString(" in the class ");
5750 REGB0 = TAG_Int(14);
5751 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5752 once_value_14 = fra.me.REG[6];
5753 register_static_object(&once_value_14);
5754 } else fra.me.REG[6] = once_value_14;
5755 fra.me.REG[6] = fra.me.REG[6];
5756 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5757 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5758 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5759 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5760 if (!once_value_15) {
5761 fra.me.REG[6] = BOX_NativeString(".");
5762 REGB0 = TAG_Int(1);
5763 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5764 once_value_15 = fra.me.REG[6];
5765 register_static_object(&once_value_15);
5766 } else fra.me.REG[6] = once_value_15;
5767 fra.me.REG[6] = fra.me.REG[6];
5768 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5769 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5770 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5771 } else {
5772 /* ./syntax//mmbuilder.nit:889 */
5773 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[4])(fra.me.REG[4]);
5774 if (UNTAG_Bool(REGB0)) {
5775 /* ./syntax//mmbuilder.nit:890 */
5776 REGB0 = TAG_Int(5);
5777 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5778 if (!once_value_16) {
5779 fra.me.REG[5] = BOX_NativeString("Error: Attempt to define a constructor ");
5780 REGB0 = TAG_Int(39);
5781 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
5782 once_value_16 = fra.me.REG[5];
5783 register_static_object(&once_value_16);
5784 } else fra.me.REG[5] = once_value_16;
5785 fra.me.REG[5] = fra.me.REG[5];
5786 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5787 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5788 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5789 if (!once_value_17) {
5790 fra.me.REG[5] = BOX_NativeString(" in the enum ");
5791 REGB0 = TAG_Int(13);
5792 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
5793 once_value_17 = fra.me.REG[5];
5794 register_static_object(&once_value_17);
5795 } else fra.me.REG[5] = once_value_17;
5796 fra.me.REG[5] = fra.me.REG[5];
5797 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5798 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5799 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5800 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5801 if (!once_value_18) {
5802 fra.me.REG[5] = BOX_NativeString(".");
5803 REGB0 = TAG_Int(1);
5804 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
5805 once_value_18 = fra.me.REG[5];
5806 register_static_object(&once_value_18);
5807 } else fra.me.REG[5] = once_value_18;
5808 fra.me.REG[5] = fra.me.REG[5];
5809 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5810 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
5811 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
5812 }
5813 }
5814 }
5815 }
5816 /* ./syntax//mmbuilder.nit:895 */
5817 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
5818 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5819 if (UNTAG_Bool(REGB0)) {
5820 } else {
5821 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5822 if (UNTAG_Bool(REGB1)) {
5823 REGB1 = TAG_Bool(false);
5824 REGB0 = REGB1;
5825 } else {
5826 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5827 REGB0 = REGB1;
5828 }
5829 }
5830 if (UNTAG_Bool(REGB0)) {
5831 /* ./syntax//mmbuilder.nit:896 */
5832 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
5833 if (UNTAG_Bool(REGB0)) {
5834 /* ./syntax//mmbuilder.nit:897 */
5835 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5836 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
5837 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
5838 /* ./syntax//mmbuilder.nit:898 */
5839 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]);
5840 }
5841 /* ./syntax//mmbuilder.nit:900 */
5842 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
5843 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5844 if (UNTAG_Bool(REGB0)) {
5845 } else {
5846 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5847 if (UNTAG_Bool(REGB1)) {
5848 REGB1 = TAG_Bool(false);
5849 REGB0 = REGB1;
5850 } else {
5851 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5852 REGB0 = REGB1;
5853 }
5854 }
5855 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5856 if (UNTAG_Bool(REGB0)) {
5857 REGB0 = TAG_Bool(true);
5858 } else {
5859 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5860 REGB1 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[4])(fra.me.REG[4]);
5861 REGB0 = REGB1;
5862 }
5863 if (UNTAG_Bool(REGB0)) {
5864 } else {
5865 /* ./syntax//mmbuilder.nit:902 */
5866 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5867 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
5868 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[4])(fra.me.REG[4]);
5869 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5870 if (UNTAG_Bool(REGB0)) {
5871 /* ./syntax//mmbuilder.nit:903 */
5872 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5873 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
5874 fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
5875 if (!once_value_19) {
5876 fra.me.REG[0] = BOX_NativeString("Error: Untyped parameter.");
5877 REGB0 = TAG_Int(25);
5878 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
5879 once_value_19 = fra.me.REG[0];
5880 register_static_object(&once_value_19);
5881 } else fra.me.REG[0] = once_value_19;
5882 fra.me.REG[0] = fra.me.REG[0];
5883 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]);
5884 } else {
5885 /* ./syntax//mmbuilder.nit:905 */
5886 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
5887 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
5888 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
5889 fra.me.REG[4] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[4]);
5890 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
5891 /* ./syntax//mmbuilder.nit:906 */
5892 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5893 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[1])(fra.me.REG[1]);
5894 /* ./../lib/standard//collection//array.nit:269 */
5895 REGB0 = TAG_Int(0);
5896 /* ./../lib/standard//collection//array.nit:270 */
5897 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
5898 if (UNTAG_Bool(REGB1)) {
5899 } else {
5900 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
5901 }
5902 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
5903 /* ./../lib/standard//collection//array.nit:271 */
5904 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
5905 /* ./../lib/standard//collection//array.nit:272 */
5906 while(1) {
5907 /* ./../lib/standard//collection//array.nit:24 */
5908 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
5909 if (UNTAG_Bool(REGB1)) {
5910 } else {
5911 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
5912 }
5913 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
5914 REGB3 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
5915 if (UNTAG_Bool(REGB3)) {
5916 } else {
5917 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5918 }
5919 /* ./../lib/standard//kernel.nit:232 */
5920 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
5921 /* ./../lib/standard//collection//array.nit:272 */
5922 if (UNTAG_Bool(REGB1)) {
5923 /* ./../lib/standard//collection//array.nit:273 */
5924 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5925 if (UNTAG_Bool(REGB1)) {
5926 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
5927 }
5928 /* ./../lib/standard//collection//array.nit:718 */
5929 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
5930 /* ./syntax//mmbuilder.nit:907 */
5931 fra.me.REG[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
5932 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5933 if (UNTAG_Bool(REGB1)) {
5934 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 907);
5935 }
5936 fra.me.REG[3] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[3])(fra.me.REG[3]);
5937 fra.me.REG[0] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[0])(fra.me.REG[0]);
5938 fra.me.REG[0] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[0])(fra.me.REG[0]);
5939 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
5940 /* ./../lib/standard//collection//array.nit:274 */
5941 REGB1 = TAG_Int(1);
5942 /* ./../lib/standard//kernel.nit:235 */
5943 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
5944 /* ./../lib/standard//collection//array.nit:274 */
5945 REGB0 = REGB1;
5946 } else {
5947 /* ./../lib/standard//collection//array.nit:272 */
5948 goto label20;
5949 }
5950 }
5951 label20: while(0);
5952 }
5953 }
5954 }
5955 stack_frame_head = fra.me.prev;
5956 return;
5957 }
5958 void syntax___mmbuilder___APropdef___inherit_signature(val_t p0, val_t p1, val_t p2, val_t p3){
5959 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
5960 val_t REGB0;
5961 val_t REGB1;
5962 val_t REGB2;
5963 val_t REGB3;
5964 val_t REGB4;
5965 val_t tmp;
5966 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5967 fra.me.file = LOCATE_syntax___mmbuilder;
5968 fra.me.line = 913;
5969 fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___inherit_signature;
5970 fra.me.has_broke = 0;
5971 fra.me.REG_size = 11;
5972 fra.me.REG[0] = NIT_NULL;
5973 fra.me.REG[1] = NIT_NULL;
5974 fra.me.REG[2] = NIT_NULL;
5975 fra.me.REG[3] = NIT_NULL;
5976 fra.me.REG[4] = NIT_NULL;
5977 fra.me.REG[5] = NIT_NULL;
5978 fra.me.REG[6] = NIT_NULL;
5979 fra.me.REG[7] = NIT_NULL;
5980 fra.me.REG[8] = NIT_NULL;
5981 fra.me.REG[9] = NIT_NULL;
5982 fra.me.REG[10] = NIT_NULL;
5983 fra.me.REG[0] = p0;
5984 fra.me.REG[1] = p1;
5985 fra.me.REG[2] = p2;
5986 fra.me.REG[3] = p3;
5987 /* ./syntax//mmbuilder.nit:915 */
5988 fra.me.REG[0] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
5989 /* ./../lib/standard//collection//array.nit:269 */
5990 REGB0 = TAG_Int(0);
5991 /* ./../lib/standard//collection//array.nit:270 */
5992 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
5993 if (UNTAG_Bool(REGB1)) {
5994 } else {
5995 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
5996 }
5997 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
5998 /* ./../lib/standard//collection//array.nit:271 */
5999 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
6000 /* ./../lib/standard//collection//array.nit:272 */
6001 while(1) {
6002 /* ./../lib/standard//collection//array.nit:24 */
6003 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
6004 if (UNTAG_Bool(REGB1)) {
6005 } else {
6006 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6007 }
6008 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
6009 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
6010 if (UNTAG_Bool(REGB2)) {
6011 } else {
6012 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6013 }
6014 /* ./../lib/standard//kernel.nit:232 */
6015 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
6016 /* ./../lib/standard//collection//array.nit:272 */
6017 if (UNTAG_Bool(REGB1)) {
6018 /* ./../lib/standard//collection//array.nit:273 */
6019 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6020 if (UNTAG_Bool(REGB1)) {
6021 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
6022 }
6023 /* ./../lib/standard//collection//array.nit:718 */
6024 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
6025 /* ./syntax//mmbuilder.nit:917 */
6026 fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[5])(fra.me.REG[5]);
6027 fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
6028 fra.me.REG[6] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[6])(fra.me.REG[6]);
6029 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6030 if (UNTAG_Bool(REGB1)) {
6031 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 917);
6032 }
6033 fra.me.REG[6] = CALL_metamodel___static_type___MMSignature___adaptation_to(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
6034 /* ./syntax//mmbuilder.nit:919 */
6035 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6036 if (UNTAG_Bool(REGB1)) {
6037 } else {
6038 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6039 if (UNTAG_Bool(REGB2)) {
6040 REGB2 = TAG_Bool(false);
6041 REGB1 = REGB2;
6042 } else {
6043 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
6044 REGB1 = REGB2;
6045 }
6046 }
6047 if (UNTAG_Bool(REGB1)) {
6048 /* ./syntax//mmbuilder.nit:920 */
6049 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6050 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[5])(fra.me.REG[5]);
6051 /* ./../lib/standard//collection//array.nit:24 */
6052 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
6053 if (UNTAG_Bool(REGB1)) {
6054 } else {
6055 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6056 }
6057 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
6058 /* ./syntax//mmbuilder.nit:920 */
6059 REGB2 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[6])(fra.me.REG[6]);
6060 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
6061 if (UNTAG_Bool(REGB3)) {
6062 } else {
6063 /* ./../lib/standard//kernel.nit:227 */
6064 REGB2 = TAG_Bool((REGB1)==(REGB2));
6065 /* ./syntax//mmbuilder.nit:920 */
6066 REGB3 = REGB2;
6067 }
6068 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
6069 if (UNTAG_Bool(REGB3)) {
6070 /* ./syntax//mmbuilder.nit:921 */
6071 goto label1;
6072 }
6073 /* ./syntax//mmbuilder.nit:923 */
6074 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6075 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[5])(fra.me.REG[5]);
6076 /* ./../lib/standard//collection//array.nit:269 */
6077 REGB3 = TAG_Int(0);
6078 /* ./../lib/standard//collection//array.nit:270 */
6079 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
6080 if (UNTAG_Bool(REGB2)) {
6081 } else {
6082 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
6083 }
6084 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
6085 /* ./../lib/standard//collection//array.nit:271 */
6086 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
6087 /* ./../lib/standard//collection//array.nit:272 */
6088 while(1) {
6089 /* ./../lib/standard//collection//array.nit:24 */
6090 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
6091 if (UNTAG_Bool(REGB2)) {
6092 } else {
6093 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6094 }
6095 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
6096 REGB1 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
6097 if (UNTAG_Bool(REGB1)) {
6098 } else {
6099 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6100 }
6101 /* ./../lib/standard//kernel.nit:232 */
6102 REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB2));
6103 /* ./../lib/standard//collection//array.nit:272 */
6104 if (UNTAG_Bool(REGB2)) {
6105 /* ./../lib/standard//collection//array.nit:273 */
6106 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6107 if (UNTAG_Bool(REGB2)) {
6108 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
6109 }
6110 /* ./../lib/standard//collection//array.nit:718 */
6111 fra.me.REG[8] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB3)];
6112 /* ./syntax//mmbuilder.nit:924 */
6113 REGB2 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[8])(fra.me.REG[8]);
6114 fra.me.REG[9] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[6])(fra.me.REG[6], REGB2);
6115 /* ./syntax//mmbuilder.nit:925 */
6116 CALL_syntax___mmbuilder___AParam___stype__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
6117 /* ./syntax//mmbuilder.nit:926 */
6118 REGB2 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[8])(fra.me.REG[8]);
6119 REGB1 = CALL_metamodel___vararg___MMSignature___vararg_rank(fra.me.REG[6])(fra.me.REG[6]);
6120 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
6121 if (UNTAG_Bool(REGB4)) {
6122 } else {
6123 /* ./../lib/standard//kernel.nit:227 */
6124 REGB1 = TAG_Bool((REGB2)==(REGB1));
6125 /* ./syntax//mmbuilder.nit:926 */
6126 REGB4 = REGB1;
6127 }
6128 if (UNTAG_Bool(REGB4)) {
6129 /* ./syntax//mmbuilder.nit:927 */
6130 fra.me.REG[10] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
6131 fra.me.REG[9] = fra.me.REG[10];
6132 }
6133 /* ./syntax//mmbuilder.nit:929 */
6134 fra.me.REG[8] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[8])(fra.me.REG[8]);
6135 CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
6136 /* ./../lib/standard//collection//array.nit:274 */
6137 REGB4 = TAG_Int(1);
6138 /* ./../lib/standard//kernel.nit:235 */
6139 REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB4));
6140 /* ./../lib/standard//collection//array.nit:274 */
6141 REGB3 = REGB4;
6142 } else {
6143 /* ./../lib/standard//collection//array.nit:272 */
6144 goto label2;
6145 }
6146 }
6147 label2: while(0);
6148 /* ./syntax//mmbuilder.nit:932 */
6149 fra.me.REG[0] = fra.me.REG[6];
6150 /* ./syntax//mmbuilder.nit:933 */
6151 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6152 }
6153 /* ./../lib/standard//collection//array.nit:274 */
6154 REGB3 = TAG_Int(1);
6155 /* ./../lib/standard//kernel.nit:235 */
6156 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
6157 /* ./../lib/standard//collection//array.nit:274 */
6158 REGB0 = REGB3;
6159 } else {
6160 /* ./../lib/standard//collection//array.nit:272 */
6161 goto label3;
6162 }
6163 }
6164 label3: while(0);
6165 label1: while(0);
6166 stack_frame_head = fra.me.prev;
6167 return;
6168 }
6169 void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
6170 struct {struct stack_frame_t me; val_t MORE_REG[13];} fra;
6171 val_t REGB0;
6172 val_t REGB1;
6173 val_t REGB2;
6174 val_t REGB3;
6175 val_t REGB4;
6176 val_t REGB5;
6177 val_t REGB6;
6178 val_t REGB7;
6179 val_t tmp;
6180 static val_t once_value_1; /* Once value */
6181 static val_t once_value_2; /* Once value */
6182 static val_t once_value_3; /* Once value */
6183 static val_t once_value_5; /* Once value */
6184 static val_t once_value_6; /* Once value */
6185 static val_t once_value_7; /* Once value */
6186 static val_t once_value_8; /* Once value */
6187 static val_t once_value_9; /* Once value */
6188 static val_t once_value_10; /* Once value */
6189 static val_t once_value_12; /* Once value */
6190 static val_t once_value_13; /* Once value */
6191 static val_t once_value_14; /* Once value */
6192 static val_t once_value_15; /* Once value */
6193 static val_t once_value_16; /* Once value */
6194 static val_t once_value_17; /* Once value */
6195 static val_t once_value_18; /* Once value */
6196 static val_t once_value_19; /* Once value */
6197 static val_t once_value_20; /* Once value */
6198 static val_t once_value_21; /* Once value */
6199 static val_t once_value_22; /* Once value */
6200 static val_t once_value_23; /* Once value */
6201 static val_t once_value_25; /* Once value */
6202 static val_t once_value_26; /* Once value */
6203 static val_t once_value_27; /* Once value */
6204 static val_t once_value_28; /* Once value */
6205 static val_t once_value_29; /* Once value */
6206 static val_t once_value_30; /* Once value */
6207 static val_t once_value_31; /* Once value */
6208 static val_t once_value_32; /* Once value */
6209 static val_t once_value_33; /* Once value */
6210 static val_t once_value_34; /* Once value */
6211 static val_t once_value_36; /* Once value */
6212 static val_t once_value_37; /* Once value */
6213 static val_t once_value_38; /* Once value */
6214 static val_t once_value_39; /* Once value */
6215 static val_t once_value_40; /* Once value */
6216 static val_t once_value_41; /* Once value */
6217 static val_t once_value_42; /* Once value */
6218 static val_t once_value_43; /* Once value */
6219 static val_t once_value_44; /* Once value */
6220 static val_t once_value_45; /* Once value */
6221 static val_t once_value_46; /* Once value */
6222 static val_t once_value_47; /* Once value */
6223 static val_t once_value_48; /* Once value */
6224 static val_t once_value_49; /* Once value */
6225 static val_t once_value_50; /* Once value */
6226 static val_t once_value_51; /* Once value */
6227 static val_t once_value_52; /* Once value */
6228 static val_t once_value_53; /* Once value */
6229 static val_t once_value_54; /* Once value */
6230 static val_t once_value_55; /* Once value */
6231 static val_t once_value_56; /* Once value */
6232 static val_t once_value_57; /* Once value */
6233 static val_t once_value_58; /* Once value */
6234 static val_t once_value_59; /* Once value */
6235 static val_t once_value_60; /* Once value */
6236 static val_t once_value_61; /* Once value */
6237 static val_t once_value_62; /* Once value */
6238 static val_t once_value_64; /* Once value */
6239 static val_t once_value_65; /* Once value */
6240 static val_t once_value_66; /* Once value */
6241 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6242 fra.me.file = LOCATE_syntax___mmbuilder;
6243 fra.me.line = 938;
6244 fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___do_and_check_redef;
6245 fra.me.has_broke = 0;
6246 fra.me.REG_size = 14;
6247 fra.me.REG[0] = NIT_NULL;
6248 fra.me.REG[1] = NIT_NULL;
6249 fra.me.REG[2] = NIT_NULL;
6250 fra.me.REG[3] = NIT_NULL;
6251 fra.me.REG[4] = NIT_NULL;
6252 fra.me.REG[5] = NIT_NULL;
6253 fra.me.REG[6] = NIT_NULL;
6254 fra.me.REG[7] = NIT_NULL;
6255 fra.me.REG[8] = NIT_NULL;
6256 fra.me.REG[9] = NIT_NULL;
6257 fra.me.REG[10] = NIT_NULL;
6258 fra.me.REG[11] = NIT_NULL;
6259 fra.me.REG[12] = NIT_NULL;
6260 fra.me.REG[13] = NIT_NULL;
6261 fra.me.REG[0] = p0;
6262 fra.me.REG[1] = p1;
6263 fra.me.REG[2] = p2;
6264 REGB0 = p3;
6265 REGB1 = p4;
6266 /* ./syntax//mmbuilder.nit:941 */
6267 REGB2 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AInitPropdef, ID_parser___parser_nodes___AInitPropdef)) /*cast AInitPropdef*/;
6268 /* ./syntax//mmbuilder.nit:942 */
6269 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
6270 /* ./syntax//mmbuilder.nit:944 */
6271 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6272 if (UNTAG_Bool(REGB0)) {
6273 /* ./syntax//mmbuilder.nit:945 */
6274 REGB0 = TAG_Int(5);
6275 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
6276 if (!once_value_1) {
6277 fra.me.REG[5] = BOX_NativeString("Redef error: ");
6278 REGB0 = TAG_Int(13);
6279 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6280 once_value_1 = fra.me.REG[5];
6281 register_static_object(&once_value_1);
6282 } else fra.me.REG[5] = once_value_1;
6283 fra.me.REG[5] = fra.me.REG[5];
6284 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6285 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6286 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
6287 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6288 if (!once_value_2) {
6289 fra.me.REG[5] = BOX_NativeString("::");
6290 REGB0 = TAG_Int(2);
6291 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6292 once_value_2 = fra.me.REG[5];
6293 register_static_object(&once_value_2);
6294 } else fra.me.REG[5] = once_value_2;
6295 fra.me.REG[5] = fra.me.REG[5];
6296 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6297 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6298 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6299 if (!once_value_3) {
6300 fra.me.REG[5] = BOX_NativeString(" is an inherited property. To redefine it, add the redef keyword.");
6301 REGB0 = TAG_Int(65);
6302 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6303 once_value_3 = fra.me.REG[5];
6304 register_static_object(&once_value_3);
6305 } else fra.me.REG[5] = once_value_3;
6306 fra.me.REG[5] = fra.me.REG[5];
6307 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6308 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
6309 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
6310 /* ./syntax//mmbuilder.nit:946 */
6311 goto label4;
6312 }
6313 /* ./syntax//mmbuilder.nit:948 */
6314 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
6315 if (UNTAG_Bool(REGB0)) {
6316 REGB0 = TAG_Bool(!UNTAG_Bool(REGB2));
6317 } else {
6318 REGB3 = TAG_Bool(false);
6319 REGB0 = REGB3;
6320 }
6321 if (UNTAG_Bool(REGB0)) {
6322 /* ./syntax//mmbuilder.nit:949 */
6323 REGB0 = TAG_Int(5);
6324 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
6325 if (!once_value_5) {
6326 fra.me.REG[5] = BOX_NativeString("Redef error: A method ");
6327 REGB0 = TAG_Int(22);
6328 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6329 once_value_5 = fra.me.REG[5];
6330 register_static_object(&once_value_5);
6331 } else fra.me.REG[5] = once_value_5;
6332 fra.me.REG[5] = fra.me.REG[5];
6333 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6334 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6335 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
6336 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6337 if (!once_value_6) {
6338 fra.me.REG[5] = BOX_NativeString("::");
6339 REGB0 = TAG_Int(2);
6340 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6341 once_value_6 = fra.me.REG[5];
6342 register_static_object(&once_value_6);
6343 } else fra.me.REG[5] = once_value_6;
6344 fra.me.REG[5] = fra.me.REG[5];
6345 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6346 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6347 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6348 if (!once_value_7) {
6349 fra.me.REG[5] = BOX_NativeString(" cannot redefine a constructor.");
6350 REGB0 = TAG_Int(31);
6351 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6352 once_value_7 = fra.me.REG[5];
6353 register_static_object(&once_value_7);
6354 } else fra.me.REG[5] = once_value_7;
6355 fra.me.REG[5] = fra.me.REG[5];
6356 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6357 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
6358 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
6359 } else {
6360 /* ./syntax//mmbuilder.nit:950 */
6361 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
6362 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6363 if (UNTAG_Bool(REGB0)) {
6364 } else {
6365 REGB0 = TAG_Bool(false);
6366 REGB2 = REGB0;
6367 }
6368 if (UNTAG_Bool(REGB2)) {
6369 /* ./syntax//mmbuilder.nit:951 */
6370 REGB2 = TAG_Int(5);
6371 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
6372 if (!once_value_8) {
6373 fra.me.REG[5] = BOX_NativeString("Redef error: A constructor ");
6374 REGB2 = TAG_Int(27);
6375 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
6376 once_value_8 = fra.me.REG[5];
6377 register_static_object(&once_value_8);
6378 } else fra.me.REG[5] = once_value_8;
6379 fra.me.REG[5] = fra.me.REG[5];
6380 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6381 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6382 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
6383 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6384 if (!once_value_9) {
6385 fra.me.REG[5] = BOX_NativeString("::");
6386 REGB2 = TAG_Int(2);
6387 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
6388 once_value_9 = fra.me.REG[5];
6389 register_static_object(&once_value_9);
6390 } else fra.me.REG[5] = once_value_9;
6391 fra.me.REG[5] = fra.me.REG[5];
6392 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6393 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6394 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6395 if (!once_value_10) {
6396 fra.me.REG[5] = BOX_NativeString(" cannot redefine a method.");
6397 REGB2 = TAG_Int(26);
6398 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
6399 once_value_10 = fra.me.REG[5];
6400 register_static_object(&once_value_10);
6401 } else fra.me.REG[5] = once_value_10;
6402 fra.me.REG[5] = fra.me.REG[5];
6403 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6404 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
6405 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
6406 }
6407 }
6408 /* ./syntax//mmbuilder.nit:954 */
6409 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
6410 /* ./syntax//mmbuilder.nit:956 */
6411 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[2])(fra.me.REG[2]);
6412 fra.me.REG[5] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[5])(fra.me.REG[5]);
6413 /* ./../lib/standard//collection//array.nit:269 */
6414 REGB2 = TAG_Int(0);
6415 /* ./../lib/standard//collection//array.nit:270 */
6416 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
6417 if (UNTAG_Bool(REGB0)) {
6418 } else {
6419 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
6420 }
6421 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
6422 /* ./../lib/standard//collection//array.nit:271 */
6423 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
6424 /* ./../lib/standard//collection//array.nit:272 */
6425 while(1) {
6426 /* ./../lib/standard//collection//array.nit:24 */
6427 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
6428 if (UNTAG_Bool(REGB0)) {
6429 } else {
6430 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6431 }
6432 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
6433 REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
6434 if (UNTAG_Bool(REGB3)) {
6435 } else {
6436 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6437 }
6438 /* ./../lib/standard//kernel.nit:232 */
6439 REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
6440 /* ./../lib/standard//collection//array.nit:272 */
6441 if (UNTAG_Bool(REGB0)) {
6442 /* ./../lib/standard//collection//array.nit:273 */
6443 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
6444 if (UNTAG_Bool(REGB0)) {
6445 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
6446 }
6447 /* ./../lib/standard//collection//array.nit:718 */
6448 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB2)];
6449 /* ./syntax//mmbuilder.nit:957 */
6450 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[7])(fra.me.REG[7]);
6451 fra.me.REG[9] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
6452 fra.me.REG[9] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
6453 /* ./syntax//mmbuilder.nit:958 */
6454 fra.me.REG[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[7])(fra.me.REG[7]);
6455 /* ./syntax//mmbuilder.nit:959 */
6456 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6457 if (UNTAG_Bool(REGB0)) {
6458 } else {
6459 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6460 if (UNTAG_Bool(REGB3)) {
6461 REGB3 = TAG_Bool(false);
6462 REGB0 = REGB3;
6463 } else {
6464 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
6465 REGB0 = REGB3;
6466 }
6467 }
6468 if (UNTAG_Bool(REGB0)) {
6469 goto label11;
6470 }
6471 /* ./syntax//mmbuilder.nit:960 */
6472 fra.me.REG[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
6473 fra.me.REG[8] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[8])(fra.me.REG[8]);
6474 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6475 if (UNTAG_Bool(REGB0)) {
6476 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 960);
6477 }
6478 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___adaptation_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
6479 fra.me.REG[7] = fra.me.REG[8];
6480 /* ./syntax//mmbuilder.nit:962 */
6481 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6482 if (UNTAG_Bool(REGB0)) {
6483 } else {
6484 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6485 if (UNTAG_Bool(REGB3)) {
6486 REGB3 = TAG_Bool(false);
6487 REGB0 = REGB3;
6488 } else {
6489 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
6490 REGB0 = REGB3;
6491 }
6492 }
6493 if (UNTAG_Bool(REGB0)) {
6494 /* ./syntax//mmbuilder.nit:964 */
6495 fra.me.REG[8] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6496 fra.me.REG[8] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[8])(fra.me.REG[8]);
6497 /* ./../lib/standard//collection//array.nit:24 */
6498 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6499 if (UNTAG_Bool(REGB0)) {
6500 } else {
6501 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6502 }
6503 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6504 /* ./syntax//mmbuilder.nit:964 */
6505 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6506 if (UNTAG_Bool(REGB3)) {
6507 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 964);
6508 }
6509 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
6510 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB3));
6511 if (UNTAG_Bool(REGB4)) {
6512 } else {
6513 /* ./../lib/standard//kernel.nit:227 */
6514 REGB3 = TAG_Bool((REGB0)==(REGB3));
6515 /* ./syntax//mmbuilder.nit:964 */
6516 REGB4 = REGB3;
6517 }
6518 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
6519 if (UNTAG_Bool(REGB4)) {
6520 /* ./syntax//mmbuilder.nit:965 */
6521 REGB4 = TAG_Int(11);
6522 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
6523 if (!once_value_12) {
6524 fra.me.REG[10] = BOX_NativeString("Redef error: ");
6525 REGB4 = TAG_Int(13);
6526 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6527 once_value_12 = fra.me.REG[10];
6528 register_static_object(&once_value_12);
6529 } else fra.me.REG[10] = once_value_12;
6530 fra.me.REG[10] = fra.me.REG[10];
6531 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6532 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6533 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6534 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6535 if (!once_value_13) {
6536 fra.me.REG[10] = BOX_NativeString("::");
6537 REGB4 = TAG_Int(2);
6538 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6539 once_value_13 = fra.me.REG[10];
6540 register_static_object(&once_value_13);
6541 } else fra.me.REG[10] = once_value_13;
6542 fra.me.REG[10] = fra.me.REG[10];
6543 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6544 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6545 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6546 if (!once_value_14) {
6547 fra.me.REG[10] = BOX_NativeString(" redefines ");
6548 REGB4 = TAG_Int(11);
6549 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6550 once_value_14 = fra.me.REG[10];
6551 register_static_object(&once_value_14);
6552 } else fra.me.REG[10] = once_value_14;
6553 fra.me.REG[10] = fra.me.REG[10];
6554 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6555 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6556 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6557 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6558 if (!once_value_15) {
6559 fra.me.REG[10] = BOX_NativeString("::");
6560 REGB4 = TAG_Int(2);
6561 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6562 once_value_15 = fra.me.REG[10];
6563 register_static_object(&once_value_15);
6564 } else fra.me.REG[10] = once_value_15;
6565 fra.me.REG[10] = fra.me.REG[10];
6566 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6567 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6568 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6569 if (!once_value_16) {
6570 fra.me.REG[10] = BOX_NativeString(" with ");
6571 REGB4 = TAG_Int(6);
6572 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6573 once_value_16 = fra.me.REG[10];
6574 register_static_object(&once_value_16);
6575 } else fra.me.REG[10] = once_value_16;
6576 fra.me.REG[10] = fra.me.REG[10];
6577 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6578 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6579 if (UNTAG_Bool(REGB4)) {
6580 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 965);
6581 }
6582 REGB4 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
6583 fra.me.REG[10] = CALL_standard___string___Object___to_s(REGB4)(REGB4);
6584 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6585 if (!once_value_17) {
6586 fra.me.REG[10] = BOX_NativeString(" parameter(s).");
6587 REGB4 = TAG_Int(14);
6588 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6589 once_value_17 = fra.me.REG[10];
6590 register_static_object(&once_value_17);
6591 } else fra.me.REG[10] = once_value_17;
6592 fra.me.REG[10] = fra.me.REG[10];
6593 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6594 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
6595 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]);
6596 /* ./syntax//mmbuilder.nit:966 */
6597 goto label4;
6598 }
6599 /* ./syntax//mmbuilder.nit:968 */
6600 fra.me.REG[8] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6601 fra.me.REG[8] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[8])(fra.me.REG[8]);
6602 /* ./../lib/standard//collection//array.nit:24 */
6603 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6604 if (UNTAG_Bool(REGB4)) {
6605 } else {
6606 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6607 }
6608 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6609 /* ./syntax//mmbuilder.nit:968 */
6610 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6611 if (UNTAG_Bool(REGB3)) {
6612 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 968);
6613 }
6614 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[7])(fra.me.REG[7]);
6615 /* ./../lib/standard//collection//array.nit:24 */
6616 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6617 if (UNTAG_Bool(REGB3)) {
6618 } else {
6619 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6620 }
6621 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6622 /* ./syntax//mmbuilder.nit:968 */
6623 REGB0 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB3));
6624 if (UNTAG_Bool(REGB0)) {
6625 } else {
6626 /* ./../lib/standard//kernel.nit:227 */
6627 REGB3 = TAG_Bool((REGB4)==(REGB3));
6628 /* ./syntax//mmbuilder.nit:968 */
6629 REGB0 = REGB3;
6630 }
6631 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6632 if (UNTAG_Bool(REGB0)) {
6633 /* ./syntax//mmbuilder.nit:969 */
6634 REGB0 = TAG_Int(11);
6635 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
6636 if (!once_value_18) {
6637 fra.me.REG[10] = BOX_NativeString("Redef error: ");
6638 REGB0 = TAG_Int(13);
6639 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6640 once_value_18 = fra.me.REG[10];
6641 register_static_object(&once_value_18);
6642 } else fra.me.REG[10] = once_value_18;
6643 fra.me.REG[10] = fra.me.REG[10];
6644 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6645 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6646 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6647 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6648 if (!once_value_19) {
6649 fra.me.REG[10] = BOX_NativeString("::");
6650 REGB0 = TAG_Int(2);
6651 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6652 once_value_19 = fra.me.REG[10];
6653 register_static_object(&once_value_19);
6654 } else fra.me.REG[10] = once_value_19;
6655 fra.me.REG[10] = fra.me.REG[10];
6656 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6657 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6658 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6659 if (!once_value_20) {
6660 fra.me.REG[10] = BOX_NativeString(" redefines ");
6661 REGB0 = TAG_Int(11);
6662 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6663 once_value_20 = fra.me.REG[10];
6664 register_static_object(&once_value_20);
6665 } else fra.me.REG[10] = once_value_20;
6666 fra.me.REG[10] = fra.me.REG[10];
6667 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6668 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6669 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6670 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6671 if (!once_value_21) {
6672 fra.me.REG[10] = BOX_NativeString("::");
6673 REGB0 = TAG_Int(2);
6674 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6675 once_value_21 = fra.me.REG[10];
6676 register_static_object(&once_value_21);
6677 } else fra.me.REG[10] = once_value_21;
6678 fra.me.REG[10] = fra.me.REG[10];
6679 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6680 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6681 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6682 if (!once_value_22) {
6683 fra.me.REG[10] = BOX_NativeString(" with ");
6684 REGB0 = TAG_Int(6);
6685 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6686 once_value_22 = fra.me.REG[10];
6687 register_static_object(&once_value_22);
6688 } else fra.me.REG[10] = once_value_22;
6689 fra.me.REG[10] = fra.me.REG[10];
6690 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6691 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6692 if (UNTAG_Bool(REGB0)) {
6693 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 969);
6694 }
6695 REGB0 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
6696 fra.me.REG[10] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
6697 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6698 if (!once_value_23) {
6699 fra.me.REG[10] = BOX_NativeString(" closure(s).");
6700 REGB0 = TAG_Int(12);
6701 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6702 once_value_23 = fra.me.REG[10];
6703 register_static_object(&once_value_23);
6704 } else fra.me.REG[10] = once_value_23;
6705 fra.me.REG[10] = fra.me.REG[10];
6706 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6707 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
6708 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]);
6709 /* ./syntax//mmbuilder.nit:970 */
6710 goto label4;
6711 }
6712 /* ./syntax//mmbuilder.nit:972 */
6713 fra.me.REG[8] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6714 fra.me.REG[8] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[8])(fra.me.REG[8]);
6715 /* ./../lib/standard//collection//array.nit:269 */
6716 REGB0 = TAG_Int(0);
6717 /* ./../lib/standard//collection//array.nit:270 */
6718 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6719 if (UNTAG_Bool(REGB3)) {
6720 } else {
6721 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
6722 }
6723 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6724 /* ./../lib/standard//collection//array.nit:271 */
6725 fra.me.REG[10] = ATTR_standard___collection___array___Array____items(fra.me.REG[8]);
6726 /* ./../lib/standard//collection//array.nit:272 */
6727 while(1) {
6728 /* ./../lib/standard//collection//array.nit:24 */
6729 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6730 if (UNTAG_Bool(REGB3)) {
6731 } else {
6732 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6733 }
6734 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6735 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
6736 if (UNTAG_Bool(REGB4)) {
6737 } else {
6738 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6739 }
6740 /* ./../lib/standard//kernel.nit:232 */
6741 REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB3));
6742 /* ./../lib/standard//collection//array.nit:272 */
6743 if (UNTAG_Bool(REGB3)) {
6744 /* ./../lib/standard//collection//array.nit:273 */
6745 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6746 if (UNTAG_Bool(REGB3)) {
6747 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
6748 }
6749 /* ./../lib/standard//collection//array.nit:718 */
6750 fra.me.REG[11] = ((Nit_NativeArray)fra.me.REG[10])->val[UNTAG_Int(REGB0)];
6751 /* ./syntax//mmbuilder.nit:973 */
6752 REGB3 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]);
6753 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6754 if (UNTAG_Bool(REGB4)) {
6755 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 973);
6756 }
6757 fra.me.REG[12] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB3);
6758 /* ./syntax//mmbuilder.nit:974 */
6759 CALL_syntax___mmbuilder___AParam___stype__eq(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
6760 /* ./syntax//mmbuilder.nit:975 */
6761 REGB3 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]);
6762 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6763 if (UNTAG_Bool(REGB4)) {
6764 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 975);
6765 }
6766 REGB4 = CALL_metamodel___vararg___MMSignature___vararg_rank(fra.me.REG[7])(fra.me.REG[7]);
6767 REGB5 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB4));
6768 if (UNTAG_Bool(REGB5)) {
6769 } else {
6770 /* ./../lib/standard//kernel.nit:227 */
6771 REGB4 = TAG_Bool((REGB3)==(REGB4));
6772 /* ./syntax//mmbuilder.nit:975 */
6773 REGB5 = REGB4;
6774 }
6775 if (UNTAG_Bool(REGB5)) {
6776 /* ./syntax//mmbuilder.nit:976 */
6777 fra.me.REG[13] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[12]);
6778 fra.me.REG[12] = fra.me.REG[13];
6779 }
6780 /* ./syntax//mmbuilder.nit:978 */
6781 fra.me.REG[11] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[11])(fra.me.REG[11]);
6782 CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
6783 /* ./../lib/standard//collection//array.nit:274 */
6784 REGB5 = TAG_Int(1);
6785 /* ./../lib/standard//kernel.nit:235 */
6786 REGB5 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB5));
6787 /* ./../lib/standard//collection//array.nit:274 */
6788 REGB0 = REGB5;
6789 } else {
6790 /* ./../lib/standard//collection//array.nit:272 */
6791 goto label24;
6792 }
6793 }
6794 label24: while(0);
6795 /* ./syntax//mmbuilder.nit:980 */
6796 fra.me.REG[4] = fra.me.REG[7];
6797 /* ./syntax//mmbuilder.nit:981 */
6798 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
6799 }
6800 /* ./syntax//mmbuilder.nit:985 */
6801 fra.me.REG[10] = CALL_syntax___syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
6802 REGB0 = CALL_mmloader___ToolContext___error_count(fra.me.REG[10])(fra.me.REG[10]);
6803 /* ./syntax//mmbuilder.nit:993 */
6804 REGB5 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6805 if (UNTAG_Bool(REGB5)) {
6806 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 993);
6807 }
6808 REGB5 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
6809 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6810 if (UNTAG_Bool(REGB4)) {
6811 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 993);
6812 }
6813 REGB4 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
6814 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB5,REGB4));
6815 if (UNTAG_Bool(REGB3)) {
6816 } else {
6817 /* ./../lib/standard//kernel.nit:227 */
6818 REGB4 = TAG_Bool((REGB5)==(REGB4));
6819 /* ./syntax//mmbuilder.nit:993 */
6820 REGB3 = REGB4;
6821 }
6822 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
6823 if (UNTAG_Bool(REGB3)) {
6824 /* ./syntax//mmbuilder.nit:994 */
6825 REGB3 = TAG_Int(11);
6826 fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
6827 if (!once_value_25) {
6828 fra.me.REG[8] = BOX_NativeString("Redef error: ");
6829 REGB3 = TAG_Int(13);
6830 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
6831 once_value_25 = fra.me.REG[8];
6832 register_static_object(&once_value_25);
6833 } else fra.me.REG[8] = once_value_25;
6834 fra.me.REG[8] = fra.me.REG[8];
6835 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6836 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6837 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
6838 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6839 if (!once_value_26) {
6840 fra.me.REG[8] = BOX_NativeString("::");
6841 REGB3 = TAG_Int(2);
6842 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
6843 once_value_26 = fra.me.REG[8];
6844 register_static_object(&once_value_26);
6845 } else fra.me.REG[8] = once_value_26;
6846 fra.me.REG[8] = fra.me.REG[8];
6847 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6848 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6849 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6850 if (!once_value_27) {
6851 fra.me.REG[8] = BOX_NativeString(" redefines ");
6852 REGB3 = TAG_Int(11);
6853 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
6854 once_value_27 = fra.me.REG[8];
6855 register_static_object(&once_value_27);
6856 } else fra.me.REG[8] = once_value_27;
6857 fra.me.REG[8] = fra.me.REG[8];
6858 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6859 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6860 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
6861 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6862 if (!once_value_28) {
6863 fra.me.REG[8] = BOX_NativeString("::");
6864 REGB3 = TAG_Int(2);
6865 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
6866 once_value_28 = fra.me.REG[8];
6867 register_static_object(&once_value_28);
6868 } else fra.me.REG[8] = once_value_28;
6869 fra.me.REG[8] = fra.me.REG[8];
6870 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6871 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6872 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6873 if (!once_value_29) {
6874 fra.me.REG[8] = BOX_NativeString(" with ");
6875 REGB3 = TAG_Int(6);
6876 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
6877 once_value_29 = fra.me.REG[8];
6878 register_static_object(&once_value_29);
6879 } else fra.me.REG[8] = once_value_29;
6880 fra.me.REG[8] = fra.me.REG[8];
6881 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6882 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6883 if (UNTAG_Bool(REGB3)) {
6884 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 994);
6885 }
6886 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
6887 fra.me.REG[8] = CALL_standard___string___Object___to_s(REGB3)(REGB3);
6888 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6889 if (!once_value_30) {
6890 fra.me.REG[8] = BOX_NativeString(" parameter(s).");
6891 REGB3 = TAG_Int(14);
6892 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
6893 once_value_30 = fra.me.REG[8];
6894 register_static_object(&once_value_30);
6895 } else fra.me.REG[8] = once_value_30;
6896 fra.me.REG[8] = fra.me.REG[8];
6897 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6898 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6899 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[10]);
6900 } else {
6901 /* ./syntax//mmbuilder.nit:995 */
6902 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6903 if (UNTAG_Bool(REGB3)) {
6904 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 995);
6905 }
6906 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
6907 REGB4 = TAG_Int(0);
6908 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
6909 if (UNTAG_Bool(REGB5)) {
6910 } else {
6911 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6912 }
6913 /* ./../lib/standard//kernel.nit:234 */
6914 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB4));
6915 /* ./syntax//mmbuilder.nit:995 */
6916 if (UNTAG_Bool(REGB4)) {
6917 /* ./syntax//mmbuilder.nit:996 */
6918 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AMethPropdef, ID_parser___parser_nodes___AMethPropdef)) /*cast AMethPropdef*/;
6919 if (UNTAG_Bool(REGB4)) {
6920 /* ./syntax//mmbuilder.nit:998 */
6921 REGB4 = TAG_Int(0);
6922 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6923 if (UNTAG_Bool(REGB3)) {
6924 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 998);
6925 }
6926 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
6927 /* ./../lib/standard//kernel.nit:352 */
6928 while(1) {
6929 REGB5 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
6930 if (UNTAG_Bool(REGB5)) {
6931 } else {
6932 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6933 }
6934 /* ./../lib/standard//kernel.nit:232 */
6935 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB3));
6936 /* ./../lib/standard//kernel.nit:352 */
6937 if (UNTAG_Bool(REGB5)) {
6938 /* ./syntax//mmbuilder.nit:998 */
6939 REGB5 = REGB4;
6940 /* ./syntax//mmbuilder.nit:999 */
6941 REGB6 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6942 if (UNTAG_Bool(REGB6)) {
6943 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 999);
6944 }
6945 fra.me.REG[10] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[4])(fra.me.REG[4], REGB5);
6946 REGB6 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6947 if (UNTAG_Bool(REGB6)) {
6948 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 999);
6949 }
6950 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB5);
6951 REGB6 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[10],fra.me.REG[8]));
6952 if (UNTAG_Bool(REGB6)) {
6953 } else {
6954 REGB7 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
6955 REGB6 = REGB7;
6956 }
6957 REGB6 = TAG_Bool(!UNTAG_Bool(REGB6));
6958 if (UNTAG_Bool(REGB6)) {
6959 /* ./syntax//mmbuilder.nit:1000 */
6960 fra.me.REG[8] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[0])(fra.me.REG[0]);
6961 REGB6 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
6962 if (UNTAG_Bool(REGB6)) {
6963 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1000);
6964 }
6965 fra.me.REG[8] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[8])(fra.me.REG[8]);
6966 fra.me.REG[8] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[8])(fra.me.REG[8], REGB5);
6967 REGB6 = TAG_Int(7);
6968 fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB6);
6969 if (!once_value_31) {
6970 fra.me.REG[12] = BOX_NativeString("Redef error: Expected ");
6971 REGB6 = TAG_Int(22);
6972 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB6);
6973 once_value_31 = fra.me.REG[12];
6974 register_static_object(&once_value_31);
6975 } else fra.me.REG[12] = once_value_31;
6976 fra.me.REG[12] = fra.me.REG[12];
6977 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6978 REGB6 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6979 if (UNTAG_Bool(REGB6)) {
6980 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1000);
6981 }
6982 fra.me.REG[12] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB5);
6983 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
6984 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6985 if (!once_value_32) {
6986 fra.me.REG[12] = BOX_NativeString(", as in ");
6987 REGB5 = TAG_Int(8);
6988 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB5);
6989 once_value_32 = fra.me.REG[12];
6990 register_static_object(&once_value_32);
6991 } else fra.me.REG[12] = once_value_32;
6992 fra.me.REG[12] = fra.me.REG[12];
6993 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6994 fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6995 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
6996 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6997 if (!once_value_33) {
6998 fra.me.REG[12] = BOX_NativeString("::");
6999 REGB5 = TAG_Int(2);
7000 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB5);
7001 once_value_33 = fra.me.REG[12];
7002 register_static_object(&once_value_33);
7003 } else fra.me.REG[12] = once_value_33;
7004 fra.me.REG[12] = fra.me.REG[12];
7005 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
7006 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7007 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
7008 if (!once_value_34) {
7009 fra.me.REG[12] = BOX_NativeString(".");
7010 REGB5 = TAG_Int(1);
7011 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB5);
7012 once_value_34 = fra.me.REG[12];
7013 register_static_object(&once_value_34);
7014 } else fra.me.REG[12] = once_value_34;
7015 fra.me.REG[12] = fra.me.REG[12];
7016 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
7017 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
7018 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8], fra.me.REG[10]);
7019 }
7020 /* ./../lib/standard//kernel.nit:354 */
7021 REGB5 = TAG_Int(1);
7022 /* ./../lib/standard//kernel.nit:235 */
7023 REGB5 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB5));
7024 /* ./../lib/standard//kernel.nit:354 */
7025 REGB4 = REGB5;
7026 } else {
7027 /* ./../lib/standard//kernel.nit:352 */
7028 goto label35;
7029 }
7030 }
7031 label35: while(0);
7032 } else {
7033 /* ./syntax//mmbuilder.nit:1003 */
7034 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AAttrPropdef, ID_parser___parser_nodes___AAttrPropdef)) /*cast AAttrPropdef*/;
7035 if (UNTAG_Bool(REGB4)) {
7036 /* ./syntax//mmbuilder.nit:1005 */
7037 REGB4 = TAG_Int(0);
7038 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7039 if (UNTAG_Bool(REGB3)) {
7040 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1005);
7041 }
7042 fra.me.REG[10] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[4])(fra.me.REG[4], REGB4);
7043 REGB4 = TAG_Int(0);
7044 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7045 if (UNTAG_Bool(REGB3)) {
7046 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1005);
7047 }
7048 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB4);
7049 REGB4 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[10],fra.me.REG[8]));
7050 if (UNTAG_Bool(REGB4)) {
7051 } else {
7052 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7053 REGB4 = REGB3;
7054 }
7055 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7056 if (UNTAG_Bool(REGB4)) {
7057 /* ./syntax//mmbuilder.nit:1006 */
7058 fra.me.REG[8] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[0])(fra.me.REG[0]);
7059 REGB4 = TAG_Int(7);
7060 fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
7061 if (!once_value_36) {
7062 fra.me.REG[12] = BOX_NativeString("Redef error: Expected ");
7063 REGB4 = TAG_Int(22);
7064 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
7065 once_value_36 = fra.me.REG[12];
7066 register_static_object(&once_value_36);
7067 } else fra.me.REG[12] = once_value_36;
7068 fra.me.REG[12] = fra.me.REG[12];
7069 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
7070 REGB4 = TAG_Int(0);
7071 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7072 if (UNTAG_Bool(REGB3)) {
7073 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1006);
7074 }
7075 fra.me.REG[12] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB4);
7076 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7077 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
7078 if (!once_value_37) {
7079 fra.me.REG[12] = BOX_NativeString(", as in the parameter of ");
7080 REGB4 = TAG_Int(25);
7081 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
7082 once_value_37 = fra.me.REG[12];
7083 register_static_object(&once_value_37);
7084 } else fra.me.REG[12] = once_value_37;
7085 fra.me.REG[12] = fra.me.REG[12];
7086 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
7087 fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7088 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7089 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
7090 if (!once_value_38) {
7091 fra.me.REG[12] = BOX_NativeString("::");
7092 REGB4 = TAG_Int(2);
7093 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
7094 once_value_38 = fra.me.REG[12];
7095 register_static_object(&once_value_38);
7096 } else fra.me.REG[12] = once_value_38;
7097 fra.me.REG[12] = fra.me.REG[12];
7098 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
7099 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7100 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
7101 if (!once_value_39) {
7102 fra.me.REG[12] = BOX_NativeString(".");
7103 REGB4 = TAG_Int(1);
7104 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
7105 once_value_39 = fra.me.REG[12];
7106 register_static_object(&once_value_39);
7107 } else fra.me.REG[12] = once_value_39;
7108 fra.me.REG[12] = fra.me.REG[12];
7109 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
7110 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
7111 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8], fra.me.REG[10]);
7112 }
7113 } else {
7114 /* ./syntax//mmbuilder.nit:1010 */
7115 nit_abort("Aborted", NULL, LOCATE_syntax___mmbuilder, 1010);
7116 }
7117 }
7118 }
7119 }
7120 /* ./syntax//mmbuilder.nit:1014 */
7121 REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7122 if (UNTAG_Bool(REGB4)) {
7123 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1014);
7124 }
7125 fra.me.REG[10] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[4])(fra.me.REG[4]);
7126 /* ./syntax//mmbuilder.nit:1015 */
7127 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7128 if (UNTAG_Bool(REGB4)) {
7129 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1015);
7130 }
7131 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[7])(fra.me.REG[7]);
7132 /* ./syntax//mmbuilder.nit:1016 */
7133 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7134 if (UNTAG_Bool(REGB4)) {
7135 } else {
7136 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7137 if (UNTAG_Bool(REGB3)) {
7138 REGB3 = TAG_Bool(false);
7139 REGB4 = REGB3;
7140 } else {
7141 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
7142 REGB4 = REGB3;
7143 }
7144 }
7145 if (UNTAG_Bool(REGB4)) {
7146 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7147 if (UNTAG_Bool(REGB4)) {
7148 } else {
7149 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7150 if (UNTAG_Bool(REGB3)) {
7151 REGB3 = TAG_Bool(false);
7152 REGB4 = REGB3;
7153 } else {
7154 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
7155 REGB4 = REGB3;
7156 }
7157 }
7158 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7159 } else {
7160 REGB3 = TAG_Bool(false);
7161 REGB4 = REGB3;
7162 }
7163 if (UNTAG_Bool(REGB4)) {
7164 /* ./syntax//mmbuilder.nit:1017 */
7165 REGB4 = TAG_Int(9);
7166 fra.me.REG[12] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
7167 if (!once_value_40) {
7168 fra.me.REG[11] = BOX_NativeString("Redef error: The procedure ");
7169 REGB4 = TAG_Int(27);
7170 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
7171 once_value_40 = fra.me.REG[11];
7172 register_static_object(&once_value_40);
7173 } else fra.me.REG[11] = once_value_40;
7174 fra.me.REG[11] = fra.me.REG[11];
7175 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7176 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
7177 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7178 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7179 if (!once_value_41) {
7180 fra.me.REG[11] = BOX_NativeString("::");
7181 REGB4 = TAG_Int(2);
7182 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
7183 once_value_41 = fra.me.REG[11];
7184 register_static_object(&once_value_41);
7185 } else fra.me.REG[11] = once_value_41;
7186 fra.me.REG[11] = fra.me.REG[11];
7187 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7188 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
7189 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7190 if (!once_value_42) {
7191 fra.me.REG[11] = BOX_NativeString(" redefines the function ");
7192 REGB4 = TAG_Int(24);
7193 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
7194 once_value_42 = fra.me.REG[11];
7195 register_static_object(&once_value_42);
7196 } else fra.me.REG[11] = once_value_42;
7197 fra.me.REG[11] = fra.me.REG[11];
7198 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7199 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7200 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7201 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7202 if (!once_value_43) {
7203 fra.me.REG[11] = BOX_NativeString("::");
7204 REGB4 = TAG_Int(2);
7205 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
7206 once_value_43 = fra.me.REG[11];
7207 register_static_object(&once_value_43);
7208 } else fra.me.REG[11] = once_value_43;
7209 fra.me.REG[11] = fra.me.REG[11];
7210 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7211 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7212 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7213 if (!once_value_44) {
7214 fra.me.REG[11] = BOX_NativeString(".");
7215 REGB4 = TAG_Int(1);
7216 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
7217 once_value_44 = fra.me.REG[11];
7218 register_static_object(&once_value_44);
7219 } else fra.me.REG[11] = once_value_44;
7220 fra.me.REG[11] = fra.me.REG[11];
7221 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7222 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7223 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[12]);
7224 } else {
7225 /* ./syntax//mmbuilder.nit:1018 */
7226 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7227 if (UNTAG_Bool(REGB4)) {
7228 } else {
7229 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7230 if (UNTAG_Bool(REGB3)) {
7231 REGB3 = TAG_Bool(false);
7232 REGB4 = REGB3;
7233 } else {
7234 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
7235 REGB4 = REGB3;
7236 }
7237 }
7238 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7239 if (UNTAG_Bool(REGB4)) {
7240 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7241 if (UNTAG_Bool(REGB4)) {
7242 } else {
7243 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7244 if (UNTAG_Bool(REGB3)) {
7245 REGB3 = TAG_Bool(false);
7246 REGB4 = REGB3;
7247 } else {
7248 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
7249 REGB4 = REGB3;
7250 }
7251 }
7252 } else {
7253 REGB3 = TAG_Bool(false);
7254 REGB4 = REGB3;
7255 }
7256 if (UNTAG_Bool(REGB4)) {
7257 /* ./syntax//mmbuilder.nit:1019 */
7258 REGB4 = TAG_Int(9);
7259 fra.me.REG[12] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
7260 if (!once_value_45) {
7261 fra.me.REG[11] = BOX_NativeString("Redef error: The function ");
7262 REGB4 = TAG_Int(26);
7263 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
7264 once_value_45 = fra.me.REG[11];
7265 register_static_object(&once_value_45);
7266 } else fra.me.REG[11] = once_value_45;
7267 fra.me.REG[11] = fra.me.REG[11];
7268 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7269 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
7270 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7271 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7272 if (!once_value_46) {
7273 fra.me.REG[11] = BOX_NativeString("::");
7274 REGB4 = TAG_Int(2);
7275 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
7276 once_value_46 = fra.me.REG[11];
7277 register_static_object(&once_value_46);
7278 } else fra.me.REG[11] = once_value_46;
7279 fra.me.REG[11] = fra.me.REG[11];
7280 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7281 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
7282 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7283 if (!once_value_47) {
7284 fra.me.REG[11] = BOX_NativeString(" redefines the procedure ");
7285 REGB4 = TAG_Int(25);
7286 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
7287 once_value_47 = fra.me.REG[11];
7288 register_static_object(&once_value_47);
7289 } else fra.me.REG[11] = once_value_47;
7290 fra.me.REG[11] = fra.me.REG[11];
7291 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7292 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7293 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7294 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7295 if (!once_value_48) {
7296 fra.me.REG[11] = BOX_NativeString("::");
7297 REGB4 = TAG_Int(2);
7298 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
7299 once_value_48 = fra.me.REG[11];
7300 register_static_object(&once_value_48);
7301 } else fra.me.REG[11] = once_value_48;
7302 fra.me.REG[11] = fra.me.REG[11];
7303 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7304 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7305 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7306 if (!once_value_49) {
7307 fra.me.REG[11] = BOX_NativeString(".");
7308 REGB4 = TAG_Int(1);
7309 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
7310 once_value_49 = fra.me.REG[11];
7311 register_static_object(&once_value_49);
7312 } else fra.me.REG[11] = once_value_49;
7313 fra.me.REG[11] = fra.me.REG[11];
7314 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7315 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7316 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[12]);
7317 } else {
7318 /* ./syntax//mmbuilder.nit:1020 */
7319 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7320 if (UNTAG_Bool(REGB4)) {
7321 } else {
7322 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7323 if (UNTAG_Bool(REGB3)) {
7324 REGB3 = TAG_Bool(false);
7325 REGB4 = REGB3;
7326 } else {
7327 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
7328 REGB4 = REGB3;
7329 }
7330 }
7331 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7332 if (UNTAG_Bool(REGB4)) {
7333 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7334 if (UNTAG_Bool(REGB4)) {
7335 } else {
7336 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7337 if (UNTAG_Bool(REGB3)) {
7338 REGB3 = TAG_Bool(false);
7339 REGB4 = REGB3;
7340 } else {
7341 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
7342 REGB4 = REGB3;
7343 }
7344 }
7345 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7346 } else {
7347 REGB3 = TAG_Bool(false);
7348 REGB4 = REGB3;
7349 }
7350 if (UNTAG_Bool(REGB4)) {
7351 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7352 if (UNTAG_Bool(REGB4)) {
7353 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1020);
7354 }
7355 REGB4 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7356 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7357 } else {
7358 REGB3 = TAG_Bool(false);
7359 REGB4 = REGB3;
7360 }
7361 if (UNTAG_Bool(REGB4)) {
7362 /* ./syntax//mmbuilder.nit:1021 */
7363 fra.me.REG[12] = NIT_NULL;
7364 /* ./syntax//mmbuilder.nit:1022 */
7365 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AMethPropdef, ID_parser___parser_nodes___AMethPropdef)) /*cast AMethPropdef*/;
7366 if (UNTAG_Bool(REGB4)) {
7367 /* ./syntax//mmbuilder.nit:1023 */
7368 fra.me.REG[11] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[0])(fra.me.REG[0]);
7369 REGB4 = TAG_Bool(fra.me.REG[11]==NIT_NULL);
7370 if (UNTAG_Bool(REGB4)) {
7371 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1023);
7372 }
7373 fra.me.REG[11] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[11])(fra.me.REG[11]);
7374 fra.me.REG[12] = fra.me.REG[11];
7375 } else {
7376 /* ./syntax//mmbuilder.nit:1024 */
7377 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AAttrPropdef, ID_parser___parser_nodes___AAttrPropdef)) /*cast AAttrPropdef*/;
7378 if (UNTAG_Bool(REGB4)) {
7379 /* ./syntax//mmbuilder.nit:1025 */
7380 fra.me.REG[11] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[0])(fra.me.REG[0]);
7381 fra.me.REG[12] = fra.me.REG[11];
7382 } else {
7383 /* ./syntax//mmbuilder.nit:1026 */
7384 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___ATypePropdef, ID_parser___parser_nodes___ATypePropdef)) /*cast ATypePropdef*/;
7385 if (UNTAG_Bool(REGB4)) {
7386 /* ./syntax//mmbuilder.nit:1027 */
7387 fra.me.REG[11] = CALL_parser___parser_nodes___ATypePropdef___n_type(fra.me.REG[0])(fra.me.REG[0]);
7388 fra.me.REG[12] = fra.me.REG[11];
7389 }
7390 }
7391 }
7392 /* ./syntax//mmbuilder.nit:1029 */
7393 REGB4 = TAG_Int(7);
7394 fra.me.REG[11] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
7395 if (!once_value_50) {
7396 fra.me.REG[13] = BOX_NativeString("Redef error: Expected ");
7397 REGB4 = TAG_Int(22);
7398 fra.me.REG[13] = NEW_String_standard___string___String___with_native(fra.me.REG[13], REGB4);
7399 once_value_50 = fra.me.REG[13];
7400 register_static_object(&once_value_50);
7401 } else fra.me.REG[13] = once_value_50;
7402 fra.me.REG[13] = fra.me.REG[13];
7403 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[13]);
7404 fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
7405 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[13]);
7406 if (!once_value_51) {
7407 fra.me.REG[13] = BOX_NativeString(", as in ");
7408 REGB4 = TAG_Int(8);
7409 fra.me.REG[13] = NEW_String_standard___string___String___with_native(fra.me.REG[13], REGB4);
7410 once_value_51 = fra.me.REG[13];
7411 register_static_object(&once_value_51);
7412 } else fra.me.REG[13] = once_value_51;
7413 fra.me.REG[13] = fra.me.REG[13];
7414 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[13]);
7415 fra.me.REG[13] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7416 fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[13])(fra.me.REG[13]);
7417 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[13]);
7418 if (!once_value_52) {
7419 fra.me.REG[13] = BOX_NativeString("::");
7420 REGB4 = TAG_Int(2);
7421 fra.me.REG[13] = NEW_String_standard___string___String___with_native(fra.me.REG[13], REGB4);
7422 once_value_52 = fra.me.REG[13];
7423 register_static_object(&once_value_52);
7424 } else fra.me.REG[13] = once_value_52;
7425 fra.me.REG[13] = fra.me.REG[13];
7426 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[13]);
7427 fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7428 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[13]);
7429 if (!once_value_53) {
7430 fra.me.REG[13] = BOX_NativeString(".");
7431 REGB4 = TAG_Int(1);
7432 fra.me.REG[13] = NEW_String_standard___string___String___with_native(fra.me.REG[13], REGB4);
7433 once_value_53 = fra.me.REG[13];
7434 register_static_object(&once_value_53);
7435 } else fra.me.REG[13] = once_value_53;
7436 fra.me.REG[13] = fra.me.REG[13];
7437 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[13]);
7438 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7439 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[12], fra.me.REG[11]);
7440 } else {
7441 /* ./syntax//mmbuilder.nit:1030 */
7442 REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7443 if (UNTAG_Bool(REGB4)) {
7444 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1030);
7445 }
7446 REGB4 = CALL_metamodel___static_type___MMSignature_____l(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
7447 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7448 if (UNTAG_Bool(REGB4)) {
7449 fra.me.REG[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
7450 REGB4 = CALL_mmloader___ToolContext___error_count(fra.me.REG[7])(fra.me.REG[7]);
7451 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB4));
7452 if (UNTAG_Bool(REGB3)) {
7453 } else {
7454 /* ./../lib/standard//kernel.nit:227 */
7455 REGB4 = TAG_Bool((REGB0)==(REGB4));
7456 /* ./syntax//mmbuilder.nit:1030 */
7457 REGB3 = REGB4;
7458 }
7459 } else {
7460 REGB4 = TAG_Bool(false);
7461 REGB3 = REGB4;
7462 }
7463 if (UNTAG_Bool(REGB3)) {
7464 /* ./syntax//mmbuilder.nit:1032 */
7465 REGB3 = TAG_Int(9);
7466 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
7467 if (!once_value_54) {
7468 fra.me.REG[11] = BOX_NativeString("Redef error: Incompatible redefinition of ");
7469 REGB3 = TAG_Int(42);
7470 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB3);
7471 once_value_54 = fra.me.REG[11];
7472 register_static_object(&once_value_54);
7473 } else fra.me.REG[11] = once_value_54;
7474 fra.me.REG[11] = fra.me.REG[11];
7475 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7476 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7477 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7478 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7479 if (!once_value_55) {
7480 fra.me.REG[11] = BOX_NativeString("::");
7481 REGB3 = TAG_Int(2);
7482 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB3);
7483 once_value_55 = fra.me.REG[11];
7484 register_static_object(&once_value_55);
7485 } else fra.me.REG[11] = once_value_55;
7486 fra.me.REG[11] = fra.me.REG[11];
7487 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7488 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7489 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7490 if (!once_value_56) {
7491 fra.me.REG[11] = BOX_NativeString(" with ");
7492 REGB3 = TAG_Int(6);
7493 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB3);
7494 once_value_56 = fra.me.REG[11];
7495 register_static_object(&once_value_56);
7496 } else fra.me.REG[11] = once_value_56;
7497 fra.me.REG[11] = fra.me.REG[11];
7498 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7499 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
7500 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7501 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7502 if (!once_value_57) {
7503 fra.me.REG[11] = BOX_NativeString("::");
7504 REGB3 = TAG_Int(2);
7505 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB3);
7506 once_value_57 = fra.me.REG[11];
7507 register_static_object(&once_value_57);
7508 } else fra.me.REG[11] = once_value_57;
7509 fra.me.REG[11] = fra.me.REG[11];
7510 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7511 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
7512 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7513 if (!once_value_58) {
7514 fra.me.REG[11] = BOX_NativeString("");
7515 REGB3 = TAG_Int(0);
7516 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB3);
7517 once_value_58 = fra.me.REG[11];
7518 register_static_object(&once_value_58);
7519 } else fra.me.REG[11] = once_value_58;
7520 fra.me.REG[11] = fra.me.REG[11];
7521 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[11]);
7522 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
7523 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[7]);
7524 } else {
7525 /* ./syntax//mmbuilder.nit:1033 */
7526 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7527 if (UNTAG_Bool(REGB3)) {
7528 } else {
7529 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7530 if (UNTAG_Bool(REGB4)) {
7531 REGB4 = TAG_Bool(false);
7532 REGB3 = REGB4;
7533 } else {
7534 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
7535 REGB3 = REGB4;
7536 }
7537 }
7538 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7539 if (UNTAG_Bool(REGB3)) {
7540 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7541 if (UNTAG_Bool(REGB3)) {
7542 } else {
7543 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7544 if (UNTAG_Bool(REGB4)) {
7545 REGB4 = TAG_Bool(false);
7546 REGB3 = REGB4;
7547 } else {
7548 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
7549 REGB3 = REGB4;
7550 }
7551 }
7552 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7553 } else {
7554 REGB4 = TAG_Bool(false);
7555 REGB3 = REGB4;
7556 }
7557 if (UNTAG_Bool(REGB3)) {
7558 REGB3 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[10],fra.me.REG[8]));
7559 if (UNTAG_Bool(REGB3)) {
7560 } else {
7561 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7562 if (UNTAG_Bool(REGB4)) {
7563 REGB4 = TAG_Bool(false);
7564 REGB3 = REGB4;
7565 } else {
7566 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7567 REGB3 = REGB4;
7568 }
7569 }
7570 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7571 } else {
7572 REGB4 = TAG_Bool(false);
7573 REGB3 = REGB4;
7574 }
7575 if (UNTAG_Bool(REGB3)) {
7576 REGB3 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_metamodel___abstractmetamodel___MMAttribute, ID_metamodel___abstractmetamodel___MMAttribute)) /*cast MMAttribute*/;
7577 } else {
7578 REGB4 = TAG_Bool(false);
7579 REGB3 = REGB4;
7580 }
7581 if (UNTAG_Bool(REGB3)) {
7582 /* ./syntax//mmbuilder.nit:1035 */
7583 REGB3 = TAG_Int(7);
7584 fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
7585 if (!once_value_59) {
7586 fra.me.REG[7] = BOX_NativeString("Redef warning: Expected ");
7587 REGB3 = TAG_Int(24);
7588 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB3);
7589 once_value_59 = fra.me.REG[7];
7590 register_static_object(&once_value_59);
7591 } else fra.me.REG[7] = once_value_59;
7592 fra.me.REG[7] = fra.me.REG[7];
7593 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
7594 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
7595 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7596 if (!once_value_60) {
7597 fra.me.REG[8] = BOX_NativeString(", as in ");
7598 REGB3 = TAG_Int(8);
7599 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
7600 once_value_60 = fra.me.REG[8];
7601 register_static_object(&once_value_60);
7602 } else fra.me.REG[8] = once_value_60;
7603 fra.me.REG[8] = fra.me.REG[8];
7604 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7605 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7606 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
7607 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7608 if (!once_value_61) {
7609 fra.me.REG[8] = BOX_NativeString("::");
7610 REGB3 = TAG_Int(2);
7611 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
7612 once_value_61 = fra.me.REG[8];
7613 register_static_object(&once_value_61);
7614 } else fra.me.REG[8] = once_value_61;
7615 fra.me.REG[8] = fra.me.REG[8];
7616 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7617 fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7618 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[9]);
7619 if (!once_value_62) {
7620 fra.me.REG[9] = BOX_NativeString(".");
7621 REGB3 = TAG_Int(1);
7622 fra.me.REG[9] = NEW_String_standard___string___String___with_native(fra.me.REG[9], REGB3);
7623 once_value_62 = fra.me.REG[9];
7624 register_static_object(&once_value_62);
7625 } else fra.me.REG[9] = once_value_62;
7626 fra.me.REG[9] = fra.me.REG[9];
7627 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[9]);
7628 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
7629 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[10]);
7630 }
7631 }
7632 }
7633 }
7634 }
7635 /* ./../lib/standard//collection//array.nit:274 */
7636 REGB3 = TAG_Int(1);
7637 /* ./../lib/standard//kernel.nit:235 */
7638 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
7639 /* ./../lib/standard//collection//array.nit:274 */
7640 REGB2 = REGB3;
7641 } else {
7642 /* ./../lib/standard//collection//array.nit:272 */
7643 goto label63;
7644 }
7645 }
7646 label63: while(0);
7647 label11: while(0);
7648 /* ./syntax//mmbuilder.nit:1039 */
7649 REGB2 = TAG_Int(1);
7650 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
7651 if (UNTAG_Bool(REGB3)) {
7652 } else {
7653 /* ./../lib/standard//kernel.nit:227 */
7654 REGB2 = TAG_Bool((REGB1)==(REGB2));
7655 /* ./syntax//mmbuilder.nit:1039 */
7656 REGB3 = REGB2;
7657 }
7658 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7659 if (UNTAG_Bool(REGB3)) {
7660 REGB3 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
7661 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB1));
7662 if (UNTAG_Bool(REGB2)) {
7663 } else {
7664 /* ./../lib/standard//kernel.nit:227 */
7665 REGB1 = TAG_Bool((REGB3)==(REGB1));
7666 /* ./syntax//mmbuilder.nit:1039 */
7667 REGB2 = REGB1;
7668 }
7669 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
7670 } else {
7671 REGB1 = TAG_Bool(false);
7672 REGB2 = REGB1;
7673 }
7674 if (UNTAG_Bool(REGB2)) {
7675 /* ./syntax//mmbuilder.nit:1040 */
7676 REGB2 = TAG_Int(5);
7677 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
7678 if (!once_value_64) {
7679 fra.me.REG[6] = BOX_NativeString("Redef error: ");
7680 REGB2 = TAG_Int(13);
7681 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
7682 once_value_64 = fra.me.REG[6];
7683 register_static_object(&once_value_64);
7684 } else fra.me.REG[6] = once_value_64;
7685 fra.me.REG[6] = fra.me.REG[6];
7686 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
7687 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
7688 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7689 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
7690 if (!once_value_65) {
7691 fra.me.REG[6] = BOX_NativeString("::");
7692 REGB2 = TAG_Int(2);
7693 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
7694 once_value_65 = fra.me.REG[6];
7695 register_static_object(&once_value_65);
7696 } else fra.me.REG[6] = once_value_65;
7697 fra.me.REG[6] = fra.me.REG[6];
7698 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
7699 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
7700 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
7701 if (!once_value_66) {
7702 fra.me.REG[2] = BOX_NativeString(" redefinition cannot change visibility.");
7703 REGB2 = TAG_Int(39);
7704 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB2);
7705 once_value_66 = fra.me.REG[2];
7706 register_static_object(&once_value_66);
7707 } else fra.me.REG[2] = once_value_66;
7708 fra.me.REG[2] = fra.me.REG[2];
7709 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
7710 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
7711 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
7712 }
7713 /* ./syntax//mmbuilder.nit:1042 */
7714 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
7715 REGB2 = TAG_Bool(true);
7716 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);
7717 label4: while(0);
7718 stack_frame_head = fra.me.prev;
7719 return;
7720 }
7721 val_t syntax___mmbuilder___AAttrPropdef___readmethod(val_t p0){
7722 struct {struct stack_frame_t me;} fra;
7723 val_t tmp;
7724 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7725 fra.me.file = LOCATE_syntax___mmbuilder;
7726 fra.me.line = 1047;
7727 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___readmethod;
7728 fra.me.has_broke = 0;
7729 fra.me.REG_size = 1;
7730 fra.me.REG[0] = NIT_NULL;
7731 fra.me.REG[0] = p0;
7732 /* ./syntax//mmbuilder.nit:1047 */
7733 fra.me.REG[0] = ATTR_syntax___mmbuilder___AAttrPropdef____readmethod(fra.me.REG[0]);
7734 stack_frame_head = fra.me.prev;
7735 return fra.me.REG[0];
7736 }
7737 val_t syntax___mmbuilder___AAttrPropdef___writemethod(val_t p0){
7738 struct {struct stack_frame_t me;} fra;
7739 val_t tmp;
7740 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7741 fra.me.file = LOCATE_syntax___mmbuilder;
7742 fra.me.line = 1048;
7743 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___writemethod;
7744 fra.me.has_broke = 0;
7745 fra.me.REG_size = 1;
7746 fra.me.REG[0] = NIT_NULL;
7747 fra.me.REG[0] = p0;
7748 /* ./syntax//mmbuilder.nit:1048 */
7749 fra.me.REG[0] = ATTR_syntax___mmbuilder___AAttrPropdef____writemethod(fra.me.REG[0]);
7750 stack_frame_head = fra.me.prev;
7751 return fra.me.REG[0];
7752 }
7753 val_t syntax___mmbuilder___AAttrPropdef___prop(val_t p0){
7754 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
7755 val_t REGB0;
7756 val_t tmp;
7757 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7758 fra.me.file = LOCATE_syntax___mmbuilder;
7759 fra.me.line = 1050;
7760 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___prop;
7761 fra.me.has_broke = 0;
7762 fra.me.REG_size = 2;
7763 fra.me.REG[0] = NIT_NULL;
7764 fra.me.REG[1] = NIT_NULL;
7765 fra.me.REG[0] = p0;
7766 /* ./syntax//mmbuilder.nit:1050 */
7767 fra.me.REG[1] = fra.me.REG[0];
7768 fra.me.REG[1] = ATTR_syntax___mmbuilder___AAttrPropdef____prop(fra.me.REG[1]);
7769 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
7770 if (UNTAG_Bool(REGB0)) {
7771 } else {
7772 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1050);
7773 }
7774 goto label1;
7775 label1: while(0);
7776 stack_frame_head = fra.me.prev;
7777 return fra.me.REG[1];
7778 }
7779 void syntax___mmbuilder___AAttrPropdef___accept_property_builder(val_t p0, val_t p1){
7780 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
7781 val_t REGB0;
7782 val_t REGB1;
7783 val_t REGB2;
7784 val_t tmp;
7785 static val_t once_value_1; /* Once value */
7786 static val_t once_value_2; /* Once value */
7787 static val_t once_value_3; /* Once value */
7788 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7789 fra.me.file = LOCATE_syntax___mmbuilder;
7790 fra.me.line = 1052;
7791 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___accept_property_builder;
7792 fra.me.has_broke = 0;
7793 fra.me.REG_size = 6;
7794 fra.me.REG[0] = NIT_NULL;
7795 fra.me.REG[1] = NIT_NULL;
7796 fra.me.REG[2] = NIT_NULL;
7797 fra.me.REG[3] = NIT_NULL;
7798 fra.me.REG[4] = NIT_NULL;
7799 fra.me.REG[5] = NIT_NULL;
7800 fra.me.REG[0] = p0;
7801 fra.me.REG[1] = p1;
7802 /* ./syntax//mmbuilder.nit:1052 */
7803 fra.me.REG[2] = fra.me.REG[0];
7804 fra.me.REG[3] = fra.me.REG[1];
7805 /* ./syntax//mmbuilder.nit:1054 */
7806 CALL_SUPER_syntax___mmbuilder___AAttrPropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
7807 /* ./syntax//mmbuilder.nit:1056 */
7808 fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7809 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7810 if (UNTAG_Bool(REGB0)) {
7811 } else {
7812 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7813 if (UNTAG_Bool(REGB1)) {
7814 REGB1 = TAG_Bool(false);
7815 REGB0 = REGB1;
7816 } else {
7817 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7818 REGB0 = REGB1;
7819 }
7820 }
7821 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7822 if (UNTAG_Bool(REGB0)) {
7823 /* ./syntax//mmbuilder.nit:1057 */
7824 fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7825 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7826 if (UNTAG_Bool(REGB0)) {
7827 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1057);
7828 }
7829 fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
7830 } else {
7831 /* ./syntax//mmbuilder.nit:1059 */
7832 if (!once_value_1) {
7833 fra.me.REG[0] = BOX_NativeString("@");
7834 REGB0 = TAG_Int(1);
7835 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
7836 once_value_1 = fra.me.REG[0];
7837 register_static_object(&once_value_1);
7838 } else fra.me.REG[0] = once_value_1;
7839 fra.me.REG[0] = fra.me.REG[0];
7840 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
7841 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7842 if (UNTAG_Bool(REGB0)) {
7843 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1059);
7844 }
7845 fra.me.REG[4] = CALL_parser___lexer___Token___text(fra.me.REG[4])(fra.me.REG[4]);
7846 fra.me.REG[4] = CALL_standard___string___String_____plus(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
7847 fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
7848 fra.me.REG[1] = fra.me.REG[4];
7849 }
7850 /* ./syntax//mmbuilder.nit:1061 */
7851 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
7852 /* ./syntax//mmbuilder.nit:1062 */
7853 fra.me.REG[0] = NEW_MMSrcAttribute_syntax___syntax_base___MMSrcAttribute___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
7854 /* ./syntax//mmbuilder.nit:1063 */
7855 ATTR_syntax___mmbuilder___AAttrPropdef____prop(fra.me.REG[2]) = fra.me.REG[0];
7856 /* ./syntax//mmbuilder.nit:1064 */
7857 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
7858 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[0]);
7859 /* ./syntax//mmbuilder.nit:1066 */
7860 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
7861 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7862 if (UNTAG_Bool(REGB0)) {
7863 } else {
7864 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7865 if (UNTAG_Bool(REGB1)) {
7866 REGB1 = TAG_Bool(false);
7867 REGB0 = REGB1;
7868 } else {
7869 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7870 REGB0 = REGB1;
7871 }
7872 }
7873 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7874 if (UNTAG_Bool(REGB0)) {
7875 REGB0 = TAG_Bool(true);
7876 } else {
7877 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7878 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7879 if (UNTAG_Bool(REGB1)) {
7880 } else {
7881 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7882 if (UNTAG_Bool(REGB2)) {
7883 REGB2 = TAG_Bool(false);
7884 REGB1 = REGB2;
7885 } else {
7886 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7887 REGB1 = REGB2;
7888 }
7889 }
7890 REGB0 = REGB1;
7891 }
7892 if (UNTAG_Bool(REGB0)) {
7893 /* ./syntax//mmbuilder.nit:1067 */
7894 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7895 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7896 if (UNTAG_Bool(REGB0)) {
7897 } else {
7898 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7899 if (UNTAG_Bool(REGB1)) {
7900 REGB1 = TAG_Bool(false);
7901 REGB0 = REGB1;
7902 } else {
7903 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7904 REGB0 = REGB1;
7905 }
7906 }
7907 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7908 if (UNTAG_Bool(REGB0)) {
7909 /* ./syntax//mmbuilder.nit:1068 */
7910 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7911 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7912 if (UNTAG_Bool(REGB0)) {
7913 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1068);
7914 }
7915 fra.me.REG[0] = CALL_parser___lexer___Token___text(fra.me.REG[0])(fra.me.REG[0]);
7916 REGB0 = TAG_Int(1);
7917 fra.me.REG[0] = CALL_standard___string___AbstractString___substring_from(fra.me.REG[0])(fra.me.REG[0], REGB0);
7918 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
7919 fra.me.REG[1] = fra.me.REG[0];
7920 } else {
7921 /* ./syntax//mmbuilder.nit:1070 */
7922 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
7923 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7924 if (UNTAG_Bool(REGB0)) {
7925 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1070);
7926 }
7927 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
7928 fra.me.REG[1] = fra.me.REG[0];
7929 }
7930 /* ./syntax//mmbuilder.nit:1072 */
7931 fra.me.REG[0] = NEW_MMReadImplementationMethod_syntax___syntax_base___MMReadImplementationMethod___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
7932 /* ./syntax//mmbuilder.nit:1073 */
7933 ATTR_syntax___mmbuilder___AAttrPropdef____readmethod(fra.me.REG[2]) = fra.me.REG[0];
7934 /* ./syntax//mmbuilder.nit:1074 */
7935 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
7936 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[0]);
7937 }
7938 /* ./syntax//mmbuilder.nit:1076 */
7939 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
7940 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7941 if (UNTAG_Bool(REGB0)) {
7942 } else {
7943 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7944 if (UNTAG_Bool(REGB1)) {
7945 REGB1 = TAG_Bool(false);
7946 REGB0 = REGB1;
7947 } else {
7948 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7949 REGB0 = REGB1;
7950 }
7951 }
7952 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7953 if (UNTAG_Bool(REGB0)) {
7954 REGB0 = TAG_Bool(true);
7955 } else {
7956 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7957 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7958 if (UNTAG_Bool(REGB1)) {
7959 } else {
7960 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7961 if (UNTAG_Bool(REGB2)) {
7962 REGB2 = TAG_Bool(false);
7963 REGB1 = REGB2;
7964 } else {
7965 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7966 REGB1 = REGB2;
7967 }
7968 }
7969 REGB0 = REGB1;
7970 }
7971 if (UNTAG_Bool(REGB0)) {
7972 /* ./syntax//mmbuilder.nit:1077 */
7973 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7974 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7975 if (UNTAG_Bool(REGB0)) {
7976 } else {
7977 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7978 if (UNTAG_Bool(REGB1)) {
7979 REGB1 = TAG_Bool(false);
7980 REGB0 = REGB1;
7981 } else {
7982 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
7983 REGB0 = REGB1;
7984 }
7985 }
7986 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7987 if (UNTAG_Bool(REGB0)) {
7988 /* ./syntax//mmbuilder.nit:1078 */
7989 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7990 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
7991 if (UNTAG_Bool(REGB0)) {
7992 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1078);
7993 }
7994 fra.me.REG[0] = CALL_parser___lexer___Token___text(fra.me.REG[0])(fra.me.REG[0]);
7995 REGB0 = TAG_Int(1);
7996 fra.me.REG[0] = CALL_standard___string___AbstractString___substring_from(fra.me.REG[0])(fra.me.REG[0], REGB0);
7997 if (!once_value_2) {
7998 fra.me.REG[5] = BOX_NativeString("=");
7999 REGB0 = TAG_Int(1);
8000 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
8001 once_value_2 = fra.me.REG[5];
8002 register_static_object(&once_value_2);
8003 } else fra.me.REG[5] = once_value_2;
8004 fra.me.REG[5] = fra.me.REG[5];
8005 fra.me.REG[5] = CALL_standard___string___String_____plus(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
8006 fra.me.REG[5] = CALL_standard___symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
8007 fra.me.REG[1] = fra.me.REG[5];
8008 } else {
8009 /* ./syntax//mmbuilder.nit:1080 */
8010 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
8011 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8012 if (UNTAG_Bool(REGB0)) {
8013 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1080);
8014 }
8015 fra.me.REG[5] = CALL_parser___lexer___Token___text(fra.me.REG[5])(fra.me.REG[5]);
8016 if (!once_value_3) {
8017 fra.me.REG[0] = BOX_NativeString("=");
8018 REGB0 = TAG_Int(1);
8019 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
8020 once_value_3 = fra.me.REG[0];
8021 register_static_object(&once_value_3);
8022 } else fra.me.REG[0] = once_value_3;
8023 fra.me.REG[0] = fra.me.REG[0];
8024 fra.me.REG[0] = CALL_standard___string___String_____plus(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
8025 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
8026 fra.me.REG[1] = fra.me.REG[0];
8027 }
8028 /* ./syntax//mmbuilder.nit:1082 */
8029 fra.me.REG[4] = NEW_MMWriteImplementationMethod_syntax___syntax_base___MMWriteImplementationMethod___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
8030 /* ./syntax//mmbuilder.nit:1083 */
8031 ATTR_syntax___mmbuilder___AAttrPropdef____writemethod(fra.me.REG[2]) = fra.me.REG[4];
8032 /* ./syntax//mmbuilder.nit:1084 */
8033 fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8034 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
8035 }
8036 stack_frame_head = fra.me.prev;
8037 return;
8038 }
8039 void syntax___mmbuilder___AAttrPropdef___accept_property_verifier(val_t p0, val_t p1){
8040 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
8041 val_t REGB0;
8042 val_t REGB1;
8043 val_t REGB2;
8044 val_t REGB3;
8045 val_t tmp;
8046 static val_t once_value_2; /* Once value */
8047 static val_t once_value_3; /* Once value */
8048 static val_t once_value_4; /* Once value */
8049 static val_t once_value_5; /* Once value */
8050 static val_t once_value_6; /* Once value */
8051 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8052 fra.me.file = LOCATE_syntax___mmbuilder;
8053 fra.me.line = 1088;
8054 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___accept_property_verifier;
8055 fra.me.has_broke = 0;
8056 fra.me.REG_size = 7;
8057 fra.me.REG[0] = NIT_NULL;
8058 fra.me.REG[1] = NIT_NULL;
8059 fra.me.REG[2] = NIT_NULL;
8060 fra.me.REG[3] = NIT_NULL;
8061 fra.me.REG[4] = NIT_NULL;
8062 fra.me.REG[5] = NIT_NULL;
8063 fra.me.REG[6] = NIT_NULL;
8064 fra.me.REG[0] = p0;
8065 fra.me.REG[1] = p1;
8066 /* ./syntax//mmbuilder.nit:1088 */
8067 fra.me.REG[2] = fra.me.REG[0];
8068 fra.me.REG[3] = fra.me.REG[1];
8069 /* ./syntax//mmbuilder.nit:1090 */
8070 CALL_SUPER_syntax___mmbuilder___AAttrPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8071 /* ./syntax//mmbuilder.nit:1092 */
8072 fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8073 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8074 if (UNTAG_Bool(REGB0)) {
8075 } else {
8076 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8077 if (UNTAG_Bool(REGB1)) {
8078 REGB1 = TAG_Bool(false);
8079 REGB0 = REGB1;
8080 } else {
8081 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8082 REGB0 = REGB1;
8083 }
8084 }
8085 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8086 if (UNTAG_Bool(REGB0)) {
8087 /* ./syntax//mmbuilder.nit:1093 */
8088 fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8089 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8090 if (UNTAG_Bool(REGB0)) {
8091 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1093);
8092 }
8093 fra.me.REG[1] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8094 /* ./syntax//mmbuilder.nit:1094 */
8095 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8096 if (UNTAG_Bool(REGB0)) {
8097 } else {
8098 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8099 if (UNTAG_Bool(REGB1)) {
8100 REGB1 = TAG_Bool(false);
8101 REGB0 = REGB1;
8102 } else {
8103 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8104 REGB0 = REGB1;
8105 }
8106 }
8107 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8108 if (UNTAG_Bool(REGB0)) {
8109 } else {
8110 goto label1;
8111 }
8112 } else {
8113 /* ./syntax//mmbuilder.nit:1096 */
8114 REGB0 = TAG_Int(5);
8115 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
8116 if (!once_value_2) {
8117 fra.me.REG[5] = BOX_NativeString("Not yet implemented: Attribute definition ");
8118 REGB0 = TAG_Int(42);
8119 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
8120 once_value_2 = fra.me.REG[5];
8121 register_static_object(&once_value_2);
8122 } else fra.me.REG[5] = once_value_2;
8123 fra.me.REG[5] = fra.me.REG[5];
8124 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
8125 fra.me.REG[5] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
8126 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[5])(fra.me.REG[5]);
8127 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
8128 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
8129 if (!once_value_3) {
8130 fra.me.REG[5] = BOX_NativeString("::");
8131 REGB0 = TAG_Int(2);
8132 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
8133 once_value_3 = fra.me.REG[5];
8134 register_static_object(&once_value_3);
8135 } else fra.me.REG[5] = once_value_3;
8136 fra.me.REG[5] = fra.me.REG[5];
8137 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
8138 fra.me.REG[5] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
8139 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
8140 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
8141 if (!once_value_4) {
8142 fra.me.REG[5] = BOX_NativeString(" requires an explicit type.");
8143 REGB0 = TAG_Int(27);
8144 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
8145 once_value_4 = fra.me.REG[5];
8146 register_static_object(&once_value_4);
8147 } else fra.me.REG[5] = once_value_4;
8148 fra.me.REG[5] = fra.me.REG[5];
8149 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
8150 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
8151 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]);
8152 /* ./syntax//mmbuilder.nit:1097 */
8153 goto label1;
8154 }
8155 /* ./syntax//mmbuilder.nit:1100 */
8156 fra.me.REG[4] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
8157 /* ./syntax//mmbuilder.nit:1101 */
8158 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
8159 fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8160 fra.me.REG[6] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[6])(fra.me.REG[6]);
8161 fra.me.REG[6] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[5], fra.me.REG[1], fra.me.REG[6]);
8162 /* ./syntax//mmbuilder.nit:1102 */
8163 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
8164 /* ./syntax//mmbuilder.nit:1103 */
8165 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
8166 REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[5])(fra.me.REG[5]);
8167 /* ./syntax//mmbuilder.nit:1104 */
8168 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8169 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8170 if (UNTAG_Bool(REGB1)) {
8171 } else {
8172 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8173 if (UNTAG_Bool(REGB2)) {
8174 REGB2 = TAG_Bool(false);
8175 REGB1 = REGB2;
8176 } else {
8177 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
8178 REGB1 = REGB2;
8179 }
8180 }
8181 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8182 if (UNTAG_Bool(REGB1)) {
8183 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
8184 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8185 if (UNTAG_Bool(REGB1)) {
8186 } else {
8187 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8188 if (UNTAG_Bool(REGB2)) {
8189 REGB2 = TAG_Bool(false);
8190 REGB1 = REGB2;
8191 } else {
8192 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
8193 REGB1 = REGB2;
8194 }
8195 }
8196 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8197 } else {
8198 REGB2 = TAG_Bool(false);
8199 REGB1 = REGB2;
8200 }
8201 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);
8202 /* ./syntax//mmbuilder.nit:1105 */
8203 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
8204 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8205 if (UNTAG_Bool(REGB1)) {
8206 } else {
8207 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8208 if (UNTAG_Bool(REGB2)) {
8209 REGB2 = TAG_Bool(false);
8210 REGB1 = REGB2;
8211 } else {
8212 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8213 REGB1 = REGB2;
8214 }
8215 }
8216 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8217 if (UNTAG_Bool(REGB1)) {
8218 REGB1 = TAG_Bool(true);
8219 } else {
8220 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8221 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8222 if (UNTAG_Bool(REGB2)) {
8223 } else {
8224 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8225 if (UNTAG_Bool(REGB3)) {
8226 REGB3 = TAG_Bool(false);
8227 REGB2 = REGB3;
8228 } else {
8229 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8230 REGB2 = REGB3;
8231 }
8232 }
8233 REGB1 = REGB2;
8234 }
8235 if (UNTAG_Bool(REGB1)) {
8236 /* ./syntax//mmbuilder.nit:1106 */
8237 fra.me.REG[4] = ATTR_syntax___mmbuilder___AAttrPropdef____readmethod(fra.me.REG[2]);
8238 REGB1 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8239 if (UNTAG_Bool(REGB1)) {
8240 } else {
8241 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1106);
8242 }
8243 /* ./syntax//mmbuilder.nit:1107 */
8244 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
8245 /* ./syntax//mmbuilder.nit:1108 */
8246 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
8247 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8248 if (UNTAG_Bool(REGB1)) {
8249 } else {
8250 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8251 if (UNTAG_Bool(REGB2)) {
8252 REGB2 = TAG_Bool(false);
8253 REGB1 = REGB2;
8254 } else {
8255 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8256 REGB1 = REGB2;
8257 }
8258 }
8259 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8260 if (UNTAG_Bool(REGB1)) {
8261 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
8262 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8263 if (UNTAG_Bool(REGB1)) {
8264 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1108);
8265 }
8266 fra.me.REG[6] = CALL_parser___parser_nodes___AAble___n_kwredef(fra.me.REG[6])(fra.me.REG[6]);
8267 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8268 if (UNTAG_Bool(REGB1)) {
8269 } else {
8270 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8271 if (UNTAG_Bool(REGB2)) {
8272 REGB2 = TAG_Bool(false);
8273 REGB1 = REGB2;
8274 } else {
8275 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8276 REGB1 = REGB2;
8277 }
8278 }
8279 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8280 } else {
8281 REGB2 = TAG_Bool(false);
8282 REGB1 = REGB2;
8283 }
8284 if (UNTAG_Bool(REGB1)) {
8285 REGB1 = TAG_Bool(true);
8286 } else {
8287 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8288 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8289 if (UNTAG_Bool(REGB2)) {
8290 } else {
8291 REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8292 if (UNTAG_Bool(REGB3)) {
8293 REGB3 = TAG_Bool(false);
8294 REGB2 = REGB3;
8295 } else {
8296 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8297 REGB2 = REGB3;
8298 }
8299 }
8300 if (UNTAG_Bool(REGB2)) {
8301 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
8302 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8303 if (UNTAG_Bool(REGB2)) {
8304 } else {
8305 REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8306 if (UNTAG_Bool(REGB3)) {
8307 REGB3 = TAG_Bool(false);
8308 REGB2 = REGB3;
8309 } else {
8310 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8311 REGB2 = REGB3;
8312 }
8313 }
8314 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
8315 } else {
8316 REGB3 = TAG_Bool(false);
8317 REGB2 = REGB3;
8318 }
8319 REGB1 = REGB2;
8320 }
8321 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);
8322 /* ./syntax//mmbuilder.nit:1109 */
8323 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8324 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8325 if (UNTAG_Bool(REGB1)) {
8326 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1109);
8327 }
8328 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3], fra.me.REG[4]);
8329 }
8330 /* ./syntax//mmbuilder.nit:1111 */
8331 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8332 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8333 if (UNTAG_Bool(REGB1)) {
8334 } else {
8335 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8336 if (UNTAG_Bool(REGB2)) {
8337 REGB2 = TAG_Bool(false);
8338 REGB1 = REGB2;
8339 } else {
8340 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8341 REGB1 = REGB2;
8342 }
8343 }
8344 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8345 if (UNTAG_Bool(REGB1)) {
8346 REGB1 = TAG_Bool(true);
8347 } else {
8348 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8349 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8350 if (UNTAG_Bool(REGB2)) {
8351 } else {
8352 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8353 if (UNTAG_Bool(REGB3)) {
8354 REGB3 = TAG_Bool(false);
8355 REGB2 = REGB3;
8356 } else {
8357 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8358 REGB2 = REGB3;
8359 }
8360 }
8361 REGB1 = REGB2;
8362 }
8363 if (UNTAG_Bool(REGB1)) {
8364 /* ./syntax//mmbuilder.nit:1112 */
8365 fra.me.REG[4] = ATTR_syntax___mmbuilder___AAttrPropdef____writemethod(fra.me.REG[2]);
8366 REGB1 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8367 if (UNTAG_Bool(REGB1)) {
8368 } else {
8369 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1112);
8370 }
8371 /* ./syntax//mmbuilder.nit:1113 */
8372 REGB1 = TAG_Int(0);
8373 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8374 if (!once_value_5) {
8375 if (!once_value_6) {
8376 fra.me.REG[6] = BOX_NativeString("value");
8377 REGB1 = TAG_Int(5);
8378 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8379 once_value_6 = fra.me.REG[6];
8380 register_static_object(&once_value_6);
8381 } else fra.me.REG[6] = once_value_6;
8382 fra.me.REG[6] = fra.me.REG[6];
8383 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8384 once_value_5 = fra.me.REG[6];
8385 register_static_object(&once_value_5);
8386 } else fra.me.REG[6] = once_value_5;
8387 fra.me.REG[6] = fra.me.REG[6];
8388 fra.me.REG[6] = NEW_MMParam_metamodel___static_type___MMParam___init(fra.me.REG[1], fra.me.REG[6]);
8389 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
8390 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_items(fra.me.REG[0]);
8391 fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8392 fra.me.REG[6] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[6])(fra.me.REG[6]);
8393 fra.me.REG[6] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[6]);
8394 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
8395 /* ./syntax//mmbuilder.nit:1115 */
8396 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8397 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8398 if (UNTAG_Bool(REGB1)) {
8399 } else {
8400 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8401 if (UNTAG_Bool(REGB2)) {
8402 REGB2 = TAG_Bool(false);
8403 REGB1 = REGB2;
8404 } else {
8405 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8406 REGB1 = REGB2;
8407 }
8408 }
8409 if (UNTAG_Bool(REGB1)) {
8410 /* ./syntax//mmbuilder.nit:1116 */
8411 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8412 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8413 if (UNTAG_Bool(REGB1)) {
8414 } else {
8415 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8416 if (UNTAG_Bool(REGB2)) {
8417 REGB2 = TAG_Bool(false);
8418 REGB1 = REGB2;
8419 } else {
8420 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8421 REGB1 = REGB2;
8422 }
8423 }
8424 if (UNTAG_Bool(REGB1)) {
8425 REGB1 = TAG_Int(3);
8426 REGB0 = REGB1;
8427 } else {
8428 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8429 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8430 if (UNTAG_Bool(REGB1)) {
8431 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1116);
8432 }
8433 fra.me.REG[6] = CALL_parser___parser_nodes___AAble___n_visibility(fra.me.REG[6])(fra.me.REG[6]);
8434 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8435 if (UNTAG_Bool(REGB1)) {
8436 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1116);
8437 }
8438 REGB1 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[6])(fra.me.REG[6]);
8439 REGB0 = REGB1;
8440 }
8441 }
8442 /* ./syntax//mmbuilder.nit:1118 */
8443 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8444 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8445 if (UNTAG_Bool(REGB1)) {
8446 } else {
8447 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8448 if (UNTAG_Bool(REGB2)) {
8449 REGB2 = TAG_Bool(false);
8450 REGB1 = REGB2;
8451 } else {
8452 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8453 REGB1 = REGB2;
8454 }
8455 }
8456 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8457 if (UNTAG_Bool(REGB1)) {
8458 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8459 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8460 if (UNTAG_Bool(REGB1)) {
8461 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1118);
8462 }
8463 fra.me.REG[6] = CALL_parser___parser_nodes___AAble___n_kwredef(fra.me.REG[6])(fra.me.REG[6]);
8464 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8465 if (UNTAG_Bool(REGB1)) {
8466 } else {
8467 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8468 if (UNTAG_Bool(REGB2)) {
8469 REGB2 = TAG_Bool(false);
8470 REGB1 = REGB2;
8471 } else {
8472 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8473 REGB1 = REGB2;
8474 }
8475 }
8476 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8477 } else {
8478 REGB2 = TAG_Bool(false);
8479 REGB1 = REGB2;
8480 }
8481 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);
8482 /* ./syntax//mmbuilder.nit:1119 */
8483 fra.me.REG[2] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8484 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8485 if (UNTAG_Bool(REGB0)) {
8486 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1119);
8487 }
8488 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
8489 }
8490 label1: while(0);
8491 stack_frame_head = fra.me.prev;
8492 return;
8493 }
8494 void syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
8495 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8496 val_t tmp;
8497 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8498 fra.me.file = LOCATE_syntax___mmbuilder;
8499 fra.me.line = 1123;
8500 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor;
8501 fra.me.has_broke = 0;
8502 fra.me.REG_size = 4;
8503 fra.me.REG[0] = NIT_NULL;
8504 fra.me.REG[1] = NIT_NULL;
8505 fra.me.REG[2] = NIT_NULL;
8506 fra.me.REG[3] = NIT_NULL;
8507 fra.me.REG[0] = p0;
8508 fra.me.REG[1] = p1;
8509 /* ./syntax//mmbuilder.nit:1123 */
8510 fra.me.REG[2] = fra.me.REG[0];
8511 fra.me.REG[3] = fra.me.REG[1];
8512 /* ./syntax//mmbuilder.nit:1125 */
8513 fra.me.REG[2] = ATTR_syntax___mmbuilder___AAttrPropdef____prop(fra.me.REG[2]);
8514 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
8515 /* ./syntax//mmbuilder.nit:1126 */
8516 CALL_SUPER_syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8517 /* ./syntax//mmbuilder.nit:1127 */
8518 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8519 stack_frame_head = fra.me.prev;
8520 return;
8521 }
8522 val_t syntax___mmbuilder___AMethPropdef___name(val_t p0){
8523 struct {struct stack_frame_t me;} fra;
8524 val_t tmp;
8525 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8526 fra.me.file = LOCATE_syntax___mmbuilder;
8527 fra.me.line = 1132;
8528 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___name;
8529 fra.me.has_broke = 0;
8530 fra.me.REG_size = 1;
8531 fra.me.REG[0] = NIT_NULL;
8532 fra.me.REG[0] = p0;
8533 /* ./syntax//mmbuilder.nit:1132 */
8534 fra.me.REG[0] = ATTR_syntax___mmbuilder___AMethPropdef____name(fra.me.REG[0]);
8535 stack_frame_head = fra.me.prev;
8536 return fra.me.REG[0];
8537 }
8538 val_t syntax___mmbuilder___AMethPropdef___method(val_t p0){
8539 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8540 val_t REGB0;
8541 val_t tmp;
8542 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8543 fra.me.file = LOCATE_syntax___mmbuilder;
8544 fra.me.line = 1136;
8545 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___method;
8546 fra.me.has_broke = 0;
8547 fra.me.REG_size = 2;
8548 fra.me.REG[0] = NIT_NULL;
8549 fra.me.REG[1] = NIT_NULL;
8550 fra.me.REG[0] = p0;
8551 /* ./syntax//mmbuilder.nit:1136 */
8552 fra.me.REG[1] = fra.me.REG[0];
8553 fra.me.REG[1] = ATTR_syntax___mmbuilder___AMethPropdef____method(fra.me.REG[1]);
8554 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
8555 if (UNTAG_Bool(REGB0)) {
8556 } else {
8557 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1136);
8558 }
8559 goto label1;
8560 label1: while(0);
8561 stack_frame_head = fra.me.prev;
8562 return fra.me.REG[1];
8563 }
8564 void syntax___mmbuilder___AMethPropdef___accept_property_builder(val_t p0, val_t p1){
8565 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
8566 val_t REGB0;
8567 val_t REGB1;
8568 val_t REGB2;
8569 val_t tmp;
8570 static val_t once_value_1; /* Once value */
8571 static val_t once_value_2; /* Once value */
8572 static val_t once_value_3; /* Once value */
8573 static val_t once_value_4; /* Once value */
8574 static val_t once_value_5; /* Once value */
8575 static val_t once_value_6; /* Once value */
8576 static val_t once_value_7; /* Once value */
8577 static val_t once_value_8; /* Once value */
8578 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8579 fra.me.file = LOCATE_syntax___mmbuilder;
8580 fra.me.line = 1138;
8581 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___accept_property_builder;
8582 fra.me.has_broke = 0;
8583 fra.me.REG_size = 5;
8584 fra.me.REG[0] = NIT_NULL;
8585 fra.me.REG[1] = NIT_NULL;
8586 fra.me.REG[2] = NIT_NULL;
8587 fra.me.REG[3] = NIT_NULL;
8588 fra.me.REG[4] = NIT_NULL;
8589 fra.me.REG[0] = p0;
8590 fra.me.REG[1] = p1;
8591 /* ./syntax//mmbuilder.nit:1138 */
8592 fra.me.REG[2] = fra.me.REG[0];
8593 fra.me.REG[3] = fra.me.REG[1];
8594 /* ./syntax//mmbuilder.nit:1140 */
8595 CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8596 /* ./syntax//mmbuilder.nit:1142 */
8597 fra.me.REG[1] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
8598 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8599 if (UNTAG_Bool(REGB0)) {
8600 } else {
8601 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8602 if (UNTAG_Bool(REGB1)) {
8603 REGB1 = TAG_Bool(false);
8604 REGB0 = REGB1;
8605 } else {
8606 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8607 REGB0 = REGB1;
8608 }
8609 }
8610 if (UNTAG_Bool(REGB0)) {
8611 /* ./syntax//mmbuilder.nit:1143 */
8612 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AInitPropdef, ID_parser___parser_nodes___AInitPropdef)) /*cast AInitPropdef*/;
8613 if (UNTAG_Bool(REGB0)) {
8614 /* ./syntax//mmbuilder.nit:1144 */
8615 if (!once_value_1) {
8616 if (!once_value_2) {
8617 fra.me.REG[1] = BOX_NativeString("init");
8618 REGB0 = TAG_Int(4);
8619 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
8620 once_value_2 = fra.me.REG[1];
8621 register_static_object(&once_value_2);
8622 } else fra.me.REG[1] = once_value_2;
8623 fra.me.REG[1] = fra.me.REG[1];
8624 fra.me.REG[1] = CALL_standard___symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
8625 once_value_1 = fra.me.REG[1];
8626 register_static_object(&once_value_1);
8627 } else fra.me.REG[1] = once_value_1;
8628 fra.me.REG[1] = fra.me.REG[1];
8629 } else {
8630 /* ./syntax//mmbuilder.nit:1146 */
8631 if (!once_value_3) {
8632 if (!once_value_4) {
8633 fra.me.REG[4] = BOX_NativeString("main");
8634 REGB0 = TAG_Int(4);
8635 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
8636 once_value_4 = fra.me.REG[4];
8637 register_static_object(&once_value_4);
8638 } else fra.me.REG[4] = once_value_4;
8639 fra.me.REG[4] = fra.me.REG[4];
8640 fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
8641 once_value_3 = fra.me.REG[4];
8642 register_static_object(&once_value_3);
8643 } else fra.me.REG[4] = once_value_3;
8644 fra.me.REG[4] = fra.me.REG[4];
8645 fra.me.REG[1] = fra.me.REG[4];
8646 }
8647 } else {
8648 /* ./syntax//mmbuilder.nit:1149 */
8649 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
8650 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8651 if (UNTAG_Bool(REGB0)) {
8652 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1149);
8653 }
8654 fra.me.REG[4] = CALL_syntax___syntax_base___AMethid___name(fra.me.REG[4])(fra.me.REG[4]);
8655 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8656 if (UNTAG_Bool(REGB0)) {
8657 } else {
8658 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1149);
8659 }
8660 fra.me.REG[1] = fra.me.REG[4];
8661 /* ./syntax//mmbuilder.nit:1151 */
8662 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
8663 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8664 if (UNTAG_Bool(REGB0)) {
8665 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1151);
8666 }
8667 fra.me.REG[4] = CALL_syntax___syntax_base___AMethid___name(fra.me.REG[4])(fra.me.REG[4]);
8668 if (!once_value_5) {
8669 if (!once_value_6) {
8670 fra.me.REG[0] = BOX_NativeString("-");
8671 REGB0 = TAG_Int(1);
8672 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
8673 once_value_6 = fra.me.REG[0];
8674 register_static_object(&once_value_6);
8675 } else fra.me.REG[0] = once_value_6;
8676 fra.me.REG[0] = fra.me.REG[0];
8677 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
8678 once_value_5 = fra.me.REG[0];
8679 register_static_object(&once_value_5);
8680 } else fra.me.REG[0] = once_value_5;
8681 fra.me.REG[0] = fra.me.REG[0];
8682 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[0],fra.me.REG[4]));
8683 if (UNTAG_Bool(REGB0)) {
8684 } else {
8685 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8686 if (UNTAG_Bool(REGB1)) {
8687 REGB1 = TAG_Bool(false);
8688 REGB0 = REGB1;
8689 } else {
8690 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
8691 REGB0 = REGB1;
8692 }
8693 }
8694 if (UNTAG_Bool(REGB0)) {
8695 /* ./syntax//mmbuilder.nit:1152 */
8696 fra.me.REG[0] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
8697 /* ./syntax//mmbuilder.nit:1153 */
8698 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8699 if (UNTAG_Bool(REGB0)) {
8700 } else {
8701 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8702 if (UNTAG_Bool(REGB1)) {
8703 REGB1 = TAG_Bool(false);
8704 REGB0 = REGB1;
8705 } else {
8706 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8707 REGB0 = REGB1;
8708 }
8709 }
8710 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8711 if (UNTAG_Bool(REGB0)) {
8712 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8713 if (UNTAG_Bool(REGB0)) {
8714 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1153);
8715 }
8716 fra.me.REG[0] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[0])(fra.me.REG[0]);
8717 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
8718 REGB1 = TAG_Int(0);
8719 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
8720 if (UNTAG_Bool(REGB2)) {
8721 } else {
8722 /* ./../lib/standard//kernel.nit:227 */
8723 REGB1 = TAG_Bool((REGB0)==(REGB1));
8724 /* ./syntax//mmbuilder.nit:1153 */
8725 REGB2 = REGB1;
8726 }
8727 } else {
8728 REGB1 = TAG_Bool(false);
8729 REGB2 = REGB1;
8730 }
8731 if (UNTAG_Bool(REGB2)) {
8732 /* ./syntax//mmbuilder.nit:1154 */
8733 if (!once_value_7) {
8734 if (!once_value_8) {
8735 fra.me.REG[0] = BOX_NativeString("unary -");
8736 REGB2 = TAG_Int(7);
8737 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB2);
8738 once_value_8 = fra.me.REG[0];
8739 register_static_object(&once_value_8);
8740 } else fra.me.REG[0] = once_value_8;
8741 fra.me.REG[0] = fra.me.REG[0];
8742 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
8743 once_value_7 = fra.me.REG[0];
8744 register_static_object(&once_value_7);
8745 } else fra.me.REG[0] = once_value_7;
8746 fra.me.REG[0] = fra.me.REG[0];
8747 fra.me.REG[1] = fra.me.REG[0];
8748 }
8749 }
8750 }
8751 /* ./syntax//mmbuilder.nit:1158 */
8752 ATTR_syntax___mmbuilder___AMethPropdef____name(fra.me.REG[2]) = fra.me.REG[1];
8753 /* ./syntax//mmbuilder.nit:1159 */
8754 fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8755 fra.me.REG[0] = NEW_MMMethSrcMethod_syntax___syntax_base___MMMethSrcMethod___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
8756 /* ./syntax//mmbuilder.nit:1160 */
8757 ATTR_syntax___mmbuilder___AMethPropdef____method(fra.me.REG[2]) = fra.me.REG[0];
8758 /* ./syntax//mmbuilder.nit:1161 */
8759 fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8760 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0]);
8761 stack_frame_head = fra.me.prev;
8762 return;
8763 }
8764 void syntax___mmbuilder___AMethPropdef___accept_property_verifier(val_t p0, val_t p1){
8765 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
8766 val_t REGB0;
8767 val_t REGB1;
8768 val_t REGB2;
8769 val_t REGB3;
8770 val_t tmp;
8771 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8772 fra.me.file = LOCATE_syntax___mmbuilder;
8773 fra.me.line = 1164;
8774 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___accept_property_verifier;
8775 fra.me.has_broke = 0;
8776 fra.me.REG_size = 5;
8777 fra.me.REG[0] = NIT_NULL;
8778 fra.me.REG[1] = NIT_NULL;
8779 fra.me.REG[2] = NIT_NULL;
8780 fra.me.REG[3] = NIT_NULL;
8781 fra.me.REG[4] = NIT_NULL;
8782 fra.me.REG[0] = p0;
8783 fra.me.REG[1] = p1;
8784 /* ./syntax//mmbuilder.nit:1164 */
8785 fra.me.REG[2] = fra.me.REG[0];
8786 fra.me.REG[3] = fra.me.REG[1];
8787 /* ./syntax//mmbuilder.nit:1166 */
8788 fra.me.REG[4] = NEW_SignatureBuilder_syntax___mmbuilder___SignatureBuilder___init();
8789 CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
8790 /* ./syntax//mmbuilder.nit:1167 */
8791 CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8792 /* ./syntax//mmbuilder.nit:1169 */
8793 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8794 REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
8795 if (UNTAG_Bool(REGB0)) {
8796 goto label1;
8797 }
8798 /* ./syntax//mmbuilder.nit:1171 */
8799 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8800 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
8801 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8802 if (UNTAG_Bool(REGB0)) {
8803 } else {
8804 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8805 if (UNTAG_Bool(REGB1)) {
8806 REGB1 = TAG_Bool(false);
8807 REGB0 = REGB1;
8808 } else {
8809 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8810 REGB0 = REGB1;
8811 }
8812 }
8813 if (UNTAG_Bool(REGB0)) {
8814 } else {
8815 /* ./syntax//mmbuilder.nit:1174 */
8816 fra.me.REG[1] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
8817 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
8818 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[4])(fra.me.REG[4]);
8819 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8820 if (UNTAG_Bool(REGB0)) {
8821 } else {
8822 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1174);
8823 }
8824 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
8825 }
8826 /* ./syntax//mmbuilder.nit:1176 */
8827 REGB0 = TAG_Int(1);
8828 /* ./syntax//mmbuilder.nit:1177 */
8829 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
8830 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8831 if (UNTAG_Bool(REGB1)) {
8832 } else {
8833 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8834 if (UNTAG_Bool(REGB2)) {
8835 REGB2 = TAG_Bool(false);
8836 REGB1 = REGB2;
8837 } else {
8838 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8839 REGB1 = REGB2;
8840 }
8841 }
8842 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8843 if (UNTAG_Bool(REGB1)) {
8844 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
8845 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8846 if (UNTAG_Bool(REGB1)) {
8847 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1177);
8848 }
8849 REGB1 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
8850 REGB2 = TAG_Int(1);
8851 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
8852 if (UNTAG_Bool(REGB3)) {
8853 } else {
8854 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
8855 }
8856 /* ./../lib/standard//kernel.nit:234 */
8857 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
8858 } else {
8859 /* ./syntax//mmbuilder.nit:1177 */
8860 REGB1 = TAG_Bool(false);
8861 REGB2 = REGB1;
8862 }
8863 if (UNTAG_Bool(REGB2)) {
8864 /* ./syntax//mmbuilder.nit:1178 */
8865 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
8866 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8867 if (UNTAG_Bool(REGB2)) {
8868 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1178);
8869 }
8870 REGB2 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
8871 REGB0 = REGB2;
8872 }
8873 /* ./syntax//mmbuilder.nit:1180 */
8874 fra.me.REG[4] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
8875 fra.me.REG[1] = CALL_parser___parser_nodes___AMethPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
8876 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8877 if (UNTAG_Bool(REGB2)) {
8878 } else {
8879 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8880 if (UNTAG_Bool(REGB1)) {
8881 REGB1 = TAG_Bool(false);
8882 REGB2 = REGB1;
8883 } else {
8884 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8885 REGB2 = REGB1;
8886 }
8887 }
8888 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
8889 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);
8890 /* ./syntax//mmbuilder.nit:1181 */
8891 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
8892 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8893 if (UNTAG_Bool(REGB0)) {
8894 } else {
8895 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8896 if (UNTAG_Bool(REGB2)) {
8897 REGB2 = TAG_Bool(false);
8898 REGB0 = REGB2;
8899 } else {
8900 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8901 REGB0 = REGB2;
8902 }
8903 }
8904 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8905 if (UNTAG_Bool(REGB0)) {
8906 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
8907 fra.me.REG[2] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
8908 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8909 if (UNTAG_Bool(REGB0)) {
8910 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1181);
8911 }
8912 CALL_syntax___mmbuilder___ASignature___check_visibility(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3], fra.me.REG[2]);
8913 }
8914 label1: while(0);
8915 stack_frame_head = fra.me.prev;
8916 return;
8917 }
8918 void syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
8919 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8920 val_t tmp;
8921 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8922 fra.me.file = LOCATE_syntax___mmbuilder;
8923 fra.me.line = 1184;
8924 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor;
8925 fra.me.has_broke = 0;
8926 fra.me.REG_size = 4;
8927 fra.me.REG[0] = NIT_NULL;
8928 fra.me.REG[1] = NIT_NULL;
8929 fra.me.REG[2] = NIT_NULL;
8930 fra.me.REG[3] = NIT_NULL;
8931 fra.me.REG[0] = p0;
8932 fra.me.REG[1] = p1;
8933 /* ./syntax//mmbuilder.nit:1184 */
8934 fra.me.REG[2] = fra.me.REG[0];
8935 fra.me.REG[3] = fra.me.REG[1];
8936 /* ./syntax//mmbuilder.nit:1186 */
8937 fra.me.REG[2] = ATTR_syntax___mmbuilder___AMethPropdef____method(fra.me.REG[2]);
8938 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
8939 /* ./syntax//mmbuilder.nit:1187 */
8940 CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8941 /* ./syntax//mmbuilder.nit:1188 */
8942 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8943 stack_frame_head = fra.me.prev;
8944 return;
8945 }
8946 void syntax___mmbuilder___AMainMethPropdef___process_and_check(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
8947 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
8948 val_t REGB0;
8949 val_t REGB1;
8950 val_t tmp;
8951 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8952 fra.me.file = LOCATE_syntax___mmbuilder;
8953 fra.me.line = 1193;
8954 fra.me.meth = LOCATE_syntax___mmbuilder___AMainMethPropdef___process_and_check;
8955 fra.me.has_broke = 0;
8956 fra.me.REG_size = 3;
8957 fra.me.REG[0] = NIT_NULL;
8958 fra.me.REG[1] = NIT_NULL;
8959 fra.me.REG[2] = NIT_NULL;
8960 fra.me.REG[0] = p0;
8961 fra.me.REG[1] = p1;
8962 fra.me.REG[2] = p2;
8963 REGB0 = p3;
8964 REGB1 = p4;
8965 /* ./syntax//mmbuilder.nit:1195 */
8966 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
8967 CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[0])(fra.me.REG[0], REGB1);
8968 /* ./syntax//mmbuilder.nit:1196 */
8969 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
8970 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
8971 fra.me.REG[1] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
8972 fra.me.REG[1] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[1]);
8973 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
8974 stack_frame_head = fra.me.prev;
8975 return;
8976 }
8977 void syntax___mmbuilder___AExternPropdef___accept_property_verifier(val_t p0, val_t p1){
8978 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
8979 val_t REGB0;
8980 val_t REGB1;
8981 val_t REGB2;
8982 val_t tmp;
8983 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8984 fra.me.file = LOCATE_syntax___mmbuilder;
8985 fra.me.line = 1202;
8986 fra.me.meth = LOCATE_syntax___mmbuilder___AExternPropdef___accept_property_verifier;
8987 fra.me.has_broke = 0;
8988 fra.me.REG_size = 3;
8989 fra.me.REG[0] = NIT_NULL;
8990 fra.me.REG[1] = NIT_NULL;
8991 fra.me.REG[2] = NIT_NULL;
8992 fra.me.REG[0] = p0;
8993 fra.me.REG[1] = p1;
8994 /* ./syntax//mmbuilder.nit:1202 */
8995 fra.me.REG[2] = fra.me.REG[0];
8996 /* ./syntax//mmbuilder.nit:1204 */
8997 CALL_SUPER_syntax___mmbuilder___AExternPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8998 /* ./syntax//mmbuilder.nit:1206 */
8999 fra.me.REG[1] = CALL_parser___parser_nodes___AExternPropdef___n_extern(fra.me.REG[2])(fra.me.REG[2]);
9000 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9001 if (UNTAG_Bool(REGB0)) {
9002 } else {
9003 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9004 if (UNTAG_Bool(REGB1)) {
9005 REGB1 = TAG_Bool(false);
9006 REGB0 = REGB1;
9007 } else {
9008 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9009 REGB0 = REGB1;
9010 }
9011 }
9012 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9013 if (UNTAG_Bool(REGB0)) {
9014 /* ./syntax//mmbuilder.nit:1207 */
9015 fra.me.REG[1] = CALL_parser___parser_nodes___AExternPropdef___n_extern(fra.me.REG[2])(fra.me.REG[2]);
9016 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9017 if (UNTAG_Bool(REGB0)) {
9018 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1207);
9019 }
9020 fra.me.REG[1] = CALL_parser___lexer___Token___text(fra.me.REG[1])(fra.me.REG[1]);
9021 /* ./syntax//mmbuilder.nit:1208 */
9022 REGB0 = TAG_Int(1);
9023 /* ./../lib/standard//collection//array.nit:24 */
9024 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
9025 if (UNTAG_Bool(REGB1)) {
9026 } else {
9027 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
9028 }
9029 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
9030 /* ./syntax//mmbuilder.nit:1208 */
9031 REGB2 = TAG_Int(2);
9032 /* ./../lib/standard//kernel.nit:237 */
9033 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
9034 /* ./syntax//mmbuilder.nit:1208 */
9035 fra.me.REG[0] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB0, REGB2);
9036 fra.me.REG[1] = fra.me.REG[0];
9037 } else {
9038 /* ./syntax//mmbuilder.nit:1210 */
9039 fra.me.REG[0] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
9040 fra.me.REG[0] = CALL_primitive_info___MMMethod___default_extern_name(fra.me.REG[0])(fra.me.REG[0]);
9041 fra.me.REG[1] = fra.me.REG[0];
9042 }
9043 /* ./syntax//mmbuilder.nit:1212 */
9044 fra.me.REG[2] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
9045 CALL_syntax___syntax_base___MMMethSrcMethod___extern_name__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
9046 stack_frame_head = fra.me.prev;
9047 return;
9048 }
9049 val_t syntax___mmbuilder___ATypePropdef___prop(val_t p0){
9050 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9051 val_t REGB0;
9052 val_t tmp;
9053 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9054 fra.me.file = LOCATE_syntax___mmbuilder;
9055 fra.me.line = 1217;
9056 fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___prop;
9057 fra.me.has_broke = 0;
9058 fra.me.REG_size = 2;
9059 fra.me.REG[0] = NIT_NULL;
9060 fra.me.REG[1] = NIT_NULL;
9061 fra.me.REG[0] = p0;
9062 /* ./syntax//mmbuilder.nit:1217 */
9063 fra.me.REG[1] = fra.me.REG[0];
9064 fra.me.REG[1] = ATTR_syntax___mmbuilder___ATypePropdef____prop(fra.me.REG[1]);
9065 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
9066 if (UNTAG_Bool(REGB0)) {
9067 } else {
9068 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1217);
9069 }
9070 goto label1;
9071 label1: while(0);
9072 stack_frame_head = fra.me.prev;
9073 return fra.me.REG[1];
9074 }
9075 void syntax___mmbuilder___ATypePropdef___accept_property_builder(val_t p0, val_t p1){
9076 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9077 val_t tmp;
9078 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9079 fra.me.file = LOCATE_syntax___mmbuilder;
9080 fra.me.line = 1220;
9081 fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___accept_property_builder;
9082 fra.me.has_broke = 0;
9083 fra.me.REG_size = 4;
9084 fra.me.REG[0] = NIT_NULL;
9085 fra.me.REG[1] = NIT_NULL;
9086 fra.me.REG[2] = NIT_NULL;
9087 fra.me.REG[3] = NIT_NULL;
9088 fra.me.REG[0] = p0;
9089 fra.me.REG[1] = p1;
9090 /* ./syntax//mmbuilder.nit:1220 */
9091 fra.me.REG[2] = fra.me.REG[0];
9092 fra.me.REG[3] = fra.me.REG[1];
9093 /* ./syntax//mmbuilder.nit:1222 */
9094 CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9095 /* ./syntax//mmbuilder.nit:1223 */
9096 fra.me.REG[1] = CALL_parser___parser_nodes___ATypePropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
9097 fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
9098 /* ./syntax//mmbuilder.nit:1224 */
9099 fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9100 fra.me.REG[0] = NEW_MMSrcTypeProperty_syntax___syntax_base___MMSrcTypeProperty___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
9101 /* ./syntax//mmbuilder.nit:1225 */
9102 ATTR_syntax___mmbuilder___ATypePropdef____prop(fra.me.REG[2]) = fra.me.REG[0];
9103 /* ./syntax//mmbuilder.nit:1226 */
9104 fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9105 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0]);
9106 stack_frame_head = fra.me.prev;
9107 return;
9108 }
9109 void syntax___mmbuilder___ATypePropdef___accept_property_verifier(val_t p0, val_t p1){
9110 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
9111 val_t REGB0;
9112 val_t REGB1;
9113 val_t REGB2;
9114 val_t tmp;
9115 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9116 fra.me.file = LOCATE_syntax___mmbuilder;
9117 fra.me.line = 1229;
9118 fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___accept_property_verifier;
9119 fra.me.has_broke = 0;
9120 fra.me.REG_size = 5;
9121 fra.me.REG[0] = NIT_NULL;
9122 fra.me.REG[1] = NIT_NULL;
9123 fra.me.REG[2] = NIT_NULL;
9124 fra.me.REG[3] = NIT_NULL;
9125 fra.me.REG[4] = NIT_NULL;
9126 fra.me.REG[0] = p0;
9127 fra.me.REG[1] = p1;
9128 /* ./syntax//mmbuilder.nit:1229 */
9129 fra.me.REG[2] = fra.me.REG[0];
9130 fra.me.REG[3] = fra.me.REG[1];
9131 /* ./syntax//mmbuilder.nit:1231 */
9132 CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9133 /* ./syntax//mmbuilder.nit:1232 */
9134 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
9135 fra.me.REG[0] = CALL_parser___parser_nodes___ATypePropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
9136 fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
9137 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9138 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
9139 fra.me.REG[4] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
9140 /* ./syntax//mmbuilder.nit:1233 */
9141 fra.me.REG[0] = CALL_syntax___syntax_base___ATypePropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
9142 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
9143 /* ./syntax//mmbuilder.nit:1234 */
9144 fra.me.REG[4] = CALL_parser___parser_nodes___ATypePropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
9145 REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
9146 /* ./syntax//mmbuilder.nit:1235 */
9147 fra.me.REG[4] = CALL_syntax___syntax_base___ATypePropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
9148 fra.me.REG[0] = CALL_parser___parser_nodes___ATypePropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
9149 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9150 if (UNTAG_Bool(REGB1)) {
9151 } else {
9152 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9153 if (UNTAG_Bool(REGB2)) {
9154 REGB2 = TAG_Bool(false);
9155 REGB1 = REGB2;
9156 } else {
9157 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
9158 REGB1 = REGB2;
9159 }
9160 }
9161 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
9162 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);
9163 stack_frame_head = fra.me.prev;
9164 return;
9165 }
9166 void syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
9167 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9168 val_t tmp;
9169 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9170 fra.me.file = LOCATE_syntax___mmbuilder;
9171 fra.me.line = 1238;
9172 fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor;
9173 fra.me.has_broke = 0;
9174 fra.me.REG_size = 4;
9175 fra.me.REG[0] = NIT_NULL;
9176 fra.me.REG[1] = NIT_NULL;
9177 fra.me.REG[2] = NIT_NULL;
9178 fra.me.REG[3] = NIT_NULL;
9179 fra.me.REG[0] = p0;
9180 fra.me.REG[1] = p1;
9181 /* ./syntax//mmbuilder.nit:1238 */
9182 fra.me.REG[2] = fra.me.REG[0];
9183 fra.me.REG[3] = fra.me.REG[1];
9184 /* ./syntax//mmbuilder.nit:1240 */
9185 fra.me.REG[2] = ATTR_syntax___mmbuilder___ATypePropdef____prop(fra.me.REG[2]);
9186 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
9187 /* ./syntax//mmbuilder.nit:1241 */
9188 CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9189 /* ./syntax//mmbuilder.nit:1242 */
9190 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9191 stack_frame_head = fra.me.prev;
9192 return;
9193 }
9194 val_t syntax___mmbuilder___MethidAccumulator___name(val_t p0){
9195 struct {struct stack_frame_t me;} fra;
9196 val_t REGB0;
9197 val_t tmp;
9198 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9199 fra.me.file = LOCATE_syntax___mmbuilder;
9200 fra.me.line = 1249;
9201 fra.me.meth = LOCATE_syntax___mmbuilder___MethidAccumulator___name;
9202 fra.me.has_broke = 0;
9203 fra.me.REG_size = 1;
9204 fra.me.REG[0] = NIT_NULL;
9205 fra.me.REG[0] = p0;
9206 /* ./syntax//mmbuilder.nit:1249 */
9207 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL);
9208 if (UNTAG_Bool(REGB0)) {
9209 } else {
9210 nit_abort("Uninitialized attribute %s", "_name", LOCATE_syntax___mmbuilder, 1249);
9211 }
9212 fra.me.REG[0] = ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0]);
9213 stack_frame_head = fra.me.prev;
9214 return fra.me.REG[0];
9215 }
9216 void syntax___mmbuilder___MethidAccumulator___visit(val_t p0, val_t p1){
9217 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9218 val_t REGB0;
9219 val_t tmp;
9220 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9221 fra.me.file = LOCATE_syntax___mmbuilder;
9222 fra.me.line = 1250;
9223 fra.me.meth = LOCATE_syntax___mmbuilder___MethidAccumulator___visit;
9224 fra.me.has_broke = 0;
9225 fra.me.REG_size = 4;
9226 fra.me.REG[0] = NIT_NULL;
9227 fra.me.REG[1] = NIT_NULL;
9228 fra.me.REG[2] = NIT_NULL;
9229 fra.me.REG[3] = NIT_NULL;
9230 fra.me.REG[0] = p0;
9231 fra.me.REG[1] = p1;
9232 /* ./syntax//mmbuilder.nit:1252 */
9233 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*/;
9234 if (UNTAG_Bool(REGB0)) {
9235 /* ./syntax//mmbuilder.nit:1253 */
9236 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL);
9237 if (UNTAG_Bool(REGB0)) {
9238 } else {
9239 nit_abort("Uninitialized attribute %s", "_name", LOCATE_syntax___mmbuilder, 1253);
9240 }
9241 fra.me.REG[2] = ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0]);
9242 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9243 if (UNTAG_Bool(REGB0)) {
9244 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1253);
9245 }
9246 fra.me.REG[3] = CALL_parser___lexer___Token___text(fra.me.REG[1])(fra.me.REG[1]);
9247 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
9248 } else {
9249 /* ./syntax//mmbuilder.nit:1255 */
9250 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9251 if (UNTAG_Bool(REGB0)) {
9252 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1255);
9253 }
9254 CALL_parser___parser_prod___ANode___visit_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
9255 }
9256 stack_frame_head = fra.me.prev;
9257 return;
9258 }
9259 val_t syntax___mmbuilder___AMethid___name(val_t p0){
9260 struct {struct stack_frame_t me;} fra;
9261 val_t tmp;
9262 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9263 fra.me.file = LOCATE_syntax___mmbuilder;
9264 fra.me.line = 1261;
9265 fra.me.meth = LOCATE_syntax___mmbuilder___AMethid___name;
9266 fra.me.has_broke = 0;
9267 fra.me.REG_size = 1;
9268 fra.me.REG[0] = NIT_NULL;
9269 fra.me.REG[0] = p0;
9270 /* ./syntax//mmbuilder.nit:1261 */
9271 fra.me.REG[0] = ATTR_syntax___mmbuilder___AMethid____name(fra.me.REG[0]);
9272 stack_frame_head = fra.me.prev;
9273 return fra.me.REG[0];
9274 }
9275 void syntax___mmbuilder___AMethid___accept_property_builder(val_t p0, val_t p1){
9276 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9277 val_t tmp;
9278 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9279 fra.me.file = LOCATE_syntax___mmbuilder;
9280 fra.me.line = 1263;
9281 fra.me.meth = LOCATE_syntax___mmbuilder___AMethid___accept_property_builder;
9282 fra.me.has_broke = 0;
9283 fra.me.REG_size = 4;
9284 fra.me.REG[0] = NIT_NULL;
9285 fra.me.REG[1] = NIT_NULL;
9286 fra.me.REG[2] = NIT_NULL;
9287 fra.me.REG[3] = NIT_NULL;
9288 fra.me.REG[0] = p0;
9289 fra.me.REG[1] = p1;
9290 /* ./syntax//mmbuilder.nit:1263 */
9291 fra.me.REG[2] = fra.me.REG[0];
9292 /* ./syntax//mmbuilder.nit:1265 */
9293 fra.me.REG[3] = NEW_MethidAccumulator_parser___parser_prod___Visitor___init();
9294 /* ./syntax//mmbuilder.nit:1266 */
9295 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
9296 /* ./syntax//mmbuilder.nit:1267 */
9297 fra.me.REG[3] = CALL_syntax___mmbuilder___MethidAccumulator___name(fra.me.REG[3])(fra.me.REG[3]);
9298 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
9299 fra.me.REG[3] = CALL_standard___symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
9300 ATTR_syntax___mmbuilder___AMethid____name(fra.me.REG[2]) = fra.me.REG[3];
9301 /* ./syntax//mmbuilder.nit:1268 */
9302 CALL_SUPER_syntax___mmbuilder___AMethid___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9303 stack_frame_head = fra.me.prev;
9304 return;
9305 }
9306 void syntax___mmbuilder___ASignature___accept_property_verifier(val_t p0, val_t p1){
9307 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
9308 val_t REGB0;
9309 val_t REGB1;
9310 val_t REGB2;
9311 val_t tmp;
9312 static val_t once_value_2; /* Once value */
9313 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9314 fra.me.file = LOCATE_syntax___mmbuilder;
9315 fra.me.line = 1273;
9316 fra.me.meth = LOCATE_syntax___mmbuilder___ASignature___accept_property_verifier;
9317 fra.me.has_broke = 0;
9318 fra.me.REG_size = 8;
9319 fra.me.REG[0] = NIT_NULL;
9320 fra.me.REG[1] = NIT_NULL;
9321 fra.me.REG[2] = NIT_NULL;
9322 fra.me.REG[3] = NIT_NULL;
9323 fra.me.REG[4] = NIT_NULL;
9324 fra.me.REG[5] = NIT_NULL;
9325 fra.me.REG[6] = NIT_NULL;
9326 fra.me.REG[7] = NIT_NULL;
9327 fra.me.REG[0] = p0;
9328 fra.me.REG[1] = p1;
9329 /* ./syntax//mmbuilder.nit:1273 */
9330 fra.me.REG[2] = fra.me.REG[0];
9331 fra.me.REG[3] = fra.me.REG[1];
9332 /* ./syntax//mmbuilder.nit:1275 */
9333 CALL_SUPER_syntax___mmbuilder___ASignature___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9334 /* ./syntax//mmbuilder.nit:1276 */
9335 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9336 REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
9337 if (UNTAG_Bool(REGB0)) {
9338 /* ./syntax//mmbuilder.nit:1277 */
9339 goto label1;
9340 } else {
9341 /* ./syntax//mmbuilder.nit:1278 */
9342 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9343 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
9344 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
9345 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9346 if (UNTAG_Bool(REGB0)) {
9347 /* ./syntax//mmbuilder.nit:1279 */
9348 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9349 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
9350 fra.me.REG[1] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[1])(fra.me.REG[1]);
9351 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9352 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[4])(fra.me.REG[4]);
9353 fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
9354 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[1],fra.me.REG[4]));
9355 if (UNTAG_Bool(REGB0)) {
9356 } else {
9357 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9358 if (UNTAG_Bool(REGB1)) {
9359 REGB1 = TAG_Bool(false);
9360 REGB0 = REGB1;
9361 } else {
9362 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
9363 REGB0 = REGB1;
9364 }
9365 }
9366 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9367 if (UNTAG_Bool(REGB0)) {
9368 REGB0 = TAG_Bool(true);
9369 } else {
9370 fra.me.REG[4] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
9371 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9372 if (UNTAG_Bool(REGB1)) {
9373 } else {
9374 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9375 if (UNTAG_Bool(REGB2)) {
9376 REGB2 = TAG_Bool(false);
9377 REGB1 = REGB2;
9378 } else {
9379 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
9380 REGB1 = REGB2;
9381 }
9382 }
9383 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
9384 REGB0 = REGB1;
9385 }
9386 if (UNTAG_Bool(REGB0)) {
9387 /* ./syntax//mmbuilder.nit:1280 */
9388 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9389 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
9390 fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
9391 if (!once_value_2) {
9392 fra.me.REG[1] = BOX_NativeString("Syntax error: untyped parameter.");
9393 REGB0 = TAG_Int(32);
9394 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
9395 once_value_2 = fra.me.REG[1];
9396 register_static_object(&once_value_2);
9397 } else fra.me.REG[1] = once_value_2;
9398 fra.me.REG[1] = fra.me.REG[1];
9399 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[1]);
9400 /* ./syntax//mmbuilder.nit:1281 */
9401 goto label1;
9402 }
9403 } else {
9404 /* ./syntax//mmbuilder.nit:1283 */
9405 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9406 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[1])(fra.me.REG[1]);
9407 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
9408 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9409 if (UNTAG_Bool(REGB0)) {
9410 REGB0 = TAG_Bool(true);
9411 } else {
9412 fra.me.REG[1] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
9413 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9414 if (UNTAG_Bool(REGB1)) {
9415 } else {
9416 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9417 if (UNTAG_Bool(REGB2)) {
9418 REGB2 = TAG_Bool(false);
9419 REGB1 = REGB2;
9420 } else {
9421 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9422 REGB1 = REGB2;
9423 }
9424 }
9425 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
9426 REGB0 = REGB1;
9427 }
9428 if (UNTAG_Bool(REGB0)) {
9429 /* ./syntax//mmbuilder.nit:1284 */
9430 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
9431 /* ./syntax//mmbuilder.nit:1285 */
9432 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9433 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[4])(fra.me.REG[4]);
9434 /* ./../lib/standard//collection//array.nit:269 */
9435 REGB0 = TAG_Int(0);
9436 /* ./../lib/standard//collection//array.nit:270 */
9437 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
9438 if (UNTAG_Bool(REGB1)) {
9439 } else {
9440 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
9441 }
9442 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
9443 /* ./../lib/standard//collection//array.nit:271 */
9444 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
9445 /* ./../lib/standard//collection//array.nit:272 */
9446 while(1) {
9447 /* ./../lib/standard//collection//array.nit:24 */
9448 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
9449 if (UNTAG_Bool(REGB1)) {
9450 } else {
9451 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
9452 }
9453 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
9454 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
9455 if (UNTAG_Bool(REGB2)) {
9456 } else {
9457 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9458 }
9459 /* ./../lib/standard//kernel.nit:232 */
9460 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
9461 /* ./../lib/standard//collection//array.nit:272 */
9462 if (UNTAG_Bool(REGB1)) {
9463 /* ./../lib/standard//collection//array.nit:273 */
9464 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9465 if (UNTAG_Bool(REGB1)) {
9466 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
9467 }
9468 /* ./../lib/standard//collection//array.nit:718 */
9469 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
9470 /* ./syntax//mmbuilder.nit:1286 */
9471 fra.me.REG[7] = CALL_syntax___mmbuilder___AParam___stype(fra.me.REG[6])(fra.me.REG[6]);
9472 REGB1 = TAG_Bool(fra.me.REG[7]!=NIT_NULL);
9473 if (UNTAG_Bool(REGB1)) {
9474 } else {
9475 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1286);
9476 }
9477 fra.me.REG[6] = CALL_parser___parser_nodes___AParam___n_id(fra.me.REG[6])(fra.me.REG[6]);
9478 fra.me.REG[6] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9479 fra.me.REG[6] = NEW_MMParam_metamodel___static_type___MMParam___init(fra.me.REG[7], fra.me.REG[6]);
9480 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
9481 /* ./../lib/standard//collection//array.nit:274 */
9482 REGB1 = TAG_Int(1);
9483 /* ./../lib/standard//kernel.nit:235 */
9484 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
9485 /* ./../lib/standard//collection//array.nit:274 */
9486 REGB0 = REGB1;
9487 } else {
9488 /* ./../lib/standard//collection//array.nit:272 */
9489 goto label3;
9490 }
9491 }
9492 label3: while(0);
9493 /* ./syntax//mmbuilder.nit:1288 */
9494 fra.me.REG[0] = NIT_NULL;
9495 /* ./syntax//mmbuilder.nit:1289 */
9496 fra.me.REG[5] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
9497 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9498 if (UNTAG_Bool(REGB0)) {
9499 } else {
9500 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9501 if (UNTAG_Bool(REGB1)) {
9502 REGB1 = TAG_Bool(false);
9503 REGB0 = REGB1;
9504 } else {
9505 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
9506 REGB0 = REGB1;
9507 }
9508 }
9509 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9510 if (UNTAG_Bool(REGB0)) {
9511 /* ./syntax//mmbuilder.nit:1290 */
9512 fra.me.REG[2] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
9513 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9514 if (UNTAG_Bool(REGB0)) {
9515 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1290);
9516 }
9517 fra.me.REG[2] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
9518 fra.me.REG[0] = fra.me.REG[2];
9519 /* ./syntax//mmbuilder.nit:1291 */
9520 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9521 if (UNTAG_Bool(REGB0)) {
9522 } else {
9523 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9524 if (UNTAG_Bool(REGB1)) {
9525 REGB1 = TAG_Bool(false);
9526 REGB0 = REGB1;
9527 } else {
9528 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
9529 REGB0 = REGB1;
9530 }
9531 }
9532 if (UNTAG_Bool(REGB0)) {
9533 /* ./syntax//mmbuilder.nit:1292 */
9534 fra.me.REG[2] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9535 REGB0 = TAG_Bool(true);
9536 CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
9537 /* ./syntax//mmbuilder.nit:1293 */
9538 goto label1;
9539 }
9540 }
9541 /* ./syntax//mmbuilder.nit:1296 */
9542 fra.me.REG[2] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9543 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9544 fra.me.REG[5] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]);
9545 fra.me.REG[5] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
9546 CALL_syntax___mmbuilder___SignatureBuilder___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
9547 /* ./syntax//mmbuilder.nit:1297 */
9548 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9549 REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[5])(fra.me.REG[5]);
9550 REGB1 = TAG_Int(0);
9551 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
9552 if (UNTAG_Bool(REGB2)) {
9553 } else {
9554 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9555 }
9556 /* ./../lib/standard//kernel.nit:233 */
9557 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
9558 /* ./syntax//mmbuilder.nit:1297 */
9559 if (UNTAG_Bool(REGB1)) {
9560 /* ./syntax//mmbuilder.nit:1298 */
9561 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9562 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[5])(fra.me.REG[5]);
9563 fra.me.REG[2] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9564 REGB1 = CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[2])(fra.me.REG[2]);
9565 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9566 if (UNTAG_Bool(REGB0)) {
9567 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1298);
9568 }
9569 CALL_metamodel___vararg___MMSignature___vararg_rank__eq(fra.me.REG[5])(fra.me.REG[5], REGB1);
9570 }
9571 /* ./syntax//mmbuilder.nit:1300 */
9572 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9573 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[5])(fra.me.REG[5]);
9574 /* ./../lib/standard//collection//array.nit:269 */
9575 REGB1 = TAG_Int(0);
9576 /* ./../lib/standard//collection//array.nit:270 */
9577 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
9578 if (UNTAG_Bool(REGB0)) {
9579 } else {
9580 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
9581 }
9582 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
9583 /* ./../lib/standard//collection//array.nit:271 */
9584 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
9585 /* ./../lib/standard//collection//array.nit:272 */
9586 while(1) {
9587 /* ./../lib/standard//collection//array.nit:24 */
9588 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
9589 if (UNTAG_Bool(REGB0)) {
9590 } else {
9591 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
9592 }
9593 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
9594 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9595 if (UNTAG_Bool(REGB2)) {
9596 } else {
9597 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9598 }
9599 /* ./../lib/standard//kernel.nit:232 */
9600 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
9601 /* ./../lib/standard//collection//array.nit:272 */
9602 if (UNTAG_Bool(REGB0)) {
9603 /* ./../lib/standard//collection//array.nit:273 */
9604 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9605 if (UNTAG_Bool(REGB0)) {
9606 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
9607 }
9608 /* ./../lib/standard//collection//array.nit:718 */
9609 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
9610 /* ./syntax//mmbuilder.nit:1301 */
9611 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9612 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
9613 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9614 if (UNTAG_Bool(REGB0)) {
9615 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1301);
9616 }
9617 fra.me.REG[1] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
9618 fra.me.REG[0] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[0])(fra.me.REG[0]);
9619 fra.me.REG[0] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[0])(fra.me.REG[0]);
9620 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
9621 /* ./../lib/standard//collection//array.nit:274 */
9622 REGB0 = TAG_Int(1);
9623 /* ./../lib/standard//kernel.nit:235 */
9624 REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
9625 /* ./../lib/standard//collection//array.nit:274 */
9626 REGB1 = REGB0;
9627 } else {
9628 /* ./../lib/standard//collection//array.nit:272 */
9629 goto label4;
9630 }
9631 }
9632 label4: while(0);
9633 }
9634 }
9635 }
9636 label1: while(0);
9637 stack_frame_head = fra.me.prev;
9638 return;
9639 }
9640 void syntax___mmbuilder___ASignature___check_visibility(val_t p0, val_t p1, val_t p2){
9641 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9642 val_t REGB0;
9643 val_t REGB1;
9644 val_t REGB2;
9645 val_t tmp;
9646 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9647 fra.me.file = LOCATE_syntax___mmbuilder;
9648 fra.me.line = 1306;
9649 fra.me.meth = LOCATE_syntax___mmbuilder___ASignature___check_visibility;
9650 fra.me.has_broke = 0;
9651 fra.me.REG_size = 4;
9652 fra.me.REG[0] = NIT_NULL;
9653 fra.me.REG[1] = NIT_NULL;
9654 fra.me.REG[2] = NIT_NULL;
9655 fra.me.REG[3] = NIT_NULL;
9656 fra.me.REG[0] = p0;
9657 fra.me.REG[1] = p1;
9658 fra.me.REG[2] = p2;
9659 /* ./syntax//mmbuilder.nit:1309 */
9660 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
9661 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
9662 REGB1 = TAG_Int(3);
9663 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
9664 if (UNTAG_Bool(REGB2)) {
9665 } else {
9666 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9667 }
9668 /* ./../lib/standard//kernel.nit:233 */
9669 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
9670 /* ./syntax//mmbuilder.nit:1309 */
9671 if (UNTAG_Bool(REGB1)) {
9672 goto label1;
9673 }
9674 /* ./syntax//mmbuilder.nit:1310 */
9675 fra.me.REG[3] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[0])(fra.me.REG[0]);
9676 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));
9677 /* ./syntax//mmbuilder.nit:1313 */
9678 fra.me.REG[3] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[0])(fra.me.REG[0]);
9679 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9680 if (UNTAG_Bool(REGB1)) {
9681 } else {
9682 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9683 if (UNTAG_Bool(REGB0)) {
9684 REGB0 = TAG_Bool(false);
9685 REGB1 = REGB0;
9686 } else {
9687 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9688 REGB1 = REGB0;
9689 }
9690 }
9691 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
9692 if (UNTAG_Bool(REGB1)) {
9693 fra.me.REG[0] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[0])(fra.me.REG[0]);
9694 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9695 if (UNTAG_Bool(REGB1)) {
9696 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1313);
9697 }
9698 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
9699 }
9700 label1: while(0);
9701 stack_frame_head = fra.me.prev;
9702 return;
9703 }
9704 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){
9705 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9706 val_t REGB0;
9707 val_t REGB1;
9708 fun_t CREG[1];
9709 val_t tmp;
9710 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9711 fra.me.file = LOCATE_syntax___mmbuilder;
9712 fra.me.line = 0;
9713 fra.me.meth = LOCATE_syntax___mmbuilder___ASignature___check_visibility;
9714 fra.me.has_broke = 0;
9715 fra.me.REG_size = 2;
9716 fra.me.REG[0] = NIT_NULL;
9717 fra.me.REG[1] = NIT_NULL;
9718 fra.me.closure_ctx = closctx_param;
9719 fra.me.closure_funs = CREG;
9720 fra.me.REG[0] = p0;
9721 CREG[0] = clos_fun0;
9722 /* ./syntax//mmbuilder.nit:1311 */
9723 fra.me.REG[1] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[0])(fra.me.REG[0]);
9724 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9725 if (UNTAG_Bool(REGB0)) {
9726 } else {
9727 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9728 if (UNTAG_Bool(REGB1)) {
9729 REGB1 = TAG_Bool(false);
9730 REGB0 = REGB1;
9731 } else {
9732 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9733 REGB0 = REGB1;
9734 }
9735 }
9736 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9737 if (UNTAG_Bool(REGB0)) {
9738 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[0])(fra.me.REG[0]);
9739 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9740 if (UNTAG_Bool(REGB0)) {
9741 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1311);
9742 }
9743 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1], closctx->REG[2]);
9744 }
9745 stack_frame_head = fra.me.prev;
9746 return;
9747 }
9748 val_t syntax___mmbuilder___AParam___position(val_t p0){
9749 struct {struct stack_frame_t me;} fra;
9750 val_t REGB0;
9751 val_t tmp;
9752 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9753 fra.me.file = LOCATE_syntax___mmbuilder;
9754 fra.me.line = 1318;
9755 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___position;
9756 fra.me.has_broke = 0;
9757 fra.me.REG_size = 1;
9758 fra.me.REG[0] = NIT_NULL;
9759 fra.me.REG[0] = p0;
9760 /* ./syntax//mmbuilder.nit:1318 */
9761 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___AParam____position(fra.me.REG[0])!=NIT_NULL);
9762 if (UNTAG_Bool(REGB0)) {
9763 } else {
9764 nit_abort("Uninitialized attribute %s", "_position", LOCATE_syntax___mmbuilder, 1318);
9765 }
9766 REGB0 = ATTR_syntax___mmbuilder___AParam____position(fra.me.REG[0]);
9767 stack_frame_head = fra.me.prev;
9768 return REGB0;
9769 }
9770 val_t syntax___mmbuilder___AParam___variable(val_t p0){
9771 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9772 val_t REGB0;
9773 val_t tmp;
9774 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9775 fra.me.file = LOCATE_syntax___mmbuilder;
9776 fra.me.line = 1320;
9777 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___variable;
9778 fra.me.has_broke = 0;
9779 fra.me.REG_size = 2;
9780 fra.me.REG[0] = NIT_NULL;
9781 fra.me.REG[1] = NIT_NULL;
9782 fra.me.REG[0] = p0;
9783 /* ./syntax//mmbuilder.nit:1320 */
9784 fra.me.REG[1] = fra.me.REG[0];
9785 fra.me.REG[1] = ATTR_syntax___mmbuilder___AParam____variable(fra.me.REG[1]);
9786 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
9787 if (UNTAG_Bool(REGB0)) {
9788 } else {
9789 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1320);
9790 }
9791 goto label1;
9792 label1: while(0);
9793 stack_frame_head = fra.me.prev;
9794 return fra.me.REG[1];
9795 }
9796 val_t syntax___mmbuilder___AParam___stype(val_t p0){
9797 struct {struct stack_frame_t me;} fra;
9798 val_t tmp;
9799 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9800 fra.me.file = LOCATE_syntax___mmbuilder;
9801 fra.me.line = 1323;
9802 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___stype;
9803 fra.me.has_broke = 0;
9804 fra.me.REG_size = 1;
9805 fra.me.REG[0] = NIT_NULL;
9806 fra.me.REG[0] = p0;
9807 /* ./syntax//mmbuilder.nit:1323 */
9808 fra.me.REG[0] = ATTR_syntax___mmbuilder___AParam____stype(fra.me.REG[0]);
9809 stack_frame_head = fra.me.prev;
9810 return fra.me.REG[0];
9811 }
9812 void syntax___mmbuilder___AParam___stype__eq(val_t p0, val_t p1){
9813 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9814 val_t tmp;
9815 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9816 fra.me.file = LOCATE_syntax___mmbuilder;
9817 fra.me.line = 1323;
9818 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___stype__eq;
9819 fra.me.has_broke = 0;
9820 fra.me.REG_size = 2;
9821 fra.me.REG[0] = NIT_NULL;
9822 fra.me.REG[1] = NIT_NULL;
9823 fra.me.REG[0] = p0;
9824 fra.me.REG[1] = p1;
9825 /* ./syntax//mmbuilder.nit:1323 */
9826 ATTR_syntax___mmbuilder___AParam____stype(fra.me.REG[0]) = fra.me.REG[1];
9827 stack_frame_head = fra.me.prev;
9828 return;
9829 }
9830 void syntax___mmbuilder___AParam___accept_property_verifier(val_t p0, val_t p1){
9831 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
9832 val_t REGB0;
9833 val_t REGB1;
9834 val_t REGB2;
9835 val_t REGB3;
9836 val_t tmp;
9837 static val_t once_value_2; /* Once value */
9838 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9839 fra.me.file = LOCATE_syntax___mmbuilder;
9840 fra.me.line = 1326;
9841 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___accept_property_verifier;
9842 fra.me.has_broke = 0;
9843 fra.me.REG_size = 7;
9844 fra.me.REG[0] = NIT_NULL;
9845 fra.me.REG[1] = NIT_NULL;
9846 fra.me.REG[2] = NIT_NULL;
9847 fra.me.REG[3] = NIT_NULL;
9848 fra.me.REG[4] = NIT_NULL;
9849 fra.me.REG[5] = NIT_NULL;
9850 fra.me.REG[6] = NIT_NULL;
9851 fra.me.REG[0] = p0;
9852 fra.me.REG[1] = p1;
9853 /* ./syntax//mmbuilder.nit:1326 */
9854 fra.me.REG[2] = fra.me.REG[0];
9855 fra.me.REG[3] = fra.me.REG[1];
9856 /* ./syntax//mmbuilder.nit:1328 */
9857 CALL_SUPER_syntax___mmbuilder___AParam___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9858 /* ./syntax//mmbuilder.nit:1329 */
9859 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9860 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[1])(fra.me.REG[1]);
9861 /* ./../lib/standard//collection//array.nit:24 */
9862 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
9863 if (UNTAG_Bool(REGB0)) {
9864 } else {
9865 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
9866 }
9867 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
9868 /* ./syntax//mmbuilder.nit:1329 */
9869 ATTR_syntax___mmbuilder___AParam____position(fra.me.REG[2]) = REGB0;
9870 /* ./syntax//mmbuilder.nit:1330 */
9871 fra.me.REG[1] = CALL_parser___parser_nodes___AParam___n_id(fra.me.REG[2])(fra.me.REG[2]);
9872 fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
9873 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_id(fra.me.REG[2])(fra.me.REG[2]);
9874 fra.me.REG[0] = NEW_ParamVariable_syntax___syntax_base___ParamVariable___init(fra.me.REG[1], fra.me.REG[0]);
9875 ATTR_syntax___mmbuilder___AParam____variable(fra.me.REG[2]) = fra.me.REG[0];
9876 /* ./syntax//mmbuilder.nit:1331 */
9877 fra.me.REG[0] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9878 fra.me.REG[0] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[0])(fra.me.REG[0]);
9879 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
9880 /* ./syntax//mmbuilder.nit:1332 */
9881 fra.me.REG[0] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9882 fra.me.REG[0] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[0])(fra.me.REG[0]);
9883 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
9884 /* ./syntax//mmbuilder.nit:1333 */
9885 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[2])(fra.me.REG[2]);
9886 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9887 if (UNTAG_Bool(REGB0)) {
9888 } else {
9889 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9890 if (UNTAG_Bool(REGB1)) {
9891 REGB1 = TAG_Bool(false);
9892 REGB0 = REGB1;
9893 } else {
9894 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
9895 REGB0 = REGB1;
9896 }
9897 }
9898 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9899 if (UNTAG_Bool(REGB0)) {
9900 /* ./syntax//mmbuilder.nit:1334 */
9901 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[2])(fra.me.REG[2]);
9902 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9903 if (UNTAG_Bool(REGB0)) {
9904 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1334);
9905 }
9906 fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
9907 /* ./syntax//mmbuilder.nit:1335 */
9908 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9909 if (UNTAG_Bool(REGB0)) {
9910 } else {
9911 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9912 if (UNTAG_Bool(REGB1)) {
9913 REGB1 = TAG_Bool(false);
9914 REGB0 = REGB1;
9915 } else {
9916 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
9917 REGB0 = REGB1;
9918 }
9919 }
9920 if (UNTAG_Bool(REGB0)) {
9921 /* ./syntax//mmbuilder.nit:1336 */
9922 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9923 REGB0 = TAG_Bool(true);
9924 CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
9925 /* ./syntax//mmbuilder.nit:1337 */
9926 goto label1;
9927 }
9928 /* ./syntax//mmbuilder.nit:1339 */
9929 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9930 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
9931 /* ./../lib/standard//collection//array.nit:269 */
9932 REGB0 = TAG_Int(0);
9933 /* ./../lib/standard//collection//array.nit:270 */
9934 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
9935 if (UNTAG_Bool(REGB1)) {
9936 } else {
9937 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
9938 }
9939 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
9940 /* ./../lib/standard//collection//array.nit:271 */
9941 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
9942 /* ./../lib/standard//collection//array.nit:272 */
9943 while(1) {
9944 /* ./../lib/standard//collection//array.nit:24 */
9945 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
9946 if (UNTAG_Bool(REGB1)) {
9947 } else {
9948 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
9949 }
9950 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
9951 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
9952 if (UNTAG_Bool(REGB2)) {
9953 } else {
9954 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9955 }
9956 /* ./../lib/standard//kernel.nit:232 */
9957 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
9958 /* ./../lib/standard//collection//array.nit:272 */
9959 if (UNTAG_Bool(REGB1)) {
9960 /* ./../lib/standard//collection//array.nit:273 */
9961 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9962 if (UNTAG_Bool(REGB1)) {
9963 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
9964 }
9965 /* ./../lib/standard//collection//array.nit:718 */
9966 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
9967 /* ./syntax//mmbuilder.nit:1340 */
9968 CALL_syntax___mmbuilder___AParam___stype__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
9969 /* ./syntax//mmbuilder.nit:1341 */
9970 REGB1 = CALL_syntax___mmbuilder___AParam___is_vararg(fra.me.REG[2])(fra.me.REG[2]);
9971 if (UNTAG_Bool(REGB1)) {
9972 /* ./syntax//mmbuilder.nit:1342 */
9973 fra.me.REG[6] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9974 REGB1 = CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[6])(fra.me.REG[6]);
9975 REGB2 = TAG_Int(1);
9976 /* ./../lib/standard//kernel.nit:236 */
9977 REGB2 = TAG_Int(-UNTAG_Int(REGB2));
9978 /* ./syntax//mmbuilder.nit:1342 */
9979 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
9980 if (UNTAG_Bool(REGB3)) {
9981 } else {
9982 /* ./../lib/standard//kernel.nit:227 */
9983 REGB2 = TAG_Bool((REGB1)==(REGB2));
9984 /* ./syntax//mmbuilder.nit:1342 */
9985 REGB3 = REGB2;
9986 }
9987 if (UNTAG_Bool(REGB3)) {
9988 /* ./syntax//mmbuilder.nit:1343 */
9989 fra.me.REG[6] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9990 REGB3 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[5])(fra.me.REG[5]);
9991 CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank__eq(fra.me.REG[6])(fra.me.REG[6], REGB3);
9992 } else {
9993 /* ./syntax//mmbuilder.nit:1345 */
9994 if (!once_value_2) {
9995 fra.me.REG[6] = BOX_NativeString("Error: A vararg parameter is already defined.");
9996 REGB3 = TAG_Int(45);
9997 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB3);
9998 once_value_2 = fra.me.REG[6];
9999 register_static_object(&once_value_2);
10000 } else fra.me.REG[6] = once_value_2;
10001 fra.me.REG[6] = fra.me.REG[6];
10002 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
10003 }
10004 /* ./syntax//mmbuilder.nit:1347 */
10005 fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
10006 fra.me.REG[0] = fra.me.REG[6];
10007 }
10008 /* ./syntax//mmbuilder.nit:1349 */
10009 fra.me.REG[5] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[5])(fra.me.REG[5]);
10010 CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
10011 /* ./../lib/standard//collection//array.nit:274 */
10012 REGB3 = TAG_Int(1);
10013 /* ./../lib/standard//kernel.nit:235 */
10014 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
10015 /* ./../lib/standard//collection//array.nit:274 */
10016 REGB0 = REGB3;
10017 } else {
10018 /* ./../lib/standard//collection//array.nit:272 */
10019 goto label3;
10020 }
10021 }
10022 label3: while(0);
10023 /* ./syntax//mmbuilder.nit:1351 */
10024 fra.me.REG[3] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10025 fra.me.REG[3] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[3])(fra.me.REG[3]);
10026 CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[3])(fra.me.REG[3]);
10027 }
10028 label1: while(0);
10029 stack_frame_head = fra.me.prev;
10030 return;
10031 }
10032 val_t syntax___mmbuilder___AParam___is_vararg(val_t p0){
10033 struct {struct stack_frame_t me;} fra;
10034 val_t REGB0;
10035 val_t REGB1;
10036 val_t tmp;
10037 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10038 fra.me.file = LOCATE_syntax___mmbuilder;
10039 fra.me.line = 1355;
10040 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___is_vararg;
10041 fra.me.has_broke = 0;
10042 fra.me.REG_size = 1;
10043 fra.me.REG[0] = NIT_NULL;
10044 fra.me.REG[0] = p0;
10045 /* ./syntax//mmbuilder.nit:1355 */
10046 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_dotdotdot(fra.me.REG[0])(fra.me.REG[0]);
10047 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10048 if (UNTAG_Bool(REGB0)) {
10049 } else {
10050 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10051 if (UNTAG_Bool(REGB1)) {
10052 REGB1 = TAG_Bool(false);
10053 REGB0 = REGB1;
10054 } else {
10055 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
10056 REGB0 = REGB1;
10057 }
10058 }
10059 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10060 goto label1;
10061 label1: while(0);
10062 stack_frame_head = fra.me.prev;
10063 return REGB0;
10064 }
10065 val_t syntax___mmbuilder___AClosureDecl___position(val_t p0){
10066 struct {struct stack_frame_t me;} fra;
10067 val_t REGB0;
10068 val_t tmp;
10069 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10070 fra.me.file = LOCATE_syntax___mmbuilder;
10071 fra.me.line = 1359;
10072 fra.me.meth = LOCATE_syntax___mmbuilder___AClosureDecl___position;
10073 fra.me.has_broke = 0;
10074 fra.me.REG_size = 1;
10075 fra.me.REG[0] = NIT_NULL;
10076 fra.me.REG[0] = p0;
10077 /* ./syntax//mmbuilder.nit:1359 */
10078 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___AClosureDecl____position(fra.me.REG[0])!=NIT_NULL);
10079 if (UNTAG_Bool(REGB0)) {
10080 } else {
10081 nit_abort("Uninitialized attribute %s", "_position", LOCATE_syntax___mmbuilder, 1359);
10082 }
10083 REGB0 = ATTR_syntax___mmbuilder___AClosureDecl____position(fra.me.REG[0]);
10084 stack_frame_head = fra.me.prev;
10085 return REGB0;
10086 }
10087 val_t syntax___mmbuilder___AClosureDecl___variable(val_t p0){
10088 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10089 val_t REGB0;
10090 val_t tmp;
10091 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10092 fra.me.file = LOCATE_syntax___mmbuilder;
10093 fra.me.line = 1361;
10094 fra.me.meth = LOCATE_syntax___mmbuilder___AClosureDecl___variable;
10095 fra.me.has_broke = 0;
10096 fra.me.REG_size = 2;
10097 fra.me.REG[0] = NIT_NULL;
10098 fra.me.REG[1] = NIT_NULL;
10099 fra.me.REG[0] = p0;
10100 /* ./syntax//mmbuilder.nit:1361 */
10101 fra.me.REG[1] = fra.me.REG[0];
10102 fra.me.REG[1] = ATTR_syntax___mmbuilder___AClosureDecl____variable(fra.me.REG[1]);
10103 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
10104 if (UNTAG_Bool(REGB0)) {
10105 } else {
10106 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1361);
10107 }
10108 goto label1;
10109 label1: while(0);
10110 stack_frame_head = fra.me.prev;
10111 return fra.me.REG[1];
10112 }
10113 void syntax___mmbuilder___AClosureDecl___accept_property_verifier(val_t p0, val_t p1){
10114 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
10115 val_t REGB0;
10116 val_t REGB1;
10117 val_t REGB2;
10118 val_t tmp;
10119 static val_t once_value_2; /* Once value */
10120 static val_t once_value_3; /* Once value */
10121 static val_t once_value_4; /* Once value */
10122 static val_t once_value_5; /* Once value */
10123 static val_t once_value_6; /* Once value */
10124 static val_t once_value_7; /* Once value */
10125 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10126 fra.me.file = LOCATE_syntax___mmbuilder;
10127 fra.me.line = 1364;
10128 fra.me.meth = LOCATE_syntax___mmbuilder___AClosureDecl___accept_property_verifier;
10129 fra.me.has_broke = 0;
10130 fra.me.REG_size = 11;
10131 fra.me.REG[0] = NIT_NULL;
10132 fra.me.REG[1] = NIT_NULL;
10133 fra.me.REG[2] = NIT_NULL;
10134 fra.me.REG[3] = NIT_NULL;
10135 fra.me.REG[4] = NIT_NULL;
10136 fra.me.REG[5] = NIT_NULL;
10137 fra.me.REG[6] = NIT_NULL;
10138 fra.me.REG[7] = NIT_NULL;
10139 fra.me.REG[8] = NIT_NULL;
10140 fra.me.REG[9] = NIT_NULL;
10141 fra.me.REG[10] = NIT_NULL;
10142 fra.me.REG[0] = p0;
10143 fra.me.REG[1] = p1;
10144 /* ./syntax//mmbuilder.nit:1364 */
10145 fra.me.REG[2] = fra.me.REG[0];
10146 fra.me.REG[3] = fra.me.REG[1];
10147 /* ./syntax//mmbuilder.nit:1366 */
10148 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10149 /* ./syntax//mmbuilder.nit:1367 */
10150 fra.me.REG[5] = NEW_SignatureBuilder_syntax___mmbuilder___SignatureBuilder___init();
10151 CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
10152 /* ./syntax//mmbuilder.nit:1368 */
10153 CALL_SUPER_syntax___mmbuilder___AClosureDecl___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
10154 /* ./syntax//mmbuilder.nit:1369 */
10155 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10156 REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
10157 if (UNTAG_Bool(REGB0)) {
10158 /* ./syntax//mmbuilder.nit:1370 */
10159 goto label1;
10160 }
10161 /* ./syntax//mmbuilder.nit:1372 */
10162 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10163 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
10164 /* ./syntax//mmbuilder.nit:1373 */
10165 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10166 if (UNTAG_Bool(REGB0)) {
10167 } else {
10168 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10169 if (UNTAG_Bool(REGB1)) {
10170 REGB1 = TAG_Bool(false);
10171 REGB0 = REGB1;
10172 } else {
10173 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
10174 REGB0 = REGB1;
10175 }
10176 }
10177 if (UNTAG_Bool(REGB0)) {
10178 /* ./syntax//mmbuilder.nit:1374 */
10179 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
10180 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
10181 fra.me.REG[5] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]);
10182 fra.me.REG[5] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[5]);
10183 fra.me.REG[1] = fra.me.REG[5];
10184 }
10185 /* ./syntax//mmbuilder.nit:1376 */
10186 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10187 if (UNTAG_Bool(REGB0)) {
10188 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1376);
10189 }
10190 fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[1])(fra.me.REG[1]);
10191 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10192 if (UNTAG_Bool(REGB0)) {
10193 } else {
10194 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10195 if (UNTAG_Bool(REGB1)) {
10196 REGB1 = TAG_Bool(false);
10197 REGB0 = REGB1;
10198 } else {
10199 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10200 REGB0 = REGB1;
10201 }
10202 }
10203 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10204 if (UNTAG_Bool(REGB0)) {
10205 fra.me.REG[5] = CALL_parser___parser_nodes___AClosureDecl___n_kwbreak(fra.me.REG[2])(fra.me.REG[2]);
10206 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10207 if (UNTAG_Bool(REGB0)) {
10208 } else {
10209 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10210 if (UNTAG_Bool(REGB1)) {
10211 REGB1 = TAG_Bool(false);
10212 REGB0 = REGB1;
10213 } else {
10214 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10215 REGB0 = REGB1;
10216 }
10217 }
10218 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10219 } else {
10220 REGB1 = TAG_Bool(false);
10221 REGB0 = REGB1;
10222 }
10223 if (UNTAG_Bool(REGB0)) {
10224 /* ./syntax//mmbuilder.nit:1377 */
10225 if (!once_value_2) {
10226 fra.me.REG[5] = BOX_NativeString("Syntax Error: A break block cannot have a return value.");
10227 REGB0 = TAG_Int(55);
10228 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
10229 once_value_2 = fra.me.REG[5];
10230 register_static_object(&once_value_2);
10231 } else fra.me.REG[5] = once_value_2;
10232 fra.me.REG[5] = fra.me.REG[5];
10233 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[5]);
10234 }
10235 /* ./syntax//mmbuilder.nit:1381 */
10236 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
10237 fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
10238 fra.me.REG[0] = CALL_metamodel___inheritance___MMModule___type_any(fra.me.REG[0])(fra.me.REG[0]);
10239 fra.me.REG[0] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[5], NIT_NULL, fra.me.REG[0]);
10240 /* ./syntax//mmbuilder.nit:1382 */
10241 if (!once_value_3) {
10242 if (!once_value_4) {
10243 fra.me.REG[5] = BOX_NativeString("break");
10244 REGB0 = TAG_Int(5);
10245 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
10246 once_value_4 = fra.me.REG[5];
10247 register_static_object(&once_value_4);
10248 } else fra.me.REG[5] = once_value_4;
10249 fra.me.REG[5] = fra.me.REG[5];
10250 fra.me.REG[5] = CALL_standard___symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
10251 once_value_3 = fra.me.REG[5];
10252 register_static_object(&once_value_3);
10253 } else fra.me.REG[5] = once_value_3;
10254 fra.me.REG[5] = fra.me.REG[5];
10255 REGB0 = TAG_Bool(false);
10256 REGB1 = TAG_Bool(true);
10257 fra.me.REG[0] = NEW_MMClosure_metamodel___static_type___MMClosure___init(fra.me.REG[5], fra.me.REG[0], REGB0, REGB1);
10258 /* ./syntax//mmbuilder.nit:1383 */
10259 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10260 if (UNTAG_Bool(REGB1)) {
10261 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1383);
10262 }
10263 fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
10264 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
10265 /* ./syntax//mmbuilder.nit:1385 */
10266 fra.me.REG[0] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10267 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
10268 /* ./syntax//mmbuilder.nit:1386 */
10269 fra.me.REG[5] = CALL_parser___parser_nodes___AClosureDecl___n_kwbreak(fra.me.REG[2])(fra.me.REG[2]);
10270 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10271 if (UNTAG_Bool(REGB1)) {
10272 } else {
10273 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10274 if (UNTAG_Bool(REGB0)) {
10275 REGB0 = TAG_Bool(false);
10276 REGB1 = REGB0;
10277 } else {
10278 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10279 REGB1 = REGB0;
10280 }
10281 }
10282 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
10283 fra.me.REG[5] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra.me.REG[2])(fra.me.REG[2]);
10284 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10285 if (UNTAG_Bool(REGB0)) {
10286 } else {
10287 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10288 if (UNTAG_Bool(REGB2)) {
10289 REGB2 = TAG_Bool(false);
10290 REGB0 = REGB2;
10291 } else {
10292 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10293 REGB0 = REGB2;
10294 }
10295 }
10296 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10297 fra.me.REG[1] = NEW_MMClosure_metamodel___static_type___MMClosure___init(fra.me.REG[0], fra.me.REG[1], REGB1, REGB0);
10298 /* ./syntax//mmbuilder.nit:1387 */
10299 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
10300 /* ./../lib/standard//collection//array.nit:269 */
10301 REGB0 = TAG_Int(0);
10302 /* ./../lib/standard//collection//array.nit:270 */
10303 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
10304 if (UNTAG_Bool(REGB1)) {
10305 } else {
10306 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
10307 }
10308 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
10309 /* ./../lib/standard//collection//array.nit:271 */
10310 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
10311 /* ./../lib/standard//collection//array.nit:272 */
10312 while(1) {
10313 /* ./../lib/standard//collection//array.nit:24 */
10314 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
10315 if (UNTAG_Bool(REGB1)) {
10316 } else {
10317 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
10318 }
10319 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
10320 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
10321 if (UNTAG_Bool(REGB2)) {
10322 } else {
10323 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10324 }
10325 /* ./../lib/standard//kernel.nit:232 */
10326 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
10327 /* ./../lib/standard//collection//array.nit:272 */
10328 if (UNTAG_Bool(REGB1)) {
10329 /* ./../lib/standard//collection//array.nit:273 */
10330 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
10331 if (UNTAG_Bool(REGB1)) {
10332 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
10333 }
10334 /* ./../lib/standard//collection//array.nit:718 */
10335 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
10336 /* ./syntax//mmbuilder.nit:1388 */
10337 fra.me.REG[8] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[7])(fra.me.REG[7]);
10338 fra.me.REG[8] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[8])(fra.me.REG[8]);
10339 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[8],fra.me.REG[0]));
10340 if (UNTAG_Bool(REGB1)) {
10341 } else {
10342 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
10343 REGB1 = REGB2;
10344 }
10345 if (UNTAG_Bool(REGB1)) {
10346 /* ./syntax//mmbuilder.nit:1389 */
10347 fra.me.REG[8] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10348 REGB1 = TAG_Int(5);
10349 fra.me.REG[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10350 if (!once_value_5) {
10351 fra.me.REG[10] = BOX_NativeString("A closure '!");
10352 REGB1 = TAG_Int(12);
10353 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
10354 once_value_5 = fra.me.REG[10];
10355 register_static_object(&once_value_5);
10356 } else fra.me.REG[10] = once_value_5;
10357 fra.me.REG[10] = fra.me.REG[10];
10358 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10359 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
10360 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10361 if (!once_value_6) {
10362 fra.me.REG[10] = BOX_NativeString("' already defined at ");
10363 REGB1 = TAG_Int(21);
10364 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
10365 once_value_6 = fra.me.REG[10];
10366 register_static_object(&once_value_6);
10367 } else fra.me.REG[10] = once_value_6;
10368 fra.me.REG[10] = fra.me.REG[10];
10369 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10370 fra.me.REG[7] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[7])(fra.me.REG[7]);
10371 fra.me.REG[7] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[7])(fra.me.REG[7]);
10372 fra.me.REG[10] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10373 fra.me.REG[10] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[10])(fra.me.REG[10]);
10374 fra.me.REG[10] = CALL_location___Location___relative_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
10375 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10376 if (!once_value_7) {
10377 fra.me.REG[10] = BOX_NativeString(".");
10378 REGB1 = TAG_Int(1);
10379 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
10380 once_value_7 = fra.me.REG[10];
10381 register_static_object(&once_value_7);
10382 } else fra.me.REG[10] = once_value_7;
10383 fra.me.REG[10] = fra.me.REG[10];
10384 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10385 fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
10386 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8], fra.me.REG[9]);
10387 /* ./syntax//mmbuilder.nit:1390 */
10388 goto label1;
10389 }
10390 /* ./../lib/standard//collection//array.nit:274 */
10391 REGB1 = TAG_Int(1);
10392 /* ./../lib/standard//kernel.nit:235 */
10393 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
10394 /* ./../lib/standard//collection//array.nit:274 */
10395 REGB0 = REGB1;
10396 } else {
10397 /* ./../lib/standard//collection//array.nit:272 */
10398 goto label8;
10399 }
10400 }
10401 label8: while(0);
10402 /* ./syntax//mmbuilder.nit:1393 */
10403 CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
10404 /* ./syntax//mmbuilder.nit:1394 */
10405 fra.me.REG[3] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
10406 /* ./../lib/standard//collection//array.nit:24 */
10407 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
10408 if (UNTAG_Bool(REGB0)) {
10409 } else {
10410 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
10411 }
10412 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
10413 /* ./syntax//mmbuilder.nit:1394 */
10414 ATTR_syntax___mmbuilder___AClosureDecl____position(fra.me.REG[2]) = REGB0;
10415 /* ./syntax//mmbuilder.nit:1395 */
10416 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
10417 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
10418 /* ./syntax//mmbuilder.nit:1396 */
10419 fra.me.REG[4] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10420 fra.me.REG[4] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
10421 fra.me.REG[3] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10422 fra.me.REG[1] = NEW_ClosureVariable_syntax___syntax_base___ClosureVariable___init(fra.me.REG[4], fra.me.REG[3], fra.me.REG[1]);
10423 ATTR_syntax___mmbuilder___AClosureDecl____variable(fra.me.REG[2]) = fra.me.REG[1];
10424 label1: while(0);
10425 stack_frame_head = fra.me.prev;
10426 return;
10427 }
10428 void syntax___mmbuilder___AType___check_visibility(val_t p0, val_t p1, val_t p2){
10429 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
10430 val_t REGB0;
10431 val_t REGB1;
10432 val_t REGB2;
10433 val_t tmp;
10434 static val_t once_value_2; /* Once value */
10435 static val_t once_value_3; /* Once value */
10436 static val_t once_value_4; /* Once value */
10437 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10438 fra.me.file = LOCATE_syntax___mmbuilder;
10439 fra.me.line = 1401;
10440 fra.me.meth = LOCATE_syntax___mmbuilder___AType___check_visibility;
10441 fra.me.has_broke = 0;
10442 fra.me.REG_size = 6;
10443 fra.me.REG[0] = NIT_NULL;
10444 fra.me.REG[1] = NIT_NULL;
10445 fra.me.REG[2] = NIT_NULL;
10446 fra.me.REG[3] = NIT_NULL;
10447 fra.me.REG[4] = NIT_NULL;
10448 fra.me.REG[5] = NIT_NULL;
10449 fra.me.REG[0] = p0;
10450 fra.me.REG[1] = p1;
10451 fra.me.REG[2] = p2;
10452 /* ./syntax//mmbuilder.nit:1404 */
10453 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
10454 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
10455 REGB1 = TAG_Int(3);
10456 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
10457 if (UNTAG_Bool(REGB2)) {
10458 } else {
10459 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10460 }
10461 /* ./../lib/standard//kernel.nit:233 */
10462 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
10463 /* ./syntax//mmbuilder.nit:1404 */
10464 if (UNTAG_Bool(REGB1)) {
10465 goto label1;
10466 }
10467 /* ./syntax//mmbuilder.nit:1405 */
10468 fra.me.REG[3] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
10469 /* ./syntax//mmbuilder.nit:1406 */
10470 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10471 if (UNTAG_Bool(REGB1)) {
10472 } else {
10473 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10474 if (UNTAG_Bool(REGB0)) {
10475 REGB0 = TAG_Bool(false);
10476 REGB1 = REGB0;
10477 } else {
10478 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10479 REGB1 = REGB0;
10480 }
10481 }
10482 if (UNTAG_Bool(REGB1)) {
10483 goto label1;
10484 }
10485 /* ./syntax//mmbuilder.nit:1407 */
10486 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10487 if (UNTAG_Bool(REGB1)) {
10488 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1407);
10489 }
10490 fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]);
10491 /* ./syntax//mmbuilder.nit:1408 */
10492 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
10493 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[4])(fra.me.REG[4]);
10494 REGB0 = TAG_Int(3);
10495 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10496 if (UNTAG_Bool(REGB2)) {
10497 } else {
10498 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10499 }
10500 /* ./../lib/standard//kernel.nit:233 */
10501 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
10502 /* ./syntax//mmbuilder.nit:1408 */
10503 if (UNTAG_Bool(REGB0)) {
10504 /* ./syntax//mmbuilder.nit:1409 */
10505 REGB0 = TAG_Int(5);
10506 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
10507 if (!once_value_2) {
10508 fra.me.REG[5] = BOX_NativeString("Access error: Class ");
10509 REGB0 = TAG_Int(20);
10510 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
10511 once_value_2 = fra.me.REG[5];
10512 register_static_object(&once_value_2);
10513 } else fra.me.REG[5] = once_value_2;
10514 fra.me.REG[5] = fra.me.REG[5];
10515 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
10516 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
10517 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
10518 if (!once_value_3) {
10519 fra.me.REG[3] = BOX_NativeString(" is private and cannot be used in the signature of the non-private property ");
10520 REGB0 = TAG_Int(76);
10521 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
10522 once_value_3 = fra.me.REG[3];
10523 register_static_object(&once_value_3);
10524 } else fra.me.REG[3] = once_value_3;
10525 fra.me.REG[3] = fra.me.REG[3];
10526 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
10527 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
10528 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
10529 if (!once_value_4) {
10530 fra.me.REG[3] = BOX_NativeString(".");
10531 REGB0 = TAG_Int(1);
10532 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
10533 once_value_4 = fra.me.REG[3];
10534 register_static_object(&once_value_4);
10535 } else fra.me.REG[3] = once_value_4;
10536 fra.me.REG[3] = fra.me.REG[3];
10537 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
10538 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
10539 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
10540 }
10541 /* ./syntax//mmbuilder.nit:1411 */
10542 fra.me.REG[0] = CALL_parser___parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
10543 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));
10544 label1: while(0);
10545 stack_frame_head = fra.me.prev;
10546 return;
10547 }
10548 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){
10549 struct {struct stack_frame_t me;} fra;
10550 fun_t CREG[1];
10551 val_t tmp;
10552 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10553 fra.me.file = LOCATE_syntax___mmbuilder;
10554 fra.me.line = 0;
10555 fra.me.meth = LOCATE_syntax___mmbuilder___AType___check_visibility;
10556 fra.me.has_broke = 0;
10557 fra.me.REG_size = 1;
10558 fra.me.REG[0] = NIT_NULL;
10559 fra.me.closure_ctx = closctx_param;
10560 fra.me.closure_funs = CREG;
10561 fra.me.REG[0] = p0;
10562 CREG[0] = clos_fun0;
10563 /* ./syntax//mmbuilder.nit:1412 */
10564 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1], closctx->REG[2]);
10565 stack_frame_head = fra.me.prev;
10566 return;
10567 }
10568 void syntax___mmbuilder___AExpr___accept_class_builder(val_t p0, val_t p1){
10569 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10570 val_t tmp;
10571 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10572 fra.me.file = LOCATE_syntax___mmbuilder;
10573 fra.me.line = 1418;
10574 fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___accept_class_builder;
10575 fra.me.has_broke = 0;
10576 fra.me.REG_size = 2;
10577 fra.me.REG[0] = NIT_NULL;
10578 fra.me.REG[1] = NIT_NULL;
10579 fra.me.REG[0] = p0;
10580 fra.me.REG[1] = p1;
10581 stack_frame_head = fra.me.prev;
10582 return;
10583 }
10584 void syntax___mmbuilder___AExpr___accept_property_builder(val_t p0, val_t p1){
10585 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10586 val_t tmp;
10587 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10588 fra.me.file = LOCATE_syntax___mmbuilder;
10589 fra.me.line = 1419;
10590 fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___accept_property_builder;
10591 fra.me.has_broke = 0;
10592 fra.me.REG_size = 2;
10593 fra.me.REG[0] = NIT_NULL;
10594 fra.me.REG[1] = NIT_NULL;
10595 fra.me.REG[0] = p0;
10596 fra.me.REG[1] = p1;
10597 stack_frame_head = fra.me.prev;
10598 return;
10599 }
10600 void syntax___mmbuilder___AExpr___accept_property_verifier(val_t p0, val_t p1){
10601 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10602 val_t tmp;
10603 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10604 fra.me.file = LOCATE_syntax___mmbuilder;
10605 fra.me.line = 1420;
10606 fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___accept_property_verifier;
10607 fra.me.has_broke = 0;
10608 fra.me.REG_size = 2;
10609 fra.me.REG[0] = NIT_NULL;
10610 fra.me.REG[1] = NIT_NULL;
10611 fra.me.REG[0] = p0;
10612 fra.me.REG[1] = p1;
10613 stack_frame_head = fra.me.prev;
10614 return;
10615 }