c_src: update
[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.nitni_local_ref_head = NULL;
21 fra.me.REG[0] = NIT_NULL;
22 fra.me.REG[1] = NIT_NULL;
23 fra.me.REG[2] = NIT_NULL;
24 fra.me.REG[3] = NIT_NULL;
25 fra.me.REG[4] = NIT_NULL;
26 fra.me.REG[5] = NIT_NULL;
27 fra.me.REG[6] = NIT_NULL;
28 fra.me.REG[7] = NIT_NULL;
29 fra.me.REG[0] = p0;
30 fra.me.REG[1] = p1;
31 fra.me.REG[2] = p2;
32 /* syntax/mmbuilder.nit:28 */
33 fra.me.REG[3] = NIT_NULL;
34 /* syntax/mmbuilder.nit:29 */
35 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_syntax___syntax_base___MMSrcLocalClass, ID_syntax___syntax_base___MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
36 if (UNTAG_Bool(REGB0)) {
37 /* syntax/mmbuilder.nit:30 */
38 fra.me.REG[4] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[1])(fra.me.REG[1]);
39 /* syntax/mmbuilder.nit:31 */
40 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
41 if (UNTAG_Bool(REGB0)) {
42 } else {
43 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
44 if (UNTAG_Bool(REGB1)) {
45 REGB1 = TAG_Bool(false);
46 REGB0 = REGB1;
47 } else {
48 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
49 REGB0 = REGB1;
50 }
51 }
52 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
53 if (UNTAG_Bool(REGB0)) {
54 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
55 if (UNTAG_Bool(REGB0)) {
56 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 31);
57 }
58 CALL_parser___parser_nodes___ANode___location(fra.me.REG[4])(fra.me.REG[4]);
59 }
60 }
61 /* syntax/mmbuilder.nit:34 */
62 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
63 /* ../lib/standard/collection/array.nit:266 */
64 fra.me.REG[5] = fra.me.REG[2];
65 /* ../lib/standard/collection/array.nit:269 */
66 REGB0 = TAG_Int(0);
67 /* ../lib/standard/collection/array.nit:270 */
68 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
69 if (UNTAG_Bool(REGB1)) {
70 } else {
71 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
72 }
73 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
74 /* ../lib/standard/collection/array.nit:271 */
75 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
76 /* ../lib/standard/collection/array.nit:272 */
77 while(1) {
78 /* ../lib/standard/collection/array.nit:24 */
79 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
80 if (UNTAG_Bool(REGB1)) {
81 } else {
82 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
83 }
84 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
85 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
86 if (UNTAG_Bool(REGB2)) {
87 } else {
88 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
89 }
90 /* ../lib/standard/kernel.nit:232 */
91 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
92 /* ../lib/standard/collection/array.nit:272 */
93 if (UNTAG_Bool(REGB1)) {
94 /* ../lib/standard/collection/array.nit:273 */
95 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
96 if (UNTAG_Bool(REGB1)) {
97 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
98 }
99 /* ../lib/standard/collection/array.nit:718 */
100 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
101 /* syntax/mmbuilder.nit:36 */
102 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[7])(fra.me.REG[7]);
103 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
104 /* ../lib/standard/collection/array.nit:274 */
105 REGB1 = TAG_Int(1);
106 /* ../lib/standard/kernel.nit:235 */
107 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
108 /* ../lib/standard/collection/array.nit:274 */
109 REGB0 = REGB1;
110 } else {
111 /* ../lib/standard/collection/array.nit:272 */
112 goto label1;
113 }
114 }
115 label1: while(0);
116 /* syntax/mmbuilder.nit:38 */
117 REGB0 = TAG_Int(7);
118 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
119 if (!once_value_2) {
120 fra.me.REG[5] = BOX_NativeString("Property inheritance conflict in class ");
121 REGB0 = TAG_Int(39);
122 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
123 once_value_2 = fra.me.REG[5];
124 register_static_object(&once_value_2);
125 } else fra.me.REG[5] = once_value_2;
126 fra.me.REG[5] = fra.me.REG[5];
127 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
128 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
129 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1]);
130 if (!once_value_3) {
131 fra.me.REG[1] = BOX_NativeString(" for `");
132 REGB0 = TAG_Int(6);
133 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
134 once_value_3 = fra.me.REG[1];
135 register_static_object(&once_value_3);
136 } else fra.me.REG[1] = once_value_3;
137 fra.me.REG[1] = fra.me.REG[1];
138 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1]);
139 fra.me.REG[2] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]);
140 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
141 if (UNTAG_Bool(REGB0)) {
142 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 38);
143 }
144 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
145 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
146 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
147 if (!once_value_4) {
148 fra.me.REG[2] = BOX_NativeString("': conflicting properties are defined in ");
149 REGB0 = TAG_Int(41);
150 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
151 once_value_4 = fra.me.REG[2];
152 register_static_object(&once_value_4);
153 } else fra.me.REG[2] = once_value_4;
154 fra.me.REG[2] = fra.me.REG[2];
155 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
156 if (!once_value_5) {
157 fra.me.REG[2] = BOX_NativeString(", ");
158 REGB0 = TAG_Int(2);
159 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
160 once_value_5 = fra.me.REG[2];
161 register_static_object(&once_value_5);
162 } else fra.me.REG[2] = once_value_5;
163 fra.me.REG[2] = fra.me.REG[2];
164 fra.me.REG[2] = CALL_standard___string___Collection___join(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
165 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
166 if (!once_value_6) {
167 fra.me.REG[2] = BOX_NativeString("");
168 REGB0 = TAG_Int(0);
169 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
170 once_value_6 = fra.me.REG[2];
171 register_static_object(&once_value_6);
172 } else fra.me.REG[2] = once_value_6;
173 fra.me.REG[2] = fra.me.REG[2];
174 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
175 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
176 CALL_toolcontext___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[6]);
177 stack_frame_head = fra.me.prev;
178 return;
179 }
180 val_t syntax___mmbuilder___CSHSorter___compare(val_t p0, val_t p1, val_t p2){
181 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
182 val_t REGB0;
183 val_t REGB1;
184 val_t tmp;
185 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
186 fra.me.file = LOCATE_syntax___mmbuilder;
187 fra.me.line = 45;
188 fra.me.meth = LOCATE_syntax___mmbuilder___CSHSorter___compare;
189 fra.me.has_broke = 0;
190 fra.me.REG_size = 3;
191 fra.me.nitni_local_ref_head = NULL;
192 fra.me.REG[0] = NIT_NULL;
193 fra.me.REG[1] = NIT_NULL;
194 fra.me.REG[2] = NIT_NULL;
195 fra.me.REG[0] = p0;
196 fra.me.REG[1] = p1;
197 fra.me.REG[2] = p2;
198 /* syntax/mmbuilder.nit:47 */
199 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[1])(fra.me.REG[1]);
200 REGB0 = CALL_metamodel___partial_order___PartialOrderElement___rank(fra.me.REG[1])(fra.me.REG[1]);
201 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[2])(fra.me.REG[2]);
202 REGB1 = CALL_metamodel___partial_order___PartialOrderElement___rank(fra.me.REG[2])(fra.me.REG[2]);
203 REGB1 = CALL_standard___kernel___Comparable_____leqg(REGB0)(REGB0, REGB1);
204 goto label1;
205 label1: while(0);
206 stack_frame_head = fra.me.prev;
207 return REGB1;
208 }
209 void syntax___mmbuilder___CSHSorter___init(val_t p0, int* init_table){
210 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___CSHSorter].i;
211 struct {struct stack_frame_t me;} fra;
212 val_t tmp;
213 if (init_table[itpos0]) return;
214 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
215 fra.me.file = LOCATE_syntax___mmbuilder;
216 fra.me.line = 50;
217 fra.me.meth = LOCATE_syntax___mmbuilder___CSHSorter___init;
218 fra.me.has_broke = 0;
219 fra.me.REG_size = 1;
220 fra.me.nitni_local_ref_head = NULL;
221 fra.me.REG[0] = NIT_NULL;
222 fra.me.REG[0] = p0;
223 stack_frame_head = fra.me.prev;
224 init_table[itpos0] = 1;
225 return;
226 }
227 void syntax___mmbuilder___MMSrcModule___do_mmbuilder(val_t p0, val_t p1){
228 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
229 val_t REGB0;
230 val_t REGB1;
231 val_t REGB2;
232 val_t tmp;
233 static val_t once_value_3; /* Once value */
234 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
235 fra.me.file = LOCATE_syntax___mmbuilder;
236 fra.me.line = 54;
237 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcModule___do_mmbuilder;
238 fra.me.has_broke = 0;
239 fra.me.REG_size = 8;
240 fra.me.nitni_local_ref_head = NULL;
241 fra.me.REG[0] = NIT_NULL;
242 fra.me.REG[1] = NIT_NULL;
243 fra.me.REG[2] = NIT_NULL;
244 fra.me.REG[3] = NIT_NULL;
245 fra.me.REG[4] = NIT_NULL;
246 fra.me.REG[5] = NIT_NULL;
247 fra.me.REG[6] = NIT_NULL;
248 fra.me.REG[7] = NIT_NULL;
249 fra.me.REG[0] = p0;
250 fra.me.REG[1] = p1;
251 /* syntax/mmbuilder.nit:59 */
252 CALL_metamodel___inheritance___MMModule___import_global_classes(fra.me.REG[0])(fra.me.REG[0]);
253 /* syntax/mmbuilder.nit:62 */
254 fra.me.REG[2] = NEW_ClassBuilderVisitor_syntax___mmbuilder___ClassBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]);
255 /* syntax/mmbuilder.nit:63 */
256 fra.me.REG[3] = CALL_syntax___syntax_base___MMSrcModule___node(fra.me.REG[0])(fra.me.REG[0]);
257 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
258 /* syntax/mmbuilder.nit:64 */
259 CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
260 /* syntax/mmbuilder.nit:66 */
261 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra.me.REG[0])(fra.me.REG[0]);
262 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
263 if (UNTAG_Bool(REGB0)) {
264 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 66);
265 }
266 fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[3])(fra.me.REG[3]);
267 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
268 if (UNTAG_Bool(REGB0)) {
269 /* syntax/mmbuilder.nit:67 */
270 CALL_syntax___mmbuilder___MMSrcModule___process_default_classes(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
271 }
272 /* syntax/mmbuilder.nit:71 */
273 CALL_metamodel___inheritance___MMModule___import_local_classes(fra.me.REG[0])(fra.me.REG[0]);
274 /* syntax/mmbuilder.nit:74 */
275 fra.me.REG[3] = NEW_ClassSpecializationBuilderVisitor_syntax___mmbuilder___ClassSpecializationBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]);
276 /* syntax/mmbuilder.nit:75 */
277 fra.me.REG[2] = CALL_syntax___syntax_base___MMSrcModule___node(fra.me.REG[0])(fra.me.REG[0]);
278 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
279 /* syntax/mmbuilder.nit:76 */
280 CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
281 /* syntax/mmbuilder.nit:79 */
282 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
283 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));
284 /* syntax/mmbuilder.nit:85 */
285 CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
286 /* syntax/mmbuilder.nit:90 */
287 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___class_specialization_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
288 fra.me.REG[2] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[2])(fra.me.REG[2]);
289 /* syntax/mmbuilder.nit:93 */
290 if (!once_value_3) {
291 fra.me.REG[3] = NEW_CSHSorter_syntax___mmbuilder___CSHSorter___init();
292 once_value_3 = fra.me.REG[3];
293 register_static_object(&once_value_3);
294 } else fra.me.REG[3] = once_value_3;
295 fra.me.REG[3] = fra.me.REG[3];
296 /* syntax/mmbuilder.nit:94 */
297 CALL_standard___collection___sorter___AbstractSorter___sort(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
298 /* syntax/mmbuilder.nit:97 */
299 fra.me.REG[3] = NEW_ClassAncestorBuilder_syntax___mmbuilder___ClassAncestorBuilder___init(fra.me.REG[1], fra.me.REG[0]);
300 /* ../lib/standard/collection/array.nit:266 */
301 fra.me.REG[4] = fra.me.REG[2];
302 /* ../lib/standard/collection/array.nit:269 */
303 REGB0 = TAG_Int(0);
304 /* ../lib/standard/collection/array.nit:270 */
305 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
306 if (UNTAG_Bool(REGB1)) {
307 } else {
308 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
309 }
310 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
311 /* ../lib/standard/collection/array.nit:271 */
312 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
313 /* ../lib/standard/collection/array.nit:272 */
314 while(1) {
315 /* ../lib/standard/collection/array.nit:24 */
316 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
317 if (UNTAG_Bool(REGB1)) {
318 } else {
319 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
320 }
321 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
322 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
323 if (UNTAG_Bool(REGB2)) {
324 } else {
325 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
326 }
327 /* ../lib/standard/kernel.nit:232 */
328 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
329 /* ../lib/standard/collection/array.nit:272 */
330 if (UNTAG_Bool(REGB1)) {
331 /* ../lib/standard/collection/array.nit:273 */
332 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
333 if (UNTAG_Bool(REGB1)) {
334 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
335 }
336 /* ../lib/standard/collection/array.nit:718 */
337 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
338 /* syntax/mmbuilder.nit:99 */
339 CALL_syntax___mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
340 /* syntax/mmbuilder.nit:100 */
341 CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
342 /* syntax/mmbuilder.nit:101 */
343 CALL_metamodel___inheritance___MMLocalClass___compute_ancestors(fra.me.REG[6])(fra.me.REG[6]);
344 /* ../lib/standard/collection/array.nit:274 */
345 REGB1 = TAG_Int(1);
346 /* ../lib/standard/kernel.nit:235 */
347 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
348 /* ../lib/standard/collection/array.nit:274 */
349 REGB0 = REGB1;
350 } else {
351 /* ../lib/standard/collection/array.nit:272 */
352 goto label4;
353 }
354 }
355 label4: while(0);
356 /* syntax/mmbuilder.nit:105 */
357 fra.me.REG[3] = NEW_ClassVerifierVisitor_syntax___mmbuilder___ClassVerifierVisitor___init(fra.me.REG[1], fra.me.REG[0]);
358 /* ../lib/standard/collection/array.nit:266 */
359 fra.me.REG[5] = fra.me.REG[2];
360 /* ../lib/standard/collection/array.nit:269 */
361 REGB0 = TAG_Int(0);
362 /* ../lib/standard/collection/array.nit:270 */
363 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
364 if (UNTAG_Bool(REGB1)) {
365 } else {
366 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
367 }
368 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
369 /* ../lib/standard/collection/array.nit:271 */
370 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
371 /* ../lib/standard/collection/array.nit:272 */
372 while(1) {
373 /* ../lib/standard/collection/array.nit:24 */
374 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
375 if (UNTAG_Bool(REGB1)) {
376 } else {
377 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
378 }
379 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
380 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
381 if (UNTAG_Bool(REGB2)) {
382 } else {
383 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
384 }
385 /* ../lib/standard/kernel.nit:232 */
386 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
387 /* ../lib/standard/collection/array.nit:272 */
388 if (UNTAG_Bool(REGB1)) {
389 /* ../lib/standard/collection/array.nit:273 */
390 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
391 if (UNTAG_Bool(REGB1)) {
392 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
393 }
394 /* ../lib/standard/collection/array.nit:718 */
395 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
396 /* syntax/mmbuilder.nit:107 */
397 CALL_syntax___mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
398 /* ../lib/standard/collection/array.nit:274 */
399 REGB1 = TAG_Int(1);
400 /* ../lib/standard/kernel.nit:235 */
401 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
402 /* ../lib/standard/collection/array.nit:274 */
403 REGB0 = REGB1;
404 } else {
405 /* ../lib/standard/collection/array.nit:272 */
406 goto label5;
407 }
408 }
409 label5: while(0);
410 /* syntax/mmbuilder.nit:109 */
411 CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
412 /* syntax/mmbuilder.nit:112 */
413 fra.me.REG[3] = NEW_PropertyBuilderVisitor_syntax___mmbuilder___PropertyBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]);
414 /* ../lib/standard/collection/array.nit:266 */
415 fra.me.REG[4] = fra.me.REG[2];
416 /* ../lib/standard/collection/array.nit:269 */
417 REGB0 = TAG_Int(0);
418 /* ../lib/standard/collection/array.nit:270 */
419 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
420 if (UNTAG_Bool(REGB1)) {
421 } else {
422 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
423 }
424 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
425 /* ../lib/standard/collection/array.nit:271 */
426 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
427 /* ../lib/standard/collection/array.nit:272 */
428 while(1) {
429 /* ../lib/standard/collection/array.nit:24 */
430 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
431 if (UNTAG_Bool(REGB1)) {
432 } else {
433 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
434 }
435 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
436 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
437 if (UNTAG_Bool(REGB2)) {
438 } else {
439 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
440 }
441 /* ../lib/standard/kernel.nit:232 */
442 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
443 /* ../lib/standard/collection/array.nit:272 */
444 if (UNTAG_Bool(REGB1)) {
445 /* ../lib/standard/collection/array.nit:273 */
446 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
447 if (UNTAG_Bool(REGB1)) {
448 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
449 }
450 /* ../lib/standard/collection/array.nit:718 */
451 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
452 /* syntax/mmbuilder.nit:115 */
453 CALL_syntax___mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
454 /* syntax/mmbuilder.nit:118 */
455 REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[6], COLOR_syntax___syntax_base___MMSrcLocalClass, ID_syntax___syntax_base___MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
456 if (UNTAG_Bool(REGB1)) {
457 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
458 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[7])(fra.me.REG[7]);
459 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[7],fra.me.REG[6]));
460 if (UNTAG_Bool(REGB1)) {
461 } else {
462 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
463 REGB1 = REGB2;
464 }
465 } else {
466 REGB2 = TAG_Bool(false);
467 REGB1 = REGB2;
468 }
469 if (UNTAG_Bool(REGB1)) {
470 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
471 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[7])(fra.me.REG[7]);
472 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
473 } else {
474 REGB2 = TAG_Bool(false);
475 REGB1 = REGB2;
476 }
477 if (UNTAG_Bool(REGB1)) {
478 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
479 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[7])(fra.me.REG[7]);
480 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
481 } else {
482 REGB2 = TAG_Bool(false);
483 REGB1 = REGB2;
484 }
485 if (UNTAG_Bool(REGB1)) {
486 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
487 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[7])(fra.me.REG[7]);
488 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
489 } else {
490 REGB2 = TAG_Bool(false);
491 REGB1 = REGB2;
492 }
493 if (UNTAG_Bool(REGB1)) {
494 /* syntax/mmbuilder.nit:119 */
495 CALL_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
496 }
497 /* ../lib/standard/collection/array.nit:274 */
498 REGB1 = TAG_Int(1);
499 /* ../lib/standard/kernel.nit:235 */
500 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
501 /* ../lib/standard/collection/array.nit:274 */
502 REGB0 = REGB1;
503 } else {
504 /* ../lib/standard/collection/array.nit:272 */
505 goto label6;
506 }
507 }
508 label6: while(0);
509 /* syntax/mmbuilder.nit:124 */
510 CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
511 /* syntax/mmbuilder.nit:127 */
512 fra.me.REG[0] = NEW_PropertyVerifierVisitor_syntax___mmbuilder___PropertyVerifierVisitor___init(fra.me.REG[1], fra.me.REG[0]);
513 /* ../lib/standard/collection/array.nit:269 */
514 REGB0 = TAG_Int(0);
515 /* ../lib/standard/collection/array.nit:270 */
516 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
517 if (UNTAG_Bool(REGB1)) {
518 } else {
519 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
520 }
521 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
522 /* ../lib/standard/collection/array.nit:271 */
523 fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
524 /* ../lib/standard/collection/array.nit:272 */
525 while(1) {
526 /* ../lib/standard/collection/array.nit:24 */
527 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
528 if (UNTAG_Bool(REGB1)) {
529 } else {
530 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
531 }
532 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
533 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
534 if (UNTAG_Bool(REGB2)) {
535 } else {
536 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
537 }
538 /* ../lib/standard/kernel.nit:232 */
539 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
540 /* ../lib/standard/collection/array.nit:272 */
541 if (UNTAG_Bool(REGB1)) {
542 /* ../lib/standard/collection/array.nit:273 */
543 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
544 if (UNTAG_Bool(REGB1)) {
545 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
546 }
547 /* ../lib/standard/collection/array.nit:718 */
548 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
549 /* syntax/mmbuilder.nit:129 */
550 CALL_syntax___mmbuilder___MMLocalClass___accept_properties_visitor(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
551 /* ../lib/standard/collection/array.nit:274 */
552 REGB1 = TAG_Int(1);
553 /* ../lib/standard/kernel.nit:235 */
554 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
555 /* ../lib/standard/collection/array.nit:274 */
556 REGB0 = REGB1;
557 } else {
558 /* ../lib/standard/collection/array.nit:272 */
559 goto label7;
560 }
561 }
562 label7: while(0);
563 /* syntax/mmbuilder.nit:132 */
564 CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
565 stack_frame_head = fra.me.prev;
566 return;
567 }
568 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){
569 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
570 val_t REGB0;
571 val_t REGB1;
572 val_t REGB2;
573 fun_t CREG[1];
574 val_t tmp;
575 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
576 fra.me.file = LOCATE_syntax___mmbuilder;
577 fra.me.line = 0;
578 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcModule___do_mmbuilder;
579 fra.me.has_broke = 0;
580 fra.me.REG_size = 2;
581 fra.me.nitni_local_ref_head = NULL;
582 fra.me.REG[0] = NIT_NULL;
583 fra.me.REG[1] = NIT_NULL;
584 fra.me.closure_ctx = closctx_param;
585 fra.me.closure_funs = CREG;
586 fra.me.REG[0] = p0;
587 CREG[0] = clos_fun0;
588 /* syntax/mmbuilder.nit:80 */
589 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
590 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
591 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
592 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___visibility_for(closctx->REG[0])(closctx->REG[0], fra.me.REG[1]);
593 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
594 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[1])(fra.me.REG[1]);
595 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
596 if (UNTAG_Bool(REGB2)) {
597 } else {
598 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
599 }
600 /* ../lib/standard/kernel.nit:232 */
601 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
602 /* syntax/mmbuilder.nit:80 */
603 if (UNTAG_Bool(REGB1)) {
604 /* syntax/mmbuilder.nit:81 */
605 goto label2;
606 }
607 /* syntax/mmbuilder.nit:83 */
608 CALL_metamodel___inheritance___MMLocalClass___compute_super_classes(fra.me.REG[0])(fra.me.REG[0]);
609 label2: while(0);
610 stack_frame_head = fra.me.prev;
611 return;
612 }
613 void syntax___mmbuilder___MMSrcModule___process_default_classes(val_t p0, val_t p1){
614 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
615 val_t REGB0;
616 val_t tmp;
617 static val_t once_value_1; /* Once value */
618 static val_t once_value_2; /* Once value */
619 static val_t once_value_3; /* Once value */
620 static val_t once_value_4; /* Once value */
621 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
622 fra.me.file = LOCATE_syntax___mmbuilder;
623 fra.me.line = 135;
624 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcModule___process_default_classes;
625 fra.me.has_broke = 0;
626 fra.me.REG_size = 4;
627 fra.me.nitni_local_ref_head = NULL;
628 fra.me.REG[0] = NIT_NULL;
629 fra.me.REG[1] = NIT_NULL;
630 fra.me.REG[2] = NIT_NULL;
631 fra.me.REG[3] = NIT_NULL;
632 fra.me.REG[0] = p0;
633 fra.me.REG[1] = p1;
634 /* syntax/mmbuilder.nit:138 */
635 if (!once_value_1) {
636 if (!once_value_2) {
637 fra.me.REG[1] = BOX_NativeString("Object");
638 REGB0 = TAG_Int(6);
639 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
640 once_value_2 = fra.me.REG[1];
641 register_static_object(&once_value_2);
642 } else fra.me.REG[1] = once_value_2;
643 fra.me.REG[1] = fra.me.REG[1];
644 fra.me.REG[1] = CALL_standard___symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
645 once_value_1 = fra.me.REG[1];
646 register_static_object(&once_value_1);
647 } else fra.me.REG[1] = once_value_1;
648 fra.me.REG[1] = fra.me.REG[1];
649 /* syntax/mmbuilder.nit:139 */
650 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
651 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
652 if (UNTAG_Bool(REGB0)) {
653 /* syntax/mmbuilder.nit:140 */
654 REGB0 = TAG_Int(0);
655 fra.me.REG[2] = NEW_MMSrcLocalClass_syntax___syntax_base___MMSrcLocalClass___init(fra.me.REG[0], fra.me.REG[1], NIT_NULL, REGB0);
656 /* syntax/mmbuilder.nit:141 */
657 CALL_metamodel___abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
658 /* syntax/mmbuilder.nit:142 */
659 fra.me.REG[3] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra.me.REG[0])(fra.me.REG[0]);
660 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[2]);
661 }
662 /* syntax/mmbuilder.nit:144 */
663 if (!once_value_3) {
664 if (!once_value_4) {
665 fra.me.REG[2] = BOX_NativeString("Bool");
666 REGB0 = TAG_Int(4);
667 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
668 once_value_4 = fra.me.REG[2];
669 register_static_object(&once_value_4);
670 } else fra.me.REG[2] = once_value_4;
671 fra.me.REG[2] = fra.me.REG[2];
672 fra.me.REG[2] = CALL_standard___symbol___String___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
673 once_value_3 = fra.me.REG[2];
674 register_static_object(&once_value_3);
675 } else fra.me.REG[2] = once_value_3;
676 fra.me.REG[2] = fra.me.REG[2];
677 fra.me.REG[1] = fra.me.REG[2];
678 /* syntax/mmbuilder.nit:145 */
679 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
680 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
681 if (UNTAG_Bool(REGB0)) {
682 /* syntax/mmbuilder.nit:146 */
683 REGB0 = TAG_Int(0);
684 fra.me.REG[2] = NEW_MMSrcLocalClass_syntax___syntax_base___MMSrcLocalClass___init(fra.me.REG[0], fra.me.REG[1], NIT_NULL, REGB0);
685 /* syntax/mmbuilder.nit:147 */
686 CALL_metamodel___abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
687 /* syntax/mmbuilder.nit:148 */
688 fra.me.REG[0] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra.me.REG[0])(fra.me.REG[0]);
689 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
690 }
691 stack_frame_head = fra.me.prev;
692 return;
693 }
694 void syntax___mmbuilder___MMLocalClass___accept_class_visitor(val_t p0, val_t p1){
695 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
696 val_t tmp;
697 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
698 fra.me.file = LOCATE_syntax___mmbuilder;
699 fra.me.line = 154;
700 fra.me.meth = LOCATE_syntax___mmbuilder___MMLocalClass___accept_class_visitor;
701 fra.me.has_broke = 0;
702 fra.me.REG_size = 2;
703 fra.me.nitni_local_ref_head = NULL;
704 fra.me.REG[0] = NIT_NULL;
705 fra.me.REG[1] = NIT_NULL;
706 fra.me.REG[0] = p0;
707 fra.me.REG[1] = p1;
708 stack_frame_head = fra.me.prev;
709 return;
710 }
711 void syntax___mmbuilder___MMLocalClass___accept_properties_visitor(val_t p0, val_t p1){
712 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
713 val_t tmp;
714 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
715 fra.me.file = LOCATE_syntax___mmbuilder;
716 fra.me.line = 159;
717 fra.me.meth = LOCATE_syntax___mmbuilder___MMLocalClass___accept_properties_visitor;
718 fra.me.has_broke = 0;
719 fra.me.REG_size = 2;
720 fra.me.nitni_local_ref_head = NULL;
721 fra.me.REG[0] = NIT_NULL;
722 fra.me.REG[1] = NIT_NULL;
723 fra.me.REG[0] = p0;
724 fra.me.REG[1] = p1;
725 stack_frame_head = fra.me.prev;
726 return;
727 }
728 void syntax___mmbuilder___MMSrcLocalClass___accept_class_visitor(val_t p0, val_t p1){
729 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
730 val_t REGB0;
731 val_t REGB1;
732 val_t tmp;
733 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
734 fra.me.file = LOCATE_syntax___mmbuilder;
735 fra.me.line = 166;
736 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___accept_class_visitor;
737 fra.me.has_broke = 0;
738 fra.me.REG_size = 3;
739 fra.me.nitni_local_ref_head = NULL;
740 fra.me.REG[0] = NIT_NULL;
741 fra.me.REG[1] = NIT_NULL;
742 fra.me.REG[2] = NIT_NULL;
743 fra.me.REG[0] = p0;
744 fra.me.REG[1] = p1;
745 /* syntax/mmbuilder.nit:168 */
746 fra.me.REG[0] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[0])(fra.me.REG[0]);
747 /* syntax/mmbuilder.nit:169 */
748 while(1) {
749 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
750 if (UNTAG_Bool(REGB0)) {
751 } else {
752 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
753 if (UNTAG_Bool(REGB1)) {
754 REGB1 = TAG_Bool(false);
755 REGB0 = REGB1;
756 } else {
757 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
758 REGB0 = REGB1;
759 }
760 }
761 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
762 if (UNTAG_Bool(REGB0)) {
763 /* syntax/mmbuilder.nit:170 */
764 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
765 /* syntax/mmbuilder.nit:171 */
766 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
767 if (UNTAG_Bool(REGB0)) {
768 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 171);
769 }
770 fra.me.REG[2] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[0])(fra.me.REG[0]);
771 fra.me.REG[0] = fra.me.REG[2];
772 } else {
773 /* syntax/mmbuilder.nit:169 */
774 goto label1;
775 }
776 }
777 label1: while(0);
778 stack_frame_head = fra.me.prev;
779 return;
780 }
781 void syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor(val_t p0, val_t p1){
782 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
783 val_t REGB0;
784 val_t REGB1;
785 val_t tmp;
786 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
787 fra.me.file = LOCATE_syntax___mmbuilder;
788 fra.me.line = 175;
789 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor;
790 fra.me.has_broke = 0;
791 fra.me.REG_size = 4;
792 fra.me.nitni_local_ref_head = NULL;
793 fra.me.REG[0] = NIT_NULL;
794 fra.me.REG[1] = NIT_NULL;
795 fra.me.REG[2] = NIT_NULL;
796 fra.me.REG[3] = NIT_NULL;
797 fra.me.REG[0] = p0;
798 fra.me.REG[1] = p1;
799 /* syntax/mmbuilder.nit:178 */
800 fra.me.REG[2] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[0])(fra.me.REG[0]);
801 /* syntax/mmbuilder.nit:179 */
802 while(1) {
803 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
804 if (UNTAG_Bool(REGB0)) {
805 } else {
806 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
807 if (UNTAG_Bool(REGB1)) {
808 REGB1 = TAG_Bool(false);
809 REGB0 = REGB1;
810 } else {
811 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
812 REGB0 = REGB1;
813 }
814 }
815 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
816 if (UNTAG_Bool(REGB0)) {
817 /* syntax/mmbuilder.nit:180 */
818 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
819 /* syntax/mmbuilder.nit:181 */
820 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
821 if (UNTAG_Bool(REGB0)) {
822 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 181);
823 }
824 fra.me.REG[3] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[2])(fra.me.REG[2]);
825 fra.me.REG[2] = fra.me.REG[3];
826 } else {
827 /* syntax/mmbuilder.nit:179 */
828 goto label1;
829 }
830 }
831 label1: while(0);
832 /* syntax/mmbuilder.nit:184 */
833 fra.me.REG[0] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
834 fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead___values(fra.me.REG[0])(fra.me.REG[0]);
835 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));
836 stack_frame_head = fra.me.prev;
837 return;
838 }
839 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){
840 struct {struct stack_frame_t me;} fra;
841 fun_t CREG[1];
842 val_t tmp;
843 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
844 fra.me.file = LOCATE_syntax___mmbuilder;
845 fra.me.line = 0;
846 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor;
847 fra.me.has_broke = 0;
848 fra.me.REG_size = 1;
849 fra.me.nitni_local_ref_head = NULL;
850 fra.me.REG[0] = NIT_NULL;
851 fra.me.closure_ctx = closctx_param;
852 fra.me.closure_funs = CREG;
853 fra.me.REG[0] = p0;
854 CREG[0] = clos_fun0;
855 /* syntax/mmbuilder.nit:185 */
856 CALL_syntax___mmbuilder___MMLocalProperty___accept_property_visitor(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
857 stack_frame_head = fra.me.prev;
858 return;
859 }
860 void syntax___mmbuilder___MMSrcLocalClass___process_default_constructors(val_t p0, val_t p1){
861 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
862 val_t REGB0;
863 val_t REGB1;
864 val_t REGB2;
865 val_t tmp;
866 static val_t once_value_7; /* Once value */
867 static val_t once_value_8; /* Once value */
868 static val_t once_value_13; /* Once value */
869 static val_t once_value_14; /* Once value */
870 static val_t once_value_15; /* Once value */
871 static val_t once_value_16; /* Once value */
872 static val_t once_value_17; /* Once value */
873 static val_t once_value_18; /* Once value */
874 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
875 fra.me.file = LOCATE_syntax___mmbuilder;
876 fra.me.line = 189;
877 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
878 fra.me.has_broke = 0;
879 fra.me.REG_size = 11;
880 fra.me.nitni_local_ref_head = NULL;
881 fra.me.REG[0] = NIT_NULL;
882 fra.me.REG[1] = NIT_NULL;
883 fra.me.REG[2] = NIT_NULL;
884 fra.me.REG[3] = NIT_NULL;
885 fra.me.REG[4] = NIT_NULL;
886 fra.me.REG[5] = NIT_NULL;
887 fra.me.REG[6] = NIT_NULL;
888 fra.me.REG[7] = NIT_NULL;
889 fra.me.REG[8] = NIT_NULL;
890 fra.me.REG[9] = NIT_NULL;
891 fra.me.REG[10] = NIT_NULL;
892 fra.me.REG[0] = p0;
893 fra.me.REG[1] = p1;
894 /* syntax/mmbuilder.nit:189 */
895 fra.me.REG[2] = fra.me.REG[0];
896 /* syntax/mmbuilder.nit:193 */
897 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[2])(fra.me.REG[2]);
898 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));
899 switch ((&(fra.me))->has_broke) {
900 case 0: break;
901 case 1: (&(fra.me))->has_broke = 0; goto label3;
902 }
903 /* syntax/mmbuilder.nit:201 */
904 fra.me.REG[3] = NEW_ArraySet_standard___collection___array___ArraySet___init();
905 /* syntax/mmbuilder.nit:202 */
906 fra.me.REG[4] = NEW_ArraySet_standard___collection___array___ArraySet___init();
907 /* syntax/mmbuilder.nit:203 */
908 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[2])(fra.me.REG[2]);
909 fra.me.REG[5] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[5])(fra.me.REG[5]);
910 /* ../lib/standard/collection/array.nit:269 */
911 REGB0 = TAG_Int(0);
912 /* ../lib/standard/collection/array.nit:270 */
913 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
914 if (UNTAG_Bool(REGB1)) {
915 } else {
916 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
917 }
918 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
919 /* ../lib/standard/collection/array.nit:271 */
920 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
921 /* ../lib/standard/collection/array.nit:272 */
922 while(1) {
923 /* ../lib/standard/collection/array.nit:24 */
924 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
925 if (UNTAG_Bool(REGB1)) {
926 } else {
927 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
928 }
929 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
930 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
931 if (UNTAG_Bool(REGB2)) {
932 } else {
933 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
934 }
935 /* ../lib/standard/kernel.nit:232 */
936 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
937 /* ../lib/standard/collection/array.nit:272 */
938 if (UNTAG_Bool(REGB1)) {
939 /* ../lib/standard/collection/array.nit:273 */
940 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
941 if (UNTAG_Bool(REGB1)) {
942 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
943 }
944 /* ../lib/standard/collection/array.nit:718 */
945 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
946 /* syntax/mmbuilder.nit:204 */
947 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
948 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[8])(fra.me.REG[8]);
949 if (UNTAG_Bool(REGB1)) {
950 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
951 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[8])(fra.me.REG[8]);
952 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
953 } else {
954 REGB2 = TAG_Bool(false);
955 REGB1 = REGB2;
956 }
957 if (UNTAG_Bool(REGB1)) {
958 REGB1 = TAG_Bool(true);
959 } else {
960 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
961 REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[8])(fra.me.REG[8]);
962 REGB1 = REGB2;
963 }
964 if (UNTAG_Bool(REGB1)) {
965 goto label4;
966 }
967 /* syntax/mmbuilder.nit:205 */
968 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[7])(fra.me.REG[7]);
969 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));
970 /* syntax/mmbuilder.nit:209 */
971 if (!once_value_7) {
972 if (!once_value_8) {
973 fra.me.REG[8] = BOX_NativeString("init");
974 REGB1 = TAG_Int(4);
975 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
976 once_value_8 = fra.me.REG[8];
977 register_static_object(&once_value_8);
978 } else fra.me.REG[8] = once_value_8;
979 fra.me.REG[8] = fra.me.REG[8];
980 fra.me.REG[8] = CALL_standard___symbol___String___to_symbol(fra.me.REG[8])(fra.me.REG[8]);
981 once_value_7 = fra.me.REG[8];
982 register_static_object(&once_value_7);
983 } else fra.me.REG[8] = once_value_7;
984 fra.me.REG[8] = fra.me.REG[8];
985 /* syntax/mmbuilder.nit:210 */
986 REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
987 if (UNTAG_Bool(REGB1)) {
988 /* syntax/mmbuilder.nit:211 */
989 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
990 /* syntax/mmbuilder.nit:212 */
991 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]);
992 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
993 }
994 label4: while(0);
995 /* ../lib/standard/collection/array.nit:274 */
996 REGB1 = TAG_Int(1);
997 /* ../lib/standard/kernel.nit:235 */
998 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
999 /* ../lib/standard/collection/array.nit:274 */
1000 REGB0 = REGB1;
1001 } else {
1002 /* ../lib/standard/collection/array.nit:272 */
1003 goto label9;
1004 }
1005 }
1006 label9: while(0);
1007 /* syntax/mmbuilder.nit:217 */
1008 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
1009 /* syntax/mmbuilder.nit:218 */
1010 fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[2])(fra.me.REG[2]);
1011 fra.me.REG[5] = CALL_standard___collection___abstract_collection___MapRead___values(fra.me.REG[5])(fra.me.REG[5]);
1012 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));
1013 /* syntax/mmbuilder.nit:225 */
1014 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[4])(fra.me.REG[4]);
1015 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1016 if (UNTAG_Bool(REGB0)) {
1017 /* syntax/mmbuilder.nit:228 */
1018 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
1019 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));
1020 /* syntax/mmbuilder.nit:236 */
1021 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[2])(fra.me.REG[2]);
1022 fra.me.REG[8] = CALL_metamodel___partial_order___PartialOrderElement___order(fra.me.REG[8])(fra.me.REG[8]);
1023 fra.me.REG[8] = CALL_metamodel___partial_order___PartialOrder___select_smallests(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
1024 fra.me.REG[5] = fra.me.REG[8];
1025 /* syntax/mmbuilder.nit:239 */
1026 fra.me.REG[8] = NIT_NULL;
1027 /* ../lib/standard/collection/array.nit:24 */
1028 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
1029 if (UNTAG_Bool(REGB0)) {
1030 } else {
1031 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1032 }
1033 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
1034 /* syntax/mmbuilder.nit:241 */
1035 REGB1 = TAG_Int(1);
1036 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1037 if (UNTAG_Bool(REGB2)) {
1038 } else {
1039 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1040 }
1041 /* ../lib/standard/kernel.nit:234 */
1042 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
1043 /* syntax/mmbuilder.nit:241 */
1044 if (UNTAG_Bool(REGB1)) {
1045 /* syntax/mmbuilder.nit:242 */
1046 fra.me.REG[7] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[2])(fra.me.REG[2]);
1047 REGB1 = TAG_Int(7);
1048 fra.me.REG[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
1049 if (!once_value_13) {
1050 fra.me.REG[10] = BOX_NativeString("Error: Explicit constructor required in ");
1051 REGB1 = TAG_Int(40);
1052 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
1053 once_value_13 = fra.me.REG[10];
1054 register_static_object(&once_value_13);
1055 } else fra.me.REG[10] = once_value_13;
1056 fra.me.REG[10] = fra.me.REG[10];
1057 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1058 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1059 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1060 if (!once_value_14) {
1061 fra.me.REG[10] = BOX_NativeString(" since multiple inheritance of constructor is forbiden. Conflicting classes are ");
1062 REGB1 = TAG_Int(80);
1063 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
1064 once_value_14 = fra.me.REG[10];
1065 register_static_object(&once_value_14);
1066 } else fra.me.REG[10] = once_value_14;
1067 fra.me.REG[10] = 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_15) {
1070 fra.me.REG[10] = BOX_NativeString(", ");
1071 REGB1 = TAG_Int(2);
1072 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
1073 once_value_15 = fra.me.REG[10];
1074 register_static_object(&once_value_15);
1075 } else fra.me.REG[10] = once_value_15;
1076 fra.me.REG[10] = fra.me.REG[10];
1077 fra.me.REG[10] = CALL_standard___string___Collection___join(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[10]);
1078 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1079 if (!once_value_16) {
1080 fra.me.REG[10] = BOX_NativeString(". Costructors are ");
1081 REGB1 = TAG_Int(18);
1082 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
1083 once_value_16 = fra.me.REG[10];
1084 register_static_object(&once_value_16);
1085 } else fra.me.REG[10] = once_value_16;
1086 fra.me.REG[10] = 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_17) {
1089 fra.me.REG[10] = BOX_NativeString(", ");
1090 REGB1 = TAG_Int(2);
1091 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
1092 once_value_17 = fra.me.REG[10];
1093 register_static_object(&once_value_17);
1094 } else fra.me.REG[10] = once_value_17;
1095 fra.me.REG[10] = fra.me.REG[10];
1096 fra.me.REG[10] = CALL_standard___string___Collection___join(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[10]);
1097 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1098 if (!once_value_18) {
1099 fra.me.REG[10] = BOX_NativeString(".");
1100 REGB1 = TAG_Int(1);
1101 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
1102 once_value_18 = fra.me.REG[10];
1103 register_static_object(&once_value_18);
1104 } else fra.me.REG[10] = once_value_18;
1105 fra.me.REG[10] = fra.me.REG[10];
1106 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1107 fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
1108 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7], fra.me.REG[9]);
1109 /* syntax/mmbuilder.nit:243 */
1110 goto label3;
1111 } else {
1112 /* ../lib/standard/collection/array.nit:24 */
1113 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
1114 if (UNTAG_Bool(REGB1)) {
1115 } else {
1116 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1117 }
1118 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
1119 /* syntax/mmbuilder.nit:244 */
1120 REGB0 = TAG_Int(1);
1121 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0));
1122 if (UNTAG_Bool(REGB2)) {
1123 } else {
1124 /* ../lib/standard/kernel.nit:227 */
1125 REGB0 = TAG_Bool((REGB1)==(REGB0));
1126 /* syntax/mmbuilder.nit:244 */
1127 REGB2 = REGB0;
1128 }
1129 if (UNTAG_Bool(REGB2)) {
1130 /* syntax/mmbuilder.nit:245 */
1131 fra.me.REG[5] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[5])(fra.me.REG[5]);
1132 fra.me.REG[8] = fra.me.REG[5];
1133 }
1134 }
1135 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));
1136 /* syntax/mmbuilder.nit:254 */
1137 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
1138 REGB2 = TAG_Bool(fra.me.REG[8]!=NIT_NULL);
1139 if (UNTAG_Bool(REGB2)) {
1140 } else {
1141 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 254);
1142 }
1143 REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1144 if (UNTAG_Bool(REGB2)) {
1145 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 254);
1146 }
1147 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[8])(fra.me.REG[8]);
1148 CALL_metamodel___abstractmetamodel___MMGlobalClass___mixin_of__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1149 } else {
1150 /* syntax/mmbuilder.nit:259 */
1151 fra.me.REG[3] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[3])(fra.me.REG[3]);
1152 fra.me.REG[3] = NEW_MMImplicitInit_syntax___syntax_base___MMImplicitInit___init(fra.me.REG[2], fra.me.REG[6], fra.me.REG[3]);
1153 /* syntax/mmbuilder.nit:260 */
1154 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[3]);
1155 }
1156 label3: while(0);
1157 stack_frame_head = fra.me.prev;
1158 return;
1159 }
1160 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){
1161 struct {struct stack_frame_t me;} fra;
1162 val_t REGB0;
1163 val_t REGB1;
1164 fun_t CREG[1];
1165 val_t tmp;
1166 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1167 fra.me.file = LOCATE_syntax___mmbuilder;
1168 fra.me.line = 0;
1169 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
1170 fra.me.has_broke = 0;
1171 fra.me.REG_size = 1;
1172 fra.me.nitni_local_ref_head = NULL;
1173 fra.me.REG[0] = NIT_NULL;
1174 fra.me.closure_ctx = closctx_param;
1175 fra.me.closure_funs = CREG;
1176 fra.me.REG[0] = p0;
1177 CREG[0] = clos_fun0;
1178 /* syntax/mmbuilder.nit:194 */
1179 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
1180 if (UNTAG_Bool(REGB0)) {
1181 /* syntax/mmbuilder.nit:196 */
1182 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
1183 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1184 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],closctx->REG[2]));
1185 if (UNTAG_Bool(REGB0)) {
1186 } else {
1187 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[2]);
1188 REGB0 = REGB1;
1189 }
1190 if (UNTAG_Bool(REGB0)) {
1191 closctx->has_broke = 1;
1192 goto label2;
1193 }
1194 }
1195 label2: while(0);
1196 stack_frame_head = fra.me.prev;
1197 return;
1198 }
1199 void OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_5(struct stack_frame_t *closctx, val_t p0){
1200 struct {struct stack_frame_t me;} fra;
1201 val_t REGB0;
1202 val_t tmp;
1203 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1204 fra.me.file = LOCATE_syntax___mmbuilder;
1205 fra.me.line = 0;
1206 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
1207 fra.me.has_broke = 0;
1208 fra.me.REG_size = 1;
1209 fra.me.nitni_local_ref_head = NULL;
1210 fra.me.REG[0] = NIT_NULL;
1211 fra.me.REG[0] = p0;
1212 /* syntax/mmbuilder.nit:206 */
1213 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
1214 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1215 if (UNTAG_Bool(REGB0)) {
1216 goto label6;
1217 }
1218 /* syntax/mmbuilder.nit:207 */
1219 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[4])(closctx->REG[4], fra.me.REG[0]);
1220 label6: while(0);
1221 stack_frame_head = fra.me.prev;
1222 return;
1223 }
1224 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){
1225 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1226 val_t REGB0;
1227 val_t REGB1;
1228 fun_t CREG[1];
1229 val_t tmp;
1230 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1231 fra.me.file = LOCATE_syntax___mmbuilder;
1232 fra.me.line = 0;
1233 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
1234 fra.me.has_broke = 0;
1235 fra.me.REG_size = 2;
1236 fra.me.nitni_local_ref_head = NULL;
1237 fra.me.REG[0] = NIT_NULL;
1238 fra.me.REG[1] = NIT_NULL;
1239 fra.me.closure_ctx = closctx_param;
1240 fra.me.closure_funs = CREG;
1241 fra.me.REG[0] = p0;
1242 CREG[0] = clos_fun0;
1243 /* syntax/mmbuilder.nit:219 */
1244 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_syntax___syntax_base___MMSrcAttribute, ID_syntax___syntax_base___MMSrcAttribute)) /*cast MMSrcAttribute*/;
1245 if (UNTAG_Bool(REGB0)) {
1246 /* syntax/mmbuilder.nit:220 */
1247 fra.me.REG[1] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[0])(fra.me.REG[0]);
1248 /* syntax/mmbuilder.nit:221 */
1249 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1250 if (UNTAG_Bool(REGB0)) {
1251 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 221);
1252 }
1253 fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra.me.REG[1])(fra.me.REG[1]);
1254 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1255 if (UNTAG_Bool(REGB0)) {
1256 } else {
1257 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1258 if (UNTAG_Bool(REGB1)) {
1259 REGB1 = TAG_Bool(false);
1260 REGB0 = REGB1;
1261 } else {
1262 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
1263 REGB0 = REGB1;
1264 }
1265 }
1266 if (UNTAG_Bool(REGB0)) {
1267 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[6])(closctx->REG[6], fra.me.REG[0]);
1268 }
1269 }
1270 stack_frame_head = fra.me.prev;
1271 return;
1272 }
1273 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){
1274 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1275 val_t REGB0;
1276 fun_t CREG[1];
1277 val_t tmp;
1278 /* syntax/mmbuilder.nit:229 */
1279 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1280 fra.me.file = LOCATE_syntax___mmbuilder;
1281 fra.me.line = 0;
1282 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
1283 fra.me.has_broke = 0;
1284 fra.me.REG_size = 2;
1285 fra.me.nitni_local_ref_head = NULL;
1286 fra.me.REG[0] = NIT_NULL;
1287 fra.me.REG[1] = NIT_NULL;
1288 fra.me.closure_ctx = closctx_param;
1289 fra.me.closure_funs = CREG;
1290 fra.me.REG[0] = p0;
1291 CREG[0] = clos_fun0;
1292 /* syntax/mmbuilder.nit:230 */
1293 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1294 /* syntax/mmbuilder.nit:231 */
1295 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(closctx->REG[5])(closctx->REG[5], fra.me.REG[0]);
1296 if (UNTAG_Bool(REGB0)) {
1297 goto label12;
1298 }
1299 /* syntax/mmbuilder.nit:232 */
1300 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
1301 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_mixin(fra.me.REG[1])(fra.me.REG[1]);
1302 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1303 if (UNTAG_Bool(REGB0)) {
1304 /* syntax/mmbuilder.nit:233 */
1305 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[5])(closctx->REG[5], fra.me.REG[0]);
1306 }
1307 label12: while(0);
1308 stack_frame_head = fra.me.prev;
1309 return;
1310 }
1311 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){
1312 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1313 val_t REGB0;
1314 val_t REGB1;
1315 val_t REGB2;
1316 fun_t CREG[1];
1317 val_t tmp;
1318 /* syntax/mmbuilder.nit:248 */
1319 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1320 fra.me.file = LOCATE_syntax___mmbuilder;
1321 fra.me.line = 0;
1322 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
1323 fra.me.has_broke = 0;
1324 fra.me.REG_size = 2;
1325 fra.me.nitni_local_ref_head = NULL;
1326 fra.me.REG[0] = NIT_NULL;
1327 fra.me.REG[1] = NIT_NULL;
1328 fra.me.closure_ctx = closctx_param;
1329 fra.me.closure_funs = CREG;
1330 fra.me.REG[0] = p0;
1331 CREG[0] = clos_fun0;
1332 /* syntax/mmbuilder.nit:250 */
1333 REGB0 = TAG_Bool(closctx->REG[8]==NIT_NULL);
1334 if (UNTAG_Bool(REGB0)) {
1335 } else {
1336 REGB1 = TAG_Bool(closctx->REG[8]==NIT_NULL);
1337 if (UNTAG_Bool(REGB1)) {
1338 REGB1 = TAG_Bool(false);
1339 REGB0 = REGB1;
1340 } else {
1341 REGB1 = CALL_standard___kernel___Object_____eqeq(closctx->REG[8])(closctx->REG[8], NIT_NULL);
1342 REGB0 = REGB1;
1343 }
1344 }
1345 if (UNTAG_Bool(REGB0)) {
1346 REGB0 = TAG_Bool(true);
1347 } else {
1348 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1349 REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],closctx->REG[8]));
1350 if (UNTAG_Bool(REGB1)) {
1351 } else {
1352 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], closctx->REG[8]);
1353 REGB1 = REGB2;
1354 }
1355 REGB0 = REGB1;
1356 }
1357 if (UNTAG_Bool(REGB0)) {
1358 /* syntax/mmbuilder.nit:251 */
1359 CALL_metamodel___inheritance___MMLocalClass___make_visible_an_inherited_global_property(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
1360 }
1361 stack_frame_head = fra.me.prev;
1362 return;
1363 }
1364 void syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(val_t p0, val_t p1, val_t p2){
1365 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
1366 val_t REGB0;
1367 val_t tmp;
1368 static val_t once_value_1; /* Once value */
1369 static val_t once_value_2; /* Once value */
1370 static val_t once_value_3; /* Once value */
1371 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1372 fra.me.file = LOCATE_syntax___mmbuilder;
1373 fra.me.line = 265;
1374 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property;
1375 fra.me.has_broke = 0;
1376 fra.me.REG_size = 7;
1377 fra.me.nitni_local_ref_head = NULL;
1378 fra.me.REG[0] = NIT_NULL;
1379 fra.me.REG[1] = NIT_NULL;
1380 fra.me.REG[2] = NIT_NULL;
1381 fra.me.REG[3] = NIT_NULL;
1382 fra.me.REG[4] = NIT_NULL;
1383 fra.me.REG[5] = NIT_NULL;
1384 fra.me.REG[6] = NIT_NULL;
1385 fra.me.REG[0] = p0;
1386 fra.me.REG[1] = p1;
1387 fra.me.REG[2] = p2;
1388 /* syntax/mmbuilder.nit:269 */
1389 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
1390 /* syntax/mmbuilder.nit:271 */
1391 fra.me.REG[4] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
1392 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1393 if (UNTAG_Bool(REGB0)) {
1394 /* syntax/mmbuilder.nit:272 */
1395 fra.me.REG[4] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[2])(fra.me.REG[2]);
1396 REGB0 = TAG_Int(5);
1397 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1398 if (!once_value_1) {
1399 fra.me.REG[6] = BOX_NativeString("Error: A property ");
1400 REGB0 = TAG_Int(18);
1401 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
1402 once_value_1 = fra.me.REG[6];
1403 register_static_object(&once_value_1);
1404 } else fra.me.REG[6] = once_value_1;
1405 fra.me.REG[6] = fra.me.REG[6];
1406 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1407 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1408 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1409 if (!once_value_2) {
1410 fra.me.REG[6] = BOX_NativeString(" is already defined in class ");
1411 REGB0 = TAG_Int(29);
1412 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
1413 once_value_2 = fra.me.REG[6];
1414 register_static_object(&once_value_2);
1415 } else fra.me.REG[6] = once_value_2;
1416 fra.me.REG[6] = fra.me.REG[6];
1417 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1418 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
1419 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
1420 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1421 if (!once_value_3) {
1422 fra.me.REG[6] = BOX_NativeString(".");
1423 REGB0 = TAG_Int(1);
1424 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
1425 once_value_3 = fra.me.REG[6];
1426 register_static_object(&once_value_3);
1427 } else fra.me.REG[6] = once_value_3;
1428 fra.me.REG[6] = fra.me.REG[6];
1429 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1430 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
1431 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[5]);
1432 /* syntax/mmbuilder.nit:273 */
1433 goto label4;
1434 }
1435 /* syntax/mmbuilder.nit:275 */
1436 fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
1437 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[2]);
1438 /* syntax/mmbuilder.nit:278 */
1439 REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
1440 if (UNTAG_Bool(REGB0)) {
1441 /* syntax/mmbuilder.nit:279 */
1442 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
1443 /* syntax/mmbuilder.nit:280 */
1444 CALL_metamodel___inheritance___MMLocalProperty___inherit_global(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1445 }
1446 /* syntax/mmbuilder.nit:283 */
1447 REGB0 = CALL_metamodel___abstractmetamodel___MMLocalProperty___is_global_set(fra.me.REG[2])(fra.me.REG[2]);
1448 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1449 if (UNTAG_Bool(REGB0)) {
1450 /* syntax/mmbuilder.nit:284 */
1451 CALL_metamodel___abstractmetamodel___MMLocalProperty___new_global(fra.me.REG[2])(fra.me.REG[2]);
1452 /* syntax/mmbuilder.nit:285 */
1453 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
1454 REGB0 = CALL_syntax___syntax_base___MMLocalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
1455 CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
1456 }
1457 label4: while(0);
1458 stack_frame_head = fra.me.prev;
1459 return;
1460 }
1461 void syntax___mmbuilder___MMLocalProperty___accept_property_visitor(val_t p0, val_t p1){
1462 struct {struct stack_frame_t me; val_t MORE_REG[1];} 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 = 291;
1467 fra.me.meth = LOCATE_syntax___mmbuilder___MMLocalProperty___accept_property_visitor;
1468 fra.me.has_broke = 0;
1469 fra.me.REG_size = 2;
1470 fra.me.nitni_local_ref_head = NULL;
1471 fra.me.REG[0] = NIT_NULL;
1472 fra.me.REG[1] = NIT_NULL;
1473 fra.me.REG[0] = p0;
1474 fra.me.REG[1] = p1;
1475 stack_frame_head = fra.me.prev;
1476 return;
1477 }
1478 val_t syntax___mmbuilder___MMImplicitInit___super_init(val_t p0){
1479 struct {struct stack_frame_t me;} fra;
1480 val_t tmp;
1481 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1482 fra.me.file = LOCATE_syntax___mmbuilder;
1483 fra.me.line = 297;
1484 fra.me.meth = LOCATE_syntax___mmbuilder___MMImplicitInit___super_init;
1485 fra.me.has_broke = 0;
1486 fra.me.REG_size = 1;
1487 fra.me.nitni_local_ref_head = NULL;
1488 fra.me.REG[0] = NIT_NULL;
1489 fra.me.REG[0] = p0;
1490 /* syntax/mmbuilder.nit:297 */
1491 fra.me.REG[0] = ATTR_syntax___mmbuilder___MMImplicitInit____super_init(fra.me.REG[0]);
1492 stack_frame_head = fra.me.prev;
1493 return fra.me.REG[0];
1494 }
1495 void syntax___mmbuilder___MMImplicitInit___accept_property_visitor(val_t p0, val_t p1){
1496 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
1497 val_t REGB0;
1498 val_t REGB1;
1499 val_t REGB2;
1500 val_t REGB3;
1501 val_t REGB4;
1502 val_t tmp;
1503 static val_t once_value_1; /* Once value */
1504 static val_t once_value_2; /* Once value */
1505 static val_t once_value_3; /* Once value */
1506 static val_t once_value_4; /* Once value */
1507 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1508 fra.me.file = LOCATE_syntax___mmbuilder;
1509 fra.me.line = 298;
1510 fra.me.meth = LOCATE_syntax___mmbuilder___MMImplicitInit___accept_property_visitor;
1511 fra.me.has_broke = 0;
1512 fra.me.REG_size = 9;
1513 fra.me.nitni_local_ref_head = NULL;
1514 fra.me.REG[0] = NIT_NULL;
1515 fra.me.REG[1] = NIT_NULL;
1516 fra.me.REG[2] = NIT_NULL;
1517 fra.me.REG[3] = NIT_NULL;
1518 fra.me.REG[4] = NIT_NULL;
1519 fra.me.REG[5] = NIT_NULL;
1520 fra.me.REG[6] = NIT_NULL;
1521 fra.me.REG[7] = NIT_NULL;
1522 fra.me.REG[8] = NIT_NULL;
1523 fra.me.REG[0] = p0;
1524 fra.me.REG[1] = p1;
1525 /* syntax/mmbuilder.nit:298 */
1526 fra.me.REG[2] = fra.me.REG[0];
1527 /* syntax/mmbuilder.nit:300 */
1528 fra.me.REG[3] = NIT_NULL;
1529 /* syntax/mmbuilder.nit:301 */
1530 fra.me.REG[4] = CALL_syntax___syntax_base___MMImplicitInit___super_inits(fra.me.REG[2])(fra.me.REG[2]);
1531 /* ../lib/standard/collection/array.nit:269 */
1532 REGB0 = TAG_Int(0);
1533 /* ../lib/standard/collection/array.nit:270 */
1534 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
1535 if (UNTAG_Bool(REGB1)) {
1536 } else {
1537 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1538 }
1539 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
1540 /* ../lib/standard/collection/array.nit:271 */
1541 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
1542 /* ../lib/standard/collection/array.nit:272 */
1543 while(1) {
1544 /* ../lib/standard/collection/array.nit:24 */
1545 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
1546 if (UNTAG_Bool(REGB1)) {
1547 } else {
1548 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1549 }
1550 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
1551 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1552 if (UNTAG_Bool(REGB2)) {
1553 } else {
1554 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1555 }
1556 /* ../lib/standard/kernel.nit:232 */
1557 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1558 /* ../lib/standard/collection/array.nit:272 */
1559 if (UNTAG_Bool(REGB1)) {
1560 /* ../lib/standard/collection/array.nit:273 */
1561 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1562 if (UNTAG_Bool(REGB1)) {
1563 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1564 }
1565 /* ../lib/standard/collection/array.nit:718 */
1566 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
1567 /* syntax/mmbuilder.nit:302 */
1568 fra.me.REG[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[6])(fra.me.REG[6]);
1569 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
1570 if (UNTAG_Bool(REGB1)) {
1571 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 302);
1572 }
1573 REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
1574 REGB2 = TAG_Int(0);
1575 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1576 if (UNTAG_Bool(REGB3)) {
1577 } else {
1578 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1579 }
1580 /* ../lib/standard/kernel.nit:234 */
1581 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
1582 /* syntax/mmbuilder.nit:302 */
1583 if (UNTAG_Bool(REGB2)) {
1584 /* syntax/mmbuilder.nit:303 */
1585 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1586 if (UNTAG_Bool(REGB2)) {
1587 } else {
1588 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1589 if (UNTAG_Bool(REGB1)) {
1590 REGB1 = TAG_Bool(false);
1591 REGB2 = REGB1;
1592 } else {
1593 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1594 REGB2 = REGB1;
1595 }
1596 }
1597 if (UNTAG_Bool(REGB2)) {
1598 /* syntax/mmbuilder.nit:304 */
1599 fra.me.REG[3] = fra.me.REG[6];
1600 } else {
1601 /* syntax/mmbuilder.nit:306 */
1602 REGB2 = TAG_Int(7);
1603 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
1604 if (!once_value_1) {
1605 fra.me.REG[8] = BOX_NativeString("Error: explicit constructor needed in ");
1606 REGB2 = TAG_Int(38);
1607 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
1608 once_value_1 = fra.me.REG[8];
1609 register_static_object(&once_value_1);
1610 } else fra.me.REG[8] = once_value_1;
1611 fra.me.REG[8] = fra.me.REG[8];
1612 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1613 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
1614 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1615 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1616 if (!once_value_2) {
1617 fra.me.REG[8] = BOX_NativeString(" since both super-constructor ");
1618 REGB2 = TAG_Int(30);
1619 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
1620 once_value_2 = fra.me.REG[8];
1621 register_static_object(&once_value_2);
1622 } else fra.me.REG[8] = once_value_2;
1623 fra.me.REG[8] = fra.me.REG[8];
1624 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1625 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1626 if (UNTAG_Bool(REGB2)) {
1627 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 306);
1628 }
1629 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[3])(fra.me.REG[3]);
1630 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1631 if (!once_value_3) {
1632 fra.me.REG[8] = BOX_NativeString(" and ");
1633 REGB2 = TAG_Int(5);
1634 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
1635 once_value_3 = fra.me.REG[8];
1636 register_static_object(&once_value_3);
1637 } else fra.me.REG[8] = once_value_3;
1638 fra.me.REG[8] = fra.me.REG[8];
1639 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1640 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[6])(fra.me.REG[6]);
1641 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
1642 if (!once_value_4) {
1643 fra.me.REG[6] = BOX_NativeString(" have paramters");
1644 REGB2 = TAG_Int(15);
1645 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
1646 once_value_4 = fra.me.REG[6];
1647 register_static_object(&once_value_4);
1648 } else fra.me.REG[6] = once_value_4;
1649 fra.me.REG[6] = fra.me.REG[6];
1650 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
1651 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
1652 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[7]);
1653 /* syntax/mmbuilder.nit:307 */
1654 goto label5;
1655 }
1656 }
1657 /* ../lib/standard/collection/array.nit:274 */
1658 REGB2 = TAG_Int(1);
1659 /* ../lib/standard/kernel.nit:235 */
1660 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1661 /* ../lib/standard/collection/array.nit:274 */
1662 REGB0 = REGB2;
1663 } else {
1664 /* ../lib/standard/collection/array.nit:272 */
1665 goto label6;
1666 }
1667 }
1668 label6: while(0);
1669 /* syntax/mmbuilder.nit:311 */
1670 ATTR_syntax___mmbuilder___MMImplicitInit____super_init(fra.me.REG[2]) = fra.me.REG[3];
1671 /* syntax/mmbuilder.nit:313 */
1672 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
1673 /* syntax/mmbuilder.nit:314 */
1674 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1675 if (UNTAG_Bool(REGB0)) {
1676 } else {
1677 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1678 if (UNTAG_Bool(REGB2)) {
1679 REGB2 = TAG_Bool(false);
1680 REGB0 = REGB2;
1681 } else {
1682 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1683 REGB0 = REGB2;
1684 }
1685 }
1686 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1687 if (UNTAG_Bool(REGB0)) {
1688 /* syntax/mmbuilder.nit:315 */
1689 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1690 if (UNTAG_Bool(REGB0)) {
1691 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 315);
1692 }
1693 fra.me.REG[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[3])(fra.me.REG[3]);
1694 /* syntax/mmbuilder.nit:316 */
1695 REGB0 = TAG_Int(0);
1696 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1697 if (UNTAG_Bool(REGB2)) {
1698 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 316);
1699 }
1700 REGB2 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]);
1701 /* ../lib/standard/kernel.nit:352 */
1702 while(1) {
1703 REGB1 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1704 if (UNTAG_Bool(REGB1)) {
1705 } else {
1706 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1707 }
1708 /* ../lib/standard/kernel.nit:232 */
1709 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
1710 /* ../lib/standard/kernel.nit:352 */
1711 if (UNTAG_Bool(REGB1)) {
1712 /* syntax/mmbuilder.nit:316 */
1713 REGB1 = REGB0;
1714 /* syntax/mmbuilder.nit:317 */
1715 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1716 if (UNTAG_Bool(REGB3)) {
1717 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 317);
1718 }
1719 fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___params(fra.me.REG[3])(fra.me.REG[3]);
1720 /* ../lib/standard/collection/array.nit:280 */
1721 REGB3 = TAG_Int(0);
1722 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1723 if (UNTAG_Bool(REGB4)) {
1724 } else {
1725 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1726 }
1727 /* ../lib/standard/kernel.nit:233 */
1728 REGB3 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB3));
1729 /* ../lib/standard/collection/array.nit:280 */
1730 if (UNTAG_Bool(REGB3)) {
1731 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
1732 if (UNTAG_Bool(REGB3)) {
1733 } else {
1734 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
1735 }
1736 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
1737 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1738 if (UNTAG_Bool(REGB4)) {
1739 } else {
1740 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1741 }
1742 /* ../lib/standard/kernel.nit:232 */
1743 REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB3));
1744 } else {
1745 /* ../lib/standard/collection/array.nit:280 */
1746 REGB4 = TAG_Bool(false);
1747 REGB3 = REGB4;
1748 }
1749 if (UNTAG_Bool(REGB3)) {
1750 } else {
1751 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
1752 }
1753 /* ../lib/standard/collection/array.nit:281 */
1754 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
1755 REGB3 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1756 if (UNTAG_Bool(REGB3)) {
1757 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
1758 }
1759 /* ../lib/standard/collection/array.nit:718 */
1760 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
1761 /* ../lib/standard/collection/array.nit:281 */
1762 goto label7;
1763 label7: while(0);
1764 /* syntax/mmbuilder.nit:317 */
1765 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
1766 /* ../lib/standard/kernel.nit:354 */
1767 REGB1 = TAG_Int(1);
1768 /* ../lib/standard/kernel.nit:235 */
1769 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1770 /* ../lib/standard/kernel.nit:354 */
1771 REGB0 = REGB1;
1772 } else {
1773 /* ../lib/standard/kernel.nit:352 */
1774 goto label8;
1775 }
1776 }
1777 label8: while(0);
1778 }
1779 /* syntax/mmbuilder.nit:320 */
1780 fra.me.REG[3] = CALL_syntax___syntax_base___MMImplicitInit___unassigned_attributes(fra.me.REG[2])(fra.me.REG[2]);
1781 /* ../lib/standard/collection/array.nit:269 */
1782 REGB0 = TAG_Int(0);
1783 /* ../lib/standard/collection/array.nit:270 */
1784 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1785 if (UNTAG_Bool(REGB2)) {
1786 } else {
1787 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1788 }
1789 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1790 /* ../lib/standard/collection/array.nit:271 */
1791 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
1792 /* ../lib/standard/collection/array.nit:272 */
1793 while(1) {
1794 /* ../lib/standard/collection/array.nit:24 */
1795 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1796 if (UNTAG_Bool(REGB2)) {
1797 } else {
1798 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1799 }
1800 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1801 REGB1 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1802 if (UNTAG_Bool(REGB1)) {
1803 } else {
1804 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1805 }
1806 /* ../lib/standard/kernel.nit:232 */
1807 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
1808 /* ../lib/standard/collection/array.nit:272 */
1809 if (UNTAG_Bool(REGB2)) {
1810 /* ../lib/standard/collection/array.nit:273 */
1811 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1812 if (UNTAG_Bool(REGB2)) {
1813 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1814 }
1815 /* ../lib/standard/collection/array.nit:718 */
1816 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
1817 /* syntax/mmbuilder.nit:321 */
1818 fra.me.REG[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[4])(fra.me.REG[4]);
1819 /* syntax/mmbuilder.nit:322 */
1820 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
1821 if (UNTAG_Bool(REGB2)) {
1822 } else {
1823 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
1824 if (UNTAG_Bool(REGB1)) {
1825 REGB1 = TAG_Bool(false);
1826 REGB2 = REGB1;
1827 } else {
1828 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
1829 REGB2 = REGB1;
1830 }
1831 }
1832 if (UNTAG_Bool(REGB2)) {
1833 goto label5;
1834 }
1835 /* syntax/mmbuilder.nit:323 */
1836 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[4])(fra.me.REG[4]);
1837 /* syntax/mmbuilder.nit:324 */
1838 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
1839 fra.me.REG[8] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[8])(fra.me.REG[8]);
1840 REGB2 = TAG_Char('_');
1841 REGB1 = TAG_Bool(IS_EQUAL_ON(REGB2,fra.me.REG[8]));
1842 if (UNTAG_Bool(REGB1)) {
1843 } else {
1844 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1845 if (UNTAG_Bool(REGB3)) {
1846 REGB3 = TAG_Bool(false);
1847 REGB1 = REGB3;
1848 } else {
1849 /* ../lib/standard/kernel.nit:378 */
1850 REGB2 = TAG_Bool((fra.me.REG[8])==(REGB2));
1851 /* syntax/mmbuilder.nit:324 */
1852 REGB1 = REGB2;
1853 }
1854 }
1855 if (UNTAG_Bool(REGB1)) {
1856 REGB1 = TAG_Bool(true);
1857 } else {
1858 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
1859 fra.me.REG[8] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[8])(fra.me.REG[8]);
1860 REGB2 = TAG_Char('@');
1861 REGB3 = TAG_Bool(IS_EQUAL_ON(REGB2,fra.me.REG[8]));
1862 if (UNTAG_Bool(REGB3)) {
1863 } else {
1864 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1865 if (UNTAG_Bool(REGB4)) {
1866 REGB4 = TAG_Bool(false);
1867 REGB3 = REGB4;
1868 } else {
1869 /* ../lib/standard/kernel.nit:378 */
1870 REGB2 = TAG_Bool((fra.me.REG[8])==(REGB2));
1871 /* syntax/mmbuilder.nit:324 */
1872 REGB3 = REGB2;
1873 }
1874 }
1875 REGB1 = REGB3;
1876 }
1877 if (UNTAG_Bool(REGB1)) {
1878 /* syntax/mmbuilder.nit:325 */
1879 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1880 REGB1 = TAG_Int(1);
1881 fra.me.REG[4] = CALL_standard___string___AbstractString___substring_from(fra.me.REG[4])(fra.me.REG[4], REGB1);
1882 fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
1883 fra.me.REG[6] = fra.me.REG[4];
1884 }
1885 /* syntax/mmbuilder.nit:327 */
1886 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
1887 if (UNTAG_Bool(REGB1)) {
1888 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 327);
1889 }
1890 fra.me.REG[7] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[7])(fra.me.REG[7]);
1891 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*/;
1892 if (UNTAG_Bool(REGB1)) {
1893 } else {
1894 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 327);
1895 }
1896 fra.me.REG[6] = NEW_MMParam_metamodel___static_type___MMParam___init(fra.me.REG[7], fra.me.REG[6]);
1897 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
1898 /* ../lib/standard/collection/array.nit:274 */
1899 REGB1 = TAG_Int(1);
1900 /* ../lib/standard/kernel.nit:235 */
1901 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1902 /* ../lib/standard/collection/array.nit:274 */
1903 REGB0 = REGB1;
1904 } else {
1905 /* ../lib/standard/collection/array.nit:272 */
1906 goto label9;
1907 }
1908 }
1909 label9: while(0);
1910 /* syntax/mmbuilder.nit:329 */
1911 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
1912 fra.me.REG[0] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[0])(fra.me.REG[0]);
1913 fra.me.REG[0] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[1], NIT_NULL, fra.me.REG[0]);
1914 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1915 label5: while(0);
1916 stack_frame_head = fra.me.prev;
1917 return;
1918 }
1919 val_t syntax___mmbuilder___MMSrcAncestor___local_class(val_t p0){
1920 struct {struct stack_frame_t me;} fra;
1921 val_t REGB0;
1922 val_t tmp;
1923 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1924 fra.me.file = LOCATE_syntax___mmbuilder;
1925 fra.me.line = 337;
1926 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcAncestor___local_class;
1927 fra.me.has_broke = 0;
1928 fra.me.REG_size = 1;
1929 fra.me.nitni_local_ref_head = NULL;
1930 fra.me.REG[0] = NIT_NULL;
1931 fra.me.REG[0] = p0;
1932 /* syntax/mmbuilder.nit:337 */
1933 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___MMSrcAncestor____local_class(fra.me.REG[0])!=NIT_NULL);
1934 if (UNTAG_Bool(REGB0)) {
1935 } else {
1936 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_syntax___mmbuilder, 337);
1937 }
1938 fra.me.REG[0] = ATTR_syntax___mmbuilder___MMSrcAncestor____local_class(fra.me.REG[0]);
1939 stack_frame_head = fra.me.prev;
1940 return fra.me.REG[0];
1941 }
1942 void syntax___mmbuilder___MMSrcAncestor___init(val_t p0, val_t p1, int* init_table){
1943 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___MMSrcAncestor].i;
1944 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1945 val_t tmp;
1946 if (init_table[itpos1]) return;
1947 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1948 fra.me.file = LOCATE_syntax___mmbuilder;
1949 fra.me.line = 339;
1950 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcAncestor___init;
1951 fra.me.has_broke = 0;
1952 fra.me.REG_size = 3;
1953 fra.me.nitni_local_ref_head = NULL;
1954 fra.me.REG[0] = NIT_NULL;
1955 fra.me.REG[1] = NIT_NULL;
1956 fra.me.REG[2] = NIT_NULL;
1957 fra.me.REG[0] = p0;
1958 fra.me.REG[1] = p1;
1959 /* syntax/mmbuilder.nit:339 */
1960 fra.me.REG[2] = fra.me.REG[0];
1961 CALL_metamodel___static_type___MMAncestor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
1962 /* syntax/mmbuilder.nit:341 */
1963 ATTR_syntax___mmbuilder___MMSrcAncestor____local_class(fra.me.REG[2]) = fra.me.REG[1];
1964 stack_frame_head = fra.me.prev;
1965 init_table[itpos1] = 1;
1966 return;
1967 }
1968 val_t syntax___mmbuilder___ClassBuilderVisitor___local_class_arity(val_t p0){
1969 struct {struct stack_frame_t me;} fra;
1970 val_t REGB0;
1971 val_t tmp;
1972 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1973 fra.me.file = LOCATE_syntax___mmbuilder;
1974 fra.me.line = 352;
1975 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity;
1976 fra.me.has_broke = 0;
1977 fra.me.REG_size = 1;
1978 fra.me.nitni_local_ref_head = NULL;
1979 fra.me.REG[0] = NIT_NULL;
1980 fra.me.REG[0] = p0;
1981 /* syntax/mmbuilder.nit:352 */
1982 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0])!=NIT_NULL);
1983 if (UNTAG_Bool(REGB0)) {
1984 } else {
1985 nit_abort("Uninitialized attribute %s", "_local_class_arity", LOCATE_syntax___mmbuilder, 352);
1986 }
1987 REGB0 = ATTR_syntax___mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0]);
1988 stack_frame_head = fra.me.prev;
1989 return REGB0;
1990 }
1991 void syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq(val_t p0, val_t p1){
1992 struct {struct stack_frame_t me;} fra;
1993 val_t REGB0;
1994 val_t tmp;
1995 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1996 fra.me.file = LOCATE_syntax___mmbuilder;
1997 fra.me.line = 352;
1998 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq;
1999 fra.me.has_broke = 0;
2000 fra.me.REG_size = 1;
2001 fra.me.nitni_local_ref_head = NULL;
2002 fra.me.REG[0] = NIT_NULL;
2003 fra.me.REG[0] = p0;
2004 REGB0 = p1;
2005 /* syntax/mmbuilder.nit:352 */
2006 ATTR_syntax___mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0]) = REGB0;
2007 stack_frame_head = fra.me.prev;
2008 return;
2009 }
2010 val_t syntax___mmbuilder___ClassBuilderVisitor___formals(val_t p0){
2011 struct {struct stack_frame_t me;} fra;
2012 val_t tmp;
2013 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2014 fra.me.file = LOCATE_syntax___mmbuilder;
2015 fra.me.line = 355;
2016 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___formals;
2017 fra.me.has_broke = 0;
2018 fra.me.REG_size = 1;
2019 fra.me.nitni_local_ref_head = NULL;
2020 fra.me.REG[0] = NIT_NULL;
2021 fra.me.REG[0] = p0;
2022 /* syntax/mmbuilder.nit:355 */
2023 fra.me.REG[0] = ATTR_syntax___mmbuilder___ClassBuilderVisitor____formals(fra.me.REG[0]);
2024 stack_frame_head = fra.me.prev;
2025 return fra.me.REG[0];
2026 }
2027 void syntax___mmbuilder___ClassBuilderVisitor___formals__eq(val_t p0, val_t p1){
2028 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2029 val_t tmp;
2030 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2031 fra.me.file = LOCATE_syntax___mmbuilder;
2032 fra.me.line = 355;
2033 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___formals__eq;
2034 fra.me.has_broke = 0;
2035 fra.me.REG_size = 2;
2036 fra.me.nitni_local_ref_head = NULL;
2037 fra.me.REG[0] = NIT_NULL;
2038 fra.me.REG[1] = NIT_NULL;
2039 fra.me.REG[0] = p0;
2040 fra.me.REG[1] = p1;
2041 /* syntax/mmbuilder.nit:355 */
2042 ATTR_syntax___mmbuilder___ClassBuilderVisitor____formals(fra.me.REG[0]) = fra.me.REG[1];
2043 stack_frame_head = fra.me.prev;
2044 return;
2045 }
2046 void syntax___mmbuilder___ClassBuilderVisitor___visit(val_t p0, val_t p1){
2047 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2048 val_t REGB0;
2049 val_t tmp;
2050 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2051 fra.me.file = LOCATE_syntax___mmbuilder;
2052 fra.me.line = 358;
2053 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___visit;
2054 fra.me.has_broke = 0;
2055 fra.me.REG_size = 2;
2056 fra.me.nitni_local_ref_head = NULL;
2057 fra.me.REG[0] = NIT_NULL;
2058 fra.me.REG[1] = NIT_NULL;
2059 fra.me.REG[0] = p0;
2060 fra.me.REG[1] = p1;
2061 /* syntax/mmbuilder.nit:358 */
2062 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2063 if (UNTAG_Bool(REGB0)) {
2064 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 358);
2065 }
2066 CALL_syntax___mmbuilder___ANode___accept_class_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2067 stack_frame_head = fra.me.prev;
2068 return;
2069 }
2070 void syntax___mmbuilder___ClassBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2071 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___ClassBuilderVisitor].i;
2072 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2073 val_t tmp;
2074 if (init_table[itpos2]) return;
2075 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2076 fra.me.file = LOCATE_syntax___mmbuilder;
2077 fra.me.line = 359;
2078 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___init;
2079 fra.me.has_broke = 0;
2080 fra.me.REG_size = 3;
2081 fra.me.nitni_local_ref_head = NULL;
2082 fra.me.REG[0] = NIT_NULL;
2083 fra.me.REG[1] = NIT_NULL;
2084 fra.me.REG[2] = NIT_NULL;
2085 fra.me.REG[0] = p0;
2086 fra.me.REG[1] = p1;
2087 fra.me.REG[2] = p2;
2088 /* syntax/mmbuilder.nit:359 */
2089 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2090 stack_frame_head = fra.me.prev;
2091 init_table[itpos2] = 1;
2092 return;
2093 }
2094 void syntax___mmbuilder___ClassSpecializationBuilderVisitor___visit(val_t p0, val_t p1){
2095 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2096 val_t REGB0;
2097 val_t tmp;
2098 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2099 fra.me.file = LOCATE_syntax___mmbuilder;
2100 fra.me.line = 366;
2101 fra.me.meth = LOCATE_syntax___mmbuilder___ClassSpecializationBuilderVisitor___visit;
2102 fra.me.has_broke = 0;
2103 fra.me.REG_size = 2;
2104 fra.me.nitni_local_ref_head = NULL;
2105 fra.me.REG[0] = NIT_NULL;
2106 fra.me.REG[1] = NIT_NULL;
2107 fra.me.REG[0] = p0;
2108 fra.me.REG[1] = p1;
2109 /* syntax/mmbuilder.nit:366 */
2110 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2111 if (UNTAG_Bool(REGB0)) {
2112 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 366);
2113 }
2114 CALL_syntax___mmbuilder___ANode___accept_class_specialization_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2115 stack_frame_head = fra.me.prev;
2116 return;
2117 }
2118 void syntax___mmbuilder___ClassSpecializationBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2119 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___ClassSpecializationBuilderVisitor].i;
2120 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2121 val_t tmp;
2122 if (init_table[itpos3]) return;
2123 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2124 fra.me.file = LOCATE_syntax___mmbuilder;
2125 fra.me.line = 367;
2126 fra.me.meth = LOCATE_syntax___mmbuilder___ClassSpecializationBuilderVisitor___init;
2127 fra.me.has_broke = 0;
2128 fra.me.REG_size = 3;
2129 fra.me.nitni_local_ref_head = NULL;
2130 fra.me.REG[0] = NIT_NULL;
2131 fra.me.REG[1] = NIT_NULL;
2132 fra.me.REG[2] = NIT_NULL;
2133 fra.me.REG[0] = p0;
2134 fra.me.REG[1] = p1;
2135 fra.me.REG[2] = p2;
2136 /* syntax/mmbuilder.nit:367 */
2137 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2138 stack_frame_head = fra.me.prev;
2139 init_table[itpos3] = 1;
2140 return;
2141 }
2142 void syntax___mmbuilder___ClassAncestorBuilder___visit(val_t p0, val_t p1){
2143 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2144 val_t REGB0;
2145 val_t tmp;
2146 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2147 fra.me.file = LOCATE_syntax___mmbuilder;
2148 fra.me.line = 374;
2149 fra.me.meth = LOCATE_syntax___mmbuilder___ClassAncestorBuilder___visit;
2150 fra.me.has_broke = 0;
2151 fra.me.REG_size = 2;
2152 fra.me.nitni_local_ref_head = NULL;
2153 fra.me.REG[0] = NIT_NULL;
2154 fra.me.REG[1] = NIT_NULL;
2155 fra.me.REG[0] = p0;
2156 fra.me.REG[1] = p1;
2157 /* syntax/mmbuilder.nit:374 */
2158 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2159 if (UNTAG_Bool(REGB0)) {
2160 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 374);
2161 }
2162 CALL_syntax___mmbuilder___ANode___accept_class_ancestor_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2163 stack_frame_head = fra.me.prev;
2164 return;
2165 }
2166 void syntax___mmbuilder___ClassAncestorBuilder___init(val_t p0, val_t p1, val_t p2, int* init_table){
2167 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___ClassAncestorBuilder].i;
2168 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2169 val_t tmp;
2170 if (init_table[itpos4]) return;
2171 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2172 fra.me.file = LOCATE_syntax___mmbuilder;
2173 fra.me.line = 375;
2174 fra.me.meth = LOCATE_syntax___mmbuilder___ClassAncestorBuilder___init;
2175 fra.me.has_broke = 0;
2176 fra.me.REG_size = 3;
2177 fra.me.nitni_local_ref_head = NULL;
2178 fra.me.REG[0] = NIT_NULL;
2179 fra.me.REG[1] = NIT_NULL;
2180 fra.me.REG[2] = NIT_NULL;
2181 fra.me.REG[0] = p0;
2182 fra.me.REG[1] = p1;
2183 fra.me.REG[2] = p2;
2184 /* syntax/mmbuilder.nit:375 */
2185 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2186 stack_frame_head = fra.me.prev;
2187 init_table[itpos4] = 1;
2188 return;
2189 }
2190 void syntax___mmbuilder___ClassVerifierVisitor___visit(val_t p0, val_t p1){
2191 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2192 val_t REGB0;
2193 val_t tmp;
2194 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2195 fra.me.file = LOCATE_syntax___mmbuilder;
2196 fra.me.line = 382;
2197 fra.me.meth = LOCATE_syntax___mmbuilder___ClassVerifierVisitor___visit;
2198 fra.me.has_broke = 0;
2199 fra.me.REG_size = 2;
2200 fra.me.nitni_local_ref_head = NULL;
2201 fra.me.REG[0] = NIT_NULL;
2202 fra.me.REG[1] = NIT_NULL;
2203 fra.me.REG[0] = p0;
2204 fra.me.REG[1] = p1;
2205 /* syntax/mmbuilder.nit:382 */
2206 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2207 if (UNTAG_Bool(REGB0)) {
2208 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 382);
2209 }
2210 CALL_syntax___mmbuilder___ANode___accept_class_verifier(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2211 stack_frame_head = fra.me.prev;
2212 return;
2213 }
2214 void syntax___mmbuilder___ClassVerifierVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2215 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___ClassVerifierVisitor].i;
2216 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2217 val_t tmp;
2218 if (init_table[itpos5]) return;
2219 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2220 fra.me.file = LOCATE_syntax___mmbuilder;
2221 fra.me.line = 383;
2222 fra.me.meth = LOCATE_syntax___mmbuilder___ClassVerifierVisitor___init;
2223 fra.me.has_broke = 0;
2224 fra.me.REG_size = 3;
2225 fra.me.nitni_local_ref_head = NULL;
2226 fra.me.REG[0] = NIT_NULL;
2227 fra.me.REG[1] = NIT_NULL;
2228 fra.me.REG[2] = NIT_NULL;
2229 fra.me.REG[0] = p0;
2230 fra.me.REG[1] = p1;
2231 fra.me.REG[2] = p2;
2232 /* syntax/mmbuilder.nit:383 */
2233 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2234 stack_frame_head = fra.me.prev;
2235 init_table[itpos5] = 1;
2236 return;
2237 }
2238 void syntax___mmbuilder___PropertyBuilderVisitor___visit(val_t p0, val_t p1){
2239 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2240 val_t REGB0;
2241 val_t tmp;
2242 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2243 fra.me.file = LOCATE_syntax___mmbuilder;
2244 fra.me.line = 393;
2245 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyBuilderVisitor___visit;
2246 fra.me.has_broke = 0;
2247 fra.me.REG_size = 2;
2248 fra.me.nitni_local_ref_head = NULL;
2249 fra.me.REG[0] = NIT_NULL;
2250 fra.me.REG[1] = NIT_NULL;
2251 fra.me.REG[0] = p0;
2252 fra.me.REG[1] = p1;
2253 /* syntax/mmbuilder.nit:393 */
2254 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2255 if (UNTAG_Bool(REGB0)) {
2256 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 393);
2257 }
2258 CALL_syntax___mmbuilder___ANode___accept_property_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2259 stack_frame_head = fra.me.prev;
2260 return;
2261 }
2262 void syntax___mmbuilder___PropertyBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2263 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___PropertyBuilderVisitor].i;
2264 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2265 val_t tmp;
2266 if (init_table[itpos6]) return;
2267 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2268 fra.me.file = LOCATE_syntax___mmbuilder;
2269 fra.me.line = 394;
2270 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyBuilderVisitor___init;
2271 fra.me.has_broke = 0;
2272 fra.me.REG_size = 3;
2273 fra.me.nitni_local_ref_head = NULL;
2274 fra.me.REG[0] = NIT_NULL;
2275 fra.me.REG[1] = NIT_NULL;
2276 fra.me.REG[2] = NIT_NULL;
2277 fra.me.REG[0] = p0;
2278 fra.me.REG[1] = p1;
2279 fra.me.REG[2] = p2;
2280 /* syntax/mmbuilder.nit:394 */
2281 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2282 stack_frame_head = fra.me.prev;
2283 init_table[itpos6] = 1;
2284 return;
2285 }
2286 val_t syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(val_t p0){
2287 struct {struct stack_frame_t me;} fra;
2288 val_t REGB0;
2289 val_t tmp;
2290 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2291 fra.me.file = LOCATE_syntax___mmbuilder;
2292 fra.me.line = 402;
2293 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder;
2294 fra.me.has_broke = 0;
2295 fra.me.REG_size = 1;
2296 fra.me.nitni_local_ref_head = NULL;
2297 fra.me.REG[0] = NIT_NULL;
2298 fra.me.REG[0] = p0;
2299 /* syntax/mmbuilder.nit:402 */
2300 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0])!=NIT_NULL);
2301 if (UNTAG_Bool(REGB0)) {
2302 } else {
2303 nit_abort("Uninitialized attribute %s", "_signature_builder", LOCATE_syntax___mmbuilder, 402);
2304 }
2305 fra.me.REG[0] = ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0]);
2306 stack_frame_head = fra.me.prev;
2307 return fra.me.REG[0];
2308 }
2309 void syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(val_t p0, val_t p1){
2310 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2311 val_t tmp;
2312 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2313 fra.me.file = LOCATE_syntax___mmbuilder;
2314 fra.me.line = 402;
2315 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq;
2316 fra.me.has_broke = 0;
2317 fra.me.REG_size = 2;
2318 fra.me.nitni_local_ref_head = NULL;
2319 fra.me.REG[0] = NIT_NULL;
2320 fra.me.REG[1] = NIT_NULL;
2321 fra.me.REG[0] = p0;
2322 fra.me.REG[1] = p1;
2323 /* syntax/mmbuilder.nit:402 */
2324 ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0]) = fra.me.REG[1];
2325 stack_frame_head = fra.me.prev;
2326 return;
2327 }
2328 void syntax___mmbuilder___PropertyVerifierVisitor___visit(val_t p0, val_t p1){
2329 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2330 val_t REGB0;
2331 val_t tmp;
2332 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2333 fra.me.file = LOCATE_syntax___mmbuilder;
2334 fra.me.line = 405;
2335 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___visit;
2336 fra.me.has_broke = 0;
2337 fra.me.REG_size = 2;
2338 fra.me.nitni_local_ref_head = NULL;
2339 fra.me.REG[0] = NIT_NULL;
2340 fra.me.REG[1] = NIT_NULL;
2341 fra.me.REG[0] = p0;
2342 fra.me.REG[1] = p1;
2343 /* syntax/mmbuilder.nit:405 */
2344 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2345 if (UNTAG_Bool(REGB0)) {
2346 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 405);
2347 }
2348 CALL_syntax___mmbuilder___ANode___accept_property_verifier(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2349 stack_frame_head = fra.me.prev;
2350 return;
2351 }
2352 void syntax___mmbuilder___PropertyVerifierVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2353 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___PropertyVerifierVisitor].i;
2354 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2355 val_t tmp;
2356 if (init_table[itpos7]) return;
2357 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2358 fra.me.file = LOCATE_syntax___mmbuilder;
2359 fra.me.line = 407;
2360 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___init;
2361 fra.me.has_broke = 0;
2362 fra.me.REG_size = 4;
2363 fra.me.nitni_local_ref_head = NULL;
2364 fra.me.REG[0] = NIT_NULL;
2365 fra.me.REG[1] = NIT_NULL;
2366 fra.me.REG[2] = NIT_NULL;
2367 fra.me.REG[3] = NIT_NULL;
2368 fra.me.REG[0] = p0;
2369 fra.me.REG[1] = p1;
2370 fra.me.REG[2] = p2;
2371 /* syntax/mmbuilder.nit:407 */
2372 fra.me.REG[3] = fra.me.REG[0];
2373 /* syntax/mmbuilder.nit:409 */
2374 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2375 /* syntax/mmbuilder.nit:410 */
2376 fra.me.REG[2] = NEW_SignatureBuilder_syntax___mmbuilder___SignatureBuilder___init();
2377 ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[3]) = fra.me.REG[2];
2378 stack_frame_head = fra.me.prev;
2379 init_table[itpos7] = 1;
2380 return;
2381 }
2382 val_t syntax___mmbuilder___SignatureBuilder___params(val_t p0){
2383 struct {struct stack_frame_t me;} fra;
2384 val_t REGB0;
2385 val_t tmp;
2386 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2387 fra.me.file = LOCATE_syntax___mmbuilder;
2388 fra.me.line = 416;
2389 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___params;
2390 fra.me.has_broke = 0;
2391 fra.me.REG_size = 1;
2392 fra.me.nitni_local_ref_head = NULL;
2393 fra.me.REG[0] = NIT_NULL;
2394 fra.me.REG[0] = p0;
2395 /* syntax/mmbuilder.nit:416 */
2396 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____params(fra.me.REG[0])!=NIT_NULL);
2397 if (UNTAG_Bool(REGB0)) {
2398 } else {
2399 nit_abort("Uninitialized attribute %s", "_params", LOCATE_syntax___mmbuilder, 416);
2400 }
2401 fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____params(fra.me.REG[0]);
2402 stack_frame_head = fra.me.prev;
2403 return fra.me.REG[0];
2404 }
2405 void syntax___mmbuilder___SignatureBuilder___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 = 416;
2411 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___params__eq;
2412 fra.me.has_broke = 0;
2413 fra.me.REG_size = 2;
2414 fra.me.nitni_local_ref_head = NULL;
2415 fra.me.REG[0] = NIT_NULL;
2416 fra.me.REG[1] = NIT_NULL;
2417 fra.me.REG[0] = p0;
2418 fra.me.REG[1] = p1;
2419 /* syntax/mmbuilder.nit:416 */
2420 ATTR_syntax___mmbuilder___SignatureBuilder____params(fra.me.REG[0]) = fra.me.REG[1];
2421 stack_frame_head = fra.me.prev;
2422 return;
2423 }
2424 val_t syntax___mmbuilder___SignatureBuilder___untyped_params(val_t p0){
2425 struct {struct stack_frame_t me;} fra;
2426 val_t REGB0;
2427 val_t tmp;
2428 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2429 fra.me.file = LOCATE_syntax___mmbuilder;
2430 fra.me.line = 419;
2431 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___untyped_params;
2432 fra.me.has_broke = 0;
2433 fra.me.REG_size = 1;
2434 fra.me.nitni_local_ref_head = NULL;
2435 fra.me.REG[0] = NIT_NULL;
2436 fra.me.REG[0] = p0;
2437 /* syntax/mmbuilder.nit:419 */
2438 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0])!=NIT_NULL);
2439 if (UNTAG_Bool(REGB0)) {
2440 } else {
2441 nit_abort("Uninitialized attribute %s", "_untyped_params", LOCATE_syntax___mmbuilder, 419);
2442 }
2443 fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0]);
2444 stack_frame_head = fra.me.prev;
2445 return fra.me.REG[0];
2446 }
2447 void syntax___mmbuilder___SignatureBuilder___untyped_params__eq(val_t p0, val_t p1){
2448 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2449 val_t tmp;
2450 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2451 fra.me.file = LOCATE_syntax___mmbuilder;
2452 fra.me.line = 419;
2453 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___untyped_params__eq;
2454 fra.me.has_broke = 0;
2455 fra.me.REG_size = 2;
2456 fra.me.nitni_local_ref_head = NULL;
2457 fra.me.REG[0] = NIT_NULL;
2458 fra.me.REG[1] = NIT_NULL;
2459 fra.me.REG[0] = p0;
2460 fra.me.REG[1] = p1;
2461 /* syntax/mmbuilder.nit:419 */
2462 ATTR_syntax___mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0]) = fra.me.REG[1];
2463 stack_frame_head = fra.me.prev;
2464 return;
2465 }
2466 val_t syntax___mmbuilder___SignatureBuilder___vararg_rank(val_t p0){
2467 struct {struct stack_frame_t me;} fra;
2468 val_t REGB0;
2469 val_t tmp;
2470 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2471 fra.me.file = LOCATE_syntax___mmbuilder;
2472 fra.me.line = 422;
2473 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___vararg_rank;
2474 fra.me.has_broke = 0;
2475 fra.me.REG_size = 1;
2476 fra.me.nitni_local_ref_head = NULL;
2477 fra.me.REG[0] = NIT_NULL;
2478 fra.me.REG[0] = p0;
2479 /* syntax/mmbuilder.nit:422 */
2480 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0])!=NIT_NULL);
2481 if (UNTAG_Bool(REGB0)) {
2482 } else {
2483 nit_abort("Uninitialized attribute %s", "_vararg_rank", LOCATE_syntax___mmbuilder, 422);
2484 }
2485 REGB0 = ATTR_syntax___mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]);
2486 stack_frame_head = fra.me.prev;
2487 return REGB0;
2488 }
2489 void syntax___mmbuilder___SignatureBuilder___vararg_rank__eq(val_t p0, val_t p1){
2490 struct {struct stack_frame_t me;} fra;
2491 val_t REGB0;
2492 val_t tmp;
2493 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2494 fra.me.file = LOCATE_syntax___mmbuilder;
2495 fra.me.line = 422;
2496 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___vararg_rank__eq;
2497 fra.me.has_broke = 0;
2498 fra.me.REG_size = 1;
2499 fra.me.nitni_local_ref_head = NULL;
2500 fra.me.REG[0] = NIT_NULL;
2501 fra.me.REG[0] = p0;
2502 REGB0 = p1;
2503 /* syntax/mmbuilder.nit:422 */
2504 ATTR_syntax___mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]) = REGB0;
2505 stack_frame_head = fra.me.prev;
2506 return;
2507 }
2508 val_t syntax___mmbuilder___SignatureBuilder___closure_decls(val_t p0){
2509 struct {struct stack_frame_t me;} fra;
2510 val_t REGB0;
2511 val_t tmp;
2512 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2513 fra.me.file = LOCATE_syntax___mmbuilder;
2514 fra.me.line = 425;
2515 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___closure_decls;
2516 fra.me.has_broke = 0;
2517 fra.me.REG_size = 1;
2518 fra.me.nitni_local_ref_head = NULL;
2519 fra.me.REG[0] = NIT_NULL;
2520 fra.me.REG[0] = p0;
2521 /* syntax/mmbuilder.nit:425 */
2522 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0])!=NIT_NULL);
2523 if (UNTAG_Bool(REGB0)) {
2524 } else {
2525 nit_abort("Uninitialized attribute %s", "_closure_decls", LOCATE_syntax___mmbuilder, 425);
2526 }
2527 fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0]);
2528 stack_frame_head = fra.me.prev;
2529 return fra.me.REG[0];
2530 }
2531 void syntax___mmbuilder___SignatureBuilder___closure_decls__eq(val_t p0, val_t p1){
2532 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2533 val_t tmp;
2534 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2535 fra.me.file = LOCATE_syntax___mmbuilder;
2536 fra.me.line = 425;
2537 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___closure_decls__eq;
2538 fra.me.has_broke = 0;
2539 fra.me.REG_size = 2;
2540 fra.me.nitni_local_ref_head = NULL;
2541 fra.me.REG[0] = NIT_NULL;
2542 fra.me.REG[1] = NIT_NULL;
2543 fra.me.REG[0] = p0;
2544 fra.me.REG[1] = p1;
2545 /* syntax/mmbuilder.nit:425 */
2546 ATTR_syntax___mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0]) = fra.me.REG[1];
2547 stack_frame_head = fra.me.prev;
2548 return;
2549 }
2550 val_t syntax___mmbuilder___SignatureBuilder___has_error_occured(val_t p0){
2551 struct {struct stack_frame_t me;} fra;
2552 val_t REGB0;
2553 val_t tmp;
2554 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2555 fra.me.file = LOCATE_syntax___mmbuilder;
2556 fra.me.line = 428;
2557 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___has_error_occured;
2558 fra.me.has_broke = 0;
2559 fra.me.REG_size = 1;
2560 fra.me.nitni_local_ref_head = NULL;
2561 fra.me.REG[0] = NIT_NULL;
2562 fra.me.REG[0] = p0;
2563 /* syntax/mmbuilder.nit:428 */
2564 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0])!=NIT_NULL);
2565 if (UNTAG_Bool(REGB0)) {
2566 } else {
2567 nit_abort("Uninitialized attribute %s", "_has_error_occured", LOCATE_syntax___mmbuilder, 428);
2568 }
2569 REGB0 = ATTR_syntax___mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]);
2570 stack_frame_head = fra.me.prev;
2571 return REGB0;
2572 }
2573 void syntax___mmbuilder___SignatureBuilder___has_error_occured__eq(val_t p0, val_t p1){
2574 struct {struct stack_frame_t me;} fra;
2575 val_t REGB0;
2576 val_t tmp;
2577 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2578 fra.me.file = LOCATE_syntax___mmbuilder;
2579 fra.me.line = 428;
2580 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___has_error_occured__eq;
2581 fra.me.has_broke = 0;
2582 fra.me.REG_size = 1;
2583 fra.me.nitni_local_ref_head = NULL;
2584 fra.me.REG[0] = NIT_NULL;
2585 fra.me.REG[0] = p0;
2586 REGB0 = p1;
2587 /* syntax/mmbuilder.nit:428 */
2588 ATTR_syntax___mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]) = REGB0;
2589 stack_frame_head = fra.me.prev;
2590 return;
2591 }
2592 val_t syntax___mmbuilder___SignatureBuilder___signature(val_t p0){
2593 struct {struct stack_frame_t me;} 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 = 431;
2598 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___signature;
2599 fra.me.has_broke = 0;
2600 fra.me.REG_size = 1;
2601 fra.me.nitni_local_ref_head = NULL;
2602 fra.me.REG[0] = NIT_NULL;
2603 fra.me.REG[0] = p0;
2604 /* syntax/mmbuilder.nit:431 */
2605 fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____signature(fra.me.REG[0]);
2606 stack_frame_head = fra.me.prev;
2607 return fra.me.REG[0];
2608 }
2609 void syntax___mmbuilder___SignatureBuilder___signature__eq(val_t p0, val_t p1){
2610 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2611 val_t tmp;
2612 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2613 fra.me.file = LOCATE_syntax___mmbuilder;
2614 fra.me.line = 431;
2615 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___signature__eq;
2616 fra.me.has_broke = 0;
2617 fra.me.REG_size = 2;
2618 fra.me.nitni_local_ref_head = NULL;
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:431 */
2624 ATTR_syntax___mmbuilder___SignatureBuilder____signature(fra.me.REG[0]) = fra.me.REG[1];
2625 stack_frame_head = fra.me.prev;
2626 return;
2627 }
2628 void syntax___mmbuilder___SignatureBuilder___init(val_t p0, int* init_table){
2629 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___SignatureBuilder].i;
2630 struct {struct stack_frame_t me;} fra;
2631 val_t tmp;
2632 if (init_table[itpos8]) return;
2633 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2634 fra.me.file = LOCATE_syntax___mmbuilder;
2635 fra.me.line = 0;
2636 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___init;
2637 fra.me.has_broke = 0;
2638 fra.me.REG_size = 0;
2639 fra.me.nitni_local_ref_head = NULL;
2640 stack_frame_head = fra.me.prev;
2641 init_table[itpos8] = 1;
2642 return;
2643 }
2644 void syntax___mmbuilder___ANode___accept_class_builder(val_t p0, val_t p1){
2645 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2646 val_t tmp;
2647 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2648 fra.me.file = LOCATE_syntax___mmbuilder;
2649 fra.me.line = 438;
2650 fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_class_builder;
2651 fra.me.has_broke = 0;
2652 fra.me.REG_size = 2;
2653 fra.me.nitni_local_ref_head = NULL;
2654 fra.me.REG[0] = NIT_NULL;
2655 fra.me.REG[1] = NIT_NULL;
2656 fra.me.REG[0] = p0;
2657 fra.me.REG[1] = p1;
2658 /* syntax/mmbuilder.nit:438 */
2659 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2660 stack_frame_head = fra.me.prev;
2661 return;
2662 }
2663 void syntax___mmbuilder___ANode___accept_class_specialization_builder(val_t p0, val_t p1){
2664 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2665 val_t tmp;
2666 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2667 fra.me.file = LOCATE_syntax___mmbuilder;
2668 fra.me.line = 439;
2669 fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_class_specialization_builder;
2670 fra.me.has_broke = 0;
2671 fra.me.REG_size = 2;
2672 fra.me.nitni_local_ref_head = NULL;
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:439 */
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_class_ancestor_builder(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 = 440;
2688 fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_class_ancestor_builder;
2689 fra.me.has_broke = 0;
2690 fra.me.REG_size = 2;
2691 fra.me.nitni_local_ref_head = NULL;
2692 fra.me.REG[0] = NIT_NULL;
2693 fra.me.REG[1] = NIT_NULL;
2694 fra.me.REG[0] = p0;
2695 fra.me.REG[1] = p1;
2696 /* syntax/mmbuilder.nit:440 */
2697 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2698 stack_frame_head = fra.me.prev;
2699 return;
2700 }
2701 void syntax___mmbuilder___ANode___accept_class_verifier(val_t p0, val_t p1){
2702 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2703 val_t tmp;
2704 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2705 fra.me.file = LOCATE_syntax___mmbuilder;
2706 fra.me.line = 441;
2707 fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_class_verifier;
2708 fra.me.has_broke = 0;
2709 fra.me.REG_size = 2;
2710 fra.me.nitni_local_ref_head = NULL;
2711 fra.me.REG[0] = NIT_NULL;
2712 fra.me.REG[1] = NIT_NULL;
2713 fra.me.REG[0] = p0;
2714 fra.me.REG[1] = p1;
2715 /* syntax/mmbuilder.nit:441 */
2716 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2717 stack_frame_head = fra.me.prev;
2718 return;
2719 }
2720 void syntax___mmbuilder___ANode___accept_property_builder(val_t p0, val_t p1){
2721 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2722 val_t tmp;
2723 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2724 fra.me.file = LOCATE_syntax___mmbuilder;
2725 fra.me.line = 442;
2726 fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_property_builder;
2727 fra.me.has_broke = 0;
2728 fra.me.REG_size = 2;
2729 fra.me.nitni_local_ref_head = NULL;
2730 fra.me.REG[0] = NIT_NULL;
2731 fra.me.REG[1] = NIT_NULL;
2732 fra.me.REG[0] = p0;
2733 fra.me.REG[1] = p1;
2734 /* syntax/mmbuilder.nit:442 */
2735 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2736 stack_frame_head = fra.me.prev;
2737 return;
2738 }
2739 void syntax___mmbuilder___ANode___accept_property_verifier(val_t p0, val_t p1){
2740 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2741 val_t tmp;
2742 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2743 fra.me.file = LOCATE_syntax___mmbuilder;
2744 fra.me.line = 443;
2745 fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_property_verifier;
2746 fra.me.has_broke = 0;
2747 fra.me.REG_size = 2;
2748 fra.me.nitni_local_ref_head = NULL;
2749 fra.me.REG[0] = NIT_NULL;
2750 fra.me.REG[1] = NIT_NULL;
2751 fra.me.REG[0] = p0;
2752 fra.me.REG[1] = p1;
2753 /* syntax/mmbuilder.nit:443 */
2754 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2755 stack_frame_head = fra.me.prev;
2756 return;
2757 }
2758 void syntax___mmbuilder___AModule___import_super_modules(val_t p0, val_t p1, val_t p2){
2759 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
2760 val_t REGB0;
2761 val_t REGB1;
2762 val_t tmp;
2763 static val_t once_value_2; /* Once value */
2764 static val_t once_value_3; /* Once value */
2765 static val_t once_value_4; /* Once value */
2766 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2767 fra.me.file = LOCATE_syntax___mmbuilder;
2768 fra.me.line = 447;
2769 fra.me.meth = LOCATE_syntax___mmbuilder___AModule___import_super_modules;
2770 fra.me.has_broke = 0;
2771 fra.me.REG_size = 5;
2772 fra.me.nitni_local_ref_head = NULL;
2773 fra.me.REG[0] = NIT_NULL;
2774 fra.me.REG[1] = NIT_NULL;
2775 fra.me.REG[2] = NIT_NULL;
2776 fra.me.REG[3] = NIT_NULL;
2777 fra.me.REG[4] = NIT_NULL;
2778 fra.me.REG[0] = p0;
2779 fra.me.REG[1] = p1;
2780 fra.me.REG[2] = p2;
2781 /* syntax/mmbuilder.nit:451 */
2782 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
2783 /* syntax/mmbuilder.nit:452 */
2784 fra.me.REG[4] = NIT_NULL;
2785 /* syntax/mmbuilder.nit:453 */
2786 fra.me.REG[0] = CALL_parser___parser_nodes___AModule___n_imports(fra.me.REG[0])(fra.me.REG[0]);
2787 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));
2788 /* syntax/mmbuilder.nit:463 */
2789 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2790 if (UNTAG_Bool(REGB0)) {
2791 } else {
2792 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2793 if (UNTAG_Bool(REGB1)) {
2794 REGB1 = TAG_Bool(false);
2795 REGB0 = REGB1;
2796 } else {
2797 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
2798 REGB0 = REGB1;
2799 }
2800 }
2801 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2802 if (UNTAG_Bool(REGB0)) {
2803 /* syntax/mmbuilder.nit:464 */
2804 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
2805 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2806 if (UNTAG_Bool(REGB0)) {
2807 /* syntax/mmbuilder.nit:465 */
2808 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2809 if (UNTAG_Bool(REGB0)) {
2810 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 465);
2811 }
2812 fra.me.REG[4] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[4])(fra.me.REG[4]);
2813 if (!once_value_2) {
2814 fra.me.REG[0] = BOX_NativeString("Error: Top modules cannot import other modules.");
2815 REGB0 = TAG_Int(47);
2816 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2817 once_value_2 = fra.me.REG[0];
2818 register_static_object(&once_value_2);
2819 } else fra.me.REG[0] = once_value_2;
2820 fra.me.REG[0] = fra.me.REG[0];
2821 CALL_toolcontext___ToolContext___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]);
2822 }
2823 } else {
2824 /* syntax/mmbuilder.nit:467 */
2825 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
2826 if (UNTAG_Bool(REGB0)) {
2827 /* syntax/mmbuilder.nit:468 */
2828 if (!once_value_3) {
2829 if (!once_value_4) {
2830 fra.me.REG[0] = BOX_NativeString("standard");
2831 REGB0 = TAG_Int(8);
2832 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2833 once_value_4 = fra.me.REG[0];
2834 register_static_object(&once_value_4);
2835 } else fra.me.REG[0] = once_value_4;
2836 fra.me.REG[0] = fra.me.REG[0];
2837 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
2838 once_value_3 = fra.me.REG[0];
2839 register_static_object(&once_value_3);
2840 } else fra.me.REG[0] = once_value_3;
2841 fra.me.REG[0] = fra.me.REG[0];
2842 /* syntax/mmbuilder.nit:469 */
2843 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]);
2844 /* syntax/mmbuilder.nit:470 */
2845 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
2846 /* syntax/mmbuilder.nit:471 */
2847 REGB0 = TAG_Int(1);
2848 CALL_metamodel___abstractmetamodel___MMModule___add_super_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], REGB0);
2849 }
2850 }
2851 /* syntax/mmbuilder.nit:474 */
2852 CALL_metamodel___abstractmetamodel___MMContext___add_module(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
2853 stack_frame_head = fra.me.prev;
2854 return;
2855 }
2856 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){
2857 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2858 val_t REGB0;
2859 val_t REGB1;
2860 fun_t CREG[1];
2861 val_t tmp;
2862 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2863 fra.me.file = LOCATE_syntax___mmbuilder;
2864 fra.me.line = 0;
2865 fra.me.meth = LOCATE_syntax___mmbuilder___AModule___import_super_modules;
2866 fra.me.has_broke = 0;
2867 fra.me.REG_size = 2;
2868 fra.me.nitni_local_ref_head = NULL;
2869 fra.me.REG[0] = NIT_NULL;
2870 fra.me.REG[1] = NIT_NULL;
2871 fra.me.closure_ctx = closctx_param;
2872 fra.me.closure_funs = CREG;
2873 fra.me.REG[0] = p0;
2874 CREG[0] = clos_fun0;
2875 /* syntax/mmbuilder.nit:454 */
2876 fra.me.REG[1] = CALL_syntax___mmbuilder___AImport___module_name(fra.me.REG[0])(fra.me.REG[0]);
2877 /* syntax/mmbuilder.nit:455 */
2878 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2879 if (UNTAG_Bool(REGB0)) {
2880 } else {
2881 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2882 if (UNTAG_Bool(REGB1)) {
2883 REGB1 = TAG_Bool(false);
2884 REGB0 = REGB1;
2885 } else {
2886 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2887 REGB0 = REGB1;
2888 }
2889 }
2890 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2891 if (UNTAG_Bool(REGB0)) {
2892 /* syntax/mmbuilder.nit:456 */
2893 fra.me.REG[1] = CALL_mmloader___ToolContext___get_module(closctx->REG[1])(closctx->REG[1], fra.me.REG[1], closctx->REG[2]);
2894 /* syntax/mmbuilder.nit:457 */
2895 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[1]);
2896 /* syntax/mmbuilder.nit:458 */
2897 REGB0 = CALL_syntax___mmbuilder___AImport___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
2898 CALL_metamodel___abstractmetamodel___MMModule___add_super_module(closctx->REG[2])(closctx->REG[2], fra.me.REG[1], REGB0);
2899 } else {
2900 /* syntax/mmbuilder.nit:460 */
2901 closctx->REG[4] = fra.me.REG[0];
2902 }
2903 stack_frame_head = fra.me.prev;
2904 return;
2905 }
2906 void syntax___mmbuilder___AModuledecl___accept_class_builder(val_t p0, val_t p1){
2907 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
2908 val_t REGB0;
2909 val_t REGB1;
2910 val_t tmp;
2911 static val_t once_value_1; /* Once value */
2912 static val_t once_value_2; /* Once value */
2913 static val_t once_value_3; /* Once value */
2914 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2915 fra.me.file = LOCATE_syntax___mmbuilder;
2916 fra.me.line = 479;
2917 fra.me.meth = LOCATE_syntax___mmbuilder___AModuledecl___accept_class_builder;
2918 fra.me.has_broke = 0;
2919 fra.me.REG_size = 5;
2920 fra.me.nitni_local_ref_head = NULL;
2921 fra.me.REG[0] = NIT_NULL;
2922 fra.me.REG[1] = NIT_NULL;
2923 fra.me.REG[2] = NIT_NULL;
2924 fra.me.REG[3] = NIT_NULL;
2925 fra.me.REG[4] = NIT_NULL;
2926 fra.me.REG[0] = p0;
2927 fra.me.REG[1] = p1;
2928 /* syntax/mmbuilder.nit:481 */
2929 fra.me.REG[2] = CALL_parser___parser_nodes___AModuledecl___n_name(fra.me.REG[0])(fra.me.REG[0]);
2930 fra.me.REG[2] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[2])(fra.me.REG[2]);
2931 fra.me.REG[2] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
2932 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
2933 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___name(fra.me.REG[3])(fra.me.REG[3]);
2934 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
2935 if (UNTAG_Bool(REGB0)) {
2936 } else {
2937 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2938 REGB0 = REGB1;
2939 }
2940 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2941 if (UNTAG_Bool(REGB0)) {
2942 /* syntax/mmbuilder.nit:482 */
2943 fra.me.REG[3] = CALL_parser___parser_nodes___AModuledecl___n_name(fra.me.REG[0])(fra.me.REG[0]);
2944 fra.me.REG[3] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[3])(fra.me.REG[3]);
2945 REGB0 = TAG_Int(5);
2946 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2947 if (!once_value_1) {
2948 fra.me.REG[4] = BOX_NativeString("Error: Module name mismatch between ");
2949 REGB0 = TAG_Int(36);
2950 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2951 once_value_1 = fra.me.REG[4];
2952 register_static_object(&once_value_1);
2953 } else fra.me.REG[4] = once_value_1;
2954 fra.me.REG[4] = fra.me.REG[4];
2955 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
2956 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
2957 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMModule___name(fra.me.REG[4])(fra.me.REG[4]);
2958 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
2959 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
2960 if (!once_value_2) {
2961 fra.me.REG[4] = BOX_NativeString(" and ");
2962 REGB0 = TAG_Int(5);
2963 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
2964 once_value_2 = fra.me.REG[4];
2965 register_static_object(&once_value_2);
2966 } else fra.me.REG[4] = once_value_2;
2967 fra.me.REG[4] = fra.me.REG[4];
2968 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
2969 fra.me.REG[0] = CALL_parser___parser_nodes___AModuledecl___n_name(fra.me.REG[0])(fra.me.REG[0]);
2970 fra.me.REG[0] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[0])(fra.me.REG[0]);
2971 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
2972 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2973 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2974 if (!once_value_3) {
2975 fra.me.REG[0] = BOX_NativeString("");
2976 REGB0 = TAG_Int(0);
2977 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2978 once_value_3 = fra.me.REG[0];
2979 register_static_object(&once_value_3);
2980 } else fra.me.REG[0] = once_value_3;
2981 fra.me.REG[0] = fra.me.REG[0];
2982 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2983 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2984 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2]);
2985 }
2986 stack_frame_head = fra.me.prev;
2987 return;
2988 }
2989 val_t syntax___mmbuilder___AImport___module_name(val_t p0){
2990 struct {struct stack_frame_t me;} fra;
2991 val_t tmp;
2992 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2993 fra.me.file = LOCATE_syntax___mmbuilder;
2994 fra.me.line = 488;
2995 fra.me.meth = LOCATE_syntax___mmbuilder___AImport___module_name;
2996 fra.me.has_broke = 0;
2997 fra.me.REG_size = 0;
2998 fra.me.nitni_local_ref_head = NULL;
2999 /* syntax/mmbuilder.nit:488 */
3000 nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 488);
3001 stack_frame_head = fra.me.prev;
3002 return NIT_NULL;
3003 }
3004 val_t syntax___mmbuilder___AImport___visibility_level(val_t p0){
3005 struct {struct stack_frame_t me;} fra;
3006 val_t tmp;
3007 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3008 fra.me.file = LOCATE_syntax___mmbuilder;
3009 fra.me.line = 491;
3010 fra.me.meth = LOCATE_syntax___mmbuilder___AImport___visibility_level;
3011 fra.me.has_broke = 0;
3012 fra.me.REG_size = 0;
3013 fra.me.nitni_local_ref_head = NULL;
3014 /* syntax/mmbuilder.nit:491 */
3015 nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 491);
3016 stack_frame_head = fra.me.prev;
3017 return NIT_NULL;
3018 }
3019 val_t syntax___mmbuilder___AStdImport___module_name(val_t p0){
3020 struct {struct stack_frame_t me;} fra;
3021 val_t tmp;
3022 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3023 fra.me.file = LOCATE_syntax___mmbuilder;
3024 fra.me.line = 495;
3025 fra.me.meth = LOCATE_syntax___mmbuilder___AStdImport___module_name;
3026 fra.me.has_broke = 0;
3027 fra.me.REG_size = 1;
3028 fra.me.nitni_local_ref_head = NULL;
3029 fra.me.REG[0] = NIT_NULL;
3030 fra.me.REG[0] = p0;
3031 /* syntax/mmbuilder.nit:497 */
3032 fra.me.REG[0] = CALL_parser___parser_nodes___AStdImport___n_name(fra.me.REG[0])(fra.me.REG[0]);
3033 fra.me.REG[0] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[0])(fra.me.REG[0]);
3034 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
3035 goto label1;
3036 label1: while(0);
3037 stack_frame_head = fra.me.prev;
3038 return fra.me.REG[0];
3039 }
3040 val_t syntax___mmbuilder___AStdImport___visibility_level(val_t p0){
3041 struct {struct stack_frame_t me;} fra;
3042 val_t REGB0;
3043 val_t tmp;
3044 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3045 fra.me.file = LOCATE_syntax___mmbuilder;
3046 fra.me.line = 499;
3047 fra.me.meth = LOCATE_syntax___mmbuilder___AStdImport___visibility_level;
3048 fra.me.has_broke = 0;
3049 fra.me.REG_size = 1;
3050 fra.me.nitni_local_ref_head = NULL;
3051 fra.me.REG[0] = NIT_NULL;
3052 fra.me.REG[0] = p0;
3053 /* syntax/mmbuilder.nit:501 */
3054 fra.me.REG[0] = CALL_parser___parser_nodes___AStdImport___n_visibility(fra.me.REG[0])(fra.me.REG[0]);
3055 REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
3056 goto label1;
3057 label1: while(0);
3058 stack_frame_head = fra.me.prev;
3059 return REGB0;
3060 }
3061 val_t syntax___mmbuilder___ANoImport___module_name(val_t p0){
3062 struct {struct stack_frame_t me;} fra;
3063 val_t tmp;
3064 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3065 fra.me.file = LOCATE_syntax___mmbuilder;
3066 fra.me.line = 505;
3067 fra.me.meth = LOCATE_syntax___mmbuilder___ANoImport___module_name;
3068 fra.me.has_broke = 0;
3069 fra.me.REG_size = 1;
3070 fra.me.nitni_local_ref_head = NULL;
3071 fra.me.REG[0] = NIT_NULL;
3072 fra.me.REG[0] = p0;
3073 /* syntax/mmbuilder.nit:507 */
3074 fra.me.REG[0] = NIT_NULL;
3075 goto label1;
3076 label1: while(0);
3077 stack_frame_head = fra.me.prev;
3078 return fra.me.REG[0];
3079 }
3080 val_t syntax___mmbuilder___AVisibility___level(val_t p0){
3081 struct {struct stack_frame_t me;} fra;
3082 val_t tmp;
3083 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3084 fra.me.file = LOCATE_syntax___mmbuilder;
3085 fra.me.line = 512;
3086 fra.me.meth = LOCATE_syntax___mmbuilder___AVisibility___level;
3087 fra.me.has_broke = 0;
3088 fra.me.REG_size = 0;
3089 fra.me.nitni_local_ref_head = NULL;
3090 /* syntax/mmbuilder.nit:512 */
3091 nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 512);
3092 stack_frame_head = fra.me.prev;
3093 return NIT_NULL;
3094 }
3095 val_t syntax___mmbuilder___APublicVisibility___level(val_t p0){
3096 struct {struct stack_frame_t me;} fra;
3097 val_t REGB0;
3098 val_t tmp;
3099 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3100 fra.me.file = LOCATE_syntax___mmbuilder;
3101 fra.me.line = 516;
3102 fra.me.meth = LOCATE_syntax___mmbuilder___APublicVisibility___level;
3103 fra.me.has_broke = 0;
3104 fra.me.REG_size = 1;
3105 fra.me.nitni_local_ref_head = NULL;
3106 fra.me.REG[0] = NIT_NULL;
3107 fra.me.REG[0] = p0;
3108 /* syntax/mmbuilder.nit:516 */
3109 REGB0 = TAG_Int(1);
3110 goto label1;
3111 label1: while(0);
3112 stack_frame_head = fra.me.prev;
3113 return REGB0;
3114 }
3115 val_t syntax___mmbuilder___AProtectedVisibility___level(val_t p0){
3116 struct {struct stack_frame_t me;} fra;
3117 val_t REGB0;
3118 val_t tmp;
3119 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3120 fra.me.file = LOCATE_syntax___mmbuilder;
3121 fra.me.line = 519;
3122 fra.me.meth = LOCATE_syntax___mmbuilder___AProtectedVisibility___level;
3123 fra.me.has_broke = 0;
3124 fra.me.REG_size = 1;
3125 fra.me.nitni_local_ref_head = NULL;
3126 fra.me.REG[0] = NIT_NULL;
3127 fra.me.REG[0] = p0;
3128 /* syntax/mmbuilder.nit:519 */
3129 REGB0 = TAG_Int(2);
3130 goto label1;
3131 label1: while(0);
3132 stack_frame_head = fra.me.prev;
3133 return REGB0;
3134 }
3135 val_t syntax___mmbuilder___APrivateVisibility___level(val_t p0){
3136 struct {struct stack_frame_t me;} fra;
3137 val_t REGB0;
3138 val_t tmp;
3139 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3140 fra.me.file = LOCATE_syntax___mmbuilder;
3141 fra.me.line = 522;
3142 fra.me.meth = LOCATE_syntax___mmbuilder___APrivateVisibility___level;
3143 fra.me.has_broke = 0;
3144 fra.me.REG_size = 1;
3145 fra.me.nitni_local_ref_head = NULL;
3146 fra.me.REG[0] = NIT_NULL;
3147 fra.me.REG[0] = p0;
3148 /* syntax/mmbuilder.nit:522 */
3149 REGB0 = TAG_Int(3);
3150 goto label1;
3151 label1: while(0);
3152 stack_frame_head = fra.me.prev;
3153 return REGB0;
3154 }
3155 val_t syntax___mmbuilder___AIntrudeVisibility___level(val_t p0){
3156 struct {struct stack_frame_t me;} fra;
3157 val_t REGB0;
3158 val_t tmp;
3159 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3160 fra.me.file = LOCATE_syntax___mmbuilder;
3161 fra.me.line = 525;
3162 fra.me.meth = LOCATE_syntax___mmbuilder___AIntrudeVisibility___level;
3163 fra.me.has_broke = 0;
3164 fra.me.REG_size = 1;
3165 fra.me.nitni_local_ref_head = NULL;
3166 fra.me.REG[0] = NIT_NULL;
3167 fra.me.REG[0] = p0;
3168 /* syntax/mmbuilder.nit:525 */
3169 REGB0 = TAG_Int(0);
3170 goto label1;
3171 label1: while(0);
3172 stack_frame_head = fra.me.prev;
3173 return REGB0;
3174 }
3175 val_t syntax___mmbuilder___AClassdef___local_class(val_t p0){
3176 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3177 val_t REGB0;
3178 val_t tmp;
3179 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3180 fra.me.file = LOCATE_syntax___mmbuilder;
3181 fra.me.line = 530;
3182 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___local_class;
3183 fra.me.has_broke = 0;
3184 fra.me.REG_size = 2;
3185 fra.me.nitni_local_ref_head = NULL;
3186 fra.me.REG[0] = NIT_NULL;
3187 fra.me.REG[1] = NIT_NULL;
3188 fra.me.REG[0] = p0;
3189 /* syntax/mmbuilder.nit:530 */
3190 fra.me.REG[1] = fra.me.REG[0];
3191 fra.me.REG[1] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[1]);
3192 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
3193 if (UNTAG_Bool(REGB0)) {
3194 } else {
3195 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 530);
3196 }
3197 goto label1;
3198 label1: while(0);
3199 stack_frame_head = fra.me.prev;
3200 return fra.me.REG[1];
3201 }
3202 val_t syntax___mmbuilder___AClassdef___name(val_t p0){
3203 struct {struct stack_frame_t me;} fra;
3204 val_t tmp;
3205 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3206 fra.me.file = LOCATE_syntax___mmbuilder;
3207 fra.me.line = 533;
3208 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___name;
3209 fra.me.has_broke = 0;
3210 fra.me.REG_size = 0;
3211 fra.me.nitni_local_ref_head = NULL;
3212 /* syntax/mmbuilder.nit:533 */
3213 nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 533);
3214 stack_frame_head = fra.me.prev;
3215 return NIT_NULL;
3216 }
3217 val_t syntax___mmbuilder___AClassdef___arity(val_t p0){
3218 struct {struct stack_frame_t me;} fra;
3219 val_t REGB0;
3220 val_t tmp;
3221 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3222 fra.me.file = LOCATE_syntax___mmbuilder;
3223 fra.me.line = 536;
3224 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___arity;
3225 fra.me.has_broke = 0;
3226 fra.me.REG_size = 1;
3227 fra.me.nitni_local_ref_head = NULL;
3228 fra.me.REG[0] = NIT_NULL;
3229 fra.me.REG[0] = p0;
3230 /* syntax/mmbuilder.nit:537 */
3231 REGB0 = TAG_Int(0);
3232 goto label1;
3233 label1: while(0);
3234 stack_frame_head = fra.me.prev;
3235 return REGB0;
3236 }
3237 val_t syntax___mmbuilder___AClassdef___visibility_level(val_t p0){
3238 struct {struct stack_frame_t me;} fra;
3239 val_t REGB0;
3240 val_t tmp;
3241 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3242 fra.me.file = LOCATE_syntax___mmbuilder;
3243 fra.me.line = 539;
3244 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___visibility_level;
3245 fra.me.has_broke = 0;
3246 fra.me.REG_size = 1;
3247 fra.me.nitni_local_ref_head = NULL;
3248 fra.me.REG[0] = NIT_NULL;
3249 fra.me.REG[0] = p0;
3250 /* syntax/mmbuilder.nit:540 */
3251 REGB0 = TAG_Int(1);
3252 goto label1;
3253 label1: while(0);
3254 stack_frame_head = fra.me.prev;
3255 return REGB0;
3256 }
3257 void syntax___mmbuilder___AClassdef___accept_class_builder(val_t p0, val_t p1){
3258 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
3259 val_t REGB0;
3260 val_t REGB1;
3261 val_t tmp;
3262 static val_t once_value_1; /* Once value */
3263 static val_t once_value_2; /* Once value */
3264 static val_t once_value_3; /* Once value */
3265 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3266 fra.me.file = LOCATE_syntax___mmbuilder;
3267 fra.me.line = 542;
3268 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___accept_class_builder;
3269 fra.me.has_broke = 0;
3270 fra.me.REG_size = 9;
3271 fra.me.nitni_local_ref_head = NULL;
3272 fra.me.REG[0] = NIT_NULL;
3273 fra.me.REG[1] = NIT_NULL;
3274 fra.me.REG[2] = NIT_NULL;
3275 fra.me.REG[3] = NIT_NULL;
3276 fra.me.REG[4] = NIT_NULL;
3277 fra.me.REG[5] = NIT_NULL;
3278 fra.me.REG[6] = NIT_NULL;
3279 fra.me.REG[7] = NIT_NULL;
3280 fra.me.REG[8] = NIT_NULL;
3281 fra.me.REG[0] = p0;
3282 fra.me.REG[1] = p1;
3283 /* syntax/mmbuilder.nit:542 */
3284 fra.me.REG[2] = fra.me.REG[0];
3285 fra.me.REG[3] = fra.me.REG[1];
3286 /* syntax/mmbuilder.nit:545 */
3287 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
3288 /* syntax/mmbuilder.nit:546 */
3289 fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra.me.REG[4])(fra.me.REG[4]);
3290 /* syntax/mmbuilder.nit:547 */
3291 fra.me.REG[6] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3292 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
3293 if (UNTAG_Bool(REGB0)) {
3294 /* syntax/mmbuilder.nit:548 */
3295 fra.me.REG[6] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3296 fra.me.REG[6] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
3297 /* syntax/mmbuilder.nit:549 */
3298 ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]) = fra.me.REG[6];
3299 /* syntax/mmbuilder.nit:550 */
3300 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
3301 if (UNTAG_Bool(REGB0)) {
3302 /* syntax/mmbuilder.nit:552 */
3303 REGB0 = TAG_Int(5);
3304 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3305 if (!once_value_1) {
3306 fra.me.REG[8] = BOX_NativeString("Error: A class ");
3307 REGB0 = TAG_Int(15);
3308 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3309 once_value_1 = fra.me.REG[8];
3310 register_static_object(&once_value_1);
3311 } else fra.me.REG[8] = once_value_1;
3312 fra.me.REG[8] = fra.me.REG[8];
3313 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3314 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3315 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3316 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3317 if (!once_value_2) {
3318 fra.me.REG[8] = BOX_NativeString(" is already defined at line ");
3319 REGB0 = TAG_Int(28);
3320 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3321 once_value_2 = fra.me.REG[8];
3322 register_static_object(&once_value_2);
3323 } else fra.me.REG[8] = once_value_2;
3324 fra.me.REG[8] = fra.me.REG[8];
3325 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3326 fra.me.REG[8] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[6])(fra.me.REG[6]);
3327 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
3328 if (UNTAG_Bool(REGB0)) {
3329 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 552);
3330 }
3331 fra.me.REG[8] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[8])(fra.me.REG[8]);
3332 REGB0 = CALL_location___Location___line_start(fra.me.REG[8])(fra.me.REG[8]);
3333 fra.me.REG[8] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
3334 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3335 if (!once_value_3) {
3336 fra.me.REG[8] = BOX_NativeString(".");
3337 REGB0 = TAG_Int(1);
3338 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3339 once_value_3 = fra.me.REG[8];
3340 register_static_object(&once_value_3);
3341 } else fra.me.REG[8] = once_value_3;
3342 fra.me.REG[8] = fra.me.REG[8];
3343 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3344 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3345 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3346 /* syntax/mmbuilder.nit:553 */
3347 goto label4;
3348 }
3349 /* syntax/mmbuilder.nit:556 */
3350 fra.me.REG[7] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[6])(fra.me.REG[6]);
3351 /* syntax/mmbuilder.nit:557 */
3352 while(1) {
3353 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
3354 if (UNTAG_Bool(REGB0)) {
3355 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 557);
3356 }
3357 fra.me.REG[8] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[7])(fra.me.REG[7]);
3358 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
3359 if (UNTAG_Bool(REGB0)) {
3360 } else {
3361 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
3362 if (UNTAG_Bool(REGB1)) {
3363 REGB1 = TAG_Bool(false);
3364 REGB0 = REGB1;
3365 } else {
3366 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
3367 REGB0 = REGB1;
3368 }
3369 }
3370 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3371 if (UNTAG_Bool(REGB0)) {
3372 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
3373 if (UNTAG_Bool(REGB0)) {
3374 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 557);
3375 }
3376 fra.me.REG[8] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[7])(fra.me.REG[7]);
3377 fra.me.REG[7] = fra.me.REG[8];
3378 } else {
3379 goto label5;
3380 }
3381 }
3382 label5: while(0);
3383 /* syntax/mmbuilder.nit:558 */
3384 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
3385 if (UNTAG_Bool(REGB0)) {
3386 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 558);
3387 }
3388 CALL_syntax___syntax_base___AClassdef___next_node__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]);
3389 } else {
3390 /* syntax/mmbuilder.nit:560 */
3391 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3392 REGB0 = CALL_syntax___mmbuilder___AClassdef___arity(fra.me.REG[2])(fra.me.REG[2]);
3393 fra.me.REG[7] = NEW_MMSrcLocalClass_syntax___syntax_base___MMSrcLocalClass___init(fra.me.REG[4], fra.me.REG[7], fra.me.REG[2], REGB0);
3394 fra.me.REG[6] = fra.me.REG[7];
3395 /* syntax/mmbuilder.nit:561 */
3396 ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]) = fra.me.REG[6];
3397 /* syntax/mmbuilder.nit:562 */
3398 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3399 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7], fra.me.REG[6]);
3400 /* syntax/mmbuilder.nit:563 */
3401 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3402 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
3403 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3404 if (UNTAG_Bool(REGB0)) {
3405 /* syntax/mmbuilder.nit:564 */
3406 CALL_syntax___mmbuilder___AClassdef___build_class_introduction(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3407 } else {
3408 /* syntax/mmbuilder.nit:566 */
3409 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3410 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMModule___global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
3411 /* syntax/mmbuilder.nit:567 */
3412 CALL_syntax___mmbuilder___AClassdef___build_class_refinement(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[7]);
3413 }
3414 }
3415 /* syntax/mmbuilder.nit:571 */
3416 REGB0 = TAG_Int(0);
3417 CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
3418 /* syntax/mmbuilder.nit:572 */
3419 fra.me.REG[6] = CALL_syntax___syntax_base___MMSrcLocalClass___formal_dict(fra.me.REG[6])(fra.me.REG[6]);
3420 CALL_syntax___mmbuilder___ClassBuilderVisitor___formals__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
3421 /* syntax/mmbuilder.nit:575 */
3422 CALL_SUPER_syntax___mmbuilder___AClassdef___accept_class_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3423 /* syntax/mmbuilder.nit:578 */
3424 CALL_syntax___mmbuilder___ClassBuilderVisitor___formals__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3425 label4: while(0);
3426 stack_frame_head = fra.me.prev;
3427 return;
3428 }
3429 void syntax___mmbuilder___AClassdef___build_class_introduction(val_t p0, val_t p1){
3430 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
3431 val_t REGB0;
3432 val_t REGB1;
3433 val_t tmp;
3434 static val_t once_value_1; /* Once value */
3435 static val_t once_value_2; /* Once value */
3436 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3437 fra.me.file = LOCATE_syntax___mmbuilder;
3438 fra.me.line = 581;
3439 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___build_class_introduction;
3440 fra.me.has_broke = 0;
3441 fra.me.REG_size = 5;
3442 fra.me.nitni_local_ref_head = NULL;
3443 fra.me.REG[0] = NIT_NULL;
3444 fra.me.REG[1] = NIT_NULL;
3445 fra.me.REG[2] = NIT_NULL;
3446 fra.me.REG[3] = NIT_NULL;
3447 fra.me.REG[4] = NIT_NULL;
3448 fra.me.REG[0] = p0;
3449 fra.me.REG[1] = p1;
3450 /* syntax/mmbuilder.nit:583 */
3451 fra.me.REG[2] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[0])(fra.me.REG[0]);
3452 CALL_metamodel___abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
3453 /* syntax/mmbuilder.nit:584 */
3454 fra.me.REG[2] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[0])(fra.me.REG[0]);
3455 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
3456 /* syntax/mmbuilder.nit:586 */
3457 REGB0 = CALL_syntax___mmbuilder___AClassdef___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
3458 CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
3459 /* syntax/mmbuilder.nit:587 */
3460 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
3461 if (UNTAG_Bool(REGB0)) {
3462 /* syntax/mmbuilder.nit:588 */
3463 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[0])(fra.me.REG[0]);
3464 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3465 if (UNTAG_Bool(REGB0)) {
3466 } else {
3467 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3468 if (UNTAG_Bool(REGB1)) {
3469 REGB1 = TAG_Bool(false);
3470 REGB0 = REGB1;
3471 } else {
3472 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3473 REGB0 = REGB1;
3474 }
3475 }
3476 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3477 if (UNTAG_Bool(REGB0)) {
3478 /* syntax/mmbuilder.nit:589 */
3479 REGB0 = TAG_Int(3);
3480 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3481 if (!once_value_1) {
3482 fra.me.REG[4] = BOX_NativeString("Redef error: No class ");
3483 REGB0 = TAG_Int(22);
3484 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
3485 once_value_1 = fra.me.REG[4];
3486 register_static_object(&once_value_1);
3487 } else fra.me.REG[4] = once_value_1;
3488 fra.me.REG[4] = fra.me.REG[4];
3489 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3490 fra.me.REG[4] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[0])(fra.me.REG[0]);
3491 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3492 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3493 if (!once_value_2) {
3494 fra.me.REG[4] = BOX_NativeString(" is imported. Remove the redef keyword to define a new class.");
3495 REGB0 = TAG_Int(61);
3496 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
3497 once_value_2 = fra.me.REG[4];
3498 register_static_object(&once_value_2);
3499 } else fra.me.REG[4] = once_value_2;
3500 fra.me.REG[4] = fra.me.REG[4];
3501 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3502 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3503 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
3504 /* syntax/mmbuilder.nit:590 */
3505 goto label3;
3506 }
3507 /* syntax/mmbuilder.nit:592 */
3508 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3509 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[3])(fra.me.REG[3]);
3510 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
3511 /* syntax/mmbuilder.nit:593 */
3512 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3513 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[3])(fra.me.REG[3]);
3514 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
3515 /* syntax/mmbuilder.nit:594 */
3516 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3517 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[0])(fra.me.REG[0]);
3518 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
3519 }
3520 label3: while(0);
3521 stack_frame_head = fra.me.prev;
3522 return;
3523 }
3524 void syntax___mmbuilder___AClassdef___build_class_refinement(val_t p0, val_t p1, val_t p2){
3525 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
3526 val_t REGB0;
3527 val_t REGB1;
3528 val_t REGB2;
3529 val_t tmp;
3530 static val_t once_value_1; /* Once value */
3531 static val_t once_value_2; /* Once value */
3532 static val_t once_value_4; /* Once value */
3533 static val_t once_value_5; /* Once value */
3534 static val_t once_value_6; /* Once value */
3535 static val_t once_value_7; /* Once value */
3536 static val_t once_value_8; /* Once value */
3537 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3538 fra.me.file = LOCATE_syntax___mmbuilder;
3539 fra.me.line = 598;
3540 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___build_class_refinement;
3541 fra.me.has_broke = 0;
3542 fra.me.REG_size = 5;
3543 fra.me.nitni_local_ref_head = NULL;
3544 fra.me.REG[0] = NIT_NULL;
3545 fra.me.REG[1] = NIT_NULL;
3546 fra.me.REG[2] = NIT_NULL;
3547 fra.me.REG[3] = NIT_NULL;
3548 fra.me.REG[4] = NIT_NULL;
3549 fra.me.REG[0] = p0;
3550 fra.me.REG[1] = p1;
3551 fra.me.REG[2] = p2;
3552 /* syntax/mmbuilder.nit:600 */
3553 fra.me.REG[3] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[0])(fra.me.REG[0]);
3554 CALL_metamodel___abstractmetamodel___MMLocalClass___set_global(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
3555 /* syntax/mmbuilder.nit:602 */
3556 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
3557 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]);
3558 /* syntax/mmbuilder.nit:603 */
3559 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
3560 if (UNTAG_Bool(REGB0)) {
3561 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[0])(fra.me.REG[0]);
3562 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3563 if (UNTAG_Bool(REGB0)) {
3564 } else {
3565 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3566 if (UNTAG_Bool(REGB1)) {
3567 REGB1 = TAG_Bool(false);
3568 REGB0 = REGB1;
3569 } else {
3570 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3571 REGB0 = REGB1;
3572 }
3573 }
3574 } else {
3575 REGB1 = TAG_Bool(false);
3576 REGB0 = REGB1;
3577 }
3578 if (UNTAG_Bool(REGB0)) {
3579 /* syntax/mmbuilder.nit:604 */
3580 REGB0 = TAG_Int(3);
3581 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3582 if (!once_value_1) {
3583 fra.me.REG[4] = BOX_NativeString("Redef error: ");
3584 REGB0 = TAG_Int(13);
3585 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
3586 once_value_1 = fra.me.REG[4];
3587 register_static_object(&once_value_1);
3588 } else fra.me.REG[4] = once_value_1;
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[4] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[0])(fra.me.REG[0]);
3592 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3593 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3594 if (!once_value_2) {
3595 fra.me.REG[4] = BOX_NativeString(" is an imported class. Add the redef keyword to refine it.");
3596 REGB0 = TAG_Int(58);
3597 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
3598 once_value_2 = fra.me.REG[4];
3599 register_static_object(&once_value_2);
3600 } else fra.me.REG[4] = once_value_2;
3601 fra.me.REG[4] = fra.me.REG[4];
3602 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3603 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3604 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
3605 /* syntax/mmbuilder.nit:605 */
3606 goto label3;
3607 }
3608 /* syntax/mmbuilder.nit:608 */
3609 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[2])(fra.me.REG[2]);
3610 REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[3])(fra.me.REG[3]);
3611 fra.me.REG[3] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[0]);
3612 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3613 if (UNTAG_Bool(REGB1)) {
3614 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 608);
3615 }
3616 REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[3])(fra.me.REG[3]);
3617 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
3618 if (UNTAG_Bool(REGB2)) {
3619 } else {
3620 /* ../lib/standard/kernel.nit:227 */
3621 REGB1 = TAG_Bool((REGB0)==(REGB1));
3622 /* syntax/mmbuilder.nit:608 */
3623 REGB2 = REGB1;
3624 }
3625 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
3626 if (UNTAG_Bool(REGB2)) {
3627 /* syntax/mmbuilder.nit:609 */
3628 REGB2 = TAG_Int(5);
3629 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
3630 if (!once_value_4) {
3631 fra.me.REG[4] = BOX_NativeString("Redef error: Formal parameter arity missmatch; got ");
3632 REGB2 = TAG_Int(51);
3633 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
3634 once_value_4 = fra.me.REG[4];
3635 register_static_object(&once_value_4);
3636 } else fra.me.REG[4] = once_value_4;
3637 fra.me.REG[4] = fra.me.REG[4];
3638 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3639 fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[0]);
3640 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3641 if (UNTAG_Bool(REGB2)) {
3642 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 609);
3643 }
3644 REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
3645 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
3646 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3647 if (!once_value_5) {
3648 fra.me.REG[4] = BOX_NativeString(", expected ");
3649 REGB2 = TAG_Int(11);
3650 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
3651 once_value_5 = fra.me.REG[4];
3652 register_static_object(&once_value_5);
3653 } else fra.me.REG[4] = once_value_5;
3654 fra.me.REG[4] = fra.me.REG[4];
3655 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3656 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[2])(fra.me.REG[2]);
3657 REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
3658 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
3659 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3660 if (!once_value_6) {
3661 fra.me.REG[4] = BOX_NativeString(".");
3662 REGB2 = TAG_Int(1);
3663 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
3664 once_value_6 = fra.me.REG[4];
3665 register_static_object(&once_value_6);
3666 } else fra.me.REG[4] = once_value_6;
3667 fra.me.REG[4] = fra.me.REG[4];
3668 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3669 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3670 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
3671 }
3672 /* syntax/mmbuilder.nit:612 */
3673 REGB2 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
3674 if (UNTAG_Bool(REGB2)) {
3675 REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[2])(fra.me.REG[2]);
3676 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
3677 if (UNTAG_Bool(REGB2)) {
3678 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3679 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[3])(fra.me.REG[3]);
3680 } else {
3681 REGB1 = TAG_Bool(false);
3682 REGB2 = REGB1;
3683 }
3684 if (UNTAG_Bool(REGB2)) {
3685 REGB2 = TAG_Bool(true);
3686 } else {
3687 /* syntax/mmbuilder.nit:613 */
3688 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[2])(fra.me.REG[2]);
3689 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3690 /* syntax/mmbuilder.nit:612 */
3691 REGB2 = REGB1;
3692 }
3693 if (UNTAG_Bool(REGB2)) {
3694 /* syntax/mmbuilder.nit:613 */
3695 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3696 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[3])(fra.me.REG[3]);
3697 } else {
3698 /* syntax/mmbuilder.nit:612 */
3699 REGB1 = TAG_Bool(false);
3700 REGB2 = REGB1;
3701 }
3702 if (UNTAG_Bool(REGB2)) {
3703 REGB2 = TAG_Bool(true);
3704 } else {
3705 /* syntax/mmbuilder.nit:614 */
3706 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[2])(fra.me.REG[2]);
3707 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3708 /* syntax/mmbuilder.nit:612 */
3709 REGB2 = REGB1;
3710 }
3711 if (UNTAG_Bool(REGB2)) {
3712 /* syntax/mmbuilder.nit:614 */
3713 fra.me.REG[2] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3714 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[2])(fra.me.REG[2]);
3715 } else {
3716 /* syntax/mmbuilder.nit:612 */
3717 REGB1 = TAG_Bool(false);
3718 REGB2 = REGB1;
3719 }
3720 } else {
3721 REGB1 = TAG_Bool(false);
3722 REGB2 = REGB1;
3723 }
3724 if (UNTAG_Bool(REGB2)) {
3725 /* syntax/mmbuilder.nit:616 */
3726 REGB2 = TAG_Int(3);
3727 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
3728 if (!once_value_7) {
3729 fra.me.REG[3] = BOX_NativeString("Redef error: cannot change kind of class ");
3730 REGB2 = TAG_Int(41);
3731 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
3732 once_value_7 = fra.me.REG[3];
3733 register_static_object(&once_value_7);
3734 } else fra.me.REG[3] = once_value_7;
3735 fra.me.REG[3] = fra.me.REG[3];
3736 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3737 fra.me.REG[3] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[0])(fra.me.REG[0]);
3738 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3739 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3740 if (!once_value_8) {
3741 fra.me.REG[3] = BOX_NativeString(".");
3742 REGB2 = TAG_Int(1);
3743 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
3744 once_value_8 = fra.me.REG[3];
3745 register_static_object(&once_value_8);
3746 } else fra.me.REG[3] = once_value_8;
3747 fra.me.REG[3] = fra.me.REG[3];
3748 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3749 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3750 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
3751 }
3752 label3: while(0);
3753 stack_frame_head = fra.me.prev;
3754 return;
3755 }
3756 void syntax___mmbuilder___AClassdef___accept_class_verifier(val_t p0, val_t p1){
3757 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
3758 val_t REGB0;
3759 val_t REGB1;
3760 val_t REGB2;
3761 val_t tmp;
3762 static val_t once_value_1; /* Once value */
3763 static val_t once_value_2; /* Once value */
3764 static val_t once_value_3; /* Once value */
3765 static val_t once_value_4; /* Once value */
3766 static val_t once_value_5; /* Once value */
3767 static val_t once_value_6; /* Once value */
3768 static val_t once_value_7; /* Once value */
3769 static val_t once_value_8; /* Once value */
3770 static val_t once_value_9; /* Once value */
3771 static val_t once_value_10; /* Once value */
3772 static val_t once_value_11; /* Once value */
3773 static val_t once_value_12; /* Once value */
3774 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3775 fra.me.file = LOCATE_syntax___mmbuilder;
3776 fra.me.line = 620;
3777 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___accept_class_verifier;
3778 fra.me.has_broke = 0;
3779 fra.me.REG_size = 9;
3780 fra.me.nitni_local_ref_head = NULL;
3781 fra.me.REG[0] = NIT_NULL;
3782 fra.me.REG[1] = NIT_NULL;
3783 fra.me.REG[2] = NIT_NULL;
3784 fra.me.REG[3] = NIT_NULL;
3785 fra.me.REG[4] = NIT_NULL;
3786 fra.me.REG[5] = NIT_NULL;
3787 fra.me.REG[6] = NIT_NULL;
3788 fra.me.REG[7] = NIT_NULL;
3789 fra.me.REG[8] = NIT_NULL;
3790 fra.me.REG[0] = p0;
3791 fra.me.REG[1] = p1;
3792 /* syntax/mmbuilder.nit:620 */
3793 fra.me.REG[2] = fra.me.REG[0];
3794 fra.me.REG[3] = fra.me.REG[1];
3795 /* syntax/mmbuilder.nit:622 */
3796 CALL_SUPER_syntax___mmbuilder___AClassdef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3797 /* syntax/mmbuilder.nit:623 */
3798 fra.me.REG[1] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3799 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3800 if (UNTAG_Bool(REGB0)) {
3801 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 623);
3802 }
3803 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
3804 /* syntax/mmbuilder.nit:624 */
3805 fra.me.REG[0] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3806 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3807 if (UNTAG_Bool(REGB0)) {
3808 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 624);
3809 }
3810 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
3811 fra.me.REG[0] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[0])(fra.me.REG[0]);
3812 /* ../lib/standard/collection/array.nit:269 */
3813 REGB0 = TAG_Int(0);
3814 /* ../lib/standard/collection/array.nit:270 */
3815 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3816 if (UNTAG_Bool(REGB1)) {
3817 } else {
3818 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
3819 }
3820 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
3821 /* ../lib/standard/collection/array.nit:271 */
3822 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
3823 /* ../lib/standard/collection/array.nit:272 */
3824 while(1) {
3825 /* ../lib/standard/collection/array.nit:24 */
3826 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3827 if (UNTAG_Bool(REGB1)) {
3828 } else {
3829 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
3830 }
3831 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
3832 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3833 if (UNTAG_Bool(REGB2)) {
3834 } else {
3835 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3836 }
3837 /* ../lib/standard/kernel.nit:232 */
3838 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3839 /* ../lib/standard/collection/array.nit:272 */
3840 if (UNTAG_Bool(REGB1)) {
3841 /* ../lib/standard/collection/array.nit:273 */
3842 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3843 if (UNTAG_Bool(REGB1)) {
3844 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
3845 }
3846 /* ../lib/standard/collection/array.nit:718 */
3847 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
3848 /* syntax/mmbuilder.nit:625 */
3849 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
3850 /* syntax/mmbuilder.nit:626 */
3851 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
3852 if (UNTAG_Bool(REGB1)) {
3853 /* syntax/mmbuilder.nit:627 */
3854 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
3855 if (UNTAG_Bool(REGB1)) {
3856 /* syntax/mmbuilder.nit:628 */
3857 REGB1 = TAG_Int(5);
3858 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
3859 if (!once_value_1) {
3860 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
3861 REGB1 = TAG_Int(25);
3862 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3863 once_value_1 = fra.me.REG[8];
3864 register_static_object(&once_value_1);
3865 } else fra.me.REG[8] = once_value_1;
3866 fra.me.REG[8] = fra.me.REG[8];
3867 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3868 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3869 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3870 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3871 if (!once_value_2) {
3872 fra.me.REG[8] = BOX_NativeString(" try to specialise enum class ");
3873 REGB1 = TAG_Int(30);
3874 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3875 once_value_2 = fra.me.REG[8];
3876 register_static_object(&once_value_2);
3877 } else fra.me.REG[8] = once_value_2;
3878 fra.me.REG[8] = fra.me.REG[8];
3879 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3880 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3881 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3882 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3883 if (!once_value_3) {
3884 fra.me.REG[8] = BOX_NativeString(".");
3885 REGB1 = TAG_Int(1);
3886 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3887 once_value_3 = fra.me.REG[8];
3888 register_static_object(&once_value_3);
3889 } else fra.me.REG[8] = once_value_3;
3890 fra.me.REG[8] = fra.me.REG[8];
3891 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3892 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3893 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3894 } else {
3895 /* syntax/mmbuilder.nit:629 */
3896 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
3897 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3898 if (UNTAG_Bool(REGB1)) {
3899 /* syntax/mmbuilder.nit:630 */
3900 REGB1 = TAG_Int(5);
3901 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
3902 if (!once_value_4) {
3903 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
3904 REGB1 = TAG_Int(25);
3905 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3906 once_value_4 = fra.me.REG[8];
3907 register_static_object(&once_value_4);
3908 } else fra.me.REG[8] = once_value_4;
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[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3912 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3913 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3914 if (!once_value_5) {
3915 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
3916 REGB1 = TAG_Int(25);
3917 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3918 once_value_5 = fra.me.REG[8];
3919 register_static_object(&once_value_5);
3920 } else fra.me.REG[8] = once_value_5;
3921 fra.me.REG[8] = fra.me.REG[8];
3922 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3923 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3924 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3925 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3926 if (!once_value_6) {
3927 fra.me.REG[8] = BOX_NativeString(".");
3928 REGB1 = TAG_Int(1);
3929 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3930 once_value_6 = fra.me.REG[8];
3931 register_static_object(&once_value_6);
3932 } else fra.me.REG[8] = once_value_6;
3933 fra.me.REG[8] = fra.me.REG[8];
3934 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3935 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3936 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3937 }
3938 }
3939 } else {
3940 /* syntax/mmbuilder.nit:632 */
3941 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
3942 if (UNTAG_Bool(REGB1)) {
3943 /* syntax/mmbuilder.nit:633 */
3944 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
3945 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3946 if (UNTAG_Bool(REGB1)) {
3947 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
3948 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3949 } else {
3950 REGB2 = TAG_Bool(false);
3951 REGB1 = REGB2;
3952 }
3953 if (UNTAG_Bool(REGB1)) {
3954 /* syntax/mmbuilder.nit:634 */
3955 REGB1 = TAG_Int(5);
3956 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
3957 if (!once_value_7) {
3958 fra.me.REG[8] = BOX_NativeString("Special error: Enum class ");
3959 REGB1 = TAG_Int(26);
3960 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3961 once_value_7 = fra.me.REG[8];
3962 register_static_object(&once_value_7);
3963 } else fra.me.REG[8] = once_value_7;
3964 fra.me.REG[8] = fra.me.REG[8];
3965 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3966 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3967 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3968 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3969 if (!once_value_8) {
3970 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
3971 REGB1 = TAG_Int(25);
3972 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3973 once_value_8 = fra.me.REG[8];
3974 register_static_object(&once_value_8);
3975 } else fra.me.REG[8] = once_value_8;
3976 fra.me.REG[8] = fra.me.REG[8];
3977 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3978 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3979 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3980 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3981 if (!once_value_9) {
3982 fra.me.REG[8] = BOX_NativeString(".");
3983 REGB1 = TAG_Int(1);
3984 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3985 once_value_9 = fra.me.REG[8];
3986 register_static_object(&once_value_9);
3987 } else fra.me.REG[8] = once_value_9;
3988 fra.me.REG[8] = fra.me.REG[8];
3989 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3990 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3991 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3992 }
3993 } else {
3994 /* syntax/mmbuilder.nit:637 */
3995 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
3996 if (UNTAG_Bool(REGB1)) {
3997 /* syntax/mmbuilder.nit:638 */
3998 REGB1 = TAG_Int(5);
3999 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4000 if (!once_value_10) {
4001 fra.me.REG[7] = BOX_NativeString("Special error: Class ");
4002 REGB1 = TAG_Int(21);
4003 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
4004 once_value_10 = fra.me.REG[7];
4005 register_static_object(&once_value_10);
4006 } else fra.me.REG[7] = once_value_10;
4007 fra.me.REG[7] = fra.me.REG[7];
4008 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4009 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4010 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4011 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4012 if (!once_value_11) {
4013 fra.me.REG[7] = BOX_NativeString(" try to specialise enum class ");
4014 REGB1 = TAG_Int(30);
4015 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
4016 once_value_11 = fra.me.REG[7];
4017 register_static_object(&once_value_11);
4018 } else fra.me.REG[7] = once_value_11;
4019 fra.me.REG[7] = fra.me.REG[7];
4020 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4021 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4022 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4023 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
4024 if (!once_value_12) {
4025 fra.me.REG[5] = BOX_NativeString(".");
4026 REGB1 = TAG_Int(1);
4027 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
4028 once_value_12 = fra.me.REG[5];
4029 register_static_object(&once_value_12);
4030 } else fra.me.REG[5] = once_value_12;
4031 fra.me.REG[5] = fra.me.REG[5];
4032 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
4033 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4034 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
4035 }
4036 }
4037 }
4038 /* ../lib/standard/collection/array.nit:274 */
4039 REGB1 = TAG_Int(1);
4040 /* ../lib/standard/kernel.nit:235 */
4041 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
4042 /* ../lib/standard/collection/array.nit:274 */
4043 REGB0 = REGB1;
4044 } else {
4045 /* ../lib/standard/collection/array.nit:272 */
4046 goto label13;
4047 }
4048 }
4049 label13: while(0);
4050 stack_frame_head = fra.me.prev;
4051 return;
4052 }
4053 void syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
4054 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4055 val_t tmp;
4056 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4057 fra.me.file = LOCATE_syntax___mmbuilder;
4058 fra.me.line = 645;
4059 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor;
4060 fra.me.has_broke = 0;
4061 fra.me.REG_size = 4;
4062 fra.me.nitni_local_ref_head = NULL;
4063 fra.me.REG[0] = NIT_NULL;
4064 fra.me.REG[1] = NIT_NULL;
4065 fra.me.REG[2] = NIT_NULL;
4066 fra.me.REG[3] = NIT_NULL;
4067 fra.me.REG[0] = p0;
4068 fra.me.REG[1] = p1;
4069 /* syntax/mmbuilder.nit:645 */
4070 fra.me.REG[2] = fra.me.REG[0];
4071 fra.me.REG[3] = fra.me.REG[1];
4072 /* syntax/mmbuilder.nit:647 */
4073 fra.me.REG[2] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4074 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
4075 /* syntax/mmbuilder.nit:648 */
4076 CALL_SUPER_syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4077 /* syntax/mmbuilder.nit:649 */
4078 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
4079 stack_frame_head = fra.me.prev;
4080 return;
4081 }
4082 val_t syntax___mmbuilder___AClasskind___is_interface(val_t p0){
4083 struct {struct stack_frame_t me;} fra;
4084 val_t REGB0;
4085 val_t tmp;
4086 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4087 fra.me.file = LOCATE_syntax___mmbuilder;
4088 fra.me.line = 654;
4089 fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_interface;
4090 fra.me.has_broke = 0;
4091 fra.me.REG_size = 1;
4092 fra.me.nitni_local_ref_head = NULL;
4093 fra.me.REG[0] = NIT_NULL;
4094 fra.me.REG[0] = p0;
4095 /* syntax/mmbuilder.nit:654 */
4096 REGB0 = TAG_Bool(false);
4097 goto label1;
4098 label1: while(0);
4099 stack_frame_head = fra.me.prev;
4100 return REGB0;
4101 }
4102 val_t syntax___mmbuilder___AClasskind___is_enum(val_t p0){
4103 struct {struct stack_frame_t me;} fra;
4104 val_t REGB0;
4105 val_t tmp;
4106 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4107 fra.me.file = LOCATE_syntax___mmbuilder;
4108 fra.me.line = 655;
4109 fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_enum;
4110 fra.me.has_broke = 0;
4111 fra.me.REG_size = 1;
4112 fra.me.nitni_local_ref_head = NULL;
4113 fra.me.REG[0] = NIT_NULL;
4114 fra.me.REG[0] = p0;
4115 /* syntax/mmbuilder.nit:655 */
4116 REGB0 = TAG_Bool(false);
4117 goto label1;
4118 label1: while(0);
4119 stack_frame_head = fra.me.prev;
4120 return REGB0;
4121 }
4122 val_t syntax___mmbuilder___AClasskind___is_abstract(val_t p0){
4123 struct {struct stack_frame_t me;} fra;
4124 val_t REGB0;
4125 val_t tmp;
4126 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4127 fra.me.file = LOCATE_syntax___mmbuilder;
4128 fra.me.line = 656;
4129 fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_abstract;
4130 fra.me.has_broke = 0;
4131 fra.me.REG_size = 1;
4132 fra.me.nitni_local_ref_head = NULL;
4133 fra.me.REG[0] = NIT_NULL;
4134 fra.me.REG[0] = p0;
4135 /* syntax/mmbuilder.nit:656 */
4136 REGB0 = TAG_Bool(false);
4137 goto label1;
4138 label1: while(0);
4139 stack_frame_head = fra.me.prev;
4140 return REGB0;
4141 }
4142 val_t syntax___mmbuilder___AClasskind___is_extern(val_t p0){
4143 struct {struct stack_frame_t me;} fra;
4144 val_t REGB0;
4145 val_t tmp;
4146 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4147 fra.me.file = LOCATE_syntax___mmbuilder;
4148 fra.me.line = 657;
4149 fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_extern;
4150 fra.me.has_broke = 0;
4151 fra.me.REG_size = 1;
4152 fra.me.nitni_local_ref_head = NULL;
4153 fra.me.REG[0] = NIT_NULL;
4154 fra.me.REG[0] = p0;
4155 /* syntax/mmbuilder.nit:657 */
4156 REGB0 = TAG_Bool(false);
4157 goto label1;
4158 label1: while(0);
4159 stack_frame_head = fra.me.prev;
4160 return REGB0;
4161 }
4162 val_t syntax___mmbuilder___AInterfaceClasskind___is_interface(val_t p0){
4163 struct {struct stack_frame_t me;} fra;
4164 val_t REGB0;
4165 val_t tmp;
4166 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4167 fra.me.file = LOCATE_syntax___mmbuilder;
4168 fra.me.line = 661;
4169 fra.me.meth = LOCATE_syntax___mmbuilder___AInterfaceClasskind___is_interface;
4170 fra.me.has_broke = 0;
4171 fra.me.REG_size = 1;
4172 fra.me.nitni_local_ref_head = NULL;
4173 fra.me.REG[0] = NIT_NULL;
4174 fra.me.REG[0] = p0;
4175 /* syntax/mmbuilder.nit:661 */
4176 REGB0 = TAG_Bool(true);
4177 goto label1;
4178 label1: while(0);
4179 stack_frame_head = fra.me.prev;
4180 return REGB0;
4181 }
4182 val_t syntax___mmbuilder___AEnumClasskind___is_enum(val_t p0){
4183 struct {struct stack_frame_t me;} fra;
4184 val_t REGB0;
4185 val_t tmp;
4186 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4187 fra.me.file = LOCATE_syntax___mmbuilder;
4188 fra.me.line = 664;
4189 fra.me.meth = LOCATE_syntax___mmbuilder___AEnumClasskind___is_enum;
4190 fra.me.has_broke = 0;
4191 fra.me.REG_size = 1;
4192 fra.me.nitni_local_ref_head = NULL;
4193 fra.me.REG[0] = NIT_NULL;
4194 fra.me.REG[0] = p0;
4195 /* syntax/mmbuilder.nit:664 */
4196 REGB0 = TAG_Bool(true);
4197 goto label1;
4198 label1: while(0);
4199 stack_frame_head = fra.me.prev;
4200 return REGB0;
4201 }
4202 val_t syntax___mmbuilder___AExternClasskind___is_extern(val_t p0){
4203 struct {struct stack_frame_t me;} fra;
4204 val_t REGB0;
4205 val_t tmp;
4206 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4207 fra.me.file = LOCATE_syntax___mmbuilder;
4208 fra.me.line = 667;
4209 fra.me.meth = LOCATE_syntax___mmbuilder___AExternClasskind___is_extern;
4210 fra.me.has_broke = 0;
4211 fra.me.REG_size = 1;
4212 fra.me.nitni_local_ref_head = NULL;
4213 fra.me.REG[0] = NIT_NULL;
4214 fra.me.REG[0] = p0;
4215 /* syntax/mmbuilder.nit:667 */
4216 REGB0 = TAG_Bool(true);
4217 goto label1;
4218 label1: while(0);
4219 stack_frame_head = fra.me.prev;
4220 return REGB0;
4221 }
4222 val_t syntax___mmbuilder___AAbstractClasskind___is_abstract(val_t p0){
4223 struct {struct stack_frame_t me;} fra;
4224 val_t REGB0;
4225 val_t tmp;
4226 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4227 fra.me.file = LOCATE_syntax___mmbuilder;
4228 fra.me.line = 670;
4229 fra.me.meth = LOCATE_syntax___mmbuilder___AAbstractClasskind___is_abstract;
4230 fra.me.has_broke = 0;
4231 fra.me.REG_size = 1;
4232 fra.me.nitni_local_ref_head = NULL;
4233 fra.me.REG[0] = NIT_NULL;
4234 fra.me.REG[0] = p0;
4235 /* syntax/mmbuilder.nit:670 */
4236 REGB0 = TAG_Bool(true);
4237 goto label1;
4238 label1: while(0);
4239 stack_frame_head = fra.me.prev;
4240 return REGB0;
4241 }
4242 val_t syntax___mmbuilder___AStdClassdef___name(val_t p0){
4243 struct {struct stack_frame_t me;} fra;
4244 val_t REGB0;
4245 val_t tmp;
4246 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4247 fra.me.file = LOCATE_syntax___mmbuilder;
4248 fra.me.line = 674;
4249 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___name;
4250 fra.me.has_broke = 0;
4251 fra.me.REG_size = 1;
4252 fra.me.nitni_local_ref_head = NULL;
4253 fra.me.REG[0] = NIT_NULL;
4254 fra.me.REG[0] = p0;
4255 /* syntax/mmbuilder.nit:676 */
4256 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_id(fra.me.REG[0])(fra.me.REG[0]);
4257 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4258 if (UNTAG_Bool(REGB0)) {
4259 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 676);
4260 }
4261 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
4262 goto label1;
4263 label1: while(0);
4264 stack_frame_head = fra.me.prev;
4265 return fra.me.REG[0];
4266 }
4267 val_t syntax___mmbuilder___AStdClassdef___arity(val_t p0){
4268 struct {struct stack_frame_t me;} fra;
4269 val_t REGB0;
4270 val_t tmp;
4271 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4272 fra.me.file = LOCATE_syntax___mmbuilder;
4273 fra.me.line = 678;
4274 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___arity;
4275 fra.me.has_broke = 0;
4276 fra.me.REG_size = 1;
4277 fra.me.nitni_local_ref_head = NULL;
4278 fra.me.REG[0] = NIT_NULL;
4279 fra.me.REG[0] = p0;
4280 /* syntax/mmbuilder.nit:680 */
4281 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_formaldefs(fra.me.REG[0])(fra.me.REG[0]);
4282 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
4283 goto label1;
4284 label1: while(0);
4285 stack_frame_head = fra.me.prev;
4286 return REGB0;
4287 }
4288 void syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder(val_t p0, val_t p1){
4289 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4290 val_t REGB0;
4291 val_t REGB1;
4292 val_t tmp;
4293 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4294 fra.me.file = LOCATE_syntax___mmbuilder;
4295 fra.me.line = 682;
4296 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder;
4297 fra.me.has_broke = 0;
4298 fra.me.REG_size = 4;
4299 fra.me.nitni_local_ref_head = NULL;
4300 fra.me.REG[0] = NIT_NULL;
4301 fra.me.REG[1] = NIT_NULL;
4302 fra.me.REG[2] = NIT_NULL;
4303 fra.me.REG[3] = NIT_NULL;
4304 fra.me.REG[0] = p0;
4305 fra.me.REG[1] = p1;
4306 /* syntax/mmbuilder.nit:682 */
4307 fra.me.REG[2] = fra.me.REG[0];
4308 /* syntax/mmbuilder.nit:684 */
4309 CALL_SUPER_syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4310 /* syntax/mmbuilder.nit:686 */
4311 fra.me.REG[1] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[2])(fra.me.REG[2]);
4312 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
4313 /* syntax/mmbuilder.nit:687 */
4314 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
4315 fra.me.REG[3] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[2])(fra.me.REG[2]);
4316 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[3]));
4317 if (UNTAG_Bool(REGB0)) {
4318 } else {
4319 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
4320 REGB0 = REGB1;
4321 }
4322 if (UNTAG_Bool(REGB0)) {
4323 /* syntax/mmbuilder.nit:688 */
4324 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4325 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[3])(fra.me.REG[3]);
4326 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
4327 /* syntax/mmbuilder.nit:689 */
4328 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4329 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[3])(fra.me.REG[3]);
4330 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
4331 /* syntax/mmbuilder.nit:690 */
4332 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4333 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[3])(fra.me.REG[3]);
4334 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
4335 /* syntax/mmbuilder.nit:691 */
4336 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4337 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_extern(fra.me.REG[3])(fra.me.REG[3]);
4338 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
4339 /* syntax/mmbuilder.nit:692 */
4340 REGB0 = CALL_syntax___mmbuilder___AClassdef___visibility_level(fra.me.REG[2])(fra.me.REG[2]);
4341 CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
4342 }
4343 stack_frame_head = fra.me.prev;
4344 return;
4345 }
4346 void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p1){
4347 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
4348 val_t REGB0;
4349 val_t REGB1;
4350 val_t REGB2;
4351 val_t tmp;
4352 static val_t once_value_1; /* Once value */
4353 static val_t once_value_2; /* Once value */
4354 static val_t once_value_3; /* Once value */
4355 static val_t once_value_4; /* Once value */
4356 static val_t once_value_5; /* Once value */
4357 static val_t once_value_6; /* Once value */
4358 static val_t once_value_7; /* Once value */
4359 static val_t once_value_8; /* Once value */
4360 static val_t once_value_9; /* Once value */
4361 static val_t once_value_10; /* Once value */
4362 static val_t once_value_11; /* Once value */
4363 static val_t once_value_12; /* Once value */
4364 static val_t once_value_13; /* Once value */
4365 static val_t once_value_14; /* Once value */
4366 static val_t once_value_15; /* Once value */
4367 static val_t once_value_16; /* Once value */
4368 static val_t once_value_17; /* Once value */
4369 static val_t once_value_18; /* Once value */
4370 static val_t once_value_19; /* Once value */
4371 static val_t once_value_20; /* Once value */
4372 static val_t once_value_23; /* Once value */
4373 static val_t once_value_24; /* Once value */
4374 static val_t once_value_25; /* Once value */
4375 static val_t once_value_26; /* Once value */
4376 static val_t once_value_27; /* Once value */
4377 static val_t once_value_28; /* Once value */
4378 static val_t once_value_29; /* Once value */
4379 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4380 fra.me.file = LOCATE_syntax___mmbuilder;
4381 fra.me.line = 695;
4382 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___accept_class_verifier;
4383 fra.me.has_broke = 0;
4384 fra.me.REG_size = 9;
4385 fra.me.nitni_local_ref_head = NULL;
4386 fra.me.REG[0] = NIT_NULL;
4387 fra.me.REG[1] = NIT_NULL;
4388 fra.me.REG[2] = NIT_NULL;
4389 fra.me.REG[3] = NIT_NULL;
4390 fra.me.REG[4] = NIT_NULL;
4391 fra.me.REG[5] = NIT_NULL;
4392 fra.me.REG[6] = NIT_NULL;
4393 fra.me.REG[7] = NIT_NULL;
4394 fra.me.REG[8] = NIT_NULL;
4395 fra.me.REG[0] = p0;
4396 fra.me.REG[1] = p1;
4397 /* syntax/mmbuilder.nit:695 */
4398 fra.me.REG[2] = fra.me.REG[0];
4399 fra.me.REG[3] = fra.me.REG[1];
4400 /* syntax/mmbuilder.nit:697 */
4401 CALL_SUPER_syntax___mmbuilder___AStdClassdef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4402 /* syntax/mmbuilder.nit:698 */
4403 fra.me.REG[1] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4404 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4405 if (UNTAG_Bool(REGB0)) {
4406 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 698);
4407 }
4408 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
4409 /* syntax/mmbuilder.nit:699 */
4410 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
4411 fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4412 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[0],fra.me.REG[4]));
4413 if (UNTAG_Bool(REGB0)) {
4414 } else {
4415 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4416 REGB0 = REGB1;
4417 }
4418 if (UNTAG_Bool(REGB0)) {
4419 /* syntax/mmbuilder.nit:701 */
4420 fra.me.REG[4] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
4421 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4422 if (UNTAG_Bool(REGB0)) {
4423 } else {
4424 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4425 if (UNTAG_Bool(REGB1)) {
4426 REGB1 = TAG_Bool(false);
4427 REGB0 = REGB1;
4428 } else {
4429 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
4430 REGB0 = REGB1;
4431 }
4432 }
4433 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4434 if (UNTAG_Bool(REGB0)) {
4435 /* syntax/mmbuilder.nit:702 */
4436 REGB0 = TAG_Int(3);
4437 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
4438 if (!once_value_1) {
4439 fra.me.REG[0] = BOX_NativeString("Redef error: No class ");
4440 REGB0 = TAG_Int(22);
4441 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4442 once_value_1 = fra.me.REG[0];
4443 register_static_object(&once_value_1);
4444 } else fra.me.REG[0] = once_value_1;
4445 fra.me.REG[0] = fra.me.REG[0];
4446 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
4447 fra.me.REG[0] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4448 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
4449 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
4450 if (!once_value_2) {
4451 fra.me.REG[0] = BOX_NativeString(" is imported. Remove the redef keyword to define a new class.");
4452 REGB0 = TAG_Int(61);
4453 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4454 once_value_2 = fra.me.REG[0];
4455 register_static_object(&once_value_2);
4456 } else fra.me.REG[0] = once_value_2;
4457 fra.me.REG[0] = fra.me.REG[0];
4458 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
4459 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4460 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]);
4461 }
4462 /* syntax/mmbuilder.nit:704 */
4463 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[1])(fra.me.REG[1]);
4464 if (UNTAG_Bool(REGB0)) {
4465 /* syntax/mmbuilder.nit:705 */
4466 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
4467 REGB0 = TAG_Bool(true);
4468 CALL_metamodel___abstractmetamodel___MMModule___is_extern_hybrid__eq(fra.me.REG[4])(fra.me.REG[4], REGB0);
4469 }
4470 /* syntax/mmbuilder.nit:708 */
4471 fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4472 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4473 if (UNTAG_Bool(REGB0)) {
4474 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 708);
4475 }
4476 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[4])(fra.me.REG[4]);
4477 fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[4])(fra.me.REG[4]);
4478 /* ../lib/standard/collection/array.nit:269 */
4479 REGB0 = TAG_Int(0);
4480 /* ../lib/standard/collection/array.nit:270 */
4481 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
4482 if (UNTAG_Bool(REGB1)) {
4483 } else {
4484 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
4485 }
4486 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
4487 /* ../lib/standard/collection/array.nit:271 */
4488 fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
4489 /* ../lib/standard/collection/array.nit:272 */
4490 while(1) {
4491 /* ../lib/standard/collection/array.nit:24 */
4492 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
4493 if (UNTAG_Bool(REGB1)) {
4494 } else {
4495 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
4496 }
4497 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
4498 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
4499 if (UNTAG_Bool(REGB2)) {
4500 } else {
4501 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4502 }
4503 /* ../lib/standard/kernel.nit:232 */
4504 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
4505 /* ../lib/standard/collection/array.nit:272 */
4506 if (UNTAG_Bool(REGB1)) {
4507 /* ../lib/standard/collection/array.nit:273 */
4508 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4509 if (UNTAG_Bool(REGB1)) {
4510 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
4511 }
4512 /* ../lib/standard/collection/array.nit:718 */
4513 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
4514 /* syntax/mmbuilder.nit:709 */
4515 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
4516 /* syntax/mmbuilder.nit:710 */
4517 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
4518 if (UNTAG_Bool(REGB1)) {
4519 /* syntax/mmbuilder.nit:711 */
4520 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
4521 if (UNTAG_Bool(REGB1)) {
4522 /* syntax/mmbuilder.nit:712 */
4523 REGB1 = TAG_Int(5);
4524 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4525 if (!once_value_3) {
4526 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
4527 REGB1 = TAG_Int(25);
4528 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4529 once_value_3 = fra.me.REG[8];
4530 register_static_object(&once_value_3);
4531 } else fra.me.REG[8] = once_value_3;
4532 fra.me.REG[8] = fra.me.REG[8];
4533 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4534 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4535 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4536 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4537 if (!once_value_4) {
4538 fra.me.REG[8] = BOX_NativeString(" try to specialise enum class ");
4539 REGB1 = TAG_Int(30);
4540 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4541 once_value_4 = fra.me.REG[8];
4542 register_static_object(&once_value_4);
4543 } else fra.me.REG[8] = once_value_4;
4544 fra.me.REG[8] = fra.me.REG[8];
4545 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4546 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4547 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4548 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4549 if (!once_value_5) {
4550 fra.me.REG[8] = BOX_NativeString(".");
4551 REGB1 = TAG_Int(1);
4552 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4553 once_value_5 = fra.me.REG[8];
4554 register_static_object(&once_value_5);
4555 } else fra.me.REG[8] = once_value_5;
4556 fra.me.REG[8] = fra.me.REG[8];
4557 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4558 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4559 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4560 } else {
4561 /* syntax/mmbuilder.nit:713 */
4562 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
4563 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4564 if (UNTAG_Bool(REGB1)) {
4565 /* syntax/mmbuilder.nit:714 */
4566 REGB1 = TAG_Int(5);
4567 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4568 if (!once_value_6) {
4569 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
4570 REGB1 = TAG_Int(25);
4571 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4572 once_value_6 = fra.me.REG[8];
4573 register_static_object(&once_value_6);
4574 } else fra.me.REG[8] = once_value_6;
4575 fra.me.REG[8] = fra.me.REG[8];
4576 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4577 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4578 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4579 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4580 if (!once_value_7) {
4581 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
4582 REGB1 = TAG_Int(25);
4583 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4584 once_value_7 = fra.me.REG[8];
4585 register_static_object(&once_value_7);
4586 } else fra.me.REG[8] = once_value_7;
4587 fra.me.REG[8] = fra.me.REG[8];
4588 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4589 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4590 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4591 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4592 if (!once_value_8) {
4593 fra.me.REG[8] = BOX_NativeString(".");
4594 REGB1 = TAG_Int(1);
4595 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4596 once_value_8 = fra.me.REG[8];
4597 register_static_object(&once_value_8);
4598 } else fra.me.REG[8] = once_value_8;
4599 fra.me.REG[8] = fra.me.REG[8];
4600 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4601 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4602 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4603 }
4604 }
4605 } else {
4606 /* syntax/mmbuilder.nit:716 */
4607 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
4608 if (UNTAG_Bool(REGB1)) {
4609 /* syntax/mmbuilder.nit:717 */
4610 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
4611 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4612 if (UNTAG_Bool(REGB1)) {
4613 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
4614 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4615 } else {
4616 REGB2 = TAG_Bool(false);
4617 REGB1 = REGB2;
4618 }
4619 if (UNTAG_Bool(REGB1)) {
4620 /* syntax/mmbuilder.nit:718 */
4621 REGB1 = TAG_Int(5);
4622 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4623 if (!once_value_9) {
4624 fra.me.REG[8] = BOX_NativeString("Special error: Enum class ");
4625 REGB1 = TAG_Int(26);
4626 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4627 once_value_9 = fra.me.REG[8];
4628 register_static_object(&once_value_9);
4629 } else fra.me.REG[8] = once_value_9;
4630 fra.me.REG[8] = fra.me.REG[8];
4631 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4632 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4633 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4634 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4635 if (!once_value_10) {
4636 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
4637 REGB1 = TAG_Int(25);
4638 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4639 once_value_10 = fra.me.REG[8];
4640 register_static_object(&once_value_10);
4641 } else fra.me.REG[8] = once_value_10;
4642 fra.me.REG[8] = fra.me.REG[8];
4643 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4644 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4645 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4646 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4647 if (!once_value_11) {
4648 fra.me.REG[8] = BOX_NativeString(".");
4649 REGB1 = TAG_Int(1);
4650 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4651 once_value_11 = fra.me.REG[8];
4652 register_static_object(&once_value_11);
4653 } else fra.me.REG[8] = once_value_11;
4654 fra.me.REG[8] = fra.me.REG[8];
4655 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4656 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4657 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4658 }
4659 } else {
4660 /* syntax/mmbuilder.nit:720 */
4661 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[1])(fra.me.REG[1]);
4662 if (UNTAG_Bool(REGB1)) {
4663 /* syntax/mmbuilder.nit:721 */
4664 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
4665 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4666 if (UNTAG_Bool(REGB1)) {
4667 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[6])(fra.me.REG[6]);
4668 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4669 } else {
4670 REGB2 = TAG_Bool(false);
4671 REGB1 = REGB2;
4672 }
4673 if (UNTAG_Bool(REGB1)) {
4674 /* syntax/mmbuilder.nit:722 */
4675 REGB1 = TAG_Int(5);
4676 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4677 if (!once_value_12) {
4678 fra.me.REG[8] = BOX_NativeString("Special error: Extern class ");
4679 REGB1 = TAG_Int(28);
4680 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4681 once_value_12 = fra.me.REG[8];
4682 register_static_object(&once_value_12);
4683 } else fra.me.REG[8] = once_value_12;
4684 fra.me.REG[8] = fra.me.REG[8];
4685 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4686 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4687 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4688 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4689 if (!once_value_13) {
4690 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
4691 REGB1 = TAG_Int(25);
4692 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4693 once_value_13 = fra.me.REG[8];
4694 register_static_object(&once_value_13);
4695 } else fra.me.REG[8] = once_value_13;
4696 fra.me.REG[8] = fra.me.REG[8];
4697 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4698 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4699 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4700 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4701 if (!once_value_14) {
4702 fra.me.REG[8] = BOX_NativeString(".");
4703 REGB1 = TAG_Int(1);
4704 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4705 once_value_14 = fra.me.REG[8];
4706 register_static_object(&once_value_14);
4707 } else fra.me.REG[8] = once_value_14;
4708 fra.me.REG[8] = fra.me.REG[8];
4709 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4710 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4711 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4712 }
4713 } else {
4714 /* syntax/mmbuilder.nit:725 */
4715 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
4716 if (UNTAG_Bool(REGB1)) {
4717 /* syntax/mmbuilder.nit:726 */
4718 REGB1 = TAG_Int(5);
4719 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4720 if (!once_value_15) {
4721 fra.me.REG[8] = BOX_NativeString("Special error: Class ");
4722 REGB1 = TAG_Int(21);
4723 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4724 once_value_15 = fra.me.REG[8];
4725 register_static_object(&once_value_15);
4726 } else fra.me.REG[8] = once_value_15;
4727 fra.me.REG[8] = fra.me.REG[8];
4728 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4729 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4730 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4731 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4732 if (!once_value_16) {
4733 fra.me.REG[8] = BOX_NativeString(" try to specialise enum class ");
4734 REGB1 = TAG_Int(30);
4735 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4736 once_value_16 = fra.me.REG[8];
4737 register_static_object(&once_value_16);
4738 } else fra.me.REG[8] = once_value_16;
4739 fra.me.REG[8] = fra.me.REG[8];
4740 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4741 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4742 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4743 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4744 if (!once_value_17) {
4745 fra.me.REG[8] = BOX_NativeString(".");
4746 REGB1 = TAG_Int(1);
4747 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4748 once_value_17 = fra.me.REG[8];
4749 register_static_object(&once_value_17);
4750 } else fra.me.REG[8] = once_value_17;
4751 fra.me.REG[8] = fra.me.REG[8];
4752 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4753 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4754 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4755 } else {
4756 /* syntax/mmbuilder.nit:727 */
4757 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[6])(fra.me.REG[6]);
4758 if (UNTAG_Bool(REGB1)) {
4759 /* syntax/mmbuilder.nit:728 */
4760 REGB1 = TAG_Int(5);
4761 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4762 if (!once_value_18) {
4763 fra.me.REG[7] = BOX_NativeString("Special error: Class ");
4764 REGB1 = TAG_Int(21);
4765 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
4766 once_value_18 = fra.me.REG[7];
4767 register_static_object(&once_value_18);
4768 } else fra.me.REG[7] = once_value_18;
4769 fra.me.REG[7] = fra.me.REG[7];
4770 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4771 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4772 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4773 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4774 if (!once_value_19) {
4775 fra.me.REG[7] = BOX_NativeString(" try to specialise extern class ");
4776 REGB1 = TAG_Int(32);
4777 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
4778 once_value_19 = fra.me.REG[7];
4779 register_static_object(&once_value_19);
4780 } else fra.me.REG[7] = once_value_19;
4781 fra.me.REG[7] = fra.me.REG[7];
4782 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4783 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4784 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4785 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
4786 if (!once_value_20) {
4787 fra.me.REG[5] = BOX_NativeString(".");
4788 REGB1 = TAG_Int(1);
4789 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
4790 once_value_20 = fra.me.REG[5];
4791 register_static_object(&once_value_20);
4792 } else fra.me.REG[5] = once_value_20;
4793 fra.me.REG[5] = fra.me.REG[5];
4794 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
4795 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4796 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
4797 }
4798 }
4799 }
4800 }
4801 }
4802 /* ../lib/standard/collection/array.nit:274 */
4803 REGB1 = TAG_Int(1);
4804 /* ../lib/standard/kernel.nit:235 */
4805 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
4806 /* ../lib/standard/collection/array.nit:274 */
4807 REGB0 = REGB1;
4808 } else {
4809 /* ../lib/standard/collection/array.nit:272 */
4810 goto label21;
4811 }
4812 }
4813 label21: while(0);
4814 /* syntax/mmbuilder.nit:733 */
4815 goto label22;
4816 }
4817 /* syntax/mmbuilder.nit:738 */
4818 fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
4819 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]);
4820 /* syntax/mmbuilder.nit:739 */
4821 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
4822 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4823 if (UNTAG_Bool(REGB0)) {
4824 } else {
4825 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4826 if (UNTAG_Bool(REGB1)) {
4827 REGB1 = TAG_Bool(false);
4828 REGB0 = REGB1;
4829 } else {
4830 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
4831 REGB0 = REGB1;
4832 }
4833 }
4834 if (UNTAG_Bool(REGB0)) {
4835 /* syntax/mmbuilder.nit:740 */
4836 REGB0 = TAG_Int(3);
4837 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
4838 if (!once_value_23) {
4839 fra.me.REG[4] = BOX_NativeString("Redef error: ");
4840 REGB0 = TAG_Int(13);
4841 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
4842 once_value_23 = fra.me.REG[4];
4843 register_static_object(&once_value_23);
4844 } else fra.me.REG[4] = once_value_23;
4845 fra.me.REG[4] = fra.me.REG[4];
4846 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4847 fra.me.REG[4] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4848 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4849 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4850 if (!once_value_24) {
4851 fra.me.REG[4] = BOX_NativeString(" is an imported class. Add the redef keyword to refine it.");
4852 REGB0 = TAG_Int(58);
4853 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
4854 once_value_24 = fra.me.REG[4];
4855 register_static_object(&once_value_24);
4856 } else fra.me.REG[4] = once_value_24;
4857 fra.me.REG[4] = fra.me.REG[4];
4858 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4859 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
4860 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
4861 /* syntax/mmbuilder.nit:741 */
4862 goto label22;
4863 }
4864 /* syntax/mmbuilder.nit:744 */
4865 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
4866 REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[0])(fra.me.REG[0]);
4867 fra.me.REG[0] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4868 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4869 if (UNTAG_Bool(REGB1)) {
4870 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 744);
4871 }
4872 REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[0])(fra.me.REG[0]);
4873 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
4874 if (UNTAG_Bool(REGB2)) {
4875 } else {
4876 /* ../lib/standard/kernel.nit:227 */
4877 REGB1 = TAG_Bool((REGB0)==(REGB1));
4878 /* syntax/mmbuilder.nit:744 */
4879 REGB2 = REGB1;
4880 }
4881 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
4882 if (UNTAG_Bool(REGB2)) {
4883 /* syntax/mmbuilder.nit:745 */
4884 REGB2 = TAG_Int(5);
4885 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
4886 if (!once_value_25) {
4887 fra.me.REG[4] = BOX_NativeString("Redef error: Formal parameter arity mismatch; got ");
4888 REGB2 = TAG_Int(50);
4889 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
4890 once_value_25 = fra.me.REG[4];
4891 register_static_object(&once_value_25);
4892 } else fra.me.REG[4] = once_value_25;
4893 fra.me.REG[4] = fra.me.REG[4];
4894 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4895 fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4896 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4897 if (UNTAG_Bool(REGB2)) {
4898 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 745);
4899 }
4900 REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
4901 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
4902 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4903 if (!once_value_26) {
4904 fra.me.REG[4] = BOX_NativeString(", expected ");
4905 REGB2 = TAG_Int(11);
4906 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
4907 once_value_26 = fra.me.REG[4];
4908 register_static_object(&once_value_26);
4909 } else fra.me.REG[4] = once_value_26;
4910 fra.me.REG[4] = fra.me.REG[4];
4911 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4912 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
4913 REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
4914 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
4915 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4916 if (!once_value_27) {
4917 fra.me.REG[4] = BOX_NativeString(".");
4918 REGB2 = TAG_Int(1);
4919 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
4920 once_value_27 = fra.me.REG[4];
4921 register_static_object(&once_value_27);
4922 } else fra.me.REG[4] = once_value_27;
4923 fra.me.REG[4] = fra.me.REG[4];
4924 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4925 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
4926 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
4927 }
4928 /* syntax/mmbuilder.nit:749 */
4929 REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
4930 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
4931 if (UNTAG_Bool(REGB2)) {
4932 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4933 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[0])(fra.me.REG[0]);
4934 } else {
4935 REGB1 = TAG_Bool(false);
4936 REGB2 = REGB1;
4937 }
4938 if (UNTAG_Bool(REGB2)) {
4939 REGB2 = TAG_Bool(true);
4940 } else {
4941 /* syntax/mmbuilder.nit:750 */
4942 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[1])(fra.me.REG[1]);
4943 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4944 /* syntax/mmbuilder.nit:749 */
4945 REGB2 = REGB1;
4946 }
4947 if (UNTAG_Bool(REGB2)) {
4948 /* syntax/mmbuilder.nit:750 */
4949 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4950 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[0])(fra.me.REG[0]);
4951 } else {
4952 /* syntax/mmbuilder.nit:749 */
4953 REGB1 = TAG_Bool(false);
4954 REGB2 = REGB1;
4955 }
4956 if (UNTAG_Bool(REGB2)) {
4957 REGB2 = TAG_Bool(true);
4958 } else {
4959 /* syntax/mmbuilder.nit:751 */
4960 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
4961 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4962 /* syntax/mmbuilder.nit:749 */
4963 REGB2 = REGB1;
4964 }
4965 if (UNTAG_Bool(REGB2)) {
4966 /* syntax/mmbuilder.nit:751 */
4967 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4968 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[0])(fra.me.REG[0]);
4969 } else {
4970 /* syntax/mmbuilder.nit:749 */
4971 REGB1 = TAG_Bool(false);
4972 REGB2 = REGB1;
4973 }
4974 if (UNTAG_Bool(REGB2)) {
4975 REGB2 = TAG_Bool(true);
4976 } else {
4977 /* syntax/mmbuilder.nit:752 */
4978 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[1])(fra.me.REG[1]);
4979 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4980 /* syntax/mmbuilder.nit:749 */
4981 REGB2 = REGB1;
4982 }
4983 if (UNTAG_Bool(REGB2)) {
4984 /* syntax/mmbuilder.nit:752 */
4985 fra.me.REG[1] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4986 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_extern(fra.me.REG[1])(fra.me.REG[1]);
4987 } else {
4988 /* syntax/mmbuilder.nit:749 */
4989 REGB1 = TAG_Bool(false);
4990 REGB2 = REGB1;
4991 }
4992 /* syntax/mmbuilder.nit:748 */
4993 if (UNTAG_Bool(REGB2)) {
4994 /* syntax/mmbuilder.nit:754 */
4995 REGB2 = TAG_Int(3);
4996 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
4997 if (!once_value_28) {
4998 fra.me.REG[0] = BOX_NativeString("Redef error: cannot change kind of class ");
4999 REGB2 = TAG_Int(41);
5000 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB2);
5001 once_value_28 = fra.me.REG[0];
5002 register_static_object(&once_value_28);
5003 } else fra.me.REG[0] = once_value_28;
5004 fra.me.REG[0] = fra.me.REG[0];
5005 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
5006 fra.me.REG[0] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
5007 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
5008 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
5009 if (!once_value_29) {
5010 fra.me.REG[0] = BOX_NativeString(".");
5011 REGB2 = TAG_Int(1);
5012 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB2);
5013 once_value_29 = fra.me.REG[0];
5014 register_static_object(&once_value_29);
5015 } else fra.me.REG[0] = once_value_29;
5016 fra.me.REG[0] = fra.me.REG[0];
5017 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
5018 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
5019 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[1]);
5020 }
5021 label22: while(0);
5022 stack_frame_head = fra.me.prev;
5023 return;
5024 }
5025 val_t syntax___mmbuilder___AStdClassdef___visibility_level(val_t p0){
5026 struct {struct stack_frame_t me;} fra;
5027 val_t REGB0;
5028 val_t tmp;
5029 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5030 fra.me.file = LOCATE_syntax___mmbuilder;
5031 fra.me.line = 758;
5032 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___visibility_level;
5033 fra.me.has_broke = 0;
5034 fra.me.REG_size = 1;
5035 fra.me.nitni_local_ref_head = NULL;
5036 fra.me.REG[0] = NIT_NULL;
5037 fra.me.REG[0] = p0;
5038 /* syntax/mmbuilder.nit:760 */
5039 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_visibility(fra.me.REG[0])(fra.me.REG[0]);
5040 REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
5041 goto label1;
5042 label1: while(0);
5043 stack_frame_head = fra.me.prev;
5044 return REGB0;
5045 }
5046 val_t syntax___mmbuilder___AMainClassdef___name(val_t p0){
5047 struct {struct stack_frame_t me;} fra;
5048 val_t REGB0;
5049 val_t tmp;
5050 static val_t once_value_1; /* Once value */
5051 static val_t once_value_2; /* Once value */
5052 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5053 fra.me.file = LOCATE_syntax___mmbuilder;
5054 fra.me.line = 765;
5055 fra.me.meth = LOCATE_syntax___mmbuilder___AMainClassdef___name;
5056 fra.me.has_broke = 0;
5057 fra.me.REG_size = 1;
5058 fra.me.nitni_local_ref_head = NULL;
5059 fra.me.REG[0] = NIT_NULL;
5060 fra.me.REG[0] = p0;
5061 /* syntax/mmbuilder.nit:767 */
5062 if (!once_value_1) {
5063 if (!once_value_2) {
5064 fra.me.REG[0] = BOX_NativeString("Sys");
5065 REGB0 = TAG_Int(3);
5066 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
5067 once_value_2 = fra.me.REG[0];
5068 register_static_object(&once_value_2);
5069 } else fra.me.REG[0] = once_value_2;
5070 fra.me.REG[0] = fra.me.REG[0];
5071 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
5072 once_value_1 = fra.me.REG[0];
5073 register_static_object(&once_value_1);
5074 } else fra.me.REG[0] = once_value_1;
5075 fra.me.REG[0] = fra.me.REG[0];
5076 goto label3;
5077 label3: while(0);
5078 stack_frame_head = fra.me.prev;
5079 return fra.me.REG[0];
5080 }
5081 val_t syntax___mmbuilder___ATopClassdef___name(val_t p0){
5082 struct {struct stack_frame_t me;} fra;
5083 val_t REGB0;
5084 val_t tmp;
5085 static val_t once_value_1; /* Once value */
5086 static val_t once_value_2; /* Once value */
5087 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5088 fra.me.file = LOCATE_syntax___mmbuilder;
5089 fra.me.line = 772;
5090 fra.me.meth = LOCATE_syntax___mmbuilder___ATopClassdef___name;
5091 fra.me.has_broke = 0;
5092 fra.me.REG_size = 1;
5093 fra.me.nitni_local_ref_head = NULL;
5094 fra.me.REG[0] = NIT_NULL;
5095 fra.me.REG[0] = p0;
5096 /* syntax/mmbuilder.nit:774 */
5097 if (!once_value_1) {
5098 if (!once_value_2) {
5099 fra.me.REG[0] = BOX_NativeString("Object");
5100 REGB0 = TAG_Int(6);
5101 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
5102 once_value_2 = fra.me.REG[0];
5103 register_static_object(&once_value_2);
5104 } else fra.me.REG[0] = once_value_2;
5105 fra.me.REG[0] = fra.me.REG[0];
5106 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
5107 once_value_1 = fra.me.REG[0];
5108 register_static_object(&once_value_1);
5109 } else fra.me.REG[0] = once_value_1;
5110 fra.me.REG[0] = fra.me.REG[0];
5111 goto label3;
5112 label3: while(0);
5113 stack_frame_head = fra.me.prev;
5114 return fra.me.REG[0];
5115 }
5116 void syntax___mmbuilder___AFormaldef___accept_class_builder(val_t p0, val_t p1){
5117 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
5118 val_t REGB0;
5119 val_t REGB1;
5120 val_t tmp;
5121 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5122 fra.me.file = LOCATE_syntax___mmbuilder;
5123 fra.me.line = 782;
5124 fra.me.meth = LOCATE_syntax___mmbuilder___AFormaldef___accept_class_builder;
5125 fra.me.has_broke = 0;
5126 fra.me.REG_size = 6;
5127 fra.me.nitni_local_ref_head = NULL;
5128 fra.me.REG[0] = NIT_NULL;
5129 fra.me.REG[1] = NIT_NULL;
5130 fra.me.REG[2] = NIT_NULL;
5131 fra.me.REG[3] = NIT_NULL;
5132 fra.me.REG[4] = NIT_NULL;
5133 fra.me.REG[5] = NIT_NULL;
5134 fra.me.REG[0] = p0;
5135 fra.me.REG[1] = p1;
5136 /* syntax/mmbuilder.nit:782 */
5137 fra.me.REG[2] = fra.me.REG[0];
5138 fra.me.REG[3] = fra.me.REG[1];
5139 /* syntax/mmbuilder.nit:784 */
5140 fra.me.REG[4] = CALL_parser___parser_nodes___AFormaldef___n_id(fra.me.REG[2])(fra.me.REG[2]);
5141 fra.me.REG[4] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
5142 /* syntax/mmbuilder.nit:785 */
5143 REGB0 = CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity(fra.me.REG[3])(fra.me.REG[3]);
5144 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5145 fra.me.REG[5] = NEW_MMTypeFormalParameter_metamodel___genericity___MMTypeFormalParameter___init(fra.me.REG[4], REGB0, fra.me.REG[5]);
5146 /* syntax/mmbuilder.nit:786 */
5147 ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]) = fra.me.REG[5];
5148 /* syntax/mmbuilder.nit:787 */
5149 REGB0 = CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity(fra.me.REG[3])(fra.me.REG[3]);
5150 REGB1 = TAG_Int(1);
5151 /* ../lib/standard/kernel.nit:235 */
5152 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
5153 /* syntax/mmbuilder.nit:787 */
5154 CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB1);
5155 /* syntax/mmbuilder.nit:788 */
5156 fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5157 CALL_metamodel___genericity___MMLocalClass___register_formal(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
5158 /* syntax/mmbuilder.nit:789 */
5159 fra.me.REG[3] = CALL_syntax___mmbuilder___ClassBuilderVisitor___formals(fra.me.REG[3])(fra.me.REG[3]);
5160 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5161 if (UNTAG_Bool(REGB1)) {
5162 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 789);
5163 }
5164 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]);
5165 /* syntax/mmbuilder.nit:790 */
5166 CALL_SUPER_syntax___mmbuilder___AFormaldef___accept_class_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5167 stack_frame_head = fra.me.prev;
5168 return;
5169 }
5170 void syntax___mmbuilder___AFormaldef___accept_class_verifier(val_t p0, val_t p1){
5171 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
5172 val_t REGB0;
5173 val_t REGB1;
5174 val_t tmp;
5175 static val_t once_value_2; /* Once value */
5176 static val_t once_value_3; /* Once value */
5177 static val_t once_value_4; /* Once value */
5178 static val_t once_value_5; /* Once value */
5179 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5180 fra.me.file = LOCATE_syntax___mmbuilder;
5181 fra.me.line = 793;
5182 fra.me.meth = LOCATE_syntax___mmbuilder___AFormaldef___accept_class_verifier;
5183 fra.me.has_broke = 0;
5184 fra.me.REG_size = 6;
5185 fra.me.nitni_local_ref_head = NULL;
5186 fra.me.REG[0] = NIT_NULL;
5187 fra.me.REG[1] = NIT_NULL;
5188 fra.me.REG[2] = NIT_NULL;
5189 fra.me.REG[3] = NIT_NULL;
5190 fra.me.REG[4] = NIT_NULL;
5191 fra.me.REG[5] = NIT_NULL;
5192 fra.me.REG[0] = p0;
5193 fra.me.REG[1] = p1;
5194 /* syntax/mmbuilder.nit:793 */
5195 fra.me.REG[2] = fra.me.REG[0];
5196 fra.me.REG[3] = fra.me.REG[1];
5197 /* syntax/mmbuilder.nit:795 */
5198 CALL_SUPER_syntax___mmbuilder___AFormaldef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5199 /* syntax/mmbuilder.nit:796 */
5200 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5201 /* syntax/mmbuilder.nit:797 */
5202 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
5203 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[0])(fra.me.REG[0]);
5204 /* syntax/mmbuilder.nit:798 */
5205 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
5206 if (UNTAG_Bool(REGB0)) {
5207 } else {
5208 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
5209 REGB0 = REGB1;
5210 }
5211 if (UNTAG_Bool(REGB0)) {
5212 /* syntax/mmbuilder.nit:799 */
5213 fra.me.REG[4] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
5214 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5215 if (UNTAG_Bool(REGB0)) {
5216 } else {
5217 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5218 if (UNTAG_Bool(REGB1)) {
5219 REGB1 = TAG_Bool(false);
5220 REGB0 = REGB1;
5221 } else {
5222 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5223 REGB0 = REGB1;
5224 }
5225 }
5226 if (UNTAG_Bool(REGB0)) {
5227 /* syntax/mmbuilder.nit:800 */
5228 fra.me.REG[4] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5229 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
5230 fra.me.REG[5] = CALL_metamodel___inheritance___MMModule___type_any(fra.me.REG[5])(fra.me.REG[5]);
5231 fra.me.REG[5] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[5])(fra.me.REG[5]);
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, 800);
5235 }
5236 CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5237 } else {
5238 /* syntax/mmbuilder.nit:802 */
5239 fra.me.REG[5] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
5240 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
5241 if (UNTAG_Bool(REGB0)) {
5242 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 802);
5243 }
5244 fra.me.REG[5] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
5245 /* syntax/mmbuilder.nit:803 */
5246 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
5247 if (UNTAG_Bool(REGB0)) {
5248 } else {
5249 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
5250 if (UNTAG_Bool(REGB1)) {
5251 REGB1 = TAG_Bool(false);
5252 REGB0 = REGB1;
5253 } else {
5254 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
5255 REGB0 = REGB1;
5256 }
5257 }
5258 if (UNTAG_Bool(REGB0)) {
5259 goto label1;
5260 }
5261 /* syntax/mmbuilder.nit:804 */
5262 fra.me.REG[4] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5263 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5264 if (UNTAG_Bool(REGB0)) {
5265 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 804);
5266 }
5267 CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5268 }
5269 } else {
5270 /* syntax/mmbuilder.nit:807 */
5271 fra.me.REG[5] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5272 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
5273 if (UNTAG_Bool(REGB0)) {
5274 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 807);
5275 }
5276 REGB0 = CALL_metamodel___genericity___MMTypeFormalParameter___position(fra.me.REG[5])(fra.me.REG[5]);
5277 fra.me.REG[0] = CALL_metamodel___genericity___MMLocalClass___get_formal(fra.me.REG[0])(fra.me.REG[0], REGB0);
5278 fra.me.REG[0] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]);
5279 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
5280 fra.me.REG[5] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
5281 /* syntax/mmbuilder.nit:808 */
5282 fra.me.REG[0] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
5283 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5284 if (UNTAG_Bool(REGB0)) {
5285 } else {
5286 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5287 if (UNTAG_Bool(REGB1)) {
5288 REGB1 = TAG_Bool(false);
5289 REGB0 = REGB1;
5290 } else {
5291 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
5292 REGB0 = REGB1;
5293 }
5294 }
5295 if (UNTAG_Bool(REGB0)) {
5296 /* syntax/mmbuilder.nit:809 */
5297 fra.me.REG[0] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5298 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5299 if (UNTAG_Bool(REGB0)) {
5300 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 809);
5301 }
5302 CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
5303 } else {
5304 /* syntax/mmbuilder.nit:811 */
5305 fra.me.REG[0] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
5306 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5307 if (UNTAG_Bool(REGB0)) {
5308 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 811);
5309 }
5310 fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
5311 /* syntax/mmbuilder.nit:812 */
5312 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5313 if (UNTAG_Bool(REGB0)) {
5314 } else {
5315 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5316 if (UNTAG_Bool(REGB1)) {
5317 REGB1 = TAG_Bool(false);
5318 REGB0 = REGB1;
5319 } else {
5320 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
5321 REGB0 = REGB1;
5322 }
5323 }
5324 if (UNTAG_Bool(REGB0)) {
5325 goto label1;
5326 }
5327 /* syntax/mmbuilder.nit:813 */
5328 fra.me.REG[4] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5329 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5330 if (UNTAG_Bool(REGB0)) {
5331 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 813);
5332 }
5333 CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
5334 /* syntax/mmbuilder.nit:814 */
5335 fra.me.REG[0] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5336 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5337 if (UNTAG_Bool(REGB0)) {
5338 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 814);
5339 }
5340 fra.me.REG[0] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]);
5341 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[5]));
5342 if (UNTAG_Bool(REGB0)) {
5343 } else {
5344 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
5345 REGB0 = REGB1;
5346 }
5347 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5348 if (UNTAG_Bool(REGB0)) {
5349 /* syntax/mmbuilder.nit:815 */
5350 REGB0 = TAG_Int(7);
5351 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5352 if (!once_value_2) {
5353 fra.me.REG[4] = BOX_NativeString("Redef error: Cannot change formal parameter type of class ");
5354 REGB0 = TAG_Int(58);
5355 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
5356 once_value_2 = fra.me.REG[4];
5357 register_static_object(&once_value_2);
5358 } else fra.me.REG[4] = once_value_2;
5359 fra.me.REG[4] = fra.me.REG[4];
5360 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
5361 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
5362 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5363 if (!once_value_3) {
5364 fra.me.REG[1] = BOX_NativeString("; got ");
5365 REGB0 = TAG_Int(6);
5366 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
5367 once_value_3 = fra.me.REG[1];
5368 register_static_object(&once_value_3);
5369 } else fra.me.REG[1] = once_value_3;
5370 fra.me.REG[1] = fra.me.REG[1];
5371 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5372 fra.me.REG[1] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5373 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5374 if (UNTAG_Bool(REGB0)) {
5375 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 815);
5376 }
5377 fra.me.REG[1] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[1])(fra.me.REG[1]);
5378 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
5379 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5380 if (!once_value_4) {
5381 fra.me.REG[1] = BOX_NativeString(", expected ");
5382 REGB0 = TAG_Int(11);
5383 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
5384 once_value_4 = fra.me.REG[1];
5385 register_static_object(&once_value_4);
5386 } else fra.me.REG[1] = once_value_4;
5387 fra.me.REG[1] = fra.me.REG[1];
5388 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5389 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5390 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
5391 if (!once_value_5) {
5392 fra.me.REG[5] = BOX_NativeString(".");
5393 REGB0 = TAG_Int(1);
5394 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
5395 once_value_5 = fra.me.REG[5];
5396 register_static_object(&once_value_5);
5397 } else fra.me.REG[5] = once_value_5;
5398 fra.me.REG[5] = fra.me.REG[5];
5399 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
5400 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
5401 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
5402 }
5403 }
5404 }
5405 label1: while(0);
5406 stack_frame_head = fra.me.prev;
5407 return;
5408 }
5409 val_t syntax___mmbuilder___ASuperclass___ancestor(val_t p0){
5410 struct {struct stack_frame_t me;} fra;
5411 val_t tmp;
5412 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5413 fra.me.file = LOCATE_syntax___mmbuilder;
5414 fra.me.line = 823;
5415 fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___ancestor;
5416 fra.me.has_broke = 0;
5417 fra.me.REG_size = 1;
5418 fra.me.nitni_local_ref_head = NULL;
5419 fra.me.REG[0] = NIT_NULL;
5420 fra.me.REG[0] = p0;
5421 /* syntax/mmbuilder.nit:823 */
5422 fra.me.REG[0] = ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[0]);
5423 stack_frame_head = fra.me.prev;
5424 return fra.me.REG[0];
5425 }
5426 void syntax___mmbuilder___ASuperclass___accept_class_specialization_builder(val_t p0, val_t p1){
5427 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5428 val_t REGB0;
5429 val_t REGB1;
5430 val_t tmp;
5431 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5432 fra.me.file = LOCATE_syntax___mmbuilder;
5433 fra.me.line = 825;
5434 fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___accept_class_specialization_builder;
5435 fra.me.has_broke = 0;
5436 fra.me.REG_size = 4;
5437 fra.me.nitni_local_ref_head = NULL;
5438 fra.me.REG[0] = NIT_NULL;
5439 fra.me.REG[1] = NIT_NULL;
5440 fra.me.REG[2] = NIT_NULL;
5441 fra.me.REG[3] = NIT_NULL;
5442 fra.me.REG[0] = p0;
5443 fra.me.REG[1] = p1;
5444 /* syntax/mmbuilder.nit:825 */
5445 fra.me.REG[2] = fra.me.REG[0];
5446 fra.me.REG[3] = fra.me.REG[1];
5447 /* syntax/mmbuilder.nit:827 */
5448 CALL_SUPER_syntax___mmbuilder___ASuperclass___accept_class_specialization_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5449 /* syntax/mmbuilder.nit:828 */
5450 fra.me.REG[1] = CALL_parser___parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
5451 fra.me.REG[1] = CALL_syntax___syntax_base___AType___get_local_class(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5452 /* syntax/mmbuilder.nit:829 */
5453 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5454 if (UNTAG_Bool(REGB0)) {
5455 } else {
5456 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5457 if (UNTAG_Bool(REGB1)) {
5458 REGB1 = TAG_Bool(false);
5459 REGB0 = REGB1;
5460 } else {
5461 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
5462 REGB0 = REGB1;
5463 }
5464 }
5465 if (UNTAG_Bool(REGB0)) {
5466 goto label1;
5467 }
5468 /* syntax/mmbuilder.nit:830 */
5469 fra.me.REG[1] = NEW_MMSrcAncestor_syntax___mmbuilder___MMSrcAncestor___init(fra.me.REG[1]);
5470 /* syntax/mmbuilder.nit:831 */
5471 ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[2]) = fra.me.REG[1];
5472 /* syntax/mmbuilder.nit:832 */
5473 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5474 CALL_metamodel___inheritance___MMLocalClass___add_direct_parent(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5475 label1: while(0);
5476 stack_frame_head = fra.me.prev;
5477 return;
5478 }
5479 void syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder(val_t p0, val_t p1){
5480 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5481 val_t REGB0;
5482 val_t tmp;
5483 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5484 fra.me.file = LOCATE_syntax___mmbuilder;
5485 fra.me.line = 835;
5486 fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder;
5487 fra.me.has_broke = 0;
5488 fra.me.REG_size = 4;
5489 fra.me.nitni_local_ref_head = NULL;
5490 fra.me.REG[0] = NIT_NULL;
5491 fra.me.REG[1] = NIT_NULL;
5492 fra.me.REG[2] = NIT_NULL;
5493 fra.me.REG[3] = NIT_NULL;
5494 fra.me.REG[0] = p0;
5495 fra.me.REG[1] = p1;
5496 /* syntax/mmbuilder.nit:835 */
5497 fra.me.REG[2] = fra.me.REG[0];
5498 fra.me.REG[3] = fra.me.REG[1];
5499 /* syntax/mmbuilder.nit:837 */
5500 CALL_SUPER_syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5501 /* syntax/mmbuilder.nit:838 */
5502 fra.me.REG[1] = ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[2]);
5503 fra.me.REG[0] = CALL_parser___parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
5504 fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_unchecked_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
5505 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5506 if (UNTAG_Bool(REGB0)) {
5507 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 838);
5508 }
5509 CALL_metamodel___static_type___MMAncestor___stype__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
5510 /* syntax/mmbuilder.nit:839 */
5511 fra.me.REG[2] = ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[2]);
5512 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5513 fra.me.REG[3] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[3])(fra.me.REG[3]);
5514 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5515 if (UNTAG_Bool(REGB0)) {
5516 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 839);
5517 }
5518 CALL_metamodel___static_type___MMAncestor___inheriter__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
5519 stack_frame_head = fra.me.prev;
5520 return;
5521 }
5522 void syntax___mmbuilder___ASuperclass___accept_class_verifier(val_t p0, val_t p1){
5523 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5524 val_t tmp;
5525 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5526 fra.me.file = LOCATE_syntax___mmbuilder;
5527 fra.me.line = 842;
5528 fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___accept_class_verifier;
5529 fra.me.has_broke = 0;
5530 fra.me.REG_size = 4;
5531 fra.me.nitni_local_ref_head = NULL;
5532 fra.me.REG[0] = NIT_NULL;
5533 fra.me.REG[1] = NIT_NULL;
5534 fra.me.REG[2] = NIT_NULL;
5535 fra.me.REG[3] = NIT_NULL;
5536 fra.me.REG[0] = p0;
5537 fra.me.REG[1] = p1;
5538 /* syntax/mmbuilder.nit:842 */
5539 fra.me.REG[2] = fra.me.REG[0];
5540 fra.me.REG[3] = fra.me.REG[1];
5541 /* syntax/mmbuilder.nit:844 */
5542 CALL_SUPER_syntax___mmbuilder___ASuperclass___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5543 /* syntax/mmbuilder.nit:845 */
5544 fra.me.REG[2] = CALL_parser___parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
5545 CALL_syntax___syntax_base___AType___check_conform(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
5546 stack_frame_head = fra.me.prev;
5547 return;
5548 }
5549 void syntax___mmbuilder___APropdef___process_and_check(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
5550 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5551 val_t REGB0;
5552 val_t REGB1;
5553 val_t REGB2;
5554 val_t REGB3;
5555 val_t tmp;
5556 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5557 fra.me.file = LOCATE_syntax___mmbuilder;
5558 fra.me.line = 850;
5559 fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___process_and_check;
5560 fra.me.has_broke = 0;
5561 fra.me.REG_size = 4;
5562 fra.me.nitni_local_ref_head = NULL;
5563 fra.me.REG[0] = NIT_NULL;
5564 fra.me.REG[1] = NIT_NULL;
5565 fra.me.REG[2] = NIT_NULL;
5566 fra.me.REG[3] = NIT_NULL;
5567 fra.me.REG[0] = p0;
5568 fra.me.REG[1] = p1;
5569 fra.me.REG[2] = p2;
5570 REGB0 = p3;
5571 REGB1 = p4;
5572 /* syntax/mmbuilder.nit:858 */
5573 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
5574 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[3])(fra.me.REG[3]);
5575 REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[2]));
5576 if (UNTAG_Bool(REGB2)) {
5577 } else {
5578 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
5579 REGB2 = REGB3;
5580 }
5581 if (UNTAG_Bool(REGB2)) {
5582 /* syntax/mmbuilder.nit:859 */
5583 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);
5584 } else {
5585 /* syntax/mmbuilder.nit:861 */
5586 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);
5587 }
5588 stack_frame_head = fra.me.prev;
5589 return;
5590 }
5591 void syntax___mmbuilder___APropdef___do_and_check_intro(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
5592 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
5593 val_t REGB0;
5594 val_t REGB1;
5595 val_t REGB2;
5596 val_t REGB3;
5597 val_t REGB4;
5598 val_t tmp;
5599 static val_t once_value_1; /* Once value */
5600 static val_t once_value_2; /* Once value */
5601 static val_t once_value_3; /* Once value */
5602 static val_t once_value_4; /* Once value */
5603 static val_t once_value_5; /* Once value */
5604 static val_t once_value_6; /* Once value */
5605 static val_t once_value_7; /* Once value */
5606 static val_t once_value_8; /* Once value */
5607 static val_t once_value_9; /* Once value */
5608 static val_t once_value_10; /* Once value */
5609 static val_t once_value_11; /* Once value */
5610 static val_t once_value_12; /* Once value */
5611 static val_t once_value_13; /* Once value */
5612 static val_t once_value_14; /* Once value */
5613 static val_t once_value_15; /* Once value */
5614 static val_t once_value_16; /* Once value */
5615 static val_t once_value_17; /* Once value */
5616 static val_t once_value_18; /* Once value */
5617 static val_t once_value_19; /* Once value */
5618 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5619 fra.me.file = LOCATE_syntax___mmbuilder;
5620 fra.me.line = 865;
5621 fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___do_and_check_intro;
5622 fra.me.has_broke = 0;
5623 fra.me.REG_size = 7;
5624 fra.me.nitni_local_ref_head = NULL;
5625 fra.me.REG[0] = NIT_NULL;
5626 fra.me.REG[1] = NIT_NULL;
5627 fra.me.REG[2] = NIT_NULL;
5628 fra.me.REG[3] = NIT_NULL;
5629 fra.me.REG[4] = NIT_NULL;
5630 fra.me.REG[5] = NIT_NULL;
5631 fra.me.REG[6] = NIT_NULL;
5632 fra.me.REG[0] = p0;
5633 fra.me.REG[1] = p1;
5634 fra.me.REG[2] = p2;
5635 REGB0 = p3;
5636 REGB1 = p4;
5637 /* syntax/mmbuilder.nit:868 */
5638 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
5639 /* syntax/mmbuilder.nit:869 */
5640 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5641 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
5642 /* syntax/mmbuilder.nit:870 */
5643 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
5644 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
5645 REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[5])(fra.me.REG[5]);
5646 REGB3 = TAG_Int(3);
5647 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
5648 if (UNTAG_Bool(REGB4)) {
5649 } else {
5650 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5651 }
5652 /* ../lib/standard/kernel.nit:233 */
5653 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
5654 /* syntax/mmbuilder.nit:870 */
5655 if (UNTAG_Bool(REGB3)) {
5656 /* syntax/mmbuilder.nit:872 */
5657 REGB3 = TAG_Int(3);
5658 REGB1 = REGB3;
5659 }
5660 /* syntax/mmbuilder.nit:874 */
5661 CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[3])(fra.me.REG[3], REGB1);
5662 /* syntax/mmbuilder.nit:875 */
5663 if (UNTAG_Bool(REGB0)) {
5664 /* syntax/mmbuilder.nit:876 */
5665 REGB0 = TAG_Int(5);
5666 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5667 if (!once_value_1) {
5668 fra.me.REG[6] = BOX_NativeString("Error: No property ");
5669 REGB0 = TAG_Int(19);
5670 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5671 once_value_1 = fra.me.REG[6];
5672 register_static_object(&once_value_1);
5673 } else fra.me.REG[6] = once_value_1;
5674 fra.me.REG[6] = fra.me.REG[6];
5675 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5676 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5677 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5678 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5679 if (!once_value_2) {
5680 fra.me.REG[6] = BOX_NativeString("::");
5681 REGB0 = TAG_Int(2);
5682 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5683 once_value_2 = fra.me.REG[6];
5684 register_static_object(&once_value_2);
5685 } else fra.me.REG[6] = once_value_2;
5686 fra.me.REG[6] = fra.me.REG[6];
5687 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5688 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5689 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5690 if (!once_value_3) {
5691 fra.me.REG[6] = BOX_NativeString(" is inherited. Remove the redef keyword to define a new property.");
5692 REGB0 = TAG_Int(65);
5693 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5694 once_value_3 = fra.me.REG[6];
5695 register_static_object(&once_value_3);
5696 } else fra.me.REG[6] = once_value_3;
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[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5700 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5701 }
5702 /* syntax/mmbuilder.nit:878 */
5703 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_attribute(fra.me.REG[3])(fra.me.REG[3]);
5704 if (UNTAG_Bool(REGB0)) {
5705 /* syntax/mmbuilder.nit:879 */
5706 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]);
5707 if (UNTAG_Bool(REGB0)) {
5708 /* syntax/mmbuilder.nit:880 */
5709 REGB0 = TAG_Int(5);
5710 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5711 if (!once_value_4) {
5712 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
5713 REGB0 = TAG_Int(35);
5714 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5715 once_value_4 = fra.me.REG[6];
5716 register_static_object(&once_value_4);
5717 } else fra.me.REG[6] = once_value_4;
5718 fra.me.REG[6] = fra.me.REG[6];
5719 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5720 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5721 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5722 if (!once_value_5) {
5723 fra.me.REG[6] = BOX_NativeString(" in the interface ");
5724 REGB0 = TAG_Int(18);
5725 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5726 once_value_5 = fra.me.REG[6];
5727 register_static_object(&once_value_5);
5728 } else fra.me.REG[6] = once_value_5;
5729 fra.me.REG[6] = fra.me.REG[6];
5730 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5731 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5732 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5733 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5734 if (!once_value_6) {
5735 fra.me.REG[6] = BOX_NativeString(".");
5736 REGB0 = TAG_Int(1);
5737 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5738 once_value_6 = fra.me.REG[6];
5739 register_static_object(&once_value_6);
5740 } else fra.me.REG[6] = once_value_6;
5741 fra.me.REG[6] = fra.me.REG[6];
5742 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5743 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5744 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5745 } else {
5746 /* syntax/mmbuilder.nit:881 */
5747 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[4])(fra.me.REG[4]);
5748 if (UNTAG_Bool(REGB0)) {
5749 /* syntax/mmbuilder.nit:882 */
5750 REGB0 = TAG_Int(5);
5751 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5752 if (!once_value_7) {
5753 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
5754 REGB0 = TAG_Int(35);
5755 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5756 once_value_7 = fra.me.REG[6];
5757 register_static_object(&once_value_7);
5758 } else fra.me.REG[6] = once_value_7;
5759 fra.me.REG[6] = fra.me.REG[6];
5760 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5761 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5762 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5763 if (!once_value_8) {
5764 fra.me.REG[6] = BOX_NativeString(" in the enum class ");
5765 REGB0 = TAG_Int(19);
5766 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5767 once_value_8 = fra.me.REG[6];
5768 register_static_object(&once_value_8);
5769 } else fra.me.REG[6] = once_value_8;
5770 fra.me.REG[6] = fra.me.REG[6];
5771 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5772 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5773 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5774 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5775 if (!once_value_9) {
5776 fra.me.REG[6] = BOX_NativeString(".");
5777 REGB0 = TAG_Int(1);
5778 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5779 once_value_9 = fra.me.REG[6];
5780 register_static_object(&once_value_9);
5781 } else fra.me.REG[6] = once_value_9;
5782 fra.me.REG[6] = fra.me.REG[6];
5783 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5784 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5785 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5786 } else {
5787 /* syntax/mmbuilder.nit:883 */
5788 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[4])(fra.me.REG[4]);
5789 if (UNTAG_Bool(REGB0)) {
5790 /* syntax/mmbuilder.nit:884 */
5791 REGB0 = TAG_Int(5);
5792 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5793 if (!once_value_10) {
5794 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
5795 REGB0 = TAG_Int(35);
5796 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5797 once_value_10 = fra.me.REG[6];
5798 register_static_object(&once_value_10);
5799 } else fra.me.REG[6] = once_value_10;
5800 fra.me.REG[6] = fra.me.REG[6];
5801 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5802 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5803 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5804 if (!once_value_11) {
5805 fra.me.REG[6] = BOX_NativeString(" in the extern class ");
5806 REGB0 = TAG_Int(21);
5807 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5808 once_value_11 = fra.me.REG[6];
5809 register_static_object(&once_value_11);
5810 } else fra.me.REG[6] = once_value_11;
5811 fra.me.REG[6] = fra.me.REG[6];
5812 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5813 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5814 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5815 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5816 if (!once_value_12) {
5817 fra.me.REG[6] = BOX_NativeString(".");
5818 REGB0 = TAG_Int(1);
5819 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5820 once_value_12 = fra.me.REG[6];
5821 register_static_object(&once_value_12);
5822 } else fra.me.REG[6] = once_value_12;
5823 fra.me.REG[6] = fra.me.REG[6];
5824 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5825 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5826 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5827 }
5828 }
5829 }
5830 } else {
5831 /* syntax/mmbuilder.nit:886 */
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:887 */
5835 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]);
5836 if (UNTAG_Bool(REGB0)) {
5837 /* syntax/mmbuilder.nit:888 */
5838 REGB0 = TAG_Int(5);
5839 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5840 if (!once_value_13) {
5841 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define a constructor ");
5842 REGB0 = TAG_Int(39);
5843 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5844 once_value_13 = fra.me.REG[6];
5845 register_static_object(&once_value_13);
5846 } else fra.me.REG[6] = once_value_13;
5847 fra.me.REG[6] = fra.me.REG[6];
5848 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5849 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5850 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5851 if (!once_value_14) {
5852 fra.me.REG[6] = BOX_NativeString(" in the class ");
5853 REGB0 = TAG_Int(14);
5854 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5855 once_value_14 = fra.me.REG[6];
5856 register_static_object(&once_value_14);
5857 } else fra.me.REG[6] = once_value_14;
5858 fra.me.REG[6] = fra.me.REG[6];
5859 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5860 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5861 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5862 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5863 if (!once_value_15) {
5864 fra.me.REG[6] = BOX_NativeString(".");
5865 REGB0 = TAG_Int(1);
5866 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5867 once_value_15 = fra.me.REG[6];
5868 register_static_object(&once_value_15);
5869 } else fra.me.REG[6] = once_value_15;
5870 fra.me.REG[6] = fra.me.REG[6];
5871 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5872 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5873 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5874 } else {
5875 /* syntax/mmbuilder.nit:889 */
5876 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[4])(fra.me.REG[4]);
5877 if (UNTAG_Bool(REGB0)) {
5878 /* syntax/mmbuilder.nit:890 */
5879 REGB0 = TAG_Int(5);
5880 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5881 if (!once_value_16) {
5882 fra.me.REG[5] = BOX_NativeString("Error: Attempt to define a constructor ");
5883 REGB0 = TAG_Int(39);
5884 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
5885 once_value_16 = fra.me.REG[5];
5886 register_static_object(&once_value_16);
5887 } else fra.me.REG[5] = once_value_16;
5888 fra.me.REG[5] = fra.me.REG[5];
5889 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5890 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5891 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5892 if (!once_value_17) {
5893 fra.me.REG[5] = BOX_NativeString(" in the enum ");
5894 REGB0 = TAG_Int(13);
5895 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
5896 once_value_17 = fra.me.REG[5];
5897 register_static_object(&once_value_17);
5898 } else fra.me.REG[5] = once_value_17;
5899 fra.me.REG[5] = fra.me.REG[5];
5900 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5901 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5902 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5903 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5904 if (!once_value_18) {
5905 fra.me.REG[5] = BOX_NativeString(".");
5906 REGB0 = TAG_Int(1);
5907 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
5908 once_value_18 = fra.me.REG[5];
5909 register_static_object(&once_value_18);
5910 } else fra.me.REG[5] = once_value_18;
5911 fra.me.REG[5] = fra.me.REG[5];
5912 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5913 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
5914 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
5915 }
5916 }
5917 }
5918 }
5919 /* syntax/mmbuilder.nit:895 */
5920 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
5921 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5922 if (UNTAG_Bool(REGB0)) {
5923 } else {
5924 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5925 if (UNTAG_Bool(REGB1)) {
5926 REGB1 = TAG_Bool(false);
5927 REGB0 = REGB1;
5928 } else {
5929 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5930 REGB0 = REGB1;
5931 }
5932 }
5933 if (UNTAG_Bool(REGB0)) {
5934 /* syntax/mmbuilder.nit:896 */
5935 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
5936 if (UNTAG_Bool(REGB0)) {
5937 /* syntax/mmbuilder.nit:897 */
5938 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5939 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
5940 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
5941 /* syntax/mmbuilder.nit:898 */
5942 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]);
5943 }
5944 /* syntax/mmbuilder.nit:900 */
5945 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
5946 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5947 if (UNTAG_Bool(REGB0)) {
5948 } else {
5949 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5950 if (UNTAG_Bool(REGB1)) {
5951 REGB1 = TAG_Bool(false);
5952 REGB0 = REGB1;
5953 } else {
5954 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5955 REGB0 = REGB1;
5956 }
5957 }
5958 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5959 if (UNTAG_Bool(REGB0)) {
5960 REGB0 = TAG_Bool(true);
5961 } else {
5962 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5963 REGB1 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[4])(fra.me.REG[4]);
5964 REGB0 = REGB1;
5965 }
5966 if (UNTAG_Bool(REGB0)) {
5967 } else {
5968 /* syntax/mmbuilder.nit:902 */
5969 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5970 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
5971 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[4])(fra.me.REG[4]);
5972 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5973 if (UNTAG_Bool(REGB0)) {
5974 /* syntax/mmbuilder.nit:903 */
5975 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5976 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
5977 fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
5978 if (!once_value_19) {
5979 fra.me.REG[0] = BOX_NativeString("Error: Untyped parameter.");
5980 REGB0 = TAG_Int(25);
5981 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
5982 once_value_19 = fra.me.REG[0];
5983 register_static_object(&once_value_19);
5984 } else fra.me.REG[0] = once_value_19;
5985 fra.me.REG[0] = fra.me.REG[0];
5986 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]);
5987 } else {
5988 /* syntax/mmbuilder.nit:905 */
5989 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
5990 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
5991 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
5992 fra.me.REG[4] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[4]);
5993 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
5994 /* syntax/mmbuilder.nit:906 */
5995 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
5996 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[1])(fra.me.REG[1]);
5997 /* ../lib/standard/collection/array.nit:269 */
5998 REGB0 = TAG_Int(0);
5999 /* ../lib/standard/collection/array.nit:270 */
6000 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
6001 if (UNTAG_Bool(REGB1)) {
6002 } else {
6003 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
6004 }
6005 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
6006 /* ../lib/standard/collection/array.nit:271 */
6007 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
6008 /* ../lib/standard/collection/array.nit:272 */
6009 while(1) {
6010 /* ../lib/standard/collection/array.nit:24 */
6011 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
6012 if (UNTAG_Bool(REGB1)) {
6013 } else {
6014 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6015 }
6016 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
6017 REGB3 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
6018 if (UNTAG_Bool(REGB3)) {
6019 } else {
6020 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6021 }
6022 /* ../lib/standard/kernel.nit:232 */
6023 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
6024 /* ../lib/standard/collection/array.nit:272 */
6025 if (UNTAG_Bool(REGB1)) {
6026 /* ../lib/standard/collection/array.nit:273 */
6027 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6028 if (UNTAG_Bool(REGB1)) {
6029 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
6030 }
6031 /* ../lib/standard/collection/array.nit:718 */
6032 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
6033 /* syntax/mmbuilder.nit:907 */
6034 fra.me.REG[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
6035 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6036 if (UNTAG_Bool(REGB1)) {
6037 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 907);
6038 }
6039 fra.me.REG[3] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[3])(fra.me.REG[3]);
6040 fra.me.REG[0] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[0])(fra.me.REG[0]);
6041 fra.me.REG[0] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[0])(fra.me.REG[0]);
6042 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
6043 /* ../lib/standard/collection/array.nit:274 */
6044 REGB1 = TAG_Int(1);
6045 /* ../lib/standard/kernel.nit:235 */
6046 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
6047 /* ../lib/standard/collection/array.nit:274 */
6048 REGB0 = REGB1;
6049 } else {
6050 /* ../lib/standard/collection/array.nit:272 */
6051 goto label20;
6052 }
6053 }
6054 label20: while(0);
6055 }
6056 }
6057 }
6058 stack_frame_head = fra.me.prev;
6059 return;
6060 }
6061 void syntax___mmbuilder___APropdef___inherit_signature(val_t p0, val_t p1, val_t p2, val_t p3){
6062 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
6063 val_t REGB0;
6064 val_t REGB1;
6065 val_t REGB2;
6066 val_t REGB3;
6067 val_t REGB4;
6068 val_t tmp;
6069 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6070 fra.me.file = LOCATE_syntax___mmbuilder;
6071 fra.me.line = 913;
6072 fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___inherit_signature;
6073 fra.me.has_broke = 0;
6074 fra.me.REG_size = 11;
6075 fra.me.nitni_local_ref_head = NULL;
6076 fra.me.REG[0] = NIT_NULL;
6077 fra.me.REG[1] = NIT_NULL;
6078 fra.me.REG[2] = NIT_NULL;
6079 fra.me.REG[3] = NIT_NULL;
6080 fra.me.REG[4] = NIT_NULL;
6081 fra.me.REG[5] = NIT_NULL;
6082 fra.me.REG[6] = NIT_NULL;
6083 fra.me.REG[7] = NIT_NULL;
6084 fra.me.REG[8] = NIT_NULL;
6085 fra.me.REG[9] = NIT_NULL;
6086 fra.me.REG[10] = NIT_NULL;
6087 fra.me.REG[0] = p0;
6088 fra.me.REG[1] = p1;
6089 fra.me.REG[2] = p2;
6090 fra.me.REG[3] = p3;
6091 /* syntax/mmbuilder.nit:915 */
6092 fra.me.REG[0] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
6093 /* ../lib/standard/collection/array.nit:269 */
6094 REGB0 = TAG_Int(0);
6095 /* ../lib/standard/collection/array.nit:270 */
6096 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
6097 if (UNTAG_Bool(REGB1)) {
6098 } else {
6099 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
6100 }
6101 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
6102 /* ../lib/standard/collection/array.nit:271 */
6103 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
6104 /* ../lib/standard/collection/array.nit:272 */
6105 while(1) {
6106 /* ../lib/standard/collection/array.nit:24 */
6107 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
6108 if (UNTAG_Bool(REGB1)) {
6109 } else {
6110 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6111 }
6112 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
6113 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
6114 if (UNTAG_Bool(REGB2)) {
6115 } else {
6116 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6117 }
6118 /* ../lib/standard/kernel.nit:232 */
6119 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
6120 /* ../lib/standard/collection/array.nit:272 */
6121 if (UNTAG_Bool(REGB1)) {
6122 /* ../lib/standard/collection/array.nit:273 */
6123 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6124 if (UNTAG_Bool(REGB1)) {
6125 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
6126 }
6127 /* ../lib/standard/collection/array.nit:718 */
6128 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
6129 /* syntax/mmbuilder.nit:917 */
6130 fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[5])(fra.me.REG[5]);
6131 fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
6132 fra.me.REG[6] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[6])(fra.me.REG[6]);
6133 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6134 if (UNTAG_Bool(REGB1)) {
6135 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 917);
6136 }
6137 fra.me.REG[6] = CALL_metamodel___static_type___MMSignature___adaptation_to(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
6138 /* syntax/mmbuilder.nit:919 */
6139 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6140 if (UNTAG_Bool(REGB1)) {
6141 } else {
6142 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6143 if (UNTAG_Bool(REGB2)) {
6144 REGB2 = TAG_Bool(false);
6145 REGB1 = REGB2;
6146 } else {
6147 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
6148 REGB1 = REGB2;
6149 }
6150 }
6151 if (UNTAG_Bool(REGB1)) {
6152 /* syntax/mmbuilder.nit:920 */
6153 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6154 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[5])(fra.me.REG[5]);
6155 /* ../lib/standard/collection/array.nit:24 */
6156 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
6157 if (UNTAG_Bool(REGB1)) {
6158 } else {
6159 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6160 }
6161 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
6162 /* syntax/mmbuilder.nit:920 */
6163 REGB2 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[6])(fra.me.REG[6]);
6164 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
6165 if (UNTAG_Bool(REGB3)) {
6166 } else {
6167 /* ../lib/standard/kernel.nit:227 */
6168 REGB2 = TAG_Bool((REGB1)==(REGB2));
6169 /* syntax/mmbuilder.nit:920 */
6170 REGB3 = REGB2;
6171 }
6172 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
6173 if (UNTAG_Bool(REGB3)) {
6174 /* syntax/mmbuilder.nit:921 */
6175 goto label1;
6176 }
6177 /* syntax/mmbuilder.nit:923 */
6178 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6179 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[5])(fra.me.REG[5]);
6180 /* ../lib/standard/collection/array.nit:269 */
6181 REGB3 = TAG_Int(0);
6182 /* ../lib/standard/collection/array.nit:270 */
6183 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
6184 if (UNTAG_Bool(REGB2)) {
6185 } else {
6186 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
6187 }
6188 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
6189 /* ../lib/standard/collection/array.nit:271 */
6190 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
6191 /* ../lib/standard/collection/array.nit:272 */
6192 while(1) {
6193 /* ../lib/standard/collection/array.nit:24 */
6194 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
6195 if (UNTAG_Bool(REGB2)) {
6196 } else {
6197 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6198 }
6199 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
6200 REGB1 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
6201 if (UNTAG_Bool(REGB1)) {
6202 } else {
6203 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6204 }
6205 /* ../lib/standard/kernel.nit:232 */
6206 REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB2));
6207 /* ../lib/standard/collection/array.nit:272 */
6208 if (UNTAG_Bool(REGB2)) {
6209 /* ../lib/standard/collection/array.nit:273 */
6210 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6211 if (UNTAG_Bool(REGB2)) {
6212 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
6213 }
6214 /* ../lib/standard/collection/array.nit:718 */
6215 fra.me.REG[8] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB3)];
6216 /* syntax/mmbuilder.nit:924 */
6217 REGB2 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[8])(fra.me.REG[8]);
6218 fra.me.REG[9] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[6])(fra.me.REG[6], REGB2);
6219 /* syntax/mmbuilder.nit:925 */
6220 CALL_syntax___mmbuilder___AParam___stype__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
6221 /* syntax/mmbuilder.nit:926 */
6222 REGB2 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[8])(fra.me.REG[8]);
6223 REGB1 = CALL_metamodel___vararg___MMSignature___vararg_rank(fra.me.REG[6])(fra.me.REG[6]);
6224 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
6225 if (UNTAG_Bool(REGB4)) {
6226 } else {
6227 /* ../lib/standard/kernel.nit:227 */
6228 REGB1 = TAG_Bool((REGB2)==(REGB1));
6229 /* syntax/mmbuilder.nit:926 */
6230 REGB4 = REGB1;
6231 }
6232 if (UNTAG_Bool(REGB4)) {
6233 /* syntax/mmbuilder.nit:927 */
6234 fra.me.REG[10] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
6235 fra.me.REG[9] = fra.me.REG[10];
6236 }
6237 /* syntax/mmbuilder.nit:929 */
6238 fra.me.REG[8] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[8])(fra.me.REG[8]);
6239 CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
6240 /* ../lib/standard/collection/array.nit:274 */
6241 REGB4 = TAG_Int(1);
6242 /* ../lib/standard/kernel.nit:235 */
6243 REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB4));
6244 /* ../lib/standard/collection/array.nit:274 */
6245 REGB3 = REGB4;
6246 } else {
6247 /* ../lib/standard/collection/array.nit:272 */
6248 goto label2;
6249 }
6250 }
6251 label2: while(0);
6252 /* syntax/mmbuilder.nit:932 */
6253 fra.me.REG[0] = fra.me.REG[6];
6254 /* syntax/mmbuilder.nit:933 */
6255 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6256 }
6257 /* ../lib/standard/collection/array.nit:274 */
6258 REGB3 = TAG_Int(1);
6259 /* ../lib/standard/kernel.nit:235 */
6260 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
6261 /* ../lib/standard/collection/array.nit:274 */
6262 REGB0 = REGB3;
6263 } else {
6264 /* ../lib/standard/collection/array.nit:272 */
6265 goto label3;
6266 }
6267 }
6268 label3: while(0);
6269 label1: while(0);
6270 stack_frame_head = fra.me.prev;
6271 return;
6272 }
6273 void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
6274 struct {struct stack_frame_t me; val_t MORE_REG[13];} fra;
6275 val_t REGB0;
6276 val_t REGB1;
6277 val_t REGB2;
6278 val_t REGB3;
6279 val_t REGB4;
6280 val_t REGB5;
6281 val_t REGB6;
6282 val_t REGB7;
6283 val_t tmp;
6284 static val_t once_value_1; /* Once value */
6285 static val_t once_value_2; /* Once value */
6286 static val_t once_value_3; /* Once value */
6287 static val_t once_value_5; /* Once value */
6288 static val_t once_value_6; /* Once value */
6289 static val_t once_value_7; /* Once value */
6290 static val_t once_value_8; /* Once value */
6291 static val_t once_value_9; /* Once value */
6292 static val_t once_value_10; /* Once value */
6293 static val_t once_value_12; /* Once value */
6294 static val_t once_value_13; /* Once value */
6295 static val_t once_value_14; /* Once value */
6296 static val_t once_value_15; /* Once value */
6297 static val_t once_value_16; /* Once value */
6298 static val_t once_value_17; /* Once value */
6299 static val_t once_value_18; /* Once value */
6300 static val_t once_value_19; /* Once value */
6301 static val_t once_value_20; /* Once value */
6302 static val_t once_value_21; /* Once value */
6303 static val_t once_value_22; /* Once value */
6304 static val_t once_value_23; /* Once value */
6305 static val_t once_value_26; /* Once value */
6306 static val_t once_value_27; /* Once value */
6307 static val_t once_value_28; /* Once value */
6308 static val_t once_value_29; /* Once value */
6309 static val_t once_value_30; /* Once value */
6310 static val_t once_value_31; /* Once value */
6311 static val_t once_value_32; /* Once value */
6312 static val_t once_value_33; /* Once value */
6313 static val_t once_value_34; /* Once value */
6314 static val_t once_value_35; /* Once value */
6315 static val_t once_value_37; /* Once value */
6316 static val_t once_value_38; /* Once value */
6317 static val_t once_value_39; /* Once value */
6318 static val_t once_value_40; /* Once value */
6319 static val_t once_value_41; /* Once value */
6320 static val_t once_value_42; /* Once value */
6321 static val_t once_value_43; /* Once value */
6322 static val_t once_value_44; /* Once value */
6323 static val_t once_value_45; /* Once value */
6324 static val_t once_value_46; /* Once value */
6325 static val_t once_value_47; /* Once value */
6326 static val_t once_value_48; /* Once value */
6327 static val_t once_value_49; /* Once value */
6328 static val_t once_value_50; /* Once value */
6329 static val_t once_value_51; /* Once value */
6330 static val_t once_value_52; /* Once value */
6331 static val_t once_value_53; /* Once value */
6332 static val_t once_value_54; /* Once value */
6333 static val_t once_value_55; /* Once value */
6334 static val_t once_value_56; /* Once value */
6335 static val_t once_value_57; /* Once value */
6336 static val_t once_value_58; /* Once value */
6337 static val_t once_value_59; /* Once value */
6338 static val_t once_value_60; /* Once value */
6339 static val_t once_value_61; /* Once value */
6340 static val_t once_value_62; /* Once value */
6341 static val_t once_value_63; /* Once value */
6342 static val_t once_value_65; /* Once value */
6343 static val_t once_value_66; /* Once value */
6344 static val_t once_value_67; /* Once value */
6345 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6346 fra.me.file = LOCATE_syntax___mmbuilder;
6347 fra.me.line = 938;
6348 fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___do_and_check_redef;
6349 fra.me.has_broke = 0;
6350 fra.me.REG_size = 14;
6351 fra.me.nitni_local_ref_head = NULL;
6352 fra.me.REG[0] = NIT_NULL;
6353 fra.me.REG[1] = NIT_NULL;
6354 fra.me.REG[2] = NIT_NULL;
6355 fra.me.REG[3] = NIT_NULL;
6356 fra.me.REG[4] = NIT_NULL;
6357 fra.me.REG[5] = NIT_NULL;
6358 fra.me.REG[6] = NIT_NULL;
6359 fra.me.REG[7] = NIT_NULL;
6360 fra.me.REG[8] = NIT_NULL;
6361 fra.me.REG[9] = NIT_NULL;
6362 fra.me.REG[10] = NIT_NULL;
6363 fra.me.REG[11] = NIT_NULL;
6364 fra.me.REG[12] = NIT_NULL;
6365 fra.me.REG[13] = NIT_NULL;
6366 fra.me.REG[0] = p0;
6367 fra.me.REG[1] = p1;
6368 fra.me.REG[2] = p2;
6369 REGB0 = p3;
6370 REGB1 = p4;
6371 /* syntax/mmbuilder.nit:941 */
6372 REGB2 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AInitPropdef, ID_parser___parser_nodes___AInitPropdef)) /*cast AInitPropdef*/;
6373 /* syntax/mmbuilder.nit:942 */
6374 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
6375 /* syntax/mmbuilder.nit:944 */
6376 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6377 if (UNTAG_Bool(REGB0)) {
6378 /* syntax/mmbuilder.nit:945 */
6379 REGB0 = TAG_Int(5);
6380 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
6381 if (!once_value_1) {
6382 fra.me.REG[5] = BOX_NativeString("Redef error: ");
6383 REGB0 = TAG_Int(13);
6384 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6385 once_value_1 = fra.me.REG[5];
6386 register_static_object(&once_value_1);
6387 } else fra.me.REG[5] = once_value_1;
6388 fra.me.REG[5] = fra.me.REG[5];
6389 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6390 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6391 fra.me.REG[5] = CALL_standard___string___Object___to_s(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 if (!once_value_2) {
6394 fra.me.REG[5] = BOX_NativeString("::");
6395 REGB0 = TAG_Int(2);
6396 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6397 once_value_2 = fra.me.REG[5];
6398 register_static_object(&once_value_2);
6399 } else fra.me.REG[5] = once_value_2;
6400 fra.me.REG[5] = fra.me.REG[5];
6401 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6402 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6403 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6404 if (!once_value_3) {
6405 fra.me.REG[5] = BOX_NativeString(" is an inherited property. To redefine it, add the redef keyword.");
6406 REGB0 = TAG_Int(65);
6407 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6408 once_value_3 = fra.me.REG[5];
6409 register_static_object(&once_value_3);
6410 } else fra.me.REG[5] = once_value_3;
6411 fra.me.REG[5] = fra.me.REG[5];
6412 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6413 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
6414 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
6415 /* syntax/mmbuilder.nit:946 */
6416 goto label4;
6417 }
6418 /* syntax/mmbuilder.nit:948 */
6419 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
6420 if (UNTAG_Bool(REGB0)) {
6421 REGB0 = TAG_Bool(!UNTAG_Bool(REGB2));
6422 } else {
6423 REGB3 = TAG_Bool(false);
6424 REGB0 = REGB3;
6425 }
6426 if (UNTAG_Bool(REGB0)) {
6427 /* syntax/mmbuilder.nit:949 */
6428 REGB0 = TAG_Int(5);
6429 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
6430 if (!once_value_5) {
6431 fra.me.REG[5] = BOX_NativeString("Redef error: A method ");
6432 REGB0 = TAG_Int(22);
6433 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6434 once_value_5 = fra.me.REG[5];
6435 register_static_object(&once_value_5);
6436 } else fra.me.REG[5] = once_value_5;
6437 fra.me.REG[5] = fra.me.REG[5];
6438 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6439 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6440 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
6441 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6442 if (!once_value_6) {
6443 fra.me.REG[5] = BOX_NativeString("::");
6444 REGB0 = TAG_Int(2);
6445 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6446 once_value_6 = fra.me.REG[5];
6447 register_static_object(&once_value_6);
6448 } else fra.me.REG[5] = once_value_6;
6449 fra.me.REG[5] = fra.me.REG[5];
6450 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6451 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6452 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6453 if (!once_value_7) {
6454 fra.me.REG[5] = BOX_NativeString(" cannot redefine a constructor.");
6455 REGB0 = TAG_Int(31);
6456 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6457 once_value_7 = fra.me.REG[5];
6458 register_static_object(&once_value_7);
6459 } else fra.me.REG[5] = once_value_7;
6460 fra.me.REG[5] = fra.me.REG[5];
6461 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6462 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
6463 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
6464 } else {
6465 /* syntax/mmbuilder.nit:950 */
6466 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
6467 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6468 if (UNTAG_Bool(REGB0)) {
6469 } else {
6470 REGB0 = TAG_Bool(false);
6471 REGB2 = REGB0;
6472 }
6473 if (UNTAG_Bool(REGB2)) {
6474 /* syntax/mmbuilder.nit:951 */
6475 REGB2 = TAG_Int(5);
6476 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
6477 if (!once_value_8) {
6478 fra.me.REG[5] = BOX_NativeString("Redef error: A constructor ");
6479 REGB2 = TAG_Int(27);
6480 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
6481 once_value_8 = fra.me.REG[5];
6482 register_static_object(&once_value_8);
6483 } else fra.me.REG[5] = once_value_8;
6484 fra.me.REG[5] = fra.me.REG[5];
6485 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6486 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6487 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
6488 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6489 if (!once_value_9) {
6490 fra.me.REG[5] = BOX_NativeString("::");
6491 REGB2 = TAG_Int(2);
6492 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
6493 once_value_9 = fra.me.REG[5];
6494 register_static_object(&once_value_9);
6495 } else fra.me.REG[5] = once_value_9;
6496 fra.me.REG[5] = fra.me.REG[5];
6497 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6498 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6499 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6500 if (!once_value_10) {
6501 fra.me.REG[5] = BOX_NativeString(" cannot redefine a method.");
6502 REGB2 = TAG_Int(26);
6503 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
6504 once_value_10 = fra.me.REG[5];
6505 register_static_object(&once_value_10);
6506 } else fra.me.REG[5] = once_value_10;
6507 fra.me.REG[5] = fra.me.REG[5];
6508 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6509 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
6510 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
6511 }
6512 }
6513 /* syntax/mmbuilder.nit:954 */
6514 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
6515 /* syntax/mmbuilder.nit:956 */
6516 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[2])(fra.me.REG[2]);
6517 fra.me.REG[5] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[5])(fra.me.REG[5]);
6518 /* ../lib/standard/collection/array.nit:269 */
6519 REGB2 = TAG_Int(0);
6520 /* ../lib/standard/collection/array.nit:270 */
6521 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
6522 if (UNTAG_Bool(REGB0)) {
6523 } else {
6524 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
6525 }
6526 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
6527 /* ../lib/standard/collection/array.nit:271 */
6528 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
6529 /* ../lib/standard/collection/array.nit:272 */
6530 while(1) {
6531 /* ../lib/standard/collection/array.nit:24 */
6532 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
6533 if (UNTAG_Bool(REGB0)) {
6534 } else {
6535 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6536 }
6537 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
6538 REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
6539 if (UNTAG_Bool(REGB3)) {
6540 } else {
6541 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6542 }
6543 /* ../lib/standard/kernel.nit:232 */
6544 REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
6545 /* ../lib/standard/collection/array.nit:272 */
6546 if (UNTAG_Bool(REGB0)) {
6547 /* ../lib/standard/collection/array.nit:273 */
6548 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
6549 if (UNTAG_Bool(REGB0)) {
6550 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
6551 }
6552 /* ../lib/standard/collection/array.nit:718 */
6553 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB2)];
6554 /* syntax/mmbuilder.nit:957 */
6555 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[7])(fra.me.REG[7]);
6556 fra.me.REG[9] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
6557 fra.me.REG[9] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
6558 /* syntax/mmbuilder.nit:958 */
6559 fra.me.REG[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[7])(fra.me.REG[7]);
6560 /* syntax/mmbuilder.nit:959 */
6561 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6562 if (UNTAG_Bool(REGB0)) {
6563 } else {
6564 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6565 if (UNTAG_Bool(REGB3)) {
6566 REGB3 = TAG_Bool(false);
6567 REGB0 = REGB3;
6568 } else {
6569 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
6570 REGB0 = REGB3;
6571 }
6572 }
6573 if (UNTAG_Bool(REGB0)) {
6574 goto label11;
6575 }
6576 /* syntax/mmbuilder.nit:960 */
6577 fra.me.REG[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
6578 fra.me.REG[8] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[8])(fra.me.REG[8]);
6579 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6580 if (UNTAG_Bool(REGB0)) {
6581 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 960);
6582 }
6583 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___adaptation_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
6584 fra.me.REG[7] = fra.me.REG[8];
6585 /* syntax/mmbuilder.nit:962 */
6586 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6587 if (UNTAG_Bool(REGB0)) {
6588 } else {
6589 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6590 if (UNTAG_Bool(REGB3)) {
6591 REGB3 = TAG_Bool(false);
6592 REGB0 = REGB3;
6593 } else {
6594 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
6595 REGB0 = REGB3;
6596 }
6597 }
6598 if (UNTAG_Bool(REGB0)) {
6599 /* syntax/mmbuilder.nit:964 */
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___params(fra.me.REG[8])(fra.me.REG[8]);
6602 /* ../lib/standard/collection/array.nit:24 */
6603 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6604 if (UNTAG_Bool(REGB0)) {
6605 } else {
6606 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6607 }
6608 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6609 /* syntax/mmbuilder.nit:964 */
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, 964);
6613 }
6614 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
6615 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB3));
6616 if (UNTAG_Bool(REGB4)) {
6617 } else {
6618 /* ../lib/standard/kernel.nit:227 */
6619 REGB3 = TAG_Bool((REGB0)==(REGB3));
6620 /* syntax/mmbuilder.nit:964 */
6621 REGB4 = REGB3;
6622 }
6623 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
6624 if (UNTAG_Bool(REGB4)) {
6625 /* syntax/mmbuilder.nit:965 */
6626 REGB4 = TAG_Int(11);
6627 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
6628 if (!once_value_12) {
6629 fra.me.REG[10] = BOX_NativeString("Redef error: ");
6630 REGB4 = TAG_Int(13);
6631 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6632 once_value_12 = fra.me.REG[10];
6633 register_static_object(&once_value_12);
6634 } else fra.me.REG[10] = once_value_12;
6635 fra.me.REG[10] = fra.me.REG[10];
6636 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6637 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6638 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6639 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6640 if (!once_value_13) {
6641 fra.me.REG[10] = BOX_NativeString("::");
6642 REGB4 = TAG_Int(2);
6643 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6644 once_value_13 = fra.me.REG[10];
6645 register_static_object(&once_value_13);
6646 } else fra.me.REG[10] = once_value_13;
6647 fra.me.REG[10] = fra.me.REG[10];
6648 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6649 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6650 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6651 if (!once_value_14) {
6652 fra.me.REG[10] = BOX_NativeString(" redefines ");
6653 REGB4 = TAG_Int(11);
6654 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6655 once_value_14 = fra.me.REG[10];
6656 register_static_object(&once_value_14);
6657 } else fra.me.REG[10] = once_value_14;
6658 fra.me.REG[10] = fra.me.REG[10];
6659 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6660 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6661 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6662 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6663 if (!once_value_15) {
6664 fra.me.REG[10] = BOX_NativeString("::");
6665 REGB4 = TAG_Int(2);
6666 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6667 once_value_15 = fra.me.REG[10];
6668 register_static_object(&once_value_15);
6669 } else fra.me.REG[10] = once_value_15;
6670 fra.me.REG[10] = fra.me.REG[10];
6671 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6672 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6673 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6674 if (!once_value_16) {
6675 fra.me.REG[10] = BOX_NativeString(" with ");
6676 REGB4 = TAG_Int(6);
6677 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6678 once_value_16 = fra.me.REG[10];
6679 register_static_object(&once_value_16);
6680 } else fra.me.REG[10] = once_value_16;
6681 fra.me.REG[10] = fra.me.REG[10];
6682 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6683 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6684 if (UNTAG_Bool(REGB4)) {
6685 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 965);
6686 }
6687 REGB4 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
6688 fra.me.REG[10] = CALL_standard___string___Object___to_s(REGB4)(REGB4);
6689 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6690 if (!once_value_17) {
6691 fra.me.REG[10] = BOX_NativeString(" parameter(s).");
6692 REGB4 = TAG_Int(14);
6693 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6694 once_value_17 = fra.me.REG[10];
6695 register_static_object(&once_value_17);
6696 } else fra.me.REG[10] = once_value_17;
6697 fra.me.REG[10] = fra.me.REG[10];
6698 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6699 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
6700 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]);
6701 /* syntax/mmbuilder.nit:966 */
6702 goto label4;
6703 }
6704 /* syntax/mmbuilder.nit:968 */
6705 fra.me.REG[8] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6706 fra.me.REG[8] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[8])(fra.me.REG[8]);
6707 /* ../lib/standard/collection/array.nit:24 */
6708 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6709 if (UNTAG_Bool(REGB4)) {
6710 } else {
6711 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6712 }
6713 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6714 /* syntax/mmbuilder.nit:968 */
6715 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6716 if (UNTAG_Bool(REGB3)) {
6717 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 968);
6718 }
6719 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[7])(fra.me.REG[7]);
6720 /* ../lib/standard/collection/array.nit:24 */
6721 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6722 if (UNTAG_Bool(REGB3)) {
6723 } else {
6724 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6725 }
6726 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6727 /* syntax/mmbuilder.nit:968 */
6728 REGB0 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB3));
6729 if (UNTAG_Bool(REGB0)) {
6730 } else {
6731 /* ../lib/standard/kernel.nit:227 */
6732 REGB3 = TAG_Bool((REGB4)==(REGB3));
6733 /* syntax/mmbuilder.nit:968 */
6734 REGB0 = REGB3;
6735 }
6736 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6737 if (UNTAG_Bool(REGB0)) {
6738 /* syntax/mmbuilder.nit:969 */
6739 REGB0 = TAG_Int(11);
6740 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
6741 if (!once_value_18) {
6742 fra.me.REG[10] = BOX_NativeString("Redef error: ");
6743 REGB0 = TAG_Int(13);
6744 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6745 once_value_18 = fra.me.REG[10];
6746 register_static_object(&once_value_18);
6747 } else fra.me.REG[10] = once_value_18;
6748 fra.me.REG[10] = fra.me.REG[10];
6749 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6750 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6751 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6752 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6753 if (!once_value_19) {
6754 fra.me.REG[10] = BOX_NativeString("::");
6755 REGB0 = TAG_Int(2);
6756 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6757 once_value_19 = fra.me.REG[10];
6758 register_static_object(&once_value_19);
6759 } else fra.me.REG[10] = once_value_19;
6760 fra.me.REG[10] = fra.me.REG[10];
6761 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6762 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6763 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6764 if (!once_value_20) {
6765 fra.me.REG[10] = BOX_NativeString(" redefines ");
6766 REGB0 = TAG_Int(11);
6767 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6768 once_value_20 = fra.me.REG[10];
6769 register_static_object(&once_value_20);
6770 } else fra.me.REG[10] = once_value_20;
6771 fra.me.REG[10] = fra.me.REG[10];
6772 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6773 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6774 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6775 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6776 if (!once_value_21) {
6777 fra.me.REG[10] = BOX_NativeString("::");
6778 REGB0 = TAG_Int(2);
6779 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6780 once_value_21 = fra.me.REG[10];
6781 register_static_object(&once_value_21);
6782 } else fra.me.REG[10] = once_value_21;
6783 fra.me.REG[10] = fra.me.REG[10];
6784 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6785 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6786 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6787 if (!once_value_22) {
6788 fra.me.REG[10] = BOX_NativeString(" with ");
6789 REGB0 = TAG_Int(6);
6790 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6791 once_value_22 = fra.me.REG[10];
6792 register_static_object(&once_value_22);
6793 } else fra.me.REG[10] = once_value_22;
6794 fra.me.REG[10] = fra.me.REG[10];
6795 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6796 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6797 if (UNTAG_Bool(REGB0)) {
6798 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 969);
6799 }
6800 REGB0 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
6801 fra.me.REG[10] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
6802 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6803 if (!once_value_23) {
6804 fra.me.REG[10] = BOX_NativeString(" closure(s).");
6805 REGB0 = TAG_Int(12);
6806 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6807 once_value_23 = fra.me.REG[10];
6808 register_static_object(&once_value_23);
6809 } else fra.me.REG[10] = once_value_23;
6810 fra.me.REG[10] = fra.me.REG[10];
6811 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6812 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
6813 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]);
6814 /* syntax/mmbuilder.nit:970 */
6815 goto label4;
6816 }
6817 /* syntax/mmbuilder.nit:972 */
6818 fra.me.REG[8] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6819 fra.me.REG[8] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[8])(fra.me.REG[8]);
6820 /* ../lib/standard/collection/array.nit:269 */
6821 REGB0 = TAG_Int(0);
6822 /* ../lib/standard/collection/array.nit:270 */
6823 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6824 if (UNTAG_Bool(REGB3)) {
6825 } else {
6826 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
6827 }
6828 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6829 /* ../lib/standard/collection/array.nit:271 */
6830 fra.me.REG[10] = ATTR_standard___collection___array___Array____items(fra.me.REG[8]);
6831 /* ../lib/standard/collection/array.nit:272 */
6832 while(1) {
6833 /* ../lib/standard/collection/array.nit:24 */
6834 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6835 if (UNTAG_Bool(REGB3)) {
6836 } else {
6837 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6838 }
6839 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6840 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
6841 if (UNTAG_Bool(REGB4)) {
6842 } else {
6843 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6844 }
6845 /* ../lib/standard/kernel.nit:232 */
6846 REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB3));
6847 /* ../lib/standard/collection/array.nit:272 */
6848 if (UNTAG_Bool(REGB3)) {
6849 /* ../lib/standard/collection/array.nit:273 */
6850 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6851 if (UNTAG_Bool(REGB3)) {
6852 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
6853 }
6854 /* ../lib/standard/collection/array.nit:718 */
6855 fra.me.REG[11] = ((Nit_NativeArray)fra.me.REG[10])->val[UNTAG_Int(REGB0)];
6856 /* syntax/mmbuilder.nit:973 */
6857 REGB3 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]);
6858 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6859 if (UNTAG_Bool(REGB4)) {
6860 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 973);
6861 }
6862 fra.me.REG[12] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB3);
6863 /* syntax/mmbuilder.nit:974 */
6864 CALL_syntax___mmbuilder___AParam___stype__eq(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
6865 /* syntax/mmbuilder.nit:975 */
6866 REGB3 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]);
6867 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6868 if (UNTAG_Bool(REGB4)) {
6869 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 975);
6870 }
6871 REGB4 = CALL_metamodel___vararg___MMSignature___vararg_rank(fra.me.REG[7])(fra.me.REG[7]);
6872 REGB5 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB4));
6873 if (UNTAG_Bool(REGB5)) {
6874 } else {
6875 /* ../lib/standard/kernel.nit:227 */
6876 REGB4 = TAG_Bool((REGB3)==(REGB4));
6877 /* syntax/mmbuilder.nit:975 */
6878 REGB5 = REGB4;
6879 }
6880 if (UNTAG_Bool(REGB5)) {
6881 /* syntax/mmbuilder.nit:976 */
6882 fra.me.REG[13] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[12]);
6883 fra.me.REG[12] = fra.me.REG[13];
6884 }
6885 /* syntax/mmbuilder.nit:978 */
6886 fra.me.REG[13] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[11])(fra.me.REG[11]);
6887 CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[13])(fra.me.REG[13], fra.me.REG[12]);
6888 /* syntax/mmbuilder.nit:980 */
6889 REGB5 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6890 if (UNTAG_Bool(REGB5)) {
6891 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 980);
6892 }
6893 fra.me.REG[12] = CALL_metamodel___static_type___MMSignature___params(fra.me.REG[7])(fra.me.REG[7]);
6894 REGB5 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]);
6895 /* ../lib/standard/collection/array.nit:280 */
6896 REGB4 = TAG_Int(0);
6897 REGB3 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
6898 if (UNTAG_Bool(REGB3)) {
6899 } else {
6900 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6901 }
6902 /* ../lib/standard/kernel.nit:233 */
6903 REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
6904 /* ../lib/standard/collection/array.nit:280 */
6905 if (UNTAG_Bool(REGB4)) {
6906 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[12])!=NIT_NULL);
6907 if (UNTAG_Bool(REGB4)) {
6908 } else {
6909 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
6910 }
6911 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[12]);
6912 REGB3 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
6913 if (UNTAG_Bool(REGB3)) {
6914 } else {
6915 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6916 }
6917 /* ../lib/standard/kernel.nit:232 */
6918 REGB4 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB4));
6919 } else {
6920 /* ../lib/standard/collection/array.nit:280 */
6921 REGB3 = TAG_Bool(false);
6922 REGB4 = REGB3;
6923 }
6924 if (UNTAG_Bool(REGB4)) {
6925 } else {
6926 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
6927 }
6928 /* ../lib/standard/collection/array.nit:281 */
6929 fra.me.REG[12] = ATTR_standard___collection___array___Array____items(fra.me.REG[12]);
6930 REGB4 = TAG_Bool(fra.me.REG[12]==NIT_NULL);
6931 if (UNTAG_Bool(REGB4)) {
6932 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
6933 }
6934 /* ../lib/standard/collection/array.nit:718 */
6935 fra.me.REG[12] = ((Nit_NativeArray)fra.me.REG[12])->val[UNTAG_Int(REGB5)];
6936 /* ../lib/standard/collection/array.nit:281 */
6937 goto label24;
6938 label24: while(0);
6939 /* syntax/mmbuilder.nit:980 */
6940 fra.me.REG[11] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[11])(fra.me.REG[11]);
6941 fra.me.REG[11] = CALL_syntax___syntax_base___Variable___name(fra.me.REG[11])(fra.me.REG[11]);
6942 REGB5 = TAG_Bool(fra.me.REG[12]==NIT_NULL);
6943 if (UNTAG_Bool(REGB5)) {
6944 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 980);
6945 }
6946 CALL_metamodel___static_type___MMParam___name__eq(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
6947 /* ../lib/standard/collection/array.nit:274 */
6948 REGB5 = TAG_Int(1);
6949 /* ../lib/standard/kernel.nit:235 */
6950 REGB5 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB5));
6951 /* ../lib/standard/collection/array.nit:274 */
6952 REGB0 = REGB5;
6953 } else {
6954 /* ../lib/standard/collection/array.nit:272 */
6955 goto label25;
6956 }
6957 }
6958 label25: while(0);
6959 /* syntax/mmbuilder.nit:982 */
6960 fra.me.REG[4] = fra.me.REG[7];
6961 /* syntax/mmbuilder.nit:983 */
6962 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
6963 }
6964 /* syntax/mmbuilder.nit:987 */
6965 fra.me.REG[10] = CALL_syntax___syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
6966 REGB0 = CALL_toolcontext___ToolContext___error_count(fra.me.REG[10])(fra.me.REG[10]);
6967 /* syntax/mmbuilder.nit:995 */
6968 REGB5 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6969 if (UNTAG_Bool(REGB5)) {
6970 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 995);
6971 }
6972 REGB5 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
6973 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6974 if (UNTAG_Bool(REGB4)) {
6975 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 995);
6976 }
6977 REGB4 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
6978 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB5,REGB4));
6979 if (UNTAG_Bool(REGB3)) {
6980 } else {
6981 /* ../lib/standard/kernel.nit:227 */
6982 REGB4 = TAG_Bool((REGB5)==(REGB4));
6983 /* syntax/mmbuilder.nit:995 */
6984 REGB3 = REGB4;
6985 }
6986 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
6987 if (UNTAG_Bool(REGB3)) {
6988 /* syntax/mmbuilder.nit:996 */
6989 REGB3 = TAG_Int(11);
6990 fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
6991 if (!once_value_26) {
6992 fra.me.REG[8] = BOX_NativeString("Redef error: ");
6993 REGB3 = TAG_Int(13);
6994 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
6995 once_value_26 = fra.me.REG[8];
6996 register_static_object(&once_value_26);
6997 } else fra.me.REG[8] = once_value_26;
6998 fra.me.REG[8] = fra.me.REG[8];
6999 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7000 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
7001 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
7002 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7003 if (!once_value_27) {
7004 fra.me.REG[8] = BOX_NativeString("::");
7005 REGB3 = TAG_Int(2);
7006 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
7007 once_value_27 = fra.me.REG[8];
7008 register_static_object(&once_value_27);
7009 } else fra.me.REG[8] = once_value_27;
7010 fra.me.REG[8] = fra.me.REG[8];
7011 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7012 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
7013 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7014 if (!once_value_28) {
7015 fra.me.REG[8] = BOX_NativeString(" redefines ");
7016 REGB3 = TAG_Int(11);
7017 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
7018 once_value_28 = fra.me.REG[8];
7019 register_static_object(&once_value_28);
7020 } else fra.me.REG[8] = once_value_28;
7021 fra.me.REG[8] = fra.me.REG[8];
7022 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7023 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7024 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
7025 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7026 if (!once_value_29) {
7027 fra.me.REG[8] = BOX_NativeString("::");
7028 REGB3 = TAG_Int(2);
7029 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
7030 once_value_29 = fra.me.REG[8];
7031 register_static_object(&once_value_29);
7032 } else fra.me.REG[8] = once_value_29;
7033 fra.me.REG[8] = fra.me.REG[8];
7034 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7035 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7036 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7037 if (!once_value_30) {
7038 fra.me.REG[8] = BOX_NativeString(" with ");
7039 REGB3 = TAG_Int(6);
7040 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
7041 once_value_30 = fra.me.REG[8];
7042 register_static_object(&once_value_30);
7043 } else fra.me.REG[8] = once_value_30;
7044 fra.me.REG[8] = fra.me.REG[8];
7045 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7046 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7047 if (UNTAG_Bool(REGB3)) {
7048 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 996);
7049 }
7050 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
7051 fra.me.REG[8] = CALL_standard___string___Object___to_s(REGB3)(REGB3);
7052 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7053 if (!once_value_31) {
7054 fra.me.REG[8] = BOX_NativeString(" parameter(s).");
7055 REGB3 = TAG_Int(14);
7056 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
7057 once_value_31 = fra.me.REG[8];
7058 register_static_object(&once_value_31);
7059 } else fra.me.REG[8] = once_value_31;
7060 fra.me.REG[8] = fra.me.REG[8];
7061 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7062 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
7063 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[10]);
7064 } else {
7065 /* syntax/mmbuilder.nit:997 */
7066 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7067 if (UNTAG_Bool(REGB3)) {
7068 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 997);
7069 }
7070 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
7071 REGB4 = TAG_Int(0);
7072 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
7073 if (UNTAG_Bool(REGB5)) {
7074 } else {
7075 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7076 }
7077 /* ../lib/standard/kernel.nit:234 */
7078 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB4));
7079 /* syntax/mmbuilder.nit:997 */
7080 if (UNTAG_Bool(REGB4)) {
7081 /* syntax/mmbuilder.nit:998 */
7082 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AMethPropdef, ID_parser___parser_nodes___AMethPropdef)) /*cast AMethPropdef*/;
7083 if (UNTAG_Bool(REGB4)) {
7084 /* syntax/mmbuilder.nit:1000 */
7085 REGB4 = TAG_Int(0);
7086 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7087 if (UNTAG_Bool(REGB3)) {
7088 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1000);
7089 }
7090 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
7091 /* ../lib/standard/kernel.nit:352 */
7092 while(1) {
7093 REGB5 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
7094 if (UNTAG_Bool(REGB5)) {
7095 } else {
7096 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7097 }
7098 /* ../lib/standard/kernel.nit:232 */
7099 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB3));
7100 /* ../lib/standard/kernel.nit:352 */
7101 if (UNTAG_Bool(REGB5)) {
7102 /* syntax/mmbuilder.nit:1000 */
7103 REGB5 = REGB4;
7104 /* syntax/mmbuilder.nit:1001 */
7105 REGB6 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7106 if (UNTAG_Bool(REGB6)) {
7107 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1001);
7108 }
7109 fra.me.REG[10] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[4])(fra.me.REG[4], REGB5);
7110 REGB6 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7111 if (UNTAG_Bool(REGB6)) {
7112 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1001);
7113 }
7114 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB5);
7115 REGB6 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[10],fra.me.REG[8]));
7116 if (UNTAG_Bool(REGB6)) {
7117 } else {
7118 REGB7 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7119 REGB6 = REGB7;
7120 }
7121 REGB6 = TAG_Bool(!UNTAG_Bool(REGB6));
7122 if (UNTAG_Bool(REGB6)) {
7123 /* syntax/mmbuilder.nit:1002 */
7124 fra.me.REG[8] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[0])(fra.me.REG[0]);
7125 REGB6 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7126 if (UNTAG_Bool(REGB6)) {
7127 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1002);
7128 }
7129 fra.me.REG[8] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[8])(fra.me.REG[8]);
7130 fra.me.REG[8] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[8])(fra.me.REG[8], REGB5);
7131 REGB6 = TAG_Int(7);
7132 fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB6);
7133 if (!once_value_32) {
7134 fra.me.REG[11] = BOX_NativeString("Redef error: Expected ");
7135 REGB6 = TAG_Int(22);
7136 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB6);
7137 once_value_32 = fra.me.REG[11];
7138 register_static_object(&once_value_32);
7139 } else fra.me.REG[11] = once_value_32;
7140 fra.me.REG[11] = fra.me.REG[11];
7141 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7142 REGB6 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7143 if (UNTAG_Bool(REGB6)) {
7144 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1002);
7145 }
7146 fra.me.REG[11] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB5);
7147 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7148 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7149 if (!once_value_33) {
7150 fra.me.REG[11] = BOX_NativeString(", as in ");
7151 REGB5 = TAG_Int(8);
7152 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB5);
7153 once_value_33 = fra.me.REG[11];
7154 register_static_object(&once_value_33);
7155 } else fra.me.REG[11] = once_value_33;
7156 fra.me.REG[11] = fra.me.REG[11];
7157 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7158 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7159 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7160 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7161 if (!once_value_34) {
7162 fra.me.REG[11] = BOX_NativeString("::");
7163 REGB5 = TAG_Int(2);
7164 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB5);
7165 once_value_34 = fra.me.REG[11];
7166 register_static_object(&once_value_34);
7167 } else fra.me.REG[11] = once_value_34;
7168 fra.me.REG[11] = fra.me.REG[11];
7169 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7170 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7171 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7172 if (!once_value_35) {
7173 fra.me.REG[11] = BOX_NativeString(".");
7174 REGB5 = TAG_Int(1);
7175 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB5);
7176 once_value_35 = fra.me.REG[11];
7177 register_static_object(&once_value_35);
7178 } else fra.me.REG[11] = once_value_35;
7179 fra.me.REG[11] = fra.me.REG[11];
7180 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7181 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
7182 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8], fra.me.REG[10]);
7183 }
7184 /* ../lib/standard/kernel.nit:354 */
7185 REGB5 = TAG_Int(1);
7186 /* ../lib/standard/kernel.nit:235 */
7187 REGB5 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB5));
7188 /* ../lib/standard/kernel.nit:354 */
7189 REGB4 = REGB5;
7190 } else {
7191 /* ../lib/standard/kernel.nit:352 */
7192 goto label36;
7193 }
7194 }
7195 label36: while(0);
7196 } else {
7197 /* syntax/mmbuilder.nit:1005 */
7198 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AAttrPropdef, ID_parser___parser_nodes___AAttrPropdef)) /*cast AAttrPropdef*/;
7199 if (UNTAG_Bool(REGB4)) {
7200 /* syntax/mmbuilder.nit:1007 */
7201 REGB4 = TAG_Int(0);
7202 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7203 if (UNTAG_Bool(REGB3)) {
7204 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1007);
7205 }
7206 fra.me.REG[10] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[4])(fra.me.REG[4], REGB4);
7207 REGB4 = TAG_Int(0);
7208 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7209 if (UNTAG_Bool(REGB3)) {
7210 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1007);
7211 }
7212 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB4);
7213 REGB4 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[10],fra.me.REG[8]));
7214 if (UNTAG_Bool(REGB4)) {
7215 } else {
7216 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7217 REGB4 = REGB3;
7218 }
7219 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7220 if (UNTAG_Bool(REGB4)) {
7221 /* syntax/mmbuilder.nit:1008 */
7222 fra.me.REG[8] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[0])(fra.me.REG[0]);
7223 REGB4 = TAG_Int(7);
7224 fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
7225 if (!once_value_37) {
7226 fra.me.REG[11] = BOX_NativeString("Redef error: Expected ");
7227 REGB4 = TAG_Int(22);
7228 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
7229 once_value_37 = fra.me.REG[11];
7230 register_static_object(&once_value_37);
7231 } else fra.me.REG[11] = once_value_37;
7232 fra.me.REG[11] = fra.me.REG[11];
7233 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7234 REGB4 = TAG_Int(0);
7235 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7236 if (UNTAG_Bool(REGB3)) {
7237 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1008);
7238 }
7239 fra.me.REG[11] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB4);
7240 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7241 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7242 if (!once_value_38) {
7243 fra.me.REG[11] = BOX_NativeString(", as in the parameter of ");
7244 REGB4 = TAG_Int(25);
7245 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
7246 once_value_38 = fra.me.REG[11];
7247 register_static_object(&once_value_38);
7248 } else fra.me.REG[11] = once_value_38;
7249 fra.me.REG[11] = fra.me.REG[11];
7250 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7251 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7252 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7253 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7254 if (!once_value_39) {
7255 fra.me.REG[11] = BOX_NativeString("::");
7256 REGB4 = TAG_Int(2);
7257 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
7258 once_value_39 = fra.me.REG[11];
7259 register_static_object(&once_value_39);
7260 } else fra.me.REG[11] = once_value_39;
7261 fra.me.REG[11] = fra.me.REG[11];
7262 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7263 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7264 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7265 if (!once_value_40) {
7266 fra.me.REG[11] = BOX_NativeString(".");
7267 REGB4 = TAG_Int(1);
7268 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
7269 once_value_40 = fra.me.REG[11];
7270 register_static_object(&once_value_40);
7271 } else fra.me.REG[11] = once_value_40;
7272 fra.me.REG[11] = fra.me.REG[11];
7273 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7274 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
7275 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8], fra.me.REG[10]);
7276 }
7277 } else {
7278 /* syntax/mmbuilder.nit:1012 */
7279 nit_abort("Aborted", NULL, LOCATE_syntax___mmbuilder, 1012);
7280 }
7281 }
7282 }
7283 }
7284 /* syntax/mmbuilder.nit:1016 */
7285 REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7286 if (UNTAG_Bool(REGB4)) {
7287 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1016);
7288 }
7289 fra.me.REG[10] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[4])(fra.me.REG[4]);
7290 /* syntax/mmbuilder.nit:1017 */
7291 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7292 if (UNTAG_Bool(REGB4)) {
7293 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1017);
7294 }
7295 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[7])(fra.me.REG[7]);
7296 /* syntax/mmbuilder.nit:1018 */
7297 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7298 if (UNTAG_Bool(REGB4)) {
7299 } else {
7300 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7301 if (UNTAG_Bool(REGB3)) {
7302 REGB3 = TAG_Bool(false);
7303 REGB4 = REGB3;
7304 } else {
7305 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
7306 REGB4 = REGB3;
7307 }
7308 }
7309 if (UNTAG_Bool(REGB4)) {
7310 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7311 if (UNTAG_Bool(REGB4)) {
7312 } else {
7313 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7314 if (UNTAG_Bool(REGB3)) {
7315 REGB3 = TAG_Bool(false);
7316 REGB4 = REGB3;
7317 } else {
7318 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
7319 REGB4 = REGB3;
7320 }
7321 }
7322 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7323 } else {
7324 REGB3 = TAG_Bool(false);
7325 REGB4 = REGB3;
7326 }
7327 if (UNTAG_Bool(REGB4)) {
7328 /* syntax/mmbuilder.nit:1019 */
7329 REGB4 = TAG_Int(9);
7330 fra.me.REG[11] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
7331 if (!once_value_41) {
7332 fra.me.REG[12] = BOX_NativeString("Redef error: The procedure ");
7333 REGB4 = TAG_Int(27);
7334 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
7335 once_value_41 = fra.me.REG[12];
7336 register_static_object(&once_value_41);
7337 } else fra.me.REG[12] = once_value_41;
7338 fra.me.REG[12] = fra.me.REG[12];
7339 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7340 fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
7341 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7342 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7343 if (!once_value_42) {
7344 fra.me.REG[12] = BOX_NativeString("::");
7345 REGB4 = TAG_Int(2);
7346 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
7347 once_value_42 = fra.me.REG[12];
7348 register_static_object(&once_value_42);
7349 } else fra.me.REG[12] = once_value_42;
7350 fra.me.REG[12] = fra.me.REG[12];
7351 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7352 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
7353 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7354 if (!once_value_43) {
7355 fra.me.REG[12] = BOX_NativeString(" redefines the function ");
7356 REGB4 = TAG_Int(24);
7357 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
7358 once_value_43 = fra.me.REG[12];
7359 register_static_object(&once_value_43);
7360 } else fra.me.REG[12] = once_value_43;
7361 fra.me.REG[12] = fra.me.REG[12];
7362 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7363 fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7364 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7365 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7366 if (!once_value_44) {
7367 fra.me.REG[12] = BOX_NativeString("::");
7368 REGB4 = TAG_Int(2);
7369 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
7370 once_value_44 = fra.me.REG[12];
7371 register_static_object(&once_value_44);
7372 } else fra.me.REG[12] = once_value_44;
7373 fra.me.REG[12] = fra.me.REG[12];
7374 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7375 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7376 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7377 if (!once_value_45) {
7378 fra.me.REG[12] = BOX_NativeString(".");
7379 REGB4 = TAG_Int(1);
7380 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
7381 once_value_45 = fra.me.REG[12];
7382 register_static_object(&once_value_45);
7383 } else fra.me.REG[12] = once_value_45;
7384 fra.me.REG[12] = fra.me.REG[12];
7385 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7386 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7387 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[11]);
7388 } else {
7389 /* syntax/mmbuilder.nit:1020 */
7390 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7391 if (UNTAG_Bool(REGB4)) {
7392 } else {
7393 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7394 if (UNTAG_Bool(REGB3)) {
7395 REGB3 = TAG_Bool(false);
7396 REGB4 = REGB3;
7397 } else {
7398 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
7399 REGB4 = REGB3;
7400 }
7401 }
7402 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7403 if (UNTAG_Bool(REGB4)) {
7404 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7405 if (UNTAG_Bool(REGB4)) {
7406 } else {
7407 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7408 if (UNTAG_Bool(REGB3)) {
7409 REGB3 = TAG_Bool(false);
7410 REGB4 = REGB3;
7411 } else {
7412 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
7413 REGB4 = REGB3;
7414 }
7415 }
7416 } else {
7417 REGB3 = TAG_Bool(false);
7418 REGB4 = REGB3;
7419 }
7420 if (UNTAG_Bool(REGB4)) {
7421 /* syntax/mmbuilder.nit:1021 */
7422 REGB4 = TAG_Int(9);
7423 fra.me.REG[11] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
7424 if (!once_value_46) {
7425 fra.me.REG[12] = BOX_NativeString("Redef error: The function ");
7426 REGB4 = TAG_Int(26);
7427 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
7428 once_value_46 = fra.me.REG[12];
7429 register_static_object(&once_value_46);
7430 } else fra.me.REG[12] = once_value_46;
7431 fra.me.REG[12] = fra.me.REG[12];
7432 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7433 fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
7434 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7435 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7436 if (!once_value_47) {
7437 fra.me.REG[12] = BOX_NativeString("::");
7438 REGB4 = TAG_Int(2);
7439 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
7440 once_value_47 = fra.me.REG[12];
7441 register_static_object(&once_value_47);
7442 } else fra.me.REG[12] = once_value_47;
7443 fra.me.REG[12] = fra.me.REG[12];
7444 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7445 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
7446 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7447 if (!once_value_48) {
7448 fra.me.REG[12] = BOX_NativeString(" redefines the procedure ");
7449 REGB4 = TAG_Int(25);
7450 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
7451 once_value_48 = fra.me.REG[12];
7452 register_static_object(&once_value_48);
7453 } else fra.me.REG[12] = once_value_48;
7454 fra.me.REG[12] = fra.me.REG[12];
7455 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7456 fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7457 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7458 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7459 if (!once_value_49) {
7460 fra.me.REG[12] = BOX_NativeString("::");
7461 REGB4 = TAG_Int(2);
7462 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
7463 once_value_49 = fra.me.REG[12];
7464 register_static_object(&once_value_49);
7465 } else fra.me.REG[12] = once_value_49;
7466 fra.me.REG[12] = fra.me.REG[12];
7467 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7468 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7469 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7470 if (!once_value_50) {
7471 fra.me.REG[12] = BOX_NativeString(".");
7472 REGB4 = TAG_Int(1);
7473 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
7474 once_value_50 = fra.me.REG[12];
7475 register_static_object(&once_value_50);
7476 } else fra.me.REG[12] = once_value_50;
7477 fra.me.REG[12] = fra.me.REG[12];
7478 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7479 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7480 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[11]);
7481 } else {
7482 /* syntax/mmbuilder.nit:1022 */
7483 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7484 if (UNTAG_Bool(REGB4)) {
7485 } else {
7486 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7487 if (UNTAG_Bool(REGB3)) {
7488 REGB3 = TAG_Bool(false);
7489 REGB4 = REGB3;
7490 } else {
7491 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
7492 REGB4 = REGB3;
7493 }
7494 }
7495 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7496 if (UNTAG_Bool(REGB4)) {
7497 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7498 if (UNTAG_Bool(REGB4)) {
7499 } else {
7500 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7501 if (UNTAG_Bool(REGB3)) {
7502 REGB3 = TAG_Bool(false);
7503 REGB4 = REGB3;
7504 } else {
7505 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
7506 REGB4 = REGB3;
7507 }
7508 }
7509 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7510 } else {
7511 REGB3 = TAG_Bool(false);
7512 REGB4 = REGB3;
7513 }
7514 if (UNTAG_Bool(REGB4)) {
7515 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7516 if (UNTAG_Bool(REGB4)) {
7517 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1022);
7518 }
7519 REGB4 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7520 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7521 } else {
7522 REGB3 = TAG_Bool(false);
7523 REGB4 = REGB3;
7524 }
7525 if (UNTAG_Bool(REGB4)) {
7526 /* syntax/mmbuilder.nit:1023 */
7527 fra.me.REG[11] = NIT_NULL;
7528 /* syntax/mmbuilder.nit:1024 */
7529 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AMethPropdef, ID_parser___parser_nodes___AMethPropdef)) /*cast AMethPropdef*/;
7530 if (UNTAG_Bool(REGB4)) {
7531 /* syntax/mmbuilder.nit:1025 */
7532 fra.me.REG[12] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[0])(fra.me.REG[0]);
7533 REGB4 = TAG_Bool(fra.me.REG[12]==NIT_NULL);
7534 if (UNTAG_Bool(REGB4)) {
7535 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1025);
7536 }
7537 fra.me.REG[12] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[12])(fra.me.REG[12]);
7538 fra.me.REG[11] = fra.me.REG[12];
7539 } else {
7540 /* syntax/mmbuilder.nit:1026 */
7541 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AAttrPropdef, ID_parser___parser_nodes___AAttrPropdef)) /*cast AAttrPropdef*/;
7542 if (UNTAG_Bool(REGB4)) {
7543 /* syntax/mmbuilder.nit:1027 */
7544 fra.me.REG[12] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[0])(fra.me.REG[0]);
7545 fra.me.REG[11] = fra.me.REG[12];
7546 } else {
7547 /* syntax/mmbuilder.nit:1028 */
7548 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___ATypePropdef, ID_parser___parser_nodes___ATypePropdef)) /*cast ATypePropdef*/;
7549 if (UNTAG_Bool(REGB4)) {
7550 /* syntax/mmbuilder.nit:1029 */
7551 fra.me.REG[12] = CALL_parser___parser_nodes___ATypePropdef___n_type(fra.me.REG[0])(fra.me.REG[0]);
7552 fra.me.REG[11] = fra.me.REG[12];
7553 }
7554 }
7555 }
7556 /* syntax/mmbuilder.nit:1031 */
7557 REGB4 = TAG_Int(7);
7558 fra.me.REG[12] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
7559 if (!once_value_51) {
7560 fra.me.REG[13] = BOX_NativeString("Redef error: Expected ");
7561 REGB4 = TAG_Int(22);
7562 fra.me.REG[13] = NEW_String_standard___string___String___with_native(fra.me.REG[13], REGB4);
7563 once_value_51 = fra.me.REG[13];
7564 register_static_object(&once_value_51);
7565 } else fra.me.REG[13] = once_value_51;
7566 fra.me.REG[13] = fra.me.REG[13];
7567 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
7568 fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
7569 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
7570 if (!once_value_52) {
7571 fra.me.REG[13] = BOX_NativeString(", as in ");
7572 REGB4 = TAG_Int(8);
7573 fra.me.REG[13] = NEW_String_standard___string___String___with_native(fra.me.REG[13], REGB4);
7574 once_value_52 = fra.me.REG[13];
7575 register_static_object(&once_value_52);
7576 } else fra.me.REG[13] = once_value_52;
7577 fra.me.REG[13] = fra.me.REG[13];
7578 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
7579 fra.me.REG[13] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7580 fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[13])(fra.me.REG[13]);
7581 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
7582 if (!once_value_53) {
7583 fra.me.REG[13] = BOX_NativeString("::");
7584 REGB4 = TAG_Int(2);
7585 fra.me.REG[13] = NEW_String_standard___string___String___with_native(fra.me.REG[13], REGB4);
7586 once_value_53 = fra.me.REG[13];
7587 register_static_object(&once_value_53);
7588 } else fra.me.REG[13] = once_value_53;
7589 fra.me.REG[13] = fra.me.REG[13];
7590 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
7591 fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7592 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
7593 if (!once_value_54) {
7594 fra.me.REG[13] = BOX_NativeString(".");
7595 REGB4 = TAG_Int(1);
7596 fra.me.REG[13] = NEW_String_standard___string___String___with_native(fra.me.REG[13], REGB4);
7597 once_value_54 = fra.me.REG[13];
7598 register_static_object(&once_value_54);
7599 } else fra.me.REG[13] = once_value_54;
7600 fra.me.REG[13] = fra.me.REG[13];
7601 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
7602 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7603 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[11], fra.me.REG[12]);
7604 } else {
7605 /* syntax/mmbuilder.nit:1032 */
7606 REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7607 if (UNTAG_Bool(REGB4)) {
7608 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1032);
7609 }
7610 REGB4 = CALL_metamodel___static_type___MMSignature_____l(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
7611 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7612 if (UNTAG_Bool(REGB4)) {
7613 fra.me.REG[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
7614 REGB4 = CALL_toolcontext___ToolContext___error_count(fra.me.REG[7])(fra.me.REG[7]);
7615 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB4));
7616 if (UNTAG_Bool(REGB3)) {
7617 } else {
7618 /* ../lib/standard/kernel.nit:227 */
7619 REGB4 = TAG_Bool((REGB0)==(REGB4));
7620 /* syntax/mmbuilder.nit:1032 */
7621 REGB3 = REGB4;
7622 }
7623 } else {
7624 REGB4 = TAG_Bool(false);
7625 REGB3 = REGB4;
7626 }
7627 if (UNTAG_Bool(REGB3)) {
7628 /* syntax/mmbuilder.nit:1034 */
7629 REGB3 = TAG_Int(9);
7630 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
7631 if (!once_value_55) {
7632 fra.me.REG[12] = BOX_NativeString("Redef error: Incompatible redefinition of ");
7633 REGB3 = TAG_Int(42);
7634 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB3);
7635 once_value_55 = fra.me.REG[12];
7636 register_static_object(&once_value_55);
7637 } else fra.me.REG[12] = once_value_55;
7638 fra.me.REG[12] = fra.me.REG[12];
7639 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7640 fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7641 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7642 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7643 if (!once_value_56) {
7644 fra.me.REG[12] = BOX_NativeString("::");
7645 REGB3 = TAG_Int(2);
7646 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB3);
7647 once_value_56 = fra.me.REG[12];
7648 register_static_object(&once_value_56);
7649 } else fra.me.REG[12] = once_value_56;
7650 fra.me.REG[12] = fra.me.REG[12];
7651 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7652 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7653 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7654 if (!once_value_57) {
7655 fra.me.REG[12] = BOX_NativeString(" with ");
7656 REGB3 = TAG_Int(6);
7657 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB3);
7658 once_value_57 = fra.me.REG[12];
7659 register_static_object(&once_value_57);
7660 } else fra.me.REG[12] = once_value_57;
7661 fra.me.REG[12] = fra.me.REG[12];
7662 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7663 fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
7664 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7665 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7666 if (!once_value_58) {
7667 fra.me.REG[12] = BOX_NativeString("::");
7668 REGB3 = TAG_Int(2);
7669 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB3);
7670 once_value_58 = fra.me.REG[12];
7671 register_static_object(&once_value_58);
7672 } else fra.me.REG[12] = once_value_58;
7673 fra.me.REG[12] = fra.me.REG[12];
7674 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7675 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
7676 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7677 if (!once_value_59) {
7678 fra.me.REG[12] = BOX_NativeString("");
7679 REGB3 = TAG_Int(0);
7680 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB3);
7681 once_value_59 = fra.me.REG[12];
7682 register_static_object(&once_value_59);
7683 } else fra.me.REG[12] = once_value_59;
7684 fra.me.REG[12] = fra.me.REG[12];
7685 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7686 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
7687 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[7]);
7688 } else {
7689 /* syntax/mmbuilder.nit:1035 */
7690 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7691 if (UNTAG_Bool(REGB3)) {
7692 } else {
7693 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7694 if (UNTAG_Bool(REGB4)) {
7695 REGB4 = TAG_Bool(false);
7696 REGB3 = REGB4;
7697 } else {
7698 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
7699 REGB3 = REGB4;
7700 }
7701 }
7702 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7703 if (UNTAG_Bool(REGB3)) {
7704 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7705 if (UNTAG_Bool(REGB3)) {
7706 } else {
7707 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7708 if (UNTAG_Bool(REGB4)) {
7709 REGB4 = TAG_Bool(false);
7710 REGB3 = REGB4;
7711 } else {
7712 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
7713 REGB3 = REGB4;
7714 }
7715 }
7716 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7717 } else {
7718 REGB4 = TAG_Bool(false);
7719 REGB3 = REGB4;
7720 }
7721 if (UNTAG_Bool(REGB3)) {
7722 REGB3 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[10],fra.me.REG[8]));
7723 if (UNTAG_Bool(REGB3)) {
7724 } else {
7725 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7726 if (UNTAG_Bool(REGB4)) {
7727 REGB4 = TAG_Bool(false);
7728 REGB3 = REGB4;
7729 } else {
7730 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7731 REGB3 = REGB4;
7732 }
7733 }
7734 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7735 } else {
7736 REGB4 = TAG_Bool(false);
7737 REGB3 = REGB4;
7738 }
7739 if (UNTAG_Bool(REGB3)) {
7740 REGB3 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_metamodel___abstractmetamodel___MMAttribute, ID_metamodel___abstractmetamodel___MMAttribute)) /*cast MMAttribute*/;
7741 } else {
7742 REGB4 = TAG_Bool(false);
7743 REGB3 = REGB4;
7744 }
7745 if (UNTAG_Bool(REGB3)) {
7746 /* syntax/mmbuilder.nit:1037 */
7747 REGB3 = TAG_Int(7);
7748 fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
7749 if (!once_value_60) {
7750 fra.me.REG[7] = BOX_NativeString("Redef warning: Expected ");
7751 REGB3 = TAG_Int(24);
7752 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB3);
7753 once_value_60 = fra.me.REG[7];
7754 register_static_object(&once_value_60);
7755 } else fra.me.REG[7] = once_value_60;
7756 fra.me.REG[7] = fra.me.REG[7];
7757 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
7758 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
7759 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7760 if (!once_value_61) {
7761 fra.me.REG[8] = BOX_NativeString(", as in ");
7762 REGB3 = TAG_Int(8);
7763 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
7764 once_value_61 = fra.me.REG[8];
7765 register_static_object(&once_value_61);
7766 } else fra.me.REG[8] = once_value_61;
7767 fra.me.REG[8] = fra.me.REG[8];
7768 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7769 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7770 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
7771 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7772 if (!once_value_62) {
7773 fra.me.REG[8] = BOX_NativeString("::");
7774 REGB3 = TAG_Int(2);
7775 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
7776 once_value_62 = fra.me.REG[8];
7777 register_static_object(&once_value_62);
7778 } else fra.me.REG[8] = once_value_62;
7779 fra.me.REG[8] = fra.me.REG[8];
7780 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7781 fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7782 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[9]);
7783 if (!once_value_63) {
7784 fra.me.REG[9] = BOX_NativeString(".");
7785 REGB3 = TAG_Int(1);
7786 fra.me.REG[9] = NEW_String_standard___string___String___with_native(fra.me.REG[9], REGB3);
7787 once_value_63 = fra.me.REG[9];
7788 register_static_object(&once_value_63);
7789 } else fra.me.REG[9] = once_value_63;
7790 fra.me.REG[9] = fra.me.REG[9];
7791 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[9]);
7792 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
7793 CALL_syntax___syntax_base___AbsSyntaxVisitor___warning(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[10]);
7794 }
7795 }
7796 }
7797 }
7798 }
7799 /* ../lib/standard/collection/array.nit:274 */
7800 REGB3 = TAG_Int(1);
7801 /* ../lib/standard/kernel.nit:235 */
7802 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
7803 /* ../lib/standard/collection/array.nit:274 */
7804 REGB2 = REGB3;
7805 } else {
7806 /* ../lib/standard/collection/array.nit:272 */
7807 goto label64;
7808 }
7809 }
7810 label64: while(0);
7811 label11: while(0);
7812 /* syntax/mmbuilder.nit:1041 */
7813 REGB2 = TAG_Int(1);
7814 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
7815 if (UNTAG_Bool(REGB3)) {
7816 } else {
7817 /* ../lib/standard/kernel.nit:227 */
7818 REGB2 = TAG_Bool((REGB1)==(REGB2));
7819 /* syntax/mmbuilder.nit:1041 */
7820 REGB3 = REGB2;
7821 }
7822 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7823 if (UNTAG_Bool(REGB3)) {
7824 REGB3 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
7825 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB1));
7826 if (UNTAG_Bool(REGB2)) {
7827 } else {
7828 /* ../lib/standard/kernel.nit:227 */
7829 REGB1 = TAG_Bool((REGB3)==(REGB1));
7830 /* syntax/mmbuilder.nit:1041 */
7831 REGB2 = REGB1;
7832 }
7833 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
7834 } else {
7835 REGB1 = TAG_Bool(false);
7836 REGB2 = REGB1;
7837 }
7838 if (UNTAG_Bool(REGB2)) {
7839 /* syntax/mmbuilder.nit:1042 */
7840 REGB2 = TAG_Int(5);
7841 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
7842 if (!once_value_65) {
7843 fra.me.REG[6] = BOX_NativeString("Redef error: ");
7844 REGB2 = TAG_Int(13);
7845 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
7846 once_value_65 = fra.me.REG[6];
7847 register_static_object(&once_value_65);
7848 } else fra.me.REG[6] = once_value_65;
7849 fra.me.REG[6] = fra.me.REG[6];
7850 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
7851 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
7852 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7853 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
7854 if (!once_value_66) {
7855 fra.me.REG[6] = BOX_NativeString("::");
7856 REGB2 = TAG_Int(2);
7857 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
7858 once_value_66 = fra.me.REG[6];
7859 register_static_object(&once_value_66);
7860 } else fra.me.REG[6] = once_value_66;
7861 fra.me.REG[6] = fra.me.REG[6];
7862 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
7863 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
7864 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
7865 if (!once_value_67) {
7866 fra.me.REG[2] = BOX_NativeString(" redefinition cannot change visibility.");
7867 REGB2 = TAG_Int(39);
7868 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB2);
7869 once_value_67 = fra.me.REG[2];
7870 register_static_object(&once_value_67);
7871 } else fra.me.REG[2] = once_value_67;
7872 fra.me.REG[2] = fra.me.REG[2];
7873 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
7874 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
7875 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
7876 }
7877 /* syntax/mmbuilder.nit:1044 */
7878 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
7879 REGB2 = TAG_Bool(true);
7880 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);
7881 label4: while(0);
7882 stack_frame_head = fra.me.prev;
7883 return;
7884 }
7885 val_t syntax___mmbuilder___AAttrPropdef___readmethod(val_t p0){
7886 struct {struct stack_frame_t me;} fra;
7887 val_t tmp;
7888 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7889 fra.me.file = LOCATE_syntax___mmbuilder;
7890 fra.me.line = 1049;
7891 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___readmethod;
7892 fra.me.has_broke = 0;
7893 fra.me.REG_size = 1;
7894 fra.me.nitni_local_ref_head = NULL;
7895 fra.me.REG[0] = NIT_NULL;
7896 fra.me.REG[0] = p0;
7897 /* syntax/mmbuilder.nit:1049 */
7898 fra.me.REG[0] = ATTR_syntax___mmbuilder___AAttrPropdef____readmethod(fra.me.REG[0]);
7899 stack_frame_head = fra.me.prev;
7900 return fra.me.REG[0];
7901 }
7902 val_t syntax___mmbuilder___AAttrPropdef___writemethod(val_t p0){
7903 struct {struct stack_frame_t me;} fra;
7904 val_t tmp;
7905 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7906 fra.me.file = LOCATE_syntax___mmbuilder;
7907 fra.me.line = 1050;
7908 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___writemethod;
7909 fra.me.has_broke = 0;
7910 fra.me.REG_size = 1;
7911 fra.me.nitni_local_ref_head = NULL;
7912 fra.me.REG[0] = NIT_NULL;
7913 fra.me.REG[0] = p0;
7914 /* syntax/mmbuilder.nit:1050 */
7915 fra.me.REG[0] = ATTR_syntax___mmbuilder___AAttrPropdef____writemethod(fra.me.REG[0]);
7916 stack_frame_head = fra.me.prev;
7917 return fra.me.REG[0];
7918 }
7919 val_t syntax___mmbuilder___AAttrPropdef___prop(val_t p0){
7920 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
7921 val_t REGB0;
7922 val_t tmp;
7923 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7924 fra.me.file = LOCATE_syntax___mmbuilder;
7925 fra.me.line = 1052;
7926 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___prop;
7927 fra.me.has_broke = 0;
7928 fra.me.REG_size = 2;
7929 fra.me.nitni_local_ref_head = NULL;
7930 fra.me.REG[0] = NIT_NULL;
7931 fra.me.REG[1] = NIT_NULL;
7932 fra.me.REG[0] = p0;
7933 /* syntax/mmbuilder.nit:1052 */
7934 fra.me.REG[1] = fra.me.REG[0];
7935 fra.me.REG[1] = ATTR_syntax___mmbuilder___AAttrPropdef____prop(fra.me.REG[1]);
7936 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
7937 if (UNTAG_Bool(REGB0)) {
7938 } else {
7939 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1052);
7940 }
7941 goto label1;
7942 label1: while(0);
7943 stack_frame_head = fra.me.prev;
7944 return fra.me.REG[1];
7945 }
7946 void syntax___mmbuilder___AAttrPropdef___accept_property_builder(val_t p0, val_t p1){
7947 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
7948 val_t REGB0;
7949 val_t REGB1;
7950 val_t REGB2;
7951 val_t tmp;
7952 static val_t once_value_1; /* Once value */
7953 static val_t once_value_2; /* Once value */
7954 static val_t once_value_3; /* Once value */
7955 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7956 fra.me.file = LOCATE_syntax___mmbuilder;
7957 fra.me.line = 1054;
7958 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___accept_property_builder;
7959 fra.me.has_broke = 0;
7960 fra.me.REG_size = 6;
7961 fra.me.nitni_local_ref_head = NULL;
7962 fra.me.REG[0] = NIT_NULL;
7963 fra.me.REG[1] = NIT_NULL;
7964 fra.me.REG[2] = NIT_NULL;
7965 fra.me.REG[3] = NIT_NULL;
7966 fra.me.REG[4] = NIT_NULL;
7967 fra.me.REG[5] = NIT_NULL;
7968 fra.me.REG[0] = p0;
7969 fra.me.REG[1] = p1;
7970 /* syntax/mmbuilder.nit:1054 */
7971 fra.me.REG[2] = fra.me.REG[0];
7972 fra.me.REG[3] = fra.me.REG[1];
7973 /* syntax/mmbuilder.nit:1056 */
7974 CALL_SUPER_syntax___mmbuilder___AAttrPropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
7975 /* syntax/mmbuilder.nit:1058 */
7976 fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7977 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7978 if (UNTAG_Bool(REGB0)) {
7979 } else {
7980 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7981 if (UNTAG_Bool(REGB1)) {
7982 REGB1 = TAG_Bool(false);
7983 REGB0 = REGB1;
7984 } else {
7985 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7986 REGB0 = REGB1;
7987 }
7988 }
7989 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7990 if (UNTAG_Bool(REGB0)) {
7991 /* syntax/mmbuilder.nit:1059 */
7992 fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
7993 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7994 if (UNTAG_Bool(REGB0)) {
7995 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1059);
7996 }
7997 fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
7998 } else {
7999 /* syntax/mmbuilder.nit:1061 */
8000 if (!once_value_1) {
8001 fra.me.REG[0] = BOX_NativeString("@");
8002 REGB0 = TAG_Int(1);
8003 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
8004 once_value_1 = fra.me.REG[0];
8005 register_static_object(&once_value_1);
8006 } else fra.me.REG[0] = once_value_1;
8007 fra.me.REG[0] = fra.me.REG[0];
8008 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
8009 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8010 if (UNTAG_Bool(REGB0)) {
8011 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1061);
8012 }
8013 fra.me.REG[4] = CALL_parser___parser_nodes___Token___text(fra.me.REG[4])(fra.me.REG[4]);
8014 fra.me.REG[4] = CALL_standard___string___String_____plus(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
8015 fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
8016 fra.me.REG[1] = fra.me.REG[4];
8017 }
8018 /* syntax/mmbuilder.nit:1063 */
8019 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8020 /* syntax/mmbuilder.nit:1064 */
8021 fra.me.REG[0] = NEW_MMSrcAttribute_syntax___syntax_base___MMSrcAttribute___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
8022 /* syntax/mmbuilder.nit:1065 */
8023 ATTR_syntax___mmbuilder___AAttrPropdef____prop(fra.me.REG[2]) = fra.me.REG[0];
8024 /* syntax/mmbuilder.nit:1066 */
8025 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8026 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[0]);
8027 /* syntax/mmbuilder.nit:1068 */
8028 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
8029 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8030 if (UNTAG_Bool(REGB0)) {
8031 } else {
8032 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8033 if (UNTAG_Bool(REGB1)) {
8034 REGB1 = TAG_Bool(false);
8035 REGB0 = REGB1;
8036 } else {
8037 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8038 REGB0 = REGB1;
8039 }
8040 }
8041 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8042 if (UNTAG_Bool(REGB0)) {
8043 REGB0 = TAG_Bool(true);
8044 } else {
8045 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8046 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8047 if (UNTAG_Bool(REGB1)) {
8048 } else {
8049 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8050 if (UNTAG_Bool(REGB2)) {
8051 REGB2 = TAG_Bool(false);
8052 REGB1 = REGB2;
8053 } else {
8054 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8055 REGB1 = REGB2;
8056 }
8057 }
8058 REGB0 = REGB1;
8059 }
8060 if (UNTAG_Bool(REGB0)) {
8061 /* syntax/mmbuilder.nit:1069 */
8062 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8063 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8064 if (UNTAG_Bool(REGB0)) {
8065 } else {
8066 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8067 if (UNTAG_Bool(REGB1)) {
8068 REGB1 = TAG_Bool(false);
8069 REGB0 = REGB1;
8070 } else {
8071 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8072 REGB0 = REGB1;
8073 }
8074 }
8075 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8076 if (UNTAG_Bool(REGB0)) {
8077 /* syntax/mmbuilder.nit:1070 */
8078 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8079 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8080 if (UNTAG_Bool(REGB0)) {
8081 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1070);
8082 }
8083 fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
8084 REGB0 = TAG_Int(1);
8085 fra.me.REG[0] = CALL_standard___string___AbstractString___substring_from(fra.me.REG[0])(fra.me.REG[0], REGB0);
8086 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
8087 fra.me.REG[1] = fra.me.REG[0];
8088 } else {
8089 /* syntax/mmbuilder.nit:1072 */
8090 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
8091 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8092 if (UNTAG_Bool(REGB0)) {
8093 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1072);
8094 }
8095 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
8096 fra.me.REG[1] = fra.me.REG[0];
8097 }
8098 /* syntax/mmbuilder.nit:1074 */
8099 fra.me.REG[0] = NEW_MMReadImplementationMethod_syntax___syntax_base___MMReadImplementationMethod___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
8100 /* syntax/mmbuilder.nit:1075 */
8101 ATTR_syntax___mmbuilder___AAttrPropdef____readmethod(fra.me.REG[2]) = fra.me.REG[0];
8102 /* syntax/mmbuilder.nit:1076 */
8103 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8104 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[0]);
8105 }
8106 /* syntax/mmbuilder.nit:1078 */
8107 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8108 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8109 if (UNTAG_Bool(REGB0)) {
8110 } else {
8111 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8112 if (UNTAG_Bool(REGB1)) {
8113 REGB1 = TAG_Bool(false);
8114 REGB0 = REGB1;
8115 } else {
8116 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8117 REGB0 = REGB1;
8118 }
8119 }
8120 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8121 if (UNTAG_Bool(REGB0)) {
8122 REGB0 = TAG_Bool(true);
8123 } else {
8124 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8125 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8126 if (UNTAG_Bool(REGB1)) {
8127 } else {
8128 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8129 if (UNTAG_Bool(REGB2)) {
8130 REGB2 = TAG_Bool(false);
8131 REGB1 = REGB2;
8132 } else {
8133 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8134 REGB1 = REGB2;
8135 }
8136 }
8137 REGB0 = REGB1;
8138 }
8139 if (UNTAG_Bool(REGB0)) {
8140 /* syntax/mmbuilder.nit:1079 */
8141 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8142 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8143 if (UNTAG_Bool(REGB0)) {
8144 } else {
8145 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8146 if (UNTAG_Bool(REGB1)) {
8147 REGB1 = TAG_Bool(false);
8148 REGB0 = REGB1;
8149 } else {
8150 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8151 REGB0 = REGB1;
8152 }
8153 }
8154 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8155 if (UNTAG_Bool(REGB0)) {
8156 /* syntax/mmbuilder.nit:1080 */
8157 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8158 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8159 if (UNTAG_Bool(REGB0)) {
8160 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1080);
8161 }
8162 fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
8163 REGB0 = TAG_Int(1);
8164 fra.me.REG[0] = CALL_standard___string___AbstractString___substring_from(fra.me.REG[0])(fra.me.REG[0], REGB0);
8165 if (!once_value_2) {
8166 fra.me.REG[5] = BOX_NativeString("=");
8167 REGB0 = TAG_Int(1);
8168 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
8169 once_value_2 = fra.me.REG[5];
8170 register_static_object(&once_value_2);
8171 } else fra.me.REG[5] = once_value_2;
8172 fra.me.REG[5] = fra.me.REG[5];
8173 fra.me.REG[5] = CALL_standard___string___String_____plus(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
8174 fra.me.REG[5] = CALL_standard___symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
8175 fra.me.REG[1] = fra.me.REG[5];
8176 } else {
8177 /* syntax/mmbuilder.nit:1082 */
8178 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
8179 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8180 if (UNTAG_Bool(REGB0)) {
8181 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1082);
8182 }
8183 fra.me.REG[5] = CALL_parser___parser_nodes___Token___text(fra.me.REG[5])(fra.me.REG[5]);
8184 if (!once_value_3) {
8185 fra.me.REG[0] = BOX_NativeString("=");
8186 REGB0 = TAG_Int(1);
8187 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
8188 once_value_3 = fra.me.REG[0];
8189 register_static_object(&once_value_3);
8190 } else fra.me.REG[0] = once_value_3;
8191 fra.me.REG[0] = fra.me.REG[0];
8192 fra.me.REG[0] = CALL_standard___string___String_____plus(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
8193 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
8194 fra.me.REG[1] = fra.me.REG[0];
8195 }
8196 /* syntax/mmbuilder.nit:1084 */
8197 fra.me.REG[4] = NEW_MMWriteImplementationMethod_syntax___syntax_base___MMWriteImplementationMethod___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
8198 /* syntax/mmbuilder.nit:1085 */
8199 ATTR_syntax___mmbuilder___AAttrPropdef____writemethod(fra.me.REG[2]) = fra.me.REG[4];
8200 /* syntax/mmbuilder.nit:1086 */
8201 fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8202 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
8203 }
8204 stack_frame_head = fra.me.prev;
8205 return;
8206 }
8207 void syntax___mmbuilder___AAttrPropdef___accept_property_verifier(val_t p0, val_t p1){
8208 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
8209 val_t REGB0;
8210 val_t REGB1;
8211 val_t REGB2;
8212 val_t REGB3;
8213 val_t tmp;
8214 static val_t once_value_2; /* Once value */
8215 static val_t once_value_3; /* Once value */
8216 static val_t once_value_4; /* Once value */
8217 static val_t once_value_5; /* Once value */
8218 static val_t once_value_6; /* Once value */
8219 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8220 fra.me.file = LOCATE_syntax___mmbuilder;
8221 fra.me.line = 1090;
8222 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___accept_property_verifier;
8223 fra.me.has_broke = 0;
8224 fra.me.REG_size = 7;
8225 fra.me.nitni_local_ref_head = NULL;
8226 fra.me.REG[0] = NIT_NULL;
8227 fra.me.REG[1] = NIT_NULL;
8228 fra.me.REG[2] = NIT_NULL;
8229 fra.me.REG[3] = NIT_NULL;
8230 fra.me.REG[4] = NIT_NULL;
8231 fra.me.REG[5] = NIT_NULL;
8232 fra.me.REG[6] = NIT_NULL;
8233 fra.me.REG[0] = p0;
8234 fra.me.REG[1] = p1;
8235 /* syntax/mmbuilder.nit:1090 */
8236 fra.me.REG[2] = fra.me.REG[0];
8237 fra.me.REG[3] = fra.me.REG[1];
8238 /* syntax/mmbuilder.nit:1092 */
8239 CALL_SUPER_syntax___mmbuilder___AAttrPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8240 /* syntax/mmbuilder.nit:1093 */
8241 fra.me.REG[1] = NIT_NULL;
8242 /* syntax/mmbuilder.nit:1094 */
8243 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8244 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8245 if (UNTAG_Bool(REGB0)) {
8246 } else {
8247 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8248 if (UNTAG_Bool(REGB1)) {
8249 REGB1 = TAG_Bool(false);
8250 REGB0 = REGB1;
8251 } else {
8252 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8253 REGB0 = REGB1;
8254 }
8255 }
8256 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8257 if (UNTAG_Bool(REGB0)) {
8258 /* syntax/mmbuilder.nit:1095 */
8259 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8260 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8261 if (UNTAG_Bool(REGB0)) {
8262 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1095);
8263 }
8264 fra.me.REG[4] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
8265 /* syntax/mmbuilder.nit:1096 */
8266 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8267 if (UNTAG_Bool(REGB0)) {
8268 } else {
8269 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8270 if (UNTAG_Bool(REGB1)) {
8271 REGB1 = TAG_Bool(false);
8272 REGB0 = REGB1;
8273 } else {
8274 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8275 REGB0 = REGB1;
8276 }
8277 }
8278 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8279 if (UNTAG_Bool(REGB0)) {
8280 fra.me.REG[1] = fra.me.REG[4];
8281 } else {
8282 goto label1;
8283 }
8284 } else {
8285 /* syntax/mmbuilder.nit:1097 */
8286 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra.me.REG[2])(fra.me.REG[2]);
8287 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8288 if (UNTAG_Bool(REGB0)) {
8289 } else {
8290 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8291 if (UNTAG_Bool(REGB1)) {
8292 REGB1 = TAG_Bool(false);
8293 REGB0 = REGB1;
8294 } else {
8295 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8296 REGB0 = REGB1;
8297 }
8298 }
8299 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8300 if (UNTAG_Bool(REGB0)) {
8301 /* syntax/mmbuilder.nit:1098 */
8302 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra.me.REG[2])(fra.me.REG[2]);
8303 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8304 if (UNTAG_Bool(REGB0)) {
8305 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1098);
8306 }
8307 fra.me.REG[4] = CALL_syntax___mmbuilder___AExpr___get_easy_stype(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
8308 fra.me.REG[1] = fra.me.REG[4];
8309 }
8310 }
8311 /* syntax/mmbuilder.nit:1101 */
8312 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8313 if (UNTAG_Bool(REGB0)) {
8314 } else {
8315 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8316 if (UNTAG_Bool(REGB1)) {
8317 REGB1 = TAG_Bool(false);
8318 REGB0 = REGB1;
8319 } else {
8320 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8321 REGB0 = REGB1;
8322 }
8323 }
8324 if (UNTAG_Bool(REGB0)) {
8325 /* syntax/mmbuilder.nit:1102 */
8326 REGB0 = TAG_Int(5);
8327 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
8328 if (!once_value_2) {
8329 fra.me.REG[5] = BOX_NativeString("Not yet implemented: Attribute definition ");
8330 REGB0 = TAG_Int(42);
8331 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
8332 once_value_2 = fra.me.REG[5];
8333 register_static_object(&once_value_2);
8334 } else fra.me.REG[5] = once_value_2;
8335 fra.me.REG[5] = fra.me.REG[5];
8336 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
8337 fra.me.REG[5] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
8338 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[5])(fra.me.REG[5]);
8339 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
8340 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
8341 if (!once_value_3) {
8342 fra.me.REG[5] = BOX_NativeString("::");
8343 REGB0 = TAG_Int(2);
8344 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
8345 once_value_3 = fra.me.REG[5];
8346 register_static_object(&once_value_3);
8347 } else fra.me.REG[5] = once_value_3;
8348 fra.me.REG[5] = fra.me.REG[5];
8349 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
8350 fra.me.REG[5] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
8351 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
8352 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
8353 if (!once_value_4) {
8354 fra.me.REG[5] = BOX_NativeString(" requires an explicit type.");
8355 REGB0 = TAG_Int(27);
8356 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
8357 once_value_4 = fra.me.REG[5];
8358 register_static_object(&once_value_4);
8359 } else fra.me.REG[5] = once_value_4;
8360 fra.me.REG[5] = fra.me.REG[5];
8361 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
8362 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
8363 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]);
8364 /* syntax/mmbuilder.nit:1103 */
8365 goto label1;
8366 }
8367 /* syntax/mmbuilder.nit:1106 */
8368 fra.me.REG[4] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
8369 /* syntax/mmbuilder.nit:1107 */
8370 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
8371 fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8372 fra.me.REG[6] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[6])(fra.me.REG[6]);
8373 fra.me.REG[6] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[5], fra.me.REG[1], fra.me.REG[6]);
8374 /* syntax/mmbuilder.nit:1108 */
8375 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
8376 /* syntax/mmbuilder.nit:1109 */
8377 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
8378 REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[5])(fra.me.REG[5]);
8379 /* syntax/mmbuilder.nit:1110 */
8380 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8381 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8382 if (UNTAG_Bool(REGB1)) {
8383 } else {
8384 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8385 if (UNTAG_Bool(REGB2)) {
8386 REGB2 = TAG_Bool(false);
8387 REGB1 = REGB2;
8388 } else {
8389 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
8390 REGB1 = REGB2;
8391 }
8392 }
8393 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8394 if (UNTAG_Bool(REGB1)) {
8395 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
8396 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8397 if (UNTAG_Bool(REGB1)) {
8398 } else {
8399 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8400 if (UNTAG_Bool(REGB2)) {
8401 REGB2 = TAG_Bool(false);
8402 REGB1 = REGB2;
8403 } else {
8404 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
8405 REGB1 = REGB2;
8406 }
8407 }
8408 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8409 } else {
8410 REGB2 = TAG_Bool(false);
8411 REGB1 = REGB2;
8412 }
8413 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);
8414 /* syntax/mmbuilder.nit:1111 */
8415 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
8416 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8417 if (UNTAG_Bool(REGB1)) {
8418 } else {
8419 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8420 if (UNTAG_Bool(REGB2)) {
8421 REGB2 = TAG_Bool(false);
8422 REGB1 = REGB2;
8423 } else {
8424 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8425 REGB1 = REGB2;
8426 }
8427 }
8428 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8429 if (UNTAG_Bool(REGB1)) {
8430 REGB1 = TAG_Bool(true);
8431 } else {
8432 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8433 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8434 if (UNTAG_Bool(REGB2)) {
8435 } else {
8436 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8437 if (UNTAG_Bool(REGB3)) {
8438 REGB3 = TAG_Bool(false);
8439 REGB2 = REGB3;
8440 } else {
8441 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8442 REGB2 = REGB3;
8443 }
8444 }
8445 REGB1 = REGB2;
8446 }
8447 if (UNTAG_Bool(REGB1)) {
8448 /* syntax/mmbuilder.nit:1112 */
8449 fra.me.REG[4] = ATTR_syntax___mmbuilder___AAttrPropdef____readmethod(fra.me.REG[2]);
8450 REGB1 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8451 if (UNTAG_Bool(REGB1)) {
8452 } else {
8453 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1112);
8454 }
8455 /* syntax/mmbuilder.nit:1113 */
8456 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
8457 /* syntax/mmbuilder.nit:1114 */
8458 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
8459 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8460 if (UNTAG_Bool(REGB1)) {
8461 } else {
8462 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8463 if (UNTAG_Bool(REGB2)) {
8464 REGB2 = TAG_Bool(false);
8465 REGB1 = REGB2;
8466 } else {
8467 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8468 REGB1 = REGB2;
8469 }
8470 }
8471 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8472 if (UNTAG_Bool(REGB1)) {
8473 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
8474 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8475 if (UNTAG_Bool(REGB1)) {
8476 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1114);
8477 }
8478 fra.me.REG[6] = CALL_parser___parser_nodes___AAble___n_kwredef(fra.me.REG[6])(fra.me.REG[6]);
8479 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8480 if (UNTAG_Bool(REGB1)) {
8481 } else {
8482 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8483 if (UNTAG_Bool(REGB2)) {
8484 REGB2 = TAG_Bool(false);
8485 REGB1 = REGB2;
8486 } else {
8487 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8488 REGB1 = REGB2;
8489 }
8490 }
8491 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8492 } else {
8493 REGB2 = TAG_Bool(false);
8494 REGB1 = REGB2;
8495 }
8496 if (UNTAG_Bool(REGB1)) {
8497 REGB1 = TAG_Bool(true);
8498 } else {
8499 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8500 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8501 if (UNTAG_Bool(REGB2)) {
8502 } else {
8503 REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8504 if (UNTAG_Bool(REGB3)) {
8505 REGB3 = TAG_Bool(false);
8506 REGB2 = REGB3;
8507 } else {
8508 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8509 REGB2 = REGB3;
8510 }
8511 }
8512 if (UNTAG_Bool(REGB2)) {
8513 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
8514 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8515 if (UNTAG_Bool(REGB2)) {
8516 } else {
8517 REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8518 if (UNTAG_Bool(REGB3)) {
8519 REGB3 = TAG_Bool(false);
8520 REGB2 = REGB3;
8521 } else {
8522 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8523 REGB2 = REGB3;
8524 }
8525 }
8526 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
8527 } else {
8528 REGB3 = TAG_Bool(false);
8529 REGB2 = REGB3;
8530 }
8531 REGB1 = REGB2;
8532 }
8533 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);
8534 /* syntax/mmbuilder.nit:1115 */
8535 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8536 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8537 if (UNTAG_Bool(REGB1)) {
8538 } else {
8539 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8540 if (UNTAG_Bool(REGB2)) {
8541 REGB2 = TAG_Bool(false);
8542 REGB1 = REGB2;
8543 } else {
8544 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8545 REGB1 = REGB2;
8546 }
8547 }
8548 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8549 if (UNTAG_Bool(REGB1)) {
8550 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8551 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8552 if (UNTAG_Bool(REGB1)) {
8553 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1115);
8554 }
8555 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3], fra.me.REG[4]);
8556 }
8557 }
8558 /* syntax/mmbuilder.nit:1117 */
8559 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8560 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8561 if (UNTAG_Bool(REGB1)) {
8562 } else {
8563 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8564 if (UNTAG_Bool(REGB2)) {
8565 REGB2 = TAG_Bool(false);
8566 REGB1 = REGB2;
8567 } else {
8568 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8569 REGB1 = REGB2;
8570 }
8571 }
8572 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8573 if (UNTAG_Bool(REGB1)) {
8574 REGB1 = TAG_Bool(true);
8575 } else {
8576 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8577 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8578 if (UNTAG_Bool(REGB2)) {
8579 } else {
8580 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8581 if (UNTAG_Bool(REGB3)) {
8582 REGB3 = TAG_Bool(false);
8583 REGB2 = REGB3;
8584 } else {
8585 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8586 REGB2 = REGB3;
8587 }
8588 }
8589 REGB1 = REGB2;
8590 }
8591 if (UNTAG_Bool(REGB1)) {
8592 /* syntax/mmbuilder.nit:1118 */
8593 fra.me.REG[4] = ATTR_syntax___mmbuilder___AAttrPropdef____writemethod(fra.me.REG[2]);
8594 REGB1 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8595 if (UNTAG_Bool(REGB1)) {
8596 } else {
8597 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1118);
8598 }
8599 /* syntax/mmbuilder.nit:1119 */
8600 REGB1 = TAG_Int(0);
8601 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8602 if (!once_value_5) {
8603 if (!once_value_6) {
8604 fra.me.REG[6] = BOX_NativeString("value");
8605 REGB1 = TAG_Int(5);
8606 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8607 once_value_6 = fra.me.REG[6];
8608 register_static_object(&once_value_6);
8609 } else fra.me.REG[6] = once_value_6;
8610 fra.me.REG[6] = fra.me.REG[6];
8611 fra.me.REG[6] = CALL_standard___symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8612 once_value_5 = fra.me.REG[6];
8613 register_static_object(&once_value_5);
8614 } else fra.me.REG[6] = once_value_5;
8615 fra.me.REG[6] = fra.me.REG[6];
8616 fra.me.REG[6] = NEW_MMParam_metamodel___static_type___MMParam___init(fra.me.REG[1], fra.me.REG[6]);
8617 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
8618 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_items(fra.me.REG[0]);
8619 fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8620 fra.me.REG[6] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[6])(fra.me.REG[6]);
8621 fra.me.REG[6] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[6]);
8622 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
8623 /* syntax/mmbuilder.nit:1121 */
8624 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8625 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8626 if (UNTAG_Bool(REGB1)) {
8627 } else {
8628 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8629 if (UNTAG_Bool(REGB2)) {
8630 REGB2 = TAG_Bool(false);
8631 REGB1 = REGB2;
8632 } else {
8633 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8634 REGB1 = REGB2;
8635 }
8636 }
8637 if (UNTAG_Bool(REGB1)) {
8638 /* syntax/mmbuilder.nit:1122 */
8639 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8640 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8641 if (UNTAG_Bool(REGB1)) {
8642 } else {
8643 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8644 if (UNTAG_Bool(REGB2)) {
8645 REGB2 = TAG_Bool(false);
8646 REGB1 = REGB2;
8647 } else {
8648 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8649 REGB1 = REGB2;
8650 }
8651 }
8652 if (UNTAG_Bool(REGB1)) {
8653 REGB1 = TAG_Int(3);
8654 REGB0 = REGB1;
8655 } else {
8656 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8657 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8658 if (UNTAG_Bool(REGB1)) {
8659 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1122);
8660 }
8661 fra.me.REG[6] = CALL_parser___parser_nodes___AAble___n_visibility(fra.me.REG[6])(fra.me.REG[6]);
8662 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8663 if (UNTAG_Bool(REGB1)) {
8664 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1122);
8665 }
8666 REGB1 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[6])(fra.me.REG[6]);
8667 REGB0 = REGB1;
8668 }
8669 }
8670 /* syntax/mmbuilder.nit:1124 */
8671 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8672 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8673 if (UNTAG_Bool(REGB1)) {
8674 } else {
8675 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8676 if (UNTAG_Bool(REGB2)) {
8677 REGB2 = TAG_Bool(false);
8678 REGB1 = REGB2;
8679 } else {
8680 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8681 REGB1 = REGB2;
8682 }
8683 }
8684 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8685 if (UNTAG_Bool(REGB1)) {
8686 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8687 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8688 if (UNTAG_Bool(REGB1)) {
8689 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1124);
8690 }
8691 fra.me.REG[6] = CALL_parser___parser_nodes___AAble___n_kwredef(fra.me.REG[6])(fra.me.REG[6]);
8692 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8693 if (UNTAG_Bool(REGB1)) {
8694 } else {
8695 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8696 if (UNTAG_Bool(REGB2)) {
8697 REGB2 = TAG_Bool(false);
8698 REGB1 = REGB2;
8699 } else {
8700 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8701 REGB1 = REGB2;
8702 }
8703 }
8704 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8705 } else {
8706 REGB2 = TAG_Bool(false);
8707 REGB1 = REGB2;
8708 }
8709 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);
8710 /* syntax/mmbuilder.nit:1125 */
8711 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8712 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8713 if (UNTAG_Bool(REGB0)) {
8714 } else {
8715 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8716 if (UNTAG_Bool(REGB1)) {
8717 REGB1 = TAG_Bool(false);
8718 REGB0 = REGB1;
8719 } else {
8720 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8721 REGB0 = REGB1;
8722 }
8723 }
8724 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8725 if (UNTAG_Bool(REGB0)) {
8726 fra.me.REG[2] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8727 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8728 if (UNTAG_Bool(REGB0)) {
8729 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1125);
8730 }
8731 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
8732 }
8733 }
8734 label1: while(0);
8735 stack_frame_head = fra.me.prev;
8736 return;
8737 }
8738 void syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
8739 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8740 val_t tmp;
8741 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8742 fra.me.file = LOCATE_syntax___mmbuilder;
8743 fra.me.line = 1129;
8744 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor;
8745 fra.me.has_broke = 0;
8746 fra.me.REG_size = 4;
8747 fra.me.nitni_local_ref_head = NULL;
8748 fra.me.REG[0] = NIT_NULL;
8749 fra.me.REG[1] = NIT_NULL;
8750 fra.me.REG[2] = NIT_NULL;
8751 fra.me.REG[3] = NIT_NULL;
8752 fra.me.REG[0] = p0;
8753 fra.me.REG[1] = p1;
8754 /* syntax/mmbuilder.nit:1129 */
8755 fra.me.REG[2] = fra.me.REG[0];
8756 fra.me.REG[3] = fra.me.REG[1];
8757 /* syntax/mmbuilder.nit:1131 */
8758 fra.me.REG[2] = ATTR_syntax___mmbuilder___AAttrPropdef____prop(fra.me.REG[2]);
8759 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
8760 /* syntax/mmbuilder.nit:1132 */
8761 CALL_SUPER_syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8762 /* syntax/mmbuilder.nit:1133 */
8763 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8764 stack_frame_head = fra.me.prev;
8765 return;
8766 }
8767 val_t syntax___mmbuilder___AMethPropdef___name(val_t p0){
8768 struct {struct stack_frame_t me;} fra;
8769 val_t tmp;
8770 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8771 fra.me.file = LOCATE_syntax___mmbuilder;
8772 fra.me.line = 1138;
8773 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___name;
8774 fra.me.has_broke = 0;
8775 fra.me.REG_size = 1;
8776 fra.me.nitni_local_ref_head = NULL;
8777 fra.me.REG[0] = NIT_NULL;
8778 fra.me.REG[0] = p0;
8779 /* syntax/mmbuilder.nit:1138 */
8780 fra.me.REG[0] = ATTR_syntax___mmbuilder___AMethPropdef____name(fra.me.REG[0]);
8781 stack_frame_head = fra.me.prev;
8782 return fra.me.REG[0];
8783 }
8784 val_t syntax___mmbuilder___AMethPropdef___method(val_t p0){
8785 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8786 val_t REGB0;
8787 val_t tmp;
8788 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8789 fra.me.file = LOCATE_syntax___mmbuilder;
8790 fra.me.line = 1142;
8791 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___method;
8792 fra.me.has_broke = 0;
8793 fra.me.REG_size = 2;
8794 fra.me.nitni_local_ref_head = NULL;
8795 fra.me.REG[0] = NIT_NULL;
8796 fra.me.REG[1] = NIT_NULL;
8797 fra.me.REG[0] = p0;
8798 /* syntax/mmbuilder.nit:1142 */
8799 fra.me.REG[1] = fra.me.REG[0];
8800 fra.me.REG[1] = ATTR_syntax___mmbuilder___AMethPropdef____method(fra.me.REG[1]);
8801 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
8802 if (UNTAG_Bool(REGB0)) {
8803 } else {
8804 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1142);
8805 }
8806 goto label1;
8807 label1: while(0);
8808 stack_frame_head = fra.me.prev;
8809 return fra.me.REG[1];
8810 }
8811 void syntax___mmbuilder___AMethPropdef___accept_property_builder(val_t p0, val_t p1){
8812 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
8813 val_t REGB0;
8814 val_t REGB1;
8815 val_t REGB2;
8816 val_t tmp;
8817 static val_t once_value_1; /* Once value */
8818 static val_t once_value_2; /* Once value */
8819 static val_t once_value_3; /* Once value */
8820 static val_t once_value_4; /* Once value */
8821 static val_t once_value_5; /* Once value */
8822 static val_t once_value_6; /* Once value */
8823 static val_t once_value_7; /* Once value */
8824 static val_t once_value_8; /* Once value */
8825 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8826 fra.me.file = LOCATE_syntax___mmbuilder;
8827 fra.me.line = 1144;
8828 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___accept_property_builder;
8829 fra.me.has_broke = 0;
8830 fra.me.REG_size = 5;
8831 fra.me.nitni_local_ref_head = NULL;
8832 fra.me.REG[0] = NIT_NULL;
8833 fra.me.REG[1] = NIT_NULL;
8834 fra.me.REG[2] = NIT_NULL;
8835 fra.me.REG[3] = NIT_NULL;
8836 fra.me.REG[4] = NIT_NULL;
8837 fra.me.REG[0] = p0;
8838 fra.me.REG[1] = p1;
8839 /* syntax/mmbuilder.nit:1144 */
8840 fra.me.REG[2] = fra.me.REG[0];
8841 fra.me.REG[3] = fra.me.REG[1];
8842 /* syntax/mmbuilder.nit:1146 */
8843 CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8844 /* syntax/mmbuilder.nit:1148 */
8845 fra.me.REG[1] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
8846 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8847 if (UNTAG_Bool(REGB0)) {
8848 } else {
8849 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8850 if (UNTAG_Bool(REGB1)) {
8851 REGB1 = TAG_Bool(false);
8852 REGB0 = REGB1;
8853 } else {
8854 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8855 REGB0 = REGB1;
8856 }
8857 }
8858 if (UNTAG_Bool(REGB0)) {
8859 /* syntax/mmbuilder.nit:1149 */
8860 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AInitPropdef, ID_parser___parser_nodes___AInitPropdef)) /*cast AInitPropdef*/;
8861 if (UNTAG_Bool(REGB0)) {
8862 /* syntax/mmbuilder.nit:1150 */
8863 if (!once_value_1) {
8864 if (!once_value_2) {
8865 fra.me.REG[1] = BOX_NativeString("init");
8866 REGB0 = TAG_Int(4);
8867 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
8868 once_value_2 = fra.me.REG[1];
8869 register_static_object(&once_value_2);
8870 } else fra.me.REG[1] = once_value_2;
8871 fra.me.REG[1] = fra.me.REG[1];
8872 fra.me.REG[1] = CALL_standard___symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
8873 once_value_1 = fra.me.REG[1];
8874 register_static_object(&once_value_1);
8875 } else fra.me.REG[1] = once_value_1;
8876 fra.me.REG[1] = fra.me.REG[1];
8877 } else {
8878 /* syntax/mmbuilder.nit:1152 */
8879 if (!once_value_3) {
8880 if (!once_value_4) {
8881 fra.me.REG[4] = BOX_NativeString("main");
8882 REGB0 = TAG_Int(4);
8883 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
8884 once_value_4 = fra.me.REG[4];
8885 register_static_object(&once_value_4);
8886 } else fra.me.REG[4] = once_value_4;
8887 fra.me.REG[4] = fra.me.REG[4];
8888 fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
8889 once_value_3 = fra.me.REG[4];
8890 register_static_object(&once_value_3);
8891 } else fra.me.REG[4] = once_value_3;
8892 fra.me.REG[4] = fra.me.REG[4];
8893 fra.me.REG[1] = fra.me.REG[4];
8894 }
8895 } else {
8896 /* syntax/mmbuilder.nit:1155 */
8897 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
8898 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8899 if (UNTAG_Bool(REGB0)) {
8900 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1155);
8901 }
8902 fra.me.REG[4] = CALL_syntax___syntax_base___AMethid___name(fra.me.REG[4])(fra.me.REG[4]);
8903 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8904 if (UNTAG_Bool(REGB0)) {
8905 } else {
8906 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1155);
8907 }
8908 fra.me.REG[1] = fra.me.REG[4];
8909 /* syntax/mmbuilder.nit:1157 */
8910 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
8911 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8912 if (UNTAG_Bool(REGB0)) {
8913 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1157);
8914 }
8915 fra.me.REG[4] = CALL_syntax___syntax_base___AMethid___name(fra.me.REG[4])(fra.me.REG[4]);
8916 if (!once_value_5) {
8917 if (!once_value_6) {
8918 fra.me.REG[0] = BOX_NativeString("-");
8919 REGB0 = TAG_Int(1);
8920 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
8921 once_value_6 = fra.me.REG[0];
8922 register_static_object(&once_value_6);
8923 } else fra.me.REG[0] = once_value_6;
8924 fra.me.REG[0] = fra.me.REG[0];
8925 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
8926 once_value_5 = fra.me.REG[0];
8927 register_static_object(&once_value_5);
8928 } else fra.me.REG[0] = once_value_5;
8929 fra.me.REG[0] = fra.me.REG[0];
8930 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[0],fra.me.REG[4]));
8931 if (UNTAG_Bool(REGB0)) {
8932 } else {
8933 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8934 if (UNTAG_Bool(REGB1)) {
8935 REGB1 = TAG_Bool(false);
8936 REGB0 = REGB1;
8937 } else {
8938 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
8939 REGB0 = REGB1;
8940 }
8941 }
8942 if (UNTAG_Bool(REGB0)) {
8943 /* syntax/mmbuilder.nit:1158 */
8944 fra.me.REG[0] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
8945 /* syntax/mmbuilder.nit:1159 */
8946 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8947 if (UNTAG_Bool(REGB0)) {
8948 } else {
8949 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8950 if (UNTAG_Bool(REGB1)) {
8951 REGB1 = TAG_Bool(false);
8952 REGB0 = REGB1;
8953 } else {
8954 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8955 REGB0 = REGB1;
8956 }
8957 }
8958 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8959 if (UNTAG_Bool(REGB0)) {
8960 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8961 if (UNTAG_Bool(REGB0)) {
8962 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1159);
8963 }
8964 fra.me.REG[0] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[0])(fra.me.REG[0]);
8965 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
8966 REGB1 = TAG_Int(0);
8967 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
8968 if (UNTAG_Bool(REGB2)) {
8969 } else {
8970 /* ../lib/standard/kernel.nit:227 */
8971 REGB1 = TAG_Bool((REGB0)==(REGB1));
8972 /* syntax/mmbuilder.nit:1159 */
8973 REGB2 = REGB1;
8974 }
8975 } else {
8976 REGB1 = TAG_Bool(false);
8977 REGB2 = REGB1;
8978 }
8979 if (UNTAG_Bool(REGB2)) {
8980 /* syntax/mmbuilder.nit:1160 */
8981 if (!once_value_7) {
8982 if (!once_value_8) {
8983 fra.me.REG[0] = BOX_NativeString("unary -");
8984 REGB2 = TAG_Int(7);
8985 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB2);
8986 once_value_8 = fra.me.REG[0];
8987 register_static_object(&once_value_8);
8988 } else fra.me.REG[0] = once_value_8;
8989 fra.me.REG[0] = fra.me.REG[0];
8990 fra.me.REG[0] = CALL_standard___symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
8991 once_value_7 = fra.me.REG[0];
8992 register_static_object(&once_value_7);
8993 } else fra.me.REG[0] = once_value_7;
8994 fra.me.REG[0] = fra.me.REG[0];
8995 fra.me.REG[1] = fra.me.REG[0];
8996 }
8997 }
8998 }
8999 /* syntax/mmbuilder.nit:1164 */
9000 ATTR_syntax___mmbuilder___AMethPropdef____name(fra.me.REG[2]) = fra.me.REG[1];
9001 /* syntax/mmbuilder.nit:1165 */
9002 fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9003 fra.me.REG[0] = NEW_MMMethSrcMethod_syntax___syntax_base___MMMethSrcMethod___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
9004 /* syntax/mmbuilder.nit:1166 */
9005 ATTR_syntax___mmbuilder___AMethPropdef____method(fra.me.REG[2]) = fra.me.REG[0];
9006 /* syntax/mmbuilder.nit:1167 */
9007 fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9008 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0]);
9009 stack_frame_head = fra.me.prev;
9010 return;
9011 }
9012 void syntax___mmbuilder___AMethPropdef___accept_property_verifier(val_t p0, val_t p1){
9013 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
9014 val_t REGB0;
9015 val_t REGB1;
9016 val_t REGB2;
9017 val_t REGB3;
9018 val_t tmp;
9019 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9020 fra.me.file = LOCATE_syntax___mmbuilder;
9021 fra.me.line = 1170;
9022 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___accept_property_verifier;
9023 fra.me.has_broke = 0;
9024 fra.me.REG_size = 5;
9025 fra.me.nitni_local_ref_head = NULL;
9026 fra.me.REG[0] = NIT_NULL;
9027 fra.me.REG[1] = NIT_NULL;
9028 fra.me.REG[2] = NIT_NULL;
9029 fra.me.REG[3] = NIT_NULL;
9030 fra.me.REG[4] = NIT_NULL;
9031 fra.me.REG[0] = p0;
9032 fra.me.REG[1] = p1;
9033 /* syntax/mmbuilder.nit:1170 */
9034 fra.me.REG[2] = fra.me.REG[0];
9035 fra.me.REG[3] = fra.me.REG[1];
9036 /* syntax/mmbuilder.nit:1172 */
9037 fra.me.REG[4] = NEW_SignatureBuilder_syntax___mmbuilder___SignatureBuilder___init();
9038 CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
9039 /* syntax/mmbuilder.nit:1173 */
9040 CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9041 /* syntax/mmbuilder.nit:1175 */
9042 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9043 REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
9044 if (UNTAG_Bool(REGB0)) {
9045 goto label1;
9046 }
9047 /* syntax/mmbuilder.nit:1177 */
9048 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9049 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
9050 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9051 if (UNTAG_Bool(REGB0)) {
9052 } else {
9053 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9054 if (UNTAG_Bool(REGB1)) {
9055 REGB1 = TAG_Bool(false);
9056 REGB0 = REGB1;
9057 } else {
9058 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9059 REGB0 = REGB1;
9060 }
9061 }
9062 if (UNTAG_Bool(REGB0)) {
9063 } else {
9064 /* syntax/mmbuilder.nit:1180 */
9065 fra.me.REG[1] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
9066 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9067 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[4])(fra.me.REG[4]);
9068 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
9069 if (UNTAG_Bool(REGB0)) {
9070 } else {
9071 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1180);
9072 }
9073 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
9074 }
9075 /* syntax/mmbuilder.nit:1182 */
9076 REGB0 = TAG_Int(1);
9077 /* syntax/mmbuilder.nit:1183 */
9078 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
9079 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9080 if (UNTAG_Bool(REGB1)) {
9081 } else {
9082 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9083 if (UNTAG_Bool(REGB2)) {
9084 REGB2 = TAG_Bool(false);
9085 REGB1 = REGB2;
9086 } else {
9087 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
9088 REGB1 = REGB2;
9089 }
9090 }
9091 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
9092 if (UNTAG_Bool(REGB1)) {
9093 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
9094 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9095 if (UNTAG_Bool(REGB1)) {
9096 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1183);
9097 }
9098 REGB1 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
9099 REGB2 = TAG_Int(1);
9100 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9101 if (UNTAG_Bool(REGB3)) {
9102 } else {
9103 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9104 }
9105 /* ../lib/standard/kernel.nit:234 */
9106 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
9107 } else {
9108 /* syntax/mmbuilder.nit:1183 */
9109 REGB1 = TAG_Bool(false);
9110 REGB2 = REGB1;
9111 }
9112 if (UNTAG_Bool(REGB2)) {
9113 /* syntax/mmbuilder.nit:1184 */
9114 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
9115 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9116 if (UNTAG_Bool(REGB2)) {
9117 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1184);
9118 }
9119 REGB2 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
9120 REGB0 = REGB2;
9121 }
9122 /* syntax/mmbuilder.nit:1186 */
9123 fra.me.REG[4] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
9124 fra.me.REG[1] = CALL_parser___parser_nodes___AMethPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
9125 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9126 if (UNTAG_Bool(REGB2)) {
9127 } else {
9128 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9129 if (UNTAG_Bool(REGB1)) {
9130 REGB1 = TAG_Bool(false);
9131 REGB2 = REGB1;
9132 } else {
9133 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9134 REGB2 = REGB1;
9135 }
9136 }
9137 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
9138 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);
9139 /* syntax/mmbuilder.nit:1187 */
9140 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
9141 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9142 if (UNTAG_Bool(REGB0)) {
9143 } else {
9144 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9145 if (UNTAG_Bool(REGB2)) {
9146 REGB2 = TAG_Bool(false);
9147 REGB0 = REGB2;
9148 } else {
9149 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
9150 REGB0 = REGB2;
9151 }
9152 }
9153 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9154 if (UNTAG_Bool(REGB0)) {
9155 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
9156 fra.me.REG[2] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
9157 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9158 if (UNTAG_Bool(REGB0)) {
9159 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1187);
9160 }
9161 CALL_syntax___mmbuilder___ASignature___check_visibility(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3], fra.me.REG[2]);
9162 }
9163 label1: while(0);
9164 stack_frame_head = fra.me.prev;
9165 return;
9166 }
9167 void syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
9168 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9169 val_t tmp;
9170 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9171 fra.me.file = LOCATE_syntax___mmbuilder;
9172 fra.me.line = 1190;
9173 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor;
9174 fra.me.has_broke = 0;
9175 fra.me.REG_size = 4;
9176 fra.me.nitni_local_ref_head = NULL;
9177 fra.me.REG[0] = NIT_NULL;
9178 fra.me.REG[1] = NIT_NULL;
9179 fra.me.REG[2] = NIT_NULL;
9180 fra.me.REG[3] = NIT_NULL;
9181 fra.me.REG[0] = p0;
9182 fra.me.REG[1] = p1;
9183 /* syntax/mmbuilder.nit:1190 */
9184 fra.me.REG[2] = fra.me.REG[0];
9185 fra.me.REG[3] = fra.me.REG[1];
9186 /* syntax/mmbuilder.nit:1192 */
9187 fra.me.REG[2] = ATTR_syntax___mmbuilder___AMethPropdef____method(fra.me.REG[2]);
9188 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
9189 /* syntax/mmbuilder.nit:1193 */
9190 CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9191 /* syntax/mmbuilder.nit:1194 */
9192 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9193 stack_frame_head = fra.me.prev;
9194 return;
9195 }
9196 void syntax___mmbuilder___AMainMethPropdef___process_and_check(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
9197 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
9198 val_t REGB0;
9199 val_t REGB1;
9200 val_t tmp;
9201 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9202 fra.me.file = LOCATE_syntax___mmbuilder;
9203 fra.me.line = 1199;
9204 fra.me.meth = LOCATE_syntax___mmbuilder___AMainMethPropdef___process_and_check;
9205 fra.me.has_broke = 0;
9206 fra.me.REG_size = 3;
9207 fra.me.nitni_local_ref_head = NULL;
9208 fra.me.REG[0] = NIT_NULL;
9209 fra.me.REG[1] = NIT_NULL;
9210 fra.me.REG[2] = NIT_NULL;
9211 fra.me.REG[0] = p0;
9212 fra.me.REG[1] = p1;
9213 fra.me.REG[2] = p2;
9214 REGB0 = p3;
9215 REGB1 = p4;
9216 /* syntax/mmbuilder.nit:1201 */
9217 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
9218 CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[0])(fra.me.REG[0], REGB1);
9219 /* syntax/mmbuilder.nit:1202 */
9220 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
9221 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
9222 fra.me.REG[1] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
9223 fra.me.REG[1] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[1]);
9224 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
9225 stack_frame_head = fra.me.prev;
9226 return;
9227 }
9228 void syntax___mmbuilder___AExternPropdef___accept_property_verifier(val_t p0, val_t p1){
9229 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
9230 val_t REGB0;
9231 val_t REGB1;
9232 val_t REGB2;
9233 val_t tmp;
9234 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9235 fra.me.file = LOCATE_syntax___mmbuilder;
9236 fra.me.line = 1208;
9237 fra.me.meth = LOCATE_syntax___mmbuilder___AExternPropdef___accept_property_verifier;
9238 fra.me.has_broke = 0;
9239 fra.me.REG_size = 3;
9240 fra.me.nitni_local_ref_head = NULL;
9241 fra.me.REG[0] = NIT_NULL;
9242 fra.me.REG[1] = NIT_NULL;
9243 fra.me.REG[2] = NIT_NULL;
9244 fra.me.REG[0] = p0;
9245 fra.me.REG[1] = p1;
9246 /* syntax/mmbuilder.nit:1208 */
9247 fra.me.REG[2] = fra.me.REG[0];
9248 /* syntax/mmbuilder.nit:1210 */
9249 CALL_SUPER_syntax___mmbuilder___AExternPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9250 /* syntax/mmbuilder.nit:1212 */
9251 fra.me.REG[1] = CALL_parser___parser_nodes___AExternPropdef___n_extern(fra.me.REG[2])(fra.me.REG[2]);
9252 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9253 if (UNTAG_Bool(REGB0)) {
9254 } else {
9255 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9256 if (UNTAG_Bool(REGB1)) {
9257 REGB1 = TAG_Bool(false);
9258 REGB0 = REGB1;
9259 } else {
9260 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9261 REGB0 = REGB1;
9262 }
9263 }
9264 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9265 if (UNTAG_Bool(REGB0)) {
9266 /* syntax/mmbuilder.nit:1213 */
9267 fra.me.REG[1] = CALL_parser___parser_nodes___AExternPropdef___n_extern(fra.me.REG[2])(fra.me.REG[2]);
9268 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9269 if (UNTAG_Bool(REGB0)) {
9270 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1213);
9271 }
9272 fra.me.REG[1] = CALL_parser___parser_nodes___Token___text(fra.me.REG[1])(fra.me.REG[1]);
9273 /* syntax/mmbuilder.nit:1214 */
9274 REGB0 = TAG_Int(1);
9275 /* ../lib/standard/collection/array.nit:24 */
9276 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
9277 if (UNTAG_Bool(REGB1)) {
9278 } else {
9279 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
9280 }
9281 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
9282 /* syntax/mmbuilder.nit:1214 */
9283 REGB2 = TAG_Int(2);
9284 /* ../lib/standard/kernel.nit:237 */
9285 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
9286 /* syntax/mmbuilder.nit:1214 */
9287 fra.me.REG[0] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB0, REGB2);
9288 fra.me.REG[1] = fra.me.REG[0];
9289 } else {
9290 /* syntax/mmbuilder.nit:1216 */
9291 fra.me.REG[0] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
9292 fra.me.REG[0] = CALL_primitive_info___MMMethod___default_extern_name(fra.me.REG[0])(fra.me.REG[0]);
9293 fra.me.REG[1] = fra.me.REG[0];
9294 }
9295 /* syntax/mmbuilder.nit:1218 */
9296 fra.me.REG[2] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
9297 CALL_syntax___syntax_base___MMMethSrcMethod___extern_name__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
9298 stack_frame_head = fra.me.prev;
9299 return;
9300 }
9301 val_t syntax___mmbuilder___ATypePropdef___prop(val_t p0){
9302 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9303 val_t REGB0;
9304 val_t tmp;
9305 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9306 fra.me.file = LOCATE_syntax___mmbuilder;
9307 fra.me.line = 1223;
9308 fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___prop;
9309 fra.me.has_broke = 0;
9310 fra.me.REG_size = 2;
9311 fra.me.nitni_local_ref_head = NULL;
9312 fra.me.REG[0] = NIT_NULL;
9313 fra.me.REG[1] = NIT_NULL;
9314 fra.me.REG[0] = p0;
9315 /* syntax/mmbuilder.nit:1223 */
9316 fra.me.REG[1] = fra.me.REG[0];
9317 fra.me.REG[1] = ATTR_syntax___mmbuilder___ATypePropdef____prop(fra.me.REG[1]);
9318 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
9319 if (UNTAG_Bool(REGB0)) {
9320 } else {
9321 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1223);
9322 }
9323 goto label1;
9324 label1: while(0);
9325 stack_frame_head = fra.me.prev;
9326 return fra.me.REG[1];
9327 }
9328 void syntax___mmbuilder___ATypePropdef___accept_property_builder(val_t p0, val_t p1){
9329 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9330 val_t tmp;
9331 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9332 fra.me.file = LOCATE_syntax___mmbuilder;
9333 fra.me.line = 1226;
9334 fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___accept_property_builder;
9335 fra.me.has_broke = 0;
9336 fra.me.REG_size = 4;
9337 fra.me.nitni_local_ref_head = NULL;
9338 fra.me.REG[0] = NIT_NULL;
9339 fra.me.REG[1] = NIT_NULL;
9340 fra.me.REG[2] = NIT_NULL;
9341 fra.me.REG[3] = NIT_NULL;
9342 fra.me.REG[0] = p0;
9343 fra.me.REG[1] = p1;
9344 /* syntax/mmbuilder.nit:1226 */
9345 fra.me.REG[2] = fra.me.REG[0];
9346 fra.me.REG[3] = fra.me.REG[1];
9347 /* syntax/mmbuilder.nit:1228 */
9348 CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9349 /* syntax/mmbuilder.nit:1229 */
9350 fra.me.REG[1] = CALL_parser___parser_nodes___ATypePropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
9351 fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
9352 /* syntax/mmbuilder.nit:1230 */
9353 fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9354 fra.me.REG[0] = NEW_MMSrcTypeProperty_syntax___syntax_base___MMSrcTypeProperty___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
9355 /* syntax/mmbuilder.nit:1231 */
9356 ATTR_syntax___mmbuilder___ATypePropdef____prop(fra.me.REG[2]) = fra.me.REG[0];
9357 /* syntax/mmbuilder.nit:1232 */
9358 fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9359 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0]);
9360 stack_frame_head = fra.me.prev;
9361 return;
9362 }
9363 void syntax___mmbuilder___ATypePropdef___accept_property_verifier(val_t p0, val_t p1){
9364 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
9365 val_t REGB0;
9366 val_t REGB1;
9367 val_t REGB2;
9368 val_t tmp;
9369 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9370 fra.me.file = LOCATE_syntax___mmbuilder;
9371 fra.me.line = 1235;
9372 fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___accept_property_verifier;
9373 fra.me.has_broke = 0;
9374 fra.me.REG_size = 5;
9375 fra.me.nitni_local_ref_head = NULL;
9376 fra.me.REG[0] = NIT_NULL;
9377 fra.me.REG[1] = NIT_NULL;
9378 fra.me.REG[2] = NIT_NULL;
9379 fra.me.REG[3] = NIT_NULL;
9380 fra.me.REG[4] = NIT_NULL;
9381 fra.me.REG[0] = p0;
9382 fra.me.REG[1] = p1;
9383 /* syntax/mmbuilder.nit:1235 */
9384 fra.me.REG[2] = fra.me.REG[0];
9385 fra.me.REG[3] = fra.me.REG[1];
9386 /* syntax/mmbuilder.nit:1237 */
9387 CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9388 /* syntax/mmbuilder.nit:1238 */
9389 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
9390 fra.me.REG[0] = CALL_parser___parser_nodes___ATypePropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
9391 fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
9392 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9393 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
9394 fra.me.REG[4] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
9395 /* syntax/mmbuilder.nit:1239 */
9396 fra.me.REG[0] = CALL_syntax___syntax_base___ATypePropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
9397 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
9398 /* syntax/mmbuilder.nit:1240 */
9399 fra.me.REG[4] = CALL_parser___parser_nodes___ATypePropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
9400 REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
9401 /* syntax/mmbuilder.nit:1241 */
9402 fra.me.REG[4] = CALL_syntax___syntax_base___ATypePropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
9403 fra.me.REG[0] = CALL_parser___parser_nodes___ATypePropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
9404 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9405 if (UNTAG_Bool(REGB1)) {
9406 } else {
9407 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9408 if (UNTAG_Bool(REGB2)) {
9409 REGB2 = TAG_Bool(false);
9410 REGB1 = REGB2;
9411 } else {
9412 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
9413 REGB1 = REGB2;
9414 }
9415 }
9416 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
9417 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);
9418 stack_frame_head = fra.me.prev;
9419 return;
9420 }
9421 void syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
9422 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9423 val_t tmp;
9424 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9425 fra.me.file = LOCATE_syntax___mmbuilder;
9426 fra.me.line = 1244;
9427 fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor;
9428 fra.me.has_broke = 0;
9429 fra.me.REG_size = 4;
9430 fra.me.nitni_local_ref_head = NULL;
9431 fra.me.REG[0] = NIT_NULL;
9432 fra.me.REG[1] = NIT_NULL;
9433 fra.me.REG[2] = NIT_NULL;
9434 fra.me.REG[3] = NIT_NULL;
9435 fra.me.REG[0] = p0;
9436 fra.me.REG[1] = p1;
9437 /* syntax/mmbuilder.nit:1244 */
9438 fra.me.REG[2] = fra.me.REG[0];
9439 fra.me.REG[3] = fra.me.REG[1];
9440 /* syntax/mmbuilder.nit:1246 */
9441 fra.me.REG[2] = ATTR_syntax___mmbuilder___ATypePropdef____prop(fra.me.REG[2]);
9442 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
9443 /* syntax/mmbuilder.nit:1247 */
9444 CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9445 /* syntax/mmbuilder.nit:1248 */
9446 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9447 stack_frame_head = fra.me.prev;
9448 return;
9449 }
9450 val_t syntax___mmbuilder___MethidAccumulator___name(val_t p0){
9451 struct {struct stack_frame_t me;} fra;
9452 val_t REGB0;
9453 val_t tmp;
9454 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9455 fra.me.file = LOCATE_syntax___mmbuilder;
9456 fra.me.line = 1255;
9457 fra.me.meth = LOCATE_syntax___mmbuilder___MethidAccumulator___name;
9458 fra.me.has_broke = 0;
9459 fra.me.REG_size = 1;
9460 fra.me.nitni_local_ref_head = NULL;
9461 fra.me.REG[0] = NIT_NULL;
9462 fra.me.REG[0] = p0;
9463 /* syntax/mmbuilder.nit:1255 */
9464 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL);
9465 if (UNTAG_Bool(REGB0)) {
9466 } else {
9467 nit_abort("Uninitialized attribute %s", "_name", LOCATE_syntax___mmbuilder, 1255);
9468 }
9469 fra.me.REG[0] = ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0]);
9470 stack_frame_head = fra.me.prev;
9471 return fra.me.REG[0];
9472 }
9473 void syntax___mmbuilder___MethidAccumulator___visit(val_t p0, val_t p1){
9474 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9475 val_t REGB0;
9476 val_t tmp;
9477 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9478 fra.me.file = LOCATE_syntax___mmbuilder;
9479 fra.me.line = 1256;
9480 fra.me.meth = LOCATE_syntax___mmbuilder___MethidAccumulator___visit;
9481 fra.me.has_broke = 0;
9482 fra.me.REG_size = 4;
9483 fra.me.nitni_local_ref_head = NULL;
9484 fra.me.REG[0] = NIT_NULL;
9485 fra.me.REG[1] = NIT_NULL;
9486 fra.me.REG[2] = NIT_NULL;
9487 fra.me.REG[3] = NIT_NULL;
9488 fra.me.REG[0] = p0;
9489 fra.me.REG[1] = p1;
9490 /* syntax/mmbuilder.nit:1258 */
9491 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*/;
9492 if (UNTAG_Bool(REGB0)) {
9493 /* syntax/mmbuilder.nit:1259 */
9494 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL);
9495 if (UNTAG_Bool(REGB0)) {
9496 } else {
9497 nit_abort("Uninitialized attribute %s", "_name", LOCATE_syntax___mmbuilder, 1259);
9498 }
9499 fra.me.REG[2] = ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0]);
9500 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9501 if (UNTAG_Bool(REGB0)) {
9502 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1259);
9503 }
9504 fra.me.REG[3] = CALL_parser___parser_nodes___Token___text(fra.me.REG[1])(fra.me.REG[1]);
9505 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
9506 } else {
9507 /* syntax/mmbuilder.nit:1261 */
9508 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9509 if (UNTAG_Bool(REGB0)) {
9510 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1261);
9511 }
9512 CALL_parser___parser_prod___ANode___visit_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
9513 }
9514 stack_frame_head = fra.me.prev;
9515 return;
9516 }
9517 val_t syntax___mmbuilder___AMethid___name(val_t p0){
9518 struct {struct stack_frame_t me;} fra;
9519 val_t tmp;
9520 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9521 fra.me.file = LOCATE_syntax___mmbuilder;
9522 fra.me.line = 1267;
9523 fra.me.meth = LOCATE_syntax___mmbuilder___AMethid___name;
9524 fra.me.has_broke = 0;
9525 fra.me.REG_size = 1;
9526 fra.me.nitni_local_ref_head = NULL;
9527 fra.me.REG[0] = NIT_NULL;
9528 fra.me.REG[0] = p0;
9529 /* syntax/mmbuilder.nit:1267 */
9530 fra.me.REG[0] = ATTR_syntax___mmbuilder___AMethid____name(fra.me.REG[0]);
9531 stack_frame_head = fra.me.prev;
9532 return fra.me.REG[0];
9533 }
9534 void syntax___mmbuilder___AMethid___accept_property_builder(val_t p0, val_t p1){
9535 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9536 val_t tmp;
9537 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9538 fra.me.file = LOCATE_syntax___mmbuilder;
9539 fra.me.line = 1269;
9540 fra.me.meth = LOCATE_syntax___mmbuilder___AMethid___accept_property_builder;
9541 fra.me.has_broke = 0;
9542 fra.me.REG_size = 4;
9543 fra.me.nitni_local_ref_head = NULL;
9544 fra.me.REG[0] = NIT_NULL;
9545 fra.me.REG[1] = NIT_NULL;
9546 fra.me.REG[2] = NIT_NULL;
9547 fra.me.REG[3] = NIT_NULL;
9548 fra.me.REG[0] = p0;
9549 fra.me.REG[1] = p1;
9550 /* syntax/mmbuilder.nit:1269 */
9551 fra.me.REG[2] = fra.me.REG[0];
9552 /* syntax/mmbuilder.nit:1271 */
9553 fra.me.REG[3] = NEW_MethidAccumulator_parser___parser_prod___Visitor___init();
9554 /* syntax/mmbuilder.nit:1272 */
9555 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
9556 /* syntax/mmbuilder.nit:1273 */
9557 fra.me.REG[3] = CALL_syntax___mmbuilder___MethidAccumulator___name(fra.me.REG[3])(fra.me.REG[3]);
9558 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
9559 fra.me.REG[3] = CALL_standard___symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
9560 ATTR_syntax___mmbuilder___AMethid____name(fra.me.REG[2]) = fra.me.REG[3];
9561 /* syntax/mmbuilder.nit:1274 */
9562 CALL_SUPER_syntax___mmbuilder___AMethid___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9563 stack_frame_head = fra.me.prev;
9564 return;
9565 }
9566 void syntax___mmbuilder___ASignature___accept_property_verifier(val_t p0, val_t p1){
9567 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
9568 val_t REGB0;
9569 val_t REGB1;
9570 val_t REGB2;
9571 val_t tmp;
9572 static val_t once_value_2; /* Once value */
9573 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9574 fra.me.file = LOCATE_syntax___mmbuilder;
9575 fra.me.line = 1279;
9576 fra.me.meth = LOCATE_syntax___mmbuilder___ASignature___accept_property_verifier;
9577 fra.me.has_broke = 0;
9578 fra.me.REG_size = 8;
9579 fra.me.nitni_local_ref_head = NULL;
9580 fra.me.REG[0] = NIT_NULL;
9581 fra.me.REG[1] = NIT_NULL;
9582 fra.me.REG[2] = NIT_NULL;
9583 fra.me.REG[3] = NIT_NULL;
9584 fra.me.REG[4] = NIT_NULL;
9585 fra.me.REG[5] = NIT_NULL;
9586 fra.me.REG[6] = NIT_NULL;
9587 fra.me.REG[7] = NIT_NULL;
9588 fra.me.REG[0] = p0;
9589 fra.me.REG[1] = p1;
9590 /* syntax/mmbuilder.nit:1279 */
9591 fra.me.REG[2] = fra.me.REG[0];
9592 fra.me.REG[3] = fra.me.REG[1];
9593 /* syntax/mmbuilder.nit:1281 */
9594 CALL_SUPER_syntax___mmbuilder___ASignature___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9595 /* syntax/mmbuilder.nit:1282 */
9596 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9597 REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
9598 if (UNTAG_Bool(REGB0)) {
9599 /* syntax/mmbuilder.nit:1283 */
9600 goto label1;
9601 } else {
9602 /* syntax/mmbuilder.nit:1284 */
9603 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9604 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
9605 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
9606 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9607 if (UNTAG_Bool(REGB0)) {
9608 /* syntax/mmbuilder.nit:1285 */
9609 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9610 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
9611 fra.me.REG[1] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[1])(fra.me.REG[1]);
9612 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9613 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[4])(fra.me.REG[4]);
9614 fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
9615 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[1],fra.me.REG[4]));
9616 if (UNTAG_Bool(REGB0)) {
9617 } else {
9618 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9619 if (UNTAG_Bool(REGB1)) {
9620 REGB1 = TAG_Bool(false);
9621 REGB0 = REGB1;
9622 } else {
9623 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
9624 REGB0 = REGB1;
9625 }
9626 }
9627 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9628 if (UNTAG_Bool(REGB0)) {
9629 REGB0 = TAG_Bool(true);
9630 } else {
9631 fra.me.REG[4] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
9632 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9633 if (UNTAG_Bool(REGB1)) {
9634 } else {
9635 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9636 if (UNTAG_Bool(REGB2)) {
9637 REGB2 = TAG_Bool(false);
9638 REGB1 = REGB2;
9639 } else {
9640 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
9641 REGB1 = REGB2;
9642 }
9643 }
9644 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
9645 REGB0 = REGB1;
9646 }
9647 if (UNTAG_Bool(REGB0)) {
9648 /* syntax/mmbuilder.nit:1286 */
9649 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9650 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
9651 fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
9652 if (!once_value_2) {
9653 fra.me.REG[1] = BOX_NativeString("Syntax error: untyped parameter.");
9654 REGB0 = TAG_Int(32);
9655 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
9656 once_value_2 = fra.me.REG[1];
9657 register_static_object(&once_value_2);
9658 } else fra.me.REG[1] = once_value_2;
9659 fra.me.REG[1] = fra.me.REG[1];
9660 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[1]);
9661 /* syntax/mmbuilder.nit:1287 */
9662 goto label1;
9663 }
9664 } else {
9665 /* syntax/mmbuilder.nit:1289 */
9666 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9667 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[1])(fra.me.REG[1]);
9668 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
9669 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9670 if (UNTAG_Bool(REGB0)) {
9671 REGB0 = TAG_Bool(true);
9672 } else {
9673 fra.me.REG[1] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
9674 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9675 if (UNTAG_Bool(REGB1)) {
9676 } else {
9677 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9678 if (UNTAG_Bool(REGB2)) {
9679 REGB2 = TAG_Bool(false);
9680 REGB1 = REGB2;
9681 } else {
9682 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9683 REGB1 = REGB2;
9684 }
9685 }
9686 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
9687 REGB0 = REGB1;
9688 }
9689 if (UNTAG_Bool(REGB0)) {
9690 /* syntax/mmbuilder.nit:1290 */
9691 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
9692 /* syntax/mmbuilder.nit:1291 */
9693 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9694 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[4])(fra.me.REG[4]);
9695 /* ../lib/standard/collection/array.nit:269 */
9696 REGB0 = TAG_Int(0);
9697 /* ../lib/standard/collection/array.nit:270 */
9698 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
9699 if (UNTAG_Bool(REGB1)) {
9700 } else {
9701 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
9702 }
9703 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
9704 /* ../lib/standard/collection/array.nit:271 */
9705 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
9706 /* ../lib/standard/collection/array.nit:272 */
9707 while(1) {
9708 /* ../lib/standard/collection/array.nit:24 */
9709 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
9710 if (UNTAG_Bool(REGB1)) {
9711 } else {
9712 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
9713 }
9714 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
9715 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
9716 if (UNTAG_Bool(REGB2)) {
9717 } else {
9718 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9719 }
9720 /* ../lib/standard/kernel.nit:232 */
9721 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
9722 /* ../lib/standard/collection/array.nit:272 */
9723 if (UNTAG_Bool(REGB1)) {
9724 /* ../lib/standard/collection/array.nit:273 */
9725 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9726 if (UNTAG_Bool(REGB1)) {
9727 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
9728 }
9729 /* ../lib/standard/collection/array.nit:718 */
9730 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
9731 /* syntax/mmbuilder.nit:1292 */
9732 fra.me.REG[7] = CALL_syntax___mmbuilder___AParam___stype(fra.me.REG[6])(fra.me.REG[6]);
9733 REGB1 = TAG_Bool(fra.me.REG[7]!=NIT_NULL);
9734 if (UNTAG_Bool(REGB1)) {
9735 } else {
9736 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1292);
9737 }
9738 fra.me.REG[6] = CALL_parser___parser_nodes___AParam___n_id(fra.me.REG[6])(fra.me.REG[6]);
9739 fra.me.REG[6] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9740 fra.me.REG[6] = NEW_MMParam_metamodel___static_type___MMParam___init(fra.me.REG[7], fra.me.REG[6]);
9741 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
9742 /* ../lib/standard/collection/array.nit:274 */
9743 REGB1 = TAG_Int(1);
9744 /* ../lib/standard/kernel.nit:235 */
9745 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
9746 /* ../lib/standard/collection/array.nit:274 */
9747 REGB0 = REGB1;
9748 } else {
9749 /* ../lib/standard/collection/array.nit:272 */
9750 goto label3;
9751 }
9752 }
9753 label3: while(0);
9754 /* syntax/mmbuilder.nit:1294 */
9755 fra.me.REG[0] = NIT_NULL;
9756 /* syntax/mmbuilder.nit:1295 */
9757 fra.me.REG[5] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
9758 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9759 if (UNTAG_Bool(REGB0)) {
9760 } else {
9761 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9762 if (UNTAG_Bool(REGB1)) {
9763 REGB1 = TAG_Bool(false);
9764 REGB0 = REGB1;
9765 } else {
9766 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
9767 REGB0 = REGB1;
9768 }
9769 }
9770 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9771 if (UNTAG_Bool(REGB0)) {
9772 /* syntax/mmbuilder.nit:1296 */
9773 fra.me.REG[2] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
9774 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9775 if (UNTAG_Bool(REGB0)) {
9776 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1296);
9777 }
9778 fra.me.REG[2] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
9779 fra.me.REG[0] = fra.me.REG[2];
9780 /* syntax/mmbuilder.nit:1297 */
9781 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9782 if (UNTAG_Bool(REGB0)) {
9783 } else {
9784 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9785 if (UNTAG_Bool(REGB1)) {
9786 REGB1 = TAG_Bool(false);
9787 REGB0 = REGB1;
9788 } else {
9789 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
9790 REGB0 = REGB1;
9791 }
9792 }
9793 if (UNTAG_Bool(REGB0)) {
9794 /* syntax/mmbuilder.nit:1298 */
9795 fra.me.REG[2] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9796 REGB0 = TAG_Bool(true);
9797 CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
9798 /* syntax/mmbuilder.nit:1299 */
9799 goto label1;
9800 }
9801 }
9802 /* syntax/mmbuilder.nit:1302 */
9803 fra.me.REG[2] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9804 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9805 fra.me.REG[5] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]);
9806 fra.me.REG[5] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
9807 CALL_syntax___mmbuilder___SignatureBuilder___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
9808 /* syntax/mmbuilder.nit:1303 */
9809 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9810 REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[5])(fra.me.REG[5]);
9811 REGB1 = TAG_Int(0);
9812 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
9813 if (UNTAG_Bool(REGB2)) {
9814 } else {
9815 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9816 }
9817 /* ../lib/standard/kernel.nit:233 */
9818 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
9819 /* syntax/mmbuilder.nit:1303 */
9820 if (UNTAG_Bool(REGB1)) {
9821 /* syntax/mmbuilder.nit:1304 */
9822 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9823 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[5])(fra.me.REG[5]);
9824 fra.me.REG[2] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9825 REGB1 = CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[2])(fra.me.REG[2]);
9826 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9827 if (UNTAG_Bool(REGB0)) {
9828 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1304);
9829 }
9830 CALL_metamodel___vararg___MMSignature___vararg_rank__eq(fra.me.REG[5])(fra.me.REG[5], REGB1);
9831 }
9832 /* syntax/mmbuilder.nit:1306 */
9833 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9834 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[5])(fra.me.REG[5]);
9835 /* ../lib/standard/collection/array.nit:269 */
9836 REGB1 = TAG_Int(0);
9837 /* ../lib/standard/collection/array.nit:270 */
9838 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
9839 if (UNTAG_Bool(REGB0)) {
9840 } else {
9841 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
9842 }
9843 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
9844 /* ../lib/standard/collection/array.nit:271 */
9845 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
9846 /* ../lib/standard/collection/array.nit:272 */
9847 while(1) {
9848 /* ../lib/standard/collection/array.nit:24 */
9849 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
9850 if (UNTAG_Bool(REGB0)) {
9851 } else {
9852 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
9853 }
9854 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
9855 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9856 if (UNTAG_Bool(REGB2)) {
9857 } else {
9858 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9859 }
9860 /* ../lib/standard/kernel.nit:232 */
9861 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
9862 /* ../lib/standard/collection/array.nit:272 */
9863 if (UNTAG_Bool(REGB0)) {
9864 /* ../lib/standard/collection/array.nit:273 */
9865 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9866 if (UNTAG_Bool(REGB0)) {
9867 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
9868 }
9869 /* ../lib/standard/collection/array.nit:718 */
9870 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
9871 /* syntax/mmbuilder.nit:1307 */
9872 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9873 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
9874 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9875 if (UNTAG_Bool(REGB0)) {
9876 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1307);
9877 }
9878 fra.me.REG[1] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
9879 fra.me.REG[0] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[0])(fra.me.REG[0]);
9880 fra.me.REG[0] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[0])(fra.me.REG[0]);
9881 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
9882 /* ../lib/standard/collection/array.nit:274 */
9883 REGB0 = TAG_Int(1);
9884 /* ../lib/standard/kernel.nit:235 */
9885 REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
9886 /* ../lib/standard/collection/array.nit:274 */
9887 REGB1 = REGB0;
9888 } else {
9889 /* ../lib/standard/collection/array.nit:272 */
9890 goto label4;
9891 }
9892 }
9893 label4: while(0);
9894 }
9895 }
9896 }
9897 label1: while(0);
9898 stack_frame_head = fra.me.prev;
9899 return;
9900 }
9901 void syntax___mmbuilder___ASignature___check_visibility(val_t p0, val_t p1, val_t p2){
9902 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9903 val_t REGB0;
9904 val_t REGB1;
9905 val_t REGB2;
9906 val_t tmp;
9907 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9908 fra.me.file = LOCATE_syntax___mmbuilder;
9909 fra.me.line = 1312;
9910 fra.me.meth = LOCATE_syntax___mmbuilder___ASignature___check_visibility;
9911 fra.me.has_broke = 0;
9912 fra.me.REG_size = 4;
9913 fra.me.nitni_local_ref_head = NULL;
9914 fra.me.REG[0] = NIT_NULL;
9915 fra.me.REG[1] = NIT_NULL;
9916 fra.me.REG[2] = NIT_NULL;
9917 fra.me.REG[3] = NIT_NULL;
9918 fra.me.REG[0] = p0;
9919 fra.me.REG[1] = p1;
9920 fra.me.REG[2] = p2;
9921 /* syntax/mmbuilder.nit:1315 */
9922 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
9923 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
9924 REGB1 = TAG_Int(3);
9925 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
9926 if (UNTAG_Bool(REGB2)) {
9927 } else {
9928 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9929 }
9930 /* ../lib/standard/kernel.nit:233 */
9931 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
9932 /* syntax/mmbuilder.nit:1315 */
9933 if (UNTAG_Bool(REGB1)) {
9934 goto label1;
9935 }
9936 /* syntax/mmbuilder.nit:1316 */
9937 fra.me.REG[3] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[0])(fra.me.REG[0]);
9938 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));
9939 /* syntax/mmbuilder.nit:1319 */
9940 fra.me.REG[3] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[0])(fra.me.REG[0]);
9941 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9942 if (UNTAG_Bool(REGB1)) {
9943 } else {
9944 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9945 if (UNTAG_Bool(REGB0)) {
9946 REGB0 = TAG_Bool(false);
9947 REGB1 = REGB0;
9948 } else {
9949 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9950 REGB1 = REGB0;
9951 }
9952 }
9953 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
9954 if (UNTAG_Bool(REGB1)) {
9955 fra.me.REG[0] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[0])(fra.me.REG[0]);
9956 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9957 if (UNTAG_Bool(REGB1)) {
9958 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1319);
9959 }
9960 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
9961 }
9962 label1: while(0);
9963 stack_frame_head = fra.me.prev;
9964 return;
9965 }
9966 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){
9967 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9968 val_t REGB0;
9969 val_t REGB1;
9970 fun_t CREG[1];
9971 val_t tmp;
9972 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9973 fra.me.file = LOCATE_syntax___mmbuilder;
9974 fra.me.line = 0;
9975 fra.me.meth = LOCATE_syntax___mmbuilder___ASignature___check_visibility;
9976 fra.me.has_broke = 0;
9977 fra.me.REG_size = 2;
9978 fra.me.nitni_local_ref_head = NULL;
9979 fra.me.REG[0] = NIT_NULL;
9980 fra.me.REG[1] = NIT_NULL;
9981 fra.me.closure_ctx = closctx_param;
9982 fra.me.closure_funs = CREG;
9983 fra.me.REG[0] = p0;
9984 CREG[0] = clos_fun0;
9985 /* syntax/mmbuilder.nit:1317 */
9986 fra.me.REG[1] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[0])(fra.me.REG[0]);
9987 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9988 if (UNTAG_Bool(REGB0)) {
9989 } else {
9990 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9991 if (UNTAG_Bool(REGB1)) {
9992 REGB1 = TAG_Bool(false);
9993 REGB0 = REGB1;
9994 } else {
9995 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9996 REGB0 = REGB1;
9997 }
9998 }
9999 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10000 if (UNTAG_Bool(REGB0)) {
10001 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[0])(fra.me.REG[0]);
10002 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10003 if (UNTAG_Bool(REGB0)) {
10004 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1317);
10005 }
10006 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1], closctx->REG[2]);
10007 }
10008 stack_frame_head = fra.me.prev;
10009 return;
10010 }
10011 val_t syntax___mmbuilder___AParam___position(val_t p0){
10012 struct {struct stack_frame_t me;} fra;
10013 val_t REGB0;
10014 val_t tmp;
10015 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10016 fra.me.file = LOCATE_syntax___mmbuilder;
10017 fra.me.line = 1324;
10018 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___position;
10019 fra.me.has_broke = 0;
10020 fra.me.REG_size = 1;
10021 fra.me.nitni_local_ref_head = NULL;
10022 fra.me.REG[0] = NIT_NULL;
10023 fra.me.REG[0] = p0;
10024 /* syntax/mmbuilder.nit:1324 */
10025 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___AParam____position(fra.me.REG[0])!=NIT_NULL);
10026 if (UNTAG_Bool(REGB0)) {
10027 } else {
10028 nit_abort("Uninitialized attribute %s", "_position", LOCATE_syntax___mmbuilder, 1324);
10029 }
10030 REGB0 = ATTR_syntax___mmbuilder___AParam____position(fra.me.REG[0]);
10031 stack_frame_head = fra.me.prev;
10032 return REGB0;
10033 }
10034 val_t syntax___mmbuilder___AParam___variable(val_t p0){
10035 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10036 val_t REGB0;
10037 val_t tmp;
10038 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10039 fra.me.file = LOCATE_syntax___mmbuilder;
10040 fra.me.line = 1326;
10041 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___variable;
10042 fra.me.has_broke = 0;
10043 fra.me.REG_size = 2;
10044 fra.me.nitni_local_ref_head = NULL;
10045 fra.me.REG[0] = NIT_NULL;
10046 fra.me.REG[1] = NIT_NULL;
10047 fra.me.REG[0] = p0;
10048 /* syntax/mmbuilder.nit:1326 */
10049 fra.me.REG[1] = fra.me.REG[0];
10050 fra.me.REG[1] = ATTR_syntax___mmbuilder___AParam____variable(fra.me.REG[1]);
10051 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
10052 if (UNTAG_Bool(REGB0)) {
10053 } else {
10054 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1326);
10055 }
10056 goto label1;
10057 label1: while(0);
10058 stack_frame_head = fra.me.prev;
10059 return fra.me.REG[1];
10060 }
10061 val_t syntax___mmbuilder___AParam___stype(val_t p0){
10062 struct {struct stack_frame_t me;} fra;
10063 val_t tmp;
10064 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10065 fra.me.file = LOCATE_syntax___mmbuilder;
10066 fra.me.line = 1329;
10067 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___stype;
10068 fra.me.has_broke = 0;
10069 fra.me.REG_size = 1;
10070 fra.me.nitni_local_ref_head = NULL;
10071 fra.me.REG[0] = NIT_NULL;
10072 fra.me.REG[0] = p0;
10073 /* syntax/mmbuilder.nit:1329 */
10074 fra.me.REG[0] = ATTR_syntax___mmbuilder___AParam____stype(fra.me.REG[0]);
10075 stack_frame_head = fra.me.prev;
10076 return fra.me.REG[0];
10077 }
10078 void syntax___mmbuilder___AParam___stype__eq(val_t p0, val_t p1){
10079 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10080 val_t tmp;
10081 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10082 fra.me.file = LOCATE_syntax___mmbuilder;
10083 fra.me.line = 1329;
10084 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___stype__eq;
10085 fra.me.has_broke = 0;
10086 fra.me.REG_size = 2;
10087 fra.me.nitni_local_ref_head = NULL;
10088 fra.me.REG[0] = NIT_NULL;
10089 fra.me.REG[1] = NIT_NULL;
10090 fra.me.REG[0] = p0;
10091 fra.me.REG[1] = p1;
10092 /* syntax/mmbuilder.nit:1329 */
10093 ATTR_syntax___mmbuilder___AParam____stype(fra.me.REG[0]) = fra.me.REG[1];
10094 stack_frame_head = fra.me.prev;
10095 return;
10096 }
10097 void syntax___mmbuilder___AParam___accept_property_verifier(val_t p0, val_t p1){
10098 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
10099 val_t REGB0;
10100 val_t REGB1;
10101 val_t REGB2;
10102 val_t REGB3;
10103 val_t tmp;
10104 static val_t once_value_2; /* Once value */
10105 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10106 fra.me.file = LOCATE_syntax___mmbuilder;
10107 fra.me.line = 1332;
10108 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___accept_property_verifier;
10109 fra.me.has_broke = 0;
10110 fra.me.REG_size = 7;
10111 fra.me.nitni_local_ref_head = NULL;
10112 fra.me.REG[0] = NIT_NULL;
10113 fra.me.REG[1] = NIT_NULL;
10114 fra.me.REG[2] = NIT_NULL;
10115 fra.me.REG[3] = NIT_NULL;
10116 fra.me.REG[4] = NIT_NULL;
10117 fra.me.REG[5] = NIT_NULL;
10118 fra.me.REG[6] = NIT_NULL;
10119 fra.me.REG[0] = p0;
10120 fra.me.REG[1] = p1;
10121 /* syntax/mmbuilder.nit:1332 */
10122 fra.me.REG[2] = fra.me.REG[0];
10123 fra.me.REG[3] = fra.me.REG[1];
10124 /* syntax/mmbuilder.nit:1334 */
10125 CALL_SUPER_syntax___mmbuilder___AParam___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
10126 /* syntax/mmbuilder.nit:1335 */
10127 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10128 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[1])(fra.me.REG[1]);
10129 /* ../lib/standard/collection/array.nit:24 */
10130 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
10131 if (UNTAG_Bool(REGB0)) {
10132 } else {
10133 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
10134 }
10135 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
10136 /* syntax/mmbuilder.nit:1335 */
10137 ATTR_syntax___mmbuilder___AParam____position(fra.me.REG[2]) = REGB0;
10138 /* syntax/mmbuilder.nit:1336 */
10139 fra.me.REG[1] = CALL_parser___parser_nodes___AParam___n_id(fra.me.REG[2])(fra.me.REG[2]);
10140 fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
10141 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_id(fra.me.REG[2])(fra.me.REG[2]);
10142 fra.me.REG[0] = NEW_ParamVariable_syntax___syntax_base___ParamVariable___init(fra.me.REG[1], fra.me.REG[0]);
10143 ATTR_syntax___mmbuilder___AParam____variable(fra.me.REG[2]) = fra.me.REG[0];
10144 /* syntax/mmbuilder.nit:1337 */
10145 fra.me.REG[0] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10146 fra.me.REG[0] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[0])(fra.me.REG[0]);
10147 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
10148 /* syntax/mmbuilder.nit:1338 */
10149 fra.me.REG[0] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10150 fra.me.REG[0] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[0])(fra.me.REG[0]);
10151 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
10152 /* syntax/mmbuilder.nit:1339 */
10153 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[2])(fra.me.REG[2]);
10154 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10155 if (UNTAG_Bool(REGB0)) {
10156 } else {
10157 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10158 if (UNTAG_Bool(REGB1)) {
10159 REGB1 = TAG_Bool(false);
10160 REGB0 = REGB1;
10161 } else {
10162 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
10163 REGB0 = REGB1;
10164 }
10165 }
10166 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10167 if (UNTAG_Bool(REGB0)) {
10168 /* syntax/mmbuilder.nit:1340 */
10169 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[2])(fra.me.REG[2]);
10170 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10171 if (UNTAG_Bool(REGB0)) {
10172 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1340);
10173 }
10174 fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
10175 /* syntax/mmbuilder.nit:1341 */
10176 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10177 if (UNTAG_Bool(REGB0)) {
10178 } else {
10179 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10180 if (UNTAG_Bool(REGB1)) {
10181 REGB1 = TAG_Bool(false);
10182 REGB0 = REGB1;
10183 } else {
10184 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
10185 REGB0 = REGB1;
10186 }
10187 }
10188 if (UNTAG_Bool(REGB0)) {
10189 /* syntax/mmbuilder.nit:1342 */
10190 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10191 REGB0 = TAG_Bool(true);
10192 CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
10193 /* syntax/mmbuilder.nit:1343 */
10194 goto label1;
10195 }
10196 /* syntax/mmbuilder.nit:1345 */
10197 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10198 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
10199 /* ../lib/standard/collection/array.nit:269 */
10200 REGB0 = TAG_Int(0);
10201 /* ../lib/standard/collection/array.nit:270 */
10202 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
10203 if (UNTAG_Bool(REGB1)) {
10204 } else {
10205 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
10206 }
10207 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
10208 /* ../lib/standard/collection/array.nit:271 */
10209 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
10210 /* ../lib/standard/collection/array.nit:272 */
10211 while(1) {
10212 /* ../lib/standard/collection/array.nit:24 */
10213 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
10214 if (UNTAG_Bool(REGB1)) {
10215 } else {
10216 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
10217 }
10218 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
10219 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
10220 if (UNTAG_Bool(REGB2)) {
10221 } else {
10222 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10223 }
10224 /* ../lib/standard/kernel.nit:232 */
10225 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
10226 /* ../lib/standard/collection/array.nit:272 */
10227 if (UNTAG_Bool(REGB1)) {
10228 /* ../lib/standard/collection/array.nit:273 */
10229 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
10230 if (UNTAG_Bool(REGB1)) {
10231 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
10232 }
10233 /* ../lib/standard/collection/array.nit:718 */
10234 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
10235 /* syntax/mmbuilder.nit:1346 */
10236 CALL_syntax___mmbuilder___AParam___stype__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
10237 /* syntax/mmbuilder.nit:1347 */
10238 REGB1 = CALL_syntax___mmbuilder___AParam___is_vararg(fra.me.REG[2])(fra.me.REG[2]);
10239 if (UNTAG_Bool(REGB1)) {
10240 /* syntax/mmbuilder.nit:1348 */
10241 fra.me.REG[6] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10242 REGB1 = CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[6])(fra.me.REG[6]);
10243 REGB2 = TAG_Int(1);
10244 /* ../lib/standard/kernel.nit:236 */
10245 REGB2 = TAG_Int(-UNTAG_Int(REGB2));
10246 /* syntax/mmbuilder.nit:1348 */
10247 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
10248 if (UNTAG_Bool(REGB3)) {
10249 } else {
10250 /* ../lib/standard/kernel.nit:227 */
10251 REGB2 = TAG_Bool((REGB1)==(REGB2));
10252 /* syntax/mmbuilder.nit:1348 */
10253 REGB3 = REGB2;
10254 }
10255 if (UNTAG_Bool(REGB3)) {
10256 /* syntax/mmbuilder.nit:1349 */
10257 fra.me.REG[6] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10258 REGB3 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[5])(fra.me.REG[5]);
10259 CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank__eq(fra.me.REG[6])(fra.me.REG[6], REGB3);
10260 } else {
10261 /* syntax/mmbuilder.nit:1351 */
10262 if (!once_value_2) {
10263 fra.me.REG[6] = BOX_NativeString("Error: A vararg parameter is already defined.");
10264 REGB3 = TAG_Int(45);
10265 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB3);
10266 once_value_2 = fra.me.REG[6];
10267 register_static_object(&once_value_2);
10268 } else fra.me.REG[6] = once_value_2;
10269 fra.me.REG[6] = fra.me.REG[6];
10270 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
10271 }
10272 /* syntax/mmbuilder.nit:1353 */
10273 fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
10274 fra.me.REG[0] = fra.me.REG[6];
10275 }
10276 /* syntax/mmbuilder.nit:1355 */
10277 fra.me.REG[5] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[5])(fra.me.REG[5]);
10278 CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
10279 /* ../lib/standard/collection/array.nit:274 */
10280 REGB3 = TAG_Int(1);
10281 /* ../lib/standard/kernel.nit:235 */
10282 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
10283 /* ../lib/standard/collection/array.nit:274 */
10284 REGB0 = REGB3;
10285 } else {
10286 /* ../lib/standard/collection/array.nit:272 */
10287 goto label3;
10288 }
10289 }
10290 label3: while(0);
10291 /* syntax/mmbuilder.nit:1357 */
10292 fra.me.REG[3] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10293 fra.me.REG[3] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[3])(fra.me.REG[3]);
10294 CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[3])(fra.me.REG[3]);
10295 }
10296 label1: while(0);
10297 stack_frame_head = fra.me.prev;
10298 return;
10299 }
10300 val_t syntax___mmbuilder___AParam___is_vararg(val_t p0){
10301 struct {struct stack_frame_t me;} fra;
10302 val_t REGB0;
10303 val_t REGB1;
10304 val_t tmp;
10305 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10306 fra.me.file = LOCATE_syntax___mmbuilder;
10307 fra.me.line = 1361;
10308 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___is_vararg;
10309 fra.me.has_broke = 0;
10310 fra.me.REG_size = 1;
10311 fra.me.nitni_local_ref_head = NULL;
10312 fra.me.REG[0] = NIT_NULL;
10313 fra.me.REG[0] = p0;
10314 /* syntax/mmbuilder.nit:1361 */
10315 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_dotdotdot(fra.me.REG[0])(fra.me.REG[0]);
10316 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10317 if (UNTAG_Bool(REGB0)) {
10318 } else {
10319 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10320 if (UNTAG_Bool(REGB1)) {
10321 REGB1 = TAG_Bool(false);
10322 REGB0 = REGB1;
10323 } else {
10324 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
10325 REGB0 = REGB1;
10326 }
10327 }
10328 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10329 goto label1;
10330 label1: while(0);
10331 stack_frame_head = fra.me.prev;
10332 return REGB0;
10333 }
10334 val_t syntax___mmbuilder___AClosureDecl___position(val_t p0){
10335 struct {struct stack_frame_t me;} fra;
10336 val_t REGB0;
10337 val_t tmp;
10338 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10339 fra.me.file = LOCATE_syntax___mmbuilder;
10340 fra.me.line = 1365;
10341 fra.me.meth = LOCATE_syntax___mmbuilder___AClosureDecl___position;
10342 fra.me.has_broke = 0;
10343 fra.me.REG_size = 1;
10344 fra.me.nitni_local_ref_head = NULL;
10345 fra.me.REG[0] = NIT_NULL;
10346 fra.me.REG[0] = p0;
10347 /* syntax/mmbuilder.nit:1365 */
10348 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___AClosureDecl____position(fra.me.REG[0])!=NIT_NULL);
10349 if (UNTAG_Bool(REGB0)) {
10350 } else {
10351 nit_abort("Uninitialized attribute %s", "_position", LOCATE_syntax___mmbuilder, 1365);
10352 }
10353 REGB0 = ATTR_syntax___mmbuilder___AClosureDecl____position(fra.me.REG[0]);
10354 stack_frame_head = fra.me.prev;
10355 return REGB0;
10356 }
10357 val_t syntax___mmbuilder___AClosureDecl___variable(val_t p0){
10358 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10359 val_t REGB0;
10360 val_t tmp;
10361 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10362 fra.me.file = LOCATE_syntax___mmbuilder;
10363 fra.me.line = 1367;
10364 fra.me.meth = LOCATE_syntax___mmbuilder___AClosureDecl___variable;
10365 fra.me.has_broke = 0;
10366 fra.me.REG_size = 2;
10367 fra.me.nitni_local_ref_head = NULL;
10368 fra.me.REG[0] = NIT_NULL;
10369 fra.me.REG[1] = NIT_NULL;
10370 fra.me.REG[0] = p0;
10371 /* syntax/mmbuilder.nit:1367 */
10372 fra.me.REG[1] = fra.me.REG[0];
10373 fra.me.REG[1] = ATTR_syntax___mmbuilder___AClosureDecl____variable(fra.me.REG[1]);
10374 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
10375 if (UNTAG_Bool(REGB0)) {
10376 } else {
10377 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1367);
10378 }
10379 goto label1;
10380 label1: while(0);
10381 stack_frame_head = fra.me.prev;
10382 return fra.me.REG[1];
10383 }
10384 void syntax___mmbuilder___AClosureDecl___accept_property_verifier(val_t p0, val_t p1){
10385 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
10386 val_t REGB0;
10387 val_t REGB1;
10388 val_t REGB2;
10389 val_t tmp;
10390 static val_t once_value_2; /* Once value */
10391 static val_t once_value_3; /* Once value */
10392 static val_t once_value_4; /* Once value */
10393 static val_t once_value_5; /* Once value */
10394 static val_t once_value_6; /* Once value */
10395 static val_t once_value_7; /* Once value */
10396 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10397 fra.me.file = LOCATE_syntax___mmbuilder;
10398 fra.me.line = 1370;
10399 fra.me.meth = LOCATE_syntax___mmbuilder___AClosureDecl___accept_property_verifier;
10400 fra.me.has_broke = 0;
10401 fra.me.REG_size = 11;
10402 fra.me.nitni_local_ref_head = NULL;
10403 fra.me.REG[0] = NIT_NULL;
10404 fra.me.REG[1] = NIT_NULL;
10405 fra.me.REG[2] = NIT_NULL;
10406 fra.me.REG[3] = NIT_NULL;
10407 fra.me.REG[4] = NIT_NULL;
10408 fra.me.REG[5] = NIT_NULL;
10409 fra.me.REG[6] = NIT_NULL;
10410 fra.me.REG[7] = NIT_NULL;
10411 fra.me.REG[8] = NIT_NULL;
10412 fra.me.REG[9] = NIT_NULL;
10413 fra.me.REG[10] = NIT_NULL;
10414 fra.me.REG[0] = p0;
10415 fra.me.REG[1] = p1;
10416 /* syntax/mmbuilder.nit:1370 */
10417 fra.me.REG[2] = fra.me.REG[0];
10418 fra.me.REG[3] = fra.me.REG[1];
10419 /* syntax/mmbuilder.nit:1372 */
10420 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10421 /* syntax/mmbuilder.nit:1373 */
10422 fra.me.REG[5] = NEW_SignatureBuilder_syntax___mmbuilder___SignatureBuilder___init();
10423 CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
10424 /* syntax/mmbuilder.nit:1374 */
10425 CALL_SUPER_syntax___mmbuilder___AClosureDecl___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
10426 /* syntax/mmbuilder.nit:1375 */
10427 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10428 REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
10429 if (UNTAG_Bool(REGB0)) {
10430 /* syntax/mmbuilder.nit:1376 */
10431 goto label1;
10432 }
10433 /* syntax/mmbuilder.nit:1378 */
10434 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10435 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
10436 /* syntax/mmbuilder.nit:1379 */
10437 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10438 if (UNTAG_Bool(REGB0)) {
10439 } else {
10440 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10441 if (UNTAG_Bool(REGB1)) {
10442 REGB1 = TAG_Bool(false);
10443 REGB0 = REGB1;
10444 } else {
10445 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
10446 REGB0 = REGB1;
10447 }
10448 }
10449 if (UNTAG_Bool(REGB0)) {
10450 /* syntax/mmbuilder.nit:1380 */
10451 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
10452 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
10453 fra.me.REG[5] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]);
10454 fra.me.REG[5] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[5]);
10455 fra.me.REG[1] = fra.me.REG[5];
10456 }
10457 /* syntax/mmbuilder.nit:1382 */
10458 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10459 if (UNTAG_Bool(REGB0)) {
10460 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1382);
10461 }
10462 fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[1])(fra.me.REG[1]);
10463 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10464 if (UNTAG_Bool(REGB0)) {
10465 } else {
10466 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10467 if (UNTAG_Bool(REGB1)) {
10468 REGB1 = TAG_Bool(false);
10469 REGB0 = REGB1;
10470 } else {
10471 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10472 REGB0 = REGB1;
10473 }
10474 }
10475 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10476 if (UNTAG_Bool(REGB0)) {
10477 fra.me.REG[5] = CALL_parser___parser_nodes___AClosureDecl___n_kwbreak(fra.me.REG[2])(fra.me.REG[2]);
10478 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10479 if (UNTAG_Bool(REGB0)) {
10480 } else {
10481 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10482 if (UNTAG_Bool(REGB1)) {
10483 REGB1 = TAG_Bool(false);
10484 REGB0 = REGB1;
10485 } else {
10486 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10487 REGB0 = REGB1;
10488 }
10489 }
10490 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10491 } else {
10492 REGB1 = TAG_Bool(false);
10493 REGB0 = REGB1;
10494 }
10495 if (UNTAG_Bool(REGB0)) {
10496 /* syntax/mmbuilder.nit:1383 */
10497 if (!once_value_2) {
10498 fra.me.REG[5] = BOX_NativeString("Syntax Error: A break block cannot have a return value.");
10499 REGB0 = TAG_Int(55);
10500 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
10501 once_value_2 = fra.me.REG[5];
10502 register_static_object(&once_value_2);
10503 } else fra.me.REG[5] = once_value_2;
10504 fra.me.REG[5] = fra.me.REG[5];
10505 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[5]);
10506 }
10507 /* syntax/mmbuilder.nit:1387 */
10508 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
10509 fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
10510 fra.me.REG[0] = CALL_metamodel___inheritance___MMModule___type_any(fra.me.REG[0])(fra.me.REG[0]);
10511 fra.me.REG[0] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[5], NIT_NULL, fra.me.REG[0]);
10512 /* syntax/mmbuilder.nit:1388 */
10513 if (!once_value_3) {
10514 if (!once_value_4) {
10515 fra.me.REG[5] = BOX_NativeString("break");
10516 REGB0 = TAG_Int(5);
10517 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
10518 once_value_4 = fra.me.REG[5];
10519 register_static_object(&once_value_4);
10520 } else fra.me.REG[5] = once_value_4;
10521 fra.me.REG[5] = fra.me.REG[5];
10522 fra.me.REG[5] = CALL_standard___symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
10523 once_value_3 = fra.me.REG[5];
10524 register_static_object(&once_value_3);
10525 } else fra.me.REG[5] = once_value_3;
10526 fra.me.REG[5] = fra.me.REG[5];
10527 REGB0 = TAG_Bool(false);
10528 REGB1 = TAG_Bool(true);
10529 fra.me.REG[0] = NEW_MMClosure_metamodel___static_type___MMClosure___init(fra.me.REG[5], fra.me.REG[0], REGB0, REGB1);
10530 /* syntax/mmbuilder.nit:1389 */
10531 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10532 if (UNTAG_Bool(REGB1)) {
10533 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1389);
10534 }
10535 fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
10536 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
10537 /* syntax/mmbuilder.nit:1391 */
10538 fra.me.REG[0] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10539 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
10540 /* syntax/mmbuilder.nit:1392 */
10541 fra.me.REG[5] = CALL_parser___parser_nodes___AClosureDecl___n_kwbreak(fra.me.REG[2])(fra.me.REG[2]);
10542 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10543 if (UNTAG_Bool(REGB1)) {
10544 } else {
10545 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10546 if (UNTAG_Bool(REGB0)) {
10547 REGB0 = TAG_Bool(false);
10548 REGB1 = REGB0;
10549 } else {
10550 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10551 REGB1 = REGB0;
10552 }
10553 }
10554 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
10555 fra.me.REG[5] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra.me.REG[2])(fra.me.REG[2]);
10556 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10557 if (UNTAG_Bool(REGB0)) {
10558 } else {
10559 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10560 if (UNTAG_Bool(REGB2)) {
10561 REGB2 = TAG_Bool(false);
10562 REGB0 = REGB2;
10563 } else {
10564 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10565 REGB0 = REGB2;
10566 }
10567 }
10568 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10569 fra.me.REG[1] = NEW_MMClosure_metamodel___static_type___MMClosure___init(fra.me.REG[0], fra.me.REG[1], REGB1, REGB0);
10570 /* syntax/mmbuilder.nit:1393 */
10571 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
10572 /* ../lib/standard/collection/array.nit:269 */
10573 REGB0 = TAG_Int(0);
10574 /* ../lib/standard/collection/array.nit:270 */
10575 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
10576 if (UNTAG_Bool(REGB1)) {
10577 } else {
10578 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
10579 }
10580 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
10581 /* ../lib/standard/collection/array.nit:271 */
10582 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
10583 /* ../lib/standard/collection/array.nit:272 */
10584 while(1) {
10585 /* ../lib/standard/collection/array.nit:24 */
10586 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
10587 if (UNTAG_Bool(REGB1)) {
10588 } else {
10589 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
10590 }
10591 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
10592 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
10593 if (UNTAG_Bool(REGB2)) {
10594 } else {
10595 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10596 }
10597 /* ../lib/standard/kernel.nit:232 */
10598 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
10599 /* ../lib/standard/collection/array.nit:272 */
10600 if (UNTAG_Bool(REGB1)) {
10601 /* ../lib/standard/collection/array.nit:273 */
10602 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
10603 if (UNTAG_Bool(REGB1)) {
10604 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
10605 }
10606 /* ../lib/standard/collection/array.nit:718 */
10607 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
10608 /* syntax/mmbuilder.nit:1394 */
10609 fra.me.REG[8] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[7])(fra.me.REG[7]);
10610 fra.me.REG[8] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[8])(fra.me.REG[8]);
10611 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[8],fra.me.REG[0]));
10612 if (UNTAG_Bool(REGB1)) {
10613 } else {
10614 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
10615 REGB1 = REGB2;
10616 }
10617 if (UNTAG_Bool(REGB1)) {
10618 /* syntax/mmbuilder.nit:1395 */
10619 fra.me.REG[8] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10620 REGB1 = TAG_Int(5);
10621 fra.me.REG[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10622 if (!once_value_5) {
10623 fra.me.REG[10] = BOX_NativeString("A closure '!");
10624 REGB1 = TAG_Int(12);
10625 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
10626 once_value_5 = fra.me.REG[10];
10627 register_static_object(&once_value_5);
10628 } else fra.me.REG[10] = once_value_5;
10629 fra.me.REG[10] = fra.me.REG[10];
10630 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10631 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
10632 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10633 if (!once_value_6) {
10634 fra.me.REG[10] = BOX_NativeString("' already defined at ");
10635 REGB1 = TAG_Int(21);
10636 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
10637 once_value_6 = fra.me.REG[10];
10638 register_static_object(&once_value_6);
10639 } else fra.me.REG[10] = once_value_6;
10640 fra.me.REG[10] = fra.me.REG[10];
10641 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10642 fra.me.REG[7] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[7])(fra.me.REG[7]);
10643 fra.me.REG[7] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[7])(fra.me.REG[7]);
10644 fra.me.REG[10] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10645 fra.me.REG[10] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[10])(fra.me.REG[10]);
10646 fra.me.REG[10] = CALL_location___Location___relative_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
10647 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10648 if (!once_value_7) {
10649 fra.me.REG[10] = BOX_NativeString(".");
10650 REGB1 = TAG_Int(1);
10651 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
10652 once_value_7 = fra.me.REG[10];
10653 register_static_object(&once_value_7);
10654 } else fra.me.REG[10] = once_value_7;
10655 fra.me.REG[10] = fra.me.REG[10];
10656 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10657 fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
10658 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8], fra.me.REG[9]);
10659 /* syntax/mmbuilder.nit:1396 */
10660 goto label1;
10661 }
10662 /* ../lib/standard/collection/array.nit:274 */
10663 REGB1 = TAG_Int(1);
10664 /* ../lib/standard/kernel.nit:235 */
10665 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
10666 /* ../lib/standard/collection/array.nit:274 */
10667 REGB0 = REGB1;
10668 } else {
10669 /* ../lib/standard/collection/array.nit:272 */
10670 goto label8;
10671 }
10672 }
10673 label8: while(0);
10674 /* syntax/mmbuilder.nit:1399 */
10675 CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
10676 /* syntax/mmbuilder.nit:1400 */
10677 fra.me.REG[3] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
10678 /* ../lib/standard/collection/array.nit:24 */
10679 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
10680 if (UNTAG_Bool(REGB0)) {
10681 } else {
10682 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
10683 }
10684 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
10685 /* syntax/mmbuilder.nit:1400 */
10686 ATTR_syntax___mmbuilder___AClosureDecl____position(fra.me.REG[2]) = REGB0;
10687 /* syntax/mmbuilder.nit:1401 */
10688 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
10689 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
10690 /* syntax/mmbuilder.nit:1402 */
10691 fra.me.REG[4] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10692 fra.me.REG[4] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
10693 fra.me.REG[3] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10694 fra.me.REG[1] = NEW_ClosureVariable_syntax___syntax_base___ClosureVariable___init(fra.me.REG[4], fra.me.REG[3], fra.me.REG[1]);
10695 ATTR_syntax___mmbuilder___AClosureDecl____variable(fra.me.REG[2]) = fra.me.REG[1];
10696 label1: while(0);
10697 stack_frame_head = fra.me.prev;
10698 return;
10699 }
10700 void syntax___mmbuilder___AType___check_visibility(val_t p0, val_t p1, val_t p2){
10701 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
10702 val_t REGB0;
10703 val_t REGB1;
10704 val_t REGB2;
10705 val_t tmp;
10706 static val_t once_value_2; /* Once value */
10707 static val_t once_value_3; /* Once value */
10708 static val_t once_value_4; /* Once value */
10709 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10710 fra.me.file = LOCATE_syntax___mmbuilder;
10711 fra.me.line = 1407;
10712 fra.me.meth = LOCATE_syntax___mmbuilder___AType___check_visibility;
10713 fra.me.has_broke = 0;
10714 fra.me.REG_size = 6;
10715 fra.me.nitni_local_ref_head = NULL;
10716 fra.me.REG[0] = NIT_NULL;
10717 fra.me.REG[1] = NIT_NULL;
10718 fra.me.REG[2] = NIT_NULL;
10719 fra.me.REG[3] = NIT_NULL;
10720 fra.me.REG[4] = NIT_NULL;
10721 fra.me.REG[5] = NIT_NULL;
10722 fra.me.REG[0] = p0;
10723 fra.me.REG[1] = p1;
10724 fra.me.REG[2] = p2;
10725 /* syntax/mmbuilder.nit:1410 */
10726 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
10727 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
10728 REGB1 = TAG_Int(3);
10729 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
10730 if (UNTAG_Bool(REGB2)) {
10731 } else {
10732 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10733 }
10734 /* ../lib/standard/kernel.nit:233 */
10735 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
10736 /* syntax/mmbuilder.nit:1410 */
10737 if (UNTAG_Bool(REGB1)) {
10738 goto label1;
10739 }
10740 /* syntax/mmbuilder.nit:1411 */
10741 fra.me.REG[3] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
10742 /* syntax/mmbuilder.nit:1412 */
10743 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10744 if (UNTAG_Bool(REGB1)) {
10745 } else {
10746 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10747 if (UNTAG_Bool(REGB0)) {
10748 REGB0 = TAG_Bool(false);
10749 REGB1 = REGB0;
10750 } else {
10751 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10752 REGB1 = REGB0;
10753 }
10754 }
10755 if (UNTAG_Bool(REGB1)) {
10756 goto label1;
10757 }
10758 /* syntax/mmbuilder.nit:1413 */
10759 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10760 if (UNTAG_Bool(REGB1)) {
10761 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1413);
10762 }
10763 fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]);
10764 /* syntax/mmbuilder.nit:1414 */
10765 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
10766 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[4])(fra.me.REG[4]);
10767 REGB0 = TAG_Int(3);
10768 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10769 if (UNTAG_Bool(REGB2)) {
10770 } else {
10771 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10772 }
10773 /* ../lib/standard/kernel.nit:233 */
10774 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
10775 /* syntax/mmbuilder.nit:1414 */
10776 if (UNTAG_Bool(REGB0)) {
10777 /* syntax/mmbuilder.nit:1415 */
10778 REGB0 = TAG_Int(5);
10779 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
10780 if (!once_value_2) {
10781 fra.me.REG[5] = BOX_NativeString("Access error: Class ");
10782 REGB0 = TAG_Int(20);
10783 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
10784 once_value_2 = fra.me.REG[5];
10785 register_static_object(&once_value_2);
10786 } else fra.me.REG[5] = once_value_2;
10787 fra.me.REG[5] = fra.me.REG[5];
10788 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
10789 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
10790 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
10791 if (!once_value_3) {
10792 fra.me.REG[3] = BOX_NativeString(" is private and cannot be used in the signature of the non-private property ");
10793 REGB0 = TAG_Int(76);
10794 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
10795 once_value_3 = fra.me.REG[3];
10796 register_static_object(&once_value_3);
10797 } else fra.me.REG[3] = once_value_3;
10798 fra.me.REG[3] = fra.me.REG[3];
10799 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
10800 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
10801 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
10802 if (!once_value_4) {
10803 fra.me.REG[3] = BOX_NativeString(".");
10804 REGB0 = TAG_Int(1);
10805 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
10806 once_value_4 = fra.me.REG[3];
10807 register_static_object(&once_value_4);
10808 } else fra.me.REG[3] = once_value_4;
10809 fra.me.REG[3] = fra.me.REG[3];
10810 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
10811 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
10812 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
10813 }
10814 /* syntax/mmbuilder.nit:1417 */
10815 fra.me.REG[0] = CALL_parser___parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
10816 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));
10817 label1: while(0);
10818 stack_frame_head = fra.me.prev;
10819 return;
10820 }
10821 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){
10822 struct {struct stack_frame_t me;} fra;
10823 fun_t CREG[1];
10824 val_t tmp;
10825 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10826 fra.me.file = LOCATE_syntax___mmbuilder;
10827 fra.me.line = 0;
10828 fra.me.meth = LOCATE_syntax___mmbuilder___AType___check_visibility;
10829 fra.me.has_broke = 0;
10830 fra.me.REG_size = 1;
10831 fra.me.nitni_local_ref_head = NULL;
10832 fra.me.REG[0] = NIT_NULL;
10833 fra.me.closure_ctx = closctx_param;
10834 fra.me.closure_funs = CREG;
10835 fra.me.REG[0] = p0;
10836 CREG[0] = clos_fun0;
10837 /* syntax/mmbuilder.nit:1418 */
10838 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1], closctx->REG[2]);
10839 stack_frame_head = fra.me.prev;
10840 return;
10841 }
10842 void syntax___mmbuilder___AExpr___accept_class_builder(val_t p0, val_t p1){
10843 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10844 val_t tmp;
10845 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10846 fra.me.file = LOCATE_syntax___mmbuilder;
10847 fra.me.line = 1424;
10848 fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___accept_class_builder;
10849 fra.me.has_broke = 0;
10850 fra.me.REG_size = 2;
10851 fra.me.nitni_local_ref_head = NULL;
10852 fra.me.REG[0] = NIT_NULL;
10853 fra.me.REG[1] = NIT_NULL;
10854 fra.me.REG[0] = p0;
10855 fra.me.REG[1] = p1;
10856 stack_frame_head = fra.me.prev;
10857 return;
10858 }
10859 void syntax___mmbuilder___AExpr___accept_property_builder(val_t p0, val_t p1){
10860 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10861 val_t tmp;
10862 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10863 fra.me.file = LOCATE_syntax___mmbuilder;
10864 fra.me.line = 1425;
10865 fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___accept_property_builder;
10866 fra.me.has_broke = 0;
10867 fra.me.REG_size = 2;
10868 fra.me.nitni_local_ref_head = NULL;
10869 fra.me.REG[0] = NIT_NULL;
10870 fra.me.REG[1] = NIT_NULL;
10871 fra.me.REG[0] = p0;
10872 fra.me.REG[1] = p1;
10873 stack_frame_head = fra.me.prev;
10874 return;
10875 }
10876 void syntax___mmbuilder___AExpr___accept_property_verifier(val_t p0, val_t p1){
10877 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10878 val_t tmp;
10879 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10880 fra.me.file = LOCATE_syntax___mmbuilder;
10881 fra.me.line = 1426;
10882 fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___accept_property_verifier;
10883 fra.me.has_broke = 0;
10884 fra.me.REG_size = 2;
10885 fra.me.nitni_local_ref_head = NULL;
10886 fra.me.REG[0] = NIT_NULL;
10887 fra.me.REG[1] = NIT_NULL;
10888 fra.me.REG[0] = p0;
10889 fra.me.REG[1] = p1;
10890 stack_frame_head = fra.me.prev;
10891 return;
10892 }
10893 val_t syntax___mmbuilder___AExpr___get_easy_stype(val_t p0, val_t p1){
10894 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10895 val_t tmp;
10896 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10897 fra.me.file = LOCATE_syntax___mmbuilder;
10898 fra.me.line = 1428;
10899 fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___get_easy_stype;
10900 fra.me.has_broke = 0;
10901 fra.me.REG_size = 2;
10902 fra.me.nitni_local_ref_head = NULL;
10903 fra.me.REG[0] = NIT_NULL;
10904 fra.me.REG[1] = NIT_NULL;
10905 fra.me.REG[0] = p0;
10906 fra.me.REG[1] = p1;
10907 /* syntax/mmbuilder.nit:1428 */
10908 fra.me.REG[1] = NIT_NULL;
10909 goto label1;
10910 label1: while(0);
10911 stack_frame_head = fra.me.prev;
10912 return fra.me.REG[1];
10913 }
10914 val_t syntax___mmbuilder___ABoolExpr___get_easy_stype(val_t p0, val_t p1){
10915 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10916 val_t tmp;
10917 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10918 fra.me.file = LOCATE_syntax___mmbuilder;
10919 fra.me.line = 1432;
10920 fra.me.meth = LOCATE_syntax___mmbuilder___ABoolExpr___get_easy_stype;
10921 fra.me.has_broke = 0;
10922 fra.me.REG_size = 2;
10923 fra.me.nitni_local_ref_head = NULL;
10924 fra.me.REG[0] = NIT_NULL;
10925 fra.me.REG[1] = NIT_NULL;
10926 fra.me.REG[0] = p0;
10927 fra.me.REG[1] = p1;
10928 /* syntax/mmbuilder.nit:1432 */
10929 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra.me.REG[1])(fra.me.REG[1]);
10930 goto label1;
10931 label1: while(0);
10932 stack_frame_head = fra.me.prev;
10933 return fra.me.REG[1];
10934 }
10935 val_t syntax___mmbuilder___AStringExpr___get_easy_stype(val_t p0, val_t p1){
10936 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10937 val_t tmp;
10938 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10939 fra.me.file = LOCATE_syntax___mmbuilder;
10940 fra.me.line = 1436;
10941 fra.me.meth = LOCATE_syntax___mmbuilder___AStringExpr___get_easy_stype;
10942 fra.me.has_broke = 0;
10943 fra.me.REG_size = 2;
10944 fra.me.nitni_local_ref_head = NULL;
10945 fra.me.REG[0] = NIT_NULL;
10946 fra.me.REG[1] = NIT_NULL;
10947 fra.me.REG[0] = p0;
10948 fra.me.REG[1] = p1;
10949 /* syntax/mmbuilder.nit:1436 */
10950 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_string(fra.me.REG[1])(fra.me.REG[1]);
10951 goto label1;
10952 label1: while(0);
10953 stack_frame_head = fra.me.prev;
10954 return fra.me.REG[1];
10955 }
10956 val_t syntax___mmbuilder___ACharExpr___get_easy_stype(val_t p0, val_t p1){
10957 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10958 val_t tmp;
10959 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10960 fra.me.file = LOCATE_syntax___mmbuilder;
10961 fra.me.line = 1440;
10962 fra.me.meth = LOCATE_syntax___mmbuilder___ACharExpr___get_easy_stype;
10963 fra.me.has_broke = 0;
10964 fra.me.REG_size = 2;
10965 fra.me.nitni_local_ref_head = NULL;
10966 fra.me.REG[0] = NIT_NULL;
10967 fra.me.REG[1] = NIT_NULL;
10968 fra.me.REG[0] = p0;
10969 fra.me.REG[1] = p1;
10970 /* syntax/mmbuilder.nit:1440 */
10971 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_char(fra.me.REG[1])(fra.me.REG[1]);
10972 goto label1;
10973 label1: while(0);
10974 stack_frame_head = fra.me.prev;
10975 return fra.me.REG[1];
10976 }
10977 val_t syntax___mmbuilder___AIntExpr___get_easy_stype(val_t p0, val_t p1){
10978 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10979 val_t tmp;
10980 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10981 fra.me.file = LOCATE_syntax___mmbuilder;
10982 fra.me.line = 1444;
10983 fra.me.meth = LOCATE_syntax___mmbuilder___AIntExpr___get_easy_stype;
10984 fra.me.has_broke = 0;
10985 fra.me.REG_size = 2;
10986 fra.me.nitni_local_ref_head = NULL;
10987 fra.me.REG[0] = NIT_NULL;
10988 fra.me.REG[1] = NIT_NULL;
10989 fra.me.REG[0] = p0;
10990 fra.me.REG[1] = p1;
10991 /* syntax/mmbuilder.nit:1444 */
10992 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra.me.REG[1])(fra.me.REG[1]);
10993 goto label1;
10994 label1: while(0);
10995 stack_frame_head = fra.me.prev;
10996 return fra.me.REG[1];
10997 }
10998 val_t syntax___mmbuilder___AFloatExpr___get_easy_stype(val_t p0, val_t p1){
10999 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11000 val_t tmp;
11001 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11002 fra.me.file = LOCATE_syntax___mmbuilder;
11003 fra.me.line = 1448;
11004 fra.me.meth = LOCATE_syntax___mmbuilder___AFloatExpr___get_easy_stype;
11005 fra.me.has_broke = 0;
11006 fra.me.REG_size = 2;
11007 fra.me.nitni_local_ref_head = NULL;
11008 fra.me.REG[0] = NIT_NULL;
11009 fra.me.REG[1] = NIT_NULL;
11010 fra.me.REG[0] = p0;
11011 fra.me.REG[1] = p1;
11012 /* syntax/mmbuilder.nit:1448 */
11013 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_float(fra.me.REG[1])(fra.me.REG[1]);
11014 goto label1;
11015 label1: while(0);
11016 stack_frame_head = fra.me.prev;
11017 return fra.me.REG[1];
11018 }
11019 val_t syntax___mmbuilder___ANewExpr___get_easy_stype(val_t p0, val_t p1){
11020 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11021 val_t tmp;
11022 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11023 fra.me.file = LOCATE_syntax___mmbuilder;
11024 fra.me.line = 1452;
11025 fra.me.meth = LOCATE_syntax___mmbuilder___ANewExpr___get_easy_stype;
11026 fra.me.has_broke = 0;
11027 fra.me.REG_size = 2;
11028 fra.me.nitni_local_ref_head = NULL;
11029 fra.me.REG[0] = NIT_NULL;
11030 fra.me.REG[1] = NIT_NULL;
11031 fra.me.REG[0] = p0;
11032 fra.me.REG[1] = p1;
11033 /* syntax/mmbuilder.nit:1452 */
11034 fra.me.REG[0] = CALL_parser___parser_nodes___ANewExpr___n_type(fra.me.REG[0])(fra.me.REG[0]);
11035 fra.me.REG[1] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
11036 goto label1;
11037 label1: while(0);
11038 stack_frame_head = fra.me.prev;
11039 return fra.me.REG[1];
11040 }