update c_src (now with ffi)
[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 static const char LOCATE_syntax___mmbuilder___ToolContext___handle_property_conflict[] = "mmbuilder::ToolContext::(inheritance::MMContext::handle_property_conflict)";
4 void syntax___mmbuilder___ToolContext___handle_property_conflict(val_t p0, val_t p1, val_t p2){
5 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
6 val_t REGB0;
7 val_t REGB1;
8 val_t REGB2;
9 val_t tmp;
10 static val_t once_value_2; /* Once value */
11 static val_t once_value_3; /* Once value */
12 static val_t once_value_4; /* Once value */
13 static val_t once_value_5; /* Once value */
14 static val_t once_value_6; /* Once value */
15 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16 fra.me.file = LOCATE_syntax___mmbuilder;
17 fra.me.line = 26;
18 fra.me.meth = LOCATE_syntax___mmbuilder___ToolContext___handle_property_conflict;
19 fra.me.has_broke = 0;
20 fra.me.REG_size = 8;
21 fra.me.nitni_local_ref_head = NULL;
22 fra.me.REG[0] = NIT_NULL;
23 fra.me.REG[1] = NIT_NULL;
24 fra.me.REG[2] = NIT_NULL;
25 fra.me.REG[3] = NIT_NULL;
26 fra.me.REG[4] = NIT_NULL;
27 fra.me.REG[5] = NIT_NULL;
28 fra.me.REG[6] = NIT_NULL;
29 fra.me.REG[7] = NIT_NULL;
30 fra.me.REG[0] = p0;
31 fra.me.REG[1] = p1;
32 fra.me.REG[2] = p2;
33 /* syntax/mmbuilder.nit:28 */
34 fra.me.REG[3] = NIT_NULL;
35 /* syntax/mmbuilder.nit:29 */
36 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_syntax___syntax_base___MMSrcLocalClass, ID_syntax___syntax_base___MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
37 if (UNTAG_Bool(REGB0)) {
38 /* syntax/mmbuilder.nit:30 */
39 fra.me.REG[4] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[1])(fra.me.REG[1]);
40 /* syntax/mmbuilder.nit:31 */
41 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
42 if (UNTAG_Bool(REGB0)) {
43 } else {
44 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
45 if (UNTAG_Bool(REGB1)) {
46 REGB1 = TAG_Bool(0);
47 REGB0 = REGB1;
48 } else {
49 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
50 REGB0 = REGB1;
51 }
52 }
53 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
54 if (UNTAG_Bool(REGB0)) {
55 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
56 if (UNTAG_Bool(REGB0)) {
57 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 31);
58 }
59 CALL_parser___parser_nodes___ANode___location(fra.me.REG[4])(fra.me.REG[4]);
60 }
61 }
62 /* syntax/mmbuilder.nit:34 */
63 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
64 /* ../lib/standard/collection/array.nit:266 */
65 fra.me.REG[5] = fra.me.REG[2];
66 /* ../lib/standard/collection/array.nit:269 */
67 REGB0 = TAG_Int(0);
68 /* ../lib/standard/collection/array.nit:270 */
69 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
70 if (UNTAG_Bool(REGB1)) {
71 } else {
72 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
73 }
74 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
75 /* ../lib/standard/collection/array.nit:271 */
76 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
77 /* ../lib/standard/collection/array.nit:272 */
78 while(1) {
79 /* ../lib/standard/collection/array.nit:24 */
80 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
81 if (UNTAG_Bool(REGB1)) {
82 } else {
83 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
84 }
85 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
86 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
87 if (UNTAG_Bool(REGB2)) {
88 } else {
89 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
90 }
91 /* ../lib/standard/kernel.nit:235 */
92 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
93 /* ../lib/standard/collection/array.nit:272 */
94 if (UNTAG_Bool(REGB1)) {
95 /* ../lib/standard/collection/array.nit:273 */
96 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
97 if (UNTAG_Bool(REGB1)) {
98 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
99 }
100 /* ../lib/standard/collection/array.nit:718 */
101 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
102 /* syntax/mmbuilder.nit:36 */
103 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[7])(fra.me.REG[7]);
104 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
105 /* ../lib/standard/collection/array.nit:274 */
106 REGB1 = TAG_Int(1);
107 /* ../lib/standard/kernel.nit:238 */
108 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
109 /* ../lib/standard/collection/array.nit:274 */
110 REGB0 = REGB1;
111 } else {
112 /* ../lib/standard/collection/array.nit:272 */
113 goto label1;
114 }
115 }
116 label1: while(0);
117 /* syntax/mmbuilder.nit:38 */
118 REGB0 = TAG_Int(7);
119 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
120 if (!once_value_2) {
121 fra.me.REG[5] = BOX_NativeString("Property inheritance conflict in class ");
122 REGB0 = TAG_Int(39);
123 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
124 once_value_2 = fra.me.REG[5];
125 register_static_object(&once_value_2);
126 } else fra.me.REG[5] = once_value_2;
127 fra.me.REG[5] = fra.me.REG[5];
128 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
129 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
130 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1]);
131 if (!once_value_3) {
132 fra.me.REG[1] = BOX_NativeString(" for `");
133 REGB0 = TAG_Int(6);
134 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
135 once_value_3 = fra.me.REG[1];
136 register_static_object(&once_value_3);
137 } else fra.me.REG[1] = once_value_3;
138 fra.me.REG[1] = fra.me.REG[1];
139 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1]);
140 fra.me.REG[2] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]);
141 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
142 if (UNTAG_Bool(REGB0)) {
143 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 38);
144 }
145 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
146 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
147 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
148 if (!once_value_4) {
149 fra.me.REG[2] = BOX_NativeString("': conflicting properties are defined in ");
150 REGB0 = TAG_Int(41);
151 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
152 once_value_4 = fra.me.REG[2];
153 register_static_object(&once_value_4);
154 } else fra.me.REG[2] = once_value_4;
155 fra.me.REG[2] = fra.me.REG[2];
156 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
157 if (!once_value_5) {
158 fra.me.REG[2] = BOX_NativeString(", ");
159 REGB0 = TAG_Int(2);
160 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
161 once_value_5 = fra.me.REG[2];
162 register_static_object(&once_value_5);
163 } else fra.me.REG[2] = once_value_5;
164 fra.me.REG[2] = fra.me.REG[2];
165 fra.me.REG[2] = CALL_standard___string___Collection___join(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
166 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
167 if (!once_value_6) {
168 fra.me.REG[2] = BOX_NativeString("");
169 REGB0 = TAG_Int(0);
170 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
171 once_value_6 = fra.me.REG[2];
172 register_static_object(&once_value_6);
173 } else fra.me.REG[2] = once_value_6;
174 fra.me.REG[2] = fra.me.REG[2];
175 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
176 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
177 CALL_toolcontext___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[6]);
178 stack_frame_head = fra.me.prev;
179 return;
180 }
181 static const char LOCATE_syntax___mmbuilder___CSHSorter___compare[] = "mmbuilder::CSHSorter::(sorter::AbstractSorter::compare)";
182 val_t syntax___mmbuilder___CSHSorter___compare(val_t p0, val_t p1, val_t p2){
183 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
184 val_t REGB0;
185 val_t REGB1;
186 val_t tmp;
187 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
188 fra.me.file = LOCATE_syntax___mmbuilder;
189 fra.me.line = 45;
190 fra.me.meth = LOCATE_syntax___mmbuilder___CSHSorter___compare;
191 fra.me.has_broke = 0;
192 fra.me.REG_size = 3;
193 fra.me.nitni_local_ref_head = NULL;
194 fra.me.REG[0] = NIT_NULL;
195 fra.me.REG[1] = NIT_NULL;
196 fra.me.REG[2] = NIT_NULL;
197 fra.me.REG[0] = p0;
198 fra.me.REG[1] = p1;
199 fra.me.REG[2] = p2;
200 /* syntax/mmbuilder.nit:47 */
201 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[1])(fra.me.REG[1]);
202 REGB0 = CALL_metamodel___partial_order___PartialOrderElement___rank(fra.me.REG[1])(fra.me.REG[1]);
203 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[2])(fra.me.REG[2]);
204 REGB1 = CALL_metamodel___partial_order___PartialOrderElement___rank(fra.me.REG[2])(fra.me.REG[2]);
205 REGB1 = CALL_standard___kernel___Comparable_____leqg(REGB0)(REGB0, REGB1);
206 goto label1;
207 label1: while(0);
208 stack_frame_head = fra.me.prev;
209 return REGB1;
210 }
211 static const char LOCATE_syntax___mmbuilder___CSHSorter___init[] = "mmbuilder::CSHSorter::init";
212 void syntax___mmbuilder___CSHSorter___init(val_t p0, int* init_table){
213 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___CSHSorter].i;
214 struct {struct stack_frame_t me;} fra;
215 val_t tmp;
216 if (init_table[itpos0]) return;
217 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
218 fra.me.file = LOCATE_syntax___mmbuilder;
219 fra.me.line = 50;
220 fra.me.meth = LOCATE_syntax___mmbuilder___CSHSorter___init;
221 fra.me.has_broke = 0;
222 fra.me.REG_size = 1;
223 fra.me.nitni_local_ref_head = NULL;
224 fra.me.REG[0] = NIT_NULL;
225 fra.me.REG[0] = p0;
226 stack_frame_head = fra.me.prev;
227 init_table[itpos0] = 1;
228 return;
229 }
230 static const char LOCATE_syntax___mmbuilder___MMSrcModule___do_mmbuilder[] = "mmbuilder::MMSrcModule::do_mmbuilder";
231 void syntax___mmbuilder___MMSrcModule___do_mmbuilder(val_t p0, val_t p1){
232 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
233 val_t REGB0;
234 val_t REGB1;
235 val_t REGB2;
236 val_t tmp;
237 static val_t once_value_3; /* Once value */
238 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
239 fra.me.file = LOCATE_syntax___mmbuilder;
240 fra.me.line = 54;
241 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcModule___do_mmbuilder;
242 fra.me.has_broke = 0;
243 fra.me.REG_size = 8;
244 fra.me.nitni_local_ref_head = NULL;
245 fra.me.REG[0] = NIT_NULL;
246 fra.me.REG[1] = NIT_NULL;
247 fra.me.REG[2] = NIT_NULL;
248 fra.me.REG[3] = NIT_NULL;
249 fra.me.REG[4] = NIT_NULL;
250 fra.me.REG[5] = NIT_NULL;
251 fra.me.REG[6] = NIT_NULL;
252 fra.me.REG[7] = NIT_NULL;
253 fra.me.REG[0] = p0;
254 fra.me.REG[1] = p1;
255 /* syntax/mmbuilder.nit:59 */
256 CALL_metamodel___inheritance___MMModule___import_global_classes(fra.me.REG[0])(fra.me.REG[0]);
257 /* syntax/mmbuilder.nit:62 */
258 fra.me.REG[2] = NEW_ClassBuilderVisitor_syntax___mmbuilder___ClassBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]);
259 /* syntax/mmbuilder.nit:63 */
260 fra.me.REG[3] = CALL_syntax___syntax_base___MMSrcModule___node(fra.me.REG[0])(fra.me.REG[0]);
261 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
262 /* syntax/mmbuilder.nit:64 */
263 CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
264 /* syntax/mmbuilder.nit:66 */
265 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra.me.REG[0])(fra.me.REG[0]);
266 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
267 if (UNTAG_Bool(REGB0)) {
268 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 66);
269 }
270 fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[3])(fra.me.REG[3]);
271 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
272 if (UNTAG_Bool(REGB0)) {
273 /* syntax/mmbuilder.nit:67 */
274 CALL_syntax___mmbuilder___MMSrcModule___process_default_classes(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
275 }
276 /* syntax/mmbuilder.nit:71 */
277 CALL_metamodel___inheritance___MMModule___import_local_classes(fra.me.REG[0])(fra.me.REG[0]);
278 /* syntax/mmbuilder.nit:74 */
279 fra.me.REG[3] = NEW_ClassSpecializationBuilderVisitor_syntax___mmbuilder___ClassSpecializationBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]);
280 /* syntax/mmbuilder.nit:75 */
281 fra.me.REG[2] = CALL_syntax___syntax_base___MMSrcModule___node(fra.me.REG[0])(fra.me.REG[0]);
282 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
283 /* syntax/mmbuilder.nit:76 */
284 CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
285 /* syntax/mmbuilder.nit:79 */
286 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
287 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));
288 /* syntax/mmbuilder.nit:85 */
289 CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
290 /* syntax/mmbuilder.nit:90 */
291 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___class_specialization_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
292 fra.me.REG[2] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[2])(fra.me.REG[2]);
293 /* syntax/mmbuilder.nit:93 */
294 if (!once_value_3) {
295 fra.me.REG[3] = NEW_CSHSorter_syntax___mmbuilder___CSHSorter___init();
296 once_value_3 = fra.me.REG[3];
297 register_static_object(&once_value_3);
298 } else fra.me.REG[3] = once_value_3;
299 fra.me.REG[3] = fra.me.REG[3];
300 /* syntax/mmbuilder.nit:94 */
301 CALL_standard___collection___sorter___AbstractSorter___sort(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
302 /* syntax/mmbuilder.nit:97 */
303 fra.me.REG[3] = NEW_ClassAncestorBuilder_syntax___mmbuilder___ClassAncestorBuilder___init(fra.me.REG[1], fra.me.REG[0]);
304 /* ../lib/standard/collection/array.nit:266 */
305 fra.me.REG[4] = fra.me.REG[2];
306 /* ../lib/standard/collection/array.nit:269 */
307 REGB0 = TAG_Int(0);
308 /* ../lib/standard/collection/array.nit:270 */
309 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
310 if (UNTAG_Bool(REGB1)) {
311 } else {
312 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
313 }
314 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
315 /* ../lib/standard/collection/array.nit:271 */
316 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
317 /* ../lib/standard/collection/array.nit:272 */
318 while(1) {
319 /* ../lib/standard/collection/array.nit:24 */
320 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
321 if (UNTAG_Bool(REGB1)) {
322 } else {
323 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
324 }
325 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
326 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
327 if (UNTAG_Bool(REGB2)) {
328 } else {
329 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
330 }
331 /* ../lib/standard/kernel.nit:235 */
332 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
333 /* ../lib/standard/collection/array.nit:272 */
334 if (UNTAG_Bool(REGB1)) {
335 /* ../lib/standard/collection/array.nit:273 */
336 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
337 if (UNTAG_Bool(REGB1)) {
338 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
339 }
340 /* ../lib/standard/collection/array.nit:718 */
341 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
342 /* syntax/mmbuilder.nit:99 */
343 CALL_syntax___mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
344 /* syntax/mmbuilder.nit:100 */
345 CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
346 /* syntax/mmbuilder.nit:101 */
347 CALL_metamodel___inheritance___MMLocalClass___compute_ancestors(fra.me.REG[6])(fra.me.REG[6]);
348 /* ../lib/standard/collection/array.nit:274 */
349 REGB1 = TAG_Int(1);
350 /* ../lib/standard/kernel.nit:238 */
351 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
352 /* ../lib/standard/collection/array.nit:274 */
353 REGB0 = REGB1;
354 } else {
355 /* ../lib/standard/collection/array.nit:272 */
356 goto label4;
357 }
358 }
359 label4: while(0);
360 /* syntax/mmbuilder.nit:105 */
361 fra.me.REG[3] = NEW_ClassVerifierVisitor_syntax___mmbuilder___ClassVerifierVisitor___init(fra.me.REG[1], fra.me.REG[0]);
362 /* ../lib/standard/collection/array.nit:266 */
363 fra.me.REG[5] = fra.me.REG[2];
364 /* ../lib/standard/collection/array.nit:269 */
365 REGB0 = TAG_Int(0);
366 /* ../lib/standard/collection/array.nit:270 */
367 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
368 if (UNTAG_Bool(REGB1)) {
369 } else {
370 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
371 }
372 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
373 /* ../lib/standard/collection/array.nit:271 */
374 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
375 /* ../lib/standard/collection/array.nit:272 */
376 while(1) {
377 /* ../lib/standard/collection/array.nit:24 */
378 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
379 if (UNTAG_Bool(REGB1)) {
380 } else {
381 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
382 }
383 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
384 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
385 if (UNTAG_Bool(REGB2)) {
386 } else {
387 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
388 }
389 /* ../lib/standard/kernel.nit:235 */
390 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
391 /* ../lib/standard/collection/array.nit:272 */
392 if (UNTAG_Bool(REGB1)) {
393 /* ../lib/standard/collection/array.nit:273 */
394 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
395 if (UNTAG_Bool(REGB1)) {
396 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
397 }
398 /* ../lib/standard/collection/array.nit:718 */
399 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
400 /* syntax/mmbuilder.nit:107 */
401 CALL_syntax___mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
402 /* ../lib/standard/collection/array.nit:274 */
403 REGB1 = TAG_Int(1);
404 /* ../lib/standard/kernel.nit:238 */
405 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
406 /* ../lib/standard/collection/array.nit:274 */
407 REGB0 = REGB1;
408 } else {
409 /* ../lib/standard/collection/array.nit:272 */
410 goto label5;
411 }
412 }
413 label5: while(0);
414 /* syntax/mmbuilder.nit:109 */
415 CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
416 /* syntax/mmbuilder.nit:112 */
417 fra.me.REG[3] = NEW_PropertyBuilderVisitor_syntax___mmbuilder___PropertyBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]);
418 /* ../lib/standard/collection/array.nit:266 */
419 fra.me.REG[4] = fra.me.REG[2];
420 /* ../lib/standard/collection/array.nit:269 */
421 REGB0 = TAG_Int(0);
422 /* ../lib/standard/collection/array.nit:270 */
423 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
424 if (UNTAG_Bool(REGB1)) {
425 } else {
426 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
427 }
428 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
429 /* ../lib/standard/collection/array.nit:271 */
430 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
431 /* ../lib/standard/collection/array.nit:272 */
432 while(1) {
433 /* ../lib/standard/collection/array.nit:24 */
434 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
435 if (UNTAG_Bool(REGB1)) {
436 } else {
437 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
438 }
439 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
440 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
441 if (UNTAG_Bool(REGB2)) {
442 } else {
443 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
444 }
445 /* ../lib/standard/kernel.nit:235 */
446 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
447 /* ../lib/standard/collection/array.nit:272 */
448 if (UNTAG_Bool(REGB1)) {
449 /* ../lib/standard/collection/array.nit:273 */
450 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
451 if (UNTAG_Bool(REGB1)) {
452 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
453 }
454 /* ../lib/standard/collection/array.nit:718 */
455 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
456 /* syntax/mmbuilder.nit:115 */
457 CALL_syntax___mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
458 /* syntax/mmbuilder.nit:118 */
459 REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[6], COLOR_syntax___syntax_base___MMSrcLocalClass, ID_syntax___syntax_base___MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
460 if (UNTAG_Bool(REGB1)) {
461 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
462 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[7])(fra.me.REG[7]);
463 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[7],fra.me.REG[6]));
464 if (UNTAG_Bool(REGB1)) {
465 } else {
466 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
467 REGB1 = REGB2;
468 }
469 } else {
470 REGB2 = TAG_Bool(0);
471 REGB1 = REGB2;
472 }
473 if (UNTAG_Bool(REGB1)) {
474 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
475 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[7])(fra.me.REG[7]);
476 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
477 } else {
478 REGB2 = TAG_Bool(0);
479 REGB1 = REGB2;
480 }
481 if (UNTAG_Bool(REGB1)) {
482 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
483 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[7])(fra.me.REG[7]);
484 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
485 } else {
486 REGB2 = TAG_Bool(0);
487 REGB1 = REGB2;
488 }
489 if (UNTAG_Bool(REGB1)) {
490 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
491 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[7])(fra.me.REG[7]);
492 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
493 } else {
494 REGB2 = TAG_Bool(0);
495 REGB1 = REGB2;
496 }
497 if (UNTAG_Bool(REGB1)) {
498 /* syntax/mmbuilder.nit:119 */
499 CALL_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
500 }
501 /* ../lib/standard/collection/array.nit:274 */
502 REGB1 = TAG_Int(1);
503 /* ../lib/standard/kernel.nit:238 */
504 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
505 /* ../lib/standard/collection/array.nit:274 */
506 REGB0 = REGB1;
507 } else {
508 /* ../lib/standard/collection/array.nit:272 */
509 goto label6;
510 }
511 }
512 label6: while(0);
513 /* syntax/mmbuilder.nit:124 */
514 CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
515 /* syntax/mmbuilder.nit:127 */
516 fra.me.REG[0] = NEW_PropertyVerifierVisitor_syntax___mmbuilder___PropertyVerifierVisitor___init(fra.me.REG[1], fra.me.REG[0]);
517 /* ../lib/standard/collection/array.nit:269 */
518 REGB0 = TAG_Int(0);
519 /* ../lib/standard/collection/array.nit:270 */
520 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
521 if (UNTAG_Bool(REGB1)) {
522 } else {
523 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
524 }
525 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
526 /* ../lib/standard/collection/array.nit:271 */
527 fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
528 /* ../lib/standard/collection/array.nit:272 */
529 while(1) {
530 /* ../lib/standard/collection/array.nit:24 */
531 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
532 if (UNTAG_Bool(REGB1)) {
533 } else {
534 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
535 }
536 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
537 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
538 if (UNTAG_Bool(REGB2)) {
539 } else {
540 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
541 }
542 /* ../lib/standard/kernel.nit:235 */
543 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
544 /* ../lib/standard/collection/array.nit:272 */
545 if (UNTAG_Bool(REGB1)) {
546 /* ../lib/standard/collection/array.nit:273 */
547 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
548 if (UNTAG_Bool(REGB1)) {
549 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
550 }
551 /* ../lib/standard/collection/array.nit:718 */
552 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
553 /* syntax/mmbuilder.nit:129 */
554 CALL_syntax___mmbuilder___MMLocalClass___accept_properties_visitor(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
555 /* ../lib/standard/collection/array.nit:274 */
556 REGB1 = TAG_Int(1);
557 /* ../lib/standard/kernel.nit:238 */
558 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
559 /* ../lib/standard/collection/array.nit:274 */
560 REGB0 = REGB1;
561 } else {
562 /* ../lib/standard/collection/array.nit:272 */
563 goto label7;
564 }
565 }
566 label7: while(0);
567 /* syntax/mmbuilder.nit:132 */
568 CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
569 stack_frame_head = fra.me.prev;
570 return;
571 }
572 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){
573 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
574 val_t REGB0;
575 val_t REGB1;
576 val_t REGB2;
577 fun_t CREG[1];
578 val_t tmp;
579 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
580 fra.me.file = LOCATE_syntax___mmbuilder;
581 fra.me.line = 0;
582 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcModule___do_mmbuilder;
583 fra.me.has_broke = 0;
584 fra.me.REG_size = 2;
585 fra.me.nitni_local_ref_head = NULL;
586 fra.me.REG[0] = NIT_NULL;
587 fra.me.REG[1] = NIT_NULL;
588 fra.me.closure_ctx = closctx_param;
589 fra.me.closure_funs = CREG;
590 fra.me.REG[0] = p0;
591 CREG[0] = clos_fun0;
592 /* syntax/mmbuilder.nit:80 */
593 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
594 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
595 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
596 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___visibility_for(closctx->REG[0])(closctx->REG[0], fra.me.REG[1]);
597 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
598 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[1])(fra.me.REG[1]);
599 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
600 if (UNTAG_Bool(REGB2)) {
601 } else {
602 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
603 }
604 /* ../lib/standard/kernel.nit:235 */
605 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
606 /* syntax/mmbuilder.nit:80 */
607 if (UNTAG_Bool(REGB1)) {
608 /* syntax/mmbuilder.nit:81 */
609 goto label2;
610 }
611 /* syntax/mmbuilder.nit:83 */
612 CALL_metamodel___inheritance___MMLocalClass___compute_super_classes(fra.me.REG[0])(fra.me.REG[0]);
613 label2: while(0);
614 stack_frame_head = fra.me.prev;
615 return;
616 }
617 static const char LOCATE_syntax___mmbuilder___MMSrcModule___process_default_classes[] = "mmbuilder::MMSrcModule::process_default_classes";
618 void syntax___mmbuilder___MMSrcModule___process_default_classes(val_t p0, val_t p1){
619 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
620 val_t REGB0;
621 val_t tmp;
622 static val_t once_value_1; /* Once value */
623 static val_t once_value_2; /* Once value */
624 static val_t once_value_3; /* Once value */
625 static val_t once_value_4; /* Once value */
626 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
627 fra.me.file = LOCATE_syntax___mmbuilder;
628 fra.me.line = 135;
629 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcModule___process_default_classes;
630 fra.me.has_broke = 0;
631 fra.me.REG_size = 4;
632 fra.me.nitni_local_ref_head = NULL;
633 fra.me.REG[0] = NIT_NULL;
634 fra.me.REG[1] = NIT_NULL;
635 fra.me.REG[2] = NIT_NULL;
636 fra.me.REG[3] = NIT_NULL;
637 fra.me.REG[0] = p0;
638 fra.me.REG[1] = p1;
639 /* syntax/mmbuilder.nit:138 */
640 if (!once_value_1) {
641 if (!once_value_2) {
642 fra.me.REG[1] = BOX_NativeString("Object");
643 REGB0 = TAG_Int(6);
644 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
645 once_value_2 = fra.me.REG[1];
646 register_static_object(&once_value_2);
647 } else fra.me.REG[1] = once_value_2;
648 fra.me.REG[1] = fra.me.REG[1];
649 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
650 once_value_1 = fra.me.REG[1];
651 register_static_object(&once_value_1);
652 } else fra.me.REG[1] = once_value_1;
653 fra.me.REG[1] = fra.me.REG[1];
654 /* syntax/mmbuilder.nit:139 */
655 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
656 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
657 if (UNTAG_Bool(REGB0)) {
658 /* syntax/mmbuilder.nit:140 */
659 REGB0 = TAG_Int(0);
660 fra.me.REG[2] = NEW_MMSrcLocalClass_syntax___syntax_base___MMSrcLocalClass___init(fra.me.REG[0], fra.me.REG[1], NIT_NULL, REGB0);
661 /* syntax/mmbuilder.nit:141 */
662 CALL_metamodel___abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
663 /* syntax/mmbuilder.nit:142 */
664 fra.me.REG[3] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra.me.REG[0])(fra.me.REG[0]);
665 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[2]);
666 }
667 /* syntax/mmbuilder.nit:144 */
668 if (!once_value_3) {
669 if (!once_value_4) {
670 fra.me.REG[2] = BOX_NativeString("Bool");
671 REGB0 = TAG_Int(4);
672 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
673 once_value_4 = fra.me.REG[2];
674 register_static_object(&once_value_4);
675 } else fra.me.REG[2] = once_value_4;
676 fra.me.REG[2] = fra.me.REG[2];
677 fra.me.REG[2] = CALL_symbol___String___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
678 once_value_3 = fra.me.REG[2];
679 register_static_object(&once_value_3);
680 } else fra.me.REG[2] = once_value_3;
681 fra.me.REG[2] = fra.me.REG[2];
682 fra.me.REG[1] = fra.me.REG[2];
683 /* syntax/mmbuilder.nit:145 */
684 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
685 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
686 if (UNTAG_Bool(REGB0)) {
687 /* syntax/mmbuilder.nit:146 */
688 REGB0 = TAG_Int(0);
689 fra.me.REG[2] = NEW_MMSrcLocalClass_syntax___syntax_base___MMSrcLocalClass___init(fra.me.REG[0], fra.me.REG[1], NIT_NULL, REGB0);
690 /* syntax/mmbuilder.nit:147 */
691 CALL_metamodel___abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
692 /* syntax/mmbuilder.nit:148 */
693 fra.me.REG[0] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra.me.REG[0])(fra.me.REG[0]);
694 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
695 }
696 stack_frame_head = fra.me.prev;
697 return;
698 }
699 static const char LOCATE_syntax___mmbuilder___MMLocalClass___accept_class_visitor[] = "mmbuilder::MMLocalClass::accept_class_visitor";
700 void syntax___mmbuilder___MMLocalClass___accept_class_visitor(val_t p0, val_t p1){
701 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
702 val_t tmp;
703 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
704 fra.me.file = LOCATE_syntax___mmbuilder;
705 fra.me.line = 154;
706 fra.me.meth = LOCATE_syntax___mmbuilder___MMLocalClass___accept_class_visitor;
707 fra.me.has_broke = 0;
708 fra.me.REG_size = 2;
709 fra.me.nitni_local_ref_head = NULL;
710 fra.me.REG[0] = NIT_NULL;
711 fra.me.REG[1] = NIT_NULL;
712 fra.me.REG[0] = p0;
713 fra.me.REG[1] = p1;
714 stack_frame_head = fra.me.prev;
715 return;
716 }
717 static const char LOCATE_syntax___mmbuilder___MMLocalClass___accept_properties_visitor[] = "mmbuilder::MMLocalClass::accept_properties_visitor";
718 void syntax___mmbuilder___MMLocalClass___accept_properties_visitor(val_t p0, val_t p1){
719 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
720 val_t tmp;
721 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
722 fra.me.file = LOCATE_syntax___mmbuilder;
723 fra.me.line = 159;
724 fra.me.meth = LOCATE_syntax___mmbuilder___MMLocalClass___accept_properties_visitor;
725 fra.me.has_broke = 0;
726 fra.me.REG_size = 2;
727 fra.me.nitni_local_ref_head = NULL;
728 fra.me.REG[0] = NIT_NULL;
729 fra.me.REG[1] = NIT_NULL;
730 fra.me.REG[0] = p0;
731 fra.me.REG[1] = p1;
732 stack_frame_head = fra.me.prev;
733 return;
734 }
735 static const char LOCATE_syntax___mmbuilder___MMSrcLocalClass___accept_class_visitor[] = "mmbuilder::MMSrcLocalClass::(mmbuilder::MMLocalClass::accept_class_visitor)";
736 void syntax___mmbuilder___MMSrcLocalClass___accept_class_visitor(val_t p0, val_t p1){
737 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
738 val_t REGB0;
739 val_t REGB1;
740 val_t tmp;
741 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
742 fra.me.file = LOCATE_syntax___mmbuilder;
743 fra.me.line = 166;
744 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___accept_class_visitor;
745 fra.me.has_broke = 0;
746 fra.me.REG_size = 3;
747 fra.me.nitni_local_ref_head = NULL;
748 fra.me.REG[0] = NIT_NULL;
749 fra.me.REG[1] = NIT_NULL;
750 fra.me.REG[2] = NIT_NULL;
751 fra.me.REG[0] = p0;
752 fra.me.REG[1] = p1;
753 /* syntax/mmbuilder.nit:168 */
754 fra.me.REG[0] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[0])(fra.me.REG[0]);
755 /* syntax/mmbuilder.nit:169 */
756 while(1) {
757 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
758 if (UNTAG_Bool(REGB0)) {
759 } else {
760 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
761 if (UNTAG_Bool(REGB1)) {
762 REGB1 = TAG_Bool(0);
763 REGB0 = REGB1;
764 } else {
765 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
766 REGB0 = REGB1;
767 }
768 }
769 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
770 if (UNTAG_Bool(REGB0)) {
771 /* syntax/mmbuilder.nit:170 */
772 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
773 /* syntax/mmbuilder.nit:171 */
774 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
775 if (UNTAG_Bool(REGB0)) {
776 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 171);
777 }
778 fra.me.REG[2] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[0])(fra.me.REG[0]);
779 fra.me.REG[0] = fra.me.REG[2];
780 } else {
781 /* syntax/mmbuilder.nit:169 */
782 goto label1;
783 }
784 }
785 label1: while(0);
786 stack_frame_head = fra.me.prev;
787 return;
788 }
789 static const char LOCATE_syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor[] = "mmbuilder::MMSrcLocalClass::(mmbuilder::MMLocalClass::accept_properties_visitor)";
790 void syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor(val_t p0, val_t p1){
791 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
792 val_t REGB0;
793 val_t REGB1;
794 val_t tmp;
795 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
796 fra.me.file = LOCATE_syntax___mmbuilder;
797 fra.me.line = 175;
798 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor;
799 fra.me.has_broke = 0;
800 fra.me.REG_size = 4;
801 fra.me.nitni_local_ref_head = NULL;
802 fra.me.REG[0] = NIT_NULL;
803 fra.me.REG[1] = NIT_NULL;
804 fra.me.REG[2] = NIT_NULL;
805 fra.me.REG[3] = NIT_NULL;
806 fra.me.REG[0] = p0;
807 fra.me.REG[1] = p1;
808 /* syntax/mmbuilder.nit:178 */
809 fra.me.REG[2] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[0])(fra.me.REG[0]);
810 /* syntax/mmbuilder.nit:179 */
811 while(1) {
812 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
813 if (UNTAG_Bool(REGB0)) {
814 } else {
815 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
816 if (UNTAG_Bool(REGB1)) {
817 REGB1 = TAG_Bool(0);
818 REGB0 = REGB1;
819 } else {
820 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
821 REGB0 = REGB1;
822 }
823 }
824 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
825 if (UNTAG_Bool(REGB0)) {
826 /* syntax/mmbuilder.nit:180 */
827 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
828 /* syntax/mmbuilder.nit:181 */
829 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
830 if (UNTAG_Bool(REGB0)) {
831 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 181);
832 }
833 fra.me.REG[3] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[2])(fra.me.REG[2]);
834 fra.me.REG[2] = fra.me.REG[3];
835 } else {
836 /* syntax/mmbuilder.nit:179 */
837 goto label1;
838 }
839 }
840 label1: while(0);
841 /* syntax/mmbuilder.nit:184 */
842 fra.me.REG[0] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
843 fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead___values(fra.me.REG[0])(fra.me.REG[0]);
844 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));
845 stack_frame_head = fra.me.prev;
846 return;
847 }
848 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){
849 struct {struct stack_frame_t me;} fra;
850 fun_t CREG[1];
851 val_t tmp;
852 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
853 fra.me.file = LOCATE_syntax___mmbuilder;
854 fra.me.line = 0;
855 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor;
856 fra.me.has_broke = 0;
857 fra.me.REG_size = 1;
858 fra.me.nitni_local_ref_head = NULL;
859 fra.me.REG[0] = NIT_NULL;
860 fra.me.closure_ctx = closctx_param;
861 fra.me.closure_funs = CREG;
862 fra.me.REG[0] = p0;
863 CREG[0] = clos_fun0;
864 /* syntax/mmbuilder.nit:185 */
865 CALL_syntax___mmbuilder___MMLocalProperty___accept_property_visitor(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
866 stack_frame_head = fra.me.prev;
867 return;
868 }
869 static const char LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors[] = "mmbuilder::MMSrcLocalClass::process_default_constructors";
870 void syntax___mmbuilder___MMSrcLocalClass___process_default_constructors(val_t p0, val_t p1){
871 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
872 val_t REGB0;
873 val_t REGB1;
874 val_t REGB2;
875 val_t tmp;
876 static val_t once_value_7; /* Once value */
877 static val_t once_value_8; /* Once value */
878 static val_t once_value_13; /* Once value */
879 static val_t once_value_14; /* Once value */
880 static val_t once_value_15; /* Once value */
881 static val_t once_value_16; /* Once value */
882 static val_t once_value_17; /* Once value */
883 static val_t once_value_18; /* Once value */
884 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
885 fra.me.file = LOCATE_syntax___mmbuilder;
886 fra.me.line = 189;
887 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
888 fra.me.has_broke = 0;
889 fra.me.REG_size = 11;
890 fra.me.nitni_local_ref_head = NULL;
891 fra.me.REG[0] = NIT_NULL;
892 fra.me.REG[1] = NIT_NULL;
893 fra.me.REG[2] = NIT_NULL;
894 fra.me.REG[3] = NIT_NULL;
895 fra.me.REG[4] = NIT_NULL;
896 fra.me.REG[5] = NIT_NULL;
897 fra.me.REG[6] = NIT_NULL;
898 fra.me.REG[7] = NIT_NULL;
899 fra.me.REG[8] = NIT_NULL;
900 fra.me.REG[9] = NIT_NULL;
901 fra.me.REG[10] = NIT_NULL;
902 fra.me.REG[0] = p0;
903 fra.me.REG[1] = p1;
904 /* syntax/mmbuilder.nit:189 */
905 fra.me.REG[2] = fra.me.REG[0];
906 /* syntax/mmbuilder.nit:193 */
907 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[2])(fra.me.REG[2]);
908 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_1));
909 switch ((&(fra.me))->has_broke) {
910 case 0: break;
911 case 1: (&(fra.me))->has_broke = 0; goto label3;
912 }
913 /* syntax/mmbuilder.nit:201 */
914 fra.me.REG[3] = NEW_ArraySet_standard___collection___array___ArraySet___init();
915 /* syntax/mmbuilder.nit:202 */
916 fra.me.REG[4] = NEW_ArraySet_standard___collection___array___ArraySet___init();
917 /* syntax/mmbuilder.nit:203 */
918 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[2])(fra.me.REG[2]);
919 fra.me.REG[5] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[5])(fra.me.REG[5]);
920 /* ../lib/standard/collection/array.nit:269 */
921 REGB0 = TAG_Int(0);
922 /* ../lib/standard/collection/array.nit:270 */
923 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
924 if (UNTAG_Bool(REGB1)) {
925 } else {
926 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
927 }
928 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
929 /* ../lib/standard/collection/array.nit:271 */
930 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
931 /* ../lib/standard/collection/array.nit:272 */
932 while(1) {
933 /* ../lib/standard/collection/array.nit:24 */
934 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
935 if (UNTAG_Bool(REGB1)) {
936 } else {
937 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
938 }
939 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
940 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
941 if (UNTAG_Bool(REGB2)) {
942 } else {
943 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
944 }
945 /* ../lib/standard/kernel.nit:235 */
946 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
947 /* ../lib/standard/collection/array.nit:272 */
948 if (UNTAG_Bool(REGB1)) {
949 /* ../lib/standard/collection/array.nit:273 */
950 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
951 if (UNTAG_Bool(REGB1)) {
952 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
953 }
954 /* ../lib/standard/collection/array.nit:718 */
955 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
956 /* syntax/mmbuilder.nit:204 */
957 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
958 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[8])(fra.me.REG[8]);
959 if (UNTAG_Bool(REGB1)) {
960 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
961 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[8])(fra.me.REG[8]);
962 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
963 } else {
964 REGB2 = TAG_Bool(0);
965 REGB1 = REGB2;
966 }
967 if (UNTAG_Bool(REGB1)) {
968 REGB1 = TAG_Bool(1);
969 } else {
970 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
971 REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[8])(fra.me.REG[8]);
972 REGB1 = REGB2;
973 }
974 if (UNTAG_Bool(REGB1)) {
975 goto label4;
976 }
977 /* syntax/mmbuilder.nit:205 */
978 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[7])(fra.me.REG[7]);
979 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));
980 /* syntax/mmbuilder.nit:209 */
981 if (!once_value_7) {
982 if (!once_value_8) {
983 fra.me.REG[8] = BOX_NativeString("init");
984 REGB1 = TAG_Int(4);
985 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
986 once_value_8 = fra.me.REG[8];
987 register_static_object(&once_value_8);
988 } else fra.me.REG[8] = once_value_8;
989 fra.me.REG[8] = fra.me.REG[8];
990 fra.me.REG[8] = CALL_symbol___String___to_symbol(fra.me.REG[8])(fra.me.REG[8]);
991 once_value_7 = fra.me.REG[8];
992 register_static_object(&once_value_7);
993 } else fra.me.REG[8] = once_value_7;
994 fra.me.REG[8] = fra.me.REG[8];
995 /* syntax/mmbuilder.nit:210 */
996 REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
997 if (UNTAG_Bool(REGB1)) {
998 /* syntax/mmbuilder.nit:211 */
999 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1000 /* syntax/mmbuilder.nit:212 */
1001 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]);
1002 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
1003 }
1004 label4: while(0);
1005 /* ../lib/standard/collection/array.nit:274 */
1006 REGB1 = TAG_Int(1);
1007 /* ../lib/standard/kernel.nit:238 */
1008 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1009 /* ../lib/standard/collection/array.nit:274 */
1010 REGB0 = REGB1;
1011 } else {
1012 /* ../lib/standard/collection/array.nit:272 */
1013 goto label9;
1014 }
1015 }
1016 label9: while(0);
1017 /* syntax/mmbuilder.nit:217 */
1018 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
1019 /* syntax/mmbuilder.nit:218 */
1020 fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[2])(fra.me.REG[2]);
1021 fra.me.REG[5] = CALL_standard___collection___abstract_collection___MapRead___values(fra.me.REG[5])(fra.me.REG[5]);
1022 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));
1023 /* syntax/mmbuilder.nit:225 */
1024 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[4])(fra.me.REG[4]);
1025 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1026 if (UNTAG_Bool(REGB0)) {
1027 /* syntax/mmbuilder.nit:228 */
1028 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
1029 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));
1030 /* syntax/mmbuilder.nit:236 */
1031 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[2])(fra.me.REG[2]);
1032 fra.me.REG[8] = CALL_metamodel___partial_order___PartialOrderElement___order(fra.me.REG[8])(fra.me.REG[8]);
1033 fra.me.REG[8] = CALL_metamodel___partial_order___PartialOrder___select_smallests(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
1034 fra.me.REG[5] = fra.me.REG[8];
1035 /* syntax/mmbuilder.nit:239 */
1036 fra.me.REG[8] = NIT_NULL;
1037 /* ../lib/standard/collection/array.nit:24 */
1038 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
1039 if (UNTAG_Bool(REGB0)) {
1040 } else {
1041 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1042 }
1043 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
1044 /* syntax/mmbuilder.nit:241 */
1045 REGB1 = TAG_Int(1);
1046 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1047 if (UNTAG_Bool(REGB2)) {
1048 } else {
1049 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1050 }
1051 /* ../lib/standard/kernel.nit:237 */
1052 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
1053 /* syntax/mmbuilder.nit:241 */
1054 if (UNTAG_Bool(REGB1)) {
1055 /* syntax/mmbuilder.nit:242 */
1056 fra.me.REG[7] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[2])(fra.me.REG[2]);
1057 REGB1 = TAG_Int(7);
1058 fra.me.REG[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
1059 if (!once_value_13) {
1060 fra.me.REG[10] = BOX_NativeString("Error: Explicit constructor required in ");
1061 REGB1 = TAG_Int(40);
1062 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
1063 once_value_13 = fra.me.REG[10];
1064 register_static_object(&once_value_13);
1065 } else fra.me.REG[10] = once_value_13;
1066 fra.me.REG[10] = fra.me.REG[10];
1067 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1068 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1069 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1070 if (!once_value_14) {
1071 fra.me.REG[10] = BOX_NativeString(" since multiple inheritance of constructor is forbiden. Conflicting classes are ");
1072 REGB1 = TAG_Int(80);
1073 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
1074 once_value_14 = fra.me.REG[10];
1075 register_static_object(&once_value_14);
1076 } else fra.me.REG[10] = once_value_14;
1077 fra.me.REG[10] = fra.me.REG[10];
1078 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1079 if (!once_value_15) {
1080 fra.me.REG[10] = BOX_NativeString(", ");
1081 REGB1 = TAG_Int(2);
1082 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
1083 once_value_15 = fra.me.REG[10];
1084 register_static_object(&once_value_15);
1085 } else fra.me.REG[10] = once_value_15;
1086 fra.me.REG[10] = fra.me.REG[10];
1087 fra.me.REG[10] = CALL_standard___string___Collection___join(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[10]);
1088 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1089 if (!once_value_16) {
1090 fra.me.REG[10] = BOX_NativeString(". Costructors are ");
1091 REGB1 = TAG_Int(18);
1092 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
1093 once_value_16 = fra.me.REG[10];
1094 register_static_object(&once_value_16);
1095 } else fra.me.REG[10] = once_value_16;
1096 fra.me.REG[10] = 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_17) {
1099 fra.me.REG[10] = BOX_NativeString(", ");
1100 REGB1 = TAG_Int(2);
1101 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
1102 once_value_17 = fra.me.REG[10];
1103 register_static_object(&once_value_17);
1104 } else fra.me.REG[10] = once_value_17;
1105 fra.me.REG[10] = fra.me.REG[10];
1106 fra.me.REG[10] = CALL_standard___string___Collection___join(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[10]);
1107 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1108 if (!once_value_18) {
1109 fra.me.REG[10] = BOX_NativeString(".");
1110 REGB1 = TAG_Int(1);
1111 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
1112 once_value_18 = fra.me.REG[10];
1113 register_static_object(&once_value_18);
1114 } else fra.me.REG[10] = once_value_18;
1115 fra.me.REG[10] = fra.me.REG[10];
1116 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
1117 fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
1118 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7], fra.me.REG[9]);
1119 /* syntax/mmbuilder.nit:243 */
1120 goto label3;
1121 } else {
1122 /* ../lib/standard/collection/array.nit:24 */
1123 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
1124 if (UNTAG_Bool(REGB1)) {
1125 } else {
1126 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1127 }
1128 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
1129 /* syntax/mmbuilder.nit:244 */
1130 REGB0 = TAG_Int(1);
1131 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0));
1132 if (UNTAG_Bool(REGB2)) {
1133 } else {
1134 /* ../lib/standard/kernel.nit:230 */
1135 REGB0 = TAG_Bool((REGB1)==(REGB0));
1136 /* syntax/mmbuilder.nit:244 */
1137 REGB2 = REGB0;
1138 }
1139 if (UNTAG_Bool(REGB2)) {
1140 /* syntax/mmbuilder.nit:245 */
1141 fra.me.REG[5] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[5])(fra.me.REG[5]);
1142 fra.me.REG[8] = fra.me.REG[5];
1143 }
1144 }
1145 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));
1146 /* syntax/mmbuilder.nit:254 */
1147 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
1148 REGB2 = TAG_Bool(fra.me.REG[8]!=NIT_NULL);
1149 if (UNTAG_Bool(REGB2)) {
1150 } else {
1151 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 254);
1152 }
1153 REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1154 if (UNTAG_Bool(REGB2)) {
1155 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 254);
1156 }
1157 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[8])(fra.me.REG[8]);
1158 CALL_metamodel___abstractmetamodel___MMGlobalClass___mixin_of__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
1159 } else {
1160 /* syntax/mmbuilder.nit:259 */
1161 fra.me.REG[3] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[3])(fra.me.REG[3]);
1162 fra.me.REG[3] = NEW_MMImplicitInit_syntax___syntax_base___MMImplicitInit___init(fra.me.REG[2], fra.me.REG[6], fra.me.REG[3]);
1163 /* syntax/mmbuilder.nit:260 */
1164 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[3]);
1165 }
1166 label3: while(0);
1167 stack_frame_head = fra.me.prev;
1168 return;
1169 }
1170 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){
1171 struct {struct stack_frame_t me;} fra;
1172 val_t REGB0;
1173 val_t REGB1;
1174 fun_t CREG[1];
1175 val_t tmp;
1176 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1177 fra.me.file = LOCATE_syntax___mmbuilder;
1178 fra.me.line = 0;
1179 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
1180 fra.me.has_broke = 0;
1181 fra.me.REG_size = 1;
1182 fra.me.nitni_local_ref_head = NULL;
1183 fra.me.REG[0] = NIT_NULL;
1184 fra.me.closure_ctx = closctx_param;
1185 fra.me.closure_funs = CREG;
1186 fra.me.REG[0] = p0;
1187 CREG[0] = clos_fun0;
1188 /* syntax/mmbuilder.nit:194 */
1189 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
1190 if (UNTAG_Bool(REGB0)) {
1191 /* syntax/mmbuilder.nit:196 */
1192 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
1193 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1194 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],closctx->REG[2]));
1195 if (UNTAG_Bool(REGB0)) {
1196 } else {
1197 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[2]);
1198 REGB0 = REGB1;
1199 }
1200 if (UNTAG_Bool(REGB0)) {
1201 closctx->has_broke = 1;
1202 goto label2;
1203 }
1204 }
1205 label2: while(0);
1206 stack_frame_head = fra.me.prev;
1207 return;
1208 }
1209 void OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_5(struct stack_frame_t *closctx, val_t p0){
1210 struct {struct stack_frame_t me;} fra;
1211 val_t REGB0;
1212 val_t tmp;
1213 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1214 fra.me.file = LOCATE_syntax___mmbuilder;
1215 fra.me.line = 0;
1216 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
1217 fra.me.has_broke = 0;
1218 fra.me.REG_size = 1;
1219 fra.me.nitni_local_ref_head = NULL;
1220 fra.me.REG[0] = NIT_NULL;
1221 fra.me.REG[0] = p0;
1222 /* syntax/mmbuilder.nit:206 */
1223 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
1224 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1225 if (UNTAG_Bool(REGB0)) {
1226 goto label6;
1227 }
1228 /* syntax/mmbuilder.nit:207 */
1229 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[4])(closctx->REG[4], fra.me.REG[0]);
1230 label6: while(0);
1231 stack_frame_head = fra.me.prev;
1232 return;
1233 }
1234 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){
1235 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1236 val_t REGB0;
1237 val_t REGB1;
1238 fun_t CREG[1];
1239 val_t tmp;
1240 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1241 fra.me.file = LOCATE_syntax___mmbuilder;
1242 fra.me.line = 0;
1243 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
1244 fra.me.has_broke = 0;
1245 fra.me.REG_size = 2;
1246 fra.me.nitni_local_ref_head = NULL;
1247 fra.me.REG[0] = NIT_NULL;
1248 fra.me.REG[1] = NIT_NULL;
1249 fra.me.closure_ctx = closctx_param;
1250 fra.me.closure_funs = CREG;
1251 fra.me.REG[0] = p0;
1252 CREG[0] = clos_fun0;
1253 /* syntax/mmbuilder.nit:219 */
1254 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_syntax___syntax_base___MMSrcAttribute, ID_syntax___syntax_base___MMSrcAttribute)) /*cast MMSrcAttribute*/;
1255 if (UNTAG_Bool(REGB0)) {
1256 /* syntax/mmbuilder.nit:220 */
1257 fra.me.REG[1] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[0])(fra.me.REG[0]);
1258 /* syntax/mmbuilder.nit:221 */
1259 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1260 if (UNTAG_Bool(REGB0)) {
1261 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 221);
1262 }
1263 fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra.me.REG[1])(fra.me.REG[1]);
1264 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1265 if (UNTAG_Bool(REGB0)) {
1266 } else {
1267 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1268 if (UNTAG_Bool(REGB1)) {
1269 REGB1 = TAG_Bool(0);
1270 REGB0 = REGB1;
1271 } else {
1272 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
1273 REGB0 = REGB1;
1274 }
1275 }
1276 if (UNTAG_Bool(REGB0)) {
1277 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[6])(closctx->REG[6], fra.me.REG[0]);
1278 }
1279 }
1280 stack_frame_head = fra.me.prev;
1281 return;
1282 }
1283 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){
1284 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1285 val_t REGB0;
1286 fun_t CREG[1];
1287 val_t tmp;
1288 /* syntax/mmbuilder.nit:229 */
1289 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1290 fra.me.file = LOCATE_syntax___mmbuilder;
1291 fra.me.line = 0;
1292 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
1293 fra.me.has_broke = 0;
1294 fra.me.REG_size = 2;
1295 fra.me.nitni_local_ref_head = NULL;
1296 fra.me.REG[0] = NIT_NULL;
1297 fra.me.REG[1] = NIT_NULL;
1298 fra.me.closure_ctx = closctx_param;
1299 fra.me.closure_funs = CREG;
1300 fra.me.REG[0] = p0;
1301 CREG[0] = clos_fun0;
1302 /* syntax/mmbuilder.nit:230 */
1303 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1304 /* syntax/mmbuilder.nit:231 */
1305 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(closctx->REG[5])(closctx->REG[5], fra.me.REG[0]);
1306 if (UNTAG_Bool(REGB0)) {
1307 goto label12;
1308 }
1309 /* syntax/mmbuilder.nit:232 */
1310 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
1311 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_mixin(fra.me.REG[1])(fra.me.REG[1]);
1312 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1313 if (UNTAG_Bool(REGB0)) {
1314 /* syntax/mmbuilder.nit:233 */
1315 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[5])(closctx->REG[5], fra.me.REG[0]);
1316 }
1317 label12: while(0);
1318 stack_frame_head = fra.me.prev;
1319 return;
1320 }
1321 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){
1322 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1323 val_t REGB0;
1324 val_t REGB1;
1325 val_t REGB2;
1326 fun_t CREG[1];
1327 val_t tmp;
1328 /* syntax/mmbuilder.nit:248 */
1329 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1330 fra.me.file = LOCATE_syntax___mmbuilder;
1331 fra.me.line = 0;
1332 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
1333 fra.me.has_broke = 0;
1334 fra.me.REG_size = 2;
1335 fra.me.nitni_local_ref_head = NULL;
1336 fra.me.REG[0] = NIT_NULL;
1337 fra.me.REG[1] = NIT_NULL;
1338 fra.me.closure_ctx = closctx_param;
1339 fra.me.closure_funs = CREG;
1340 fra.me.REG[0] = p0;
1341 CREG[0] = clos_fun0;
1342 /* syntax/mmbuilder.nit:250 */
1343 REGB0 = TAG_Bool(closctx->REG[8]==NIT_NULL);
1344 if (UNTAG_Bool(REGB0)) {
1345 } else {
1346 REGB1 = TAG_Bool(closctx->REG[8]==NIT_NULL);
1347 if (UNTAG_Bool(REGB1)) {
1348 REGB1 = TAG_Bool(0);
1349 REGB0 = REGB1;
1350 } else {
1351 REGB1 = CALL_standard___kernel___Object_____eqeq(closctx->REG[8])(closctx->REG[8], NIT_NULL);
1352 REGB0 = REGB1;
1353 }
1354 }
1355 if (UNTAG_Bool(REGB0)) {
1356 REGB0 = TAG_Bool(1);
1357 } else {
1358 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
1359 REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],closctx->REG[8]));
1360 if (UNTAG_Bool(REGB1)) {
1361 } else {
1362 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], closctx->REG[8]);
1363 REGB1 = REGB2;
1364 }
1365 REGB0 = REGB1;
1366 }
1367 if (UNTAG_Bool(REGB0)) {
1368 /* syntax/mmbuilder.nit:251 */
1369 CALL_metamodel___inheritance___MMLocalClass___make_visible_an_inherited_global_property(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
1370 }
1371 stack_frame_head = fra.me.prev;
1372 return;
1373 }
1374 static const char LOCATE_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property[] = "mmbuilder::MMSrcLocalClass::add_src_local_property";
1375 void syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(val_t p0, val_t p1, val_t p2){
1376 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
1377 val_t REGB0;
1378 val_t tmp;
1379 static val_t once_value_1; /* Once value */
1380 static val_t once_value_2; /* Once value */
1381 static val_t once_value_3; /* Once value */
1382 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1383 fra.me.file = LOCATE_syntax___mmbuilder;
1384 fra.me.line = 265;
1385 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property;
1386 fra.me.has_broke = 0;
1387 fra.me.REG_size = 7;
1388 fra.me.nitni_local_ref_head = NULL;
1389 fra.me.REG[0] = NIT_NULL;
1390 fra.me.REG[1] = NIT_NULL;
1391 fra.me.REG[2] = NIT_NULL;
1392 fra.me.REG[3] = NIT_NULL;
1393 fra.me.REG[4] = NIT_NULL;
1394 fra.me.REG[5] = NIT_NULL;
1395 fra.me.REG[6] = NIT_NULL;
1396 fra.me.REG[0] = p0;
1397 fra.me.REG[1] = p1;
1398 fra.me.REG[2] = p2;
1399 /* syntax/mmbuilder.nit:269 */
1400 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
1401 /* syntax/mmbuilder.nit:271 */
1402 fra.me.REG[4] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
1403 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1404 if (UNTAG_Bool(REGB0)) {
1405 /* syntax/mmbuilder.nit:272 */
1406 fra.me.REG[4] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[2])(fra.me.REG[2]);
1407 REGB0 = TAG_Int(5);
1408 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1409 if (!once_value_1) {
1410 fra.me.REG[6] = BOX_NativeString("Error: A property ");
1411 REGB0 = TAG_Int(18);
1412 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
1413 once_value_1 = fra.me.REG[6];
1414 register_static_object(&once_value_1);
1415 } else fra.me.REG[6] = once_value_1;
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_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1419 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1420 if (!once_value_2) {
1421 fra.me.REG[6] = BOX_NativeString(" is already defined in class ");
1422 REGB0 = TAG_Int(29);
1423 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
1424 once_value_2 = fra.me.REG[6];
1425 register_static_object(&once_value_2);
1426 } else fra.me.REG[6] = once_value_2;
1427 fra.me.REG[6] = fra.me.REG[6];
1428 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1429 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
1430 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
1431 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1432 if (!once_value_3) {
1433 fra.me.REG[6] = BOX_NativeString(".");
1434 REGB0 = TAG_Int(1);
1435 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
1436 once_value_3 = fra.me.REG[6];
1437 register_static_object(&once_value_3);
1438 } else fra.me.REG[6] = once_value_3;
1439 fra.me.REG[6] = fra.me.REG[6];
1440 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1441 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
1442 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[5]);
1443 /* syntax/mmbuilder.nit:273 */
1444 goto label4;
1445 }
1446 /* syntax/mmbuilder.nit:275 */
1447 fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
1448 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[2]);
1449 /* syntax/mmbuilder.nit:278 */
1450 REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
1451 if (UNTAG_Bool(REGB0)) {
1452 /* syntax/mmbuilder.nit:279 */
1453 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
1454 /* syntax/mmbuilder.nit:280 */
1455 CALL_metamodel___inheritance___MMLocalProperty___inherit_global(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1456 }
1457 /* syntax/mmbuilder.nit:283 */
1458 REGB0 = CALL_metamodel___abstractmetamodel___MMLocalProperty___is_global_set(fra.me.REG[2])(fra.me.REG[2]);
1459 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1460 if (UNTAG_Bool(REGB0)) {
1461 /* syntax/mmbuilder.nit:284 */
1462 CALL_metamodel___abstractmetamodel___MMLocalProperty___new_global(fra.me.REG[2])(fra.me.REG[2]);
1463 /* syntax/mmbuilder.nit:285 */
1464 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
1465 REGB0 = CALL_syntax___syntax_base___MMLocalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
1466 CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
1467 }
1468 label4: while(0);
1469 stack_frame_head = fra.me.prev;
1470 return;
1471 }
1472 static const char LOCATE_syntax___mmbuilder___MMLocalProperty___accept_property_visitor[] = "mmbuilder::MMLocalProperty::accept_property_visitor";
1473 void syntax___mmbuilder___MMLocalProperty___accept_property_visitor(val_t p0, val_t p1){
1474 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1475 val_t tmp;
1476 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1477 fra.me.file = LOCATE_syntax___mmbuilder;
1478 fra.me.line = 291;
1479 fra.me.meth = LOCATE_syntax___mmbuilder___MMLocalProperty___accept_property_visitor;
1480 fra.me.has_broke = 0;
1481 fra.me.REG_size = 2;
1482 fra.me.nitni_local_ref_head = NULL;
1483 fra.me.REG[0] = NIT_NULL;
1484 fra.me.REG[1] = NIT_NULL;
1485 fra.me.REG[0] = p0;
1486 fra.me.REG[1] = p1;
1487 stack_frame_head = fra.me.prev;
1488 return;
1489 }
1490 static const char LOCATE_syntax___mmbuilder___MMImplicitInit___super_init[] = "mmbuilder::MMImplicitInit::(syntax_base::MMImplicitInit::super_init)";
1491 val_t syntax___mmbuilder___MMImplicitInit___super_init(val_t p0){
1492 struct {struct stack_frame_t me;} fra;
1493 val_t tmp;
1494 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1495 fra.me.file = LOCATE_syntax___mmbuilder;
1496 fra.me.line = 297;
1497 fra.me.meth = LOCATE_syntax___mmbuilder___MMImplicitInit___super_init;
1498 fra.me.has_broke = 0;
1499 fra.me.REG_size = 1;
1500 fra.me.nitni_local_ref_head = NULL;
1501 fra.me.REG[0] = NIT_NULL;
1502 fra.me.REG[0] = p0;
1503 /* syntax/mmbuilder.nit:297 */
1504 fra.me.REG[0] = ATTR_syntax___mmbuilder___MMImplicitInit____super_init(fra.me.REG[0]);
1505 stack_frame_head = fra.me.prev;
1506 return fra.me.REG[0];
1507 }
1508 static const char LOCATE_syntax___mmbuilder___MMImplicitInit___accept_property_visitor[] = "mmbuilder::MMImplicitInit::(mmbuilder::MMLocalProperty::accept_property_visitor)";
1509 void syntax___mmbuilder___MMImplicitInit___accept_property_visitor(val_t p0, val_t p1){
1510 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
1511 val_t REGB0;
1512 val_t REGB1;
1513 val_t REGB2;
1514 val_t REGB3;
1515 val_t REGB4;
1516 val_t tmp;
1517 static val_t once_value_1; /* Once value */
1518 static val_t once_value_2; /* Once value */
1519 static val_t once_value_3; /* Once value */
1520 static val_t once_value_4; /* Once value */
1521 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1522 fra.me.file = LOCATE_syntax___mmbuilder;
1523 fra.me.line = 298;
1524 fra.me.meth = LOCATE_syntax___mmbuilder___MMImplicitInit___accept_property_visitor;
1525 fra.me.has_broke = 0;
1526 fra.me.REG_size = 9;
1527 fra.me.nitni_local_ref_head = NULL;
1528 fra.me.REG[0] = NIT_NULL;
1529 fra.me.REG[1] = NIT_NULL;
1530 fra.me.REG[2] = NIT_NULL;
1531 fra.me.REG[3] = NIT_NULL;
1532 fra.me.REG[4] = NIT_NULL;
1533 fra.me.REG[5] = NIT_NULL;
1534 fra.me.REG[6] = NIT_NULL;
1535 fra.me.REG[7] = NIT_NULL;
1536 fra.me.REG[8] = NIT_NULL;
1537 fra.me.REG[0] = p0;
1538 fra.me.REG[1] = p1;
1539 /* syntax/mmbuilder.nit:298 */
1540 fra.me.REG[2] = fra.me.REG[0];
1541 /* syntax/mmbuilder.nit:300 */
1542 fra.me.REG[3] = NIT_NULL;
1543 /* syntax/mmbuilder.nit:301 */
1544 fra.me.REG[4] = CALL_syntax___syntax_base___MMImplicitInit___super_inits(fra.me.REG[2])(fra.me.REG[2]);
1545 /* ../lib/standard/collection/array.nit:269 */
1546 REGB0 = TAG_Int(0);
1547 /* ../lib/standard/collection/array.nit:270 */
1548 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
1549 if (UNTAG_Bool(REGB1)) {
1550 } else {
1551 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1552 }
1553 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
1554 /* ../lib/standard/collection/array.nit:271 */
1555 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
1556 /* ../lib/standard/collection/array.nit:272 */
1557 while(1) {
1558 /* ../lib/standard/collection/array.nit:24 */
1559 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
1560 if (UNTAG_Bool(REGB1)) {
1561 } else {
1562 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1563 }
1564 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
1565 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1566 if (UNTAG_Bool(REGB2)) {
1567 } else {
1568 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1569 }
1570 /* ../lib/standard/kernel.nit:235 */
1571 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1572 /* ../lib/standard/collection/array.nit:272 */
1573 if (UNTAG_Bool(REGB1)) {
1574 /* ../lib/standard/collection/array.nit:273 */
1575 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1576 if (UNTAG_Bool(REGB1)) {
1577 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1578 }
1579 /* ../lib/standard/collection/array.nit:718 */
1580 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
1581 /* syntax/mmbuilder.nit:302 */
1582 fra.me.REG[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[6])(fra.me.REG[6]);
1583 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
1584 if (UNTAG_Bool(REGB1)) {
1585 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 302);
1586 }
1587 REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
1588 REGB2 = TAG_Int(0);
1589 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1590 if (UNTAG_Bool(REGB3)) {
1591 } else {
1592 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1593 }
1594 /* ../lib/standard/kernel.nit:237 */
1595 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
1596 /* syntax/mmbuilder.nit:302 */
1597 if (UNTAG_Bool(REGB2)) {
1598 /* syntax/mmbuilder.nit:303 */
1599 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1600 if (UNTAG_Bool(REGB2)) {
1601 } else {
1602 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1603 if (UNTAG_Bool(REGB1)) {
1604 REGB1 = TAG_Bool(0);
1605 REGB2 = REGB1;
1606 } else {
1607 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1608 REGB2 = REGB1;
1609 }
1610 }
1611 if (UNTAG_Bool(REGB2)) {
1612 /* syntax/mmbuilder.nit:304 */
1613 fra.me.REG[3] = fra.me.REG[6];
1614 } else {
1615 /* syntax/mmbuilder.nit:306 */
1616 REGB2 = TAG_Int(7);
1617 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
1618 if (!once_value_1) {
1619 fra.me.REG[8] = BOX_NativeString("Error: explicit constructor needed in ");
1620 REGB2 = TAG_Int(38);
1621 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
1622 once_value_1 = fra.me.REG[8];
1623 register_static_object(&once_value_1);
1624 } else fra.me.REG[8] = once_value_1;
1625 fra.me.REG[8] = fra.me.REG[8];
1626 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1627 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
1628 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
1629 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1630 if (!once_value_2) {
1631 fra.me.REG[8] = BOX_NativeString(" since both super-constructor ");
1632 REGB2 = TAG_Int(30);
1633 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
1634 once_value_2 = fra.me.REG[8];
1635 register_static_object(&once_value_2);
1636 } else fra.me.REG[8] = once_value_2;
1637 fra.me.REG[8] = fra.me.REG[8];
1638 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1639 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1640 if (UNTAG_Bool(REGB2)) {
1641 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 306);
1642 }
1643 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[3])(fra.me.REG[3]);
1644 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1645 if (!once_value_3) {
1646 fra.me.REG[8] = BOX_NativeString(" and ");
1647 REGB2 = TAG_Int(5);
1648 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
1649 once_value_3 = fra.me.REG[8];
1650 register_static_object(&once_value_3);
1651 } else fra.me.REG[8] = once_value_3;
1652 fra.me.REG[8] = fra.me.REG[8];
1653 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
1654 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[6])(fra.me.REG[6]);
1655 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
1656 if (!once_value_4) {
1657 fra.me.REG[6] = BOX_NativeString(" have paramters");
1658 REGB2 = TAG_Int(15);
1659 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
1660 once_value_4 = fra.me.REG[6];
1661 register_static_object(&once_value_4);
1662 } else fra.me.REG[6] = once_value_4;
1663 fra.me.REG[6] = fra.me.REG[6];
1664 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
1665 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
1666 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[7]);
1667 /* syntax/mmbuilder.nit:307 */
1668 goto label5;
1669 }
1670 }
1671 /* ../lib/standard/collection/array.nit:274 */
1672 REGB2 = TAG_Int(1);
1673 /* ../lib/standard/kernel.nit:238 */
1674 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1675 /* ../lib/standard/collection/array.nit:274 */
1676 REGB0 = REGB2;
1677 } else {
1678 /* ../lib/standard/collection/array.nit:272 */
1679 goto label6;
1680 }
1681 }
1682 label6: while(0);
1683 /* syntax/mmbuilder.nit:311 */
1684 ATTR_syntax___mmbuilder___MMImplicitInit____super_init(fra.me.REG[2]) = fra.me.REG[3];
1685 /* syntax/mmbuilder.nit:313 */
1686 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
1687 /* syntax/mmbuilder.nit:314 */
1688 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1689 if (UNTAG_Bool(REGB0)) {
1690 } else {
1691 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1692 if (UNTAG_Bool(REGB2)) {
1693 REGB2 = TAG_Bool(0);
1694 REGB0 = REGB2;
1695 } else {
1696 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1697 REGB0 = REGB2;
1698 }
1699 }
1700 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1701 if (UNTAG_Bool(REGB0)) {
1702 /* syntax/mmbuilder.nit:315 */
1703 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1704 if (UNTAG_Bool(REGB0)) {
1705 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 315);
1706 }
1707 fra.me.REG[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[3])(fra.me.REG[3]);
1708 /* syntax/mmbuilder.nit:316 */
1709 REGB0 = TAG_Int(0);
1710 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1711 if (UNTAG_Bool(REGB2)) {
1712 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 316);
1713 }
1714 REGB2 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]);
1715 /* ../lib/standard/kernel.nit:355 */
1716 while(1) {
1717 REGB1 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1718 if (UNTAG_Bool(REGB1)) {
1719 } else {
1720 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1721 }
1722 /* ../lib/standard/kernel.nit:235 */
1723 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
1724 /* ../lib/standard/kernel.nit:355 */
1725 if (UNTAG_Bool(REGB1)) {
1726 /* syntax/mmbuilder.nit:316 */
1727 REGB1 = REGB0;
1728 /* syntax/mmbuilder.nit:317 */
1729 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1730 if (UNTAG_Bool(REGB3)) {
1731 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 317);
1732 }
1733 fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___params(fra.me.REG[3])(fra.me.REG[3]);
1734 /* ../lib/standard/collection/array.nit:280 */
1735 REGB3 = TAG_Int(0);
1736 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1737 if (UNTAG_Bool(REGB4)) {
1738 } else {
1739 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1740 }
1741 /* ../lib/standard/kernel.nit:236 */
1742 REGB3 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB3));
1743 /* ../lib/standard/collection/array.nit:280 */
1744 if (UNTAG_Bool(REGB3)) {
1745 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
1746 if (UNTAG_Bool(REGB3)) {
1747 } else {
1748 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
1749 }
1750 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
1751 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1752 if (UNTAG_Bool(REGB4)) {
1753 } else {
1754 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1755 }
1756 /* ../lib/standard/kernel.nit:235 */
1757 REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB3));
1758 } else {
1759 /* ../lib/standard/collection/array.nit:280 */
1760 REGB4 = TAG_Bool(0);
1761 REGB3 = REGB4;
1762 }
1763 if (UNTAG_Bool(REGB3)) {
1764 } else {
1765 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
1766 }
1767 /* ../lib/standard/collection/array.nit:281 */
1768 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
1769 REGB3 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1770 if (UNTAG_Bool(REGB3)) {
1771 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
1772 }
1773 /* ../lib/standard/collection/array.nit:718 */
1774 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
1775 /* ../lib/standard/collection/array.nit:281 */
1776 goto label7;
1777 label7: while(0);
1778 /* syntax/mmbuilder.nit:317 */
1779 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
1780 /* ../lib/standard/kernel.nit:357 */
1781 REGB1 = TAG_Int(1);
1782 /* ../lib/standard/kernel.nit:238 */
1783 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1784 /* ../lib/standard/kernel.nit:357 */
1785 REGB0 = REGB1;
1786 } else {
1787 /* ../lib/standard/kernel.nit:355 */
1788 goto label8;
1789 }
1790 }
1791 label8: while(0);
1792 }
1793 /* syntax/mmbuilder.nit:320 */
1794 fra.me.REG[3] = CALL_syntax___syntax_base___MMImplicitInit___unassigned_attributes(fra.me.REG[2])(fra.me.REG[2]);
1795 /* ../lib/standard/collection/array.nit:269 */
1796 REGB0 = TAG_Int(0);
1797 /* ../lib/standard/collection/array.nit:270 */
1798 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1799 if (UNTAG_Bool(REGB2)) {
1800 } else {
1801 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1802 }
1803 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1804 /* ../lib/standard/collection/array.nit:271 */
1805 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
1806 /* ../lib/standard/collection/array.nit:272 */
1807 while(1) {
1808 /* ../lib/standard/collection/array.nit:24 */
1809 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1810 if (UNTAG_Bool(REGB2)) {
1811 } else {
1812 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1813 }
1814 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1815 REGB1 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1816 if (UNTAG_Bool(REGB1)) {
1817 } else {
1818 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1819 }
1820 /* ../lib/standard/kernel.nit:235 */
1821 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
1822 /* ../lib/standard/collection/array.nit:272 */
1823 if (UNTAG_Bool(REGB2)) {
1824 /* ../lib/standard/collection/array.nit:273 */
1825 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1826 if (UNTAG_Bool(REGB2)) {
1827 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1828 }
1829 /* ../lib/standard/collection/array.nit:718 */
1830 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
1831 /* syntax/mmbuilder.nit:321 */
1832 fra.me.REG[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[4])(fra.me.REG[4]);
1833 /* syntax/mmbuilder.nit:322 */
1834 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
1835 if (UNTAG_Bool(REGB2)) {
1836 } else {
1837 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
1838 if (UNTAG_Bool(REGB1)) {
1839 REGB1 = TAG_Bool(0);
1840 REGB2 = REGB1;
1841 } else {
1842 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
1843 REGB2 = REGB1;
1844 }
1845 }
1846 if (UNTAG_Bool(REGB2)) {
1847 goto label5;
1848 }
1849 /* syntax/mmbuilder.nit:323 */
1850 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[4])(fra.me.REG[4]);
1851 /* syntax/mmbuilder.nit:324 */
1852 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
1853 fra.me.REG[8] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[8])(fra.me.REG[8]);
1854 REGB2 = TAG_Char('_');
1855 REGB1 = TAG_Bool(IS_EQUAL_ON(REGB2,fra.me.REG[8]));
1856 if (UNTAG_Bool(REGB1)) {
1857 } else {
1858 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1859 if (UNTAG_Bool(REGB3)) {
1860 REGB3 = TAG_Bool(0);
1861 REGB1 = REGB3;
1862 } else {
1863 /* ../lib/standard/kernel.nit:381 */
1864 REGB2 = TAG_Bool((fra.me.REG[8])==(REGB2));
1865 /* syntax/mmbuilder.nit:324 */
1866 REGB1 = REGB2;
1867 }
1868 }
1869 if (UNTAG_Bool(REGB1)) {
1870 REGB1 = TAG_Bool(1);
1871 } else {
1872 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
1873 fra.me.REG[8] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[8])(fra.me.REG[8]);
1874 REGB2 = TAG_Char('@');
1875 REGB3 = TAG_Bool(IS_EQUAL_ON(REGB2,fra.me.REG[8]));
1876 if (UNTAG_Bool(REGB3)) {
1877 } else {
1878 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1879 if (UNTAG_Bool(REGB4)) {
1880 REGB4 = TAG_Bool(0);
1881 REGB3 = REGB4;
1882 } else {
1883 /* ../lib/standard/kernel.nit:381 */
1884 REGB2 = TAG_Bool((fra.me.REG[8])==(REGB2));
1885 /* syntax/mmbuilder.nit:324 */
1886 REGB3 = REGB2;
1887 }
1888 }
1889 REGB1 = REGB3;
1890 }
1891 if (UNTAG_Bool(REGB1)) {
1892 /* syntax/mmbuilder.nit:325 */
1893 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1894 REGB1 = TAG_Int(1);
1895 fra.me.REG[4] = CALL_standard___string___AbstractString___substring_from(fra.me.REG[4])(fra.me.REG[4], REGB1);
1896 fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
1897 fra.me.REG[6] = fra.me.REG[4];
1898 }
1899 /* syntax/mmbuilder.nit:327 */
1900 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
1901 if (UNTAG_Bool(REGB1)) {
1902 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 327);
1903 }
1904 fra.me.REG[7] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[7])(fra.me.REG[7]);
1905 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*/;
1906 if (UNTAG_Bool(REGB1)) {
1907 } else {
1908 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 327);
1909 }
1910 fra.me.REG[6] = NEW_MMParam_metamodel___static_type___MMParam___init(fra.me.REG[7], fra.me.REG[6]);
1911 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
1912 /* ../lib/standard/collection/array.nit:274 */
1913 REGB1 = TAG_Int(1);
1914 /* ../lib/standard/kernel.nit:238 */
1915 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1916 /* ../lib/standard/collection/array.nit:274 */
1917 REGB0 = REGB1;
1918 } else {
1919 /* ../lib/standard/collection/array.nit:272 */
1920 goto label9;
1921 }
1922 }
1923 label9: while(0);
1924 /* syntax/mmbuilder.nit:329 */
1925 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
1926 fra.me.REG[0] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[0])(fra.me.REG[0]);
1927 fra.me.REG[0] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[1], NIT_NULL, fra.me.REG[0]);
1928 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1929 label5: while(0);
1930 stack_frame_head = fra.me.prev;
1931 return;
1932 }
1933 static const char LOCATE_syntax___mmbuilder___MMSrcAncestor___local_class[] = "mmbuilder::MMSrcAncestor::(static_type::MMAncestor::local_class)";
1934 val_t syntax___mmbuilder___MMSrcAncestor___local_class(val_t p0){
1935 struct {struct stack_frame_t me;} fra;
1936 val_t REGB0;
1937 val_t tmp;
1938 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1939 fra.me.file = LOCATE_syntax___mmbuilder;
1940 fra.me.line = 337;
1941 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcAncestor___local_class;
1942 fra.me.has_broke = 0;
1943 fra.me.REG_size = 1;
1944 fra.me.nitni_local_ref_head = NULL;
1945 fra.me.REG[0] = NIT_NULL;
1946 fra.me.REG[0] = p0;
1947 /* syntax/mmbuilder.nit:337 */
1948 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___MMSrcAncestor____local_class(fra.me.REG[0])!=NIT_NULL);
1949 if (UNTAG_Bool(REGB0)) {
1950 } else {
1951 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_syntax___mmbuilder, 337);
1952 }
1953 fra.me.REG[0] = ATTR_syntax___mmbuilder___MMSrcAncestor____local_class(fra.me.REG[0]);
1954 stack_frame_head = fra.me.prev;
1955 return fra.me.REG[0];
1956 }
1957 static const char LOCATE_syntax___mmbuilder___MMSrcAncestor___init[] = "mmbuilder::MMSrcAncestor::init";
1958 void syntax___mmbuilder___MMSrcAncestor___init(val_t p0, val_t p1, int* init_table){
1959 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___MMSrcAncestor].i;
1960 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1961 val_t tmp;
1962 if (init_table[itpos1]) return;
1963 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1964 fra.me.file = LOCATE_syntax___mmbuilder;
1965 fra.me.line = 339;
1966 fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcAncestor___init;
1967 fra.me.has_broke = 0;
1968 fra.me.REG_size = 3;
1969 fra.me.nitni_local_ref_head = NULL;
1970 fra.me.REG[0] = NIT_NULL;
1971 fra.me.REG[1] = NIT_NULL;
1972 fra.me.REG[2] = NIT_NULL;
1973 fra.me.REG[0] = p0;
1974 fra.me.REG[1] = p1;
1975 /* syntax/mmbuilder.nit:339 */
1976 fra.me.REG[2] = fra.me.REG[0];
1977 CALL_metamodel___static_type___MMAncestor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
1978 /* syntax/mmbuilder.nit:341 */
1979 ATTR_syntax___mmbuilder___MMSrcAncestor____local_class(fra.me.REG[2]) = fra.me.REG[1];
1980 stack_frame_head = fra.me.prev;
1981 init_table[itpos1] = 1;
1982 return;
1983 }
1984 static const char LOCATE_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity[] = "mmbuilder::ClassBuilderVisitor::local_class_arity";
1985 val_t syntax___mmbuilder___ClassBuilderVisitor___local_class_arity(val_t p0){
1986 struct {struct stack_frame_t me;} fra;
1987 val_t REGB0;
1988 val_t tmp;
1989 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1990 fra.me.file = LOCATE_syntax___mmbuilder;
1991 fra.me.line = 352;
1992 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity;
1993 fra.me.has_broke = 0;
1994 fra.me.REG_size = 1;
1995 fra.me.nitni_local_ref_head = NULL;
1996 fra.me.REG[0] = NIT_NULL;
1997 fra.me.REG[0] = p0;
1998 /* syntax/mmbuilder.nit:352 */
1999 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0])!=NIT_NULL);
2000 if (UNTAG_Bool(REGB0)) {
2001 } else {
2002 nit_abort("Uninitialized attribute %s", "_local_class_arity", LOCATE_syntax___mmbuilder, 352);
2003 }
2004 REGB0 = ATTR_syntax___mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0]);
2005 stack_frame_head = fra.me.prev;
2006 return REGB0;
2007 }
2008 static const char LOCATE_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq[] = "mmbuilder::ClassBuilderVisitor::local_class_arity=";
2009 void syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq(val_t p0, val_t p1){
2010 struct {struct stack_frame_t me;} fra;
2011 val_t REGB0;
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 = 352;
2016 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq;
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 REGB0 = p1;
2023 /* syntax/mmbuilder.nit:352 */
2024 ATTR_syntax___mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0]) = REGB0;
2025 stack_frame_head = fra.me.prev;
2026 return;
2027 }
2028 static const char LOCATE_syntax___mmbuilder___ClassBuilderVisitor___formals[] = "mmbuilder::ClassBuilderVisitor::formals";
2029 val_t syntax___mmbuilder___ClassBuilderVisitor___formals(val_t p0){
2030 struct {struct stack_frame_t me;} fra;
2031 val_t tmp;
2032 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2033 fra.me.file = LOCATE_syntax___mmbuilder;
2034 fra.me.line = 355;
2035 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___formals;
2036 fra.me.has_broke = 0;
2037 fra.me.REG_size = 1;
2038 fra.me.nitni_local_ref_head = NULL;
2039 fra.me.REG[0] = NIT_NULL;
2040 fra.me.REG[0] = p0;
2041 /* syntax/mmbuilder.nit:355 */
2042 fra.me.REG[0] = ATTR_syntax___mmbuilder___ClassBuilderVisitor____formals(fra.me.REG[0]);
2043 stack_frame_head = fra.me.prev;
2044 return fra.me.REG[0];
2045 }
2046 static const char LOCATE_syntax___mmbuilder___ClassBuilderVisitor___formals__eq[] = "mmbuilder::ClassBuilderVisitor::formals=";
2047 void syntax___mmbuilder___ClassBuilderVisitor___formals__eq(val_t p0, val_t p1){
2048 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
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 = 355;
2053 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___formals__eq;
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:355 */
2062 ATTR_syntax___mmbuilder___ClassBuilderVisitor____formals(fra.me.REG[0]) = fra.me.REG[1];
2063 stack_frame_head = fra.me.prev;
2064 return;
2065 }
2066 static const char LOCATE_syntax___mmbuilder___ClassBuilderVisitor___visit[] = "mmbuilder::ClassBuilderVisitor::(parser_prod::Visitor::visit)";
2067 void syntax___mmbuilder___ClassBuilderVisitor___visit(val_t p0, val_t p1){
2068 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2069 val_t REGB0;
2070 val_t tmp;
2071 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2072 fra.me.file = LOCATE_syntax___mmbuilder;
2073 fra.me.line = 358;
2074 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___visit;
2075 fra.me.has_broke = 0;
2076 fra.me.REG_size = 2;
2077 fra.me.nitni_local_ref_head = NULL;
2078 fra.me.REG[0] = NIT_NULL;
2079 fra.me.REG[1] = NIT_NULL;
2080 fra.me.REG[0] = p0;
2081 fra.me.REG[1] = p1;
2082 /* syntax/mmbuilder.nit:358 */
2083 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2084 if (UNTAG_Bool(REGB0)) {
2085 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 358);
2086 }
2087 CALL_syntax___mmbuilder___ANode___accept_class_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2088 stack_frame_head = fra.me.prev;
2089 return;
2090 }
2091 static const char LOCATE_syntax___mmbuilder___ClassBuilderVisitor___init[] = "mmbuilder::ClassBuilderVisitor::init";
2092 void syntax___mmbuilder___ClassBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2093 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___ClassBuilderVisitor].i;
2094 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2095 val_t tmp;
2096 if (init_table[itpos2]) return;
2097 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2098 fra.me.file = LOCATE_syntax___mmbuilder;
2099 fra.me.line = 359;
2100 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___init;
2101 fra.me.has_broke = 0;
2102 fra.me.REG_size = 3;
2103 fra.me.nitni_local_ref_head = NULL;
2104 fra.me.REG[0] = NIT_NULL;
2105 fra.me.REG[1] = NIT_NULL;
2106 fra.me.REG[2] = NIT_NULL;
2107 fra.me.REG[0] = p0;
2108 fra.me.REG[1] = p1;
2109 fra.me.REG[2] = p2;
2110 /* syntax/mmbuilder.nit:359 */
2111 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2112 stack_frame_head = fra.me.prev;
2113 init_table[itpos2] = 1;
2114 return;
2115 }
2116 static const char LOCATE_syntax___mmbuilder___ClassSpecializationBuilderVisitor___visit[] = "mmbuilder::ClassSpecializationBuilderVisitor::(parser_prod::Visitor::visit)";
2117 void syntax___mmbuilder___ClassSpecializationBuilderVisitor___visit(val_t p0, val_t p1){
2118 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2119 val_t REGB0;
2120 val_t tmp;
2121 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2122 fra.me.file = LOCATE_syntax___mmbuilder;
2123 fra.me.line = 366;
2124 fra.me.meth = LOCATE_syntax___mmbuilder___ClassSpecializationBuilderVisitor___visit;
2125 fra.me.has_broke = 0;
2126 fra.me.REG_size = 2;
2127 fra.me.nitni_local_ref_head = NULL;
2128 fra.me.REG[0] = NIT_NULL;
2129 fra.me.REG[1] = NIT_NULL;
2130 fra.me.REG[0] = p0;
2131 fra.me.REG[1] = p1;
2132 /* syntax/mmbuilder.nit:366 */
2133 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2134 if (UNTAG_Bool(REGB0)) {
2135 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 366);
2136 }
2137 CALL_syntax___mmbuilder___ANode___accept_class_specialization_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2138 stack_frame_head = fra.me.prev;
2139 return;
2140 }
2141 static const char LOCATE_syntax___mmbuilder___ClassSpecializationBuilderVisitor___init[] = "mmbuilder::ClassSpecializationBuilderVisitor::init";
2142 void syntax___mmbuilder___ClassSpecializationBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2143 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___ClassSpecializationBuilderVisitor].i;
2144 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2145 val_t tmp;
2146 if (init_table[itpos3]) return;
2147 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2148 fra.me.file = LOCATE_syntax___mmbuilder;
2149 fra.me.line = 367;
2150 fra.me.meth = LOCATE_syntax___mmbuilder___ClassSpecializationBuilderVisitor___init;
2151 fra.me.has_broke = 0;
2152 fra.me.REG_size = 3;
2153 fra.me.nitni_local_ref_head = NULL;
2154 fra.me.REG[0] = NIT_NULL;
2155 fra.me.REG[1] = NIT_NULL;
2156 fra.me.REG[2] = NIT_NULL;
2157 fra.me.REG[0] = p0;
2158 fra.me.REG[1] = p1;
2159 fra.me.REG[2] = p2;
2160 /* syntax/mmbuilder.nit:367 */
2161 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2162 stack_frame_head = fra.me.prev;
2163 init_table[itpos3] = 1;
2164 return;
2165 }
2166 static const char LOCATE_syntax___mmbuilder___ClassAncestorBuilder___visit[] = "mmbuilder::ClassAncestorBuilder::(parser_prod::Visitor::visit)";
2167 void syntax___mmbuilder___ClassAncestorBuilder___visit(val_t p0, val_t p1){
2168 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2169 val_t REGB0;
2170 val_t tmp;
2171 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2172 fra.me.file = LOCATE_syntax___mmbuilder;
2173 fra.me.line = 374;
2174 fra.me.meth = LOCATE_syntax___mmbuilder___ClassAncestorBuilder___visit;
2175 fra.me.has_broke = 0;
2176 fra.me.REG_size = 2;
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[0] = p0;
2181 fra.me.REG[1] = p1;
2182 /* syntax/mmbuilder.nit:374 */
2183 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2184 if (UNTAG_Bool(REGB0)) {
2185 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 374);
2186 }
2187 CALL_syntax___mmbuilder___ANode___accept_class_ancestor_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2188 stack_frame_head = fra.me.prev;
2189 return;
2190 }
2191 static const char LOCATE_syntax___mmbuilder___ClassAncestorBuilder___init[] = "mmbuilder::ClassAncestorBuilder::init";
2192 void syntax___mmbuilder___ClassAncestorBuilder___init(val_t p0, val_t p1, val_t p2, int* init_table){
2193 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___ClassAncestorBuilder].i;
2194 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2195 val_t tmp;
2196 if (init_table[itpos4]) return;
2197 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2198 fra.me.file = LOCATE_syntax___mmbuilder;
2199 fra.me.line = 375;
2200 fra.me.meth = LOCATE_syntax___mmbuilder___ClassAncestorBuilder___init;
2201 fra.me.has_broke = 0;
2202 fra.me.REG_size = 3;
2203 fra.me.nitni_local_ref_head = NULL;
2204 fra.me.REG[0] = NIT_NULL;
2205 fra.me.REG[1] = NIT_NULL;
2206 fra.me.REG[2] = NIT_NULL;
2207 fra.me.REG[0] = p0;
2208 fra.me.REG[1] = p1;
2209 fra.me.REG[2] = p2;
2210 /* syntax/mmbuilder.nit:375 */
2211 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2212 stack_frame_head = fra.me.prev;
2213 init_table[itpos4] = 1;
2214 return;
2215 }
2216 static const char LOCATE_syntax___mmbuilder___ClassVerifierVisitor___visit[] = "mmbuilder::ClassVerifierVisitor::(parser_prod::Visitor::visit)";
2217 void syntax___mmbuilder___ClassVerifierVisitor___visit(val_t p0, val_t p1){
2218 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2219 val_t REGB0;
2220 val_t tmp;
2221 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2222 fra.me.file = LOCATE_syntax___mmbuilder;
2223 fra.me.line = 382;
2224 fra.me.meth = LOCATE_syntax___mmbuilder___ClassVerifierVisitor___visit;
2225 fra.me.has_broke = 0;
2226 fra.me.REG_size = 2;
2227 fra.me.nitni_local_ref_head = NULL;
2228 fra.me.REG[0] = NIT_NULL;
2229 fra.me.REG[1] = NIT_NULL;
2230 fra.me.REG[0] = p0;
2231 fra.me.REG[1] = p1;
2232 /* syntax/mmbuilder.nit:382 */
2233 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2234 if (UNTAG_Bool(REGB0)) {
2235 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 382);
2236 }
2237 CALL_syntax___mmbuilder___ANode___accept_class_verifier(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2238 stack_frame_head = fra.me.prev;
2239 return;
2240 }
2241 static const char LOCATE_syntax___mmbuilder___ClassVerifierVisitor___init[] = "mmbuilder::ClassVerifierVisitor::init";
2242 void syntax___mmbuilder___ClassVerifierVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2243 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___ClassVerifierVisitor].i;
2244 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2245 val_t tmp;
2246 if (init_table[itpos5]) return;
2247 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2248 fra.me.file = LOCATE_syntax___mmbuilder;
2249 fra.me.line = 383;
2250 fra.me.meth = LOCATE_syntax___mmbuilder___ClassVerifierVisitor___init;
2251 fra.me.has_broke = 0;
2252 fra.me.REG_size = 3;
2253 fra.me.nitni_local_ref_head = NULL;
2254 fra.me.REG[0] = NIT_NULL;
2255 fra.me.REG[1] = NIT_NULL;
2256 fra.me.REG[2] = NIT_NULL;
2257 fra.me.REG[0] = p0;
2258 fra.me.REG[1] = p1;
2259 fra.me.REG[2] = p2;
2260 /* syntax/mmbuilder.nit:383 */
2261 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2262 stack_frame_head = fra.me.prev;
2263 init_table[itpos5] = 1;
2264 return;
2265 }
2266 static const char LOCATE_syntax___mmbuilder___PropertyBuilderVisitor___visit[] = "mmbuilder::PropertyBuilderVisitor::(parser_prod::Visitor::visit)";
2267 void syntax___mmbuilder___PropertyBuilderVisitor___visit(val_t p0, val_t p1){
2268 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2269 val_t REGB0;
2270 val_t tmp;
2271 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2272 fra.me.file = LOCATE_syntax___mmbuilder;
2273 fra.me.line = 393;
2274 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyBuilderVisitor___visit;
2275 fra.me.has_broke = 0;
2276 fra.me.REG_size = 2;
2277 fra.me.nitni_local_ref_head = NULL;
2278 fra.me.REG[0] = NIT_NULL;
2279 fra.me.REG[1] = NIT_NULL;
2280 fra.me.REG[0] = p0;
2281 fra.me.REG[1] = p1;
2282 /* syntax/mmbuilder.nit:393 */
2283 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2284 if (UNTAG_Bool(REGB0)) {
2285 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 393);
2286 }
2287 CALL_syntax___mmbuilder___ANode___accept_property_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2288 stack_frame_head = fra.me.prev;
2289 return;
2290 }
2291 static const char LOCATE_syntax___mmbuilder___PropertyBuilderVisitor___init[] = "mmbuilder::PropertyBuilderVisitor::init";
2292 void syntax___mmbuilder___PropertyBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2293 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___PropertyBuilderVisitor].i;
2294 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2295 val_t tmp;
2296 if (init_table[itpos6]) return;
2297 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2298 fra.me.file = LOCATE_syntax___mmbuilder;
2299 fra.me.line = 394;
2300 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyBuilderVisitor___init;
2301 fra.me.has_broke = 0;
2302 fra.me.REG_size = 3;
2303 fra.me.nitni_local_ref_head = NULL;
2304 fra.me.REG[0] = NIT_NULL;
2305 fra.me.REG[1] = NIT_NULL;
2306 fra.me.REG[2] = NIT_NULL;
2307 fra.me.REG[0] = p0;
2308 fra.me.REG[1] = p1;
2309 fra.me.REG[2] = p2;
2310 /* syntax/mmbuilder.nit:394 */
2311 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2312 stack_frame_head = fra.me.prev;
2313 init_table[itpos6] = 1;
2314 return;
2315 }
2316 static const char LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder[] = "mmbuilder::PropertyVerifierVisitor::signature_builder";
2317 val_t syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(val_t p0){
2318 struct {struct stack_frame_t me;} fra;
2319 val_t REGB0;
2320 val_t tmp;
2321 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2322 fra.me.file = LOCATE_syntax___mmbuilder;
2323 fra.me.line = 402;
2324 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder;
2325 fra.me.has_broke = 0;
2326 fra.me.REG_size = 1;
2327 fra.me.nitni_local_ref_head = NULL;
2328 fra.me.REG[0] = NIT_NULL;
2329 fra.me.REG[0] = p0;
2330 /* syntax/mmbuilder.nit:402 */
2331 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0])!=NIT_NULL);
2332 if (UNTAG_Bool(REGB0)) {
2333 } else {
2334 nit_abort("Uninitialized attribute %s", "_signature_builder", LOCATE_syntax___mmbuilder, 402);
2335 }
2336 fra.me.REG[0] = ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0]);
2337 stack_frame_head = fra.me.prev;
2338 return fra.me.REG[0];
2339 }
2340 static const char LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq[] = "mmbuilder::PropertyVerifierVisitor::signature_builder=";
2341 void syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(val_t p0, val_t p1){
2342 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2343 val_t tmp;
2344 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2345 fra.me.file = LOCATE_syntax___mmbuilder;
2346 fra.me.line = 402;
2347 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq;
2348 fra.me.has_broke = 0;
2349 fra.me.REG_size = 2;
2350 fra.me.nitni_local_ref_head = NULL;
2351 fra.me.REG[0] = NIT_NULL;
2352 fra.me.REG[1] = NIT_NULL;
2353 fra.me.REG[0] = p0;
2354 fra.me.REG[1] = p1;
2355 /* syntax/mmbuilder.nit:402 */
2356 ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0]) = fra.me.REG[1];
2357 stack_frame_head = fra.me.prev;
2358 return;
2359 }
2360 static const char LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___visit[] = "mmbuilder::PropertyVerifierVisitor::(parser_prod::Visitor::visit)";
2361 void syntax___mmbuilder___PropertyVerifierVisitor___visit(val_t p0, val_t p1){
2362 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2363 val_t REGB0;
2364 val_t tmp;
2365 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2366 fra.me.file = LOCATE_syntax___mmbuilder;
2367 fra.me.line = 405;
2368 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___visit;
2369 fra.me.has_broke = 0;
2370 fra.me.REG_size = 2;
2371 fra.me.nitni_local_ref_head = NULL;
2372 fra.me.REG[0] = NIT_NULL;
2373 fra.me.REG[1] = NIT_NULL;
2374 fra.me.REG[0] = p0;
2375 fra.me.REG[1] = p1;
2376 /* syntax/mmbuilder.nit:405 */
2377 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2378 if (UNTAG_Bool(REGB0)) {
2379 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 405);
2380 }
2381 CALL_syntax___mmbuilder___ANode___accept_property_verifier(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2382 stack_frame_head = fra.me.prev;
2383 return;
2384 }
2385 static const char LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___init[] = "mmbuilder::PropertyVerifierVisitor::init";
2386 void syntax___mmbuilder___PropertyVerifierVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2387 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___PropertyVerifierVisitor].i;
2388 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2389 val_t tmp;
2390 if (init_table[itpos7]) return;
2391 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2392 fra.me.file = LOCATE_syntax___mmbuilder;
2393 fra.me.line = 407;
2394 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___init;
2395 fra.me.has_broke = 0;
2396 fra.me.REG_size = 4;
2397 fra.me.nitni_local_ref_head = NULL;
2398 fra.me.REG[0] = NIT_NULL;
2399 fra.me.REG[1] = NIT_NULL;
2400 fra.me.REG[2] = NIT_NULL;
2401 fra.me.REG[3] = NIT_NULL;
2402 fra.me.REG[0] = p0;
2403 fra.me.REG[1] = p1;
2404 fra.me.REG[2] = p2;
2405 /* syntax/mmbuilder.nit:407 */
2406 fra.me.REG[3] = fra.me.REG[0];
2407 /* syntax/mmbuilder.nit:409 */
2408 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2409 /* syntax/mmbuilder.nit:410 */
2410 fra.me.REG[2] = NEW_SignatureBuilder_syntax___mmbuilder___SignatureBuilder___init();
2411 ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[3]) = fra.me.REG[2];
2412 stack_frame_head = fra.me.prev;
2413 init_table[itpos7] = 1;
2414 return;
2415 }
2416 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___params[] = "mmbuilder::SignatureBuilder::params";
2417 val_t syntax___mmbuilder___SignatureBuilder___params(val_t p0){
2418 struct {struct stack_frame_t me;} fra;
2419 val_t REGB0;
2420 val_t tmp;
2421 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2422 fra.me.file = LOCATE_syntax___mmbuilder;
2423 fra.me.line = 416;
2424 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___params;
2425 fra.me.has_broke = 0;
2426 fra.me.REG_size = 1;
2427 fra.me.nitni_local_ref_head = NULL;
2428 fra.me.REG[0] = NIT_NULL;
2429 fra.me.REG[0] = p0;
2430 /* syntax/mmbuilder.nit:416 */
2431 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____params(fra.me.REG[0])!=NIT_NULL);
2432 if (UNTAG_Bool(REGB0)) {
2433 } else {
2434 nit_abort("Uninitialized attribute %s", "_params", LOCATE_syntax___mmbuilder, 416);
2435 }
2436 fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____params(fra.me.REG[0]);
2437 stack_frame_head = fra.me.prev;
2438 return fra.me.REG[0];
2439 }
2440 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___params__eq[] = "mmbuilder::SignatureBuilder::params=";
2441 void syntax___mmbuilder___SignatureBuilder___params__eq(val_t p0, val_t p1){
2442 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2443 val_t tmp;
2444 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2445 fra.me.file = LOCATE_syntax___mmbuilder;
2446 fra.me.line = 416;
2447 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___params__eq;
2448 fra.me.has_broke = 0;
2449 fra.me.REG_size = 2;
2450 fra.me.nitni_local_ref_head = NULL;
2451 fra.me.REG[0] = NIT_NULL;
2452 fra.me.REG[1] = NIT_NULL;
2453 fra.me.REG[0] = p0;
2454 fra.me.REG[1] = p1;
2455 /* syntax/mmbuilder.nit:416 */
2456 ATTR_syntax___mmbuilder___SignatureBuilder____params(fra.me.REG[0]) = fra.me.REG[1];
2457 stack_frame_head = fra.me.prev;
2458 return;
2459 }
2460 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___untyped_params[] = "mmbuilder::SignatureBuilder::untyped_params";
2461 val_t syntax___mmbuilder___SignatureBuilder___untyped_params(val_t p0){
2462 struct {struct stack_frame_t me;} fra;
2463 val_t REGB0;
2464 val_t tmp;
2465 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2466 fra.me.file = LOCATE_syntax___mmbuilder;
2467 fra.me.line = 419;
2468 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___untyped_params;
2469 fra.me.has_broke = 0;
2470 fra.me.REG_size = 1;
2471 fra.me.nitni_local_ref_head = NULL;
2472 fra.me.REG[0] = NIT_NULL;
2473 fra.me.REG[0] = p0;
2474 /* syntax/mmbuilder.nit:419 */
2475 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0])!=NIT_NULL);
2476 if (UNTAG_Bool(REGB0)) {
2477 } else {
2478 nit_abort("Uninitialized attribute %s", "_untyped_params", LOCATE_syntax___mmbuilder, 419);
2479 }
2480 fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0]);
2481 stack_frame_head = fra.me.prev;
2482 return fra.me.REG[0];
2483 }
2484 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___untyped_params__eq[] = "mmbuilder::SignatureBuilder::untyped_params=";
2485 void syntax___mmbuilder___SignatureBuilder___untyped_params__eq(val_t p0, val_t p1){
2486 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2487 val_t tmp;
2488 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2489 fra.me.file = LOCATE_syntax___mmbuilder;
2490 fra.me.line = 419;
2491 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___untyped_params__eq;
2492 fra.me.has_broke = 0;
2493 fra.me.REG_size = 2;
2494 fra.me.nitni_local_ref_head = NULL;
2495 fra.me.REG[0] = NIT_NULL;
2496 fra.me.REG[1] = NIT_NULL;
2497 fra.me.REG[0] = p0;
2498 fra.me.REG[1] = p1;
2499 /* syntax/mmbuilder.nit:419 */
2500 ATTR_syntax___mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0]) = fra.me.REG[1];
2501 stack_frame_head = fra.me.prev;
2502 return;
2503 }
2504 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___vararg_rank[] = "mmbuilder::SignatureBuilder::vararg_rank";
2505 val_t syntax___mmbuilder___SignatureBuilder___vararg_rank(val_t p0){
2506 struct {struct stack_frame_t me;} fra;
2507 val_t REGB0;
2508 val_t tmp;
2509 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2510 fra.me.file = LOCATE_syntax___mmbuilder;
2511 fra.me.line = 422;
2512 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___vararg_rank;
2513 fra.me.has_broke = 0;
2514 fra.me.REG_size = 1;
2515 fra.me.nitni_local_ref_head = NULL;
2516 fra.me.REG[0] = NIT_NULL;
2517 fra.me.REG[0] = p0;
2518 /* syntax/mmbuilder.nit:422 */
2519 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0])!=NIT_NULL);
2520 if (UNTAG_Bool(REGB0)) {
2521 } else {
2522 nit_abort("Uninitialized attribute %s", "_vararg_rank", LOCATE_syntax___mmbuilder, 422);
2523 }
2524 REGB0 = ATTR_syntax___mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]);
2525 stack_frame_head = fra.me.prev;
2526 return REGB0;
2527 }
2528 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___vararg_rank__eq[] = "mmbuilder::SignatureBuilder::vararg_rank=";
2529 void syntax___mmbuilder___SignatureBuilder___vararg_rank__eq(val_t p0, val_t p1){
2530 struct {struct stack_frame_t me;} fra;
2531 val_t REGB0;
2532 val_t tmp;
2533 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2534 fra.me.file = LOCATE_syntax___mmbuilder;
2535 fra.me.line = 422;
2536 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___vararg_rank__eq;
2537 fra.me.has_broke = 0;
2538 fra.me.REG_size = 1;
2539 fra.me.nitni_local_ref_head = NULL;
2540 fra.me.REG[0] = NIT_NULL;
2541 fra.me.REG[0] = p0;
2542 REGB0 = p1;
2543 /* syntax/mmbuilder.nit:422 */
2544 ATTR_syntax___mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]) = REGB0;
2545 stack_frame_head = fra.me.prev;
2546 return;
2547 }
2548 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___closure_decls[] = "mmbuilder::SignatureBuilder::closure_decls";
2549 val_t syntax___mmbuilder___SignatureBuilder___closure_decls(val_t p0){
2550 struct {struct stack_frame_t me;} fra;
2551 val_t REGB0;
2552 val_t tmp;
2553 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2554 fra.me.file = LOCATE_syntax___mmbuilder;
2555 fra.me.line = 425;
2556 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___closure_decls;
2557 fra.me.has_broke = 0;
2558 fra.me.REG_size = 1;
2559 fra.me.nitni_local_ref_head = NULL;
2560 fra.me.REG[0] = NIT_NULL;
2561 fra.me.REG[0] = p0;
2562 /* syntax/mmbuilder.nit:425 */
2563 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0])!=NIT_NULL);
2564 if (UNTAG_Bool(REGB0)) {
2565 } else {
2566 nit_abort("Uninitialized attribute %s", "_closure_decls", LOCATE_syntax___mmbuilder, 425);
2567 }
2568 fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0]);
2569 stack_frame_head = fra.me.prev;
2570 return fra.me.REG[0];
2571 }
2572 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___closure_decls__eq[] = "mmbuilder::SignatureBuilder::closure_decls=";
2573 void syntax___mmbuilder___SignatureBuilder___closure_decls__eq(val_t p0, val_t p1){
2574 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2575 val_t tmp;
2576 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2577 fra.me.file = LOCATE_syntax___mmbuilder;
2578 fra.me.line = 425;
2579 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___closure_decls__eq;
2580 fra.me.has_broke = 0;
2581 fra.me.REG_size = 2;
2582 fra.me.nitni_local_ref_head = NULL;
2583 fra.me.REG[0] = NIT_NULL;
2584 fra.me.REG[1] = NIT_NULL;
2585 fra.me.REG[0] = p0;
2586 fra.me.REG[1] = p1;
2587 /* syntax/mmbuilder.nit:425 */
2588 ATTR_syntax___mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0]) = fra.me.REG[1];
2589 stack_frame_head = fra.me.prev;
2590 return;
2591 }
2592 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___has_error_occured[] = "mmbuilder::SignatureBuilder::has_error_occured";
2593 val_t syntax___mmbuilder___SignatureBuilder___has_error_occured(val_t p0){
2594 struct {struct stack_frame_t me;} fra;
2595 val_t REGB0;
2596 val_t tmp;
2597 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2598 fra.me.file = LOCATE_syntax___mmbuilder;
2599 fra.me.line = 428;
2600 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___has_error_occured;
2601 fra.me.has_broke = 0;
2602 fra.me.REG_size = 1;
2603 fra.me.nitni_local_ref_head = NULL;
2604 fra.me.REG[0] = NIT_NULL;
2605 fra.me.REG[0] = p0;
2606 /* syntax/mmbuilder.nit:428 */
2607 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0])!=NIT_NULL);
2608 if (UNTAG_Bool(REGB0)) {
2609 } else {
2610 nit_abort("Uninitialized attribute %s", "_has_error_occured", LOCATE_syntax___mmbuilder, 428);
2611 }
2612 REGB0 = ATTR_syntax___mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]);
2613 stack_frame_head = fra.me.prev;
2614 return REGB0;
2615 }
2616 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___has_error_occured__eq[] = "mmbuilder::SignatureBuilder::has_error_occured=";
2617 void syntax___mmbuilder___SignatureBuilder___has_error_occured__eq(val_t p0, val_t p1){
2618 struct {struct stack_frame_t me;} fra;
2619 val_t REGB0;
2620 val_t tmp;
2621 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2622 fra.me.file = LOCATE_syntax___mmbuilder;
2623 fra.me.line = 428;
2624 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___has_error_occured__eq;
2625 fra.me.has_broke = 0;
2626 fra.me.REG_size = 1;
2627 fra.me.nitni_local_ref_head = NULL;
2628 fra.me.REG[0] = NIT_NULL;
2629 fra.me.REG[0] = p0;
2630 REGB0 = p1;
2631 /* syntax/mmbuilder.nit:428 */
2632 ATTR_syntax___mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]) = REGB0;
2633 stack_frame_head = fra.me.prev;
2634 return;
2635 }
2636 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___signature[] = "mmbuilder::SignatureBuilder::signature";
2637 val_t syntax___mmbuilder___SignatureBuilder___signature(val_t p0){
2638 struct {struct stack_frame_t me;} fra;
2639 val_t tmp;
2640 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2641 fra.me.file = LOCATE_syntax___mmbuilder;
2642 fra.me.line = 431;
2643 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___signature;
2644 fra.me.has_broke = 0;
2645 fra.me.REG_size = 1;
2646 fra.me.nitni_local_ref_head = NULL;
2647 fra.me.REG[0] = NIT_NULL;
2648 fra.me.REG[0] = p0;
2649 /* syntax/mmbuilder.nit:431 */
2650 fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____signature(fra.me.REG[0]);
2651 stack_frame_head = fra.me.prev;
2652 return fra.me.REG[0];
2653 }
2654 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___signature__eq[] = "mmbuilder::SignatureBuilder::signature=";
2655 void syntax___mmbuilder___SignatureBuilder___signature__eq(val_t p0, val_t p1){
2656 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2657 val_t tmp;
2658 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2659 fra.me.file = LOCATE_syntax___mmbuilder;
2660 fra.me.line = 431;
2661 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___signature__eq;
2662 fra.me.has_broke = 0;
2663 fra.me.REG_size = 2;
2664 fra.me.nitni_local_ref_head = NULL;
2665 fra.me.REG[0] = NIT_NULL;
2666 fra.me.REG[1] = NIT_NULL;
2667 fra.me.REG[0] = p0;
2668 fra.me.REG[1] = p1;
2669 /* syntax/mmbuilder.nit:431 */
2670 ATTR_syntax___mmbuilder___SignatureBuilder____signature(fra.me.REG[0]) = fra.me.REG[1];
2671 stack_frame_head = fra.me.prev;
2672 return;
2673 }
2674 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___init[] = "mmbuilder::SignatureBuilder::init";
2675 void syntax___mmbuilder___SignatureBuilder___init(val_t p0, int* init_table){
2676 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___SignatureBuilder].i;
2677 struct {struct stack_frame_t me;} fra;
2678 val_t tmp;
2679 if (init_table[itpos8]) return;
2680 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2681 fra.me.file = LOCATE_syntax___mmbuilder;
2682 fra.me.line = 0;
2683 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___init;
2684 fra.me.has_broke = 0;
2685 fra.me.REG_size = 0;
2686 fra.me.nitni_local_ref_head = NULL;
2687 stack_frame_head = fra.me.prev;
2688 init_table[itpos8] = 1;
2689 return;
2690 }
2691 static const char LOCATE_syntax___mmbuilder___ANode___accept_class_builder[] = "mmbuilder::ANode::accept_class_builder";
2692 void syntax___mmbuilder___ANode___accept_class_builder(val_t p0, val_t p1){
2693 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2694 val_t tmp;
2695 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2696 fra.me.file = LOCATE_syntax___mmbuilder;
2697 fra.me.line = 438;
2698 fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_class_builder;
2699 fra.me.has_broke = 0;
2700 fra.me.REG_size = 2;
2701 fra.me.nitni_local_ref_head = NULL;
2702 fra.me.REG[0] = NIT_NULL;
2703 fra.me.REG[1] = NIT_NULL;
2704 fra.me.REG[0] = p0;
2705 fra.me.REG[1] = p1;
2706 /* syntax/mmbuilder.nit:438 */
2707 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2708 stack_frame_head = fra.me.prev;
2709 return;
2710 }
2711 static const char LOCATE_syntax___mmbuilder___ANode___accept_class_specialization_builder[] = "mmbuilder::ANode::accept_class_specialization_builder";
2712 void syntax___mmbuilder___ANode___accept_class_specialization_builder(val_t p0, val_t p1){
2713 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2714 val_t tmp;
2715 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2716 fra.me.file = LOCATE_syntax___mmbuilder;
2717 fra.me.line = 439;
2718 fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_class_specialization_builder;
2719 fra.me.has_broke = 0;
2720 fra.me.REG_size = 2;
2721 fra.me.nitni_local_ref_head = NULL;
2722 fra.me.REG[0] = NIT_NULL;
2723 fra.me.REG[1] = NIT_NULL;
2724 fra.me.REG[0] = p0;
2725 fra.me.REG[1] = p1;
2726 /* syntax/mmbuilder.nit:439 */
2727 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2728 stack_frame_head = fra.me.prev;
2729 return;
2730 }
2731 static const char LOCATE_syntax___mmbuilder___ANode___accept_class_ancestor_builder[] = "mmbuilder::ANode::accept_class_ancestor_builder";
2732 void syntax___mmbuilder___ANode___accept_class_ancestor_builder(val_t p0, val_t p1){
2733 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2734 val_t tmp;
2735 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2736 fra.me.file = LOCATE_syntax___mmbuilder;
2737 fra.me.line = 440;
2738 fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_class_ancestor_builder;
2739 fra.me.has_broke = 0;
2740 fra.me.REG_size = 2;
2741 fra.me.nitni_local_ref_head = NULL;
2742 fra.me.REG[0] = NIT_NULL;
2743 fra.me.REG[1] = NIT_NULL;
2744 fra.me.REG[0] = p0;
2745 fra.me.REG[1] = p1;
2746 /* syntax/mmbuilder.nit:440 */
2747 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2748 stack_frame_head = fra.me.prev;
2749 return;
2750 }
2751 static const char LOCATE_syntax___mmbuilder___ANode___accept_class_verifier[] = "mmbuilder::ANode::accept_class_verifier";
2752 void syntax___mmbuilder___ANode___accept_class_verifier(val_t p0, val_t p1){
2753 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2754 val_t tmp;
2755 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2756 fra.me.file = LOCATE_syntax___mmbuilder;
2757 fra.me.line = 441;
2758 fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_class_verifier;
2759 fra.me.has_broke = 0;
2760 fra.me.REG_size = 2;
2761 fra.me.nitni_local_ref_head = NULL;
2762 fra.me.REG[0] = NIT_NULL;
2763 fra.me.REG[1] = NIT_NULL;
2764 fra.me.REG[0] = p0;
2765 fra.me.REG[1] = p1;
2766 /* syntax/mmbuilder.nit:441 */
2767 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2768 stack_frame_head = fra.me.prev;
2769 return;
2770 }
2771 static const char LOCATE_syntax___mmbuilder___ANode___accept_property_builder[] = "mmbuilder::ANode::accept_property_builder";
2772 void syntax___mmbuilder___ANode___accept_property_builder(val_t p0, val_t p1){
2773 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2774 val_t tmp;
2775 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2776 fra.me.file = LOCATE_syntax___mmbuilder;
2777 fra.me.line = 442;
2778 fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_property_builder;
2779 fra.me.has_broke = 0;
2780 fra.me.REG_size = 2;
2781 fra.me.nitni_local_ref_head = NULL;
2782 fra.me.REG[0] = NIT_NULL;
2783 fra.me.REG[1] = NIT_NULL;
2784 fra.me.REG[0] = p0;
2785 fra.me.REG[1] = p1;
2786 /* syntax/mmbuilder.nit:442 */
2787 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2788 stack_frame_head = fra.me.prev;
2789 return;
2790 }
2791 static const char LOCATE_syntax___mmbuilder___ANode___accept_property_verifier[] = "mmbuilder::ANode::accept_property_verifier";
2792 void syntax___mmbuilder___ANode___accept_property_verifier(val_t p0, val_t p1){
2793 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2794 val_t tmp;
2795 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2796 fra.me.file = LOCATE_syntax___mmbuilder;
2797 fra.me.line = 443;
2798 fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_property_verifier;
2799 fra.me.has_broke = 0;
2800 fra.me.REG_size = 2;
2801 fra.me.nitni_local_ref_head = NULL;
2802 fra.me.REG[0] = NIT_NULL;
2803 fra.me.REG[1] = NIT_NULL;
2804 fra.me.REG[0] = p0;
2805 fra.me.REG[1] = p1;
2806 /* syntax/mmbuilder.nit:443 */
2807 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2808 stack_frame_head = fra.me.prev;
2809 return;
2810 }
2811 static const char LOCATE_syntax___mmbuilder___AModule___import_super_modules[] = "mmbuilder::AModule::import_super_modules";
2812 void syntax___mmbuilder___AModule___import_super_modules(val_t p0, val_t p1, val_t p2){
2813 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
2814 val_t REGB0;
2815 val_t REGB1;
2816 val_t tmp;
2817 static val_t once_value_2; /* Once value */
2818 static val_t once_value_3; /* Once value */
2819 static val_t once_value_4; /* Once value */
2820 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2821 fra.me.file = LOCATE_syntax___mmbuilder;
2822 fra.me.line = 447;
2823 fra.me.meth = LOCATE_syntax___mmbuilder___AModule___import_super_modules;
2824 fra.me.has_broke = 0;
2825 fra.me.REG_size = 5;
2826 fra.me.nitni_local_ref_head = NULL;
2827 fra.me.REG[0] = NIT_NULL;
2828 fra.me.REG[1] = NIT_NULL;
2829 fra.me.REG[2] = NIT_NULL;
2830 fra.me.REG[3] = NIT_NULL;
2831 fra.me.REG[4] = NIT_NULL;
2832 fra.me.REG[0] = p0;
2833 fra.me.REG[1] = p1;
2834 fra.me.REG[2] = p2;
2835 /* syntax/mmbuilder.nit:451 */
2836 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
2837 /* syntax/mmbuilder.nit:452 */
2838 fra.me.REG[4] = NIT_NULL;
2839 /* syntax/mmbuilder.nit:453 */
2840 fra.me.REG[0] = CALL_parser___parser_nodes___AModule___n_imports(fra.me.REG[0])(fra.me.REG[0]);
2841 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));
2842 /* syntax/mmbuilder.nit:463 */
2843 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2844 if (UNTAG_Bool(REGB0)) {
2845 } else {
2846 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2847 if (UNTAG_Bool(REGB1)) {
2848 REGB1 = TAG_Bool(0);
2849 REGB0 = REGB1;
2850 } else {
2851 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
2852 REGB0 = REGB1;
2853 }
2854 }
2855 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2856 if (UNTAG_Bool(REGB0)) {
2857 /* syntax/mmbuilder.nit:464 */
2858 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
2859 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2860 if (UNTAG_Bool(REGB0)) {
2861 /* syntax/mmbuilder.nit:465 */
2862 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2863 if (UNTAG_Bool(REGB0)) {
2864 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 465);
2865 }
2866 fra.me.REG[4] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[4])(fra.me.REG[4]);
2867 if (!once_value_2) {
2868 fra.me.REG[0] = BOX_NativeString("Error: Top modules cannot import other modules.");
2869 REGB0 = TAG_Int(47);
2870 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2871 once_value_2 = fra.me.REG[0];
2872 register_static_object(&once_value_2);
2873 } else fra.me.REG[0] = once_value_2;
2874 fra.me.REG[0] = fra.me.REG[0];
2875 CALL_toolcontext___ToolContext___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]);
2876 }
2877 } else {
2878 /* syntax/mmbuilder.nit:467 */
2879 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
2880 if (UNTAG_Bool(REGB0)) {
2881 /* syntax/mmbuilder.nit:468 */
2882 if (!once_value_3) {
2883 if (!once_value_4) {
2884 fra.me.REG[0] = BOX_NativeString("standard");
2885 REGB0 = TAG_Int(8);
2886 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2887 once_value_4 = fra.me.REG[0];
2888 register_static_object(&once_value_4);
2889 } else fra.me.REG[0] = once_value_4;
2890 fra.me.REG[0] = fra.me.REG[0];
2891 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
2892 once_value_3 = fra.me.REG[0];
2893 register_static_object(&once_value_3);
2894 } else fra.me.REG[0] = once_value_3;
2895 fra.me.REG[0] = fra.me.REG[0];
2896 /* syntax/mmbuilder.nit:469 */
2897 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]);
2898 /* syntax/mmbuilder.nit:470 */
2899 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
2900 /* syntax/mmbuilder.nit:471 */
2901 REGB0 = TAG_Int(1);
2902 CALL_metamodel___abstractmetamodel___MMModule___add_super_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], REGB0);
2903 }
2904 }
2905 /* syntax/mmbuilder.nit:474 */
2906 CALL_metamodel___abstractmetamodel___MMContext___add_module(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
2907 stack_frame_head = fra.me.prev;
2908 return;
2909 }
2910 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){
2911 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2912 val_t REGB0;
2913 val_t REGB1;
2914 fun_t CREG[1];
2915 val_t tmp;
2916 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2917 fra.me.file = LOCATE_syntax___mmbuilder;
2918 fra.me.line = 0;
2919 fra.me.meth = LOCATE_syntax___mmbuilder___AModule___import_super_modules;
2920 fra.me.has_broke = 0;
2921 fra.me.REG_size = 2;
2922 fra.me.nitni_local_ref_head = NULL;
2923 fra.me.REG[0] = NIT_NULL;
2924 fra.me.REG[1] = NIT_NULL;
2925 fra.me.closure_ctx = closctx_param;
2926 fra.me.closure_funs = CREG;
2927 fra.me.REG[0] = p0;
2928 CREG[0] = clos_fun0;
2929 /* syntax/mmbuilder.nit:454 */
2930 fra.me.REG[1] = CALL_syntax___mmbuilder___AImport___module_name(fra.me.REG[0])(fra.me.REG[0]);
2931 /* syntax/mmbuilder.nit:455 */
2932 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2933 if (UNTAG_Bool(REGB0)) {
2934 } else {
2935 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2936 if (UNTAG_Bool(REGB1)) {
2937 REGB1 = TAG_Bool(0);
2938 REGB0 = REGB1;
2939 } else {
2940 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2941 REGB0 = REGB1;
2942 }
2943 }
2944 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2945 if (UNTAG_Bool(REGB0)) {
2946 /* syntax/mmbuilder.nit:456 */
2947 fra.me.REG[1] = CALL_mmloader___ToolContext___get_module(closctx->REG[1])(closctx->REG[1], fra.me.REG[1], closctx->REG[2]);
2948 /* syntax/mmbuilder.nit:457 */
2949 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[1]);
2950 /* syntax/mmbuilder.nit:458 */
2951 REGB0 = CALL_syntax___mmbuilder___AImport___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
2952 CALL_metamodel___abstractmetamodel___MMModule___add_super_module(closctx->REG[2])(closctx->REG[2], fra.me.REG[1], REGB0);
2953 } else {
2954 /* syntax/mmbuilder.nit:460 */
2955 closctx->REG[4] = fra.me.REG[0];
2956 }
2957 stack_frame_head = fra.me.prev;
2958 return;
2959 }
2960 static const char LOCATE_syntax___mmbuilder___AModuledecl___accept_class_builder[] = "mmbuilder::AModuledecl::(mmbuilder::ANode::accept_class_builder)";
2961 void syntax___mmbuilder___AModuledecl___accept_class_builder(val_t p0, val_t p1){
2962 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
2963 val_t REGB0;
2964 val_t REGB1;
2965 val_t tmp;
2966 static val_t once_value_1; /* Once value */
2967 static val_t once_value_2; /* Once value */
2968 static val_t once_value_3; /* Once value */
2969 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2970 fra.me.file = LOCATE_syntax___mmbuilder;
2971 fra.me.line = 479;
2972 fra.me.meth = LOCATE_syntax___mmbuilder___AModuledecl___accept_class_builder;
2973 fra.me.has_broke = 0;
2974 fra.me.REG_size = 5;
2975 fra.me.nitni_local_ref_head = NULL;
2976 fra.me.REG[0] = NIT_NULL;
2977 fra.me.REG[1] = NIT_NULL;
2978 fra.me.REG[2] = NIT_NULL;
2979 fra.me.REG[3] = NIT_NULL;
2980 fra.me.REG[4] = NIT_NULL;
2981 fra.me.REG[0] = p0;
2982 fra.me.REG[1] = p1;
2983 /* syntax/mmbuilder.nit:481 */
2984 fra.me.REG[2] = CALL_parser___parser_nodes___AModuledecl___n_name(fra.me.REG[0])(fra.me.REG[0]);
2985 fra.me.REG[2] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[2])(fra.me.REG[2]);
2986 fra.me.REG[2] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
2987 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
2988 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___name(fra.me.REG[3])(fra.me.REG[3]);
2989 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
2990 if (UNTAG_Bool(REGB0)) {
2991 } else {
2992 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2993 REGB0 = REGB1;
2994 }
2995 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2996 if (UNTAG_Bool(REGB0)) {
2997 /* syntax/mmbuilder.nit:482 */
2998 fra.me.REG[3] = CALL_parser___parser_nodes___AModuledecl___n_name(fra.me.REG[0])(fra.me.REG[0]);
2999 fra.me.REG[3] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[3])(fra.me.REG[3]);
3000 REGB0 = TAG_Int(5);
3001 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3002 if (!once_value_1) {
3003 fra.me.REG[4] = BOX_NativeString("Error: Module name mismatch between ");
3004 REGB0 = TAG_Int(36);
3005 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
3006 once_value_1 = fra.me.REG[4];
3007 register_static_object(&once_value_1);
3008 } else fra.me.REG[4] = once_value_1;
3009 fra.me.REG[4] = fra.me.REG[4];
3010 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
3011 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
3012 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMModule___name(fra.me.REG[4])(fra.me.REG[4]);
3013 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3014 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
3015 if (!once_value_2) {
3016 fra.me.REG[4] = BOX_NativeString(" and ");
3017 REGB0 = TAG_Int(5);
3018 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
3019 once_value_2 = fra.me.REG[4];
3020 register_static_object(&once_value_2);
3021 } else fra.me.REG[4] = once_value_2;
3022 fra.me.REG[4] = fra.me.REG[4];
3023 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
3024 fra.me.REG[0] = CALL_parser___parser_nodes___AModuledecl___n_name(fra.me.REG[0])(fra.me.REG[0]);
3025 fra.me.REG[0] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[0])(fra.me.REG[0]);
3026 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
3027 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
3028 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3029 if (!once_value_3) {
3030 fra.me.REG[0] = BOX_NativeString("");
3031 REGB0 = TAG_Int(0);
3032 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
3033 once_value_3 = fra.me.REG[0];
3034 register_static_object(&once_value_3);
3035 } else fra.me.REG[0] = once_value_3;
3036 fra.me.REG[0] = fra.me.REG[0];
3037 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3038 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3039 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2]);
3040 }
3041 stack_frame_head = fra.me.prev;
3042 return;
3043 }
3044 static const char LOCATE_syntax___mmbuilder___AImport___module_name[] = "mmbuilder::AImport::module_name";
3045 val_t syntax___mmbuilder___AImport___module_name(val_t p0){
3046 struct {struct stack_frame_t me;} fra;
3047 val_t tmp;
3048 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3049 fra.me.file = LOCATE_syntax___mmbuilder;
3050 fra.me.line = 488;
3051 fra.me.meth = LOCATE_syntax___mmbuilder___AImport___module_name;
3052 fra.me.has_broke = 0;
3053 fra.me.REG_size = 0;
3054 fra.me.nitni_local_ref_head = NULL;
3055 /* syntax/mmbuilder.nit:488 */
3056 nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 488);
3057 stack_frame_head = fra.me.prev;
3058 return NIT_NULL;
3059 }
3060 static const char LOCATE_syntax___mmbuilder___AImport___visibility_level[] = "mmbuilder::AImport::visibility_level";
3061 val_t syntax___mmbuilder___AImport___visibility_level(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 = 491;
3067 fra.me.meth = LOCATE_syntax___mmbuilder___AImport___visibility_level;
3068 fra.me.has_broke = 0;
3069 fra.me.REG_size = 0;
3070 fra.me.nitni_local_ref_head = NULL;
3071 /* syntax/mmbuilder.nit:491 */
3072 nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 491);
3073 stack_frame_head = fra.me.prev;
3074 return NIT_NULL;
3075 }
3076 static const char LOCATE_syntax___mmbuilder___AStdImport___module_name[] = "mmbuilder::AStdImport::(mmbuilder::AImport::module_name)";
3077 val_t syntax___mmbuilder___AStdImport___module_name(val_t p0){
3078 struct {struct stack_frame_t me;} fra;
3079 val_t tmp;
3080 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3081 fra.me.file = LOCATE_syntax___mmbuilder;
3082 fra.me.line = 495;
3083 fra.me.meth = LOCATE_syntax___mmbuilder___AStdImport___module_name;
3084 fra.me.has_broke = 0;
3085 fra.me.REG_size = 1;
3086 fra.me.nitni_local_ref_head = NULL;
3087 fra.me.REG[0] = NIT_NULL;
3088 fra.me.REG[0] = p0;
3089 /* syntax/mmbuilder.nit:497 */
3090 fra.me.REG[0] = CALL_parser___parser_nodes___AStdImport___n_name(fra.me.REG[0])(fra.me.REG[0]);
3091 fra.me.REG[0] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[0])(fra.me.REG[0]);
3092 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
3093 goto label1;
3094 label1: while(0);
3095 stack_frame_head = fra.me.prev;
3096 return fra.me.REG[0];
3097 }
3098 static const char LOCATE_syntax___mmbuilder___AStdImport___visibility_level[] = "mmbuilder::AStdImport::(mmbuilder::AImport::visibility_level)";
3099 val_t syntax___mmbuilder___AStdImport___visibility_level(val_t p0){
3100 struct {struct stack_frame_t me;} fra;
3101 val_t REGB0;
3102 val_t tmp;
3103 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3104 fra.me.file = LOCATE_syntax___mmbuilder;
3105 fra.me.line = 499;
3106 fra.me.meth = LOCATE_syntax___mmbuilder___AStdImport___visibility_level;
3107 fra.me.has_broke = 0;
3108 fra.me.REG_size = 1;
3109 fra.me.nitni_local_ref_head = NULL;
3110 fra.me.REG[0] = NIT_NULL;
3111 fra.me.REG[0] = p0;
3112 /* syntax/mmbuilder.nit:501 */
3113 fra.me.REG[0] = CALL_parser___parser_nodes___AStdImport___n_visibility(fra.me.REG[0])(fra.me.REG[0]);
3114 REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
3115 goto label1;
3116 label1: while(0);
3117 stack_frame_head = fra.me.prev;
3118 return REGB0;
3119 }
3120 static const char LOCATE_syntax___mmbuilder___ANoImport___module_name[] = "mmbuilder::ANoImport::(mmbuilder::AImport::module_name)";
3121 val_t syntax___mmbuilder___ANoImport___module_name(val_t p0){
3122 struct {struct stack_frame_t me;} fra;
3123 val_t tmp;
3124 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3125 fra.me.file = LOCATE_syntax___mmbuilder;
3126 fra.me.line = 505;
3127 fra.me.meth = LOCATE_syntax___mmbuilder___ANoImport___module_name;
3128 fra.me.has_broke = 0;
3129 fra.me.REG_size = 1;
3130 fra.me.nitni_local_ref_head = NULL;
3131 fra.me.REG[0] = NIT_NULL;
3132 fra.me.REG[0] = p0;
3133 /* syntax/mmbuilder.nit:507 */
3134 fra.me.REG[0] = NIT_NULL;
3135 goto label1;
3136 label1: while(0);
3137 stack_frame_head = fra.me.prev;
3138 return fra.me.REG[0];
3139 }
3140 static const char LOCATE_syntax___mmbuilder___AVisibility___level[] = "mmbuilder::AVisibility::level";
3141 val_t syntax___mmbuilder___AVisibility___level(val_t p0){
3142 struct {struct stack_frame_t me;} fra;
3143 val_t tmp;
3144 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3145 fra.me.file = LOCATE_syntax___mmbuilder;
3146 fra.me.line = 512;
3147 fra.me.meth = LOCATE_syntax___mmbuilder___AVisibility___level;
3148 fra.me.has_broke = 0;
3149 fra.me.REG_size = 0;
3150 fra.me.nitni_local_ref_head = NULL;
3151 /* syntax/mmbuilder.nit:512 */
3152 nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 512);
3153 stack_frame_head = fra.me.prev;
3154 return NIT_NULL;
3155 }
3156 static const char LOCATE_syntax___mmbuilder___APublicVisibility___level[] = "mmbuilder::APublicVisibility::(mmbuilder::AVisibility::level)";
3157 val_t syntax___mmbuilder___APublicVisibility___level(val_t p0){
3158 struct {struct stack_frame_t me;} fra;
3159 val_t REGB0;
3160 val_t tmp;
3161 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3162 fra.me.file = LOCATE_syntax___mmbuilder;
3163 fra.me.line = 516;
3164 fra.me.meth = LOCATE_syntax___mmbuilder___APublicVisibility___level;
3165 fra.me.has_broke = 0;
3166 fra.me.REG_size = 1;
3167 fra.me.nitni_local_ref_head = NULL;
3168 fra.me.REG[0] = NIT_NULL;
3169 fra.me.REG[0] = p0;
3170 /* syntax/mmbuilder.nit:516 */
3171 REGB0 = TAG_Int(1);
3172 goto label1;
3173 label1: while(0);
3174 stack_frame_head = fra.me.prev;
3175 return REGB0;
3176 }
3177 static const char LOCATE_syntax___mmbuilder___AProtectedVisibility___level[] = "mmbuilder::AProtectedVisibility::(mmbuilder::AVisibility::level)";
3178 val_t syntax___mmbuilder___AProtectedVisibility___level(val_t p0){
3179 struct {struct stack_frame_t me;} fra;
3180 val_t REGB0;
3181 val_t tmp;
3182 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3183 fra.me.file = LOCATE_syntax___mmbuilder;
3184 fra.me.line = 519;
3185 fra.me.meth = LOCATE_syntax___mmbuilder___AProtectedVisibility___level;
3186 fra.me.has_broke = 0;
3187 fra.me.REG_size = 1;
3188 fra.me.nitni_local_ref_head = NULL;
3189 fra.me.REG[0] = NIT_NULL;
3190 fra.me.REG[0] = p0;
3191 /* syntax/mmbuilder.nit:519 */
3192 REGB0 = TAG_Int(2);
3193 goto label1;
3194 label1: while(0);
3195 stack_frame_head = fra.me.prev;
3196 return REGB0;
3197 }
3198 static const char LOCATE_syntax___mmbuilder___APrivateVisibility___level[] = "mmbuilder::APrivateVisibility::(mmbuilder::AVisibility::level)";
3199 val_t syntax___mmbuilder___APrivateVisibility___level(val_t p0){
3200 struct {struct stack_frame_t me;} fra;
3201 val_t REGB0;
3202 val_t tmp;
3203 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3204 fra.me.file = LOCATE_syntax___mmbuilder;
3205 fra.me.line = 522;
3206 fra.me.meth = LOCATE_syntax___mmbuilder___APrivateVisibility___level;
3207 fra.me.has_broke = 0;
3208 fra.me.REG_size = 1;
3209 fra.me.nitni_local_ref_head = NULL;
3210 fra.me.REG[0] = NIT_NULL;
3211 fra.me.REG[0] = p0;
3212 /* syntax/mmbuilder.nit:522 */
3213 REGB0 = TAG_Int(3);
3214 goto label1;
3215 label1: while(0);
3216 stack_frame_head = fra.me.prev;
3217 return REGB0;
3218 }
3219 static const char LOCATE_syntax___mmbuilder___AIntrudeVisibility___level[] = "mmbuilder::AIntrudeVisibility::(mmbuilder::AVisibility::level)";
3220 val_t syntax___mmbuilder___AIntrudeVisibility___level(val_t p0){
3221 struct {struct stack_frame_t me;} fra;
3222 val_t REGB0;
3223 val_t tmp;
3224 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3225 fra.me.file = LOCATE_syntax___mmbuilder;
3226 fra.me.line = 525;
3227 fra.me.meth = LOCATE_syntax___mmbuilder___AIntrudeVisibility___level;
3228 fra.me.has_broke = 0;
3229 fra.me.REG_size = 1;
3230 fra.me.nitni_local_ref_head = NULL;
3231 fra.me.REG[0] = NIT_NULL;
3232 fra.me.REG[0] = p0;
3233 /* syntax/mmbuilder.nit:525 */
3234 REGB0 = TAG_Int(0);
3235 goto label1;
3236 label1: while(0);
3237 stack_frame_head = fra.me.prev;
3238 return REGB0;
3239 }
3240 static const char LOCATE_syntax___mmbuilder___AClassdef___local_class[] = "mmbuilder::AClassdef::(syntax_base::AClassdef::local_class)";
3241 val_t syntax___mmbuilder___AClassdef___local_class(val_t p0){
3242 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3243 val_t REGB0;
3244 val_t tmp;
3245 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3246 fra.me.file = LOCATE_syntax___mmbuilder;
3247 fra.me.line = 530;
3248 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___local_class;
3249 fra.me.has_broke = 0;
3250 fra.me.REG_size = 2;
3251 fra.me.nitni_local_ref_head = NULL;
3252 fra.me.REG[0] = NIT_NULL;
3253 fra.me.REG[1] = NIT_NULL;
3254 fra.me.REG[0] = p0;
3255 /* syntax/mmbuilder.nit:530 */
3256 fra.me.REG[1] = fra.me.REG[0];
3257 fra.me.REG[1] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[1]);
3258 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
3259 if (UNTAG_Bool(REGB0)) {
3260 } else {
3261 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 530);
3262 }
3263 goto label1;
3264 label1: while(0);
3265 stack_frame_head = fra.me.prev;
3266 return fra.me.REG[1];
3267 }
3268 static const char LOCATE_syntax___mmbuilder___AClassdef___name[] = "mmbuilder::AClassdef::name";
3269 val_t syntax___mmbuilder___AClassdef___name(val_t p0){
3270 struct {struct stack_frame_t me;} fra;
3271 val_t tmp;
3272 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3273 fra.me.file = LOCATE_syntax___mmbuilder;
3274 fra.me.line = 533;
3275 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___name;
3276 fra.me.has_broke = 0;
3277 fra.me.REG_size = 0;
3278 fra.me.nitni_local_ref_head = NULL;
3279 /* syntax/mmbuilder.nit:533 */
3280 nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 533);
3281 stack_frame_head = fra.me.prev;
3282 return NIT_NULL;
3283 }
3284 static const char LOCATE_syntax___mmbuilder___AClassdef___arity[] = "mmbuilder::AClassdef::arity";
3285 val_t syntax___mmbuilder___AClassdef___arity(val_t p0){
3286 struct {struct stack_frame_t me;} fra;
3287 val_t REGB0;
3288 val_t tmp;
3289 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3290 fra.me.file = LOCATE_syntax___mmbuilder;
3291 fra.me.line = 536;
3292 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___arity;
3293 fra.me.has_broke = 0;
3294 fra.me.REG_size = 1;
3295 fra.me.nitni_local_ref_head = NULL;
3296 fra.me.REG[0] = NIT_NULL;
3297 fra.me.REG[0] = p0;
3298 /* syntax/mmbuilder.nit:537 */
3299 REGB0 = TAG_Int(0);
3300 goto label1;
3301 label1: while(0);
3302 stack_frame_head = fra.me.prev;
3303 return REGB0;
3304 }
3305 static const char LOCATE_syntax___mmbuilder___AClassdef___visibility_level[] = "mmbuilder::AClassdef::visibility_level";
3306 val_t syntax___mmbuilder___AClassdef___visibility_level(val_t p0){
3307 struct {struct stack_frame_t me;} fra;
3308 val_t REGB0;
3309 val_t tmp;
3310 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3311 fra.me.file = LOCATE_syntax___mmbuilder;
3312 fra.me.line = 539;
3313 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___visibility_level;
3314 fra.me.has_broke = 0;
3315 fra.me.REG_size = 1;
3316 fra.me.nitni_local_ref_head = NULL;
3317 fra.me.REG[0] = NIT_NULL;
3318 fra.me.REG[0] = p0;
3319 /* syntax/mmbuilder.nit:540 */
3320 REGB0 = TAG_Int(1);
3321 goto label1;
3322 label1: while(0);
3323 stack_frame_head = fra.me.prev;
3324 return REGB0;
3325 }
3326 static const char LOCATE_syntax___mmbuilder___AClassdef___accept_class_builder[] = "mmbuilder::AClassdef::(mmbuilder::ANode::accept_class_builder)";
3327 void syntax___mmbuilder___AClassdef___accept_class_builder(val_t p0, val_t p1){
3328 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
3329 val_t REGB0;
3330 val_t REGB1;
3331 val_t tmp;
3332 static val_t once_value_1; /* Once value */
3333 static val_t once_value_2; /* Once value */
3334 static val_t once_value_3; /* Once value */
3335 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3336 fra.me.file = LOCATE_syntax___mmbuilder;
3337 fra.me.line = 542;
3338 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___accept_class_builder;
3339 fra.me.has_broke = 0;
3340 fra.me.REG_size = 9;
3341 fra.me.nitni_local_ref_head = NULL;
3342 fra.me.REG[0] = NIT_NULL;
3343 fra.me.REG[1] = NIT_NULL;
3344 fra.me.REG[2] = NIT_NULL;
3345 fra.me.REG[3] = NIT_NULL;
3346 fra.me.REG[4] = NIT_NULL;
3347 fra.me.REG[5] = NIT_NULL;
3348 fra.me.REG[6] = NIT_NULL;
3349 fra.me.REG[7] = NIT_NULL;
3350 fra.me.REG[8] = NIT_NULL;
3351 fra.me.REG[0] = p0;
3352 fra.me.REG[1] = p1;
3353 /* syntax/mmbuilder.nit:542 */
3354 fra.me.REG[2] = fra.me.REG[0];
3355 fra.me.REG[3] = fra.me.REG[1];
3356 /* syntax/mmbuilder.nit:545 */
3357 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
3358 /* syntax/mmbuilder.nit:546 */
3359 fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra.me.REG[4])(fra.me.REG[4]);
3360 /* syntax/mmbuilder.nit:547 */
3361 fra.me.REG[6] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3362 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
3363 if (UNTAG_Bool(REGB0)) {
3364 /* syntax/mmbuilder.nit:548 */
3365 fra.me.REG[6] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3366 fra.me.REG[6] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
3367 /* syntax/mmbuilder.nit:549 */
3368 ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]) = fra.me.REG[6];
3369 /* syntax/mmbuilder.nit:550 */
3370 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
3371 if (UNTAG_Bool(REGB0)) {
3372 /* syntax/mmbuilder.nit:552 */
3373 REGB0 = TAG_Int(5);
3374 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3375 if (!once_value_1) {
3376 fra.me.REG[8] = BOX_NativeString("Error: A class ");
3377 REGB0 = TAG_Int(15);
3378 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3379 once_value_1 = fra.me.REG[8];
3380 register_static_object(&once_value_1);
3381 } else fra.me.REG[8] = once_value_1;
3382 fra.me.REG[8] = fra.me.REG[8];
3383 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3384 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3385 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3386 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3387 if (!once_value_2) {
3388 fra.me.REG[8] = BOX_NativeString(" is already defined at line ");
3389 REGB0 = TAG_Int(28);
3390 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3391 once_value_2 = fra.me.REG[8];
3392 register_static_object(&once_value_2);
3393 } else fra.me.REG[8] = once_value_2;
3394 fra.me.REG[8] = fra.me.REG[8];
3395 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3396 fra.me.REG[8] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[6])(fra.me.REG[6]);
3397 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
3398 if (UNTAG_Bool(REGB0)) {
3399 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 552);
3400 }
3401 fra.me.REG[8] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[8])(fra.me.REG[8]);
3402 REGB0 = CALL_location___Location___line_start(fra.me.REG[8])(fra.me.REG[8]);
3403 fra.me.REG[8] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
3404 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3405 if (!once_value_3) {
3406 fra.me.REG[8] = BOX_NativeString(".");
3407 REGB0 = TAG_Int(1);
3408 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
3409 once_value_3 = fra.me.REG[8];
3410 register_static_object(&once_value_3);
3411 } else fra.me.REG[8] = once_value_3;
3412 fra.me.REG[8] = fra.me.REG[8];
3413 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3414 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3415 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3416 /* syntax/mmbuilder.nit:553 */
3417 goto label4;
3418 }
3419 /* syntax/mmbuilder.nit:556 */
3420 fra.me.REG[7] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[6])(fra.me.REG[6]);
3421 /* syntax/mmbuilder.nit:557 */
3422 while(1) {
3423 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
3424 if (UNTAG_Bool(REGB0)) {
3425 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 557);
3426 }
3427 fra.me.REG[8] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[7])(fra.me.REG[7]);
3428 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
3429 if (UNTAG_Bool(REGB0)) {
3430 } else {
3431 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
3432 if (UNTAG_Bool(REGB1)) {
3433 REGB1 = TAG_Bool(0);
3434 REGB0 = REGB1;
3435 } else {
3436 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
3437 REGB0 = REGB1;
3438 }
3439 }
3440 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3441 if (UNTAG_Bool(REGB0)) {
3442 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
3443 if (UNTAG_Bool(REGB0)) {
3444 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 557);
3445 }
3446 fra.me.REG[8] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[7])(fra.me.REG[7]);
3447 fra.me.REG[7] = fra.me.REG[8];
3448 } else {
3449 goto label5;
3450 }
3451 }
3452 label5: while(0);
3453 /* syntax/mmbuilder.nit:558 */
3454 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
3455 if (UNTAG_Bool(REGB0)) {
3456 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 558);
3457 }
3458 CALL_syntax___syntax_base___AClassdef___next_node__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]);
3459 } else {
3460 /* syntax/mmbuilder.nit:560 */
3461 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3462 REGB0 = CALL_syntax___mmbuilder___AClassdef___arity(fra.me.REG[2])(fra.me.REG[2]);
3463 fra.me.REG[7] = NEW_MMSrcLocalClass_syntax___syntax_base___MMSrcLocalClass___init(fra.me.REG[4], fra.me.REG[7], fra.me.REG[2], REGB0);
3464 fra.me.REG[6] = fra.me.REG[7];
3465 /* syntax/mmbuilder.nit:561 */
3466 ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]) = fra.me.REG[6];
3467 /* syntax/mmbuilder.nit:562 */
3468 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3469 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7], fra.me.REG[6]);
3470 /* syntax/mmbuilder.nit:563 */
3471 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3472 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
3473 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3474 if (UNTAG_Bool(REGB0)) {
3475 /* syntax/mmbuilder.nit:564 */
3476 CALL_syntax___mmbuilder___AClassdef___build_class_introduction(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3477 } else {
3478 /* syntax/mmbuilder.nit:566 */
3479 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3480 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMModule___global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
3481 /* syntax/mmbuilder.nit:567 */
3482 CALL_syntax___mmbuilder___AClassdef___build_class_refinement(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[7]);
3483 }
3484 }
3485 /* syntax/mmbuilder.nit:571 */
3486 REGB0 = TAG_Int(0);
3487 CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
3488 /* syntax/mmbuilder.nit:572 */
3489 fra.me.REG[6] = CALL_syntax___syntax_base___MMSrcLocalClass___formal_dict(fra.me.REG[6])(fra.me.REG[6]);
3490 CALL_syntax___mmbuilder___ClassBuilderVisitor___formals__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
3491 /* syntax/mmbuilder.nit:575 */
3492 CALL_SUPER_syntax___mmbuilder___AClassdef___accept_class_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3493 /* syntax/mmbuilder.nit:578 */
3494 CALL_syntax___mmbuilder___ClassBuilderVisitor___formals__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3495 label4: while(0);
3496 stack_frame_head = fra.me.prev;
3497 return;
3498 }
3499 static const char LOCATE_syntax___mmbuilder___AClassdef___build_class_introduction[] = "mmbuilder::AClassdef::build_class_introduction";
3500 void syntax___mmbuilder___AClassdef___build_class_introduction(val_t p0, val_t p1){
3501 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
3502 val_t REGB0;
3503 val_t REGB1;
3504 val_t tmp;
3505 static val_t once_value_1; /* Once value */
3506 static val_t once_value_2; /* Once value */
3507 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3508 fra.me.file = LOCATE_syntax___mmbuilder;
3509 fra.me.line = 581;
3510 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___build_class_introduction;
3511 fra.me.has_broke = 0;
3512 fra.me.REG_size = 5;
3513 fra.me.nitni_local_ref_head = NULL;
3514 fra.me.REG[0] = NIT_NULL;
3515 fra.me.REG[1] = NIT_NULL;
3516 fra.me.REG[2] = NIT_NULL;
3517 fra.me.REG[3] = NIT_NULL;
3518 fra.me.REG[4] = NIT_NULL;
3519 fra.me.REG[0] = p0;
3520 fra.me.REG[1] = p1;
3521 /* syntax/mmbuilder.nit:583 */
3522 fra.me.REG[2] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[0])(fra.me.REG[0]);
3523 CALL_metamodel___abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
3524 /* syntax/mmbuilder.nit:584 */
3525 fra.me.REG[2] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[0])(fra.me.REG[0]);
3526 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
3527 /* syntax/mmbuilder.nit:586 */
3528 REGB0 = CALL_syntax___mmbuilder___AClassdef___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
3529 CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
3530 /* syntax/mmbuilder.nit:587 */
3531 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
3532 if (UNTAG_Bool(REGB0)) {
3533 /* syntax/mmbuilder.nit:588 */
3534 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[0])(fra.me.REG[0]);
3535 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3536 if (UNTAG_Bool(REGB0)) {
3537 } else {
3538 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3539 if (UNTAG_Bool(REGB1)) {
3540 REGB1 = TAG_Bool(0);
3541 REGB0 = REGB1;
3542 } else {
3543 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3544 REGB0 = REGB1;
3545 }
3546 }
3547 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3548 if (UNTAG_Bool(REGB0)) {
3549 /* syntax/mmbuilder.nit:589 */
3550 REGB0 = TAG_Int(3);
3551 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3552 if (!once_value_1) {
3553 fra.me.REG[4] = BOX_NativeString("Redef error: No class ");
3554 REGB0 = TAG_Int(22);
3555 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
3556 once_value_1 = fra.me.REG[4];
3557 register_static_object(&once_value_1);
3558 } else fra.me.REG[4] = once_value_1;
3559 fra.me.REG[4] = fra.me.REG[4];
3560 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3561 fra.me.REG[4] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[0])(fra.me.REG[0]);
3562 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3563 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3564 if (!once_value_2) {
3565 fra.me.REG[4] = BOX_NativeString(" is imported. Remove the redef keyword to define a new class.");
3566 REGB0 = TAG_Int(61);
3567 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
3568 once_value_2 = fra.me.REG[4];
3569 register_static_object(&once_value_2);
3570 } else fra.me.REG[4] = once_value_2;
3571 fra.me.REG[4] = fra.me.REG[4];
3572 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3573 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3574 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
3575 /* syntax/mmbuilder.nit:590 */
3576 goto label3;
3577 }
3578 /* syntax/mmbuilder.nit:592 */
3579 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3580 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[3])(fra.me.REG[3]);
3581 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
3582 /* syntax/mmbuilder.nit:593 */
3583 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3584 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[3])(fra.me.REG[3]);
3585 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
3586 /* syntax/mmbuilder.nit:594 */
3587 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3588 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[0])(fra.me.REG[0]);
3589 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
3590 }
3591 label3: while(0);
3592 stack_frame_head = fra.me.prev;
3593 return;
3594 }
3595 static const char LOCATE_syntax___mmbuilder___AClassdef___build_class_refinement[] = "mmbuilder::AClassdef::build_class_refinement";
3596 void syntax___mmbuilder___AClassdef___build_class_refinement(val_t p0, val_t p1, val_t p2){
3597 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
3598 val_t REGB0;
3599 val_t REGB1;
3600 val_t REGB2;
3601 val_t tmp;
3602 static val_t once_value_1; /* Once value */
3603 static val_t once_value_2; /* Once value */
3604 static val_t once_value_4; /* Once value */
3605 static val_t once_value_5; /* Once value */
3606 static val_t once_value_6; /* Once value */
3607 static val_t once_value_7; /* Once value */
3608 static val_t once_value_8; /* Once value */
3609 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3610 fra.me.file = LOCATE_syntax___mmbuilder;
3611 fra.me.line = 598;
3612 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___build_class_refinement;
3613 fra.me.has_broke = 0;
3614 fra.me.REG_size = 5;
3615 fra.me.nitni_local_ref_head = NULL;
3616 fra.me.REG[0] = NIT_NULL;
3617 fra.me.REG[1] = NIT_NULL;
3618 fra.me.REG[2] = NIT_NULL;
3619 fra.me.REG[3] = NIT_NULL;
3620 fra.me.REG[4] = NIT_NULL;
3621 fra.me.REG[0] = p0;
3622 fra.me.REG[1] = p1;
3623 fra.me.REG[2] = p2;
3624 /* syntax/mmbuilder.nit:600 */
3625 fra.me.REG[3] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[0])(fra.me.REG[0]);
3626 CALL_metamodel___abstractmetamodel___MMLocalClass___set_global(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
3627 /* syntax/mmbuilder.nit:602 */
3628 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
3629 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]);
3630 /* syntax/mmbuilder.nit:603 */
3631 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
3632 if (UNTAG_Bool(REGB0)) {
3633 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[0])(fra.me.REG[0]);
3634 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3635 if (UNTAG_Bool(REGB0)) {
3636 } else {
3637 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3638 if (UNTAG_Bool(REGB1)) {
3639 REGB1 = TAG_Bool(0);
3640 REGB0 = REGB1;
3641 } else {
3642 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3643 REGB0 = REGB1;
3644 }
3645 }
3646 } else {
3647 REGB1 = TAG_Bool(0);
3648 REGB0 = REGB1;
3649 }
3650 if (UNTAG_Bool(REGB0)) {
3651 /* syntax/mmbuilder.nit:604 */
3652 REGB0 = TAG_Int(3);
3653 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3654 if (!once_value_1) {
3655 fra.me.REG[4] = BOX_NativeString("Redef error: ");
3656 REGB0 = TAG_Int(13);
3657 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
3658 once_value_1 = fra.me.REG[4];
3659 register_static_object(&once_value_1);
3660 } else fra.me.REG[4] = once_value_1;
3661 fra.me.REG[4] = fra.me.REG[4];
3662 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3663 fra.me.REG[4] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[0])(fra.me.REG[0]);
3664 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3665 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3666 if (!once_value_2) {
3667 fra.me.REG[4] = BOX_NativeString(" is an imported class. Add the redef keyword to refine it.");
3668 REGB0 = TAG_Int(58);
3669 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
3670 once_value_2 = fra.me.REG[4];
3671 register_static_object(&once_value_2);
3672 } else fra.me.REG[4] = once_value_2;
3673 fra.me.REG[4] = fra.me.REG[4];
3674 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3675 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3676 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
3677 /* syntax/mmbuilder.nit:605 */
3678 goto label3;
3679 }
3680 /* syntax/mmbuilder.nit:608 */
3681 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[2])(fra.me.REG[2]);
3682 REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[3])(fra.me.REG[3]);
3683 fra.me.REG[3] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[0]);
3684 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3685 if (UNTAG_Bool(REGB1)) {
3686 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 608);
3687 }
3688 REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[3])(fra.me.REG[3]);
3689 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
3690 if (UNTAG_Bool(REGB2)) {
3691 } else {
3692 /* ../lib/standard/kernel.nit:230 */
3693 REGB1 = TAG_Bool((REGB0)==(REGB1));
3694 /* syntax/mmbuilder.nit:608 */
3695 REGB2 = REGB1;
3696 }
3697 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
3698 if (UNTAG_Bool(REGB2)) {
3699 /* syntax/mmbuilder.nit:609 */
3700 REGB2 = TAG_Int(5);
3701 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
3702 if (!once_value_4) {
3703 fra.me.REG[4] = BOX_NativeString("Redef error: Formal parameter arity missmatch; got ");
3704 REGB2 = TAG_Int(51);
3705 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
3706 once_value_4 = fra.me.REG[4];
3707 register_static_object(&once_value_4);
3708 } else fra.me.REG[4] = once_value_4;
3709 fra.me.REG[4] = fra.me.REG[4];
3710 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3711 fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[0]);
3712 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3713 if (UNTAG_Bool(REGB2)) {
3714 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 609);
3715 }
3716 REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
3717 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
3718 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3719 if (!once_value_5) {
3720 fra.me.REG[4] = BOX_NativeString(", expected ");
3721 REGB2 = TAG_Int(11);
3722 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
3723 once_value_5 = fra.me.REG[4];
3724 register_static_object(&once_value_5);
3725 } else fra.me.REG[4] = once_value_5;
3726 fra.me.REG[4] = fra.me.REG[4];
3727 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3728 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[2])(fra.me.REG[2]);
3729 REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
3730 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
3731 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3732 if (!once_value_6) {
3733 fra.me.REG[4] = BOX_NativeString(".");
3734 REGB2 = TAG_Int(1);
3735 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
3736 once_value_6 = fra.me.REG[4];
3737 register_static_object(&once_value_6);
3738 } else fra.me.REG[4] = once_value_6;
3739 fra.me.REG[4] = fra.me.REG[4];
3740 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3741 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3742 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
3743 }
3744 /* syntax/mmbuilder.nit:612 */
3745 REGB2 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
3746 if (UNTAG_Bool(REGB2)) {
3747 REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[2])(fra.me.REG[2]);
3748 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
3749 if (UNTAG_Bool(REGB2)) {
3750 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3751 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[3])(fra.me.REG[3]);
3752 } else {
3753 REGB1 = TAG_Bool(0);
3754 REGB2 = REGB1;
3755 }
3756 if (UNTAG_Bool(REGB2)) {
3757 REGB2 = TAG_Bool(1);
3758 } else {
3759 /* syntax/mmbuilder.nit:613 */
3760 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[2])(fra.me.REG[2]);
3761 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3762 /* syntax/mmbuilder.nit:612 */
3763 REGB2 = REGB1;
3764 }
3765 if (UNTAG_Bool(REGB2)) {
3766 /* syntax/mmbuilder.nit:613 */
3767 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3768 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[3])(fra.me.REG[3]);
3769 } else {
3770 /* syntax/mmbuilder.nit:612 */
3771 REGB1 = TAG_Bool(0);
3772 REGB2 = REGB1;
3773 }
3774 if (UNTAG_Bool(REGB2)) {
3775 REGB2 = TAG_Bool(1);
3776 } else {
3777 /* syntax/mmbuilder.nit:614 */
3778 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[2])(fra.me.REG[2]);
3779 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3780 /* syntax/mmbuilder.nit:612 */
3781 REGB2 = REGB1;
3782 }
3783 if (UNTAG_Bool(REGB2)) {
3784 /* syntax/mmbuilder.nit:614 */
3785 fra.me.REG[2] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3786 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[2])(fra.me.REG[2]);
3787 } else {
3788 /* syntax/mmbuilder.nit:612 */
3789 REGB1 = TAG_Bool(0);
3790 REGB2 = REGB1;
3791 }
3792 } else {
3793 REGB1 = TAG_Bool(0);
3794 REGB2 = REGB1;
3795 }
3796 if (UNTAG_Bool(REGB2)) {
3797 /* syntax/mmbuilder.nit:616 */
3798 REGB2 = TAG_Int(3);
3799 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
3800 if (!once_value_7) {
3801 fra.me.REG[3] = BOX_NativeString("Redef error: cannot change kind of class ");
3802 REGB2 = TAG_Int(41);
3803 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
3804 once_value_7 = fra.me.REG[3];
3805 register_static_object(&once_value_7);
3806 } else fra.me.REG[3] = once_value_7;
3807 fra.me.REG[3] = fra.me.REG[3];
3808 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3809 fra.me.REG[3] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[0])(fra.me.REG[0]);
3810 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3811 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3812 if (!once_value_8) {
3813 fra.me.REG[3] = BOX_NativeString(".");
3814 REGB2 = TAG_Int(1);
3815 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
3816 once_value_8 = fra.me.REG[3];
3817 register_static_object(&once_value_8);
3818 } else fra.me.REG[3] = once_value_8;
3819 fra.me.REG[3] = fra.me.REG[3];
3820 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3821 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3822 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
3823 }
3824 label3: while(0);
3825 stack_frame_head = fra.me.prev;
3826 return;
3827 }
3828 static const char LOCATE_syntax___mmbuilder___AClassdef___accept_class_verifier[] = "mmbuilder::AClassdef::(mmbuilder::ANode::accept_class_verifier)";
3829 void syntax___mmbuilder___AClassdef___accept_class_verifier(val_t p0, val_t p1){
3830 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
3831 val_t REGB0;
3832 val_t REGB1;
3833 val_t REGB2;
3834 val_t tmp;
3835 static val_t once_value_1; /* Once value */
3836 static val_t once_value_2; /* Once value */
3837 static val_t once_value_3; /* Once value */
3838 static val_t once_value_4; /* Once value */
3839 static val_t once_value_5; /* Once value */
3840 static val_t once_value_6; /* Once value */
3841 static val_t once_value_7; /* Once value */
3842 static val_t once_value_8; /* Once value */
3843 static val_t once_value_9; /* Once value */
3844 static val_t once_value_10; /* Once value */
3845 static val_t once_value_11; /* Once value */
3846 static val_t once_value_12; /* Once value */
3847 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3848 fra.me.file = LOCATE_syntax___mmbuilder;
3849 fra.me.line = 620;
3850 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___accept_class_verifier;
3851 fra.me.has_broke = 0;
3852 fra.me.REG_size = 9;
3853 fra.me.nitni_local_ref_head = NULL;
3854 fra.me.REG[0] = NIT_NULL;
3855 fra.me.REG[1] = NIT_NULL;
3856 fra.me.REG[2] = NIT_NULL;
3857 fra.me.REG[3] = NIT_NULL;
3858 fra.me.REG[4] = NIT_NULL;
3859 fra.me.REG[5] = NIT_NULL;
3860 fra.me.REG[6] = NIT_NULL;
3861 fra.me.REG[7] = NIT_NULL;
3862 fra.me.REG[8] = NIT_NULL;
3863 fra.me.REG[0] = p0;
3864 fra.me.REG[1] = p1;
3865 /* syntax/mmbuilder.nit:620 */
3866 fra.me.REG[2] = fra.me.REG[0];
3867 fra.me.REG[3] = fra.me.REG[1];
3868 /* syntax/mmbuilder.nit:622 */
3869 CALL_SUPER_syntax___mmbuilder___AClassdef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3870 /* syntax/mmbuilder.nit:623 */
3871 fra.me.REG[1] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3872 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3873 if (UNTAG_Bool(REGB0)) {
3874 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 623);
3875 }
3876 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
3877 /* syntax/mmbuilder.nit:624 */
3878 fra.me.REG[0] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3879 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3880 if (UNTAG_Bool(REGB0)) {
3881 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 624);
3882 }
3883 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
3884 fra.me.REG[0] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[0])(fra.me.REG[0]);
3885 /* ../lib/standard/collection/array.nit:269 */
3886 REGB0 = TAG_Int(0);
3887 /* ../lib/standard/collection/array.nit:270 */
3888 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3889 if (UNTAG_Bool(REGB1)) {
3890 } else {
3891 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
3892 }
3893 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
3894 /* ../lib/standard/collection/array.nit:271 */
3895 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
3896 /* ../lib/standard/collection/array.nit:272 */
3897 while(1) {
3898 /* ../lib/standard/collection/array.nit:24 */
3899 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3900 if (UNTAG_Bool(REGB1)) {
3901 } else {
3902 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
3903 }
3904 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
3905 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3906 if (UNTAG_Bool(REGB2)) {
3907 } else {
3908 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3909 }
3910 /* ../lib/standard/kernel.nit:235 */
3911 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3912 /* ../lib/standard/collection/array.nit:272 */
3913 if (UNTAG_Bool(REGB1)) {
3914 /* ../lib/standard/collection/array.nit:273 */
3915 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3916 if (UNTAG_Bool(REGB1)) {
3917 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
3918 }
3919 /* ../lib/standard/collection/array.nit:718 */
3920 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
3921 /* syntax/mmbuilder.nit:625 */
3922 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
3923 /* syntax/mmbuilder.nit:626 */
3924 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
3925 if (UNTAG_Bool(REGB1)) {
3926 /* syntax/mmbuilder.nit:627 */
3927 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
3928 if (UNTAG_Bool(REGB1)) {
3929 /* syntax/mmbuilder.nit:628 */
3930 REGB1 = TAG_Int(5);
3931 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
3932 if (!once_value_1) {
3933 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
3934 REGB1 = TAG_Int(25);
3935 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3936 once_value_1 = fra.me.REG[8];
3937 register_static_object(&once_value_1);
3938 } else fra.me.REG[8] = once_value_1;
3939 fra.me.REG[8] = fra.me.REG[8];
3940 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3941 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3942 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3943 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3944 if (!once_value_2) {
3945 fra.me.REG[8] = BOX_NativeString(" try to specialise enum class ");
3946 REGB1 = TAG_Int(30);
3947 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3948 once_value_2 = fra.me.REG[8];
3949 register_static_object(&once_value_2);
3950 } else fra.me.REG[8] = once_value_2;
3951 fra.me.REG[8] = fra.me.REG[8];
3952 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3953 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3954 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3955 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3956 if (!once_value_3) {
3957 fra.me.REG[8] = BOX_NativeString(".");
3958 REGB1 = TAG_Int(1);
3959 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3960 once_value_3 = fra.me.REG[8];
3961 register_static_object(&once_value_3);
3962 } else fra.me.REG[8] = once_value_3;
3963 fra.me.REG[8] = fra.me.REG[8];
3964 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3965 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3966 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3967 } else {
3968 /* syntax/mmbuilder.nit:629 */
3969 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
3970 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3971 if (UNTAG_Bool(REGB1)) {
3972 /* syntax/mmbuilder.nit:630 */
3973 REGB1 = TAG_Int(5);
3974 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
3975 if (!once_value_4) {
3976 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
3977 REGB1 = TAG_Int(25);
3978 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3979 once_value_4 = fra.me.REG[8];
3980 register_static_object(&once_value_4);
3981 } else fra.me.REG[8] = once_value_4;
3982 fra.me.REG[8] = fra.me.REG[8];
3983 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3984 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3985 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3986 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3987 if (!once_value_5) {
3988 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
3989 REGB1 = TAG_Int(25);
3990 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
3991 once_value_5 = fra.me.REG[8];
3992 register_static_object(&once_value_5);
3993 } else fra.me.REG[8] = once_value_5;
3994 fra.me.REG[8] = fra.me.REG[8];
3995 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3996 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3997 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3998 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3999 if (!once_value_6) {
4000 fra.me.REG[8] = BOX_NativeString(".");
4001 REGB1 = TAG_Int(1);
4002 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4003 once_value_6 = fra.me.REG[8];
4004 register_static_object(&once_value_6);
4005 } else fra.me.REG[8] = once_value_6;
4006 fra.me.REG[8] = fra.me.REG[8];
4007 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4008 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4009 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4010 }
4011 }
4012 } else {
4013 /* syntax/mmbuilder.nit:632 */
4014 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
4015 if (UNTAG_Bool(REGB1)) {
4016 /* syntax/mmbuilder.nit:633 */
4017 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
4018 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4019 if (UNTAG_Bool(REGB1)) {
4020 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
4021 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4022 } else {
4023 REGB2 = TAG_Bool(0);
4024 REGB1 = REGB2;
4025 }
4026 if (UNTAG_Bool(REGB1)) {
4027 /* syntax/mmbuilder.nit:634 */
4028 REGB1 = TAG_Int(5);
4029 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4030 if (!once_value_7) {
4031 fra.me.REG[8] = BOX_NativeString("Special error: Enum class ");
4032 REGB1 = TAG_Int(26);
4033 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4034 once_value_7 = fra.me.REG[8];
4035 register_static_object(&once_value_7);
4036 } else fra.me.REG[8] = once_value_7;
4037 fra.me.REG[8] = fra.me.REG[8];
4038 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4039 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4040 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4041 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4042 if (!once_value_8) {
4043 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
4044 REGB1 = TAG_Int(25);
4045 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4046 once_value_8 = fra.me.REG[8];
4047 register_static_object(&once_value_8);
4048 } else fra.me.REG[8] = once_value_8;
4049 fra.me.REG[8] = fra.me.REG[8];
4050 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4051 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4052 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4053 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4054 if (!once_value_9) {
4055 fra.me.REG[8] = BOX_NativeString(".");
4056 REGB1 = TAG_Int(1);
4057 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4058 once_value_9 = fra.me.REG[8];
4059 register_static_object(&once_value_9);
4060 } else fra.me.REG[8] = once_value_9;
4061 fra.me.REG[8] = fra.me.REG[8];
4062 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4063 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4064 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4065 }
4066 } else {
4067 /* syntax/mmbuilder.nit:637 */
4068 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
4069 if (UNTAG_Bool(REGB1)) {
4070 /* syntax/mmbuilder.nit:638 */
4071 REGB1 = TAG_Int(5);
4072 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4073 if (!once_value_10) {
4074 fra.me.REG[7] = BOX_NativeString("Special error: Class ");
4075 REGB1 = TAG_Int(21);
4076 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
4077 once_value_10 = fra.me.REG[7];
4078 register_static_object(&once_value_10);
4079 } else fra.me.REG[7] = once_value_10;
4080 fra.me.REG[7] = fra.me.REG[7];
4081 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4082 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4083 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4084 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4085 if (!once_value_11) {
4086 fra.me.REG[7] = BOX_NativeString(" try to specialise enum class ");
4087 REGB1 = TAG_Int(30);
4088 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
4089 once_value_11 = fra.me.REG[7];
4090 register_static_object(&once_value_11);
4091 } else fra.me.REG[7] = once_value_11;
4092 fra.me.REG[7] = fra.me.REG[7];
4093 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4094 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4095 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4096 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
4097 if (!once_value_12) {
4098 fra.me.REG[5] = BOX_NativeString(".");
4099 REGB1 = TAG_Int(1);
4100 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
4101 once_value_12 = fra.me.REG[5];
4102 register_static_object(&once_value_12);
4103 } else fra.me.REG[5] = once_value_12;
4104 fra.me.REG[5] = fra.me.REG[5];
4105 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
4106 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4107 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
4108 }
4109 }
4110 }
4111 /* ../lib/standard/collection/array.nit:274 */
4112 REGB1 = TAG_Int(1);
4113 /* ../lib/standard/kernel.nit:238 */
4114 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
4115 /* ../lib/standard/collection/array.nit:274 */
4116 REGB0 = REGB1;
4117 } else {
4118 /* ../lib/standard/collection/array.nit:272 */
4119 goto label13;
4120 }
4121 }
4122 label13: while(0);
4123 stack_frame_head = fra.me.prev;
4124 return;
4125 }
4126 static const char LOCATE_syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor[] = "mmbuilder::AClassdef::(syntax_base::ANode::accept_abs_syntax_visitor)";
4127 void syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
4128 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4129 val_t tmp;
4130 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4131 fra.me.file = LOCATE_syntax___mmbuilder;
4132 fra.me.line = 645;
4133 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor;
4134 fra.me.has_broke = 0;
4135 fra.me.REG_size = 4;
4136 fra.me.nitni_local_ref_head = NULL;
4137 fra.me.REG[0] = NIT_NULL;
4138 fra.me.REG[1] = NIT_NULL;
4139 fra.me.REG[2] = NIT_NULL;
4140 fra.me.REG[3] = NIT_NULL;
4141 fra.me.REG[0] = p0;
4142 fra.me.REG[1] = p1;
4143 /* syntax/mmbuilder.nit:645 */
4144 fra.me.REG[2] = fra.me.REG[0];
4145 fra.me.REG[3] = fra.me.REG[1];
4146 /* syntax/mmbuilder.nit:647 */
4147 fra.me.REG[2] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4148 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
4149 /* syntax/mmbuilder.nit:648 */
4150 CALL_SUPER_syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4151 /* syntax/mmbuilder.nit:649 */
4152 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
4153 stack_frame_head = fra.me.prev;
4154 return;
4155 }
4156 static const char LOCATE_syntax___mmbuilder___AClasskind___is_interface[] = "mmbuilder::AClasskind::is_interface";
4157 val_t syntax___mmbuilder___AClasskind___is_interface(val_t p0){
4158 struct {struct stack_frame_t me;} fra;
4159 val_t REGB0;
4160 val_t tmp;
4161 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4162 fra.me.file = LOCATE_syntax___mmbuilder;
4163 fra.me.line = 654;
4164 fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_interface;
4165 fra.me.has_broke = 0;
4166 fra.me.REG_size = 1;
4167 fra.me.nitni_local_ref_head = NULL;
4168 fra.me.REG[0] = NIT_NULL;
4169 fra.me.REG[0] = p0;
4170 /* syntax/mmbuilder.nit:654 */
4171 REGB0 = TAG_Bool(0);
4172 goto label1;
4173 label1: while(0);
4174 stack_frame_head = fra.me.prev;
4175 return REGB0;
4176 }
4177 static const char LOCATE_syntax___mmbuilder___AClasskind___is_enum[] = "mmbuilder::AClasskind::is_enum";
4178 val_t syntax___mmbuilder___AClasskind___is_enum(val_t p0){
4179 struct {struct stack_frame_t me;} fra;
4180 val_t REGB0;
4181 val_t tmp;
4182 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4183 fra.me.file = LOCATE_syntax___mmbuilder;
4184 fra.me.line = 655;
4185 fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_enum;
4186 fra.me.has_broke = 0;
4187 fra.me.REG_size = 1;
4188 fra.me.nitni_local_ref_head = NULL;
4189 fra.me.REG[0] = NIT_NULL;
4190 fra.me.REG[0] = p0;
4191 /* syntax/mmbuilder.nit:655 */
4192 REGB0 = TAG_Bool(0);
4193 goto label1;
4194 label1: while(0);
4195 stack_frame_head = fra.me.prev;
4196 return REGB0;
4197 }
4198 static const char LOCATE_syntax___mmbuilder___AClasskind___is_abstract[] = "mmbuilder::AClasskind::is_abstract";
4199 val_t syntax___mmbuilder___AClasskind___is_abstract(val_t p0){
4200 struct {struct stack_frame_t me;} fra;
4201 val_t REGB0;
4202 val_t tmp;
4203 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4204 fra.me.file = LOCATE_syntax___mmbuilder;
4205 fra.me.line = 656;
4206 fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_abstract;
4207 fra.me.has_broke = 0;
4208 fra.me.REG_size = 1;
4209 fra.me.nitni_local_ref_head = NULL;
4210 fra.me.REG[0] = NIT_NULL;
4211 fra.me.REG[0] = p0;
4212 /* syntax/mmbuilder.nit:656 */
4213 REGB0 = TAG_Bool(0);
4214 goto label1;
4215 label1: while(0);
4216 stack_frame_head = fra.me.prev;
4217 return REGB0;
4218 }
4219 static const char LOCATE_syntax___mmbuilder___AClasskind___is_extern[] = "mmbuilder::AClasskind::is_extern";
4220 val_t syntax___mmbuilder___AClasskind___is_extern(val_t p0){
4221 struct {struct stack_frame_t me;} fra;
4222 val_t REGB0;
4223 val_t tmp;
4224 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4225 fra.me.file = LOCATE_syntax___mmbuilder;
4226 fra.me.line = 657;
4227 fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_extern;
4228 fra.me.has_broke = 0;
4229 fra.me.REG_size = 1;
4230 fra.me.nitni_local_ref_head = NULL;
4231 fra.me.REG[0] = NIT_NULL;
4232 fra.me.REG[0] = p0;
4233 /* syntax/mmbuilder.nit:657 */
4234 REGB0 = TAG_Bool(0);
4235 goto label1;
4236 label1: while(0);
4237 stack_frame_head = fra.me.prev;
4238 return REGB0;
4239 }
4240 static const char LOCATE_syntax___mmbuilder___AInterfaceClasskind___is_interface[] = "mmbuilder::AInterfaceClasskind::(mmbuilder::AClasskind::is_interface)";
4241 val_t syntax___mmbuilder___AInterfaceClasskind___is_interface(val_t p0){
4242 struct {struct stack_frame_t me;} fra;
4243 val_t REGB0;
4244 val_t tmp;
4245 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4246 fra.me.file = LOCATE_syntax___mmbuilder;
4247 fra.me.line = 661;
4248 fra.me.meth = LOCATE_syntax___mmbuilder___AInterfaceClasskind___is_interface;
4249 fra.me.has_broke = 0;
4250 fra.me.REG_size = 1;
4251 fra.me.nitni_local_ref_head = NULL;
4252 fra.me.REG[0] = NIT_NULL;
4253 fra.me.REG[0] = p0;
4254 /* syntax/mmbuilder.nit:661 */
4255 REGB0 = TAG_Bool(1);
4256 goto label1;
4257 label1: while(0);
4258 stack_frame_head = fra.me.prev;
4259 return REGB0;
4260 }
4261 static const char LOCATE_syntax___mmbuilder___AEnumClasskind___is_enum[] = "mmbuilder::AEnumClasskind::(mmbuilder::AClasskind::is_enum)";
4262 val_t syntax___mmbuilder___AEnumClasskind___is_enum(val_t p0){
4263 struct {struct stack_frame_t me;} fra;
4264 val_t REGB0;
4265 val_t tmp;
4266 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4267 fra.me.file = LOCATE_syntax___mmbuilder;
4268 fra.me.line = 664;
4269 fra.me.meth = LOCATE_syntax___mmbuilder___AEnumClasskind___is_enum;
4270 fra.me.has_broke = 0;
4271 fra.me.REG_size = 1;
4272 fra.me.nitni_local_ref_head = NULL;
4273 fra.me.REG[0] = NIT_NULL;
4274 fra.me.REG[0] = p0;
4275 /* syntax/mmbuilder.nit:664 */
4276 REGB0 = TAG_Bool(1);
4277 goto label1;
4278 label1: while(0);
4279 stack_frame_head = fra.me.prev;
4280 return REGB0;
4281 }
4282 static const char LOCATE_syntax___mmbuilder___AExternClasskind___is_extern[] = "mmbuilder::AExternClasskind::(mmbuilder::AClasskind::is_extern)";
4283 val_t syntax___mmbuilder___AExternClasskind___is_extern(val_t p0){
4284 struct {struct stack_frame_t me;} fra;
4285 val_t REGB0;
4286 val_t tmp;
4287 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4288 fra.me.file = LOCATE_syntax___mmbuilder;
4289 fra.me.line = 667;
4290 fra.me.meth = LOCATE_syntax___mmbuilder___AExternClasskind___is_extern;
4291 fra.me.has_broke = 0;
4292 fra.me.REG_size = 1;
4293 fra.me.nitni_local_ref_head = NULL;
4294 fra.me.REG[0] = NIT_NULL;
4295 fra.me.REG[0] = p0;
4296 /* syntax/mmbuilder.nit:667 */
4297 REGB0 = TAG_Bool(1);
4298 goto label1;
4299 label1: while(0);
4300 stack_frame_head = fra.me.prev;
4301 return REGB0;
4302 }
4303 static const char LOCATE_syntax___mmbuilder___AAbstractClasskind___is_abstract[] = "mmbuilder::AAbstractClasskind::(mmbuilder::AClasskind::is_abstract)";
4304 val_t syntax___mmbuilder___AAbstractClasskind___is_abstract(val_t p0){
4305 struct {struct stack_frame_t me;} fra;
4306 val_t REGB0;
4307 val_t tmp;
4308 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4309 fra.me.file = LOCATE_syntax___mmbuilder;
4310 fra.me.line = 670;
4311 fra.me.meth = LOCATE_syntax___mmbuilder___AAbstractClasskind___is_abstract;
4312 fra.me.has_broke = 0;
4313 fra.me.REG_size = 1;
4314 fra.me.nitni_local_ref_head = NULL;
4315 fra.me.REG[0] = NIT_NULL;
4316 fra.me.REG[0] = p0;
4317 /* syntax/mmbuilder.nit:670 */
4318 REGB0 = TAG_Bool(1);
4319 goto label1;
4320 label1: while(0);
4321 stack_frame_head = fra.me.prev;
4322 return REGB0;
4323 }
4324 static const char LOCATE_syntax___mmbuilder___AStdClassdef___name[] = "mmbuilder::AStdClassdef::(mmbuilder::AClassdef::name)";
4325 val_t syntax___mmbuilder___AStdClassdef___name(val_t p0){
4326 struct {struct stack_frame_t me;} fra;
4327 val_t REGB0;
4328 val_t tmp;
4329 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4330 fra.me.file = LOCATE_syntax___mmbuilder;
4331 fra.me.line = 674;
4332 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___name;
4333 fra.me.has_broke = 0;
4334 fra.me.REG_size = 1;
4335 fra.me.nitni_local_ref_head = NULL;
4336 fra.me.REG[0] = NIT_NULL;
4337 fra.me.REG[0] = p0;
4338 /* syntax/mmbuilder.nit:676 */
4339 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_id(fra.me.REG[0])(fra.me.REG[0]);
4340 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4341 if (UNTAG_Bool(REGB0)) {
4342 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 676);
4343 }
4344 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
4345 goto label1;
4346 label1: while(0);
4347 stack_frame_head = fra.me.prev;
4348 return fra.me.REG[0];
4349 }
4350 static const char LOCATE_syntax___mmbuilder___AStdClassdef___arity[] = "mmbuilder::AStdClassdef::(mmbuilder::AClassdef::arity)";
4351 val_t syntax___mmbuilder___AStdClassdef___arity(val_t p0){
4352 struct {struct stack_frame_t me;} fra;
4353 val_t REGB0;
4354 val_t tmp;
4355 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4356 fra.me.file = LOCATE_syntax___mmbuilder;
4357 fra.me.line = 678;
4358 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___arity;
4359 fra.me.has_broke = 0;
4360 fra.me.REG_size = 1;
4361 fra.me.nitni_local_ref_head = NULL;
4362 fra.me.REG[0] = NIT_NULL;
4363 fra.me.REG[0] = p0;
4364 /* syntax/mmbuilder.nit:680 */
4365 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_formaldefs(fra.me.REG[0])(fra.me.REG[0]);
4366 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
4367 goto label1;
4368 label1: while(0);
4369 stack_frame_head = fra.me.prev;
4370 return REGB0;
4371 }
4372 static const char LOCATE_syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder[] = "mmbuilder::AStdClassdef::(mmbuilder::ANode::accept_class_specialization_builder)";
4373 void syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder(val_t p0, val_t p1){
4374 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4375 val_t REGB0;
4376 val_t REGB1;
4377 val_t tmp;
4378 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4379 fra.me.file = LOCATE_syntax___mmbuilder;
4380 fra.me.line = 682;
4381 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder;
4382 fra.me.has_broke = 0;
4383 fra.me.REG_size = 4;
4384 fra.me.nitni_local_ref_head = NULL;
4385 fra.me.REG[0] = NIT_NULL;
4386 fra.me.REG[1] = NIT_NULL;
4387 fra.me.REG[2] = NIT_NULL;
4388 fra.me.REG[3] = NIT_NULL;
4389 fra.me.REG[0] = p0;
4390 fra.me.REG[1] = p1;
4391 /* syntax/mmbuilder.nit:682 */
4392 fra.me.REG[2] = fra.me.REG[0];
4393 /* syntax/mmbuilder.nit:684 */
4394 CALL_SUPER_syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4395 /* syntax/mmbuilder.nit:686 */
4396 fra.me.REG[1] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[2])(fra.me.REG[2]);
4397 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
4398 /* syntax/mmbuilder.nit:687 */
4399 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
4400 fra.me.REG[3] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[2])(fra.me.REG[2]);
4401 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[3]));
4402 if (UNTAG_Bool(REGB0)) {
4403 } else {
4404 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
4405 REGB0 = REGB1;
4406 }
4407 if (UNTAG_Bool(REGB0)) {
4408 /* syntax/mmbuilder.nit:688 */
4409 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4410 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[3])(fra.me.REG[3]);
4411 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
4412 /* syntax/mmbuilder.nit:689 */
4413 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4414 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[3])(fra.me.REG[3]);
4415 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
4416 /* syntax/mmbuilder.nit:690 */
4417 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4418 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[3])(fra.me.REG[3]);
4419 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
4420 /* syntax/mmbuilder.nit:691 */
4421 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4422 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_extern(fra.me.REG[3])(fra.me.REG[3]);
4423 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
4424 /* syntax/mmbuilder.nit:692 */
4425 REGB0 = CALL_syntax___mmbuilder___AClassdef___visibility_level(fra.me.REG[2])(fra.me.REG[2]);
4426 CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
4427 }
4428 stack_frame_head = fra.me.prev;
4429 return;
4430 }
4431 static const char LOCATE_syntax___mmbuilder___AStdClassdef___accept_class_verifier[] = "mmbuilder::AStdClassdef::(mmbuilder::ANode::accept_class_verifier)";
4432 void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p1){
4433 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
4434 val_t REGB0;
4435 val_t REGB1;
4436 val_t REGB2;
4437 val_t tmp;
4438 static val_t once_value_1; /* Once value */
4439 static val_t once_value_2; /* Once value */
4440 static val_t once_value_3; /* Once value */
4441 static val_t once_value_4; /* Once value */
4442 static val_t once_value_5; /* Once value */
4443 static val_t once_value_6; /* Once value */
4444 static val_t once_value_7; /* Once value */
4445 static val_t once_value_8; /* Once value */
4446 static val_t once_value_9; /* Once value */
4447 static val_t once_value_10; /* Once value */
4448 static val_t once_value_11; /* Once value */
4449 static val_t once_value_12; /* Once value */
4450 static val_t once_value_13; /* Once value */
4451 static val_t once_value_14; /* Once value */
4452 static val_t once_value_15; /* Once value */
4453 static val_t once_value_16; /* Once value */
4454 static val_t once_value_17; /* Once value */
4455 static val_t once_value_18; /* Once value */
4456 static val_t once_value_19; /* Once value */
4457 static val_t once_value_20; /* Once value */
4458 static val_t once_value_23; /* Once value */
4459 static val_t once_value_24; /* Once value */
4460 static val_t once_value_25; /* Once value */
4461 static val_t once_value_26; /* Once value */
4462 static val_t once_value_27; /* Once value */
4463 static val_t once_value_28; /* Once value */
4464 static val_t once_value_29; /* Once value */
4465 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4466 fra.me.file = LOCATE_syntax___mmbuilder;
4467 fra.me.line = 695;
4468 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___accept_class_verifier;
4469 fra.me.has_broke = 0;
4470 fra.me.REG_size = 9;
4471 fra.me.nitni_local_ref_head = NULL;
4472 fra.me.REG[0] = NIT_NULL;
4473 fra.me.REG[1] = NIT_NULL;
4474 fra.me.REG[2] = NIT_NULL;
4475 fra.me.REG[3] = NIT_NULL;
4476 fra.me.REG[4] = NIT_NULL;
4477 fra.me.REG[5] = NIT_NULL;
4478 fra.me.REG[6] = NIT_NULL;
4479 fra.me.REG[7] = NIT_NULL;
4480 fra.me.REG[8] = NIT_NULL;
4481 fra.me.REG[0] = p0;
4482 fra.me.REG[1] = p1;
4483 /* syntax/mmbuilder.nit:695 */
4484 fra.me.REG[2] = fra.me.REG[0];
4485 fra.me.REG[3] = fra.me.REG[1];
4486 /* syntax/mmbuilder.nit:697 */
4487 CALL_SUPER_syntax___mmbuilder___AStdClassdef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4488 /* syntax/mmbuilder.nit:698 */
4489 fra.me.REG[1] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4490 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4491 if (UNTAG_Bool(REGB0)) {
4492 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 698);
4493 }
4494 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
4495 /* syntax/mmbuilder.nit:699 */
4496 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
4497 fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4498 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[0],fra.me.REG[4]));
4499 if (UNTAG_Bool(REGB0)) {
4500 } else {
4501 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4502 REGB0 = REGB1;
4503 }
4504 if (UNTAG_Bool(REGB0)) {
4505 /* syntax/mmbuilder.nit:701 */
4506 fra.me.REG[4] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
4507 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4508 if (UNTAG_Bool(REGB0)) {
4509 } else {
4510 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4511 if (UNTAG_Bool(REGB1)) {
4512 REGB1 = TAG_Bool(0);
4513 REGB0 = REGB1;
4514 } else {
4515 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
4516 REGB0 = REGB1;
4517 }
4518 }
4519 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4520 if (UNTAG_Bool(REGB0)) {
4521 /* syntax/mmbuilder.nit:702 */
4522 REGB0 = TAG_Int(3);
4523 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
4524 if (!once_value_1) {
4525 fra.me.REG[0] = BOX_NativeString("Redef error: No class ");
4526 REGB0 = TAG_Int(22);
4527 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4528 once_value_1 = fra.me.REG[0];
4529 register_static_object(&once_value_1);
4530 } else fra.me.REG[0] = once_value_1;
4531 fra.me.REG[0] = fra.me.REG[0];
4532 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
4533 fra.me.REG[0] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4534 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
4535 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
4536 if (!once_value_2) {
4537 fra.me.REG[0] = BOX_NativeString(" is imported. Remove the redef keyword to define a new class.");
4538 REGB0 = TAG_Int(61);
4539 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
4540 once_value_2 = fra.me.REG[0];
4541 register_static_object(&once_value_2);
4542 } else fra.me.REG[0] = once_value_2;
4543 fra.me.REG[0] = fra.me.REG[0];
4544 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
4545 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4546 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]);
4547 }
4548 /* syntax/mmbuilder.nit:704 */
4549 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[1])(fra.me.REG[1]);
4550 if (UNTAG_Bool(REGB0)) {
4551 /* syntax/mmbuilder.nit:705 */
4552 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
4553 REGB0 = TAG_Bool(1);
4554 CALL_metamodel___abstractmetamodel___MMModule___is_extern_hybrid__eq(fra.me.REG[4])(fra.me.REG[4], REGB0);
4555 }
4556 /* syntax/mmbuilder.nit:708 */
4557 fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4558 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4559 if (UNTAG_Bool(REGB0)) {
4560 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 708);
4561 }
4562 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[4])(fra.me.REG[4]);
4563 fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[4])(fra.me.REG[4]);
4564 /* ../lib/standard/collection/array.nit:269 */
4565 REGB0 = TAG_Int(0);
4566 /* ../lib/standard/collection/array.nit:270 */
4567 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
4568 if (UNTAG_Bool(REGB1)) {
4569 } else {
4570 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
4571 }
4572 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
4573 /* ../lib/standard/collection/array.nit:271 */
4574 fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
4575 /* ../lib/standard/collection/array.nit:272 */
4576 while(1) {
4577 /* ../lib/standard/collection/array.nit:24 */
4578 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
4579 if (UNTAG_Bool(REGB1)) {
4580 } else {
4581 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
4582 }
4583 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
4584 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
4585 if (UNTAG_Bool(REGB2)) {
4586 } else {
4587 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4588 }
4589 /* ../lib/standard/kernel.nit:235 */
4590 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
4591 /* ../lib/standard/collection/array.nit:272 */
4592 if (UNTAG_Bool(REGB1)) {
4593 /* ../lib/standard/collection/array.nit:273 */
4594 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4595 if (UNTAG_Bool(REGB1)) {
4596 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
4597 }
4598 /* ../lib/standard/collection/array.nit:718 */
4599 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
4600 /* syntax/mmbuilder.nit:709 */
4601 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
4602 /* syntax/mmbuilder.nit:710 */
4603 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
4604 if (UNTAG_Bool(REGB1)) {
4605 /* syntax/mmbuilder.nit:711 */
4606 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
4607 if (UNTAG_Bool(REGB1)) {
4608 /* syntax/mmbuilder.nit:712 */
4609 REGB1 = TAG_Int(5);
4610 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4611 if (!once_value_3) {
4612 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
4613 REGB1 = TAG_Int(25);
4614 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4615 once_value_3 = fra.me.REG[8];
4616 register_static_object(&once_value_3);
4617 } else fra.me.REG[8] = once_value_3;
4618 fra.me.REG[8] = fra.me.REG[8];
4619 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4620 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4621 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4622 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4623 if (!once_value_4) {
4624 fra.me.REG[8] = BOX_NativeString(" try to specialise enum class ");
4625 REGB1 = TAG_Int(30);
4626 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4627 once_value_4 = fra.me.REG[8];
4628 register_static_object(&once_value_4);
4629 } else fra.me.REG[8] = once_value_4;
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_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
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_5) {
4636 fra.me.REG[8] = BOX_NativeString(".");
4637 REGB1 = TAG_Int(1);
4638 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4639 once_value_5 = fra.me.REG[8];
4640 register_static_object(&once_value_5);
4641 } else fra.me.REG[8] = once_value_5;
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[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4645 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4646 } else {
4647 /* syntax/mmbuilder.nit:713 */
4648 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
4649 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4650 if (UNTAG_Bool(REGB1)) {
4651 /* syntax/mmbuilder.nit:714 */
4652 REGB1 = TAG_Int(5);
4653 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4654 if (!once_value_6) {
4655 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
4656 REGB1 = TAG_Int(25);
4657 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4658 once_value_6 = fra.me.REG[8];
4659 register_static_object(&once_value_6);
4660 } else fra.me.REG[8] = once_value_6;
4661 fra.me.REG[8] = fra.me.REG[8];
4662 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4663 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4664 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4665 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4666 if (!once_value_7) {
4667 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
4668 REGB1 = TAG_Int(25);
4669 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4670 once_value_7 = fra.me.REG[8];
4671 register_static_object(&once_value_7);
4672 } else fra.me.REG[8] = once_value_7;
4673 fra.me.REG[8] = fra.me.REG[8];
4674 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4675 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4676 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4677 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4678 if (!once_value_8) {
4679 fra.me.REG[8] = BOX_NativeString(".");
4680 REGB1 = TAG_Int(1);
4681 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4682 once_value_8 = fra.me.REG[8];
4683 register_static_object(&once_value_8);
4684 } else fra.me.REG[8] = once_value_8;
4685 fra.me.REG[8] = fra.me.REG[8];
4686 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4687 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4688 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4689 }
4690 }
4691 } else {
4692 /* syntax/mmbuilder.nit:716 */
4693 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
4694 if (UNTAG_Bool(REGB1)) {
4695 /* syntax/mmbuilder.nit:717 */
4696 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
4697 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4698 if (UNTAG_Bool(REGB1)) {
4699 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
4700 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4701 } else {
4702 REGB2 = TAG_Bool(0);
4703 REGB1 = REGB2;
4704 }
4705 if (UNTAG_Bool(REGB1)) {
4706 /* syntax/mmbuilder.nit:718 */
4707 REGB1 = TAG_Int(5);
4708 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4709 if (!once_value_9) {
4710 fra.me.REG[8] = BOX_NativeString("Special error: Enum class ");
4711 REGB1 = TAG_Int(26);
4712 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4713 once_value_9 = fra.me.REG[8];
4714 register_static_object(&once_value_9);
4715 } else fra.me.REG[8] = once_value_9;
4716 fra.me.REG[8] = fra.me.REG[8];
4717 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4718 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4719 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4720 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4721 if (!once_value_10) {
4722 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
4723 REGB1 = TAG_Int(25);
4724 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4725 once_value_10 = fra.me.REG[8];
4726 register_static_object(&once_value_10);
4727 } else fra.me.REG[8] = once_value_10;
4728 fra.me.REG[8] = fra.me.REG[8];
4729 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4730 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4731 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4732 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4733 if (!once_value_11) {
4734 fra.me.REG[8] = BOX_NativeString(".");
4735 REGB1 = TAG_Int(1);
4736 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4737 once_value_11 = fra.me.REG[8];
4738 register_static_object(&once_value_11);
4739 } else fra.me.REG[8] = once_value_11;
4740 fra.me.REG[8] = fra.me.REG[8];
4741 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4742 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4743 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4744 }
4745 } else {
4746 /* syntax/mmbuilder.nit:720 */
4747 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[1])(fra.me.REG[1]);
4748 if (UNTAG_Bool(REGB1)) {
4749 /* syntax/mmbuilder.nit:721 */
4750 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
4751 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4752 if (UNTAG_Bool(REGB1)) {
4753 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[6])(fra.me.REG[6]);
4754 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4755 } else {
4756 REGB2 = TAG_Bool(0);
4757 REGB1 = REGB2;
4758 }
4759 if (UNTAG_Bool(REGB1)) {
4760 /* syntax/mmbuilder.nit:722 */
4761 REGB1 = TAG_Int(5);
4762 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4763 if (!once_value_12) {
4764 fra.me.REG[8] = BOX_NativeString("Special error: Extern class ");
4765 REGB1 = TAG_Int(28);
4766 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4767 once_value_12 = fra.me.REG[8];
4768 register_static_object(&once_value_12);
4769 } else fra.me.REG[8] = once_value_12;
4770 fra.me.REG[8] = fra.me.REG[8];
4771 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4772 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4773 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4774 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4775 if (!once_value_13) {
4776 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
4777 REGB1 = TAG_Int(25);
4778 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4779 once_value_13 = fra.me.REG[8];
4780 register_static_object(&once_value_13);
4781 } else fra.me.REG[8] = once_value_13;
4782 fra.me.REG[8] = fra.me.REG[8];
4783 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4784 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4785 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4786 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4787 if (!once_value_14) {
4788 fra.me.REG[8] = BOX_NativeString(".");
4789 REGB1 = TAG_Int(1);
4790 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4791 once_value_14 = fra.me.REG[8];
4792 register_static_object(&once_value_14);
4793 } else fra.me.REG[8] = once_value_14;
4794 fra.me.REG[8] = fra.me.REG[8];
4795 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4796 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4797 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4798 }
4799 } else {
4800 /* syntax/mmbuilder.nit:725 */
4801 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
4802 if (UNTAG_Bool(REGB1)) {
4803 /* syntax/mmbuilder.nit:726 */
4804 REGB1 = TAG_Int(5);
4805 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4806 if (!once_value_15) {
4807 fra.me.REG[8] = BOX_NativeString("Special error: Class ");
4808 REGB1 = TAG_Int(21);
4809 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4810 once_value_15 = fra.me.REG[8];
4811 register_static_object(&once_value_15);
4812 } else fra.me.REG[8] = once_value_15;
4813 fra.me.REG[8] = fra.me.REG[8];
4814 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4815 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4816 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4817 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4818 if (!once_value_16) {
4819 fra.me.REG[8] = BOX_NativeString(" try to specialise enum class ");
4820 REGB1 = TAG_Int(30);
4821 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4822 once_value_16 = fra.me.REG[8];
4823 register_static_object(&once_value_16);
4824 } else fra.me.REG[8] = once_value_16;
4825 fra.me.REG[8] = fra.me.REG[8];
4826 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4827 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4828 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4829 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4830 if (!once_value_17) {
4831 fra.me.REG[8] = BOX_NativeString(".");
4832 REGB1 = TAG_Int(1);
4833 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
4834 once_value_17 = fra.me.REG[8];
4835 register_static_object(&once_value_17);
4836 } else fra.me.REG[8] = once_value_17;
4837 fra.me.REG[8] = fra.me.REG[8];
4838 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4839 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4840 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4841 } else {
4842 /* syntax/mmbuilder.nit:727 */
4843 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[6])(fra.me.REG[6]);
4844 if (UNTAG_Bool(REGB1)) {
4845 /* syntax/mmbuilder.nit:728 */
4846 REGB1 = TAG_Int(5);
4847 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4848 if (!once_value_18) {
4849 fra.me.REG[7] = BOX_NativeString("Special error: Class ");
4850 REGB1 = TAG_Int(21);
4851 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
4852 once_value_18 = fra.me.REG[7];
4853 register_static_object(&once_value_18);
4854 } else fra.me.REG[7] = once_value_18;
4855 fra.me.REG[7] = fra.me.REG[7];
4856 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4857 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4858 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4859 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4860 if (!once_value_19) {
4861 fra.me.REG[7] = BOX_NativeString(" try to specialise extern class ");
4862 REGB1 = TAG_Int(32);
4863 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
4864 once_value_19 = fra.me.REG[7];
4865 register_static_object(&once_value_19);
4866 } else fra.me.REG[7] = once_value_19;
4867 fra.me.REG[7] = fra.me.REG[7];
4868 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4869 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4870 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4871 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
4872 if (!once_value_20) {
4873 fra.me.REG[5] = BOX_NativeString(".");
4874 REGB1 = TAG_Int(1);
4875 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
4876 once_value_20 = fra.me.REG[5];
4877 register_static_object(&once_value_20);
4878 } else fra.me.REG[5] = once_value_20;
4879 fra.me.REG[5] = fra.me.REG[5];
4880 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
4881 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4882 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
4883 }
4884 }
4885 }
4886 }
4887 }
4888 /* ../lib/standard/collection/array.nit:274 */
4889 REGB1 = TAG_Int(1);
4890 /* ../lib/standard/kernel.nit:238 */
4891 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
4892 /* ../lib/standard/collection/array.nit:274 */
4893 REGB0 = REGB1;
4894 } else {
4895 /* ../lib/standard/collection/array.nit:272 */
4896 goto label21;
4897 }
4898 }
4899 label21: while(0);
4900 /* syntax/mmbuilder.nit:733 */
4901 goto label22;
4902 }
4903 /* syntax/mmbuilder.nit:738 */
4904 fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
4905 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]);
4906 /* syntax/mmbuilder.nit:739 */
4907 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
4908 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4909 if (UNTAG_Bool(REGB0)) {
4910 } else {
4911 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4912 if (UNTAG_Bool(REGB1)) {
4913 REGB1 = TAG_Bool(0);
4914 REGB0 = REGB1;
4915 } else {
4916 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
4917 REGB0 = REGB1;
4918 }
4919 }
4920 if (UNTAG_Bool(REGB0)) {
4921 /* syntax/mmbuilder.nit:740 */
4922 REGB0 = TAG_Int(3);
4923 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
4924 if (!once_value_23) {
4925 fra.me.REG[4] = BOX_NativeString("Redef error: ");
4926 REGB0 = TAG_Int(13);
4927 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
4928 once_value_23 = fra.me.REG[4];
4929 register_static_object(&once_value_23);
4930 } else fra.me.REG[4] = once_value_23;
4931 fra.me.REG[4] = fra.me.REG[4];
4932 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4933 fra.me.REG[4] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4934 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4935 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4936 if (!once_value_24) {
4937 fra.me.REG[4] = BOX_NativeString(" is an imported class. Add the redef keyword to refine it.");
4938 REGB0 = TAG_Int(58);
4939 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
4940 once_value_24 = fra.me.REG[4];
4941 register_static_object(&once_value_24);
4942 } else fra.me.REG[4] = once_value_24;
4943 fra.me.REG[4] = fra.me.REG[4];
4944 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4945 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
4946 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
4947 /* syntax/mmbuilder.nit:741 */
4948 goto label22;
4949 }
4950 /* syntax/mmbuilder.nit:744 */
4951 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
4952 REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[0])(fra.me.REG[0]);
4953 fra.me.REG[0] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4954 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4955 if (UNTAG_Bool(REGB1)) {
4956 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 744);
4957 }
4958 REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[0])(fra.me.REG[0]);
4959 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
4960 if (UNTAG_Bool(REGB2)) {
4961 } else {
4962 /* ../lib/standard/kernel.nit:230 */
4963 REGB1 = TAG_Bool((REGB0)==(REGB1));
4964 /* syntax/mmbuilder.nit:744 */
4965 REGB2 = REGB1;
4966 }
4967 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
4968 if (UNTAG_Bool(REGB2)) {
4969 /* syntax/mmbuilder.nit:745 */
4970 REGB2 = TAG_Int(5);
4971 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
4972 if (!once_value_25) {
4973 fra.me.REG[4] = BOX_NativeString("Redef error: Formal parameter arity mismatch; got ");
4974 REGB2 = TAG_Int(50);
4975 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
4976 once_value_25 = fra.me.REG[4];
4977 register_static_object(&once_value_25);
4978 } else fra.me.REG[4] = once_value_25;
4979 fra.me.REG[4] = fra.me.REG[4];
4980 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4981 fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4982 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4983 if (UNTAG_Bool(REGB2)) {
4984 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 745);
4985 }
4986 REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
4987 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
4988 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4989 if (!once_value_26) {
4990 fra.me.REG[4] = BOX_NativeString(", expected ");
4991 REGB2 = TAG_Int(11);
4992 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
4993 once_value_26 = fra.me.REG[4];
4994 register_static_object(&once_value_26);
4995 } else fra.me.REG[4] = once_value_26;
4996 fra.me.REG[4] = fra.me.REG[4];
4997 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4998 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
4999 REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
5000 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
5001 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
5002 if (!once_value_27) {
5003 fra.me.REG[4] = BOX_NativeString(".");
5004 REGB2 = TAG_Int(1);
5005 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
5006 once_value_27 = fra.me.REG[4];
5007 register_static_object(&once_value_27);
5008 } else fra.me.REG[4] = once_value_27;
5009 fra.me.REG[4] = fra.me.REG[4];
5010 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
5011 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
5012 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
5013 }
5014 /* syntax/mmbuilder.nit:749 */
5015 REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
5016 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
5017 if (UNTAG_Bool(REGB2)) {
5018 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
5019 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[0])(fra.me.REG[0]);
5020 } else {
5021 REGB1 = TAG_Bool(0);
5022 REGB2 = REGB1;
5023 }
5024 if (UNTAG_Bool(REGB2)) {
5025 REGB2 = TAG_Bool(1);
5026 } else {
5027 /* syntax/mmbuilder.nit:750 */
5028 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[1])(fra.me.REG[1]);
5029 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
5030 /* syntax/mmbuilder.nit:749 */
5031 REGB2 = REGB1;
5032 }
5033 if (UNTAG_Bool(REGB2)) {
5034 /* syntax/mmbuilder.nit:750 */
5035 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
5036 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[0])(fra.me.REG[0]);
5037 } else {
5038 /* syntax/mmbuilder.nit:749 */
5039 REGB1 = TAG_Bool(0);
5040 REGB2 = REGB1;
5041 }
5042 if (UNTAG_Bool(REGB2)) {
5043 REGB2 = TAG_Bool(1);
5044 } else {
5045 /* syntax/mmbuilder.nit:751 */
5046 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
5047 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
5048 /* syntax/mmbuilder.nit:749 */
5049 REGB2 = REGB1;
5050 }
5051 if (UNTAG_Bool(REGB2)) {
5052 /* syntax/mmbuilder.nit:751 */
5053 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
5054 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[0])(fra.me.REG[0]);
5055 } else {
5056 /* syntax/mmbuilder.nit:749 */
5057 REGB1 = TAG_Bool(0);
5058 REGB2 = REGB1;
5059 }
5060 if (UNTAG_Bool(REGB2)) {
5061 REGB2 = TAG_Bool(1);
5062 } else {
5063 /* syntax/mmbuilder.nit:752 */
5064 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[1])(fra.me.REG[1]);
5065 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
5066 /* syntax/mmbuilder.nit:749 */
5067 REGB2 = REGB1;
5068 }
5069 if (UNTAG_Bool(REGB2)) {
5070 /* syntax/mmbuilder.nit:752 */
5071 fra.me.REG[1] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
5072 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_extern(fra.me.REG[1])(fra.me.REG[1]);
5073 } else {
5074 /* syntax/mmbuilder.nit:749 */
5075 REGB1 = TAG_Bool(0);
5076 REGB2 = REGB1;
5077 }
5078 /* syntax/mmbuilder.nit:748 */
5079 if (UNTAG_Bool(REGB2)) {
5080 /* syntax/mmbuilder.nit:754 */
5081 REGB2 = TAG_Int(3);
5082 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
5083 if (!once_value_28) {
5084 fra.me.REG[0] = BOX_NativeString("Redef error: cannot change kind of class ");
5085 REGB2 = TAG_Int(41);
5086 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB2);
5087 once_value_28 = fra.me.REG[0];
5088 register_static_object(&once_value_28);
5089 } else fra.me.REG[0] = once_value_28;
5090 fra.me.REG[0] = fra.me.REG[0];
5091 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
5092 fra.me.REG[0] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
5093 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
5094 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
5095 if (!once_value_29) {
5096 fra.me.REG[0] = BOX_NativeString(".");
5097 REGB2 = TAG_Int(1);
5098 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB2);
5099 once_value_29 = fra.me.REG[0];
5100 register_static_object(&once_value_29);
5101 } else fra.me.REG[0] = once_value_29;
5102 fra.me.REG[0] = fra.me.REG[0];
5103 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
5104 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
5105 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[1]);
5106 }
5107 label22: while(0);
5108 stack_frame_head = fra.me.prev;
5109 return;
5110 }
5111 static const char LOCATE_syntax___mmbuilder___AStdClassdef___visibility_level[] = "mmbuilder::AStdClassdef::(mmbuilder::AClassdef::visibility_level)";
5112 val_t syntax___mmbuilder___AStdClassdef___visibility_level(val_t p0){
5113 struct {struct stack_frame_t me;} fra;
5114 val_t REGB0;
5115 val_t tmp;
5116 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5117 fra.me.file = LOCATE_syntax___mmbuilder;
5118 fra.me.line = 758;
5119 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___visibility_level;
5120 fra.me.has_broke = 0;
5121 fra.me.REG_size = 1;
5122 fra.me.nitni_local_ref_head = NULL;
5123 fra.me.REG[0] = NIT_NULL;
5124 fra.me.REG[0] = p0;
5125 /* syntax/mmbuilder.nit:760 */
5126 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_visibility(fra.me.REG[0])(fra.me.REG[0]);
5127 REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
5128 goto label1;
5129 label1: while(0);
5130 stack_frame_head = fra.me.prev;
5131 return REGB0;
5132 }
5133 static const char LOCATE_syntax___mmbuilder___AMainClassdef___name[] = "mmbuilder::AMainClassdef::(mmbuilder::AClassdef::name)";
5134 val_t syntax___mmbuilder___AMainClassdef___name(val_t p0){
5135 struct {struct stack_frame_t me;} fra;
5136 val_t REGB0;
5137 val_t tmp;
5138 static val_t once_value_1; /* Once value */
5139 static val_t once_value_2; /* Once value */
5140 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5141 fra.me.file = LOCATE_syntax___mmbuilder;
5142 fra.me.line = 765;
5143 fra.me.meth = LOCATE_syntax___mmbuilder___AMainClassdef___name;
5144 fra.me.has_broke = 0;
5145 fra.me.REG_size = 1;
5146 fra.me.nitni_local_ref_head = NULL;
5147 fra.me.REG[0] = NIT_NULL;
5148 fra.me.REG[0] = p0;
5149 /* syntax/mmbuilder.nit:767 */
5150 if (!once_value_1) {
5151 if (!once_value_2) {
5152 fra.me.REG[0] = BOX_NativeString("Sys");
5153 REGB0 = TAG_Int(3);
5154 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
5155 once_value_2 = fra.me.REG[0];
5156 register_static_object(&once_value_2);
5157 } else fra.me.REG[0] = once_value_2;
5158 fra.me.REG[0] = fra.me.REG[0];
5159 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
5160 once_value_1 = fra.me.REG[0];
5161 register_static_object(&once_value_1);
5162 } else fra.me.REG[0] = once_value_1;
5163 fra.me.REG[0] = fra.me.REG[0];
5164 goto label3;
5165 label3: while(0);
5166 stack_frame_head = fra.me.prev;
5167 return fra.me.REG[0];
5168 }
5169 static const char LOCATE_syntax___mmbuilder___ATopClassdef___name[] = "mmbuilder::ATopClassdef::(mmbuilder::AClassdef::name)";
5170 val_t syntax___mmbuilder___ATopClassdef___name(val_t p0){
5171 struct {struct stack_frame_t me;} fra;
5172 val_t REGB0;
5173 val_t tmp;
5174 static val_t once_value_1; /* Once value */
5175 static val_t once_value_2; /* Once value */
5176 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5177 fra.me.file = LOCATE_syntax___mmbuilder;
5178 fra.me.line = 772;
5179 fra.me.meth = LOCATE_syntax___mmbuilder___ATopClassdef___name;
5180 fra.me.has_broke = 0;
5181 fra.me.REG_size = 1;
5182 fra.me.nitni_local_ref_head = NULL;
5183 fra.me.REG[0] = NIT_NULL;
5184 fra.me.REG[0] = p0;
5185 /* syntax/mmbuilder.nit:774 */
5186 if (!once_value_1) {
5187 if (!once_value_2) {
5188 fra.me.REG[0] = BOX_NativeString("Object");
5189 REGB0 = TAG_Int(6);
5190 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
5191 once_value_2 = fra.me.REG[0];
5192 register_static_object(&once_value_2);
5193 } else fra.me.REG[0] = once_value_2;
5194 fra.me.REG[0] = fra.me.REG[0];
5195 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
5196 once_value_1 = fra.me.REG[0];
5197 register_static_object(&once_value_1);
5198 } else fra.me.REG[0] = once_value_1;
5199 fra.me.REG[0] = fra.me.REG[0];
5200 goto label3;
5201 label3: while(0);
5202 stack_frame_head = fra.me.prev;
5203 return fra.me.REG[0];
5204 }
5205 static const char LOCATE_syntax___mmbuilder___AFormaldef___accept_class_builder[] = "mmbuilder::AFormaldef::(mmbuilder::ANode::accept_class_builder)";
5206 void syntax___mmbuilder___AFormaldef___accept_class_builder(val_t p0, val_t p1){
5207 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
5208 val_t REGB0;
5209 val_t REGB1;
5210 val_t tmp;
5211 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5212 fra.me.file = LOCATE_syntax___mmbuilder;
5213 fra.me.line = 782;
5214 fra.me.meth = LOCATE_syntax___mmbuilder___AFormaldef___accept_class_builder;
5215 fra.me.has_broke = 0;
5216 fra.me.REG_size = 6;
5217 fra.me.nitni_local_ref_head = NULL;
5218 fra.me.REG[0] = NIT_NULL;
5219 fra.me.REG[1] = NIT_NULL;
5220 fra.me.REG[2] = NIT_NULL;
5221 fra.me.REG[3] = NIT_NULL;
5222 fra.me.REG[4] = NIT_NULL;
5223 fra.me.REG[5] = NIT_NULL;
5224 fra.me.REG[0] = p0;
5225 fra.me.REG[1] = p1;
5226 /* syntax/mmbuilder.nit:782 */
5227 fra.me.REG[2] = fra.me.REG[0];
5228 fra.me.REG[3] = fra.me.REG[1];
5229 /* syntax/mmbuilder.nit:784 */
5230 fra.me.REG[4] = CALL_parser___parser_nodes___AFormaldef___n_id(fra.me.REG[2])(fra.me.REG[2]);
5231 fra.me.REG[4] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
5232 /* syntax/mmbuilder.nit:785 */
5233 REGB0 = CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity(fra.me.REG[3])(fra.me.REG[3]);
5234 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5235 fra.me.REG[5] = NEW_MMTypeFormalParameter_metamodel___genericity___MMTypeFormalParameter___init(fra.me.REG[4], REGB0, fra.me.REG[5]);
5236 /* syntax/mmbuilder.nit:786 */
5237 ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]) = fra.me.REG[5];
5238 /* syntax/mmbuilder.nit:787 */
5239 REGB0 = CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity(fra.me.REG[3])(fra.me.REG[3]);
5240 REGB1 = TAG_Int(1);
5241 /* ../lib/standard/kernel.nit:238 */
5242 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
5243 /* syntax/mmbuilder.nit:787 */
5244 CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB1);
5245 /* syntax/mmbuilder.nit:788 */
5246 fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5247 CALL_metamodel___genericity___MMLocalClass___register_formal(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
5248 /* syntax/mmbuilder.nit:789 */
5249 fra.me.REG[3] = CALL_syntax___mmbuilder___ClassBuilderVisitor___formals(fra.me.REG[3])(fra.me.REG[3]);
5250 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5251 if (UNTAG_Bool(REGB1)) {
5252 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 789);
5253 }
5254 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]);
5255 /* syntax/mmbuilder.nit:790 */
5256 CALL_SUPER_syntax___mmbuilder___AFormaldef___accept_class_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5257 stack_frame_head = fra.me.prev;
5258 return;
5259 }
5260 static const char LOCATE_syntax___mmbuilder___AFormaldef___accept_class_verifier[] = "mmbuilder::AFormaldef::(mmbuilder::ANode::accept_class_verifier)";
5261 void syntax___mmbuilder___AFormaldef___accept_class_verifier(val_t p0, val_t p1){
5262 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
5263 val_t REGB0;
5264 val_t REGB1;
5265 val_t tmp;
5266 static val_t once_value_2; /* Once value */
5267 static val_t once_value_3; /* Once value */
5268 static val_t once_value_4; /* Once value */
5269 static val_t once_value_5; /* Once value */
5270 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5271 fra.me.file = LOCATE_syntax___mmbuilder;
5272 fra.me.line = 793;
5273 fra.me.meth = LOCATE_syntax___mmbuilder___AFormaldef___accept_class_verifier;
5274 fra.me.has_broke = 0;
5275 fra.me.REG_size = 6;
5276 fra.me.nitni_local_ref_head = NULL;
5277 fra.me.REG[0] = NIT_NULL;
5278 fra.me.REG[1] = NIT_NULL;
5279 fra.me.REG[2] = NIT_NULL;
5280 fra.me.REG[3] = NIT_NULL;
5281 fra.me.REG[4] = NIT_NULL;
5282 fra.me.REG[5] = NIT_NULL;
5283 fra.me.REG[0] = p0;
5284 fra.me.REG[1] = p1;
5285 /* syntax/mmbuilder.nit:793 */
5286 fra.me.REG[2] = fra.me.REG[0];
5287 fra.me.REG[3] = fra.me.REG[1];
5288 /* syntax/mmbuilder.nit:795 */
5289 CALL_SUPER_syntax___mmbuilder___AFormaldef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5290 /* syntax/mmbuilder.nit:796 */
5291 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5292 /* syntax/mmbuilder.nit:797 */
5293 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
5294 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[0])(fra.me.REG[0]);
5295 /* syntax/mmbuilder.nit:798 */
5296 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
5297 if (UNTAG_Bool(REGB0)) {
5298 } else {
5299 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
5300 REGB0 = REGB1;
5301 }
5302 if (UNTAG_Bool(REGB0)) {
5303 /* syntax/mmbuilder.nit:799 */
5304 fra.me.REG[4] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
5305 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5306 if (UNTAG_Bool(REGB0)) {
5307 } else {
5308 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5309 if (UNTAG_Bool(REGB1)) {
5310 REGB1 = TAG_Bool(0);
5311 REGB0 = REGB1;
5312 } else {
5313 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5314 REGB0 = REGB1;
5315 }
5316 }
5317 if (UNTAG_Bool(REGB0)) {
5318 /* syntax/mmbuilder.nit:800 */
5319 fra.me.REG[4] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5320 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
5321 fra.me.REG[5] = CALL_metamodel___inheritance___MMModule___type_any(fra.me.REG[5])(fra.me.REG[5]);
5322 fra.me.REG[5] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[5])(fra.me.REG[5]);
5323 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5324 if (UNTAG_Bool(REGB0)) {
5325 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 800);
5326 }
5327 CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5328 } else {
5329 /* syntax/mmbuilder.nit:802 */
5330 fra.me.REG[5] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
5331 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
5332 if (UNTAG_Bool(REGB0)) {
5333 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 802);
5334 }
5335 fra.me.REG[5] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
5336 /* syntax/mmbuilder.nit:803 */
5337 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
5338 if (UNTAG_Bool(REGB0)) {
5339 } else {
5340 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
5341 if (UNTAG_Bool(REGB1)) {
5342 REGB1 = TAG_Bool(0);
5343 REGB0 = REGB1;
5344 } else {
5345 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
5346 REGB0 = REGB1;
5347 }
5348 }
5349 if (UNTAG_Bool(REGB0)) {
5350 goto label1;
5351 }
5352 /* syntax/mmbuilder.nit:804 */
5353 fra.me.REG[4] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5354 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5355 if (UNTAG_Bool(REGB0)) {
5356 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 804);
5357 }
5358 CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5359 }
5360 } else {
5361 /* syntax/mmbuilder.nit:807 */
5362 fra.me.REG[5] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5363 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
5364 if (UNTAG_Bool(REGB0)) {
5365 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 807);
5366 }
5367 REGB0 = CALL_metamodel___genericity___MMTypeFormalParameter___position(fra.me.REG[5])(fra.me.REG[5]);
5368 fra.me.REG[0] = CALL_metamodel___genericity___MMLocalClass___get_formal(fra.me.REG[0])(fra.me.REG[0], REGB0);
5369 fra.me.REG[0] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]);
5370 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
5371 fra.me.REG[5] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
5372 /* syntax/mmbuilder.nit:808 */
5373 fra.me.REG[0] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
5374 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5375 if (UNTAG_Bool(REGB0)) {
5376 } else {
5377 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5378 if (UNTAG_Bool(REGB1)) {
5379 REGB1 = TAG_Bool(0);
5380 REGB0 = REGB1;
5381 } else {
5382 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
5383 REGB0 = REGB1;
5384 }
5385 }
5386 if (UNTAG_Bool(REGB0)) {
5387 /* syntax/mmbuilder.nit:809 */
5388 fra.me.REG[0] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5389 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5390 if (UNTAG_Bool(REGB0)) {
5391 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 809);
5392 }
5393 CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
5394 } else {
5395 /* syntax/mmbuilder.nit:811 */
5396 fra.me.REG[0] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
5397 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5398 if (UNTAG_Bool(REGB0)) {
5399 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 811);
5400 }
5401 fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
5402 /* syntax/mmbuilder.nit:812 */
5403 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5404 if (UNTAG_Bool(REGB0)) {
5405 } else {
5406 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5407 if (UNTAG_Bool(REGB1)) {
5408 REGB1 = TAG_Bool(0);
5409 REGB0 = REGB1;
5410 } else {
5411 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
5412 REGB0 = REGB1;
5413 }
5414 }
5415 if (UNTAG_Bool(REGB0)) {
5416 goto label1;
5417 }
5418 /* syntax/mmbuilder.nit:813 */
5419 fra.me.REG[4] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5420 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5421 if (UNTAG_Bool(REGB0)) {
5422 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 813);
5423 }
5424 CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
5425 /* syntax/mmbuilder.nit:814 */
5426 fra.me.REG[0] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5427 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5428 if (UNTAG_Bool(REGB0)) {
5429 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 814);
5430 }
5431 fra.me.REG[0] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]);
5432 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[5]));
5433 if (UNTAG_Bool(REGB0)) {
5434 } else {
5435 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
5436 REGB0 = REGB1;
5437 }
5438 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5439 if (UNTAG_Bool(REGB0)) {
5440 /* syntax/mmbuilder.nit:815 */
5441 REGB0 = TAG_Int(7);
5442 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5443 if (!once_value_2) {
5444 fra.me.REG[4] = BOX_NativeString("Redef error: Cannot change formal parameter type of class ");
5445 REGB0 = TAG_Int(58);
5446 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
5447 once_value_2 = fra.me.REG[4];
5448 register_static_object(&once_value_2);
5449 } else fra.me.REG[4] = once_value_2;
5450 fra.me.REG[4] = fra.me.REG[4];
5451 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
5452 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
5453 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5454 if (!once_value_3) {
5455 fra.me.REG[1] = BOX_NativeString("; got ");
5456 REGB0 = TAG_Int(6);
5457 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
5458 once_value_3 = fra.me.REG[1];
5459 register_static_object(&once_value_3);
5460 } else fra.me.REG[1] = once_value_3;
5461 fra.me.REG[1] = fra.me.REG[1];
5462 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5463 fra.me.REG[1] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5464 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5465 if (UNTAG_Bool(REGB0)) {
5466 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 815);
5467 }
5468 fra.me.REG[1] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[1])(fra.me.REG[1]);
5469 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
5470 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5471 if (!once_value_4) {
5472 fra.me.REG[1] = BOX_NativeString(", expected ");
5473 REGB0 = TAG_Int(11);
5474 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
5475 once_value_4 = fra.me.REG[1];
5476 register_static_object(&once_value_4);
5477 } else fra.me.REG[1] = once_value_4;
5478 fra.me.REG[1] = fra.me.REG[1];
5479 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5480 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5481 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
5482 if (!once_value_5) {
5483 fra.me.REG[5] = BOX_NativeString(".");
5484 REGB0 = TAG_Int(1);
5485 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
5486 once_value_5 = fra.me.REG[5];
5487 register_static_object(&once_value_5);
5488 } else fra.me.REG[5] = once_value_5;
5489 fra.me.REG[5] = fra.me.REG[5];
5490 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
5491 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
5492 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
5493 }
5494 }
5495 }
5496 label1: while(0);
5497 stack_frame_head = fra.me.prev;
5498 return;
5499 }
5500 static const char LOCATE_syntax___mmbuilder___ASuperclass___ancestor[] = "mmbuilder::ASuperclass::ancestor";
5501 val_t syntax___mmbuilder___ASuperclass___ancestor(val_t p0){
5502 struct {struct stack_frame_t me;} fra;
5503 val_t tmp;
5504 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5505 fra.me.file = LOCATE_syntax___mmbuilder;
5506 fra.me.line = 823;
5507 fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___ancestor;
5508 fra.me.has_broke = 0;
5509 fra.me.REG_size = 1;
5510 fra.me.nitni_local_ref_head = NULL;
5511 fra.me.REG[0] = NIT_NULL;
5512 fra.me.REG[0] = p0;
5513 /* syntax/mmbuilder.nit:823 */
5514 fra.me.REG[0] = ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[0]);
5515 stack_frame_head = fra.me.prev;
5516 return fra.me.REG[0];
5517 }
5518 static const char LOCATE_syntax___mmbuilder___ASuperclass___accept_class_specialization_builder[] = "mmbuilder::ASuperclass::(mmbuilder::ANode::accept_class_specialization_builder)";
5519 void syntax___mmbuilder___ASuperclass___accept_class_specialization_builder(val_t p0, val_t p1){
5520 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5521 val_t REGB0;
5522 val_t REGB1;
5523 val_t tmp;
5524 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5525 fra.me.file = LOCATE_syntax___mmbuilder;
5526 fra.me.line = 825;
5527 fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___accept_class_specialization_builder;
5528 fra.me.has_broke = 0;
5529 fra.me.REG_size = 4;
5530 fra.me.nitni_local_ref_head = NULL;
5531 fra.me.REG[0] = NIT_NULL;
5532 fra.me.REG[1] = NIT_NULL;
5533 fra.me.REG[2] = NIT_NULL;
5534 fra.me.REG[3] = NIT_NULL;
5535 fra.me.REG[0] = p0;
5536 fra.me.REG[1] = p1;
5537 /* syntax/mmbuilder.nit:825 */
5538 fra.me.REG[2] = fra.me.REG[0];
5539 fra.me.REG[3] = fra.me.REG[1];
5540 /* syntax/mmbuilder.nit:827 */
5541 CALL_SUPER_syntax___mmbuilder___ASuperclass___accept_class_specialization_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5542 /* syntax/mmbuilder.nit:828 */
5543 fra.me.REG[1] = CALL_parser___parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
5544 fra.me.REG[1] = CALL_syntax___syntax_base___AType___get_local_class(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5545 /* syntax/mmbuilder.nit:829 */
5546 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5547 if (UNTAG_Bool(REGB0)) {
5548 } else {
5549 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5550 if (UNTAG_Bool(REGB1)) {
5551 REGB1 = TAG_Bool(0);
5552 REGB0 = REGB1;
5553 } else {
5554 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
5555 REGB0 = REGB1;
5556 }
5557 }
5558 if (UNTAG_Bool(REGB0)) {
5559 goto label1;
5560 }
5561 /* syntax/mmbuilder.nit:830 */
5562 fra.me.REG[1] = NEW_MMSrcAncestor_syntax___mmbuilder___MMSrcAncestor___init(fra.me.REG[1]);
5563 /* syntax/mmbuilder.nit:831 */
5564 ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[2]) = fra.me.REG[1];
5565 /* syntax/mmbuilder.nit:832 */
5566 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5567 CALL_metamodel___inheritance___MMLocalClass___add_direct_parent(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5568 label1: while(0);
5569 stack_frame_head = fra.me.prev;
5570 return;
5571 }
5572 static const char LOCATE_syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder[] = "mmbuilder::ASuperclass::(mmbuilder::ANode::accept_class_ancestor_builder)";
5573 void syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder(val_t p0, val_t p1){
5574 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5575 val_t REGB0;
5576 val_t tmp;
5577 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5578 fra.me.file = LOCATE_syntax___mmbuilder;
5579 fra.me.line = 835;
5580 fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder;
5581 fra.me.has_broke = 0;
5582 fra.me.REG_size = 4;
5583 fra.me.nitni_local_ref_head = NULL;
5584 fra.me.REG[0] = NIT_NULL;
5585 fra.me.REG[1] = NIT_NULL;
5586 fra.me.REG[2] = NIT_NULL;
5587 fra.me.REG[3] = NIT_NULL;
5588 fra.me.REG[0] = p0;
5589 fra.me.REG[1] = p1;
5590 /* syntax/mmbuilder.nit:835 */
5591 fra.me.REG[2] = fra.me.REG[0];
5592 fra.me.REG[3] = fra.me.REG[1];
5593 /* syntax/mmbuilder.nit:837 */
5594 CALL_SUPER_syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5595 /* syntax/mmbuilder.nit:838 */
5596 fra.me.REG[1] = ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[2]);
5597 fra.me.REG[0] = CALL_parser___parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
5598 fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_unchecked_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
5599 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5600 if (UNTAG_Bool(REGB0)) {
5601 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 838);
5602 }
5603 CALL_metamodel___static_type___MMAncestor___stype__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
5604 /* syntax/mmbuilder.nit:839 */
5605 fra.me.REG[2] = ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[2]);
5606 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5607 fra.me.REG[3] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[3])(fra.me.REG[3]);
5608 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5609 if (UNTAG_Bool(REGB0)) {
5610 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 839);
5611 }
5612 CALL_metamodel___static_type___MMAncestor___inheriter__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
5613 stack_frame_head = fra.me.prev;
5614 return;
5615 }
5616 static const char LOCATE_syntax___mmbuilder___ASuperclass___accept_class_verifier[] = "mmbuilder::ASuperclass::(mmbuilder::ANode::accept_class_verifier)";
5617 void syntax___mmbuilder___ASuperclass___accept_class_verifier(val_t p0, val_t p1){
5618 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5619 val_t tmp;
5620 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5621 fra.me.file = LOCATE_syntax___mmbuilder;
5622 fra.me.line = 842;
5623 fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___accept_class_verifier;
5624 fra.me.has_broke = 0;
5625 fra.me.REG_size = 4;
5626 fra.me.nitni_local_ref_head = NULL;
5627 fra.me.REG[0] = NIT_NULL;
5628 fra.me.REG[1] = NIT_NULL;
5629 fra.me.REG[2] = NIT_NULL;
5630 fra.me.REG[3] = NIT_NULL;
5631 fra.me.REG[0] = p0;
5632 fra.me.REG[1] = p1;
5633 /* syntax/mmbuilder.nit:842 */
5634 fra.me.REG[2] = fra.me.REG[0];
5635 fra.me.REG[3] = fra.me.REG[1];
5636 /* syntax/mmbuilder.nit:844 */
5637 CALL_SUPER_syntax___mmbuilder___ASuperclass___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5638 /* syntax/mmbuilder.nit:845 */
5639 fra.me.REG[2] = CALL_parser___parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
5640 CALL_syntax___syntax_base___AType___check_conform(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
5641 stack_frame_head = fra.me.prev;
5642 return;
5643 }
5644 static const char LOCATE_syntax___mmbuilder___APropdef___process_and_check[] = "mmbuilder::APropdef::process_and_check";
5645 void syntax___mmbuilder___APropdef___process_and_check(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
5646 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5647 val_t REGB0;
5648 val_t REGB1;
5649 val_t REGB2;
5650 val_t REGB3;
5651 val_t tmp;
5652 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5653 fra.me.file = LOCATE_syntax___mmbuilder;
5654 fra.me.line = 850;
5655 fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___process_and_check;
5656 fra.me.has_broke = 0;
5657 fra.me.REG_size = 4;
5658 fra.me.nitni_local_ref_head = NULL;
5659 fra.me.REG[0] = NIT_NULL;
5660 fra.me.REG[1] = NIT_NULL;
5661 fra.me.REG[2] = NIT_NULL;
5662 fra.me.REG[3] = NIT_NULL;
5663 fra.me.REG[0] = p0;
5664 fra.me.REG[1] = p1;
5665 fra.me.REG[2] = p2;
5666 REGB0 = p3;
5667 REGB1 = p4;
5668 /* syntax/mmbuilder.nit:858 */
5669 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
5670 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[3])(fra.me.REG[3]);
5671 REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[2]));
5672 if (UNTAG_Bool(REGB2)) {
5673 } else {
5674 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
5675 REGB2 = REGB3;
5676 }
5677 if (UNTAG_Bool(REGB2)) {
5678 /* syntax/mmbuilder.nit:859 */
5679 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);
5680 } else {
5681 /* syntax/mmbuilder.nit:861 */
5682 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);
5683 }
5684 stack_frame_head = fra.me.prev;
5685 return;
5686 }
5687 static const char LOCATE_syntax___mmbuilder___APropdef___do_and_check_intro[] = "mmbuilder::APropdef::do_and_check_intro";
5688 void syntax___mmbuilder___APropdef___do_and_check_intro(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
5689 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
5690 val_t REGB0;
5691 val_t REGB1;
5692 val_t REGB2;
5693 val_t REGB3;
5694 val_t REGB4;
5695 val_t tmp;
5696 static val_t once_value_1; /* Once value */
5697 static val_t once_value_2; /* Once value */
5698 static val_t once_value_3; /* Once value */
5699 static val_t once_value_4; /* Once value */
5700 static val_t once_value_5; /* Once value */
5701 static val_t once_value_6; /* Once value */
5702 static val_t once_value_7; /* Once value */
5703 static val_t once_value_8; /* Once value */
5704 static val_t once_value_9; /* Once value */
5705 static val_t once_value_10; /* Once value */
5706 static val_t once_value_11; /* Once value */
5707 static val_t once_value_12; /* Once value */
5708 static val_t once_value_13; /* Once value */
5709 static val_t once_value_14; /* Once value */
5710 static val_t once_value_15; /* Once value */
5711 static val_t once_value_16; /* Once value */
5712 static val_t once_value_17; /* Once value */
5713 static val_t once_value_18; /* Once value */
5714 static val_t once_value_19; /* Once value */
5715 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5716 fra.me.file = LOCATE_syntax___mmbuilder;
5717 fra.me.line = 865;
5718 fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___do_and_check_intro;
5719 fra.me.has_broke = 0;
5720 fra.me.REG_size = 7;
5721 fra.me.nitni_local_ref_head = NULL;
5722 fra.me.REG[0] = NIT_NULL;
5723 fra.me.REG[1] = NIT_NULL;
5724 fra.me.REG[2] = NIT_NULL;
5725 fra.me.REG[3] = NIT_NULL;
5726 fra.me.REG[4] = NIT_NULL;
5727 fra.me.REG[5] = NIT_NULL;
5728 fra.me.REG[6] = NIT_NULL;
5729 fra.me.REG[0] = p0;
5730 fra.me.REG[1] = p1;
5731 fra.me.REG[2] = p2;
5732 REGB0 = p3;
5733 REGB1 = p4;
5734 /* syntax/mmbuilder.nit:868 */
5735 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
5736 /* syntax/mmbuilder.nit:869 */
5737 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5738 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
5739 /* syntax/mmbuilder.nit:870 */
5740 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
5741 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
5742 REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[5])(fra.me.REG[5]);
5743 REGB3 = TAG_Int(3);
5744 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
5745 if (UNTAG_Bool(REGB4)) {
5746 } else {
5747 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5748 }
5749 /* ../lib/standard/kernel.nit:236 */
5750 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
5751 /* syntax/mmbuilder.nit:870 */
5752 if (UNTAG_Bool(REGB3)) {
5753 /* syntax/mmbuilder.nit:872 */
5754 REGB3 = TAG_Int(3);
5755 REGB1 = REGB3;
5756 }
5757 /* syntax/mmbuilder.nit:874 */
5758 CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[3])(fra.me.REG[3], REGB1);
5759 /* syntax/mmbuilder.nit:875 */
5760 if (UNTAG_Bool(REGB0)) {
5761 /* syntax/mmbuilder.nit:876 */
5762 REGB0 = TAG_Int(5);
5763 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5764 if (!once_value_1) {
5765 fra.me.REG[6] = BOX_NativeString("Error: No property ");
5766 REGB0 = TAG_Int(19);
5767 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5768 once_value_1 = fra.me.REG[6];
5769 register_static_object(&once_value_1);
5770 } else fra.me.REG[6] = once_value_1;
5771 fra.me.REG[6] = fra.me.REG[6];
5772 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5773 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5774 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5775 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5776 if (!once_value_2) {
5777 fra.me.REG[6] = BOX_NativeString("::");
5778 REGB0 = TAG_Int(2);
5779 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5780 once_value_2 = fra.me.REG[6];
5781 register_static_object(&once_value_2);
5782 } else fra.me.REG[6] = once_value_2;
5783 fra.me.REG[6] = fra.me.REG[6];
5784 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5785 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5786 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5787 if (!once_value_3) {
5788 fra.me.REG[6] = BOX_NativeString(" is inherited. Remove the redef keyword to define a new property.");
5789 REGB0 = TAG_Int(65);
5790 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5791 once_value_3 = fra.me.REG[6];
5792 register_static_object(&once_value_3);
5793 } else fra.me.REG[6] = once_value_3;
5794 fra.me.REG[6] = fra.me.REG[6];
5795 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5796 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5797 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5798 }
5799 /* syntax/mmbuilder.nit:878 */
5800 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_attribute(fra.me.REG[3])(fra.me.REG[3]);
5801 if (UNTAG_Bool(REGB0)) {
5802 /* syntax/mmbuilder.nit:879 */
5803 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]);
5804 if (UNTAG_Bool(REGB0)) {
5805 /* syntax/mmbuilder.nit:880 */
5806 REGB0 = TAG_Int(5);
5807 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5808 if (!once_value_4) {
5809 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
5810 REGB0 = TAG_Int(35);
5811 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5812 once_value_4 = fra.me.REG[6];
5813 register_static_object(&once_value_4);
5814 } else fra.me.REG[6] = once_value_4;
5815 fra.me.REG[6] = fra.me.REG[6];
5816 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5817 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5818 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5819 if (!once_value_5) {
5820 fra.me.REG[6] = BOX_NativeString(" in the interface ");
5821 REGB0 = TAG_Int(18);
5822 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5823 once_value_5 = fra.me.REG[6];
5824 register_static_object(&once_value_5);
5825 } else fra.me.REG[6] = once_value_5;
5826 fra.me.REG[6] = fra.me.REG[6];
5827 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5828 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5829 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5830 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5831 if (!once_value_6) {
5832 fra.me.REG[6] = BOX_NativeString(".");
5833 REGB0 = TAG_Int(1);
5834 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5835 once_value_6 = fra.me.REG[6];
5836 register_static_object(&once_value_6);
5837 } else fra.me.REG[6] = once_value_6;
5838 fra.me.REG[6] = fra.me.REG[6];
5839 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5840 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5841 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5842 } else {
5843 /* syntax/mmbuilder.nit:881 */
5844 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[4])(fra.me.REG[4]);
5845 if (UNTAG_Bool(REGB0)) {
5846 /* syntax/mmbuilder.nit:882 */
5847 REGB0 = TAG_Int(5);
5848 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5849 if (!once_value_7) {
5850 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
5851 REGB0 = TAG_Int(35);
5852 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5853 once_value_7 = fra.me.REG[6];
5854 register_static_object(&once_value_7);
5855 } else fra.me.REG[6] = once_value_7;
5856 fra.me.REG[6] = fra.me.REG[6];
5857 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5858 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5859 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5860 if (!once_value_8) {
5861 fra.me.REG[6] = BOX_NativeString(" in the enum class ");
5862 REGB0 = TAG_Int(19);
5863 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5864 once_value_8 = fra.me.REG[6];
5865 register_static_object(&once_value_8);
5866 } else fra.me.REG[6] = once_value_8;
5867 fra.me.REG[6] = fra.me.REG[6];
5868 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5869 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5870 fra.me.REG[6] = CALL_standard___string___Object___to_s(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 if (!once_value_9) {
5873 fra.me.REG[6] = BOX_NativeString(".");
5874 REGB0 = TAG_Int(1);
5875 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5876 once_value_9 = fra.me.REG[6];
5877 register_static_object(&once_value_9);
5878 } else fra.me.REG[6] = once_value_9;
5879 fra.me.REG[6] = fra.me.REG[6];
5880 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5881 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5882 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5883 } else {
5884 /* syntax/mmbuilder.nit:883 */
5885 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[4])(fra.me.REG[4]);
5886 if (UNTAG_Bool(REGB0)) {
5887 /* syntax/mmbuilder.nit:884 */
5888 REGB0 = TAG_Int(5);
5889 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5890 if (!once_value_10) {
5891 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
5892 REGB0 = TAG_Int(35);
5893 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5894 once_value_10 = fra.me.REG[6];
5895 register_static_object(&once_value_10);
5896 } else fra.me.REG[6] = once_value_10;
5897 fra.me.REG[6] = fra.me.REG[6];
5898 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5899 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5900 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5901 if (!once_value_11) {
5902 fra.me.REG[6] = BOX_NativeString(" in the extern class ");
5903 REGB0 = TAG_Int(21);
5904 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5905 once_value_11 = fra.me.REG[6];
5906 register_static_object(&once_value_11);
5907 } else fra.me.REG[6] = once_value_11;
5908 fra.me.REG[6] = fra.me.REG[6];
5909 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5910 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5911 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5912 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5913 if (!once_value_12) {
5914 fra.me.REG[6] = BOX_NativeString(".");
5915 REGB0 = TAG_Int(1);
5916 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5917 once_value_12 = fra.me.REG[6];
5918 register_static_object(&once_value_12);
5919 } else fra.me.REG[6] = once_value_12;
5920 fra.me.REG[6] = fra.me.REG[6];
5921 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5922 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5923 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5924 }
5925 }
5926 }
5927 } else {
5928 /* syntax/mmbuilder.nit:886 */
5929 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
5930 if (UNTAG_Bool(REGB0)) {
5931 /* syntax/mmbuilder.nit:887 */
5932 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]);
5933 if (UNTAG_Bool(REGB0)) {
5934 /* syntax/mmbuilder.nit:888 */
5935 REGB0 = TAG_Int(5);
5936 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5937 if (!once_value_13) {
5938 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define a constructor ");
5939 REGB0 = TAG_Int(39);
5940 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5941 once_value_13 = fra.me.REG[6];
5942 register_static_object(&once_value_13);
5943 } else fra.me.REG[6] = once_value_13;
5944 fra.me.REG[6] = fra.me.REG[6];
5945 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5946 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5947 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5948 if (!once_value_14) {
5949 fra.me.REG[6] = BOX_NativeString(" in the class ");
5950 REGB0 = TAG_Int(14);
5951 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5952 once_value_14 = fra.me.REG[6];
5953 register_static_object(&once_value_14);
5954 } else fra.me.REG[6] = once_value_14;
5955 fra.me.REG[6] = fra.me.REG[6];
5956 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5957 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5958 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5959 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5960 if (!once_value_15) {
5961 fra.me.REG[6] = BOX_NativeString(".");
5962 REGB0 = TAG_Int(1);
5963 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
5964 once_value_15 = fra.me.REG[6];
5965 register_static_object(&once_value_15);
5966 } else fra.me.REG[6] = once_value_15;
5967 fra.me.REG[6] = fra.me.REG[6];
5968 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5969 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5970 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5971 } else {
5972 /* syntax/mmbuilder.nit:889 */
5973 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[4])(fra.me.REG[4]);
5974 if (UNTAG_Bool(REGB0)) {
5975 /* syntax/mmbuilder.nit:890 */
5976 REGB0 = TAG_Int(5);
5977 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5978 if (!once_value_16) {
5979 fra.me.REG[5] = BOX_NativeString("Error: Attempt to define a constructor ");
5980 REGB0 = TAG_Int(39);
5981 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
5982 once_value_16 = fra.me.REG[5];
5983 register_static_object(&once_value_16);
5984 } else fra.me.REG[5] = once_value_16;
5985 fra.me.REG[5] = fra.me.REG[5];
5986 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5987 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5988 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5989 if (!once_value_17) {
5990 fra.me.REG[5] = BOX_NativeString(" in the enum ");
5991 REGB0 = TAG_Int(13);
5992 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
5993 once_value_17 = fra.me.REG[5];
5994 register_static_object(&once_value_17);
5995 } else fra.me.REG[5] = once_value_17;
5996 fra.me.REG[5] = fra.me.REG[5];
5997 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5998 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5999 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
6000 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6001 if (!once_value_18) {
6002 fra.me.REG[5] = BOX_NativeString(".");
6003 REGB0 = TAG_Int(1);
6004 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6005 once_value_18 = fra.me.REG[5];
6006 register_static_object(&once_value_18);
6007 } else fra.me.REG[5] = once_value_18;
6008 fra.me.REG[5] = fra.me.REG[5];
6009 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6010 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
6011 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
6012 }
6013 }
6014 }
6015 }
6016 /* syntax/mmbuilder.nit:895 */
6017 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
6018 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6019 if (UNTAG_Bool(REGB0)) {
6020 } else {
6021 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6022 if (UNTAG_Bool(REGB1)) {
6023 REGB1 = TAG_Bool(0);
6024 REGB0 = REGB1;
6025 } else {
6026 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
6027 REGB0 = REGB1;
6028 }
6029 }
6030 if (UNTAG_Bool(REGB0)) {
6031 /* syntax/mmbuilder.nit:896 */
6032 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
6033 if (UNTAG_Bool(REGB0)) {
6034 /* syntax/mmbuilder.nit:897 */
6035 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6036 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
6037 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
6038 /* syntax/mmbuilder.nit:898 */
6039 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]);
6040 }
6041 /* syntax/mmbuilder.nit:900 */
6042 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
6043 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6044 if (UNTAG_Bool(REGB0)) {
6045 } else {
6046 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6047 if (UNTAG_Bool(REGB1)) {
6048 REGB1 = TAG_Bool(0);
6049 REGB0 = REGB1;
6050 } else {
6051 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
6052 REGB0 = REGB1;
6053 }
6054 }
6055 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6056 if (UNTAG_Bool(REGB0)) {
6057 REGB0 = TAG_Bool(1);
6058 } else {
6059 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6060 REGB1 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[4])(fra.me.REG[4]);
6061 REGB0 = REGB1;
6062 }
6063 if (UNTAG_Bool(REGB0)) {
6064 } else {
6065 /* syntax/mmbuilder.nit:902 */
6066 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6067 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
6068 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[4])(fra.me.REG[4]);
6069 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6070 if (UNTAG_Bool(REGB0)) {
6071 /* syntax/mmbuilder.nit:903 */
6072 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6073 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
6074 fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
6075 if (!once_value_19) {
6076 fra.me.REG[0] = BOX_NativeString("Error: Untyped parameter.");
6077 REGB0 = TAG_Int(25);
6078 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
6079 once_value_19 = fra.me.REG[0];
6080 register_static_object(&once_value_19);
6081 } else fra.me.REG[0] = once_value_19;
6082 fra.me.REG[0] = fra.me.REG[0];
6083 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]);
6084 } else {
6085 /* syntax/mmbuilder.nit:905 */
6086 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
6087 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
6088 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
6089 fra.me.REG[4] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[4]);
6090 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
6091 /* syntax/mmbuilder.nit:906 */
6092 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6093 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[1])(fra.me.REG[1]);
6094 /* ../lib/standard/collection/array.nit:269 */
6095 REGB0 = TAG_Int(0);
6096 /* ../lib/standard/collection/array.nit:270 */
6097 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
6098 if (UNTAG_Bool(REGB1)) {
6099 } else {
6100 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
6101 }
6102 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
6103 /* ../lib/standard/collection/array.nit:271 */
6104 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
6105 /* ../lib/standard/collection/array.nit:272 */
6106 while(1) {
6107 /* ../lib/standard/collection/array.nit:24 */
6108 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
6109 if (UNTAG_Bool(REGB1)) {
6110 } else {
6111 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6112 }
6113 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
6114 REGB3 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
6115 if (UNTAG_Bool(REGB3)) {
6116 } else {
6117 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6118 }
6119 /* ../lib/standard/kernel.nit:235 */
6120 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
6121 /* ../lib/standard/collection/array.nit:272 */
6122 if (UNTAG_Bool(REGB1)) {
6123 /* ../lib/standard/collection/array.nit:273 */
6124 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6125 if (UNTAG_Bool(REGB1)) {
6126 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
6127 }
6128 /* ../lib/standard/collection/array.nit:718 */
6129 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
6130 /* syntax/mmbuilder.nit:907 */
6131 fra.me.REG[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
6132 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6133 if (UNTAG_Bool(REGB1)) {
6134 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 907);
6135 }
6136 fra.me.REG[3] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[3])(fra.me.REG[3]);
6137 fra.me.REG[0] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[0])(fra.me.REG[0]);
6138 fra.me.REG[0] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[0])(fra.me.REG[0]);
6139 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
6140 /* ../lib/standard/collection/array.nit:274 */
6141 REGB1 = TAG_Int(1);
6142 /* ../lib/standard/kernel.nit:238 */
6143 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
6144 /* ../lib/standard/collection/array.nit:274 */
6145 REGB0 = REGB1;
6146 } else {
6147 /* ../lib/standard/collection/array.nit:272 */
6148 goto label20;
6149 }
6150 }
6151 label20: while(0);
6152 }
6153 }
6154 }
6155 stack_frame_head = fra.me.prev;
6156 return;
6157 }
6158 static const char LOCATE_syntax___mmbuilder___APropdef___inherit_signature[] = "mmbuilder::APropdef::inherit_signature";
6159 void syntax___mmbuilder___APropdef___inherit_signature(val_t p0, val_t p1, val_t p2, val_t p3){
6160 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
6161 val_t REGB0;
6162 val_t REGB1;
6163 val_t REGB2;
6164 val_t REGB3;
6165 val_t REGB4;
6166 val_t tmp;
6167 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6168 fra.me.file = LOCATE_syntax___mmbuilder;
6169 fra.me.line = 913;
6170 fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___inherit_signature;
6171 fra.me.has_broke = 0;
6172 fra.me.REG_size = 11;
6173 fra.me.nitni_local_ref_head = NULL;
6174 fra.me.REG[0] = NIT_NULL;
6175 fra.me.REG[1] = NIT_NULL;
6176 fra.me.REG[2] = NIT_NULL;
6177 fra.me.REG[3] = NIT_NULL;
6178 fra.me.REG[4] = NIT_NULL;
6179 fra.me.REG[5] = NIT_NULL;
6180 fra.me.REG[6] = NIT_NULL;
6181 fra.me.REG[7] = NIT_NULL;
6182 fra.me.REG[8] = NIT_NULL;
6183 fra.me.REG[9] = NIT_NULL;
6184 fra.me.REG[10] = NIT_NULL;
6185 fra.me.REG[0] = p0;
6186 fra.me.REG[1] = p1;
6187 fra.me.REG[2] = p2;
6188 fra.me.REG[3] = p3;
6189 /* syntax/mmbuilder.nit:915 */
6190 fra.me.REG[0] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
6191 /* ../lib/standard/collection/array.nit:269 */
6192 REGB0 = TAG_Int(0);
6193 /* ../lib/standard/collection/array.nit:270 */
6194 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
6195 if (UNTAG_Bool(REGB1)) {
6196 } else {
6197 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
6198 }
6199 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
6200 /* ../lib/standard/collection/array.nit:271 */
6201 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
6202 /* ../lib/standard/collection/array.nit:272 */
6203 while(1) {
6204 /* ../lib/standard/collection/array.nit:24 */
6205 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
6206 if (UNTAG_Bool(REGB1)) {
6207 } else {
6208 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6209 }
6210 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
6211 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
6212 if (UNTAG_Bool(REGB2)) {
6213 } else {
6214 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6215 }
6216 /* ../lib/standard/kernel.nit:235 */
6217 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
6218 /* ../lib/standard/collection/array.nit:272 */
6219 if (UNTAG_Bool(REGB1)) {
6220 /* ../lib/standard/collection/array.nit:273 */
6221 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6222 if (UNTAG_Bool(REGB1)) {
6223 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
6224 }
6225 /* ../lib/standard/collection/array.nit:718 */
6226 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
6227 /* syntax/mmbuilder.nit:917 */
6228 fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[5])(fra.me.REG[5]);
6229 fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
6230 fra.me.REG[6] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[6])(fra.me.REG[6]);
6231 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6232 if (UNTAG_Bool(REGB1)) {
6233 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 917);
6234 }
6235 fra.me.REG[6] = CALL_metamodel___static_type___MMSignature___adaptation_to(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
6236 /* syntax/mmbuilder.nit:919 */
6237 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6238 if (UNTAG_Bool(REGB1)) {
6239 } else {
6240 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6241 if (UNTAG_Bool(REGB2)) {
6242 REGB2 = TAG_Bool(0);
6243 REGB1 = REGB2;
6244 } else {
6245 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
6246 REGB1 = REGB2;
6247 }
6248 }
6249 if (UNTAG_Bool(REGB1)) {
6250 /* syntax/mmbuilder.nit:920 */
6251 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6252 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[5])(fra.me.REG[5]);
6253 /* ../lib/standard/collection/array.nit:24 */
6254 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
6255 if (UNTAG_Bool(REGB1)) {
6256 } else {
6257 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6258 }
6259 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
6260 /* syntax/mmbuilder.nit:920 */
6261 REGB2 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[6])(fra.me.REG[6]);
6262 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
6263 if (UNTAG_Bool(REGB3)) {
6264 } else {
6265 /* ../lib/standard/kernel.nit:230 */
6266 REGB2 = TAG_Bool((REGB1)==(REGB2));
6267 /* syntax/mmbuilder.nit:920 */
6268 REGB3 = REGB2;
6269 }
6270 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
6271 if (UNTAG_Bool(REGB3)) {
6272 /* syntax/mmbuilder.nit:921 */
6273 goto label1;
6274 }
6275 /* syntax/mmbuilder.nit:923 */
6276 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6277 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[5])(fra.me.REG[5]);
6278 /* ../lib/standard/collection/array.nit:269 */
6279 REGB3 = TAG_Int(0);
6280 /* ../lib/standard/collection/array.nit:270 */
6281 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
6282 if (UNTAG_Bool(REGB2)) {
6283 } else {
6284 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
6285 }
6286 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
6287 /* ../lib/standard/collection/array.nit:271 */
6288 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
6289 /* ../lib/standard/collection/array.nit:272 */
6290 while(1) {
6291 /* ../lib/standard/collection/array.nit:24 */
6292 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
6293 if (UNTAG_Bool(REGB2)) {
6294 } else {
6295 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6296 }
6297 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
6298 REGB1 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
6299 if (UNTAG_Bool(REGB1)) {
6300 } else {
6301 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6302 }
6303 /* ../lib/standard/kernel.nit:235 */
6304 REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB2));
6305 /* ../lib/standard/collection/array.nit:272 */
6306 if (UNTAG_Bool(REGB2)) {
6307 /* ../lib/standard/collection/array.nit:273 */
6308 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6309 if (UNTAG_Bool(REGB2)) {
6310 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
6311 }
6312 /* ../lib/standard/collection/array.nit:718 */
6313 fra.me.REG[8] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB3)];
6314 /* syntax/mmbuilder.nit:924 */
6315 REGB2 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[8])(fra.me.REG[8]);
6316 fra.me.REG[9] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[6])(fra.me.REG[6], REGB2);
6317 /* syntax/mmbuilder.nit:925 */
6318 CALL_syntax___mmbuilder___AParam___stype__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
6319 /* syntax/mmbuilder.nit:926 */
6320 REGB2 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[8])(fra.me.REG[8]);
6321 REGB1 = CALL_metamodel___vararg___MMSignature___vararg_rank(fra.me.REG[6])(fra.me.REG[6]);
6322 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
6323 if (UNTAG_Bool(REGB4)) {
6324 } else {
6325 /* ../lib/standard/kernel.nit:230 */
6326 REGB1 = TAG_Bool((REGB2)==(REGB1));
6327 /* syntax/mmbuilder.nit:926 */
6328 REGB4 = REGB1;
6329 }
6330 if (UNTAG_Bool(REGB4)) {
6331 /* syntax/mmbuilder.nit:927 */
6332 fra.me.REG[10] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
6333 fra.me.REG[9] = fra.me.REG[10];
6334 }
6335 /* syntax/mmbuilder.nit:929 */
6336 fra.me.REG[8] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[8])(fra.me.REG[8]);
6337 CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
6338 /* ../lib/standard/collection/array.nit:274 */
6339 REGB4 = TAG_Int(1);
6340 /* ../lib/standard/kernel.nit:238 */
6341 REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB4));
6342 /* ../lib/standard/collection/array.nit:274 */
6343 REGB3 = REGB4;
6344 } else {
6345 /* ../lib/standard/collection/array.nit:272 */
6346 goto label2;
6347 }
6348 }
6349 label2: while(0);
6350 /* syntax/mmbuilder.nit:932 */
6351 fra.me.REG[0] = fra.me.REG[6];
6352 /* syntax/mmbuilder.nit:933 */
6353 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6354 }
6355 /* ../lib/standard/collection/array.nit:274 */
6356 REGB3 = TAG_Int(1);
6357 /* ../lib/standard/kernel.nit:238 */
6358 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
6359 /* ../lib/standard/collection/array.nit:274 */
6360 REGB0 = REGB3;
6361 } else {
6362 /* ../lib/standard/collection/array.nit:272 */
6363 goto label3;
6364 }
6365 }
6366 label3: while(0);
6367 label1: while(0);
6368 stack_frame_head = fra.me.prev;
6369 return;
6370 }
6371 static const char LOCATE_syntax___mmbuilder___APropdef___do_and_check_redef[] = "mmbuilder::APropdef::do_and_check_redef";
6372 void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
6373 struct {struct stack_frame_t me; val_t MORE_REG[13];} fra;
6374 val_t REGB0;
6375 val_t REGB1;
6376 val_t REGB2;
6377 val_t REGB3;
6378 val_t REGB4;
6379 val_t REGB5;
6380 val_t REGB6;
6381 val_t REGB7;
6382 val_t tmp;
6383 static val_t once_value_1; /* Once value */
6384 static val_t once_value_2; /* Once value */
6385 static val_t once_value_3; /* Once value */
6386 static val_t once_value_5; /* Once value */
6387 static val_t once_value_6; /* Once value */
6388 static val_t once_value_7; /* Once value */
6389 static val_t once_value_8; /* Once value */
6390 static val_t once_value_9; /* Once value */
6391 static val_t once_value_10; /* Once value */
6392 static val_t once_value_12; /* Once value */
6393 static val_t once_value_13; /* Once value */
6394 static val_t once_value_14; /* Once value */
6395 static val_t once_value_15; /* Once value */
6396 static val_t once_value_16; /* Once value */
6397 static val_t once_value_17; /* Once value */
6398 static val_t once_value_18; /* Once value */
6399 static val_t once_value_19; /* Once value */
6400 static val_t once_value_20; /* Once value */
6401 static val_t once_value_21; /* Once value */
6402 static val_t once_value_22; /* Once value */
6403 static val_t once_value_23; /* Once value */
6404 static val_t once_value_26; /* Once value */
6405 static val_t once_value_27; /* Once value */
6406 static val_t once_value_28; /* Once value */
6407 static val_t once_value_29; /* Once value */
6408 static val_t once_value_30; /* Once value */
6409 static val_t once_value_31; /* Once value */
6410 static val_t once_value_32; /* Once value */
6411 static val_t once_value_33; /* Once value */
6412 static val_t once_value_34; /* Once value */
6413 static val_t once_value_35; /* Once value */
6414 static val_t once_value_37; /* Once value */
6415 static val_t once_value_38; /* Once value */
6416 static val_t once_value_39; /* Once value */
6417 static val_t once_value_40; /* Once value */
6418 static val_t once_value_41; /* Once value */
6419 static val_t once_value_42; /* Once value */
6420 static val_t once_value_43; /* Once value */
6421 static val_t once_value_44; /* Once value */
6422 static val_t once_value_45; /* Once value */
6423 static val_t once_value_46; /* Once value */
6424 static val_t once_value_47; /* Once value */
6425 static val_t once_value_48; /* Once value */
6426 static val_t once_value_49; /* Once value */
6427 static val_t once_value_50; /* Once value */
6428 static val_t once_value_51; /* Once value */
6429 static val_t once_value_52; /* Once value */
6430 static val_t once_value_53; /* Once value */
6431 static val_t once_value_54; /* Once value */
6432 static val_t once_value_55; /* Once value */
6433 static val_t once_value_56; /* Once value */
6434 static val_t once_value_57; /* Once value */
6435 static val_t once_value_58; /* Once value */
6436 static val_t once_value_59; /* Once value */
6437 static val_t once_value_60; /* Once value */
6438 static val_t once_value_61; /* Once value */
6439 static val_t once_value_62; /* Once value */
6440 static val_t once_value_63; /* Once value */
6441 static val_t once_value_65; /* Once value */
6442 static val_t once_value_66; /* Once value */
6443 static val_t once_value_67; /* Once value */
6444 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6445 fra.me.file = LOCATE_syntax___mmbuilder;
6446 fra.me.line = 938;
6447 fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___do_and_check_redef;
6448 fra.me.has_broke = 0;
6449 fra.me.REG_size = 14;
6450 fra.me.nitni_local_ref_head = NULL;
6451 fra.me.REG[0] = NIT_NULL;
6452 fra.me.REG[1] = NIT_NULL;
6453 fra.me.REG[2] = NIT_NULL;
6454 fra.me.REG[3] = NIT_NULL;
6455 fra.me.REG[4] = NIT_NULL;
6456 fra.me.REG[5] = NIT_NULL;
6457 fra.me.REG[6] = NIT_NULL;
6458 fra.me.REG[7] = NIT_NULL;
6459 fra.me.REG[8] = NIT_NULL;
6460 fra.me.REG[9] = NIT_NULL;
6461 fra.me.REG[10] = NIT_NULL;
6462 fra.me.REG[11] = NIT_NULL;
6463 fra.me.REG[12] = NIT_NULL;
6464 fra.me.REG[13] = NIT_NULL;
6465 fra.me.REG[0] = p0;
6466 fra.me.REG[1] = p1;
6467 fra.me.REG[2] = p2;
6468 REGB0 = p3;
6469 REGB1 = p4;
6470 /* syntax/mmbuilder.nit:941 */
6471 REGB2 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AInitPropdef, ID_parser___parser_nodes___AInitPropdef)) /*cast AInitPropdef*/;
6472 /* syntax/mmbuilder.nit:942 */
6473 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
6474 /* syntax/mmbuilder.nit:944 */
6475 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6476 if (UNTAG_Bool(REGB0)) {
6477 /* syntax/mmbuilder.nit:945 */
6478 REGB0 = TAG_Int(5);
6479 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
6480 if (!once_value_1) {
6481 fra.me.REG[5] = BOX_NativeString("Redef error: ");
6482 REGB0 = TAG_Int(13);
6483 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6484 once_value_1 = fra.me.REG[5];
6485 register_static_object(&once_value_1);
6486 } else fra.me.REG[5] = once_value_1;
6487 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 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6490 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
6491 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6492 if (!once_value_2) {
6493 fra.me.REG[5] = BOX_NativeString("::");
6494 REGB0 = TAG_Int(2);
6495 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6496 once_value_2 = fra.me.REG[5];
6497 register_static_object(&once_value_2);
6498 } else fra.me.REG[5] = once_value_2;
6499 fra.me.REG[5] = fra.me.REG[5];
6500 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6501 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6502 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6503 if (!once_value_3) {
6504 fra.me.REG[5] = BOX_NativeString(" is an inherited property. To redefine it, add the redef keyword.");
6505 REGB0 = TAG_Int(65);
6506 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6507 once_value_3 = fra.me.REG[5];
6508 register_static_object(&once_value_3);
6509 } else fra.me.REG[5] = once_value_3;
6510 fra.me.REG[5] = fra.me.REG[5];
6511 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6512 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
6513 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
6514 /* syntax/mmbuilder.nit:946 */
6515 goto label4;
6516 }
6517 /* syntax/mmbuilder.nit:948 */
6518 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
6519 if (UNTAG_Bool(REGB0)) {
6520 REGB0 = TAG_Bool(!UNTAG_Bool(REGB2));
6521 } else {
6522 REGB3 = TAG_Bool(0);
6523 REGB0 = REGB3;
6524 }
6525 if (UNTAG_Bool(REGB0)) {
6526 /* syntax/mmbuilder.nit:949 */
6527 REGB0 = TAG_Int(5);
6528 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
6529 if (!once_value_5) {
6530 fra.me.REG[5] = BOX_NativeString("Redef error: A method ");
6531 REGB0 = TAG_Int(22);
6532 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6533 once_value_5 = fra.me.REG[5];
6534 register_static_object(&once_value_5);
6535 } else fra.me.REG[5] = once_value_5;
6536 fra.me.REG[5] = fra.me.REG[5];
6537 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6538 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6539 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
6540 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6541 if (!once_value_6) {
6542 fra.me.REG[5] = BOX_NativeString("::");
6543 REGB0 = TAG_Int(2);
6544 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6545 once_value_6 = fra.me.REG[5];
6546 register_static_object(&once_value_6);
6547 } else fra.me.REG[5] = once_value_6;
6548 fra.me.REG[5] = fra.me.REG[5];
6549 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6550 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6551 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6552 if (!once_value_7) {
6553 fra.me.REG[5] = BOX_NativeString(" cannot redefine a constructor.");
6554 REGB0 = TAG_Int(31);
6555 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
6556 once_value_7 = fra.me.REG[5];
6557 register_static_object(&once_value_7);
6558 } else fra.me.REG[5] = once_value_7;
6559 fra.me.REG[5] = fra.me.REG[5];
6560 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6561 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
6562 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
6563 } else {
6564 /* syntax/mmbuilder.nit:950 */
6565 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
6566 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6567 if (UNTAG_Bool(REGB0)) {
6568 } else {
6569 REGB0 = TAG_Bool(0);
6570 REGB2 = REGB0;
6571 }
6572 if (UNTAG_Bool(REGB2)) {
6573 /* syntax/mmbuilder.nit:951 */
6574 REGB2 = TAG_Int(5);
6575 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
6576 if (!once_value_8) {
6577 fra.me.REG[5] = BOX_NativeString("Redef error: A constructor ");
6578 REGB2 = TAG_Int(27);
6579 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
6580 once_value_8 = fra.me.REG[5];
6581 register_static_object(&once_value_8);
6582 } else fra.me.REG[5] = once_value_8;
6583 fra.me.REG[5] = fra.me.REG[5];
6584 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6585 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6586 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
6587 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6588 if (!once_value_9) {
6589 fra.me.REG[5] = BOX_NativeString("::");
6590 REGB2 = TAG_Int(2);
6591 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
6592 once_value_9 = fra.me.REG[5];
6593 register_static_object(&once_value_9);
6594 } else fra.me.REG[5] = once_value_9;
6595 fra.me.REG[5] = fra.me.REG[5];
6596 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6597 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6598 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6599 if (!once_value_10) {
6600 fra.me.REG[5] = BOX_NativeString(" cannot redefine a method.");
6601 REGB2 = TAG_Int(26);
6602 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
6603 once_value_10 = fra.me.REG[5];
6604 register_static_object(&once_value_10);
6605 } else fra.me.REG[5] = once_value_10;
6606 fra.me.REG[5] = fra.me.REG[5];
6607 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6608 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
6609 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
6610 }
6611 }
6612 /* syntax/mmbuilder.nit:954 */
6613 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
6614 /* syntax/mmbuilder.nit:956 */
6615 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[2])(fra.me.REG[2]);
6616 fra.me.REG[5] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[5])(fra.me.REG[5]);
6617 /* ../lib/standard/collection/array.nit:269 */
6618 REGB2 = TAG_Int(0);
6619 /* ../lib/standard/collection/array.nit:270 */
6620 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
6621 if (UNTAG_Bool(REGB0)) {
6622 } else {
6623 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
6624 }
6625 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
6626 /* ../lib/standard/collection/array.nit:271 */
6627 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
6628 /* ../lib/standard/collection/array.nit:272 */
6629 while(1) {
6630 /* ../lib/standard/collection/array.nit:24 */
6631 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
6632 if (UNTAG_Bool(REGB0)) {
6633 } else {
6634 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6635 }
6636 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
6637 REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
6638 if (UNTAG_Bool(REGB3)) {
6639 } else {
6640 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6641 }
6642 /* ../lib/standard/kernel.nit:235 */
6643 REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
6644 /* ../lib/standard/collection/array.nit:272 */
6645 if (UNTAG_Bool(REGB0)) {
6646 /* ../lib/standard/collection/array.nit:273 */
6647 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
6648 if (UNTAG_Bool(REGB0)) {
6649 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
6650 }
6651 /* ../lib/standard/collection/array.nit:718 */
6652 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB2)];
6653 /* syntax/mmbuilder.nit:957 */
6654 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[7])(fra.me.REG[7]);
6655 fra.me.REG[9] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
6656 fra.me.REG[9] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
6657 /* syntax/mmbuilder.nit:958 */
6658 fra.me.REG[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[7])(fra.me.REG[7]);
6659 /* syntax/mmbuilder.nit:959 */
6660 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6661 if (UNTAG_Bool(REGB0)) {
6662 } else {
6663 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6664 if (UNTAG_Bool(REGB3)) {
6665 REGB3 = TAG_Bool(0);
6666 REGB0 = REGB3;
6667 } else {
6668 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
6669 REGB0 = REGB3;
6670 }
6671 }
6672 if (UNTAG_Bool(REGB0)) {
6673 goto label11;
6674 }
6675 /* syntax/mmbuilder.nit:960 */
6676 fra.me.REG[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
6677 fra.me.REG[8] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[8])(fra.me.REG[8]);
6678 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6679 if (UNTAG_Bool(REGB0)) {
6680 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 960);
6681 }
6682 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___adaptation_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
6683 fra.me.REG[7] = fra.me.REG[8];
6684 /* syntax/mmbuilder.nit:962 */
6685 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6686 if (UNTAG_Bool(REGB0)) {
6687 } else {
6688 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6689 if (UNTAG_Bool(REGB3)) {
6690 REGB3 = TAG_Bool(0);
6691 REGB0 = REGB3;
6692 } else {
6693 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
6694 REGB0 = REGB3;
6695 }
6696 }
6697 if (UNTAG_Bool(REGB0)) {
6698 /* syntax/mmbuilder.nit:964 */
6699 fra.me.REG[8] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6700 fra.me.REG[8] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[8])(fra.me.REG[8]);
6701 /* ../lib/standard/collection/array.nit:24 */
6702 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6703 if (UNTAG_Bool(REGB0)) {
6704 } else {
6705 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6706 }
6707 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6708 /* syntax/mmbuilder.nit:964 */
6709 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6710 if (UNTAG_Bool(REGB3)) {
6711 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 964);
6712 }
6713 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
6714 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB3));
6715 if (UNTAG_Bool(REGB4)) {
6716 } else {
6717 /* ../lib/standard/kernel.nit:230 */
6718 REGB3 = TAG_Bool((REGB0)==(REGB3));
6719 /* syntax/mmbuilder.nit:964 */
6720 REGB4 = REGB3;
6721 }
6722 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
6723 if (UNTAG_Bool(REGB4)) {
6724 /* syntax/mmbuilder.nit:965 */
6725 REGB4 = TAG_Int(11);
6726 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
6727 if (!once_value_12) {
6728 fra.me.REG[10] = BOX_NativeString("Redef error: ");
6729 REGB4 = TAG_Int(13);
6730 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6731 once_value_12 = fra.me.REG[10];
6732 register_static_object(&once_value_12);
6733 } else fra.me.REG[10] = once_value_12;
6734 fra.me.REG[10] = fra.me.REG[10];
6735 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6736 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6737 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6738 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6739 if (!once_value_13) {
6740 fra.me.REG[10] = BOX_NativeString("::");
6741 REGB4 = TAG_Int(2);
6742 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6743 once_value_13 = fra.me.REG[10];
6744 register_static_object(&once_value_13);
6745 } else fra.me.REG[10] = once_value_13;
6746 fra.me.REG[10] = fra.me.REG[10];
6747 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6748 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6749 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6750 if (!once_value_14) {
6751 fra.me.REG[10] = BOX_NativeString(" redefines ");
6752 REGB4 = TAG_Int(11);
6753 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6754 once_value_14 = fra.me.REG[10];
6755 register_static_object(&once_value_14);
6756 } else fra.me.REG[10] = once_value_14;
6757 fra.me.REG[10] = fra.me.REG[10];
6758 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6759 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6760 fra.me.REG[10] = CALL_standard___string___Object___to_s(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 if (!once_value_15) {
6763 fra.me.REG[10] = BOX_NativeString("::");
6764 REGB4 = TAG_Int(2);
6765 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6766 once_value_15 = fra.me.REG[10];
6767 register_static_object(&once_value_15);
6768 } else fra.me.REG[10] = once_value_15;
6769 fra.me.REG[10] = fra.me.REG[10];
6770 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6771 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6772 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6773 if (!once_value_16) {
6774 fra.me.REG[10] = BOX_NativeString(" with ");
6775 REGB4 = TAG_Int(6);
6776 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6777 once_value_16 = fra.me.REG[10];
6778 register_static_object(&once_value_16);
6779 } else fra.me.REG[10] = once_value_16;
6780 fra.me.REG[10] = fra.me.REG[10];
6781 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6782 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6783 if (UNTAG_Bool(REGB4)) {
6784 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 965);
6785 }
6786 REGB4 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
6787 fra.me.REG[10] = CALL_standard___string___Object___to_s(REGB4)(REGB4);
6788 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6789 if (!once_value_17) {
6790 fra.me.REG[10] = BOX_NativeString(" parameter(s).");
6791 REGB4 = TAG_Int(14);
6792 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB4);
6793 once_value_17 = fra.me.REG[10];
6794 register_static_object(&once_value_17);
6795 } else fra.me.REG[10] = once_value_17;
6796 fra.me.REG[10] = fra.me.REG[10];
6797 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6798 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
6799 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]);
6800 /* syntax/mmbuilder.nit:966 */
6801 goto label4;
6802 }
6803 /* syntax/mmbuilder.nit:968 */
6804 fra.me.REG[8] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6805 fra.me.REG[8] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[8])(fra.me.REG[8]);
6806 /* ../lib/standard/collection/array.nit:24 */
6807 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6808 if (UNTAG_Bool(REGB4)) {
6809 } else {
6810 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6811 }
6812 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6813 /* syntax/mmbuilder.nit:968 */
6814 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6815 if (UNTAG_Bool(REGB3)) {
6816 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 968);
6817 }
6818 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[7])(fra.me.REG[7]);
6819 /* ../lib/standard/collection/array.nit:24 */
6820 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6821 if (UNTAG_Bool(REGB3)) {
6822 } else {
6823 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6824 }
6825 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6826 /* syntax/mmbuilder.nit:968 */
6827 REGB0 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB3));
6828 if (UNTAG_Bool(REGB0)) {
6829 } else {
6830 /* ../lib/standard/kernel.nit:230 */
6831 REGB3 = TAG_Bool((REGB4)==(REGB3));
6832 /* syntax/mmbuilder.nit:968 */
6833 REGB0 = REGB3;
6834 }
6835 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6836 if (UNTAG_Bool(REGB0)) {
6837 /* syntax/mmbuilder.nit:969 */
6838 REGB0 = TAG_Int(11);
6839 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
6840 if (!once_value_18) {
6841 fra.me.REG[10] = BOX_NativeString("Redef error: ");
6842 REGB0 = TAG_Int(13);
6843 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6844 once_value_18 = fra.me.REG[10];
6845 register_static_object(&once_value_18);
6846 } else fra.me.REG[10] = once_value_18;
6847 fra.me.REG[10] = fra.me.REG[10];
6848 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6849 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6850 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6851 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6852 if (!once_value_19) {
6853 fra.me.REG[10] = BOX_NativeString("::");
6854 REGB0 = TAG_Int(2);
6855 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6856 once_value_19 = fra.me.REG[10];
6857 register_static_object(&once_value_19);
6858 } else fra.me.REG[10] = once_value_19;
6859 fra.me.REG[10] = fra.me.REG[10];
6860 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6861 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6862 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6863 if (!once_value_20) {
6864 fra.me.REG[10] = BOX_NativeString(" redefines ");
6865 REGB0 = TAG_Int(11);
6866 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6867 once_value_20 = fra.me.REG[10];
6868 register_static_object(&once_value_20);
6869 } else fra.me.REG[10] = once_value_20;
6870 fra.me.REG[10] = fra.me.REG[10];
6871 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6872 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6873 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6874 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6875 if (!once_value_21) {
6876 fra.me.REG[10] = BOX_NativeString("::");
6877 REGB0 = TAG_Int(2);
6878 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6879 once_value_21 = fra.me.REG[10];
6880 register_static_object(&once_value_21);
6881 } else fra.me.REG[10] = once_value_21;
6882 fra.me.REG[10] = fra.me.REG[10];
6883 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6884 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6885 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6886 if (!once_value_22) {
6887 fra.me.REG[10] = BOX_NativeString(" with ");
6888 REGB0 = TAG_Int(6);
6889 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6890 once_value_22 = fra.me.REG[10];
6891 register_static_object(&once_value_22);
6892 } else fra.me.REG[10] = once_value_22;
6893 fra.me.REG[10] = fra.me.REG[10];
6894 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6895 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6896 if (UNTAG_Bool(REGB0)) {
6897 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 969);
6898 }
6899 REGB0 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
6900 fra.me.REG[10] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
6901 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6902 if (!once_value_23) {
6903 fra.me.REG[10] = BOX_NativeString(" closure(s).");
6904 REGB0 = TAG_Int(12);
6905 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB0);
6906 once_value_23 = fra.me.REG[10];
6907 register_static_object(&once_value_23);
6908 } else fra.me.REG[10] = once_value_23;
6909 fra.me.REG[10] = fra.me.REG[10];
6910 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6911 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
6912 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]);
6913 /* syntax/mmbuilder.nit:970 */
6914 goto label4;
6915 }
6916 /* syntax/mmbuilder.nit:972 */
6917 fra.me.REG[8] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6918 fra.me.REG[8] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[8])(fra.me.REG[8]);
6919 /* ../lib/standard/collection/array.nit:269 */
6920 REGB0 = TAG_Int(0);
6921 /* ../lib/standard/collection/array.nit:270 */
6922 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6923 if (UNTAG_Bool(REGB3)) {
6924 } else {
6925 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
6926 }
6927 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6928 /* ../lib/standard/collection/array.nit:271 */
6929 fra.me.REG[10] = ATTR_standard___collection___array___Array____items(fra.me.REG[8]);
6930 /* ../lib/standard/collection/array.nit:272 */
6931 while(1) {
6932 /* ../lib/standard/collection/array.nit:24 */
6933 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6934 if (UNTAG_Bool(REGB3)) {
6935 } else {
6936 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6937 }
6938 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6939 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
6940 if (UNTAG_Bool(REGB4)) {
6941 } else {
6942 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6943 }
6944 /* ../lib/standard/kernel.nit:235 */
6945 REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB3));
6946 /* ../lib/standard/collection/array.nit:272 */
6947 if (UNTAG_Bool(REGB3)) {
6948 /* ../lib/standard/collection/array.nit:273 */
6949 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6950 if (UNTAG_Bool(REGB3)) {
6951 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
6952 }
6953 /* ../lib/standard/collection/array.nit:718 */
6954 fra.me.REG[11] = ((Nit_NativeArray)fra.me.REG[10])->val[UNTAG_Int(REGB0)];
6955 /* syntax/mmbuilder.nit:973 */
6956 REGB3 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]);
6957 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6958 if (UNTAG_Bool(REGB4)) {
6959 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 973);
6960 }
6961 fra.me.REG[12] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB3);
6962 /* syntax/mmbuilder.nit:974 */
6963 CALL_syntax___mmbuilder___AParam___stype__eq(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
6964 /* syntax/mmbuilder.nit:975 */
6965 REGB3 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]);
6966 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6967 if (UNTAG_Bool(REGB4)) {
6968 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 975);
6969 }
6970 REGB4 = CALL_metamodel___vararg___MMSignature___vararg_rank(fra.me.REG[7])(fra.me.REG[7]);
6971 REGB5 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB4));
6972 if (UNTAG_Bool(REGB5)) {
6973 } else {
6974 /* ../lib/standard/kernel.nit:230 */
6975 REGB4 = TAG_Bool((REGB3)==(REGB4));
6976 /* syntax/mmbuilder.nit:975 */
6977 REGB5 = REGB4;
6978 }
6979 if (UNTAG_Bool(REGB5)) {
6980 /* syntax/mmbuilder.nit:976 */
6981 fra.me.REG[13] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[12]);
6982 fra.me.REG[12] = fra.me.REG[13];
6983 }
6984 /* syntax/mmbuilder.nit:978 */
6985 fra.me.REG[13] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[11])(fra.me.REG[11]);
6986 CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[13])(fra.me.REG[13], fra.me.REG[12]);
6987 /* syntax/mmbuilder.nit:980 */
6988 REGB5 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6989 if (UNTAG_Bool(REGB5)) {
6990 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 980);
6991 }
6992 fra.me.REG[12] = CALL_metamodel___static_type___MMSignature___params(fra.me.REG[7])(fra.me.REG[7]);
6993 REGB5 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]);
6994 /* ../lib/standard/collection/array.nit:280 */
6995 REGB4 = TAG_Int(0);
6996 REGB3 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
6997 if (UNTAG_Bool(REGB3)) {
6998 } else {
6999 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7000 }
7001 /* ../lib/standard/kernel.nit:236 */
7002 REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
7003 /* ../lib/standard/collection/array.nit:280 */
7004 if (UNTAG_Bool(REGB4)) {
7005 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[12])!=NIT_NULL);
7006 if (UNTAG_Bool(REGB4)) {
7007 } else {
7008 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
7009 }
7010 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[12]);
7011 REGB3 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
7012 if (UNTAG_Bool(REGB3)) {
7013 } else {
7014 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7015 }
7016 /* ../lib/standard/kernel.nit:235 */
7017 REGB4 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB4));
7018 } else {
7019 /* ../lib/standard/collection/array.nit:280 */
7020 REGB3 = TAG_Bool(0);
7021 REGB4 = REGB3;
7022 }
7023 if (UNTAG_Bool(REGB4)) {
7024 } else {
7025 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 280);
7026 }
7027 /* ../lib/standard/collection/array.nit:281 */
7028 fra.me.REG[12] = ATTR_standard___collection___array___Array____items(fra.me.REG[12]);
7029 REGB4 = TAG_Bool(fra.me.REG[12]==NIT_NULL);
7030 if (UNTAG_Bool(REGB4)) {
7031 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
7032 }
7033 /* ../lib/standard/collection/array.nit:718 */
7034 fra.me.REG[12] = ((Nit_NativeArray)fra.me.REG[12])->val[UNTAG_Int(REGB5)];
7035 /* ../lib/standard/collection/array.nit:281 */
7036 goto label24;
7037 label24: while(0);
7038 /* syntax/mmbuilder.nit:980 */
7039 fra.me.REG[11] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[11])(fra.me.REG[11]);
7040 fra.me.REG[11] = CALL_syntax___syntax_base___Variable___name(fra.me.REG[11])(fra.me.REG[11]);
7041 REGB5 = TAG_Bool(fra.me.REG[12]==NIT_NULL);
7042 if (UNTAG_Bool(REGB5)) {
7043 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 980);
7044 }
7045 CALL_metamodel___static_type___MMParam___name__eq(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7046 /* ../lib/standard/collection/array.nit:274 */
7047 REGB5 = TAG_Int(1);
7048 /* ../lib/standard/kernel.nit:238 */
7049 REGB5 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB5));
7050 /* ../lib/standard/collection/array.nit:274 */
7051 REGB0 = REGB5;
7052 } else {
7053 /* ../lib/standard/collection/array.nit:272 */
7054 goto label25;
7055 }
7056 }
7057 label25: while(0);
7058 /* syntax/mmbuilder.nit:982 */
7059 fra.me.REG[4] = fra.me.REG[7];
7060 /* syntax/mmbuilder.nit:983 */
7061 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
7062 }
7063 /* syntax/mmbuilder.nit:987 */
7064 fra.me.REG[10] = CALL_syntax___syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
7065 REGB0 = CALL_toolcontext___ToolContext___error_count(fra.me.REG[10])(fra.me.REG[10]);
7066 /* syntax/mmbuilder.nit:995 */
7067 REGB5 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7068 if (UNTAG_Bool(REGB5)) {
7069 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 995);
7070 }
7071 REGB5 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
7072 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7073 if (UNTAG_Bool(REGB4)) {
7074 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 995);
7075 }
7076 REGB4 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
7077 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB5,REGB4));
7078 if (UNTAG_Bool(REGB3)) {
7079 } else {
7080 /* ../lib/standard/kernel.nit:230 */
7081 REGB4 = TAG_Bool((REGB5)==(REGB4));
7082 /* syntax/mmbuilder.nit:995 */
7083 REGB3 = REGB4;
7084 }
7085 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7086 if (UNTAG_Bool(REGB3)) {
7087 /* syntax/mmbuilder.nit:996 */
7088 REGB3 = TAG_Int(11);
7089 fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
7090 if (!once_value_26) {
7091 fra.me.REG[8] = BOX_NativeString("Redef error: ");
7092 REGB3 = TAG_Int(13);
7093 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
7094 once_value_26 = fra.me.REG[8];
7095 register_static_object(&once_value_26);
7096 } else fra.me.REG[8] = once_value_26;
7097 fra.me.REG[8] = fra.me.REG[8];
7098 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7099 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
7100 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
7101 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7102 if (!once_value_27) {
7103 fra.me.REG[8] = BOX_NativeString("::");
7104 REGB3 = TAG_Int(2);
7105 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
7106 once_value_27 = fra.me.REG[8];
7107 register_static_object(&once_value_27);
7108 } else fra.me.REG[8] = once_value_27;
7109 fra.me.REG[8] = fra.me.REG[8];
7110 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7111 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
7112 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7113 if (!once_value_28) {
7114 fra.me.REG[8] = BOX_NativeString(" redefines ");
7115 REGB3 = TAG_Int(11);
7116 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
7117 once_value_28 = fra.me.REG[8];
7118 register_static_object(&once_value_28);
7119 } else fra.me.REG[8] = once_value_28;
7120 fra.me.REG[8] = fra.me.REG[8];
7121 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7122 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7123 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
7124 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7125 if (!once_value_29) {
7126 fra.me.REG[8] = BOX_NativeString("::");
7127 REGB3 = TAG_Int(2);
7128 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
7129 once_value_29 = fra.me.REG[8];
7130 register_static_object(&once_value_29);
7131 } else fra.me.REG[8] = once_value_29;
7132 fra.me.REG[8] = fra.me.REG[8];
7133 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7134 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7135 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7136 if (!once_value_30) {
7137 fra.me.REG[8] = BOX_NativeString(" with ");
7138 REGB3 = TAG_Int(6);
7139 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
7140 once_value_30 = fra.me.REG[8];
7141 register_static_object(&once_value_30);
7142 } else fra.me.REG[8] = once_value_30;
7143 fra.me.REG[8] = fra.me.REG[8];
7144 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7145 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7146 if (UNTAG_Bool(REGB3)) {
7147 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 996);
7148 }
7149 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
7150 fra.me.REG[8] = CALL_standard___string___Object___to_s(REGB3)(REGB3);
7151 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7152 if (!once_value_31) {
7153 fra.me.REG[8] = BOX_NativeString(" parameter(s).");
7154 REGB3 = TAG_Int(14);
7155 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
7156 once_value_31 = fra.me.REG[8];
7157 register_static_object(&once_value_31);
7158 } else fra.me.REG[8] = once_value_31;
7159 fra.me.REG[8] = fra.me.REG[8];
7160 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7161 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
7162 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[10]);
7163 } else {
7164 /* syntax/mmbuilder.nit:997 */
7165 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7166 if (UNTAG_Bool(REGB3)) {
7167 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 997);
7168 }
7169 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
7170 REGB4 = TAG_Int(0);
7171 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
7172 if (UNTAG_Bool(REGB5)) {
7173 } else {
7174 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7175 }
7176 /* ../lib/standard/kernel.nit:237 */
7177 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB4));
7178 /* syntax/mmbuilder.nit:997 */
7179 if (UNTAG_Bool(REGB4)) {
7180 /* syntax/mmbuilder.nit:998 */
7181 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AMethPropdef, ID_parser___parser_nodes___AMethPropdef)) /*cast AMethPropdef*/;
7182 if (UNTAG_Bool(REGB4)) {
7183 /* syntax/mmbuilder.nit:1000 */
7184 REGB4 = TAG_Int(0);
7185 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7186 if (UNTAG_Bool(REGB3)) {
7187 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1000);
7188 }
7189 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
7190 /* ../lib/standard/kernel.nit:355 */
7191 while(1) {
7192 REGB5 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
7193 if (UNTAG_Bool(REGB5)) {
7194 } else {
7195 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7196 }
7197 /* ../lib/standard/kernel.nit:235 */
7198 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB3));
7199 /* ../lib/standard/kernel.nit:355 */
7200 if (UNTAG_Bool(REGB5)) {
7201 /* syntax/mmbuilder.nit:1000 */
7202 REGB5 = REGB4;
7203 /* syntax/mmbuilder.nit:1001 */
7204 REGB6 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7205 if (UNTAG_Bool(REGB6)) {
7206 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1001);
7207 }
7208 fra.me.REG[10] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[4])(fra.me.REG[4], REGB5);
7209 REGB6 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7210 if (UNTAG_Bool(REGB6)) {
7211 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1001);
7212 }
7213 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB5);
7214 REGB6 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[10],fra.me.REG[8]));
7215 if (UNTAG_Bool(REGB6)) {
7216 } else {
7217 REGB7 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7218 REGB6 = REGB7;
7219 }
7220 REGB6 = TAG_Bool(!UNTAG_Bool(REGB6));
7221 if (UNTAG_Bool(REGB6)) {
7222 /* syntax/mmbuilder.nit:1002 */
7223 fra.me.REG[8] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[0])(fra.me.REG[0]);
7224 REGB6 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7225 if (UNTAG_Bool(REGB6)) {
7226 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1002);
7227 }
7228 fra.me.REG[8] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[8])(fra.me.REG[8]);
7229 fra.me.REG[8] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[8])(fra.me.REG[8], REGB5);
7230 REGB6 = TAG_Int(7);
7231 fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB6);
7232 if (!once_value_32) {
7233 fra.me.REG[11] = BOX_NativeString("Redef error: Expected ");
7234 REGB6 = TAG_Int(22);
7235 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB6);
7236 once_value_32 = fra.me.REG[11];
7237 register_static_object(&once_value_32);
7238 } else fra.me.REG[11] = once_value_32;
7239 fra.me.REG[11] = fra.me.REG[11];
7240 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7241 REGB6 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7242 if (UNTAG_Bool(REGB6)) {
7243 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1002);
7244 }
7245 fra.me.REG[11] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB5);
7246 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7247 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7248 if (!once_value_33) {
7249 fra.me.REG[11] = BOX_NativeString(", as in ");
7250 REGB5 = TAG_Int(8);
7251 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB5);
7252 once_value_33 = fra.me.REG[11];
7253 register_static_object(&once_value_33);
7254 } else fra.me.REG[11] = once_value_33;
7255 fra.me.REG[11] = fra.me.REG[11];
7256 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7257 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7258 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7259 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7260 if (!once_value_34) {
7261 fra.me.REG[11] = BOX_NativeString("::");
7262 REGB5 = TAG_Int(2);
7263 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB5);
7264 once_value_34 = fra.me.REG[11];
7265 register_static_object(&once_value_34);
7266 } else fra.me.REG[11] = once_value_34;
7267 fra.me.REG[11] = fra.me.REG[11];
7268 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7269 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7270 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7271 if (!once_value_35) {
7272 fra.me.REG[11] = BOX_NativeString(".");
7273 REGB5 = TAG_Int(1);
7274 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB5);
7275 once_value_35 = fra.me.REG[11];
7276 register_static_object(&once_value_35);
7277 } else fra.me.REG[11] = once_value_35;
7278 fra.me.REG[11] = fra.me.REG[11];
7279 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7280 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
7281 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8], fra.me.REG[10]);
7282 }
7283 /* ../lib/standard/kernel.nit:357 */
7284 REGB5 = TAG_Int(1);
7285 /* ../lib/standard/kernel.nit:238 */
7286 REGB5 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB5));
7287 /* ../lib/standard/kernel.nit:357 */
7288 REGB4 = REGB5;
7289 } else {
7290 /* ../lib/standard/kernel.nit:355 */
7291 goto label36;
7292 }
7293 }
7294 label36: while(0);
7295 } else {
7296 /* syntax/mmbuilder.nit:1005 */
7297 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AAttrPropdef, ID_parser___parser_nodes___AAttrPropdef)) /*cast AAttrPropdef*/;
7298 if (UNTAG_Bool(REGB4)) {
7299 /* syntax/mmbuilder.nit:1007 */
7300 REGB4 = TAG_Int(0);
7301 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7302 if (UNTAG_Bool(REGB3)) {
7303 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1007);
7304 }
7305 fra.me.REG[10] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[4])(fra.me.REG[4], REGB4);
7306 REGB4 = TAG_Int(0);
7307 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7308 if (UNTAG_Bool(REGB3)) {
7309 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1007);
7310 }
7311 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB4);
7312 REGB4 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[10],fra.me.REG[8]));
7313 if (UNTAG_Bool(REGB4)) {
7314 } else {
7315 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7316 REGB4 = REGB3;
7317 }
7318 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7319 if (UNTAG_Bool(REGB4)) {
7320 /* syntax/mmbuilder.nit:1008 */
7321 fra.me.REG[8] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[0])(fra.me.REG[0]);
7322 REGB4 = TAG_Int(7);
7323 fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
7324 if (!once_value_37) {
7325 fra.me.REG[11] = BOX_NativeString("Redef error: Expected ");
7326 REGB4 = TAG_Int(22);
7327 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
7328 once_value_37 = fra.me.REG[11];
7329 register_static_object(&once_value_37);
7330 } else fra.me.REG[11] = once_value_37;
7331 fra.me.REG[11] = fra.me.REG[11];
7332 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7333 REGB4 = TAG_Int(0);
7334 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7335 if (UNTAG_Bool(REGB3)) {
7336 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1008);
7337 }
7338 fra.me.REG[11] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB4);
7339 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7340 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7341 if (!once_value_38) {
7342 fra.me.REG[11] = BOX_NativeString(", as in the parameter of ");
7343 REGB4 = TAG_Int(25);
7344 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
7345 once_value_38 = fra.me.REG[11];
7346 register_static_object(&once_value_38);
7347 } else fra.me.REG[11] = once_value_38;
7348 fra.me.REG[11] = fra.me.REG[11];
7349 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7350 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7351 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7352 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7353 if (!once_value_39) {
7354 fra.me.REG[11] = BOX_NativeString("::");
7355 REGB4 = TAG_Int(2);
7356 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
7357 once_value_39 = fra.me.REG[11];
7358 register_static_object(&once_value_39);
7359 } else fra.me.REG[11] = once_value_39;
7360 fra.me.REG[11] = fra.me.REG[11];
7361 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7362 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7363 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7364 if (!once_value_40) {
7365 fra.me.REG[11] = BOX_NativeString(".");
7366 REGB4 = TAG_Int(1);
7367 fra.me.REG[11] = NEW_String_standard___string___String___with_native(fra.me.REG[11], REGB4);
7368 once_value_40 = fra.me.REG[11];
7369 register_static_object(&once_value_40);
7370 } else fra.me.REG[11] = once_value_40;
7371 fra.me.REG[11] = fra.me.REG[11];
7372 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7373 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
7374 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8], fra.me.REG[10]);
7375 }
7376 } else {
7377 /* syntax/mmbuilder.nit:1012 */
7378 nit_abort("Aborted", NULL, LOCATE_syntax___mmbuilder, 1012);
7379 }
7380 }
7381 }
7382 }
7383 /* syntax/mmbuilder.nit:1016 */
7384 REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7385 if (UNTAG_Bool(REGB4)) {
7386 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1016);
7387 }
7388 fra.me.REG[10] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[4])(fra.me.REG[4]);
7389 /* syntax/mmbuilder.nit:1017 */
7390 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7391 if (UNTAG_Bool(REGB4)) {
7392 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1017);
7393 }
7394 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[7])(fra.me.REG[7]);
7395 /* syntax/mmbuilder.nit:1018 */
7396 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7397 if (UNTAG_Bool(REGB4)) {
7398 } else {
7399 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7400 if (UNTAG_Bool(REGB3)) {
7401 REGB3 = TAG_Bool(0);
7402 REGB4 = REGB3;
7403 } else {
7404 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
7405 REGB4 = REGB3;
7406 }
7407 }
7408 if (UNTAG_Bool(REGB4)) {
7409 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7410 if (UNTAG_Bool(REGB4)) {
7411 } else {
7412 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7413 if (UNTAG_Bool(REGB3)) {
7414 REGB3 = TAG_Bool(0);
7415 REGB4 = REGB3;
7416 } else {
7417 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
7418 REGB4 = REGB3;
7419 }
7420 }
7421 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7422 } else {
7423 REGB3 = TAG_Bool(0);
7424 REGB4 = REGB3;
7425 }
7426 if (UNTAG_Bool(REGB4)) {
7427 /* syntax/mmbuilder.nit:1019 */
7428 REGB4 = TAG_Int(9);
7429 fra.me.REG[11] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
7430 if (!once_value_41) {
7431 fra.me.REG[12] = BOX_NativeString("Redef error: The procedure ");
7432 REGB4 = TAG_Int(27);
7433 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
7434 once_value_41 = fra.me.REG[12];
7435 register_static_object(&once_value_41);
7436 } else fra.me.REG[12] = once_value_41;
7437 fra.me.REG[12] = fra.me.REG[12];
7438 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7439 fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
7440 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7441 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7442 if (!once_value_42) {
7443 fra.me.REG[12] = BOX_NativeString("::");
7444 REGB4 = TAG_Int(2);
7445 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
7446 once_value_42 = fra.me.REG[12];
7447 register_static_object(&once_value_42);
7448 } else fra.me.REG[12] = once_value_42;
7449 fra.me.REG[12] = fra.me.REG[12];
7450 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7451 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
7452 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7453 if (!once_value_43) {
7454 fra.me.REG[12] = BOX_NativeString(" redefines the function ");
7455 REGB4 = TAG_Int(24);
7456 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
7457 once_value_43 = fra.me.REG[12];
7458 register_static_object(&once_value_43);
7459 } else fra.me.REG[12] = once_value_43;
7460 fra.me.REG[12] = fra.me.REG[12];
7461 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7462 fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7463 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7464 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7465 if (!once_value_44) {
7466 fra.me.REG[12] = BOX_NativeString("::");
7467 REGB4 = TAG_Int(2);
7468 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
7469 once_value_44 = fra.me.REG[12];
7470 register_static_object(&once_value_44);
7471 } else fra.me.REG[12] = once_value_44;
7472 fra.me.REG[12] = fra.me.REG[12];
7473 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7474 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7475 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7476 if (!once_value_45) {
7477 fra.me.REG[12] = BOX_NativeString(".");
7478 REGB4 = TAG_Int(1);
7479 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
7480 once_value_45 = fra.me.REG[12];
7481 register_static_object(&once_value_45);
7482 } else fra.me.REG[12] = once_value_45;
7483 fra.me.REG[12] = fra.me.REG[12];
7484 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7485 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7486 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[11]);
7487 } else {
7488 /* syntax/mmbuilder.nit:1020 */
7489 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7490 if (UNTAG_Bool(REGB4)) {
7491 } else {
7492 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7493 if (UNTAG_Bool(REGB3)) {
7494 REGB3 = TAG_Bool(0);
7495 REGB4 = REGB3;
7496 } else {
7497 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
7498 REGB4 = REGB3;
7499 }
7500 }
7501 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7502 if (UNTAG_Bool(REGB4)) {
7503 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7504 if (UNTAG_Bool(REGB4)) {
7505 } else {
7506 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7507 if (UNTAG_Bool(REGB3)) {
7508 REGB3 = TAG_Bool(0);
7509 REGB4 = REGB3;
7510 } else {
7511 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
7512 REGB4 = REGB3;
7513 }
7514 }
7515 } else {
7516 REGB3 = TAG_Bool(0);
7517 REGB4 = REGB3;
7518 }
7519 if (UNTAG_Bool(REGB4)) {
7520 /* syntax/mmbuilder.nit:1021 */
7521 REGB4 = TAG_Int(9);
7522 fra.me.REG[11] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
7523 if (!once_value_46) {
7524 fra.me.REG[12] = BOX_NativeString("Redef error: The function ");
7525 REGB4 = TAG_Int(26);
7526 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
7527 once_value_46 = fra.me.REG[12];
7528 register_static_object(&once_value_46);
7529 } else fra.me.REG[12] = once_value_46;
7530 fra.me.REG[12] = fra.me.REG[12];
7531 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7532 fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
7533 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7534 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7535 if (!once_value_47) {
7536 fra.me.REG[12] = BOX_NativeString("::");
7537 REGB4 = TAG_Int(2);
7538 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
7539 once_value_47 = fra.me.REG[12];
7540 register_static_object(&once_value_47);
7541 } else fra.me.REG[12] = once_value_47;
7542 fra.me.REG[12] = fra.me.REG[12];
7543 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7544 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
7545 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7546 if (!once_value_48) {
7547 fra.me.REG[12] = BOX_NativeString(" redefines the procedure ");
7548 REGB4 = TAG_Int(25);
7549 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
7550 once_value_48 = fra.me.REG[12];
7551 register_static_object(&once_value_48);
7552 } else fra.me.REG[12] = once_value_48;
7553 fra.me.REG[12] = fra.me.REG[12];
7554 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7555 fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7556 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7557 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7558 if (!once_value_49) {
7559 fra.me.REG[12] = BOX_NativeString("::");
7560 REGB4 = TAG_Int(2);
7561 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
7562 once_value_49 = fra.me.REG[12];
7563 register_static_object(&once_value_49);
7564 } else fra.me.REG[12] = once_value_49;
7565 fra.me.REG[12] = fra.me.REG[12];
7566 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7567 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7568 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7569 if (!once_value_50) {
7570 fra.me.REG[12] = BOX_NativeString(".");
7571 REGB4 = TAG_Int(1);
7572 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB4);
7573 once_value_50 = fra.me.REG[12];
7574 register_static_object(&once_value_50);
7575 } else fra.me.REG[12] = once_value_50;
7576 fra.me.REG[12] = fra.me.REG[12];
7577 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7578 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7579 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[11]);
7580 } else {
7581 /* syntax/mmbuilder.nit:1022 */
7582 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7583 if (UNTAG_Bool(REGB4)) {
7584 } else {
7585 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7586 if (UNTAG_Bool(REGB3)) {
7587 REGB3 = TAG_Bool(0);
7588 REGB4 = REGB3;
7589 } else {
7590 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
7591 REGB4 = REGB3;
7592 }
7593 }
7594 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7595 if (UNTAG_Bool(REGB4)) {
7596 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7597 if (UNTAG_Bool(REGB4)) {
7598 } else {
7599 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7600 if (UNTAG_Bool(REGB3)) {
7601 REGB3 = TAG_Bool(0);
7602 REGB4 = REGB3;
7603 } else {
7604 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
7605 REGB4 = REGB3;
7606 }
7607 }
7608 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7609 } else {
7610 REGB3 = TAG_Bool(0);
7611 REGB4 = REGB3;
7612 }
7613 if (UNTAG_Bool(REGB4)) {
7614 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7615 if (UNTAG_Bool(REGB4)) {
7616 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1022);
7617 }
7618 REGB4 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7619 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7620 } else {
7621 REGB3 = TAG_Bool(0);
7622 REGB4 = REGB3;
7623 }
7624 if (UNTAG_Bool(REGB4)) {
7625 /* syntax/mmbuilder.nit:1023 */
7626 fra.me.REG[11] = NIT_NULL;
7627 /* syntax/mmbuilder.nit:1024 */
7628 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AMethPropdef, ID_parser___parser_nodes___AMethPropdef)) /*cast AMethPropdef*/;
7629 if (UNTAG_Bool(REGB4)) {
7630 /* syntax/mmbuilder.nit:1025 */
7631 fra.me.REG[12] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[0])(fra.me.REG[0]);
7632 REGB4 = TAG_Bool(fra.me.REG[12]==NIT_NULL);
7633 if (UNTAG_Bool(REGB4)) {
7634 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1025);
7635 }
7636 fra.me.REG[12] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[12])(fra.me.REG[12]);
7637 fra.me.REG[11] = fra.me.REG[12];
7638 } else {
7639 /* syntax/mmbuilder.nit:1026 */
7640 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AAttrPropdef, ID_parser___parser_nodes___AAttrPropdef)) /*cast AAttrPropdef*/;
7641 if (UNTAG_Bool(REGB4)) {
7642 /* syntax/mmbuilder.nit:1027 */
7643 fra.me.REG[12] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[0])(fra.me.REG[0]);
7644 fra.me.REG[11] = fra.me.REG[12];
7645 } else {
7646 /* syntax/mmbuilder.nit:1028 */
7647 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___ATypePropdef, ID_parser___parser_nodes___ATypePropdef)) /*cast ATypePropdef*/;
7648 if (UNTAG_Bool(REGB4)) {
7649 /* syntax/mmbuilder.nit:1029 */
7650 fra.me.REG[12] = CALL_parser___parser_nodes___ATypePropdef___n_type(fra.me.REG[0])(fra.me.REG[0]);
7651 fra.me.REG[11] = fra.me.REG[12];
7652 }
7653 }
7654 }
7655 /* syntax/mmbuilder.nit:1031 */
7656 REGB4 = TAG_Int(7);
7657 fra.me.REG[12] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
7658 if (!once_value_51) {
7659 fra.me.REG[13] = BOX_NativeString("Redef error: Expected ");
7660 REGB4 = TAG_Int(22);
7661 fra.me.REG[13] = NEW_String_standard___string___String___with_native(fra.me.REG[13], REGB4);
7662 once_value_51 = fra.me.REG[13];
7663 register_static_object(&once_value_51);
7664 } else fra.me.REG[13] = once_value_51;
7665 fra.me.REG[13] = fra.me.REG[13];
7666 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
7667 fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
7668 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
7669 if (!once_value_52) {
7670 fra.me.REG[13] = BOX_NativeString(", as in ");
7671 REGB4 = TAG_Int(8);
7672 fra.me.REG[13] = NEW_String_standard___string___String___with_native(fra.me.REG[13], REGB4);
7673 once_value_52 = fra.me.REG[13];
7674 register_static_object(&once_value_52);
7675 } else fra.me.REG[13] = once_value_52;
7676 fra.me.REG[13] = fra.me.REG[13];
7677 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
7678 fra.me.REG[13] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7679 fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[13])(fra.me.REG[13]);
7680 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
7681 if (!once_value_53) {
7682 fra.me.REG[13] = BOX_NativeString("::");
7683 REGB4 = TAG_Int(2);
7684 fra.me.REG[13] = NEW_String_standard___string___String___with_native(fra.me.REG[13], REGB4);
7685 once_value_53 = fra.me.REG[13];
7686 register_static_object(&once_value_53);
7687 } else fra.me.REG[13] = once_value_53;
7688 fra.me.REG[13] = fra.me.REG[13];
7689 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
7690 fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7691 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
7692 if (!once_value_54) {
7693 fra.me.REG[13] = BOX_NativeString(".");
7694 REGB4 = TAG_Int(1);
7695 fra.me.REG[13] = NEW_String_standard___string___String___with_native(fra.me.REG[13], REGB4);
7696 once_value_54 = fra.me.REG[13];
7697 register_static_object(&once_value_54);
7698 } else fra.me.REG[13] = once_value_54;
7699 fra.me.REG[13] = fra.me.REG[13];
7700 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
7701 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7702 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[11], fra.me.REG[12]);
7703 } else {
7704 /* syntax/mmbuilder.nit:1032 */
7705 REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7706 if (UNTAG_Bool(REGB4)) {
7707 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1032);
7708 }
7709 REGB4 = CALL_metamodel___static_type___MMSignature_____l(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
7710 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7711 if (UNTAG_Bool(REGB4)) {
7712 fra.me.REG[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
7713 REGB4 = CALL_toolcontext___ToolContext___error_count(fra.me.REG[7])(fra.me.REG[7]);
7714 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB4));
7715 if (UNTAG_Bool(REGB3)) {
7716 } else {
7717 /* ../lib/standard/kernel.nit:230 */
7718 REGB4 = TAG_Bool((REGB0)==(REGB4));
7719 /* syntax/mmbuilder.nit:1032 */
7720 REGB3 = REGB4;
7721 }
7722 } else {
7723 REGB4 = TAG_Bool(0);
7724 REGB3 = REGB4;
7725 }
7726 if (UNTAG_Bool(REGB3)) {
7727 /* syntax/mmbuilder.nit:1034 */
7728 REGB3 = TAG_Int(9);
7729 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
7730 if (!once_value_55) {
7731 fra.me.REG[12] = BOX_NativeString("Redef error: Incompatible redefinition of ");
7732 REGB3 = TAG_Int(42);
7733 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB3);
7734 once_value_55 = fra.me.REG[12];
7735 register_static_object(&once_value_55);
7736 } else fra.me.REG[12] = once_value_55;
7737 fra.me.REG[12] = fra.me.REG[12];
7738 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7739 fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7740 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7741 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7742 if (!once_value_56) {
7743 fra.me.REG[12] = BOX_NativeString("::");
7744 REGB3 = TAG_Int(2);
7745 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB3);
7746 once_value_56 = fra.me.REG[12];
7747 register_static_object(&once_value_56);
7748 } else fra.me.REG[12] = once_value_56;
7749 fra.me.REG[12] = fra.me.REG[12];
7750 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7751 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7752 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7753 if (!once_value_57) {
7754 fra.me.REG[12] = BOX_NativeString(" with ");
7755 REGB3 = TAG_Int(6);
7756 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB3);
7757 once_value_57 = fra.me.REG[12];
7758 register_static_object(&once_value_57);
7759 } else fra.me.REG[12] = once_value_57;
7760 fra.me.REG[12] = fra.me.REG[12];
7761 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7762 fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
7763 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7764 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7765 if (!once_value_58) {
7766 fra.me.REG[12] = BOX_NativeString("::");
7767 REGB3 = TAG_Int(2);
7768 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB3);
7769 once_value_58 = fra.me.REG[12];
7770 register_static_object(&once_value_58);
7771 } else fra.me.REG[12] = once_value_58;
7772 fra.me.REG[12] = fra.me.REG[12];
7773 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7774 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
7775 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7776 if (!once_value_59) {
7777 fra.me.REG[12] = BOX_NativeString("");
7778 REGB3 = TAG_Int(0);
7779 fra.me.REG[12] = NEW_String_standard___string___String___with_native(fra.me.REG[12], REGB3);
7780 once_value_59 = fra.me.REG[12];
7781 register_static_object(&once_value_59);
7782 } else fra.me.REG[12] = once_value_59;
7783 fra.me.REG[12] = fra.me.REG[12];
7784 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7785 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
7786 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[7]);
7787 } else {
7788 /* syntax/mmbuilder.nit:1035 */
7789 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7790 if (UNTAG_Bool(REGB3)) {
7791 } else {
7792 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7793 if (UNTAG_Bool(REGB4)) {
7794 REGB4 = TAG_Bool(0);
7795 REGB3 = REGB4;
7796 } else {
7797 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
7798 REGB3 = REGB4;
7799 }
7800 }
7801 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7802 if (UNTAG_Bool(REGB3)) {
7803 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7804 if (UNTAG_Bool(REGB3)) {
7805 } else {
7806 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7807 if (UNTAG_Bool(REGB4)) {
7808 REGB4 = TAG_Bool(0);
7809 REGB3 = REGB4;
7810 } else {
7811 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
7812 REGB3 = REGB4;
7813 }
7814 }
7815 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7816 } else {
7817 REGB4 = TAG_Bool(0);
7818 REGB3 = REGB4;
7819 }
7820 if (UNTAG_Bool(REGB3)) {
7821 REGB3 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[10],fra.me.REG[8]));
7822 if (UNTAG_Bool(REGB3)) {
7823 } else {
7824 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7825 if (UNTAG_Bool(REGB4)) {
7826 REGB4 = TAG_Bool(0);
7827 REGB3 = REGB4;
7828 } else {
7829 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7830 REGB3 = REGB4;
7831 }
7832 }
7833 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7834 } else {
7835 REGB4 = TAG_Bool(0);
7836 REGB3 = REGB4;
7837 }
7838 if (UNTAG_Bool(REGB3)) {
7839 REGB3 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_metamodel___abstractmetamodel___MMAttribute, ID_metamodel___abstractmetamodel___MMAttribute)) /*cast MMAttribute*/;
7840 } else {
7841 REGB4 = TAG_Bool(0);
7842 REGB3 = REGB4;
7843 }
7844 if (UNTAG_Bool(REGB3)) {
7845 /* syntax/mmbuilder.nit:1036 */
7846 REGB3 = TAG_Int(7);
7847 fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
7848 if (!once_value_60) {
7849 fra.me.REG[7] = BOX_NativeString("Redef error: Expected ");
7850 REGB3 = TAG_Int(22);
7851 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB3);
7852 once_value_60 = fra.me.REG[7];
7853 register_static_object(&once_value_60);
7854 } else fra.me.REG[7] = once_value_60;
7855 fra.me.REG[7] = fra.me.REG[7];
7856 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
7857 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
7858 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7859 if (!once_value_61) {
7860 fra.me.REG[8] = BOX_NativeString(", as in ");
7861 REGB3 = TAG_Int(8);
7862 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
7863 once_value_61 = fra.me.REG[8];
7864 register_static_object(&once_value_61);
7865 } else fra.me.REG[8] = once_value_61;
7866 fra.me.REG[8] = fra.me.REG[8];
7867 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7868 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7869 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
7870 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7871 if (!once_value_62) {
7872 fra.me.REG[8] = BOX_NativeString("::");
7873 REGB3 = TAG_Int(2);
7874 fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB3);
7875 once_value_62 = fra.me.REG[8];
7876 register_static_object(&once_value_62);
7877 } else fra.me.REG[8] = once_value_62;
7878 fra.me.REG[8] = fra.me.REG[8];
7879 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7880 fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7881 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[9]);
7882 if (!once_value_63) {
7883 fra.me.REG[9] = BOX_NativeString(".");
7884 REGB3 = TAG_Int(1);
7885 fra.me.REG[9] = NEW_String_standard___string___String___with_native(fra.me.REG[9], REGB3);
7886 once_value_63 = fra.me.REG[9];
7887 register_static_object(&once_value_63);
7888 } else fra.me.REG[9] = once_value_63;
7889 fra.me.REG[9] = fra.me.REG[9];
7890 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[9]);
7891 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
7892 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[10]);
7893 }
7894 }
7895 }
7896 }
7897 }
7898 /* ../lib/standard/collection/array.nit:274 */
7899 REGB3 = TAG_Int(1);
7900 /* ../lib/standard/kernel.nit:238 */
7901 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
7902 /* ../lib/standard/collection/array.nit:274 */
7903 REGB2 = REGB3;
7904 } else {
7905 /* ../lib/standard/collection/array.nit:272 */
7906 goto label64;
7907 }
7908 }
7909 label64: while(0);
7910 label11: while(0);
7911 /* syntax/mmbuilder.nit:1040 */
7912 REGB2 = TAG_Int(1);
7913 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
7914 if (UNTAG_Bool(REGB3)) {
7915 } else {
7916 /* ../lib/standard/kernel.nit:230 */
7917 REGB2 = TAG_Bool((REGB1)==(REGB2));
7918 /* syntax/mmbuilder.nit:1040 */
7919 REGB3 = REGB2;
7920 }
7921 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7922 if (UNTAG_Bool(REGB3)) {
7923 REGB3 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
7924 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB1));
7925 if (UNTAG_Bool(REGB2)) {
7926 } else {
7927 /* ../lib/standard/kernel.nit:230 */
7928 REGB1 = TAG_Bool((REGB3)==(REGB1));
7929 /* syntax/mmbuilder.nit:1040 */
7930 REGB2 = REGB1;
7931 }
7932 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
7933 } else {
7934 REGB1 = TAG_Bool(0);
7935 REGB2 = REGB1;
7936 }
7937 if (UNTAG_Bool(REGB2)) {
7938 /* syntax/mmbuilder.nit:1041 */
7939 REGB2 = TAG_Int(5);
7940 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
7941 if (!once_value_65) {
7942 fra.me.REG[6] = BOX_NativeString("Redef error: ");
7943 REGB2 = TAG_Int(13);
7944 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
7945 once_value_65 = fra.me.REG[6];
7946 register_static_object(&once_value_65);
7947 } else fra.me.REG[6] = once_value_65;
7948 fra.me.REG[6] = fra.me.REG[6];
7949 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
7950 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
7951 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7952 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
7953 if (!once_value_66) {
7954 fra.me.REG[6] = BOX_NativeString("::");
7955 REGB2 = TAG_Int(2);
7956 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
7957 once_value_66 = fra.me.REG[6];
7958 register_static_object(&once_value_66);
7959 } else fra.me.REG[6] = once_value_66;
7960 fra.me.REG[6] = fra.me.REG[6];
7961 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
7962 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
7963 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
7964 if (!once_value_67) {
7965 fra.me.REG[2] = BOX_NativeString(" redefinition cannot change visibility.");
7966 REGB2 = TAG_Int(39);
7967 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB2);
7968 once_value_67 = fra.me.REG[2];
7969 register_static_object(&once_value_67);
7970 } else fra.me.REG[2] = once_value_67;
7971 fra.me.REG[2] = fra.me.REG[2];
7972 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
7973 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
7974 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
7975 }
7976 /* syntax/mmbuilder.nit:1043 */
7977 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
7978 REGB2 = TAG_Bool(1);
7979 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);
7980 label4: while(0);
7981 stack_frame_head = fra.me.prev;
7982 return;
7983 }
7984 static const char LOCATE_syntax___mmbuilder___AAttrPropdef___readmethod[] = "mmbuilder::AAttrPropdef::(syntax_base::AAttrPropdef::readmethod)";
7985 val_t syntax___mmbuilder___AAttrPropdef___readmethod(val_t p0){
7986 struct {struct stack_frame_t me;} fra;
7987 val_t tmp;
7988 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7989 fra.me.file = LOCATE_syntax___mmbuilder;
7990 fra.me.line = 1048;
7991 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___readmethod;
7992 fra.me.has_broke = 0;
7993 fra.me.REG_size = 1;
7994 fra.me.nitni_local_ref_head = NULL;
7995 fra.me.REG[0] = NIT_NULL;
7996 fra.me.REG[0] = p0;
7997 /* syntax/mmbuilder.nit:1048 */
7998 fra.me.REG[0] = ATTR_syntax___mmbuilder___AAttrPropdef____readmethod(fra.me.REG[0]);
7999 stack_frame_head = fra.me.prev;
8000 return fra.me.REG[0];
8001 }
8002 static const char LOCATE_syntax___mmbuilder___AAttrPropdef___writemethod[] = "mmbuilder::AAttrPropdef::(syntax_base::AAttrPropdef::writemethod)";
8003 val_t syntax___mmbuilder___AAttrPropdef___writemethod(val_t p0){
8004 struct {struct stack_frame_t me;} fra;
8005 val_t tmp;
8006 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8007 fra.me.file = LOCATE_syntax___mmbuilder;
8008 fra.me.line = 1049;
8009 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___writemethod;
8010 fra.me.has_broke = 0;
8011 fra.me.REG_size = 1;
8012 fra.me.nitni_local_ref_head = NULL;
8013 fra.me.REG[0] = NIT_NULL;
8014 fra.me.REG[0] = p0;
8015 /* syntax/mmbuilder.nit:1049 */
8016 fra.me.REG[0] = ATTR_syntax___mmbuilder___AAttrPropdef____writemethod(fra.me.REG[0]);
8017 stack_frame_head = fra.me.prev;
8018 return fra.me.REG[0];
8019 }
8020 static const char LOCATE_syntax___mmbuilder___AAttrPropdef___prop[] = "mmbuilder::AAttrPropdef::(syntax_base::AAttrPropdef::prop)";
8021 val_t syntax___mmbuilder___AAttrPropdef___prop(val_t p0){
8022 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8023 val_t REGB0;
8024 val_t tmp;
8025 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8026 fra.me.file = LOCATE_syntax___mmbuilder;
8027 fra.me.line = 1051;
8028 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___prop;
8029 fra.me.has_broke = 0;
8030 fra.me.REG_size = 2;
8031 fra.me.nitni_local_ref_head = NULL;
8032 fra.me.REG[0] = NIT_NULL;
8033 fra.me.REG[1] = NIT_NULL;
8034 fra.me.REG[0] = p0;
8035 /* syntax/mmbuilder.nit:1051 */
8036 fra.me.REG[1] = fra.me.REG[0];
8037 fra.me.REG[1] = ATTR_syntax___mmbuilder___AAttrPropdef____prop(fra.me.REG[1]);
8038 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
8039 if (UNTAG_Bool(REGB0)) {
8040 } else {
8041 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1051);
8042 }
8043 goto label1;
8044 label1: while(0);
8045 stack_frame_head = fra.me.prev;
8046 return fra.me.REG[1];
8047 }
8048 static const char LOCATE_syntax___mmbuilder___AAttrPropdef___accept_property_builder[] = "mmbuilder::AAttrPropdef::(mmbuilder::ANode::accept_property_builder)";
8049 void syntax___mmbuilder___AAttrPropdef___accept_property_builder(val_t p0, val_t p1){
8050 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
8051 val_t REGB0;
8052 val_t REGB1;
8053 val_t REGB2;
8054 val_t tmp;
8055 static val_t once_value_1; /* Once value */
8056 static val_t once_value_2; /* Once value */
8057 static val_t once_value_3; /* Once value */
8058 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8059 fra.me.file = LOCATE_syntax___mmbuilder;
8060 fra.me.line = 1053;
8061 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___accept_property_builder;
8062 fra.me.has_broke = 0;
8063 fra.me.REG_size = 6;
8064 fra.me.nitni_local_ref_head = NULL;
8065 fra.me.REG[0] = NIT_NULL;
8066 fra.me.REG[1] = NIT_NULL;
8067 fra.me.REG[2] = NIT_NULL;
8068 fra.me.REG[3] = NIT_NULL;
8069 fra.me.REG[4] = NIT_NULL;
8070 fra.me.REG[5] = NIT_NULL;
8071 fra.me.REG[0] = p0;
8072 fra.me.REG[1] = p1;
8073 /* syntax/mmbuilder.nit:1053 */
8074 fra.me.REG[2] = fra.me.REG[0];
8075 fra.me.REG[3] = fra.me.REG[1];
8076 /* syntax/mmbuilder.nit:1055 */
8077 CALL_SUPER_syntax___mmbuilder___AAttrPropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8078 /* syntax/mmbuilder.nit:1057 */
8079 fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8080 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8081 if (UNTAG_Bool(REGB0)) {
8082 } else {
8083 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8084 if (UNTAG_Bool(REGB1)) {
8085 REGB1 = TAG_Bool(0);
8086 REGB0 = REGB1;
8087 } else {
8088 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8089 REGB0 = REGB1;
8090 }
8091 }
8092 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8093 if (UNTAG_Bool(REGB0)) {
8094 /* syntax/mmbuilder.nit:1058 */
8095 fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8096 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8097 if (UNTAG_Bool(REGB0)) {
8098 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1058);
8099 }
8100 fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
8101 } else {
8102 /* syntax/mmbuilder.nit:1060 */
8103 if (!once_value_1) {
8104 fra.me.REG[0] = BOX_NativeString("@");
8105 REGB0 = TAG_Int(1);
8106 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
8107 once_value_1 = fra.me.REG[0];
8108 register_static_object(&once_value_1);
8109 } else fra.me.REG[0] = once_value_1;
8110 fra.me.REG[0] = fra.me.REG[0];
8111 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
8112 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8113 if (UNTAG_Bool(REGB0)) {
8114 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1060);
8115 }
8116 fra.me.REG[4] = CALL_parser___parser_nodes___Token___text(fra.me.REG[4])(fra.me.REG[4]);
8117 fra.me.REG[4] = CALL_standard___string___String_____plus(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
8118 fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
8119 fra.me.REG[1] = fra.me.REG[4];
8120 }
8121 /* syntax/mmbuilder.nit:1062 */
8122 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8123 /* syntax/mmbuilder.nit:1063 */
8124 fra.me.REG[0] = NEW_MMSrcAttribute_syntax___syntax_base___MMSrcAttribute___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
8125 /* syntax/mmbuilder.nit:1064 */
8126 ATTR_syntax___mmbuilder___AAttrPropdef____prop(fra.me.REG[2]) = fra.me.REG[0];
8127 /* syntax/mmbuilder.nit:1065 */
8128 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8129 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[0]);
8130 /* syntax/mmbuilder.nit:1067 */
8131 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
8132 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8133 if (UNTAG_Bool(REGB0)) {
8134 } else {
8135 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8136 if (UNTAG_Bool(REGB1)) {
8137 REGB1 = TAG_Bool(0);
8138 REGB0 = REGB1;
8139 } else {
8140 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8141 REGB0 = REGB1;
8142 }
8143 }
8144 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8145 if (UNTAG_Bool(REGB0)) {
8146 REGB0 = TAG_Bool(1);
8147 } else {
8148 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8149 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8150 if (UNTAG_Bool(REGB1)) {
8151 } else {
8152 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8153 if (UNTAG_Bool(REGB2)) {
8154 REGB2 = TAG_Bool(0);
8155 REGB1 = REGB2;
8156 } else {
8157 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8158 REGB1 = REGB2;
8159 }
8160 }
8161 REGB0 = REGB1;
8162 }
8163 if (UNTAG_Bool(REGB0)) {
8164 /* syntax/mmbuilder.nit:1068 */
8165 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8166 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8167 if (UNTAG_Bool(REGB0)) {
8168 } else {
8169 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8170 if (UNTAG_Bool(REGB1)) {
8171 REGB1 = TAG_Bool(0);
8172 REGB0 = REGB1;
8173 } else {
8174 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8175 REGB0 = REGB1;
8176 }
8177 }
8178 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8179 if (UNTAG_Bool(REGB0)) {
8180 /* syntax/mmbuilder.nit:1069 */
8181 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8182 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8183 if (UNTAG_Bool(REGB0)) {
8184 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1069);
8185 }
8186 fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
8187 REGB0 = TAG_Int(1);
8188 fra.me.REG[0] = CALL_standard___string___AbstractString___substring_from(fra.me.REG[0])(fra.me.REG[0], REGB0);
8189 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
8190 fra.me.REG[1] = fra.me.REG[0];
8191 } else {
8192 /* syntax/mmbuilder.nit:1071 */
8193 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
8194 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8195 if (UNTAG_Bool(REGB0)) {
8196 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1071);
8197 }
8198 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
8199 fra.me.REG[1] = fra.me.REG[0];
8200 }
8201 /* syntax/mmbuilder.nit:1073 */
8202 fra.me.REG[0] = NEW_MMReadImplementationMethod_syntax___syntax_base___MMReadImplementationMethod___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
8203 /* syntax/mmbuilder.nit:1074 */
8204 ATTR_syntax___mmbuilder___AAttrPropdef____readmethod(fra.me.REG[2]) = fra.me.REG[0];
8205 /* syntax/mmbuilder.nit:1075 */
8206 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8207 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[0]);
8208 }
8209 /* syntax/mmbuilder.nit:1077 */
8210 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8211 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8212 if (UNTAG_Bool(REGB0)) {
8213 } else {
8214 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8215 if (UNTAG_Bool(REGB1)) {
8216 REGB1 = TAG_Bool(0);
8217 REGB0 = REGB1;
8218 } else {
8219 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8220 REGB0 = REGB1;
8221 }
8222 }
8223 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8224 if (UNTAG_Bool(REGB0)) {
8225 REGB0 = TAG_Bool(1);
8226 } else {
8227 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8228 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8229 if (UNTAG_Bool(REGB1)) {
8230 } else {
8231 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8232 if (UNTAG_Bool(REGB2)) {
8233 REGB2 = TAG_Bool(0);
8234 REGB1 = REGB2;
8235 } else {
8236 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8237 REGB1 = REGB2;
8238 }
8239 }
8240 REGB0 = REGB1;
8241 }
8242 if (UNTAG_Bool(REGB0)) {
8243 /* syntax/mmbuilder.nit:1078 */
8244 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8245 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8246 if (UNTAG_Bool(REGB0)) {
8247 } else {
8248 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8249 if (UNTAG_Bool(REGB1)) {
8250 REGB1 = TAG_Bool(0);
8251 REGB0 = REGB1;
8252 } else {
8253 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8254 REGB0 = REGB1;
8255 }
8256 }
8257 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8258 if (UNTAG_Bool(REGB0)) {
8259 /* syntax/mmbuilder.nit:1079 */
8260 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8261 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8262 if (UNTAG_Bool(REGB0)) {
8263 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1079);
8264 }
8265 fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
8266 REGB0 = TAG_Int(1);
8267 fra.me.REG[0] = CALL_standard___string___AbstractString___substring_from(fra.me.REG[0])(fra.me.REG[0], REGB0);
8268 if (!once_value_2) {
8269 fra.me.REG[5] = BOX_NativeString("=");
8270 REGB0 = TAG_Int(1);
8271 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
8272 once_value_2 = fra.me.REG[5];
8273 register_static_object(&once_value_2);
8274 } else fra.me.REG[5] = once_value_2;
8275 fra.me.REG[5] = fra.me.REG[5];
8276 fra.me.REG[5] = CALL_standard___string___String_____plus(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
8277 fra.me.REG[5] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
8278 fra.me.REG[1] = fra.me.REG[5];
8279 } else {
8280 /* syntax/mmbuilder.nit:1081 */
8281 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
8282 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8283 if (UNTAG_Bool(REGB0)) {
8284 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1081);
8285 }
8286 fra.me.REG[5] = CALL_parser___parser_nodes___Token___text(fra.me.REG[5])(fra.me.REG[5]);
8287 if (!once_value_3) {
8288 fra.me.REG[0] = BOX_NativeString("=");
8289 REGB0 = TAG_Int(1);
8290 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
8291 once_value_3 = fra.me.REG[0];
8292 register_static_object(&once_value_3);
8293 } else fra.me.REG[0] = once_value_3;
8294 fra.me.REG[0] = fra.me.REG[0];
8295 fra.me.REG[0] = CALL_standard___string___String_____plus(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
8296 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
8297 fra.me.REG[1] = fra.me.REG[0];
8298 }
8299 /* syntax/mmbuilder.nit:1083 */
8300 fra.me.REG[4] = NEW_MMWriteImplementationMethod_syntax___syntax_base___MMWriteImplementationMethod___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
8301 /* syntax/mmbuilder.nit:1084 */
8302 ATTR_syntax___mmbuilder___AAttrPropdef____writemethod(fra.me.REG[2]) = fra.me.REG[4];
8303 /* syntax/mmbuilder.nit:1085 */
8304 fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8305 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
8306 }
8307 stack_frame_head = fra.me.prev;
8308 return;
8309 }
8310 static const char LOCATE_syntax___mmbuilder___AAttrPropdef___accept_property_verifier[] = "mmbuilder::AAttrPropdef::(mmbuilder::ANode::accept_property_verifier)";
8311 void syntax___mmbuilder___AAttrPropdef___accept_property_verifier(val_t p0, val_t p1){
8312 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
8313 val_t REGB0;
8314 val_t REGB1;
8315 val_t REGB2;
8316 val_t REGB3;
8317 val_t tmp;
8318 static val_t once_value_2; /* Once value */
8319 static val_t once_value_3; /* Once value */
8320 static val_t once_value_4; /* Once value */
8321 static val_t once_value_5; /* Once value */
8322 static val_t once_value_6; /* Once value */
8323 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8324 fra.me.file = LOCATE_syntax___mmbuilder;
8325 fra.me.line = 1089;
8326 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___accept_property_verifier;
8327 fra.me.has_broke = 0;
8328 fra.me.REG_size = 7;
8329 fra.me.nitni_local_ref_head = NULL;
8330 fra.me.REG[0] = NIT_NULL;
8331 fra.me.REG[1] = NIT_NULL;
8332 fra.me.REG[2] = NIT_NULL;
8333 fra.me.REG[3] = NIT_NULL;
8334 fra.me.REG[4] = NIT_NULL;
8335 fra.me.REG[5] = NIT_NULL;
8336 fra.me.REG[6] = NIT_NULL;
8337 fra.me.REG[0] = p0;
8338 fra.me.REG[1] = p1;
8339 /* syntax/mmbuilder.nit:1089 */
8340 fra.me.REG[2] = fra.me.REG[0];
8341 fra.me.REG[3] = fra.me.REG[1];
8342 /* syntax/mmbuilder.nit:1091 */
8343 CALL_SUPER_syntax___mmbuilder___AAttrPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8344 /* syntax/mmbuilder.nit:1092 */
8345 fra.me.REG[1] = NIT_NULL;
8346 /* syntax/mmbuilder.nit:1093 */
8347 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8348 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8349 if (UNTAG_Bool(REGB0)) {
8350 } else {
8351 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8352 if (UNTAG_Bool(REGB1)) {
8353 REGB1 = TAG_Bool(0);
8354 REGB0 = REGB1;
8355 } else {
8356 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8357 REGB0 = REGB1;
8358 }
8359 }
8360 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8361 if (UNTAG_Bool(REGB0)) {
8362 /* syntax/mmbuilder.nit:1094 */
8363 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8364 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8365 if (UNTAG_Bool(REGB0)) {
8366 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1094);
8367 }
8368 fra.me.REG[4] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
8369 /* syntax/mmbuilder.nit:1095 */
8370 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8371 if (UNTAG_Bool(REGB0)) {
8372 } else {
8373 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8374 if (UNTAG_Bool(REGB1)) {
8375 REGB1 = TAG_Bool(0);
8376 REGB0 = REGB1;
8377 } else {
8378 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8379 REGB0 = REGB1;
8380 }
8381 }
8382 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8383 if (UNTAG_Bool(REGB0)) {
8384 fra.me.REG[1] = fra.me.REG[4];
8385 } else {
8386 goto label1;
8387 }
8388 } else {
8389 /* syntax/mmbuilder.nit:1096 */
8390 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra.me.REG[2])(fra.me.REG[2]);
8391 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8392 if (UNTAG_Bool(REGB0)) {
8393 } else {
8394 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8395 if (UNTAG_Bool(REGB1)) {
8396 REGB1 = TAG_Bool(0);
8397 REGB0 = REGB1;
8398 } else {
8399 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8400 REGB0 = REGB1;
8401 }
8402 }
8403 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8404 if (UNTAG_Bool(REGB0)) {
8405 /* syntax/mmbuilder.nit:1097 */
8406 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra.me.REG[2])(fra.me.REG[2]);
8407 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8408 if (UNTAG_Bool(REGB0)) {
8409 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1097);
8410 }
8411 fra.me.REG[4] = CALL_syntax___mmbuilder___AExpr___get_easy_stype(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
8412 fra.me.REG[1] = fra.me.REG[4];
8413 }
8414 }
8415 /* syntax/mmbuilder.nit:1100 */
8416 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8417 if (UNTAG_Bool(REGB0)) {
8418 } else {
8419 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8420 if (UNTAG_Bool(REGB1)) {
8421 REGB1 = TAG_Bool(0);
8422 REGB0 = REGB1;
8423 } else {
8424 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8425 REGB0 = REGB1;
8426 }
8427 }
8428 if (UNTAG_Bool(REGB0)) {
8429 /* syntax/mmbuilder.nit:1101 */
8430 REGB0 = TAG_Int(5);
8431 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
8432 if (!once_value_2) {
8433 fra.me.REG[5] = BOX_NativeString("Not yet implemented: Attribute definition ");
8434 REGB0 = TAG_Int(42);
8435 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
8436 once_value_2 = fra.me.REG[5];
8437 register_static_object(&once_value_2);
8438 } else fra.me.REG[5] = once_value_2;
8439 fra.me.REG[5] = fra.me.REG[5];
8440 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
8441 fra.me.REG[5] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
8442 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[5])(fra.me.REG[5]);
8443 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
8444 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
8445 if (!once_value_3) {
8446 fra.me.REG[5] = BOX_NativeString("::");
8447 REGB0 = TAG_Int(2);
8448 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
8449 once_value_3 = fra.me.REG[5];
8450 register_static_object(&once_value_3);
8451 } else fra.me.REG[5] = once_value_3;
8452 fra.me.REG[5] = fra.me.REG[5];
8453 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
8454 fra.me.REG[5] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
8455 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
8456 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
8457 if (!once_value_4) {
8458 fra.me.REG[5] = BOX_NativeString(" requires an explicit type.");
8459 REGB0 = TAG_Int(27);
8460 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
8461 once_value_4 = fra.me.REG[5];
8462 register_static_object(&once_value_4);
8463 } else fra.me.REG[5] = once_value_4;
8464 fra.me.REG[5] = fra.me.REG[5];
8465 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
8466 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
8467 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]);
8468 /* syntax/mmbuilder.nit:1102 */
8469 goto label1;
8470 }
8471 /* syntax/mmbuilder.nit:1105 */
8472 fra.me.REG[4] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
8473 /* syntax/mmbuilder.nit:1106 */
8474 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
8475 fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8476 fra.me.REG[6] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[6])(fra.me.REG[6]);
8477 fra.me.REG[6] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[5], fra.me.REG[1], fra.me.REG[6]);
8478 /* syntax/mmbuilder.nit:1107 */
8479 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
8480 /* syntax/mmbuilder.nit:1108 */
8481 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
8482 REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[5])(fra.me.REG[5]);
8483 /* syntax/mmbuilder.nit:1109 */
8484 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8485 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8486 if (UNTAG_Bool(REGB1)) {
8487 } else {
8488 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8489 if (UNTAG_Bool(REGB2)) {
8490 REGB2 = TAG_Bool(0);
8491 REGB1 = REGB2;
8492 } else {
8493 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
8494 REGB1 = REGB2;
8495 }
8496 }
8497 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8498 if (UNTAG_Bool(REGB1)) {
8499 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
8500 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8501 if (UNTAG_Bool(REGB1)) {
8502 } else {
8503 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8504 if (UNTAG_Bool(REGB2)) {
8505 REGB2 = TAG_Bool(0);
8506 REGB1 = REGB2;
8507 } else {
8508 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
8509 REGB1 = REGB2;
8510 }
8511 }
8512 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8513 } else {
8514 REGB2 = TAG_Bool(0);
8515 REGB1 = REGB2;
8516 }
8517 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);
8518 /* syntax/mmbuilder.nit:1110 */
8519 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
8520 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8521 if (UNTAG_Bool(REGB1)) {
8522 } else {
8523 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8524 if (UNTAG_Bool(REGB2)) {
8525 REGB2 = TAG_Bool(0);
8526 REGB1 = REGB2;
8527 } else {
8528 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8529 REGB1 = REGB2;
8530 }
8531 }
8532 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8533 if (UNTAG_Bool(REGB1)) {
8534 REGB1 = TAG_Bool(1);
8535 } else {
8536 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8537 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8538 if (UNTAG_Bool(REGB2)) {
8539 } else {
8540 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8541 if (UNTAG_Bool(REGB3)) {
8542 REGB3 = TAG_Bool(0);
8543 REGB2 = REGB3;
8544 } else {
8545 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8546 REGB2 = REGB3;
8547 }
8548 }
8549 REGB1 = REGB2;
8550 }
8551 if (UNTAG_Bool(REGB1)) {
8552 /* syntax/mmbuilder.nit:1111 */
8553 fra.me.REG[4] = ATTR_syntax___mmbuilder___AAttrPropdef____readmethod(fra.me.REG[2]);
8554 REGB1 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8555 if (UNTAG_Bool(REGB1)) {
8556 } else {
8557 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1111);
8558 }
8559 /* syntax/mmbuilder.nit:1112 */
8560 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
8561 /* syntax/mmbuilder.nit:1113 */
8562 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
8563 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8564 if (UNTAG_Bool(REGB1)) {
8565 } else {
8566 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8567 if (UNTAG_Bool(REGB2)) {
8568 REGB2 = TAG_Bool(0);
8569 REGB1 = REGB2;
8570 } else {
8571 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8572 REGB1 = REGB2;
8573 }
8574 }
8575 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8576 if (UNTAG_Bool(REGB1)) {
8577 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
8578 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8579 if (UNTAG_Bool(REGB1)) {
8580 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1113);
8581 }
8582 fra.me.REG[6] = CALL_parser___parser_nodes___AAble___n_kwredef(fra.me.REG[6])(fra.me.REG[6]);
8583 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8584 if (UNTAG_Bool(REGB1)) {
8585 } else {
8586 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8587 if (UNTAG_Bool(REGB2)) {
8588 REGB2 = TAG_Bool(0);
8589 REGB1 = REGB2;
8590 } else {
8591 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8592 REGB1 = REGB2;
8593 }
8594 }
8595 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8596 } else {
8597 REGB2 = TAG_Bool(0);
8598 REGB1 = REGB2;
8599 }
8600 if (UNTAG_Bool(REGB1)) {
8601 REGB1 = TAG_Bool(1);
8602 } else {
8603 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8604 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8605 if (UNTAG_Bool(REGB2)) {
8606 } else {
8607 REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8608 if (UNTAG_Bool(REGB3)) {
8609 REGB3 = TAG_Bool(0);
8610 REGB2 = REGB3;
8611 } else {
8612 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8613 REGB2 = REGB3;
8614 }
8615 }
8616 if (UNTAG_Bool(REGB2)) {
8617 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
8618 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8619 if (UNTAG_Bool(REGB2)) {
8620 } else {
8621 REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8622 if (UNTAG_Bool(REGB3)) {
8623 REGB3 = TAG_Bool(0);
8624 REGB2 = REGB3;
8625 } else {
8626 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8627 REGB2 = REGB3;
8628 }
8629 }
8630 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
8631 } else {
8632 REGB3 = TAG_Bool(0);
8633 REGB2 = REGB3;
8634 }
8635 REGB1 = REGB2;
8636 }
8637 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);
8638 /* syntax/mmbuilder.nit:1114 */
8639 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_type(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(0);
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 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8653 if (UNTAG_Bool(REGB1)) {
8654 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8655 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8656 if (UNTAG_Bool(REGB1)) {
8657 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1114);
8658 }
8659 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3], fra.me.REG[4]);
8660 }
8661 }
8662 /* syntax/mmbuilder.nit:1116 */
8663 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8664 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8665 if (UNTAG_Bool(REGB1)) {
8666 } else {
8667 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8668 if (UNTAG_Bool(REGB2)) {
8669 REGB2 = TAG_Bool(0);
8670 REGB1 = REGB2;
8671 } else {
8672 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8673 REGB1 = REGB2;
8674 }
8675 }
8676 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8677 if (UNTAG_Bool(REGB1)) {
8678 REGB1 = TAG_Bool(1);
8679 } else {
8680 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8681 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8682 if (UNTAG_Bool(REGB2)) {
8683 } else {
8684 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8685 if (UNTAG_Bool(REGB3)) {
8686 REGB3 = TAG_Bool(0);
8687 REGB2 = REGB3;
8688 } else {
8689 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8690 REGB2 = REGB3;
8691 }
8692 }
8693 REGB1 = REGB2;
8694 }
8695 if (UNTAG_Bool(REGB1)) {
8696 /* syntax/mmbuilder.nit:1117 */
8697 fra.me.REG[4] = ATTR_syntax___mmbuilder___AAttrPropdef____writemethod(fra.me.REG[2]);
8698 REGB1 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8699 if (UNTAG_Bool(REGB1)) {
8700 } else {
8701 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1117);
8702 }
8703 /* syntax/mmbuilder.nit:1118 */
8704 REGB1 = TAG_Int(0);
8705 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8706 if (!once_value_5) {
8707 if (!once_value_6) {
8708 fra.me.REG[6] = BOX_NativeString("value");
8709 REGB1 = TAG_Int(5);
8710 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
8711 once_value_6 = fra.me.REG[6];
8712 register_static_object(&once_value_6);
8713 } else fra.me.REG[6] = once_value_6;
8714 fra.me.REG[6] = fra.me.REG[6];
8715 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8716 once_value_5 = fra.me.REG[6];
8717 register_static_object(&once_value_5);
8718 } else fra.me.REG[6] = once_value_5;
8719 fra.me.REG[6] = fra.me.REG[6];
8720 fra.me.REG[6] = NEW_MMParam_metamodel___static_type___MMParam___init(fra.me.REG[1], fra.me.REG[6]);
8721 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
8722 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_items(fra.me.REG[0]);
8723 fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8724 fra.me.REG[6] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[6])(fra.me.REG[6]);
8725 fra.me.REG[6] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[6]);
8726 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
8727 /* syntax/mmbuilder.nit:1120 */
8728 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8729 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8730 if (UNTAG_Bool(REGB1)) {
8731 } else {
8732 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8733 if (UNTAG_Bool(REGB2)) {
8734 REGB2 = TAG_Bool(0);
8735 REGB1 = REGB2;
8736 } else {
8737 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8738 REGB1 = REGB2;
8739 }
8740 }
8741 if (UNTAG_Bool(REGB1)) {
8742 /* syntax/mmbuilder.nit:1121 */
8743 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8744 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8745 if (UNTAG_Bool(REGB1)) {
8746 } else {
8747 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8748 if (UNTAG_Bool(REGB2)) {
8749 REGB2 = TAG_Bool(0);
8750 REGB1 = REGB2;
8751 } else {
8752 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8753 REGB1 = REGB2;
8754 }
8755 }
8756 if (UNTAG_Bool(REGB1)) {
8757 REGB1 = TAG_Int(3);
8758 REGB0 = REGB1;
8759 } else {
8760 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8761 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8762 if (UNTAG_Bool(REGB1)) {
8763 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1121);
8764 }
8765 fra.me.REG[6] = CALL_parser___parser_nodes___AAble___n_visibility(fra.me.REG[6])(fra.me.REG[6]);
8766 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8767 if (UNTAG_Bool(REGB1)) {
8768 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1121);
8769 }
8770 REGB1 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[6])(fra.me.REG[6]);
8771 REGB0 = REGB1;
8772 }
8773 }
8774 /* syntax/mmbuilder.nit:1123 */
8775 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8776 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8777 if (UNTAG_Bool(REGB1)) {
8778 } else {
8779 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8780 if (UNTAG_Bool(REGB2)) {
8781 REGB2 = TAG_Bool(0);
8782 REGB1 = REGB2;
8783 } else {
8784 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8785 REGB1 = REGB2;
8786 }
8787 }
8788 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8789 if (UNTAG_Bool(REGB1)) {
8790 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8791 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8792 if (UNTAG_Bool(REGB1)) {
8793 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1123);
8794 }
8795 fra.me.REG[6] = CALL_parser___parser_nodes___AAble___n_kwredef(fra.me.REG[6])(fra.me.REG[6]);
8796 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8797 if (UNTAG_Bool(REGB1)) {
8798 } else {
8799 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8800 if (UNTAG_Bool(REGB2)) {
8801 REGB2 = TAG_Bool(0);
8802 REGB1 = REGB2;
8803 } else {
8804 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8805 REGB1 = REGB2;
8806 }
8807 }
8808 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8809 } else {
8810 REGB2 = TAG_Bool(0);
8811 REGB1 = REGB2;
8812 }
8813 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);
8814 /* syntax/mmbuilder.nit:1124 */
8815 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8816 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8817 if (UNTAG_Bool(REGB0)) {
8818 } else {
8819 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8820 if (UNTAG_Bool(REGB1)) {
8821 REGB1 = TAG_Bool(0);
8822 REGB0 = REGB1;
8823 } else {
8824 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8825 REGB0 = REGB1;
8826 }
8827 }
8828 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8829 if (UNTAG_Bool(REGB0)) {
8830 fra.me.REG[2] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8831 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8832 if (UNTAG_Bool(REGB0)) {
8833 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1124);
8834 }
8835 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
8836 }
8837 }
8838 label1: while(0);
8839 stack_frame_head = fra.me.prev;
8840 return;
8841 }
8842 static const char LOCATE_syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor[] = "mmbuilder::AAttrPropdef::(syntax_base::ANode::accept_abs_syntax_visitor)";
8843 void syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
8844 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8845 val_t tmp;
8846 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8847 fra.me.file = LOCATE_syntax___mmbuilder;
8848 fra.me.line = 1128;
8849 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor;
8850 fra.me.has_broke = 0;
8851 fra.me.REG_size = 4;
8852 fra.me.nitni_local_ref_head = NULL;
8853 fra.me.REG[0] = NIT_NULL;
8854 fra.me.REG[1] = NIT_NULL;
8855 fra.me.REG[2] = NIT_NULL;
8856 fra.me.REG[3] = NIT_NULL;
8857 fra.me.REG[0] = p0;
8858 fra.me.REG[1] = p1;
8859 /* syntax/mmbuilder.nit:1128 */
8860 fra.me.REG[2] = fra.me.REG[0];
8861 fra.me.REG[3] = fra.me.REG[1];
8862 /* syntax/mmbuilder.nit:1130 */
8863 fra.me.REG[2] = ATTR_syntax___mmbuilder___AAttrPropdef____prop(fra.me.REG[2]);
8864 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
8865 /* syntax/mmbuilder.nit:1131 */
8866 CALL_SUPER_syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8867 /* syntax/mmbuilder.nit:1132 */
8868 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8869 stack_frame_head = fra.me.prev;
8870 return;
8871 }
8872 static const char LOCATE_syntax___mmbuilder___AMethPropdef___name[] = "mmbuilder::AMethPropdef::name";
8873 val_t syntax___mmbuilder___AMethPropdef___name(val_t p0){
8874 struct {struct stack_frame_t me;} fra;
8875 val_t tmp;
8876 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8877 fra.me.file = LOCATE_syntax___mmbuilder;
8878 fra.me.line = 1137;
8879 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___name;
8880 fra.me.has_broke = 0;
8881 fra.me.REG_size = 1;
8882 fra.me.nitni_local_ref_head = NULL;
8883 fra.me.REG[0] = NIT_NULL;
8884 fra.me.REG[0] = p0;
8885 /* syntax/mmbuilder.nit:1137 */
8886 fra.me.REG[0] = ATTR_syntax___mmbuilder___AMethPropdef____name(fra.me.REG[0]);
8887 stack_frame_head = fra.me.prev;
8888 return fra.me.REG[0];
8889 }
8890 static const char LOCATE_syntax___mmbuilder___AMethPropdef___method[] = "mmbuilder::AMethPropdef::(syntax_base::AMethPropdef::method)";
8891 val_t syntax___mmbuilder___AMethPropdef___method(val_t p0){
8892 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8893 val_t REGB0;
8894 val_t tmp;
8895 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8896 fra.me.file = LOCATE_syntax___mmbuilder;
8897 fra.me.line = 1141;
8898 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___method;
8899 fra.me.has_broke = 0;
8900 fra.me.REG_size = 2;
8901 fra.me.nitni_local_ref_head = NULL;
8902 fra.me.REG[0] = NIT_NULL;
8903 fra.me.REG[1] = NIT_NULL;
8904 fra.me.REG[0] = p0;
8905 /* syntax/mmbuilder.nit:1141 */
8906 fra.me.REG[1] = fra.me.REG[0];
8907 fra.me.REG[1] = ATTR_syntax___mmbuilder___AMethPropdef____method(fra.me.REG[1]);
8908 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
8909 if (UNTAG_Bool(REGB0)) {
8910 } else {
8911 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1141);
8912 }
8913 goto label1;
8914 label1: while(0);
8915 stack_frame_head = fra.me.prev;
8916 return fra.me.REG[1];
8917 }
8918 static const char LOCATE_syntax___mmbuilder___AMethPropdef___accept_property_builder[] = "mmbuilder::AMethPropdef::(mmbuilder::ANode::accept_property_builder)";
8919 void syntax___mmbuilder___AMethPropdef___accept_property_builder(val_t p0, val_t p1){
8920 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
8921 val_t REGB0;
8922 val_t REGB1;
8923 val_t REGB2;
8924 val_t tmp;
8925 static val_t once_value_1; /* Once value */
8926 static val_t once_value_2; /* Once value */
8927 static val_t once_value_3; /* Once value */
8928 static val_t once_value_4; /* Once value */
8929 static val_t once_value_5; /* Once value */
8930 static val_t once_value_6; /* Once value */
8931 static val_t once_value_7; /* Once value */
8932 static val_t once_value_8; /* Once value */
8933 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8934 fra.me.file = LOCATE_syntax___mmbuilder;
8935 fra.me.line = 1143;
8936 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___accept_property_builder;
8937 fra.me.has_broke = 0;
8938 fra.me.REG_size = 5;
8939 fra.me.nitni_local_ref_head = NULL;
8940 fra.me.REG[0] = NIT_NULL;
8941 fra.me.REG[1] = NIT_NULL;
8942 fra.me.REG[2] = NIT_NULL;
8943 fra.me.REG[3] = NIT_NULL;
8944 fra.me.REG[4] = NIT_NULL;
8945 fra.me.REG[0] = p0;
8946 fra.me.REG[1] = p1;
8947 /* syntax/mmbuilder.nit:1143 */
8948 fra.me.REG[2] = fra.me.REG[0];
8949 fra.me.REG[3] = fra.me.REG[1];
8950 /* syntax/mmbuilder.nit:1145 */
8951 CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8952 /* syntax/mmbuilder.nit:1147 */
8953 fra.me.REG[1] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
8954 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8955 if (UNTAG_Bool(REGB0)) {
8956 } else {
8957 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8958 if (UNTAG_Bool(REGB1)) {
8959 REGB1 = TAG_Bool(0);
8960 REGB0 = REGB1;
8961 } else {
8962 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8963 REGB0 = REGB1;
8964 }
8965 }
8966 if (UNTAG_Bool(REGB0)) {
8967 /* syntax/mmbuilder.nit:1148 */
8968 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AInitPropdef, ID_parser___parser_nodes___AInitPropdef)) /*cast AInitPropdef*/;
8969 if (UNTAG_Bool(REGB0)) {
8970 /* syntax/mmbuilder.nit:1149 */
8971 if (!once_value_1) {
8972 if (!once_value_2) {
8973 fra.me.REG[1] = BOX_NativeString("init");
8974 REGB0 = TAG_Int(4);
8975 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
8976 once_value_2 = fra.me.REG[1];
8977 register_static_object(&once_value_2);
8978 } else fra.me.REG[1] = once_value_2;
8979 fra.me.REG[1] = fra.me.REG[1];
8980 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
8981 once_value_1 = fra.me.REG[1];
8982 register_static_object(&once_value_1);
8983 } else fra.me.REG[1] = once_value_1;
8984 fra.me.REG[1] = fra.me.REG[1];
8985 } else {
8986 /* syntax/mmbuilder.nit:1151 */
8987 if (!once_value_3) {
8988 if (!once_value_4) {
8989 fra.me.REG[4] = BOX_NativeString("main");
8990 REGB0 = TAG_Int(4);
8991 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
8992 once_value_4 = fra.me.REG[4];
8993 register_static_object(&once_value_4);
8994 } else fra.me.REG[4] = once_value_4;
8995 fra.me.REG[4] = fra.me.REG[4];
8996 fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
8997 once_value_3 = fra.me.REG[4];
8998 register_static_object(&once_value_3);
8999 } else fra.me.REG[4] = once_value_3;
9000 fra.me.REG[4] = fra.me.REG[4];
9001 fra.me.REG[1] = fra.me.REG[4];
9002 }
9003 } else {
9004 /* syntax/mmbuilder.nit:1154 */
9005 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
9006 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9007 if (UNTAG_Bool(REGB0)) {
9008 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1154);
9009 }
9010 fra.me.REG[4] = CALL_syntax___syntax_base___AMethid___name(fra.me.REG[4])(fra.me.REG[4]);
9011 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
9012 if (UNTAG_Bool(REGB0)) {
9013 } else {
9014 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1154);
9015 }
9016 fra.me.REG[1] = fra.me.REG[4];
9017 /* syntax/mmbuilder.nit:1156 */
9018 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
9019 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9020 if (UNTAG_Bool(REGB0)) {
9021 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1156);
9022 }
9023 fra.me.REG[4] = CALL_syntax___syntax_base___AMethid___name(fra.me.REG[4])(fra.me.REG[4]);
9024 if (!once_value_5) {
9025 if (!once_value_6) {
9026 fra.me.REG[0] = BOX_NativeString("-");
9027 REGB0 = TAG_Int(1);
9028 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
9029 once_value_6 = fra.me.REG[0];
9030 register_static_object(&once_value_6);
9031 } else fra.me.REG[0] = once_value_6;
9032 fra.me.REG[0] = fra.me.REG[0];
9033 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
9034 once_value_5 = fra.me.REG[0];
9035 register_static_object(&once_value_5);
9036 } else fra.me.REG[0] = once_value_5;
9037 fra.me.REG[0] = fra.me.REG[0];
9038 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[0],fra.me.REG[4]));
9039 if (UNTAG_Bool(REGB0)) {
9040 } else {
9041 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9042 if (UNTAG_Bool(REGB1)) {
9043 REGB1 = TAG_Bool(0);
9044 REGB0 = REGB1;
9045 } else {
9046 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
9047 REGB0 = REGB1;
9048 }
9049 }
9050 if (UNTAG_Bool(REGB0)) {
9051 /* syntax/mmbuilder.nit:1157 */
9052 fra.me.REG[0] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
9053 /* syntax/mmbuilder.nit:1158 */
9054 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9055 if (UNTAG_Bool(REGB0)) {
9056 } else {
9057 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9058 if (UNTAG_Bool(REGB1)) {
9059 REGB1 = TAG_Bool(0);
9060 REGB0 = REGB1;
9061 } else {
9062 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
9063 REGB0 = REGB1;
9064 }
9065 }
9066 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9067 if (UNTAG_Bool(REGB0)) {
9068 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9069 if (UNTAG_Bool(REGB0)) {
9070 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1158);
9071 }
9072 fra.me.REG[0] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[0])(fra.me.REG[0]);
9073 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
9074 REGB1 = TAG_Int(0);
9075 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
9076 if (UNTAG_Bool(REGB2)) {
9077 } else {
9078 /* ../lib/standard/kernel.nit:230 */
9079 REGB1 = TAG_Bool((REGB0)==(REGB1));
9080 /* syntax/mmbuilder.nit:1158 */
9081 REGB2 = REGB1;
9082 }
9083 } else {
9084 REGB1 = TAG_Bool(0);
9085 REGB2 = REGB1;
9086 }
9087 if (UNTAG_Bool(REGB2)) {
9088 /* syntax/mmbuilder.nit:1159 */
9089 if (!once_value_7) {
9090 if (!once_value_8) {
9091 fra.me.REG[0] = BOX_NativeString("unary -");
9092 REGB2 = TAG_Int(7);
9093 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB2);
9094 once_value_8 = fra.me.REG[0];
9095 register_static_object(&once_value_8);
9096 } else fra.me.REG[0] = once_value_8;
9097 fra.me.REG[0] = fra.me.REG[0];
9098 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
9099 once_value_7 = fra.me.REG[0];
9100 register_static_object(&once_value_7);
9101 } else fra.me.REG[0] = once_value_7;
9102 fra.me.REG[0] = fra.me.REG[0];
9103 fra.me.REG[1] = fra.me.REG[0];
9104 }
9105 }
9106 }
9107 /* syntax/mmbuilder.nit:1163 */
9108 ATTR_syntax___mmbuilder___AMethPropdef____name(fra.me.REG[2]) = fra.me.REG[1];
9109 /* syntax/mmbuilder.nit:1164 */
9110 fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9111 fra.me.REG[0] = NEW_MMMethSrcMethod_syntax___syntax_base___MMMethSrcMethod___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
9112 /* syntax/mmbuilder.nit:1165 */
9113 ATTR_syntax___mmbuilder___AMethPropdef____method(fra.me.REG[2]) = fra.me.REG[0];
9114 /* syntax/mmbuilder.nit:1166 */
9115 fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9116 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0]);
9117 stack_frame_head = fra.me.prev;
9118 return;
9119 }
9120 static const char LOCATE_syntax___mmbuilder___AMethPropdef___accept_property_verifier[] = "mmbuilder::AMethPropdef::(mmbuilder::ANode::accept_property_verifier)";
9121 void syntax___mmbuilder___AMethPropdef___accept_property_verifier(val_t p0, val_t p1){
9122 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
9123 val_t REGB0;
9124 val_t REGB1;
9125 val_t REGB2;
9126 val_t REGB3;
9127 val_t tmp;
9128 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9129 fra.me.file = LOCATE_syntax___mmbuilder;
9130 fra.me.line = 1169;
9131 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___accept_property_verifier;
9132 fra.me.has_broke = 0;
9133 fra.me.REG_size = 5;
9134 fra.me.nitni_local_ref_head = NULL;
9135 fra.me.REG[0] = NIT_NULL;
9136 fra.me.REG[1] = NIT_NULL;
9137 fra.me.REG[2] = NIT_NULL;
9138 fra.me.REG[3] = NIT_NULL;
9139 fra.me.REG[4] = NIT_NULL;
9140 fra.me.REG[0] = p0;
9141 fra.me.REG[1] = p1;
9142 /* syntax/mmbuilder.nit:1169 */
9143 fra.me.REG[2] = fra.me.REG[0];
9144 fra.me.REG[3] = fra.me.REG[1];
9145 /* syntax/mmbuilder.nit:1171 */
9146 fra.me.REG[4] = NEW_SignatureBuilder_syntax___mmbuilder___SignatureBuilder___init();
9147 CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
9148 /* syntax/mmbuilder.nit:1172 */
9149 CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9150 /* syntax/mmbuilder.nit:1174 */
9151 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9152 REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
9153 if (UNTAG_Bool(REGB0)) {
9154 goto label1;
9155 }
9156 /* syntax/mmbuilder.nit:1176 */
9157 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9158 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
9159 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9160 if (UNTAG_Bool(REGB0)) {
9161 } else {
9162 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9163 if (UNTAG_Bool(REGB1)) {
9164 REGB1 = TAG_Bool(0);
9165 REGB0 = REGB1;
9166 } else {
9167 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9168 REGB0 = REGB1;
9169 }
9170 }
9171 if (UNTAG_Bool(REGB0)) {
9172 } else {
9173 /* syntax/mmbuilder.nit:1179 */
9174 fra.me.REG[1] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
9175 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9176 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[4])(fra.me.REG[4]);
9177 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
9178 if (UNTAG_Bool(REGB0)) {
9179 } else {
9180 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1179);
9181 }
9182 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
9183 }
9184 /* syntax/mmbuilder.nit:1181 */
9185 REGB0 = TAG_Int(1);
9186 /* syntax/mmbuilder.nit:1182 */
9187 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
9188 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9189 if (UNTAG_Bool(REGB1)) {
9190 } else {
9191 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9192 if (UNTAG_Bool(REGB2)) {
9193 REGB2 = TAG_Bool(0);
9194 REGB1 = REGB2;
9195 } else {
9196 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
9197 REGB1 = REGB2;
9198 }
9199 }
9200 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
9201 if (UNTAG_Bool(REGB1)) {
9202 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
9203 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9204 if (UNTAG_Bool(REGB1)) {
9205 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1182);
9206 }
9207 REGB1 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
9208 REGB2 = TAG_Int(1);
9209 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9210 if (UNTAG_Bool(REGB3)) {
9211 } else {
9212 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9213 }
9214 /* ../lib/standard/kernel.nit:237 */
9215 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
9216 } else {
9217 /* syntax/mmbuilder.nit:1182 */
9218 REGB1 = TAG_Bool(0);
9219 REGB2 = REGB1;
9220 }
9221 if (UNTAG_Bool(REGB2)) {
9222 /* syntax/mmbuilder.nit:1183 */
9223 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
9224 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9225 if (UNTAG_Bool(REGB2)) {
9226 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1183);
9227 }
9228 REGB2 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
9229 REGB0 = REGB2;
9230 }
9231 /* syntax/mmbuilder.nit:1185 */
9232 fra.me.REG[4] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
9233 fra.me.REG[1] = CALL_parser___parser_nodes___AMethPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
9234 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9235 if (UNTAG_Bool(REGB2)) {
9236 } else {
9237 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9238 if (UNTAG_Bool(REGB1)) {
9239 REGB1 = TAG_Bool(0);
9240 REGB2 = REGB1;
9241 } else {
9242 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9243 REGB2 = REGB1;
9244 }
9245 }
9246 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
9247 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);
9248 /* syntax/mmbuilder.nit:1186 */
9249 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
9250 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9251 if (UNTAG_Bool(REGB0)) {
9252 } else {
9253 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9254 if (UNTAG_Bool(REGB2)) {
9255 REGB2 = TAG_Bool(0);
9256 REGB0 = REGB2;
9257 } else {
9258 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
9259 REGB0 = REGB2;
9260 }
9261 }
9262 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9263 if (UNTAG_Bool(REGB0)) {
9264 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
9265 fra.me.REG[2] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
9266 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9267 if (UNTAG_Bool(REGB0)) {
9268 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1186);
9269 }
9270 CALL_syntax___mmbuilder___ASignature___check_visibility(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3], fra.me.REG[2]);
9271 }
9272 label1: while(0);
9273 stack_frame_head = fra.me.prev;
9274 return;
9275 }
9276 static const char LOCATE_syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor[] = "mmbuilder::AMethPropdef::(syntax_base::ANode::accept_abs_syntax_visitor)";
9277 void syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
9278 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9279 val_t tmp;
9280 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9281 fra.me.file = LOCATE_syntax___mmbuilder;
9282 fra.me.line = 1189;
9283 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor;
9284 fra.me.has_broke = 0;
9285 fra.me.REG_size = 4;
9286 fra.me.nitni_local_ref_head = NULL;
9287 fra.me.REG[0] = NIT_NULL;
9288 fra.me.REG[1] = NIT_NULL;
9289 fra.me.REG[2] = NIT_NULL;
9290 fra.me.REG[3] = NIT_NULL;
9291 fra.me.REG[0] = p0;
9292 fra.me.REG[1] = p1;
9293 /* syntax/mmbuilder.nit:1189 */
9294 fra.me.REG[2] = fra.me.REG[0];
9295 fra.me.REG[3] = fra.me.REG[1];
9296 /* syntax/mmbuilder.nit:1191 */
9297 fra.me.REG[2] = ATTR_syntax___mmbuilder___AMethPropdef____method(fra.me.REG[2]);
9298 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
9299 /* syntax/mmbuilder.nit:1192 */
9300 CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9301 /* syntax/mmbuilder.nit:1193 */
9302 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9303 stack_frame_head = fra.me.prev;
9304 return;
9305 }
9306 static const char LOCATE_syntax___mmbuilder___AMainMethPropdef___process_and_check[] = "mmbuilder::AMainMethPropdef::(mmbuilder::APropdef::process_and_check)";
9307 void syntax___mmbuilder___AMainMethPropdef___process_and_check(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
9308 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
9309 val_t REGB0;
9310 val_t REGB1;
9311 val_t tmp;
9312 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9313 fra.me.file = LOCATE_syntax___mmbuilder;
9314 fra.me.line = 1198;
9315 fra.me.meth = LOCATE_syntax___mmbuilder___AMainMethPropdef___process_and_check;
9316 fra.me.has_broke = 0;
9317 fra.me.REG_size = 3;
9318 fra.me.nitni_local_ref_head = NULL;
9319 fra.me.REG[0] = NIT_NULL;
9320 fra.me.REG[1] = NIT_NULL;
9321 fra.me.REG[2] = NIT_NULL;
9322 fra.me.REG[0] = p0;
9323 fra.me.REG[1] = p1;
9324 fra.me.REG[2] = p2;
9325 REGB0 = p3;
9326 REGB1 = p4;
9327 /* syntax/mmbuilder.nit:1200 */
9328 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
9329 CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[0])(fra.me.REG[0], REGB1);
9330 /* syntax/mmbuilder.nit:1201 */
9331 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
9332 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
9333 fra.me.REG[1] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
9334 fra.me.REG[1] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[1]);
9335 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
9336 stack_frame_head = fra.me.prev;
9337 return;
9338 }
9339 static const char LOCATE_syntax___mmbuilder___AExternPropdef___accept_property_verifier[] = "mmbuilder::AExternPropdef::(mmbuilder::ANode::accept_property_verifier)";
9340 void syntax___mmbuilder___AExternPropdef___accept_property_verifier(val_t p0, val_t p1){
9341 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
9342 val_t REGB0;
9343 val_t REGB1;
9344 val_t REGB2;
9345 val_t tmp;
9346 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9347 fra.me.file = LOCATE_syntax___mmbuilder;
9348 fra.me.line = 1207;
9349 fra.me.meth = LOCATE_syntax___mmbuilder___AExternPropdef___accept_property_verifier;
9350 fra.me.has_broke = 0;
9351 fra.me.REG_size = 3;
9352 fra.me.nitni_local_ref_head = NULL;
9353 fra.me.REG[0] = NIT_NULL;
9354 fra.me.REG[1] = NIT_NULL;
9355 fra.me.REG[2] = NIT_NULL;
9356 fra.me.REG[0] = p0;
9357 fra.me.REG[1] = p1;
9358 /* syntax/mmbuilder.nit:1207 */
9359 fra.me.REG[2] = fra.me.REG[0];
9360 /* syntax/mmbuilder.nit:1209 */
9361 CALL_SUPER_syntax___mmbuilder___AExternPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9362 /* syntax/mmbuilder.nit:1211 */
9363 fra.me.REG[1] = CALL_parser___parser_nodes___AExternPropdef___n_extern(fra.me.REG[2])(fra.me.REG[2]);
9364 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9365 if (UNTAG_Bool(REGB0)) {
9366 } else {
9367 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9368 if (UNTAG_Bool(REGB1)) {
9369 REGB1 = TAG_Bool(0);
9370 REGB0 = REGB1;
9371 } else {
9372 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9373 REGB0 = REGB1;
9374 }
9375 }
9376 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9377 if (UNTAG_Bool(REGB0)) {
9378 /* syntax/mmbuilder.nit:1212 */
9379 fra.me.REG[1] = CALL_parser___parser_nodes___AExternPropdef___n_extern(fra.me.REG[2])(fra.me.REG[2]);
9380 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9381 if (UNTAG_Bool(REGB0)) {
9382 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1212);
9383 }
9384 fra.me.REG[1] = CALL_parser___parser_nodes___Token___text(fra.me.REG[1])(fra.me.REG[1]);
9385 /* syntax/mmbuilder.nit:1213 */
9386 REGB0 = TAG_Int(1);
9387 /* ../lib/standard/collection/array.nit:24 */
9388 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
9389 if (UNTAG_Bool(REGB1)) {
9390 } else {
9391 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
9392 }
9393 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
9394 /* syntax/mmbuilder.nit:1213 */
9395 REGB2 = TAG_Int(2);
9396 /* ../lib/standard/kernel.nit:240 */
9397 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
9398 /* syntax/mmbuilder.nit:1213 */
9399 fra.me.REG[0] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB0, REGB2);
9400 fra.me.REG[1] = fra.me.REG[0];
9401 } else {
9402 /* syntax/mmbuilder.nit:1215 */
9403 fra.me.REG[0] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
9404 fra.me.REG[0] = CALL_primitive_info___MMMethod___default_extern_name(fra.me.REG[0])(fra.me.REG[0]);
9405 fra.me.REG[1] = fra.me.REG[0];
9406 }
9407 /* syntax/mmbuilder.nit:1217 */
9408 fra.me.REG[2] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
9409 CALL_syntax___syntax_base___MMMethSrcMethod___extern_name__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
9410 stack_frame_head = fra.me.prev;
9411 return;
9412 }
9413 static const char LOCATE_syntax___mmbuilder___ATypePropdef___prop[] = "mmbuilder::ATypePropdef::(syntax_base::ATypePropdef::prop)";
9414 val_t syntax___mmbuilder___ATypePropdef___prop(val_t p0){
9415 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9416 val_t REGB0;
9417 val_t tmp;
9418 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9419 fra.me.file = LOCATE_syntax___mmbuilder;
9420 fra.me.line = 1222;
9421 fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___prop;
9422 fra.me.has_broke = 0;
9423 fra.me.REG_size = 2;
9424 fra.me.nitni_local_ref_head = NULL;
9425 fra.me.REG[0] = NIT_NULL;
9426 fra.me.REG[1] = NIT_NULL;
9427 fra.me.REG[0] = p0;
9428 /* syntax/mmbuilder.nit:1222 */
9429 fra.me.REG[1] = fra.me.REG[0];
9430 fra.me.REG[1] = ATTR_syntax___mmbuilder___ATypePropdef____prop(fra.me.REG[1]);
9431 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
9432 if (UNTAG_Bool(REGB0)) {
9433 } else {
9434 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1222);
9435 }
9436 goto label1;
9437 label1: while(0);
9438 stack_frame_head = fra.me.prev;
9439 return fra.me.REG[1];
9440 }
9441 static const char LOCATE_syntax___mmbuilder___ATypePropdef___accept_property_builder[] = "mmbuilder::ATypePropdef::(mmbuilder::ANode::accept_property_builder)";
9442 void syntax___mmbuilder___ATypePropdef___accept_property_builder(val_t p0, val_t p1){
9443 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9444 val_t tmp;
9445 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9446 fra.me.file = LOCATE_syntax___mmbuilder;
9447 fra.me.line = 1225;
9448 fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___accept_property_builder;
9449 fra.me.has_broke = 0;
9450 fra.me.REG_size = 4;
9451 fra.me.nitni_local_ref_head = NULL;
9452 fra.me.REG[0] = NIT_NULL;
9453 fra.me.REG[1] = NIT_NULL;
9454 fra.me.REG[2] = NIT_NULL;
9455 fra.me.REG[3] = NIT_NULL;
9456 fra.me.REG[0] = p0;
9457 fra.me.REG[1] = p1;
9458 /* syntax/mmbuilder.nit:1225 */
9459 fra.me.REG[2] = fra.me.REG[0];
9460 fra.me.REG[3] = fra.me.REG[1];
9461 /* syntax/mmbuilder.nit:1227 */
9462 CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9463 /* syntax/mmbuilder.nit:1228 */
9464 fra.me.REG[1] = CALL_parser___parser_nodes___ATypePropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
9465 fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
9466 /* syntax/mmbuilder.nit:1229 */
9467 fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9468 fra.me.REG[0] = NEW_MMSrcTypeProperty_syntax___syntax_base___MMSrcTypeProperty___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
9469 /* syntax/mmbuilder.nit:1230 */
9470 ATTR_syntax___mmbuilder___ATypePropdef____prop(fra.me.REG[2]) = fra.me.REG[0];
9471 /* syntax/mmbuilder.nit:1231 */
9472 fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9473 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0]);
9474 stack_frame_head = fra.me.prev;
9475 return;
9476 }
9477 static const char LOCATE_syntax___mmbuilder___ATypePropdef___accept_property_verifier[] = "mmbuilder::ATypePropdef::(mmbuilder::ANode::accept_property_verifier)";
9478 void syntax___mmbuilder___ATypePropdef___accept_property_verifier(val_t p0, val_t p1){
9479 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
9480 val_t REGB0;
9481 val_t REGB1;
9482 val_t REGB2;
9483 val_t tmp;
9484 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9485 fra.me.file = LOCATE_syntax___mmbuilder;
9486 fra.me.line = 1234;
9487 fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___accept_property_verifier;
9488 fra.me.has_broke = 0;
9489 fra.me.REG_size = 5;
9490 fra.me.nitni_local_ref_head = NULL;
9491 fra.me.REG[0] = NIT_NULL;
9492 fra.me.REG[1] = NIT_NULL;
9493 fra.me.REG[2] = NIT_NULL;
9494 fra.me.REG[3] = NIT_NULL;
9495 fra.me.REG[4] = NIT_NULL;
9496 fra.me.REG[0] = p0;
9497 fra.me.REG[1] = p1;
9498 /* syntax/mmbuilder.nit:1234 */
9499 fra.me.REG[2] = fra.me.REG[0];
9500 fra.me.REG[3] = fra.me.REG[1];
9501 /* syntax/mmbuilder.nit:1236 */
9502 CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9503 /* syntax/mmbuilder.nit:1237 */
9504 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
9505 fra.me.REG[0] = CALL_parser___parser_nodes___ATypePropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
9506 fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
9507 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9508 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
9509 fra.me.REG[4] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
9510 /* syntax/mmbuilder.nit:1238 */
9511 fra.me.REG[0] = CALL_syntax___syntax_base___ATypePropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
9512 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
9513 /* syntax/mmbuilder.nit:1239 */
9514 fra.me.REG[4] = CALL_parser___parser_nodes___ATypePropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
9515 REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
9516 /* syntax/mmbuilder.nit:1240 */
9517 fra.me.REG[4] = CALL_syntax___syntax_base___ATypePropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
9518 fra.me.REG[0] = CALL_parser___parser_nodes___ATypePropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
9519 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9520 if (UNTAG_Bool(REGB1)) {
9521 } else {
9522 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9523 if (UNTAG_Bool(REGB2)) {
9524 REGB2 = TAG_Bool(0);
9525 REGB1 = REGB2;
9526 } else {
9527 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
9528 REGB1 = REGB2;
9529 }
9530 }
9531 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
9532 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);
9533 stack_frame_head = fra.me.prev;
9534 return;
9535 }
9536 static const char LOCATE_syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor[] = "mmbuilder::ATypePropdef::(syntax_base::ANode::accept_abs_syntax_visitor)";
9537 void syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
9538 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9539 val_t tmp;
9540 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9541 fra.me.file = LOCATE_syntax___mmbuilder;
9542 fra.me.line = 1243;
9543 fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor;
9544 fra.me.has_broke = 0;
9545 fra.me.REG_size = 4;
9546 fra.me.nitni_local_ref_head = NULL;
9547 fra.me.REG[0] = NIT_NULL;
9548 fra.me.REG[1] = NIT_NULL;
9549 fra.me.REG[2] = NIT_NULL;
9550 fra.me.REG[3] = NIT_NULL;
9551 fra.me.REG[0] = p0;
9552 fra.me.REG[1] = p1;
9553 /* syntax/mmbuilder.nit:1243 */
9554 fra.me.REG[2] = fra.me.REG[0];
9555 fra.me.REG[3] = fra.me.REG[1];
9556 /* syntax/mmbuilder.nit:1245 */
9557 fra.me.REG[2] = ATTR_syntax___mmbuilder___ATypePropdef____prop(fra.me.REG[2]);
9558 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
9559 /* syntax/mmbuilder.nit:1246 */
9560 CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9561 /* syntax/mmbuilder.nit:1247 */
9562 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9563 stack_frame_head = fra.me.prev;
9564 return;
9565 }
9566 static const char LOCATE_syntax___mmbuilder___MethidAccumulator___name[] = "mmbuilder::MethidAccumulator::name";
9567 val_t syntax___mmbuilder___MethidAccumulator___name(val_t p0){
9568 struct {struct stack_frame_t me;} fra;
9569 val_t REGB0;
9570 val_t tmp;
9571 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9572 fra.me.file = LOCATE_syntax___mmbuilder;
9573 fra.me.line = 1254;
9574 fra.me.meth = LOCATE_syntax___mmbuilder___MethidAccumulator___name;
9575 fra.me.has_broke = 0;
9576 fra.me.REG_size = 1;
9577 fra.me.nitni_local_ref_head = NULL;
9578 fra.me.REG[0] = NIT_NULL;
9579 fra.me.REG[0] = p0;
9580 /* syntax/mmbuilder.nit:1254 */
9581 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL);
9582 if (UNTAG_Bool(REGB0)) {
9583 } else {
9584 nit_abort("Uninitialized attribute %s", "_name", LOCATE_syntax___mmbuilder, 1254);
9585 }
9586 fra.me.REG[0] = ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0]);
9587 stack_frame_head = fra.me.prev;
9588 return fra.me.REG[0];
9589 }
9590 static const char LOCATE_syntax___mmbuilder___MethidAccumulator___visit[] = "mmbuilder::MethidAccumulator::(parser_prod::Visitor::visit)";
9591 void syntax___mmbuilder___MethidAccumulator___visit(val_t p0, val_t p1){
9592 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9593 val_t REGB0;
9594 val_t tmp;
9595 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9596 fra.me.file = LOCATE_syntax___mmbuilder;
9597 fra.me.line = 1255;
9598 fra.me.meth = LOCATE_syntax___mmbuilder___MethidAccumulator___visit;
9599 fra.me.has_broke = 0;
9600 fra.me.REG_size = 4;
9601 fra.me.nitni_local_ref_head = NULL;
9602 fra.me.REG[0] = NIT_NULL;
9603 fra.me.REG[1] = NIT_NULL;
9604 fra.me.REG[2] = NIT_NULL;
9605 fra.me.REG[3] = NIT_NULL;
9606 fra.me.REG[0] = p0;
9607 fra.me.REG[1] = p1;
9608 /* syntax/mmbuilder.nit:1257 */
9609 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*/;
9610 if (UNTAG_Bool(REGB0)) {
9611 /* syntax/mmbuilder.nit:1258 */
9612 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL);
9613 if (UNTAG_Bool(REGB0)) {
9614 } else {
9615 nit_abort("Uninitialized attribute %s", "_name", LOCATE_syntax___mmbuilder, 1258);
9616 }
9617 fra.me.REG[2] = ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0]);
9618 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9619 if (UNTAG_Bool(REGB0)) {
9620 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1258);
9621 }
9622 fra.me.REG[3] = CALL_parser___parser_nodes___Token___text(fra.me.REG[1])(fra.me.REG[1]);
9623 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
9624 } else {
9625 /* syntax/mmbuilder.nit:1260 */
9626 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9627 if (UNTAG_Bool(REGB0)) {
9628 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1260);
9629 }
9630 CALL_parser___parser_prod___ANode___visit_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
9631 }
9632 stack_frame_head = fra.me.prev;
9633 return;
9634 }
9635 static const char LOCATE_syntax___mmbuilder___AMethid___name[] = "mmbuilder::AMethid::(syntax_base::AMethid::name)";
9636 val_t syntax___mmbuilder___AMethid___name(val_t p0){
9637 struct {struct stack_frame_t me;} fra;
9638 val_t tmp;
9639 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9640 fra.me.file = LOCATE_syntax___mmbuilder;
9641 fra.me.line = 1266;
9642 fra.me.meth = LOCATE_syntax___mmbuilder___AMethid___name;
9643 fra.me.has_broke = 0;
9644 fra.me.REG_size = 1;
9645 fra.me.nitni_local_ref_head = NULL;
9646 fra.me.REG[0] = NIT_NULL;
9647 fra.me.REG[0] = p0;
9648 /* syntax/mmbuilder.nit:1266 */
9649 fra.me.REG[0] = ATTR_syntax___mmbuilder___AMethid____name(fra.me.REG[0]);
9650 stack_frame_head = fra.me.prev;
9651 return fra.me.REG[0];
9652 }
9653 static const char LOCATE_syntax___mmbuilder___AMethid___accept_property_builder[] = "mmbuilder::AMethid::(mmbuilder::ANode::accept_property_builder)";
9654 void syntax___mmbuilder___AMethid___accept_property_builder(val_t p0, val_t p1){
9655 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9656 val_t tmp;
9657 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9658 fra.me.file = LOCATE_syntax___mmbuilder;
9659 fra.me.line = 1268;
9660 fra.me.meth = LOCATE_syntax___mmbuilder___AMethid___accept_property_builder;
9661 fra.me.has_broke = 0;
9662 fra.me.REG_size = 4;
9663 fra.me.nitni_local_ref_head = NULL;
9664 fra.me.REG[0] = NIT_NULL;
9665 fra.me.REG[1] = NIT_NULL;
9666 fra.me.REG[2] = NIT_NULL;
9667 fra.me.REG[3] = NIT_NULL;
9668 fra.me.REG[0] = p0;
9669 fra.me.REG[1] = p1;
9670 /* syntax/mmbuilder.nit:1268 */
9671 fra.me.REG[2] = fra.me.REG[0];
9672 /* syntax/mmbuilder.nit:1270 */
9673 fra.me.REG[3] = NEW_MethidAccumulator_parser___parser_prod___Visitor___init();
9674 /* syntax/mmbuilder.nit:1271 */
9675 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
9676 /* syntax/mmbuilder.nit:1272 */
9677 fra.me.REG[3] = CALL_syntax___mmbuilder___MethidAccumulator___name(fra.me.REG[3])(fra.me.REG[3]);
9678 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
9679 fra.me.REG[3] = CALL_symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
9680 ATTR_syntax___mmbuilder___AMethid____name(fra.me.REG[2]) = fra.me.REG[3];
9681 /* syntax/mmbuilder.nit:1273 */
9682 CALL_SUPER_syntax___mmbuilder___AMethid___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9683 stack_frame_head = fra.me.prev;
9684 return;
9685 }
9686 static const char LOCATE_syntax___mmbuilder___ASignature___accept_property_verifier[] = "mmbuilder::ASignature::(mmbuilder::ANode::accept_property_verifier)";
9687 void syntax___mmbuilder___ASignature___accept_property_verifier(val_t p0, val_t p1){
9688 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
9689 val_t REGB0;
9690 val_t REGB1;
9691 val_t REGB2;
9692 val_t tmp;
9693 static val_t once_value_2; /* Once value */
9694 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9695 fra.me.file = LOCATE_syntax___mmbuilder;
9696 fra.me.line = 1278;
9697 fra.me.meth = LOCATE_syntax___mmbuilder___ASignature___accept_property_verifier;
9698 fra.me.has_broke = 0;
9699 fra.me.REG_size = 8;
9700 fra.me.nitni_local_ref_head = NULL;
9701 fra.me.REG[0] = NIT_NULL;
9702 fra.me.REG[1] = NIT_NULL;
9703 fra.me.REG[2] = NIT_NULL;
9704 fra.me.REG[3] = NIT_NULL;
9705 fra.me.REG[4] = NIT_NULL;
9706 fra.me.REG[5] = NIT_NULL;
9707 fra.me.REG[6] = NIT_NULL;
9708 fra.me.REG[7] = NIT_NULL;
9709 fra.me.REG[0] = p0;
9710 fra.me.REG[1] = p1;
9711 /* syntax/mmbuilder.nit:1278 */
9712 fra.me.REG[2] = fra.me.REG[0];
9713 fra.me.REG[3] = fra.me.REG[1];
9714 /* syntax/mmbuilder.nit:1280 */
9715 CALL_SUPER_syntax___mmbuilder___ASignature___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9716 /* syntax/mmbuilder.nit:1281 */
9717 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9718 REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
9719 if (UNTAG_Bool(REGB0)) {
9720 /* syntax/mmbuilder.nit:1282 */
9721 goto label1;
9722 } else {
9723 /* syntax/mmbuilder.nit:1283 */
9724 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9725 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
9726 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
9727 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9728 if (UNTAG_Bool(REGB0)) {
9729 /* syntax/mmbuilder.nit:1284 */
9730 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9731 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
9732 fra.me.REG[1] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[1])(fra.me.REG[1]);
9733 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9734 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[4])(fra.me.REG[4]);
9735 fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
9736 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[1],fra.me.REG[4]));
9737 if (UNTAG_Bool(REGB0)) {
9738 } else {
9739 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9740 if (UNTAG_Bool(REGB1)) {
9741 REGB1 = TAG_Bool(0);
9742 REGB0 = REGB1;
9743 } else {
9744 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
9745 REGB0 = REGB1;
9746 }
9747 }
9748 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9749 if (UNTAG_Bool(REGB0)) {
9750 REGB0 = TAG_Bool(1);
9751 } else {
9752 fra.me.REG[4] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
9753 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9754 if (UNTAG_Bool(REGB1)) {
9755 } else {
9756 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9757 if (UNTAG_Bool(REGB2)) {
9758 REGB2 = TAG_Bool(0);
9759 REGB1 = REGB2;
9760 } else {
9761 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
9762 REGB1 = REGB2;
9763 }
9764 }
9765 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
9766 REGB0 = REGB1;
9767 }
9768 if (UNTAG_Bool(REGB0)) {
9769 /* syntax/mmbuilder.nit:1285 */
9770 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9771 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
9772 fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
9773 if (!once_value_2) {
9774 fra.me.REG[1] = BOX_NativeString("Syntax error: untyped parameter.");
9775 REGB0 = TAG_Int(32);
9776 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
9777 once_value_2 = fra.me.REG[1];
9778 register_static_object(&once_value_2);
9779 } else fra.me.REG[1] = once_value_2;
9780 fra.me.REG[1] = fra.me.REG[1];
9781 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[1]);
9782 /* syntax/mmbuilder.nit:1286 */
9783 goto label1;
9784 }
9785 } else {
9786 /* syntax/mmbuilder.nit:1288 */
9787 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9788 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[1])(fra.me.REG[1]);
9789 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
9790 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9791 if (UNTAG_Bool(REGB0)) {
9792 REGB0 = TAG_Bool(1);
9793 } else {
9794 fra.me.REG[1] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
9795 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9796 if (UNTAG_Bool(REGB1)) {
9797 } else {
9798 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9799 if (UNTAG_Bool(REGB2)) {
9800 REGB2 = TAG_Bool(0);
9801 REGB1 = REGB2;
9802 } else {
9803 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9804 REGB1 = REGB2;
9805 }
9806 }
9807 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
9808 REGB0 = REGB1;
9809 }
9810 if (UNTAG_Bool(REGB0)) {
9811 /* syntax/mmbuilder.nit:1289 */
9812 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
9813 /* syntax/mmbuilder.nit:1290 */
9814 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9815 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[4])(fra.me.REG[4]);
9816 /* ../lib/standard/collection/array.nit:269 */
9817 REGB0 = TAG_Int(0);
9818 /* ../lib/standard/collection/array.nit:270 */
9819 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
9820 if (UNTAG_Bool(REGB1)) {
9821 } else {
9822 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
9823 }
9824 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
9825 /* ../lib/standard/collection/array.nit:271 */
9826 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
9827 /* ../lib/standard/collection/array.nit:272 */
9828 while(1) {
9829 /* ../lib/standard/collection/array.nit:24 */
9830 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
9831 if (UNTAG_Bool(REGB1)) {
9832 } else {
9833 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
9834 }
9835 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
9836 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
9837 if (UNTAG_Bool(REGB2)) {
9838 } else {
9839 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9840 }
9841 /* ../lib/standard/kernel.nit:235 */
9842 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
9843 /* ../lib/standard/collection/array.nit:272 */
9844 if (UNTAG_Bool(REGB1)) {
9845 /* ../lib/standard/collection/array.nit:273 */
9846 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9847 if (UNTAG_Bool(REGB1)) {
9848 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
9849 }
9850 /* ../lib/standard/collection/array.nit:718 */
9851 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
9852 /* syntax/mmbuilder.nit:1291 */
9853 fra.me.REG[7] = CALL_syntax___mmbuilder___AParam___stype(fra.me.REG[6])(fra.me.REG[6]);
9854 REGB1 = TAG_Bool(fra.me.REG[7]!=NIT_NULL);
9855 if (UNTAG_Bool(REGB1)) {
9856 } else {
9857 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1291);
9858 }
9859 fra.me.REG[6] = CALL_parser___parser_nodes___AParam___n_id(fra.me.REG[6])(fra.me.REG[6]);
9860 fra.me.REG[6] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9861 fra.me.REG[6] = NEW_MMParam_metamodel___static_type___MMParam___init(fra.me.REG[7], fra.me.REG[6]);
9862 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
9863 /* ../lib/standard/collection/array.nit:274 */
9864 REGB1 = TAG_Int(1);
9865 /* ../lib/standard/kernel.nit:238 */
9866 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
9867 /* ../lib/standard/collection/array.nit:274 */
9868 REGB0 = REGB1;
9869 } else {
9870 /* ../lib/standard/collection/array.nit:272 */
9871 goto label3;
9872 }
9873 }
9874 label3: while(0);
9875 /* syntax/mmbuilder.nit:1293 */
9876 fra.me.REG[0] = NIT_NULL;
9877 /* syntax/mmbuilder.nit:1294 */
9878 fra.me.REG[5] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
9879 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9880 if (UNTAG_Bool(REGB0)) {
9881 } else {
9882 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9883 if (UNTAG_Bool(REGB1)) {
9884 REGB1 = TAG_Bool(0);
9885 REGB0 = REGB1;
9886 } else {
9887 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
9888 REGB0 = REGB1;
9889 }
9890 }
9891 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9892 if (UNTAG_Bool(REGB0)) {
9893 /* syntax/mmbuilder.nit:1295 */
9894 fra.me.REG[2] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
9895 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9896 if (UNTAG_Bool(REGB0)) {
9897 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1295);
9898 }
9899 fra.me.REG[2] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
9900 fra.me.REG[0] = fra.me.REG[2];
9901 /* syntax/mmbuilder.nit:1296 */
9902 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9903 if (UNTAG_Bool(REGB0)) {
9904 } else {
9905 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9906 if (UNTAG_Bool(REGB1)) {
9907 REGB1 = TAG_Bool(0);
9908 REGB0 = REGB1;
9909 } else {
9910 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
9911 REGB0 = REGB1;
9912 }
9913 }
9914 if (UNTAG_Bool(REGB0)) {
9915 /* syntax/mmbuilder.nit:1297 */
9916 fra.me.REG[2] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9917 REGB0 = TAG_Bool(1);
9918 CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
9919 /* syntax/mmbuilder.nit:1298 */
9920 goto label1;
9921 }
9922 }
9923 /* syntax/mmbuilder.nit:1301 */
9924 fra.me.REG[2] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9925 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9926 fra.me.REG[5] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]);
9927 fra.me.REG[5] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
9928 CALL_syntax___mmbuilder___SignatureBuilder___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
9929 /* syntax/mmbuilder.nit:1302 */
9930 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9931 REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[5])(fra.me.REG[5]);
9932 REGB1 = TAG_Int(0);
9933 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
9934 if (UNTAG_Bool(REGB2)) {
9935 } else {
9936 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9937 }
9938 /* ../lib/standard/kernel.nit:236 */
9939 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
9940 /* syntax/mmbuilder.nit:1302 */
9941 if (UNTAG_Bool(REGB1)) {
9942 /* syntax/mmbuilder.nit:1303 */
9943 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9944 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[5])(fra.me.REG[5]);
9945 fra.me.REG[2] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9946 REGB1 = CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[2])(fra.me.REG[2]);
9947 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9948 if (UNTAG_Bool(REGB0)) {
9949 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1303);
9950 }
9951 CALL_metamodel___vararg___MMSignature___vararg_rank__eq(fra.me.REG[5])(fra.me.REG[5], REGB1);
9952 }
9953 /* syntax/mmbuilder.nit:1305 */
9954 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9955 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[5])(fra.me.REG[5]);
9956 /* ../lib/standard/collection/array.nit:269 */
9957 REGB1 = TAG_Int(0);
9958 /* ../lib/standard/collection/array.nit:270 */
9959 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
9960 if (UNTAG_Bool(REGB0)) {
9961 } else {
9962 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
9963 }
9964 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
9965 /* ../lib/standard/collection/array.nit:271 */
9966 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
9967 /* ../lib/standard/collection/array.nit:272 */
9968 while(1) {
9969 /* ../lib/standard/collection/array.nit:24 */
9970 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
9971 if (UNTAG_Bool(REGB0)) {
9972 } else {
9973 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
9974 }
9975 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
9976 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9977 if (UNTAG_Bool(REGB2)) {
9978 } else {
9979 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9980 }
9981 /* ../lib/standard/kernel.nit:235 */
9982 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
9983 /* ../lib/standard/collection/array.nit:272 */
9984 if (UNTAG_Bool(REGB0)) {
9985 /* ../lib/standard/collection/array.nit:273 */
9986 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9987 if (UNTAG_Bool(REGB0)) {
9988 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
9989 }
9990 /* ../lib/standard/collection/array.nit:718 */
9991 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
9992 /* syntax/mmbuilder.nit:1306 */
9993 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9994 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
9995 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9996 if (UNTAG_Bool(REGB0)) {
9997 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1306);
9998 }
9999 fra.me.REG[1] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
10000 fra.me.REG[0] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[0])(fra.me.REG[0]);
10001 fra.me.REG[0] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[0])(fra.me.REG[0]);
10002 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
10003 /* ../lib/standard/collection/array.nit:274 */
10004 REGB0 = TAG_Int(1);
10005 /* ../lib/standard/kernel.nit:238 */
10006 REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
10007 /* ../lib/standard/collection/array.nit:274 */
10008 REGB1 = REGB0;
10009 } else {
10010 /* ../lib/standard/collection/array.nit:272 */
10011 goto label4;
10012 }
10013 }
10014 label4: while(0);
10015 }
10016 }
10017 }
10018 label1: while(0);
10019 stack_frame_head = fra.me.prev;
10020 return;
10021 }
10022 static const char LOCATE_syntax___mmbuilder___ASignature___check_visibility[] = "mmbuilder::ASignature::check_visibility";
10023 void syntax___mmbuilder___ASignature___check_visibility(val_t p0, val_t p1, val_t p2){
10024 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10025 val_t REGB0;
10026 val_t REGB1;
10027 val_t REGB2;
10028 val_t tmp;
10029 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10030 fra.me.file = LOCATE_syntax___mmbuilder;
10031 fra.me.line = 1311;
10032 fra.me.meth = LOCATE_syntax___mmbuilder___ASignature___check_visibility;
10033 fra.me.has_broke = 0;
10034 fra.me.REG_size = 4;
10035 fra.me.nitni_local_ref_head = NULL;
10036 fra.me.REG[0] = NIT_NULL;
10037 fra.me.REG[1] = NIT_NULL;
10038 fra.me.REG[2] = NIT_NULL;
10039 fra.me.REG[3] = NIT_NULL;
10040 fra.me.REG[0] = p0;
10041 fra.me.REG[1] = p1;
10042 fra.me.REG[2] = p2;
10043 /* syntax/mmbuilder.nit:1314 */
10044 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
10045 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
10046 REGB1 = TAG_Int(3);
10047 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
10048 if (UNTAG_Bool(REGB2)) {
10049 } else {
10050 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10051 }
10052 /* ../lib/standard/kernel.nit:236 */
10053 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
10054 /* syntax/mmbuilder.nit:1314 */
10055 if (UNTAG_Bool(REGB1)) {
10056 goto label1;
10057 }
10058 /* syntax/mmbuilder.nit:1315 */
10059 fra.me.REG[3] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[0])(fra.me.REG[0]);
10060 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));
10061 /* syntax/mmbuilder.nit:1318 */
10062 fra.me.REG[3] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[0])(fra.me.REG[0]);
10063 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10064 if (UNTAG_Bool(REGB1)) {
10065 } else {
10066 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10067 if (UNTAG_Bool(REGB0)) {
10068 REGB0 = TAG_Bool(0);
10069 REGB1 = REGB0;
10070 } else {
10071 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10072 REGB1 = REGB0;
10073 }
10074 }
10075 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
10076 if (UNTAG_Bool(REGB1)) {
10077 fra.me.REG[0] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[0])(fra.me.REG[0]);
10078 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10079 if (UNTAG_Bool(REGB1)) {
10080 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1318);
10081 }
10082 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
10083 }
10084 label1: while(0);
10085 stack_frame_head = fra.me.prev;
10086 return;
10087 }
10088 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){
10089 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10090 val_t REGB0;
10091 val_t REGB1;
10092 fun_t CREG[1];
10093 val_t tmp;
10094 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10095 fra.me.file = LOCATE_syntax___mmbuilder;
10096 fra.me.line = 0;
10097 fra.me.meth = LOCATE_syntax___mmbuilder___ASignature___check_visibility;
10098 fra.me.has_broke = 0;
10099 fra.me.REG_size = 2;
10100 fra.me.nitni_local_ref_head = NULL;
10101 fra.me.REG[0] = NIT_NULL;
10102 fra.me.REG[1] = NIT_NULL;
10103 fra.me.closure_ctx = closctx_param;
10104 fra.me.closure_funs = CREG;
10105 fra.me.REG[0] = p0;
10106 CREG[0] = clos_fun0;
10107 /* syntax/mmbuilder.nit:1316 */
10108 fra.me.REG[1] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[0])(fra.me.REG[0]);
10109 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10110 if (UNTAG_Bool(REGB0)) {
10111 } else {
10112 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10113 if (UNTAG_Bool(REGB1)) {
10114 REGB1 = TAG_Bool(0);
10115 REGB0 = REGB1;
10116 } else {
10117 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
10118 REGB0 = REGB1;
10119 }
10120 }
10121 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10122 if (UNTAG_Bool(REGB0)) {
10123 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[0])(fra.me.REG[0]);
10124 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10125 if (UNTAG_Bool(REGB0)) {
10126 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1316);
10127 }
10128 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1], closctx->REG[2]);
10129 }
10130 stack_frame_head = fra.me.prev;
10131 return;
10132 }
10133 static const char LOCATE_syntax___mmbuilder___AParam___position[] = "mmbuilder::AParam::(syntax_base::AParam::position)";
10134 val_t syntax___mmbuilder___AParam___position(val_t p0){
10135 struct {struct stack_frame_t me;} fra;
10136 val_t REGB0;
10137 val_t tmp;
10138 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10139 fra.me.file = LOCATE_syntax___mmbuilder;
10140 fra.me.line = 1323;
10141 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___position;
10142 fra.me.has_broke = 0;
10143 fra.me.REG_size = 1;
10144 fra.me.nitni_local_ref_head = NULL;
10145 fra.me.REG[0] = NIT_NULL;
10146 fra.me.REG[0] = p0;
10147 /* syntax/mmbuilder.nit:1323 */
10148 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___AParam____position(fra.me.REG[0])!=NIT_NULL);
10149 if (UNTAG_Bool(REGB0)) {
10150 } else {
10151 nit_abort("Uninitialized attribute %s", "_position", LOCATE_syntax___mmbuilder, 1323);
10152 }
10153 REGB0 = ATTR_syntax___mmbuilder___AParam____position(fra.me.REG[0]);
10154 stack_frame_head = fra.me.prev;
10155 return REGB0;
10156 }
10157 static const char LOCATE_syntax___mmbuilder___AParam___variable[] = "mmbuilder::AParam::(syntax_base::AParam::variable)";
10158 val_t syntax___mmbuilder___AParam___variable(val_t p0){
10159 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10160 val_t REGB0;
10161 val_t tmp;
10162 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10163 fra.me.file = LOCATE_syntax___mmbuilder;
10164 fra.me.line = 1325;
10165 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___variable;
10166 fra.me.has_broke = 0;
10167 fra.me.REG_size = 2;
10168 fra.me.nitni_local_ref_head = NULL;
10169 fra.me.REG[0] = NIT_NULL;
10170 fra.me.REG[1] = NIT_NULL;
10171 fra.me.REG[0] = p0;
10172 /* syntax/mmbuilder.nit:1325 */
10173 fra.me.REG[1] = fra.me.REG[0];
10174 fra.me.REG[1] = ATTR_syntax___mmbuilder___AParam____variable(fra.me.REG[1]);
10175 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
10176 if (UNTAG_Bool(REGB0)) {
10177 } else {
10178 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1325);
10179 }
10180 goto label1;
10181 label1: while(0);
10182 stack_frame_head = fra.me.prev;
10183 return fra.me.REG[1];
10184 }
10185 static const char LOCATE_syntax___mmbuilder___AParam___stype[] = "mmbuilder::AParam::stype";
10186 val_t syntax___mmbuilder___AParam___stype(val_t p0){
10187 struct {struct stack_frame_t me;} fra;
10188 val_t tmp;
10189 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10190 fra.me.file = LOCATE_syntax___mmbuilder;
10191 fra.me.line = 1328;
10192 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___stype;
10193 fra.me.has_broke = 0;
10194 fra.me.REG_size = 1;
10195 fra.me.nitni_local_ref_head = NULL;
10196 fra.me.REG[0] = NIT_NULL;
10197 fra.me.REG[0] = p0;
10198 /* syntax/mmbuilder.nit:1328 */
10199 fra.me.REG[0] = ATTR_syntax___mmbuilder___AParam____stype(fra.me.REG[0]);
10200 stack_frame_head = fra.me.prev;
10201 return fra.me.REG[0];
10202 }
10203 static const char LOCATE_syntax___mmbuilder___AParam___stype__eq[] = "mmbuilder::AParam::stype=";
10204 void syntax___mmbuilder___AParam___stype__eq(val_t p0, val_t p1){
10205 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10206 val_t tmp;
10207 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10208 fra.me.file = LOCATE_syntax___mmbuilder;
10209 fra.me.line = 1328;
10210 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___stype__eq;
10211 fra.me.has_broke = 0;
10212 fra.me.REG_size = 2;
10213 fra.me.nitni_local_ref_head = NULL;
10214 fra.me.REG[0] = NIT_NULL;
10215 fra.me.REG[1] = NIT_NULL;
10216 fra.me.REG[0] = p0;
10217 fra.me.REG[1] = p1;
10218 /* syntax/mmbuilder.nit:1328 */
10219 ATTR_syntax___mmbuilder___AParam____stype(fra.me.REG[0]) = fra.me.REG[1];
10220 stack_frame_head = fra.me.prev;
10221 return;
10222 }
10223 static const char LOCATE_syntax___mmbuilder___AParam___accept_property_verifier[] = "mmbuilder::AParam::(mmbuilder::ANode::accept_property_verifier)";
10224 void syntax___mmbuilder___AParam___accept_property_verifier(val_t p0, val_t p1){
10225 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
10226 val_t REGB0;
10227 val_t REGB1;
10228 val_t REGB2;
10229 val_t REGB3;
10230 val_t tmp;
10231 static val_t once_value_2; /* Once value */
10232 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10233 fra.me.file = LOCATE_syntax___mmbuilder;
10234 fra.me.line = 1331;
10235 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___accept_property_verifier;
10236 fra.me.has_broke = 0;
10237 fra.me.REG_size = 7;
10238 fra.me.nitni_local_ref_head = NULL;
10239 fra.me.REG[0] = NIT_NULL;
10240 fra.me.REG[1] = NIT_NULL;
10241 fra.me.REG[2] = NIT_NULL;
10242 fra.me.REG[3] = NIT_NULL;
10243 fra.me.REG[4] = NIT_NULL;
10244 fra.me.REG[5] = NIT_NULL;
10245 fra.me.REG[6] = NIT_NULL;
10246 fra.me.REG[0] = p0;
10247 fra.me.REG[1] = p1;
10248 /* syntax/mmbuilder.nit:1331 */
10249 fra.me.REG[2] = fra.me.REG[0];
10250 fra.me.REG[3] = fra.me.REG[1];
10251 /* syntax/mmbuilder.nit:1333 */
10252 CALL_SUPER_syntax___mmbuilder___AParam___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
10253 /* syntax/mmbuilder.nit:1334 */
10254 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10255 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[1])(fra.me.REG[1]);
10256 /* ../lib/standard/collection/array.nit:24 */
10257 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
10258 if (UNTAG_Bool(REGB0)) {
10259 } else {
10260 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
10261 }
10262 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
10263 /* syntax/mmbuilder.nit:1334 */
10264 ATTR_syntax___mmbuilder___AParam____position(fra.me.REG[2]) = REGB0;
10265 /* syntax/mmbuilder.nit:1335 */
10266 fra.me.REG[1] = CALL_parser___parser_nodes___AParam___n_id(fra.me.REG[2])(fra.me.REG[2]);
10267 fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
10268 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_id(fra.me.REG[2])(fra.me.REG[2]);
10269 fra.me.REG[0] = NEW_ParamVariable_syntax___syntax_base___ParamVariable___init(fra.me.REG[1], fra.me.REG[0]);
10270 ATTR_syntax___mmbuilder___AParam____variable(fra.me.REG[2]) = fra.me.REG[0];
10271 /* syntax/mmbuilder.nit:1336 */
10272 fra.me.REG[0] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10273 fra.me.REG[0] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[0])(fra.me.REG[0]);
10274 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
10275 /* syntax/mmbuilder.nit:1337 */
10276 fra.me.REG[0] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10277 fra.me.REG[0] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[0])(fra.me.REG[0]);
10278 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
10279 /* syntax/mmbuilder.nit:1338 */
10280 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[2])(fra.me.REG[2]);
10281 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10282 if (UNTAG_Bool(REGB0)) {
10283 } else {
10284 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10285 if (UNTAG_Bool(REGB1)) {
10286 REGB1 = TAG_Bool(0);
10287 REGB0 = REGB1;
10288 } else {
10289 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
10290 REGB0 = REGB1;
10291 }
10292 }
10293 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10294 if (UNTAG_Bool(REGB0)) {
10295 /* syntax/mmbuilder.nit:1339 */
10296 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[2])(fra.me.REG[2]);
10297 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10298 if (UNTAG_Bool(REGB0)) {
10299 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1339);
10300 }
10301 fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
10302 /* syntax/mmbuilder.nit:1340 */
10303 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10304 if (UNTAG_Bool(REGB0)) {
10305 } else {
10306 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10307 if (UNTAG_Bool(REGB1)) {
10308 REGB1 = TAG_Bool(0);
10309 REGB0 = REGB1;
10310 } else {
10311 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
10312 REGB0 = REGB1;
10313 }
10314 }
10315 if (UNTAG_Bool(REGB0)) {
10316 /* syntax/mmbuilder.nit:1341 */
10317 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10318 REGB0 = TAG_Bool(1);
10319 CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
10320 /* syntax/mmbuilder.nit:1342 */
10321 goto label1;
10322 }
10323 /* syntax/mmbuilder.nit:1344 */
10324 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10325 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
10326 /* ../lib/standard/collection/array.nit:269 */
10327 REGB0 = TAG_Int(0);
10328 /* ../lib/standard/collection/array.nit:270 */
10329 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
10330 if (UNTAG_Bool(REGB1)) {
10331 } else {
10332 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
10333 }
10334 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
10335 /* ../lib/standard/collection/array.nit:271 */
10336 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
10337 /* ../lib/standard/collection/array.nit:272 */
10338 while(1) {
10339 /* ../lib/standard/collection/array.nit:24 */
10340 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
10341 if (UNTAG_Bool(REGB1)) {
10342 } else {
10343 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
10344 }
10345 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
10346 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
10347 if (UNTAG_Bool(REGB2)) {
10348 } else {
10349 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10350 }
10351 /* ../lib/standard/kernel.nit:235 */
10352 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
10353 /* ../lib/standard/collection/array.nit:272 */
10354 if (UNTAG_Bool(REGB1)) {
10355 /* ../lib/standard/collection/array.nit:273 */
10356 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
10357 if (UNTAG_Bool(REGB1)) {
10358 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
10359 }
10360 /* ../lib/standard/collection/array.nit:718 */
10361 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
10362 /* syntax/mmbuilder.nit:1345 */
10363 CALL_syntax___mmbuilder___AParam___stype__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
10364 /* syntax/mmbuilder.nit:1346 */
10365 REGB1 = CALL_syntax___mmbuilder___AParam___is_vararg(fra.me.REG[2])(fra.me.REG[2]);
10366 if (UNTAG_Bool(REGB1)) {
10367 /* syntax/mmbuilder.nit:1347 */
10368 fra.me.REG[6] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10369 REGB1 = CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[6])(fra.me.REG[6]);
10370 REGB2 = TAG_Int(1);
10371 /* ../lib/standard/kernel.nit:239 */
10372 REGB2 = TAG_Int(-UNTAG_Int(REGB2));
10373 /* syntax/mmbuilder.nit:1347 */
10374 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
10375 if (UNTAG_Bool(REGB3)) {
10376 } else {
10377 /* ../lib/standard/kernel.nit:230 */
10378 REGB2 = TAG_Bool((REGB1)==(REGB2));
10379 /* syntax/mmbuilder.nit:1347 */
10380 REGB3 = REGB2;
10381 }
10382 if (UNTAG_Bool(REGB3)) {
10383 /* syntax/mmbuilder.nit:1348 */
10384 fra.me.REG[6] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10385 REGB3 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[5])(fra.me.REG[5]);
10386 CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank__eq(fra.me.REG[6])(fra.me.REG[6], REGB3);
10387 } else {
10388 /* syntax/mmbuilder.nit:1350 */
10389 if (!once_value_2) {
10390 fra.me.REG[6] = BOX_NativeString("Error: A vararg parameter is already defined.");
10391 REGB3 = TAG_Int(45);
10392 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB3);
10393 once_value_2 = fra.me.REG[6];
10394 register_static_object(&once_value_2);
10395 } else fra.me.REG[6] = once_value_2;
10396 fra.me.REG[6] = fra.me.REG[6];
10397 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
10398 }
10399 /* syntax/mmbuilder.nit:1352 */
10400 fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
10401 fra.me.REG[0] = fra.me.REG[6];
10402 }
10403 /* syntax/mmbuilder.nit:1354 */
10404 fra.me.REG[5] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[5])(fra.me.REG[5]);
10405 CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
10406 /* ../lib/standard/collection/array.nit:274 */
10407 REGB3 = TAG_Int(1);
10408 /* ../lib/standard/kernel.nit:238 */
10409 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
10410 /* ../lib/standard/collection/array.nit:274 */
10411 REGB0 = REGB3;
10412 } else {
10413 /* ../lib/standard/collection/array.nit:272 */
10414 goto label3;
10415 }
10416 }
10417 label3: while(0);
10418 /* syntax/mmbuilder.nit:1356 */
10419 fra.me.REG[3] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10420 fra.me.REG[3] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[3])(fra.me.REG[3]);
10421 CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[3])(fra.me.REG[3]);
10422 }
10423 label1: while(0);
10424 stack_frame_head = fra.me.prev;
10425 return;
10426 }
10427 static const char LOCATE_syntax___mmbuilder___AParam___is_vararg[] = "mmbuilder::AParam::is_vararg";
10428 val_t syntax___mmbuilder___AParam___is_vararg(val_t p0){
10429 struct {struct stack_frame_t me;} fra;
10430 val_t REGB0;
10431 val_t REGB1;
10432 val_t tmp;
10433 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10434 fra.me.file = LOCATE_syntax___mmbuilder;
10435 fra.me.line = 1360;
10436 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___is_vararg;
10437 fra.me.has_broke = 0;
10438 fra.me.REG_size = 1;
10439 fra.me.nitni_local_ref_head = NULL;
10440 fra.me.REG[0] = NIT_NULL;
10441 fra.me.REG[0] = p0;
10442 /* syntax/mmbuilder.nit:1360 */
10443 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_dotdotdot(fra.me.REG[0])(fra.me.REG[0]);
10444 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10445 if (UNTAG_Bool(REGB0)) {
10446 } else {
10447 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10448 if (UNTAG_Bool(REGB1)) {
10449 REGB1 = TAG_Bool(0);
10450 REGB0 = REGB1;
10451 } else {
10452 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
10453 REGB0 = REGB1;
10454 }
10455 }
10456 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10457 goto label1;
10458 label1: while(0);
10459 stack_frame_head = fra.me.prev;
10460 return REGB0;
10461 }
10462 static const char LOCATE_syntax___mmbuilder___AClosureDecl___position[] = "mmbuilder::AClosureDecl::(syntax_base::AClosureDecl::position)";
10463 val_t syntax___mmbuilder___AClosureDecl___position(val_t p0){
10464 struct {struct stack_frame_t me;} fra;
10465 val_t REGB0;
10466 val_t tmp;
10467 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10468 fra.me.file = LOCATE_syntax___mmbuilder;
10469 fra.me.line = 1364;
10470 fra.me.meth = LOCATE_syntax___mmbuilder___AClosureDecl___position;
10471 fra.me.has_broke = 0;
10472 fra.me.REG_size = 1;
10473 fra.me.nitni_local_ref_head = NULL;
10474 fra.me.REG[0] = NIT_NULL;
10475 fra.me.REG[0] = p0;
10476 /* syntax/mmbuilder.nit:1364 */
10477 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___AClosureDecl____position(fra.me.REG[0])!=NIT_NULL);
10478 if (UNTAG_Bool(REGB0)) {
10479 } else {
10480 nit_abort("Uninitialized attribute %s", "_position", LOCATE_syntax___mmbuilder, 1364);
10481 }
10482 REGB0 = ATTR_syntax___mmbuilder___AClosureDecl____position(fra.me.REG[0]);
10483 stack_frame_head = fra.me.prev;
10484 return REGB0;
10485 }
10486 static const char LOCATE_syntax___mmbuilder___AClosureDecl___variable[] = "mmbuilder::AClosureDecl::(syntax_base::AClosureDecl::variable)";
10487 val_t syntax___mmbuilder___AClosureDecl___variable(val_t p0){
10488 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10489 val_t REGB0;
10490 val_t tmp;
10491 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10492 fra.me.file = LOCATE_syntax___mmbuilder;
10493 fra.me.line = 1366;
10494 fra.me.meth = LOCATE_syntax___mmbuilder___AClosureDecl___variable;
10495 fra.me.has_broke = 0;
10496 fra.me.REG_size = 2;
10497 fra.me.nitni_local_ref_head = NULL;
10498 fra.me.REG[0] = NIT_NULL;
10499 fra.me.REG[1] = NIT_NULL;
10500 fra.me.REG[0] = p0;
10501 /* syntax/mmbuilder.nit:1366 */
10502 fra.me.REG[1] = fra.me.REG[0];
10503 fra.me.REG[1] = ATTR_syntax___mmbuilder___AClosureDecl____variable(fra.me.REG[1]);
10504 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
10505 if (UNTAG_Bool(REGB0)) {
10506 } else {
10507 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1366);
10508 }
10509 goto label1;
10510 label1: while(0);
10511 stack_frame_head = fra.me.prev;
10512 return fra.me.REG[1];
10513 }
10514 static const char LOCATE_syntax___mmbuilder___AClosureDecl___accept_property_verifier[] = "mmbuilder::AClosureDecl::(mmbuilder::ANode::accept_property_verifier)";
10515 void syntax___mmbuilder___AClosureDecl___accept_property_verifier(val_t p0, val_t p1){
10516 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
10517 val_t REGB0;
10518 val_t REGB1;
10519 val_t REGB2;
10520 val_t tmp;
10521 static val_t once_value_2; /* Once value */
10522 static val_t once_value_3; /* Once value */
10523 static val_t once_value_4; /* Once value */
10524 static val_t once_value_5; /* Once value */
10525 static val_t once_value_6; /* Once value */
10526 static val_t once_value_7; /* Once value */
10527 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10528 fra.me.file = LOCATE_syntax___mmbuilder;
10529 fra.me.line = 1369;
10530 fra.me.meth = LOCATE_syntax___mmbuilder___AClosureDecl___accept_property_verifier;
10531 fra.me.has_broke = 0;
10532 fra.me.REG_size = 11;
10533 fra.me.nitni_local_ref_head = NULL;
10534 fra.me.REG[0] = NIT_NULL;
10535 fra.me.REG[1] = NIT_NULL;
10536 fra.me.REG[2] = NIT_NULL;
10537 fra.me.REG[3] = NIT_NULL;
10538 fra.me.REG[4] = NIT_NULL;
10539 fra.me.REG[5] = NIT_NULL;
10540 fra.me.REG[6] = NIT_NULL;
10541 fra.me.REG[7] = NIT_NULL;
10542 fra.me.REG[8] = NIT_NULL;
10543 fra.me.REG[9] = NIT_NULL;
10544 fra.me.REG[10] = NIT_NULL;
10545 fra.me.REG[0] = p0;
10546 fra.me.REG[1] = p1;
10547 /* syntax/mmbuilder.nit:1369 */
10548 fra.me.REG[2] = fra.me.REG[0];
10549 fra.me.REG[3] = fra.me.REG[1];
10550 /* syntax/mmbuilder.nit:1371 */
10551 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10552 /* syntax/mmbuilder.nit:1372 */
10553 fra.me.REG[5] = NEW_SignatureBuilder_syntax___mmbuilder___SignatureBuilder___init();
10554 CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
10555 /* syntax/mmbuilder.nit:1373 */
10556 CALL_SUPER_syntax___mmbuilder___AClosureDecl___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
10557 /* syntax/mmbuilder.nit:1374 */
10558 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10559 REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
10560 if (UNTAG_Bool(REGB0)) {
10561 /* syntax/mmbuilder.nit:1375 */
10562 goto label1;
10563 }
10564 /* syntax/mmbuilder.nit:1377 */
10565 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10566 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
10567 /* syntax/mmbuilder.nit:1378 */
10568 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10569 if (UNTAG_Bool(REGB0)) {
10570 } else {
10571 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10572 if (UNTAG_Bool(REGB1)) {
10573 REGB1 = TAG_Bool(0);
10574 REGB0 = REGB1;
10575 } else {
10576 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
10577 REGB0 = REGB1;
10578 }
10579 }
10580 if (UNTAG_Bool(REGB0)) {
10581 /* syntax/mmbuilder.nit:1379 */
10582 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
10583 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
10584 fra.me.REG[5] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]);
10585 fra.me.REG[5] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[5]);
10586 fra.me.REG[1] = fra.me.REG[5];
10587 }
10588 /* syntax/mmbuilder.nit:1381 */
10589 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10590 if (UNTAG_Bool(REGB0)) {
10591 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1381);
10592 }
10593 fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[1])(fra.me.REG[1]);
10594 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10595 if (UNTAG_Bool(REGB0)) {
10596 } else {
10597 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10598 if (UNTAG_Bool(REGB1)) {
10599 REGB1 = TAG_Bool(0);
10600 REGB0 = REGB1;
10601 } else {
10602 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10603 REGB0 = REGB1;
10604 }
10605 }
10606 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10607 if (UNTAG_Bool(REGB0)) {
10608 fra.me.REG[5] = CALL_parser___parser_nodes___AClosureDecl___n_kwbreak(fra.me.REG[2])(fra.me.REG[2]);
10609 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10610 if (UNTAG_Bool(REGB0)) {
10611 } else {
10612 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10613 if (UNTAG_Bool(REGB1)) {
10614 REGB1 = TAG_Bool(0);
10615 REGB0 = REGB1;
10616 } else {
10617 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10618 REGB0 = REGB1;
10619 }
10620 }
10621 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10622 } else {
10623 REGB1 = TAG_Bool(0);
10624 REGB0 = REGB1;
10625 }
10626 if (UNTAG_Bool(REGB0)) {
10627 /* syntax/mmbuilder.nit:1382 */
10628 if (!once_value_2) {
10629 fra.me.REG[5] = BOX_NativeString("Syntax Error: A break block cannot have a return value.");
10630 REGB0 = TAG_Int(55);
10631 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
10632 once_value_2 = fra.me.REG[5];
10633 register_static_object(&once_value_2);
10634 } else fra.me.REG[5] = once_value_2;
10635 fra.me.REG[5] = fra.me.REG[5];
10636 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[5]);
10637 }
10638 /* syntax/mmbuilder.nit:1386 */
10639 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
10640 fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
10641 fra.me.REG[0] = CALL_metamodel___inheritance___MMModule___type_any(fra.me.REG[0])(fra.me.REG[0]);
10642 fra.me.REG[0] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[5], NIT_NULL, fra.me.REG[0]);
10643 /* syntax/mmbuilder.nit:1387 */
10644 if (!once_value_3) {
10645 if (!once_value_4) {
10646 fra.me.REG[5] = BOX_NativeString("break");
10647 REGB0 = TAG_Int(5);
10648 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
10649 once_value_4 = fra.me.REG[5];
10650 register_static_object(&once_value_4);
10651 } else fra.me.REG[5] = once_value_4;
10652 fra.me.REG[5] = fra.me.REG[5];
10653 fra.me.REG[5] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
10654 once_value_3 = fra.me.REG[5];
10655 register_static_object(&once_value_3);
10656 } else fra.me.REG[5] = once_value_3;
10657 fra.me.REG[5] = fra.me.REG[5];
10658 REGB0 = TAG_Bool(0);
10659 REGB1 = TAG_Bool(1);
10660 fra.me.REG[0] = NEW_MMClosure_metamodel___static_type___MMClosure___init(fra.me.REG[5], fra.me.REG[0], REGB0, REGB1);
10661 /* syntax/mmbuilder.nit:1388 */
10662 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10663 if (UNTAG_Bool(REGB1)) {
10664 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1388);
10665 }
10666 fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
10667 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
10668 /* syntax/mmbuilder.nit:1390 */
10669 fra.me.REG[0] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10670 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
10671 /* syntax/mmbuilder.nit:1391 */
10672 fra.me.REG[5] = CALL_parser___parser_nodes___AClosureDecl___n_kwbreak(fra.me.REG[2])(fra.me.REG[2]);
10673 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10674 if (UNTAG_Bool(REGB1)) {
10675 } else {
10676 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10677 if (UNTAG_Bool(REGB0)) {
10678 REGB0 = TAG_Bool(0);
10679 REGB1 = REGB0;
10680 } else {
10681 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10682 REGB1 = REGB0;
10683 }
10684 }
10685 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
10686 fra.me.REG[5] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra.me.REG[2])(fra.me.REG[2]);
10687 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10688 if (UNTAG_Bool(REGB0)) {
10689 } else {
10690 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10691 if (UNTAG_Bool(REGB2)) {
10692 REGB2 = TAG_Bool(0);
10693 REGB0 = REGB2;
10694 } else {
10695 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10696 REGB0 = REGB2;
10697 }
10698 }
10699 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10700 fra.me.REG[1] = NEW_MMClosure_metamodel___static_type___MMClosure___init(fra.me.REG[0], fra.me.REG[1], REGB1, REGB0);
10701 /* syntax/mmbuilder.nit:1392 */
10702 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
10703 /* ../lib/standard/collection/array.nit:269 */
10704 REGB0 = TAG_Int(0);
10705 /* ../lib/standard/collection/array.nit:270 */
10706 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
10707 if (UNTAG_Bool(REGB1)) {
10708 } else {
10709 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
10710 }
10711 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
10712 /* ../lib/standard/collection/array.nit:271 */
10713 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
10714 /* ../lib/standard/collection/array.nit:272 */
10715 while(1) {
10716 /* ../lib/standard/collection/array.nit:24 */
10717 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
10718 if (UNTAG_Bool(REGB1)) {
10719 } else {
10720 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
10721 }
10722 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
10723 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
10724 if (UNTAG_Bool(REGB2)) {
10725 } else {
10726 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10727 }
10728 /* ../lib/standard/kernel.nit:235 */
10729 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
10730 /* ../lib/standard/collection/array.nit:272 */
10731 if (UNTAG_Bool(REGB1)) {
10732 /* ../lib/standard/collection/array.nit:273 */
10733 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
10734 if (UNTAG_Bool(REGB1)) {
10735 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
10736 }
10737 /* ../lib/standard/collection/array.nit:718 */
10738 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
10739 /* syntax/mmbuilder.nit:1393 */
10740 fra.me.REG[8] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[7])(fra.me.REG[7]);
10741 fra.me.REG[8] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[8])(fra.me.REG[8]);
10742 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[8],fra.me.REG[0]));
10743 if (UNTAG_Bool(REGB1)) {
10744 } else {
10745 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
10746 REGB1 = REGB2;
10747 }
10748 if (UNTAG_Bool(REGB1)) {
10749 /* syntax/mmbuilder.nit:1394 */
10750 fra.me.REG[8] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10751 REGB1 = TAG_Int(5);
10752 fra.me.REG[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10753 if (!once_value_5) {
10754 fra.me.REG[10] = BOX_NativeString("Error: A closure '!");
10755 REGB1 = TAG_Int(19);
10756 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
10757 once_value_5 = fra.me.REG[10];
10758 register_static_object(&once_value_5);
10759 } else fra.me.REG[10] = once_value_5;
10760 fra.me.REG[10] = fra.me.REG[10];
10761 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10762 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
10763 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10764 if (!once_value_6) {
10765 fra.me.REG[10] = BOX_NativeString("' already defined at ");
10766 REGB1 = TAG_Int(21);
10767 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
10768 once_value_6 = fra.me.REG[10];
10769 register_static_object(&once_value_6);
10770 } else fra.me.REG[10] = once_value_6;
10771 fra.me.REG[10] = fra.me.REG[10];
10772 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10773 fra.me.REG[7] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[7])(fra.me.REG[7]);
10774 fra.me.REG[7] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[7])(fra.me.REG[7]);
10775 fra.me.REG[10] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10776 fra.me.REG[10] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[10])(fra.me.REG[10]);
10777 fra.me.REG[10] = CALL_location___Location___relative_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
10778 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10779 if (!once_value_7) {
10780 fra.me.REG[10] = BOX_NativeString(".");
10781 REGB1 = TAG_Int(1);
10782 fra.me.REG[10] = NEW_String_standard___string___String___with_native(fra.me.REG[10], REGB1);
10783 once_value_7 = fra.me.REG[10];
10784 register_static_object(&once_value_7);
10785 } else fra.me.REG[10] = once_value_7;
10786 fra.me.REG[10] = fra.me.REG[10];
10787 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10788 fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
10789 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8], fra.me.REG[9]);
10790 /* syntax/mmbuilder.nit:1395 */
10791 goto label1;
10792 }
10793 /* ../lib/standard/collection/array.nit:274 */
10794 REGB1 = TAG_Int(1);
10795 /* ../lib/standard/kernel.nit:238 */
10796 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
10797 /* ../lib/standard/collection/array.nit:274 */
10798 REGB0 = REGB1;
10799 } else {
10800 /* ../lib/standard/collection/array.nit:272 */
10801 goto label8;
10802 }
10803 }
10804 label8: while(0);
10805 /* syntax/mmbuilder.nit:1398 */
10806 CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
10807 /* syntax/mmbuilder.nit:1399 */
10808 fra.me.REG[3] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
10809 /* ../lib/standard/collection/array.nit:24 */
10810 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
10811 if (UNTAG_Bool(REGB0)) {
10812 } else {
10813 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
10814 }
10815 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
10816 /* syntax/mmbuilder.nit:1399 */
10817 ATTR_syntax___mmbuilder___AClosureDecl____position(fra.me.REG[2]) = REGB0;
10818 /* syntax/mmbuilder.nit:1400 */
10819 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
10820 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
10821 /* syntax/mmbuilder.nit:1401 */
10822 fra.me.REG[4] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10823 fra.me.REG[4] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
10824 fra.me.REG[3] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10825 fra.me.REG[1] = NEW_ClosureVariable_syntax___syntax_base___ClosureVariable___init(fra.me.REG[4], fra.me.REG[3], fra.me.REG[1]);
10826 ATTR_syntax___mmbuilder___AClosureDecl____variable(fra.me.REG[2]) = fra.me.REG[1];
10827 label1: while(0);
10828 stack_frame_head = fra.me.prev;
10829 return;
10830 }
10831 static const char LOCATE_syntax___mmbuilder___AType___check_visibility[] = "mmbuilder::AType::check_visibility";
10832 void syntax___mmbuilder___AType___check_visibility(val_t p0, val_t p1, val_t p2){
10833 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
10834 val_t REGB0;
10835 val_t REGB1;
10836 val_t REGB2;
10837 val_t tmp;
10838 static val_t once_value_2; /* Once value */
10839 static val_t once_value_3; /* Once value */
10840 static val_t once_value_4; /* Once value */
10841 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10842 fra.me.file = LOCATE_syntax___mmbuilder;
10843 fra.me.line = 1406;
10844 fra.me.meth = LOCATE_syntax___mmbuilder___AType___check_visibility;
10845 fra.me.has_broke = 0;
10846 fra.me.REG_size = 6;
10847 fra.me.nitni_local_ref_head = NULL;
10848 fra.me.REG[0] = NIT_NULL;
10849 fra.me.REG[1] = NIT_NULL;
10850 fra.me.REG[2] = NIT_NULL;
10851 fra.me.REG[3] = NIT_NULL;
10852 fra.me.REG[4] = NIT_NULL;
10853 fra.me.REG[5] = NIT_NULL;
10854 fra.me.REG[0] = p0;
10855 fra.me.REG[1] = p1;
10856 fra.me.REG[2] = p2;
10857 /* syntax/mmbuilder.nit:1409 */
10858 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
10859 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
10860 REGB1 = TAG_Int(3);
10861 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
10862 if (UNTAG_Bool(REGB2)) {
10863 } else {
10864 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10865 }
10866 /* ../lib/standard/kernel.nit:236 */
10867 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
10868 /* syntax/mmbuilder.nit:1409 */
10869 if (UNTAG_Bool(REGB1)) {
10870 goto label1;
10871 }
10872 /* syntax/mmbuilder.nit:1410 */
10873 fra.me.REG[3] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
10874 /* syntax/mmbuilder.nit:1411 */
10875 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10876 if (UNTAG_Bool(REGB1)) {
10877 } else {
10878 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10879 if (UNTAG_Bool(REGB0)) {
10880 REGB0 = TAG_Bool(0);
10881 REGB1 = REGB0;
10882 } else {
10883 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10884 REGB1 = REGB0;
10885 }
10886 }
10887 if (UNTAG_Bool(REGB1)) {
10888 goto label1;
10889 }
10890 /* syntax/mmbuilder.nit:1412 */
10891 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10892 if (UNTAG_Bool(REGB1)) {
10893 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1412);
10894 }
10895 fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]);
10896 /* syntax/mmbuilder.nit:1413 */
10897 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
10898 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[4])(fra.me.REG[4]);
10899 REGB0 = TAG_Int(3);
10900 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10901 if (UNTAG_Bool(REGB2)) {
10902 } else {
10903 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10904 }
10905 /* ../lib/standard/kernel.nit:236 */
10906 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
10907 /* syntax/mmbuilder.nit:1413 */
10908 if (UNTAG_Bool(REGB0)) {
10909 /* syntax/mmbuilder.nit:1414 */
10910 REGB0 = TAG_Int(5);
10911 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
10912 if (!once_value_2) {
10913 fra.me.REG[5] = BOX_NativeString("Access error: Class ");
10914 REGB0 = TAG_Int(20);
10915 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
10916 once_value_2 = fra.me.REG[5];
10917 register_static_object(&once_value_2);
10918 } else fra.me.REG[5] = once_value_2;
10919 fra.me.REG[5] = fra.me.REG[5];
10920 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
10921 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
10922 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
10923 if (!once_value_3) {
10924 fra.me.REG[3] = BOX_NativeString(" is private and cannot be used in the signature of the non-private property ");
10925 REGB0 = TAG_Int(76);
10926 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
10927 once_value_3 = fra.me.REG[3];
10928 register_static_object(&once_value_3);
10929 } else fra.me.REG[3] = once_value_3;
10930 fra.me.REG[3] = fra.me.REG[3];
10931 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
10932 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
10933 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
10934 if (!once_value_4) {
10935 fra.me.REG[3] = BOX_NativeString(".");
10936 REGB0 = TAG_Int(1);
10937 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
10938 once_value_4 = fra.me.REG[3];
10939 register_static_object(&once_value_4);
10940 } else fra.me.REG[3] = once_value_4;
10941 fra.me.REG[3] = fra.me.REG[3];
10942 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
10943 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
10944 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
10945 }
10946 /* syntax/mmbuilder.nit:1416 */
10947 fra.me.REG[0] = CALL_parser___parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
10948 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));
10949 label1: while(0);
10950 stack_frame_head = fra.me.prev;
10951 return;
10952 }
10953 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){
10954 struct {struct stack_frame_t me;} fra;
10955 fun_t CREG[1];
10956 val_t tmp;
10957 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10958 fra.me.file = LOCATE_syntax___mmbuilder;
10959 fra.me.line = 0;
10960 fra.me.meth = LOCATE_syntax___mmbuilder___AType___check_visibility;
10961 fra.me.has_broke = 0;
10962 fra.me.REG_size = 1;
10963 fra.me.nitni_local_ref_head = NULL;
10964 fra.me.REG[0] = NIT_NULL;
10965 fra.me.closure_ctx = closctx_param;
10966 fra.me.closure_funs = CREG;
10967 fra.me.REG[0] = p0;
10968 CREG[0] = clos_fun0;
10969 /* syntax/mmbuilder.nit:1417 */
10970 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1], closctx->REG[2]);
10971 stack_frame_head = fra.me.prev;
10972 return;
10973 }
10974 static const char LOCATE_syntax___mmbuilder___AExpr___accept_class_builder[] = "mmbuilder::AExpr::(mmbuilder::ANode::accept_class_builder)";
10975 void syntax___mmbuilder___AExpr___accept_class_builder(val_t p0, val_t p1){
10976 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10977 val_t tmp;
10978 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10979 fra.me.file = LOCATE_syntax___mmbuilder;
10980 fra.me.line = 1423;
10981 fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___accept_class_builder;
10982 fra.me.has_broke = 0;
10983 fra.me.REG_size = 2;
10984 fra.me.nitni_local_ref_head = NULL;
10985 fra.me.REG[0] = NIT_NULL;
10986 fra.me.REG[1] = NIT_NULL;
10987 fra.me.REG[0] = p0;
10988 fra.me.REG[1] = p1;
10989 stack_frame_head = fra.me.prev;
10990 return;
10991 }
10992 static const char LOCATE_syntax___mmbuilder___AExpr___accept_property_builder[] = "mmbuilder::AExpr::(mmbuilder::ANode::accept_property_builder)";
10993 void syntax___mmbuilder___AExpr___accept_property_builder(val_t p0, val_t p1){
10994 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10995 val_t tmp;
10996 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10997 fra.me.file = LOCATE_syntax___mmbuilder;
10998 fra.me.line = 1424;
10999 fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___accept_property_builder;
11000 fra.me.has_broke = 0;
11001 fra.me.REG_size = 2;
11002 fra.me.nitni_local_ref_head = NULL;
11003 fra.me.REG[0] = NIT_NULL;
11004 fra.me.REG[1] = NIT_NULL;
11005 fra.me.REG[0] = p0;
11006 fra.me.REG[1] = p1;
11007 stack_frame_head = fra.me.prev;
11008 return;
11009 }
11010 static const char LOCATE_syntax___mmbuilder___AExpr___accept_property_verifier[] = "mmbuilder::AExpr::(mmbuilder::ANode::accept_property_verifier)";
11011 void syntax___mmbuilder___AExpr___accept_property_verifier(val_t p0, val_t p1){
11012 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11013 val_t tmp;
11014 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11015 fra.me.file = LOCATE_syntax___mmbuilder;
11016 fra.me.line = 1425;
11017 fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___accept_property_verifier;
11018 fra.me.has_broke = 0;
11019 fra.me.REG_size = 2;
11020 fra.me.nitni_local_ref_head = NULL;
11021 fra.me.REG[0] = NIT_NULL;
11022 fra.me.REG[1] = NIT_NULL;
11023 fra.me.REG[0] = p0;
11024 fra.me.REG[1] = p1;
11025 stack_frame_head = fra.me.prev;
11026 return;
11027 }
11028 static const char LOCATE_syntax___mmbuilder___AExpr___get_easy_stype[] = "mmbuilder::AExpr::get_easy_stype";
11029 val_t syntax___mmbuilder___AExpr___get_easy_stype(val_t p0, val_t p1){
11030 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11031 val_t tmp;
11032 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11033 fra.me.file = LOCATE_syntax___mmbuilder;
11034 fra.me.line = 1427;
11035 fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___get_easy_stype;
11036 fra.me.has_broke = 0;
11037 fra.me.REG_size = 2;
11038 fra.me.nitni_local_ref_head = NULL;
11039 fra.me.REG[0] = NIT_NULL;
11040 fra.me.REG[1] = NIT_NULL;
11041 fra.me.REG[0] = p0;
11042 fra.me.REG[1] = p1;
11043 /* syntax/mmbuilder.nit:1427 */
11044 fra.me.REG[1] = NIT_NULL;
11045 goto label1;
11046 label1: while(0);
11047 stack_frame_head = fra.me.prev;
11048 return fra.me.REG[1];
11049 }
11050 static const char LOCATE_syntax___mmbuilder___ABoolExpr___get_easy_stype[] = "mmbuilder::ABoolExpr::(mmbuilder::AExpr::get_easy_stype)";
11051 val_t syntax___mmbuilder___ABoolExpr___get_easy_stype(val_t p0, val_t p1){
11052 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11053 val_t tmp;
11054 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11055 fra.me.file = LOCATE_syntax___mmbuilder;
11056 fra.me.line = 1431;
11057 fra.me.meth = LOCATE_syntax___mmbuilder___ABoolExpr___get_easy_stype;
11058 fra.me.has_broke = 0;
11059 fra.me.REG_size = 2;
11060 fra.me.nitni_local_ref_head = NULL;
11061 fra.me.REG[0] = NIT_NULL;
11062 fra.me.REG[1] = NIT_NULL;
11063 fra.me.REG[0] = p0;
11064 fra.me.REG[1] = p1;
11065 /* syntax/mmbuilder.nit:1431 */
11066 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra.me.REG[1])(fra.me.REG[1]);
11067 goto label1;
11068 label1: while(0);
11069 stack_frame_head = fra.me.prev;
11070 return fra.me.REG[1];
11071 }
11072 static const char LOCATE_syntax___mmbuilder___AStringExpr___get_easy_stype[] = "mmbuilder::AStringExpr::(mmbuilder::AExpr::get_easy_stype)";
11073 val_t syntax___mmbuilder___AStringExpr___get_easy_stype(val_t p0, val_t p1){
11074 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11075 val_t tmp;
11076 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11077 fra.me.file = LOCATE_syntax___mmbuilder;
11078 fra.me.line = 1435;
11079 fra.me.meth = LOCATE_syntax___mmbuilder___AStringExpr___get_easy_stype;
11080 fra.me.has_broke = 0;
11081 fra.me.REG_size = 2;
11082 fra.me.nitni_local_ref_head = NULL;
11083 fra.me.REG[0] = NIT_NULL;
11084 fra.me.REG[1] = NIT_NULL;
11085 fra.me.REG[0] = p0;
11086 fra.me.REG[1] = p1;
11087 /* syntax/mmbuilder.nit:1435 */
11088 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_string(fra.me.REG[1])(fra.me.REG[1]);
11089 goto label1;
11090 label1: while(0);
11091 stack_frame_head = fra.me.prev;
11092 return fra.me.REG[1];
11093 }
11094 static const char LOCATE_syntax___mmbuilder___ACharExpr___get_easy_stype[] = "mmbuilder::ACharExpr::(mmbuilder::AExpr::get_easy_stype)";
11095 val_t syntax___mmbuilder___ACharExpr___get_easy_stype(val_t p0, val_t p1){
11096 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11097 val_t tmp;
11098 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11099 fra.me.file = LOCATE_syntax___mmbuilder;
11100 fra.me.line = 1439;
11101 fra.me.meth = LOCATE_syntax___mmbuilder___ACharExpr___get_easy_stype;
11102 fra.me.has_broke = 0;
11103 fra.me.REG_size = 2;
11104 fra.me.nitni_local_ref_head = NULL;
11105 fra.me.REG[0] = NIT_NULL;
11106 fra.me.REG[1] = NIT_NULL;
11107 fra.me.REG[0] = p0;
11108 fra.me.REG[1] = p1;
11109 /* syntax/mmbuilder.nit:1439 */
11110 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_char(fra.me.REG[1])(fra.me.REG[1]);
11111 goto label1;
11112 label1: while(0);
11113 stack_frame_head = fra.me.prev;
11114 return fra.me.REG[1];
11115 }
11116 static const char LOCATE_syntax___mmbuilder___AIntExpr___get_easy_stype[] = "mmbuilder::AIntExpr::(mmbuilder::AExpr::get_easy_stype)";
11117 val_t syntax___mmbuilder___AIntExpr___get_easy_stype(val_t p0, val_t p1){
11118 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11119 val_t tmp;
11120 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11121 fra.me.file = LOCATE_syntax___mmbuilder;
11122 fra.me.line = 1443;
11123 fra.me.meth = LOCATE_syntax___mmbuilder___AIntExpr___get_easy_stype;
11124 fra.me.has_broke = 0;
11125 fra.me.REG_size = 2;
11126 fra.me.nitni_local_ref_head = NULL;
11127 fra.me.REG[0] = NIT_NULL;
11128 fra.me.REG[1] = NIT_NULL;
11129 fra.me.REG[0] = p0;
11130 fra.me.REG[1] = p1;
11131 /* syntax/mmbuilder.nit:1443 */
11132 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra.me.REG[1])(fra.me.REG[1]);
11133 goto label1;
11134 label1: while(0);
11135 stack_frame_head = fra.me.prev;
11136 return fra.me.REG[1];
11137 }
11138 static const char LOCATE_syntax___mmbuilder___AFloatExpr___get_easy_stype[] = "mmbuilder::AFloatExpr::(mmbuilder::AExpr::get_easy_stype)";
11139 val_t syntax___mmbuilder___AFloatExpr___get_easy_stype(val_t p0, val_t p1){
11140 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11141 val_t tmp;
11142 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11143 fra.me.file = LOCATE_syntax___mmbuilder;
11144 fra.me.line = 1447;
11145 fra.me.meth = LOCATE_syntax___mmbuilder___AFloatExpr___get_easy_stype;
11146 fra.me.has_broke = 0;
11147 fra.me.REG_size = 2;
11148 fra.me.nitni_local_ref_head = NULL;
11149 fra.me.REG[0] = NIT_NULL;
11150 fra.me.REG[1] = NIT_NULL;
11151 fra.me.REG[0] = p0;
11152 fra.me.REG[1] = p1;
11153 /* syntax/mmbuilder.nit:1447 */
11154 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_float(fra.me.REG[1])(fra.me.REG[1]);
11155 goto label1;
11156 label1: while(0);
11157 stack_frame_head = fra.me.prev;
11158 return fra.me.REG[1];
11159 }
11160 static const char LOCATE_syntax___mmbuilder___ANewExpr___get_easy_stype[] = "mmbuilder::ANewExpr::(mmbuilder::AExpr::get_easy_stype)";
11161 val_t syntax___mmbuilder___ANewExpr___get_easy_stype(val_t p0, val_t p1){
11162 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11163 val_t tmp;
11164 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11165 fra.me.file = LOCATE_syntax___mmbuilder;
11166 fra.me.line = 1451;
11167 fra.me.meth = LOCATE_syntax___mmbuilder___ANewExpr___get_easy_stype;
11168 fra.me.has_broke = 0;
11169 fra.me.REG_size = 2;
11170 fra.me.nitni_local_ref_head = NULL;
11171 fra.me.REG[0] = NIT_NULL;
11172 fra.me.REG[1] = NIT_NULL;
11173 fra.me.REG[0] = p0;
11174 fra.me.REG[1] = p1;
11175 /* syntax/mmbuilder.nit:1451 */
11176 fra.me.REG[0] = CALL_parser___parser_nodes___ANewExpr___n_type(fra.me.REG[0])(fra.me.REG[0]);
11177 fra.me.REG[1] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
11178 goto label1;
11179 label1: while(0);
11180 stack_frame_head = fra.me.prev;
11181 return fra.me.REG[1];
11182 }