c_src : Regenerated c_src to prevent use of String contructors
[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:267 */
65 fra.me.REG[5] = fra.me.REG[2];
66 /* ../lib/standard/collection/array.nit:270 */
67 REGB0 = TAG_Int(0);
68 /* ../lib/standard/collection/array.nit:271 */
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, 271);
73 }
74 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
75 /* ../lib/standard/collection/array.nit:272 */
76 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
77 /* ../lib/standard/collection/array.nit:273 */
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:242 */
92 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
93 /* ../lib/standard/collection/array.nit:273 */
94 if (UNTAG_Bool(REGB1)) {
95 /* ../lib/standard/collection/array.nit:274 */
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, 274);
99 }
100 /* ../lib/standard/collection/array.nit:725 */
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:275 */
106 REGB1 = TAG_Int(1);
107 /* ../lib/standard/kernel.nit:245 */
108 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
109 /* ../lib/standard/collection/array.nit:275 */
110 REGB0 = REGB1;
111 } else {
112 /* ../lib/standard/collection/array.nit:273 */
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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(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_nodes___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_nodes___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:267 */
305 fra.me.REG[4] = fra.me.REG[2];
306 /* ../lib/standard/collection/array.nit:270 */
307 REGB0 = TAG_Int(0);
308 /* ../lib/standard/collection/array.nit:271 */
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, 271);
313 }
314 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
315 /* ../lib/standard/collection/array.nit:272 */
316 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
317 /* ../lib/standard/collection/array.nit:273 */
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:242 */
332 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
333 /* ../lib/standard/collection/array.nit:273 */
334 if (UNTAG_Bool(REGB1)) {
335 /* ../lib/standard/collection/array.nit:274 */
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, 274);
339 }
340 /* ../lib/standard/collection/array.nit:725 */
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:275 */
349 REGB1 = TAG_Int(1);
350 /* ../lib/standard/kernel.nit:245 */
351 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
352 /* ../lib/standard/collection/array.nit:275 */
353 REGB0 = REGB1;
354 } else {
355 /* ../lib/standard/collection/array.nit:273 */
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:267 */
363 fra.me.REG[5] = fra.me.REG[2];
364 /* ../lib/standard/collection/array.nit:270 */
365 REGB0 = TAG_Int(0);
366 /* ../lib/standard/collection/array.nit:271 */
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, 271);
371 }
372 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
373 /* ../lib/standard/collection/array.nit:272 */
374 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
375 /* ../lib/standard/collection/array.nit:273 */
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:242 */
390 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
391 /* ../lib/standard/collection/array.nit:273 */
392 if (UNTAG_Bool(REGB1)) {
393 /* ../lib/standard/collection/array.nit:274 */
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, 274);
397 }
398 /* ../lib/standard/collection/array.nit:725 */
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:275 */
403 REGB1 = TAG_Int(1);
404 /* ../lib/standard/kernel.nit:245 */
405 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
406 /* ../lib/standard/collection/array.nit:275 */
407 REGB0 = REGB1;
408 } else {
409 /* ../lib/standard/collection/array.nit:273 */
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:267 */
419 fra.me.REG[4] = fra.me.REG[2];
420 /* ../lib/standard/collection/array.nit:270 */
421 REGB0 = TAG_Int(0);
422 /* ../lib/standard/collection/array.nit:271 */
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, 271);
427 }
428 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
429 /* ../lib/standard/collection/array.nit:272 */
430 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
431 /* ../lib/standard/collection/array.nit:273 */
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:242 */
446 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
447 /* ../lib/standard/collection/array.nit:273 */
448 if (UNTAG_Bool(REGB1)) {
449 /* ../lib/standard/collection/array.nit:274 */
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, 274);
453 }
454 /* ../lib/standard/collection/array.nit:725 */
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:275 */
502 REGB1 = TAG_Int(1);
503 /* ../lib/standard/kernel.nit:245 */
504 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
505 /* ../lib/standard/collection/array.nit:275 */
506 REGB0 = REGB1;
507 } else {
508 /* ../lib/standard/collection/array.nit:273 */
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:270 */
518 REGB0 = TAG_Int(0);
519 /* ../lib/standard/collection/array.nit:271 */
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, 271);
524 }
525 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
526 /* ../lib/standard/collection/array.nit:272 */
527 fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
528 /* ../lib/standard/collection/array.nit:273 */
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:242 */
543 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
544 /* ../lib/standard/collection/array.nit:273 */
545 if (UNTAG_Bool(REGB1)) {
546 /* ../lib/standard/collection/array.nit:274 */
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, 274);
550 }
551 /* ../lib/standard/collection/array.nit:725 */
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:275 */
556 REGB1 = TAG_Int(1);
557 /* ../lib/standard/kernel.nit:245 */
558 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
559 /* ../lib/standard/collection/array.nit:275 */
560 REGB0 = REGB1;
561 } else {
562 /* ../lib/standard/collection/array.nit:273 */
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:242 */
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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(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_nodes___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_nodes___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:270 */
921 REGB0 = TAG_Int(0);
922 /* ../lib/standard/collection/array.nit:271 */
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, 271);
927 }
928 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
929 /* ../lib/standard/collection/array.nit:272 */
930 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
931 /* ../lib/standard/collection/array.nit:273 */
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:242 */
946 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
947 /* ../lib/standard/collection/array.nit:273 */
948 if (UNTAG_Bool(REGB1)) {
949 /* ../lib/standard/collection/array.nit:274 */
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, 274);
953 }
954 /* ../lib/standard/collection/array.nit:725 */
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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(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:275 */
1006 REGB1 = TAG_Int(1);
1007 /* ../lib/standard/kernel.nit:245 */
1008 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1009 /* ../lib/standard/collection/array.nit:275 */
1010 REGB0 = REGB1;
1011 } else {
1012 /* ../lib/standard/collection/array.nit:273 */
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:244 */
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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(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:237 */
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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(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:270 */
1546 REGB0 = TAG_Int(0);
1547 /* ../lib/standard/collection/array.nit:271 */
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, 271);
1552 }
1553 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
1554 /* ../lib/standard/collection/array.nit:272 */
1555 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
1556 /* ../lib/standard/collection/array.nit:273 */
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:242 */
1571 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1572 /* ../lib/standard/collection/array.nit:273 */
1573 if (UNTAG_Bool(REGB1)) {
1574 /* ../lib/standard/collection/array.nit:274 */
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, 274);
1578 }
1579 /* ../lib/standard/collection/array.nit:725 */
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:244 */
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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(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] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(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:275 */
1672 REGB2 = TAG_Int(1);
1673 /* ../lib/standard/kernel.nit:245 */
1674 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
1675 /* ../lib/standard/collection/array.nit:275 */
1676 REGB0 = REGB2;
1677 } else {
1678 /* ../lib/standard/collection/array.nit:273 */
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:404 */
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:242 */
1723 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
1724 /* ../lib/standard/kernel.nit:404 */
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:281 */
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:243 */
1742 REGB3 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB3));
1743 /* ../lib/standard/collection/array.nit:281 */
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, 281);
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:242 */
1757 REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB3));
1758 } else {
1759 /* ../lib/standard/collection/array.nit:281 */
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, 281);
1766 }
1767 /* ../lib/standard/collection/array.nit:282 */
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, 282);
1772 }
1773 /* ../lib/standard/collection/array.nit:725 */
1774 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
1775 /* ../lib/standard/collection/array.nit:282 */
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:406 */
1781 REGB1 = TAG_Int(1);
1782 /* ../lib/standard/kernel.nit:245 */
1783 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1784 /* ../lib/standard/kernel.nit:406 */
1785 REGB0 = REGB1;
1786 } else {
1787 /* ../lib/standard/kernel.nit:404 */
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:270 */
1796 REGB0 = TAG_Int(0);
1797 /* ../lib/standard/collection/array.nit:271 */
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, 271);
1802 }
1803 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1804 /* ../lib/standard/collection/array.nit:272 */
1805 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
1806 /* ../lib/standard/collection/array.nit:273 */
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:242 */
1821 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
1822 /* ../lib/standard/collection/array.nit:273 */
1823 if (UNTAG_Bool(REGB2)) {
1824 /* ../lib/standard/collection/array.nit:274 */
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, 274);
1828 }
1829 /* ../lib/standard/collection/array.nit:725 */
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:434 */
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:434 */
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:275 */
1913 REGB1 = TAG_Int(1);
1914 /* ../lib/standard/kernel.nit:245 */
1915 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1916 /* ../lib/standard/collection/array.nit:275 */
1917 REGB0 = REGB1;
1918 } else {
1919 /* ../lib/standard/collection/array.nit:273 */
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_nodes::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 tmp;
2070 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2071 fra.me.file = LOCATE_syntax___mmbuilder;
2072 fra.me.line = 358;
2073 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___visit;
2074 fra.me.has_broke = 0;
2075 fra.me.REG_size = 2;
2076 fra.me.nitni_local_ref_head = NULL;
2077 fra.me.REG[0] = NIT_NULL;
2078 fra.me.REG[1] = NIT_NULL;
2079 fra.me.REG[0] = p0;
2080 fra.me.REG[1] = p1;
2081 /* syntax/mmbuilder.nit:358 */
2082 CALL_syntax___mmbuilder___ANode___accept_class_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2083 stack_frame_head = fra.me.prev;
2084 return;
2085 }
2086 static const char LOCATE_syntax___mmbuilder___ClassBuilderVisitor___init[] = "mmbuilder::ClassBuilderVisitor::init";
2087 void syntax___mmbuilder___ClassBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2088 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___ClassBuilderVisitor].i;
2089 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2090 val_t tmp;
2091 if (init_table[itpos2]) return;
2092 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2093 fra.me.file = LOCATE_syntax___mmbuilder;
2094 fra.me.line = 359;
2095 fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___init;
2096 fra.me.has_broke = 0;
2097 fra.me.REG_size = 3;
2098 fra.me.nitni_local_ref_head = NULL;
2099 fra.me.REG[0] = NIT_NULL;
2100 fra.me.REG[1] = NIT_NULL;
2101 fra.me.REG[2] = NIT_NULL;
2102 fra.me.REG[0] = p0;
2103 fra.me.REG[1] = p1;
2104 fra.me.REG[2] = p2;
2105 /* syntax/mmbuilder.nit:359 */
2106 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2107 stack_frame_head = fra.me.prev;
2108 init_table[itpos2] = 1;
2109 return;
2110 }
2111 static const char LOCATE_syntax___mmbuilder___ClassSpecializationBuilderVisitor___visit[] = "mmbuilder::ClassSpecializationBuilderVisitor::(parser_nodes::Visitor::visit)";
2112 void syntax___mmbuilder___ClassSpecializationBuilderVisitor___visit(val_t p0, val_t p1){
2113 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2114 val_t tmp;
2115 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2116 fra.me.file = LOCATE_syntax___mmbuilder;
2117 fra.me.line = 366;
2118 fra.me.meth = LOCATE_syntax___mmbuilder___ClassSpecializationBuilderVisitor___visit;
2119 fra.me.has_broke = 0;
2120 fra.me.REG_size = 2;
2121 fra.me.nitni_local_ref_head = NULL;
2122 fra.me.REG[0] = NIT_NULL;
2123 fra.me.REG[1] = NIT_NULL;
2124 fra.me.REG[0] = p0;
2125 fra.me.REG[1] = p1;
2126 /* syntax/mmbuilder.nit:366 */
2127 CALL_syntax___mmbuilder___ANode___accept_class_specialization_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2128 stack_frame_head = fra.me.prev;
2129 return;
2130 }
2131 static const char LOCATE_syntax___mmbuilder___ClassSpecializationBuilderVisitor___init[] = "mmbuilder::ClassSpecializationBuilderVisitor::init";
2132 void syntax___mmbuilder___ClassSpecializationBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2133 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___ClassSpecializationBuilderVisitor].i;
2134 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2135 val_t tmp;
2136 if (init_table[itpos3]) return;
2137 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2138 fra.me.file = LOCATE_syntax___mmbuilder;
2139 fra.me.line = 367;
2140 fra.me.meth = LOCATE_syntax___mmbuilder___ClassSpecializationBuilderVisitor___init;
2141 fra.me.has_broke = 0;
2142 fra.me.REG_size = 3;
2143 fra.me.nitni_local_ref_head = NULL;
2144 fra.me.REG[0] = NIT_NULL;
2145 fra.me.REG[1] = NIT_NULL;
2146 fra.me.REG[2] = NIT_NULL;
2147 fra.me.REG[0] = p0;
2148 fra.me.REG[1] = p1;
2149 fra.me.REG[2] = p2;
2150 /* syntax/mmbuilder.nit:367 */
2151 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2152 stack_frame_head = fra.me.prev;
2153 init_table[itpos3] = 1;
2154 return;
2155 }
2156 static const char LOCATE_syntax___mmbuilder___ClassAncestorBuilder___visit[] = "mmbuilder::ClassAncestorBuilder::(parser_nodes::Visitor::visit)";
2157 void syntax___mmbuilder___ClassAncestorBuilder___visit(val_t p0, val_t p1){
2158 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2159 val_t tmp;
2160 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2161 fra.me.file = LOCATE_syntax___mmbuilder;
2162 fra.me.line = 374;
2163 fra.me.meth = LOCATE_syntax___mmbuilder___ClassAncestorBuilder___visit;
2164 fra.me.has_broke = 0;
2165 fra.me.REG_size = 2;
2166 fra.me.nitni_local_ref_head = NULL;
2167 fra.me.REG[0] = NIT_NULL;
2168 fra.me.REG[1] = NIT_NULL;
2169 fra.me.REG[0] = p0;
2170 fra.me.REG[1] = p1;
2171 /* syntax/mmbuilder.nit:374 */
2172 CALL_syntax___mmbuilder___ANode___accept_class_ancestor_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2173 stack_frame_head = fra.me.prev;
2174 return;
2175 }
2176 static const char LOCATE_syntax___mmbuilder___ClassAncestorBuilder___init[] = "mmbuilder::ClassAncestorBuilder::init";
2177 void syntax___mmbuilder___ClassAncestorBuilder___init(val_t p0, val_t p1, val_t p2, int* init_table){
2178 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___ClassAncestorBuilder].i;
2179 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2180 val_t tmp;
2181 if (init_table[itpos4]) return;
2182 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2183 fra.me.file = LOCATE_syntax___mmbuilder;
2184 fra.me.line = 375;
2185 fra.me.meth = LOCATE_syntax___mmbuilder___ClassAncestorBuilder___init;
2186 fra.me.has_broke = 0;
2187 fra.me.REG_size = 3;
2188 fra.me.nitni_local_ref_head = NULL;
2189 fra.me.REG[0] = NIT_NULL;
2190 fra.me.REG[1] = NIT_NULL;
2191 fra.me.REG[2] = NIT_NULL;
2192 fra.me.REG[0] = p0;
2193 fra.me.REG[1] = p1;
2194 fra.me.REG[2] = p2;
2195 /* syntax/mmbuilder.nit:375 */
2196 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2197 stack_frame_head = fra.me.prev;
2198 init_table[itpos4] = 1;
2199 return;
2200 }
2201 static const char LOCATE_syntax___mmbuilder___ClassVerifierVisitor___visit[] = "mmbuilder::ClassVerifierVisitor::(parser_nodes::Visitor::visit)";
2202 void syntax___mmbuilder___ClassVerifierVisitor___visit(val_t p0, val_t p1){
2203 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2204 val_t tmp;
2205 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2206 fra.me.file = LOCATE_syntax___mmbuilder;
2207 fra.me.line = 382;
2208 fra.me.meth = LOCATE_syntax___mmbuilder___ClassVerifierVisitor___visit;
2209 fra.me.has_broke = 0;
2210 fra.me.REG_size = 2;
2211 fra.me.nitni_local_ref_head = NULL;
2212 fra.me.REG[0] = NIT_NULL;
2213 fra.me.REG[1] = NIT_NULL;
2214 fra.me.REG[0] = p0;
2215 fra.me.REG[1] = p1;
2216 /* syntax/mmbuilder.nit:382 */
2217 CALL_syntax___mmbuilder___ANode___accept_class_verifier(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2218 stack_frame_head = fra.me.prev;
2219 return;
2220 }
2221 static const char LOCATE_syntax___mmbuilder___ClassVerifierVisitor___init[] = "mmbuilder::ClassVerifierVisitor::init";
2222 void syntax___mmbuilder___ClassVerifierVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2223 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___ClassVerifierVisitor].i;
2224 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2225 val_t tmp;
2226 if (init_table[itpos5]) return;
2227 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2228 fra.me.file = LOCATE_syntax___mmbuilder;
2229 fra.me.line = 383;
2230 fra.me.meth = LOCATE_syntax___mmbuilder___ClassVerifierVisitor___init;
2231 fra.me.has_broke = 0;
2232 fra.me.REG_size = 3;
2233 fra.me.nitni_local_ref_head = NULL;
2234 fra.me.REG[0] = NIT_NULL;
2235 fra.me.REG[1] = NIT_NULL;
2236 fra.me.REG[2] = NIT_NULL;
2237 fra.me.REG[0] = p0;
2238 fra.me.REG[1] = p1;
2239 fra.me.REG[2] = p2;
2240 /* syntax/mmbuilder.nit:383 */
2241 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2242 stack_frame_head = fra.me.prev;
2243 init_table[itpos5] = 1;
2244 return;
2245 }
2246 static const char LOCATE_syntax___mmbuilder___PropertyBuilderVisitor___visit[] = "mmbuilder::PropertyBuilderVisitor::(parser_nodes::Visitor::visit)";
2247 void syntax___mmbuilder___PropertyBuilderVisitor___visit(val_t p0, val_t p1){
2248 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2249 val_t tmp;
2250 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2251 fra.me.file = LOCATE_syntax___mmbuilder;
2252 fra.me.line = 393;
2253 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyBuilderVisitor___visit;
2254 fra.me.has_broke = 0;
2255 fra.me.REG_size = 2;
2256 fra.me.nitni_local_ref_head = NULL;
2257 fra.me.REG[0] = NIT_NULL;
2258 fra.me.REG[1] = NIT_NULL;
2259 fra.me.REG[0] = p0;
2260 fra.me.REG[1] = p1;
2261 /* syntax/mmbuilder.nit:393 */
2262 CALL_syntax___mmbuilder___ANode___accept_property_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2263 stack_frame_head = fra.me.prev;
2264 return;
2265 }
2266 static const char LOCATE_syntax___mmbuilder___PropertyBuilderVisitor___init[] = "mmbuilder::PropertyBuilderVisitor::init";
2267 void syntax___mmbuilder___PropertyBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2268 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___PropertyBuilderVisitor].i;
2269 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2270 val_t tmp;
2271 if (init_table[itpos6]) return;
2272 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2273 fra.me.file = LOCATE_syntax___mmbuilder;
2274 fra.me.line = 394;
2275 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyBuilderVisitor___init;
2276 fra.me.has_broke = 0;
2277 fra.me.REG_size = 3;
2278 fra.me.nitni_local_ref_head = NULL;
2279 fra.me.REG[0] = NIT_NULL;
2280 fra.me.REG[1] = NIT_NULL;
2281 fra.me.REG[2] = NIT_NULL;
2282 fra.me.REG[0] = p0;
2283 fra.me.REG[1] = p1;
2284 fra.me.REG[2] = p2;
2285 /* syntax/mmbuilder.nit:394 */
2286 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2287 stack_frame_head = fra.me.prev;
2288 init_table[itpos6] = 1;
2289 return;
2290 }
2291 static const char LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder[] = "mmbuilder::PropertyVerifierVisitor::signature_builder";
2292 val_t syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(val_t p0){
2293 struct {struct stack_frame_t me;} fra;
2294 val_t REGB0;
2295 val_t tmp;
2296 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2297 fra.me.file = LOCATE_syntax___mmbuilder;
2298 fra.me.line = 402;
2299 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder;
2300 fra.me.has_broke = 0;
2301 fra.me.REG_size = 1;
2302 fra.me.nitni_local_ref_head = NULL;
2303 fra.me.REG[0] = NIT_NULL;
2304 fra.me.REG[0] = p0;
2305 /* syntax/mmbuilder.nit:402 */
2306 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0])!=NIT_NULL);
2307 if (UNTAG_Bool(REGB0)) {
2308 } else {
2309 nit_abort("Uninitialized attribute %s", "_signature_builder", LOCATE_syntax___mmbuilder, 402);
2310 }
2311 fra.me.REG[0] = ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0]);
2312 stack_frame_head = fra.me.prev;
2313 return fra.me.REG[0];
2314 }
2315 static const char LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq[] = "mmbuilder::PropertyVerifierVisitor::signature_builder=";
2316 void syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(val_t p0, val_t p1){
2317 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2318 val_t tmp;
2319 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2320 fra.me.file = LOCATE_syntax___mmbuilder;
2321 fra.me.line = 402;
2322 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq;
2323 fra.me.has_broke = 0;
2324 fra.me.REG_size = 2;
2325 fra.me.nitni_local_ref_head = NULL;
2326 fra.me.REG[0] = NIT_NULL;
2327 fra.me.REG[1] = NIT_NULL;
2328 fra.me.REG[0] = p0;
2329 fra.me.REG[1] = p1;
2330 /* syntax/mmbuilder.nit:402 */
2331 ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0]) = fra.me.REG[1];
2332 stack_frame_head = fra.me.prev;
2333 return;
2334 }
2335 static const char LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___visit[] = "mmbuilder::PropertyVerifierVisitor::(parser_nodes::Visitor::visit)";
2336 void syntax___mmbuilder___PropertyVerifierVisitor___visit(val_t p0, val_t p1){
2337 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2338 val_t tmp;
2339 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2340 fra.me.file = LOCATE_syntax___mmbuilder;
2341 fra.me.line = 405;
2342 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___visit;
2343 fra.me.has_broke = 0;
2344 fra.me.REG_size = 2;
2345 fra.me.nitni_local_ref_head = NULL;
2346 fra.me.REG[0] = NIT_NULL;
2347 fra.me.REG[1] = NIT_NULL;
2348 fra.me.REG[0] = p0;
2349 fra.me.REG[1] = p1;
2350 /* syntax/mmbuilder.nit:405 */
2351 CALL_syntax___mmbuilder___ANode___accept_property_verifier(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2352 stack_frame_head = fra.me.prev;
2353 return;
2354 }
2355 static const char LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___init[] = "mmbuilder::PropertyVerifierVisitor::init";
2356 void syntax___mmbuilder___PropertyVerifierVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
2357 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___PropertyVerifierVisitor].i;
2358 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2359 val_t tmp;
2360 if (init_table[itpos7]) return;
2361 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2362 fra.me.file = LOCATE_syntax___mmbuilder;
2363 fra.me.line = 407;
2364 fra.me.meth = LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___init;
2365 fra.me.has_broke = 0;
2366 fra.me.REG_size = 4;
2367 fra.me.nitni_local_ref_head = NULL;
2368 fra.me.REG[0] = NIT_NULL;
2369 fra.me.REG[1] = NIT_NULL;
2370 fra.me.REG[2] = NIT_NULL;
2371 fra.me.REG[3] = NIT_NULL;
2372 fra.me.REG[0] = p0;
2373 fra.me.REG[1] = p1;
2374 fra.me.REG[2] = p2;
2375 /* syntax/mmbuilder.nit:407 */
2376 fra.me.REG[3] = fra.me.REG[0];
2377 /* syntax/mmbuilder.nit:409 */
2378 CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
2379 /* syntax/mmbuilder.nit:410 */
2380 fra.me.REG[2] = NEW_SignatureBuilder_syntax___mmbuilder___SignatureBuilder___init();
2381 ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[3]) = fra.me.REG[2];
2382 stack_frame_head = fra.me.prev;
2383 init_table[itpos7] = 1;
2384 return;
2385 }
2386 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___params[] = "mmbuilder::SignatureBuilder::params";
2387 val_t syntax___mmbuilder___SignatureBuilder___params(val_t p0){
2388 struct {struct stack_frame_t me;} fra;
2389 val_t REGB0;
2390 val_t tmp;
2391 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2392 fra.me.file = LOCATE_syntax___mmbuilder;
2393 fra.me.line = 416;
2394 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___params;
2395 fra.me.has_broke = 0;
2396 fra.me.REG_size = 1;
2397 fra.me.nitni_local_ref_head = NULL;
2398 fra.me.REG[0] = NIT_NULL;
2399 fra.me.REG[0] = p0;
2400 /* syntax/mmbuilder.nit:416 */
2401 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____params(fra.me.REG[0])!=NIT_NULL);
2402 if (UNTAG_Bool(REGB0)) {
2403 } else {
2404 nit_abort("Uninitialized attribute %s", "_params", LOCATE_syntax___mmbuilder, 416);
2405 }
2406 fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____params(fra.me.REG[0]);
2407 stack_frame_head = fra.me.prev;
2408 return fra.me.REG[0];
2409 }
2410 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___params__eq[] = "mmbuilder::SignatureBuilder::params=";
2411 void syntax___mmbuilder___SignatureBuilder___params__eq(val_t p0, val_t p1){
2412 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2413 val_t tmp;
2414 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2415 fra.me.file = LOCATE_syntax___mmbuilder;
2416 fra.me.line = 416;
2417 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___params__eq;
2418 fra.me.has_broke = 0;
2419 fra.me.REG_size = 2;
2420 fra.me.nitni_local_ref_head = NULL;
2421 fra.me.REG[0] = NIT_NULL;
2422 fra.me.REG[1] = NIT_NULL;
2423 fra.me.REG[0] = p0;
2424 fra.me.REG[1] = p1;
2425 /* syntax/mmbuilder.nit:416 */
2426 ATTR_syntax___mmbuilder___SignatureBuilder____params(fra.me.REG[0]) = fra.me.REG[1];
2427 stack_frame_head = fra.me.prev;
2428 return;
2429 }
2430 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___untyped_params[] = "mmbuilder::SignatureBuilder::untyped_params";
2431 val_t syntax___mmbuilder___SignatureBuilder___untyped_params(val_t p0){
2432 struct {struct stack_frame_t me;} fra;
2433 val_t REGB0;
2434 val_t tmp;
2435 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2436 fra.me.file = LOCATE_syntax___mmbuilder;
2437 fra.me.line = 419;
2438 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___untyped_params;
2439 fra.me.has_broke = 0;
2440 fra.me.REG_size = 1;
2441 fra.me.nitni_local_ref_head = NULL;
2442 fra.me.REG[0] = NIT_NULL;
2443 fra.me.REG[0] = p0;
2444 /* syntax/mmbuilder.nit:419 */
2445 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0])!=NIT_NULL);
2446 if (UNTAG_Bool(REGB0)) {
2447 } else {
2448 nit_abort("Uninitialized attribute %s", "_untyped_params", LOCATE_syntax___mmbuilder, 419);
2449 }
2450 fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0]);
2451 stack_frame_head = fra.me.prev;
2452 return fra.me.REG[0];
2453 }
2454 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___untyped_params__eq[] = "mmbuilder::SignatureBuilder::untyped_params=";
2455 void syntax___mmbuilder___SignatureBuilder___untyped_params__eq(val_t p0, val_t p1){
2456 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2457 val_t tmp;
2458 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2459 fra.me.file = LOCATE_syntax___mmbuilder;
2460 fra.me.line = 419;
2461 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___untyped_params__eq;
2462 fra.me.has_broke = 0;
2463 fra.me.REG_size = 2;
2464 fra.me.nitni_local_ref_head = NULL;
2465 fra.me.REG[0] = NIT_NULL;
2466 fra.me.REG[1] = NIT_NULL;
2467 fra.me.REG[0] = p0;
2468 fra.me.REG[1] = p1;
2469 /* syntax/mmbuilder.nit:419 */
2470 ATTR_syntax___mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0]) = fra.me.REG[1];
2471 stack_frame_head = fra.me.prev;
2472 return;
2473 }
2474 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___vararg_rank[] = "mmbuilder::SignatureBuilder::vararg_rank";
2475 val_t syntax___mmbuilder___SignatureBuilder___vararg_rank(val_t p0){
2476 struct {struct stack_frame_t me;} fra;
2477 val_t REGB0;
2478 val_t tmp;
2479 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2480 fra.me.file = LOCATE_syntax___mmbuilder;
2481 fra.me.line = 422;
2482 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___vararg_rank;
2483 fra.me.has_broke = 0;
2484 fra.me.REG_size = 1;
2485 fra.me.nitni_local_ref_head = NULL;
2486 fra.me.REG[0] = NIT_NULL;
2487 fra.me.REG[0] = p0;
2488 /* syntax/mmbuilder.nit:422 */
2489 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0])!=NIT_NULL);
2490 if (UNTAG_Bool(REGB0)) {
2491 } else {
2492 nit_abort("Uninitialized attribute %s", "_vararg_rank", LOCATE_syntax___mmbuilder, 422);
2493 }
2494 REGB0 = ATTR_syntax___mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]);
2495 stack_frame_head = fra.me.prev;
2496 return REGB0;
2497 }
2498 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___vararg_rank__eq[] = "mmbuilder::SignatureBuilder::vararg_rank=";
2499 void syntax___mmbuilder___SignatureBuilder___vararg_rank__eq(val_t p0, val_t p1){
2500 struct {struct stack_frame_t me;} fra;
2501 val_t REGB0;
2502 val_t tmp;
2503 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2504 fra.me.file = LOCATE_syntax___mmbuilder;
2505 fra.me.line = 422;
2506 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___vararg_rank__eq;
2507 fra.me.has_broke = 0;
2508 fra.me.REG_size = 1;
2509 fra.me.nitni_local_ref_head = NULL;
2510 fra.me.REG[0] = NIT_NULL;
2511 fra.me.REG[0] = p0;
2512 REGB0 = p1;
2513 /* syntax/mmbuilder.nit:422 */
2514 ATTR_syntax___mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]) = REGB0;
2515 stack_frame_head = fra.me.prev;
2516 return;
2517 }
2518 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___closure_decls[] = "mmbuilder::SignatureBuilder::closure_decls";
2519 val_t syntax___mmbuilder___SignatureBuilder___closure_decls(val_t p0){
2520 struct {struct stack_frame_t me;} fra;
2521 val_t REGB0;
2522 val_t tmp;
2523 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2524 fra.me.file = LOCATE_syntax___mmbuilder;
2525 fra.me.line = 425;
2526 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___closure_decls;
2527 fra.me.has_broke = 0;
2528 fra.me.REG_size = 1;
2529 fra.me.nitni_local_ref_head = NULL;
2530 fra.me.REG[0] = NIT_NULL;
2531 fra.me.REG[0] = p0;
2532 /* syntax/mmbuilder.nit:425 */
2533 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0])!=NIT_NULL);
2534 if (UNTAG_Bool(REGB0)) {
2535 } else {
2536 nit_abort("Uninitialized attribute %s", "_closure_decls", LOCATE_syntax___mmbuilder, 425);
2537 }
2538 fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0]);
2539 stack_frame_head = fra.me.prev;
2540 return fra.me.REG[0];
2541 }
2542 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___closure_decls__eq[] = "mmbuilder::SignatureBuilder::closure_decls=";
2543 void syntax___mmbuilder___SignatureBuilder___closure_decls__eq(val_t p0, val_t p1){
2544 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2545 val_t tmp;
2546 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2547 fra.me.file = LOCATE_syntax___mmbuilder;
2548 fra.me.line = 425;
2549 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___closure_decls__eq;
2550 fra.me.has_broke = 0;
2551 fra.me.REG_size = 2;
2552 fra.me.nitni_local_ref_head = NULL;
2553 fra.me.REG[0] = NIT_NULL;
2554 fra.me.REG[1] = NIT_NULL;
2555 fra.me.REG[0] = p0;
2556 fra.me.REG[1] = p1;
2557 /* syntax/mmbuilder.nit:425 */
2558 ATTR_syntax___mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0]) = fra.me.REG[1];
2559 stack_frame_head = fra.me.prev;
2560 return;
2561 }
2562 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___has_error_occured[] = "mmbuilder::SignatureBuilder::has_error_occured";
2563 val_t syntax___mmbuilder___SignatureBuilder___has_error_occured(val_t p0){
2564 struct {struct stack_frame_t me;} fra;
2565 val_t REGB0;
2566 val_t tmp;
2567 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2568 fra.me.file = LOCATE_syntax___mmbuilder;
2569 fra.me.line = 428;
2570 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___has_error_occured;
2571 fra.me.has_broke = 0;
2572 fra.me.REG_size = 1;
2573 fra.me.nitni_local_ref_head = NULL;
2574 fra.me.REG[0] = NIT_NULL;
2575 fra.me.REG[0] = p0;
2576 /* syntax/mmbuilder.nit:428 */
2577 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0])!=NIT_NULL);
2578 if (UNTAG_Bool(REGB0)) {
2579 } else {
2580 nit_abort("Uninitialized attribute %s", "_has_error_occured", LOCATE_syntax___mmbuilder, 428);
2581 }
2582 REGB0 = ATTR_syntax___mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]);
2583 stack_frame_head = fra.me.prev;
2584 return REGB0;
2585 }
2586 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___has_error_occured__eq[] = "mmbuilder::SignatureBuilder::has_error_occured=";
2587 void syntax___mmbuilder___SignatureBuilder___has_error_occured__eq(val_t p0, val_t p1){
2588 struct {struct stack_frame_t me;} fra;
2589 val_t REGB0;
2590 val_t tmp;
2591 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2592 fra.me.file = LOCATE_syntax___mmbuilder;
2593 fra.me.line = 428;
2594 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___has_error_occured__eq;
2595 fra.me.has_broke = 0;
2596 fra.me.REG_size = 1;
2597 fra.me.nitni_local_ref_head = NULL;
2598 fra.me.REG[0] = NIT_NULL;
2599 fra.me.REG[0] = p0;
2600 REGB0 = p1;
2601 /* syntax/mmbuilder.nit:428 */
2602 ATTR_syntax___mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]) = REGB0;
2603 stack_frame_head = fra.me.prev;
2604 return;
2605 }
2606 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___signature[] = "mmbuilder::SignatureBuilder::signature";
2607 val_t syntax___mmbuilder___SignatureBuilder___signature(val_t p0){
2608 struct {struct stack_frame_t me;} fra;
2609 val_t tmp;
2610 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2611 fra.me.file = LOCATE_syntax___mmbuilder;
2612 fra.me.line = 431;
2613 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___signature;
2614 fra.me.has_broke = 0;
2615 fra.me.REG_size = 1;
2616 fra.me.nitni_local_ref_head = NULL;
2617 fra.me.REG[0] = NIT_NULL;
2618 fra.me.REG[0] = p0;
2619 /* syntax/mmbuilder.nit:431 */
2620 fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____signature(fra.me.REG[0]);
2621 stack_frame_head = fra.me.prev;
2622 return fra.me.REG[0];
2623 }
2624 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___signature__eq[] = "mmbuilder::SignatureBuilder::signature=";
2625 void syntax___mmbuilder___SignatureBuilder___signature__eq(val_t p0, val_t p1){
2626 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2627 val_t tmp;
2628 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2629 fra.me.file = LOCATE_syntax___mmbuilder;
2630 fra.me.line = 431;
2631 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___signature__eq;
2632 fra.me.has_broke = 0;
2633 fra.me.REG_size = 2;
2634 fra.me.nitni_local_ref_head = NULL;
2635 fra.me.REG[0] = NIT_NULL;
2636 fra.me.REG[1] = NIT_NULL;
2637 fra.me.REG[0] = p0;
2638 fra.me.REG[1] = p1;
2639 /* syntax/mmbuilder.nit:431 */
2640 ATTR_syntax___mmbuilder___SignatureBuilder____signature(fra.me.REG[0]) = fra.me.REG[1];
2641 stack_frame_head = fra.me.prev;
2642 return;
2643 }
2644 static const char LOCATE_syntax___mmbuilder___SignatureBuilder___init[] = "mmbuilder::SignatureBuilder::init";
2645 void syntax___mmbuilder___SignatureBuilder___init(val_t p0, int* init_table){
2646 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___SignatureBuilder].i;
2647 struct {struct stack_frame_t me;} fra;
2648 val_t tmp;
2649 if (init_table[itpos8]) return;
2650 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2651 fra.me.file = LOCATE_syntax___mmbuilder;
2652 fra.me.line = 0;
2653 fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___init;
2654 fra.me.has_broke = 0;
2655 fra.me.REG_size = 0;
2656 fra.me.nitni_local_ref_head = NULL;
2657 stack_frame_head = fra.me.prev;
2658 init_table[itpos8] = 1;
2659 return;
2660 }
2661 static const char LOCATE_syntax___mmbuilder___ANode___accept_class_builder[] = "mmbuilder::ANode::accept_class_builder";
2662 void syntax___mmbuilder___ANode___accept_class_builder(val_t p0, val_t p1){
2663 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2664 val_t tmp;
2665 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2666 fra.me.file = LOCATE_syntax___mmbuilder;
2667 fra.me.line = 438;
2668 fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_class_builder;
2669 fra.me.has_broke = 0;
2670 fra.me.REG_size = 2;
2671 fra.me.nitni_local_ref_head = NULL;
2672 fra.me.REG[0] = NIT_NULL;
2673 fra.me.REG[1] = NIT_NULL;
2674 fra.me.REG[0] = p0;
2675 fra.me.REG[1] = p1;
2676 /* syntax/mmbuilder.nit:438 */
2677 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2678 stack_frame_head = fra.me.prev;
2679 return;
2680 }
2681 static const char LOCATE_syntax___mmbuilder___ANode___accept_class_specialization_builder[] = "mmbuilder::ANode::accept_class_specialization_builder";
2682 void syntax___mmbuilder___ANode___accept_class_specialization_builder(val_t p0, val_t p1){
2683 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2684 val_t tmp;
2685 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2686 fra.me.file = LOCATE_syntax___mmbuilder;
2687 fra.me.line = 439;
2688 fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_class_specialization_builder;
2689 fra.me.has_broke = 0;
2690 fra.me.REG_size = 2;
2691 fra.me.nitni_local_ref_head = NULL;
2692 fra.me.REG[0] = NIT_NULL;
2693 fra.me.REG[1] = NIT_NULL;
2694 fra.me.REG[0] = p0;
2695 fra.me.REG[1] = p1;
2696 /* syntax/mmbuilder.nit:439 */
2697 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2698 stack_frame_head = fra.me.prev;
2699 return;
2700 }
2701 static const char LOCATE_syntax___mmbuilder___ANode___accept_class_ancestor_builder[] = "mmbuilder::ANode::accept_class_ancestor_builder";
2702 void syntax___mmbuilder___ANode___accept_class_ancestor_builder(val_t p0, val_t p1){
2703 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2704 val_t tmp;
2705 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2706 fra.me.file = LOCATE_syntax___mmbuilder;
2707 fra.me.line = 440;
2708 fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_class_ancestor_builder;
2709 fra.me.has_broke = 0;
2710 fra.me.REG_size = 2;
2711 fra.me.nitni_local_ref_head = NULL;
2712 fra.me.REG[0] = NIT_NULL;
2713 fra.me.REG[1] = NIT_NULL;
2714 fra.me.REG[0] = p0;
2715 fra.me.REG[1] = p1;
2716 /* syntax/mmbuilder.nit:440 */
2717 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2718 stack_frame_head = fra.me.prev;
2719 return;
2720 }
2721 static const char LOCATE_syntax___mmbuilder___ANode___accept_class_verifier[] = "mmbuilder::ANode::accept_class_verifier";
2722 void syntax___mmbuilder___ANode___accept_class_verifier(val_t p0, val_t p1){
2723 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2724 val_t tmp;
2725 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2726 fra.me.file = LOCATE_syntax___mmbuilder;
2727 fra.me.line = 441;
2728 fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_class_verifier;
2729 fra.me.has_broke = 0;
2730 fra.me.REG_size = 2;
2731 fra.me.nitni_local_ref_head = NULL;
2732 fra.me.REG[0] = NIT_NULL;
2733 fra.me.REG[1] = NIT_NULL;
2734 fra.me.REG[0] = p0;
2735 fra.me.REG[1] = p1;
2736 /* syntax/mmbuilder.nit:441 */
2737 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2738 stack_frame_head = fra.me.prev;
2739 return;
2740 }
2741 static const char LOCATE_syntax___mmbuilder___ANode___accept_property_builder[] = "mmbuilder::ANode::accept_property_builder";
2742 void syntax___mmbuilder___ANode___accept_property_builder(val_t p0, val_t p1){
2743 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2744 val_t tmp;
2745 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2746 fra.me.file = LOCATE_syntax___mmbuilder;
2747 fra.me.line = 442;
2748 fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_property_builder;
2749 fra.me.has_broke = 0;
2750 fra.me.REG_size = 2;
2751 fra.me.nitni_local_ref_head = NULL;
2752 fra.me.REG[0] = NIT_NULL;
2753 fra.me.REG[1] = NIT_NULL;
2754 fra.me.REG[0] = p0;
2755 fra.me.REG[1] = p1;
2756 /* syntax/mmbuilder.nit:442 */
2757 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2758 stack_frame_head = fra.me.prev;
2759 return;
2760 }
2761 static const char LOCATE_syntax___mmbuilder___ANode___accept_property_verifier[] = "mmbuilder::ANode::accept_property_verifier";
2762 void syntax___mmbuilder___ANode___accept_property_verifier(val_t p0, val_t p1){
2763 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2764 val_t tmp;
2765 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2766 fra.me.file = LOCATE_syntax___mmbuilder;
2767 fra.me.line = 443;
2768 fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_property_verifier;
2769 fra.me.has_broke = 0;
2770 fra.me.REG_size = 2;
2771 fra.me.nitni_local_ref_head = NULL;
2772 fra.me.REG[0] = NIT_NULL;
2773 fra.me.REG[1] = NIT_NULL;
2774 fra.me.REG[0] = p0;
2775 fra.me.REG[1] = p1;
2776 /* syntax/mmbuilder.nit:443 */
2777 CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2778 stack_frame_head = fra.me.prev;
2779 return;
2780 }
2781 static const char LOCATE_syntax___mmbuilder___AModule___import_super_modules[] = "mmbuilder::AModule::import_super_modules";
2782 void syntax___mmbuilder___AModule___import_super_modules(val_t p0, val_t p1, val_t p2){
2783 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
2784 val_t REGB0;
2785 val_t REGB1;
2786 val_t tmp;
2787 static val_t once_value_2; /* Once value */
2788 static val_t once_value_3; /* Once value */
2789 static val_t once_value_4; /* Once value */
2790 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2791 fra.me.file = LOCATE_syntax___mmbuilder;
2792 fra.me.line = 447;
2793 fra.me.meth = LOCATE_syntax___mmbuilder___AModule___import_super_modules;
2794 fra.me.has_broke = 0;
2795 fra.me.REG_size = 5;
2796 fra.me.nitni_local_ref_head = NULL;
2797 fra.me.REG[0] = NIT_NULL;
2798 fra.me.REG[1] = NIT_NULL;
2799 fra.me.REG[2] = NIT_NULL;
2800 fra.me.REG[3] = NIT_NULL;
2801 fra.me.REG[4] = NIT_NULL;
2802 fra.me.REG[0] = p0;
2803 fra.me.REG[1] = p1;
2804 fra.me.REG[2] = p2;
2805 /* syntax/mmbuilder.nit:451 */
2806 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
2807 /* syntax/mmbuilder.nit:452 */
2808 fra.me.REG[4] = NIT_NULL;
2809 /* syntax/mmbuilder.nit:453 */
2810 fra.me.REG[0] = CALL_parser___parser_nodes___AModule___n_imports(fra.me.REG[0])(fra.me.REG[0]);
2811 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));
2812 /* syntax/mmbuilder.nit:463 */
2813 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2814 if (UNTAG_Bool(REGB0)) {
2815 } else {
2816 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2817 if (UNTAG_Bool(REGB1)) {
2818 REGB1 = TAG_Bool(0);
2819 REGB0 = REGB1;
2820 } else {
2821 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
2822 REGB0 = REGB1;
2823 }
2824 }
2825 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2826 if (UNTAG_Bool(REGB0)) {
2827 /* syntax/mmbuilder.nit:464 */
2828 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
2829 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2830 if (UNTAG_Bool(REGB0)) {
2831 /* syntax/mmbuilder.nit:465 */
2832 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2833 if (UNTAG_Bool(REGB0)) {
2834 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 465);
2835 }
2836 fra.me.REG[4] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[4])(fra.me.REG[4]);
2837 if (!once_value_2) {
2838 fra.me.REG[0] = BOX_NativeString("Error: Top modules cannot import other modules.");
2839 REGB0 = TAG_Int(47);
2840 fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
2841 once_value_2 = fra.me.REG[0];
2842 register_static_object(&once_value_2);
2843 } else fra.me.REG[0] = once_value_2;
2844 fra.me.REG[0] = fra.me.REG[0];
2845 CALL_toolcontext___ToolContext___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]);
2846 }
2847 } else {
2848 /* syntax/mmbuilder.nit:467 */
2849 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
2850 if (UNTAG_Bool(REGB0)) {
2851 /* syntax/mmbuilder.nit:468 */
2852 if (!once_value_3) {
2853 if (!once_value_4) {
2854 fra.me.REG[0] = BOX_NativeString("standard");
2855 REGB0 = TAG_Int(8);
2856 fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
2857 once_value_4 = fra.me.REG[0];
2858 register_static_object(&once_value_4);
2859 } else fra.me.REG[0] = once_value_4;
2860 fra.me.REG[0] = fra.me.REG[0];
2861 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
2862 once_value_3 = fra.me.REG[0];
2863 register_static_object(&once_value_3);
2864 } else fra.me.REG[0] = once_value_3;
2865 fra.me.REG[0] = fra.me.REG[0];
2866 /* syntax/mmbuilder.nit:469 */
2867 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]);
2868 /* syntax/mmbuilder.nit:470 */
2869 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
2870 /* syntax/mmbuilder.nit:471 */
2871 REGB0 = TAG_Int(1);
2872 CALL_metamodel___abstractmetamodel___MMModule___add_super_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], REGB0);
2873 }
2874 }
2875 /* syntax/mmbuilder.nit:474 */
2876 CALL_metamodel___abstractmetamodel___MMContext___add_module(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
2877 stack_frame_head = fra.me.prev;
2878 return;
2879 }
2880 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){
2881 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2882 val_t REGB0;
2883 val_t REGB1;
2884 fun_t CREG[1];
2885 val_t tmp;
2886 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2887 fra.me.file = LOCATE_syntax___mmbuilder;
2888 fra.me.line = 0;
2889 fra.me.meth = LOCATE_syntax___mmbuilder___AModule___import_super_modules;
2890 fra.me.has_broke = 0;
2891 fra.me.REG_size = 2;
2892 fra.me.nitni_local_ref_head = NULL;
2893 fra.me.REG[0] = NIT_NULL;
2894 fra.me.REG[1] = NIT_NULL;
2895 fra.me.closure_ctx = closctx_param;
2896 fra.me.closure_funs = CREG;
2897 fra.me.REG[0] = p0;
2898 CREG[0] = clos_fun0;
2899 /* syntax/mmbuilder.nit:454 */
2900 fra.me.REG[1] = CALL_syntax___mmbuilder___AImport___module_name(fra.me.REG[0])(fra.me.REG[0]);
2901 /* syntax/mmbuilder.nit:455 */
2902 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2903 if (UNTAG_Bool(REGB0)) {
2904 } else {
2905 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2906 if (UNTAG_Bool(REGB1)) {
2907 REGB1 = TAG_Bool(0);
2908 REGB0 = REGB1;
2909 } else {
2910 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2911 REGB0 = REGB1;
2912 }
2913 }
2914 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2915 if (UNTAG_Bool(REGB0)) {
2916 /* syntax/mmbuilder.nit:456 */
2917 fra.me.REG[1] = CALL_mmloader___ToolContext___get_module(closctx->REG[1])(closctx->REG[1], fra.me.REG[1], closctx->REG[2]);
2918 /* syntax/mmbuilder.nit:457 */
2919 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[1]);
2920 /* syntax/mmbuilder.nit:458 */
2921 REGB0 = CALL_syntax___mmbuilder___AImport___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
2922 CALL_metamodel___abstractmetamodel___MMModule___add_super_module(closctx->REG[2])(closctx->REG[2], fra.me.REG[1], REGB0);
2923 } else {
2924 /* syntax/mmbuilder.nit:460 */
2925 closctx->REG[4] = fra.me.REG[0];
2926 }
2927 stack_frame_head = fra.me.prev;
2928 return;
2929 }
2930 static const char LOCATE_syntax___mmbuilder___AModuledecl___accept_class_builder[] = "mmbuilder::AModuledecl::(mmbuilder::ANode::accept_class_builder)";
2931 void syntax___mmbuilder___AModuledecl___accept_class_builder(val_t p0, val_t p1){
2932 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
2933 val_t REGB0;
2934 val_t REGB1;
2935 val_t tmp;
2936 static val_t once_value_1; /* Once value */
2937 static val_t once_value_2; /* Once value */
2938 static val_t once_value_3; /* Once value */
2939 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2940 fra.me.file = LOCATE_syntax___mmbuilder;
2941 fra.me.line = 479;
2942 fra.me.meth = LOCATE_syntax___mmbuilder___AModuledecl___accept_class_builder;
2943 fra.me.has_broke = 0;
2944 fra.me.REG_size = 5;
2945 fra.me.nitni_local_ref_head = NULL;
2946 fra.me.REG[0] = NIT_NULL;
2947 fra.me.REG[1] = NIT_NULL;
2948 fra.me.REG[2] = NIT_NULL;
2949 fra.me.REG[3] = NIT_NULL;
2950 fra.me.REG[4] = NIT_NULL;
2951 fra.me.REG[0] = p0;
2952 fra.me.REG[1] = p1;
2953 /* syntax/mmbuilder.nit:481 */
2954 fra.me.REG[2] = CALL_parser___parser_nodes___AModuledecl___n_name(fra.me.REG[0])(fra.me.REG[0]);
2955 fra.me.REG[2] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[2])(fra.me.REG[2]);
2956 fra.me.REG[2] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
2957 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
2958 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___name(fra.me.REG[3])(fra.me.REG[3]);
2959 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
2960 if (UNTAG_Bool(REGB0)) {
2961 } else {
2962 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2963 REGB0 = REGB1;
2964 }
2965 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2966 if (UNTAG_Bool(REGB0)) {
2967 /* syntax/mmbuilder.nit:482 */
2968 fra.me.REG[3] = CALL_parser___parser_nodes___AModuledecl___n_name(fra.me.REG[0])(fra.me.REG[0]);
2969 fra.me.REG[3] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[3])(fra.me.REG[3]);
2970 REGB0 = TAG_Int(5);
2971 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2972 if (!once_value_1) {
2973 fra.me.REG[4] = BOX_NativeString("Error: Module name mismatch between ");
2974 REGB0 = TAG_Int(36);
2975 fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
2976 once_value_1 = fra.me.REG[4];
2977 register_static_object(&once_value_1);
2978 } else fra.me.REG[4] = once_value_1;
2979 fra.me.REG[4] = fra.me.REG[4];
2980 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
2981 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
2982 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMModule___name(fra.me.REG[4])(fra.me.REG[4]);
2983 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
2984 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
2985 if (!once_value_2) {
2986 fra.me.REG[4] = BOX_NativeString(" and ");
2987 REGB0 = TAG_Int(5);
2988 fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
2989 once_value_2 = fra.me.REG[4];
2990 register_static_object(&once_value_2);
2991 } else fra.me.REG[4] = once_value_2;
2992 fra.me.REG[4] = fra.me.REG[4];
2993 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
2994 fra.me.REG[0] = CALL_parser___parser_nodes___AModuledecl___n_name(fra.me.REG[0])(fra.me.REG[0]);
2995 fra.me.REG[0] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[0])(fra.me.REG[0]);
2996 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
2997 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2998 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2999 if (!once_value_3) {
3000 fra.me.REG[0] = BOX_NativeString("");
3001 REGB0 = TAG_Int(0);
3002 fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
3003 once_value_3 = fra.me.REG[0];
3004 register_static_object(&once_value_3);
3005 } else fra.me.REG[0] = once_value_3;
3006 fra.me.REG[0] = fra.me.REG[0];
3007 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3008 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3009 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2]);
3010 }
3011 stack_frame_head = fra.me.prev;
3012 return;
3013 }
3014 static const char LOCATE_syntax___mmbuilder___AImport___module_name[] = "mmbuilder::AImport::module_name";
3015 val_t syntax___mmbuilder___AImport___module_name(val_t p0){
3016 struct {struct stack_frame_t me;} fra;
3017 val_t tmp;
3018 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3019 fra.me.file = LOCATE_syntax___mmbuilder;
3020 fra.me.line = 488;
3021 fra.me.meth = LOCATE_syntax___mmbuilder___AImport___module_name;
3022 fra.me.has_broke = 0;
3023 fra.me.REG_size = 0;
3024 fra.me.nitni_local_ref_head = NULL;
3025 /* syntax/mmbuilder.nit:488 */
3026 nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 488);
3027 stack_frame_head = fra.me.prev;
3028 return NIT_NULL;
3029 }
3030 static const char LOCATE_syntax___mmbuilder___AImport___visibility_level[] = "mmbuilder::AImport::visibility_level";
3031 val_t syntax___mmbuilder___AImport___visibility_level(val_t p0){
3032 struct {struct stack_frame_t me;} fra;
3033 val_t tmp;
3034 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3035 fra.me.file = LOCATE_syntax___mmbuilder;
3036 fra.me.line = 491;
3037 fra.me.meth = LOCATE_syntax___mmbuilder___AImport___visibility_level;
3038 fra.me.has_broke = 0;
3039 fra.me.REG_size = 0;
3040 fra.me.nitni_local_ref_head = NULL;
3041 /* syntax/mmbuilder.nit:491 */
3042 nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 491);
3043 stack_frame_head = fra.me.prev;
3044 return NIT_NULL;
3045 }
3046 static const char LOCATE_syntax___mmbuilder___AStdImport___module_name[] = "mmbuilder::AStdImport::(mmbuilder::AImport::module_name)";
3047 val_t syntax___mmbuilder___AStdImport___module_name(val_t p0){
3048 struct {struct stack_frame_t me;} fra;
3049 val_t tmp;
3050 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3051 fra.me.file = LOCATE_syntax___mmbuilder;
3052 fra.me.line = 495;
3053 fra.me.meth = LOCATE_syntax___mmbuilder___AStdImport___module_name;
3054 fra.me.has_broke = 0;
3055 fra.me.REG_size = 1;
3056 fra.me.nitni_local_ref_head = NULL;
3057 fra.me.REG[0] = NIT_NULL;
3058 fra.me.REG[0] = p0;
3059 /* syntax/mmbuilder.nit:497 */
3060 fra.me.REG[0] = CALL_parser___parser_nodes___AStdImport___n_name(fra.me.REG[0])(fra.me.REG[0]);
3061 fra.me.REG[0] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[0])(fra.me.REG[0]);
3062 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
3063 goto label1;
3064 label1: while(0);
3065 stack_frame_head = fra.me.prev;
3066 return fra.me.REG[0];
3067 }
3068 static const char LOCATE_syntax___mmbuilder___AStdImport___visibility_level[] = "mmbuilder::AStdImport::(mmbuilder::AImport::visibility_level)";
3069 val_t syntax___mmbuilder___AStdImport___visibility_level(val_t p0){
3070 struct {struct stack_frame_t me;} fra;
3071 val_t REGB0;
3072 val_t tmp;
3073 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3074 fra.me.file = LOCATE_syntax___mmbuilder;
3075 fra.me.line = 499;
3076 fra.me.meth = LOCATE_syntax___mmbuilder___AStdImport___visibility_level;
3077 fra.me.has_broke = 0;
3078 fra.me.REG_size = 1;
3079 fra.me.nitni_local_ref_head = NULL;
3080 fra.me.REG[0] = NIT_NULL;
3081 fra.me.REG[0] = p0;
3082 /* syntax/mmbuilder.nit:501 */
3083 fra.me.REG[0] = CALL_parser___parser_nodes___AStdImport___n_visibility(fra.me.REG[0])(fra.me.REG[0]);
3084 REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
3085 goto label1;
3086 label1: while(0);
3087 stack_frame_head = fra.me.prev;
3088 return REGB0;
3089 }
3090 static const char LOCATE_syntax___mmbuilder___ANoImport___module_name[] = "mmbuilder::ANoImport::(mmbuilder::AImport::module_name)";
3091 val_t syntax___mmbuilder___ANoImport___module_name(val_t p0){
3092 struct {struct stack_frame_t me;} fra;
3093 val_t tmp;
3094 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3095 fra.me.file = LOCATE_syntax___mmbuilder;
3096 fra.me.line = 505;
3097 fra.me.meth = LOCATE_syntax___mmbuilder___ANoImport___module_name;
3098 fra.me.has_broke = 0;
3099 fra.me.REG_size = 1;
3100 fra.me.nitni_local_ref_head = NULL;
3101 fra.me.REG[0] = NIT_NULL;
3102 fra.me.REG[0] = p0;
3103 /* syntax/mmbuilder.nit:507 */
3104 fra.me.REG[0] = NIT_NULL;
3105 goto label1;
3106 label1: while(0);
3107 stack_frame_head = fra.me.prev;
3108 return fra.me.REG[0];
3109 }
3110 static const char LOCATE_syntax___mmbuilder___AVisibility___level[] = "mmbuilder::AVisibility::level";
3111 val_t syntax___mmbuilder___AVisibility___level(val_t p0){
3112 struct {struct stack_frame_t me;} fra;
3113 val_t tmp;
3114 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3115 fra.me.file = LOCATE_syntax___mmbuilder;
3116 fra.me.line = 512;
3117 fra.me.meth = LOCATE_syntax___mmbuilder___AVisibility___level;
3118 fra.me.has_broke = 0;
3119 fra.me.REG_size = 0;
3120 fra.me.nitni_local_ref_head = NULL;
3121 /* syntax/mmbuilder.nit:512 */
3122 nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 512);
3123 stack_frame_head = fra.me.prev;
3124 return NIT_NULL;
3125 }
3126 static const char LOCATE_syntax___mmbuilder___APublicVisibility___level[] = "mmbuilder::APublicVisibility::(mmbuilder::AVisibility::level)";
3127 val_t syntax___mmbuilder___APublicVisibility___level(val_t p0){
3128 struct {struct stack_frame_t me;} fra;
3129 val_t REGB0;
3130 val_t tmp;
3131 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3132 fra.me.file = LOCATE_syntax___mmbuilder;
3133 fra.me.line = 516;
3134 fra.me.meth = LOCATE_syntax___mmbuilder___APublicVisibility___level;
3135 fra.me.has_broke = 0;
3136 fra.me.REG_size = 1;
3137 fra.me.nitni_local_ref_head = NULL;
3138 fra.me.REG[0] = NIT_NULL;
3139 fra.me.REG[0] = p0;
3140 /* syntax/mmbuilder.nit:516 */
3141 REGB0 = TAG_Int(1);
3142 goto label1;
3143 label1: while(0);
3144 stack_frame_head = fra.me.prev;
3145 return REGB0;
3146 }
3147 static const char LOCATE_syntax___mmbuilder___AProtectedVisibility___level[] = "mmbuilder::AProtectedVisibility::(mmbuilder::AVisibility::level)";
3148 val_t syntax___mmbuilder___AProtectedVisibility___level(val_t p0){
3149 struct {struct stack_frame_t me;} fra;
3150 val_t REGB0;
3151 val_t tmp;
3152 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3153 fra.me.file = LOCATE_syntax___mmbuilder;
3154 fra.me.line = 519;
3155 fra.me.meth = LOCATE_syntax___mmbuilder___AProtectedVisibility___level;
3156 fra.me.has_broke = 0;
3157 fra.me.REG_size = 1;
3158 fra.me.nitni_local_ref_head = NULL;
3159 fra.me.REG[0] = NIT_NULL;
3160 fra.me.REG[0] = p0;
3161 /* syntax/mmbuilder.nit:519 */
3162 REGB0 = TAG_Int(2);
3163 goto label1;
3164 label1: while(0);
3165 stack_frame_head = fra.me.prev;
3166 return REGB0;
3167 }
3168 static const char LOCATE_syntax___mmbuilder___APrivateVisibility___level[] = "mmbuilder::APrivateVisibility::(mmbuilder::AVisibility::level)";
3169 val_t syntax___mmbuilder___APrivateVisibility___level(val_t p0){
3170 struct {struct stack_frame_t me;} fra;
3171 val_t REGB0;
3172 val_t tmp;
3173 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3174 fra.me.file = LOCATE_syntax___mmbuilder;
3175 fra.me.line = 522;
3176 fra.me.meth = LOCATE_syntax___mmbuilder___APrivateVisibility___level;
3177 fra.me.has_broke = 0;
3178 fra.me.REG_size = 1;
3179 fra.me.nitni_local_ref_head = NULL;
3180 fra.me.REG[0] = NIT_NULL;
3181 fra.me.REG[0] = p0;
3182 /* syntax/mmbuilder.nit:522 */
3183 REGB0 = TAG_Int(3);
3184 goto label1;
3185 label1: while(0);
3186 stack_frame_head = fra.me.prev;
3187 return REGB0;
3188 }
3189 static const char LOCATE_syntax___mmbuilder___AIntrudeVisibility___level[] = "mmbuilder::AIntrudeVisibility::(mmbuilder::AVisibility::level)";
3190 val_t syntax___mmbuilder___AIntrudeVisibility___level(val_t p0){
3191 struct {struct stack_frame_t me;} fra;
3192 val_t REGB0;
3193 val_t tmp;
3194 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3195 fra.me.file = LOCATE_syntax___mmbuilder;
3196 fra.me.line = 525;
3197 fra.me.meth = LOCATE_syntax___mmbuilder___AIntrudeVisibility___level;
3198 fra.me.has_broke = 0;
3199 fra.me.REG_size = 1;
3200 fra.me.nitni_local_ref_head = NULL;
3201 fra.me.REG[0] = NIT_NULL;
3202 fra.me.REG[0] = p0;
3203 /* syntax/mmbuilder.nit:525 */
3204 REGB0 = TAG_Int(0);
3205 goto label1;
3206 label1: while(0);
3207 stack_frame_head = fra.me.prev;
3208 return REGB0;
3209 }
3210 static const char LOCATE_syntax___mmbuilder___AClassdef___local_class[] = "mmbuilder::AClassdef::(syntax_base::AClassdef::local_class)";
3211 val_t syntax___mmbuilder___AClassdef___local_class(val_t p0){
3212 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3213 val_t REGB0;
3214 val_t tmp;
3215 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3216 fra.me.file = LOCATE_syntax___mmbuilder;
3217 fra.me.line = 530;
3218 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___local_class;
3219 fra.me.has_broke = 0;
3220 fra.me.REG_size = 2;
3221 fra.me.nitni_local_ref_head = NULL;
3222 fra.me.REG[0] = NIT_NULL;
3223 fra.me.REG[1] = NIT_NULL;
3224 fra.me.REG[0] = p0;
3225 /* syntax/mmbuilder.nit:530 */
3226 fra.me.REG[1] = fra.me.REG[0];
3227 fra.me.REG[1] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[1]);
3228 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
3229 if (UNTAG_Bool(REGB0)) {
3230 } else {
3231 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 530);
3232 }
3233 goto label1;
3234 label1: while(0);
3235 stack_frame_head = fra.me.prev;
3236 return fra.me.REG[1];
3237 }
3238 static const char LOCATE_syntax___mmbuilder___AClassdef___name[] = "mmbuilder::AClassdef::name";
3239 val_t syntax___mmbuilder___AClassdef___name(val_t p0){
3240 struct {struct stack_frame_t me;} fra;
3241 val_t tmp;
3242 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3243 fra.me.file = LOCATE_syntax___mmbuilder;
3244 fra.me.line = 533;
3245 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___name;
3246 fra.me.has_broke = 0;
3247 fra.me.REG_size = 0;
3248 fra.me.nitni_local_ref_head = NULL;
3249 /* syntax/mmbuilder.nit:533 */
3250 nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 533);
3251 stack_frame_head = fra.me.prev;
3252 return NIT_NULL;
3253 }
3254 static const char LOCATE_syntax___mmbuilder___AClassdef___arity[] = "mmbuilder::AClassdef::arity";
3255 val_t syntax___mmbuilder___AClassdef___arity(val_t p0){
3256 struct {struct stack_frame_t me;} fra;
3257 val_t REGB0;
3258 val_t tmp;
3259 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3260 fra.me.file = LOCATE_syntax___mmbuilder;
3261 fra.me.line = 536;
3262 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___arity;
3263 fra.me.has_broke = 0;
3264 fra.me.REG_size = 1;
3265 fra.me.nitni_local_ref_head = NULL;
3266 fra.me.REG[0] = NIT_NULL;
3267 fra.me.REG[0] = p0;
3268 /* syntax/mmbuilder.nit:537 */
3269 REGB0 = TAG_Int(0);
3270 goto label1;
3271 label1: while(0);
3272 stack_frame_head = fra.me.prev;
3273 return REGB0;
3274 }
3275 static const char LOCATE_syntax___mmbuilder___AClassdef___visibility_level[] = "mmbuilder::AClassdef::visibility_level";
3276 val_t syntax___mmbuilder___AClassdef___visibility_level(val_t p0){
3277 struct {struct stack_frame_t me;} fra;
3278 val_t REGB0;
3279 val_t tmp;
3280 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3281 fra.me.file = LOCATE_syntax___mmbuilder;
3282 fra.me.line = 539;
3283 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___visibility_level;
3284 fra.me.has_broke = 0;
3285 fra.me.REG_size = 1;
3286 fra.me.nitni_local_ref_head = NULL;
3287 fra.me.REG[0] = NIT_NULL;
3288 fra.me.REG[0] = p0;
3289 /* syntax/mmbuilder.nit:540 */
3290 REGB0 = TAG_Int(1);
3291 goto label1;
3292 label1: while(0);
3293 stack_frame_head = fra.me.prev;
3294 return REGB0;
3295 }
3296 static const char LOCATE_syntax___mmbuilder___AClassdef___accept_class_builder[] = "mmbuilder::AClassdef::(mmbuilder::ANode::accept_class_builder)";
3297 void syntax___mmbuilder___AClassdef___accept_class_builder(val_t p0, val_t p1){
3298 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
3299 val_t REGB0;
3300 val_t REGB1;
3301 val_t tmp;
3302 static val_t once_value_1; /* Once value */
3303 static val_t once_value_2; /* Once value */
3304 static val_t once_value_3; /* Once value */
3305 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3306 fra.me.file = LOCATE_syntax___mmbuilder;
3307 fra.me.line = 542;
3308 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___accept_class_builder;
3309 fra.me.has_broke = 0;
3310 fra.me.REG_size = 9;
3311 fra.me.nitni_local_ref_head = NULL;
3312 fra.me.REG[0] = NIT_NULL;
3313 fra.me.REG[1] = NIT_NULL;
3314 fra.me.REG[2] = NIT_NULL;
3315 fra.me.REG[3] = NIT_NULL;
3316 fra.me.REG[4] = NIT_NULL;
3317 fra.me.REG[5] = NIT_NULL;
3318 fra.me.REG[6] = NIT_NULL;
3319 fra.me.REG[7] = NIT_NULL;
3320 fra.me.REG[8] = NIT_NULL;
3321 fra.me.REG[0] = p0;
3322 fra.me.REG[1] = p1;
3323 /* syntax/mmbuilder.nit:542 */
3324 fra.me.REG[2] = fra.me.REG[0];
3325 fra.me.REG[3] = fra.me.REG[1];
3326 /* syntax/mmbuilder.nit:545 */
3327 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
3328 /* syntax/mmbuilder.nit:546 */
3329 fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra.me.REG[4])(fra.me.REG[4]);
3330 /* syntax/mmbuilder.nit:547 */
3331 fra.me.REG[6] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3332 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
3333 if (UNTAG_Bool(REGB0)) {
3334 /* syntax/mmbuilder.nit:548 */
3335 fra.me.REG[6] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3336 fra.me.REG[6] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
3337 /* syntax/mmbuilder.nit:549 */
3338 ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]) = fra.me.REG[6];
3339 /* syntax/mmbuilder.nit:550 */
3340 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
3341 if (UNTAG_Bool(REGB0)) {
3342 /* syntax/mmbuilder.nit:552 */
3343 REGB0 = TAG_Int(5);
3344 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3345 if (!once_value_1) {
3346 fra.me.REG[8] = BOX_NativeString("Error: A class ");
3347 REGB0 = TAG_Int(15);
3348 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0);
3349 once_value_1 = fra.me.REG[8];
3350 register_static_object(&once_value_1);
3351 } else fra.me.REG[8] = once_value_1;
3352 fra.me.REG[8] = fra.me.REG[8];
3353 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3354 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3355 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3356 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3357 if (!once_value_2) {
3358 fra.me.REG[8] = BOX_NativeString(" is already defined at line ");
3359 REGB0 = TAG_Int(28);
3360 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0);
3361 once_value_2 = fra.me.REG[8];
3362 register_static_object(&once_value_2);
3363 } else fra.me.REG[8] = once_value_2;
3364 fra.me.REG[8] = fra.me.REG[8];
3365 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3366 fra.me.REG[8] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[6])(fra.me.REG[6]);
3367 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
3368 if (UNTAG_Bool(REGB0)) {
3369 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 552);
3370 }
3371 fra.me.REG[8] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[8])(fra.me.REG[8]);
3372 REGB0 = CALL_location___Location___line_start(fra.me.REG[8])(fra.me.REG[8]);
3373 fra.me.REG[8] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
3374 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3375 if (!once_value_3) {
3376 fra.me.REG[8] = BOX_NativeString(".");
3377 REGB0 = TAG_Int(1);
3378 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0);
3379 once_value_3 = fra.me.REG[8];
3380 register_static_object(&once_value_3);
3381 } else fra.me.REG[8] = once_value_3;
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[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3385 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3386 /* syntax/mmbuilder.nit:553 */
3387 goto label4;
3388 }
3389 /* syntax/mmbuilder.nit:556 */
3390 fra.me.REG[7] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[6])(fra.me.REG[6]);
3391 /* syntax/mmbuilder.nit:557 */
3392 while(1) {
3393 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
3394 if (UNTAG_Bool(REGB0)) {
3395 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 557);
3396 }
3397 fra.me.REG[8] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[7])(fra.me.REG[7]);
3398 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
3399 if (UNTAG_Bool(REGB0)) {
3400 } else {
3401 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
3402 if (UNTAG_Bool(REGB1)) {
3403 REGB1 = TAG_Bool(0);
3404 REGB0 = REGB1;
3405 } else {
3406 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
3407 REGB0 = REGB1;
3408 }
3409 }
3410 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3411 if (UNTAG_Bool(REGB0)) {
3412 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
3413 if (UNTAG_Bool(REGB0)) {
3414 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 557);
3415 }
3416 fra.me.REG[8] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[7])(fra.me.REG[7]);
3417 fra.me.REG[7] = fra.me.REG[8];
3418 } else {
3419 goto label5;
3420 }
3421 }
3422 label5: while(0);
3423 /* syntax/mmbuilder.nit:558 */
3424 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
3425 if (UNTAG_Bool(REGB0)) {
3426 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 558);
3427 }
3428 CALL_syntax___syntax_base___AClassdef___next_node__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]);
3429 } else {
3430 /* syntax/mmbuilder.nit:560 */
3431 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3432 REGB0 = CALL_syntax___mmbuilder___AClassdef___arity(fra.me.REG[2])(fra.me.REG[2]);
3433 fra.me.REG[7] = NEW_MMSrcLocalClass_syntax___syntax_base___MMSrcLocalClass___init(fra.me.REG[4], fra.me.REG[7], fra.me.REG[2], REGB0);
3434 fra.me.REG[6] = fra.me.REG[7];
3435 /* syntax/mmbuilder.nit:561 */
3436 ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]) = fra.me.REG[6];
3437 /* syntax/mmbuilder.nit:562 */
3438 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3439 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7], fra.me.REG[6]);
3440 /* syntax/mmbuilder.nit:563 */
3441 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3442 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
3443 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3444 if (UNTAG_Bool(REGB0)) {
3445 /* syntax/mmbuilder.nit:564 */
3446 CALL_syntax___mmbuilder___AClassdef___build_class_introduction(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3447 } else {
3448 /* syntax/mmbuilder.nit:566 */
3449 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3450 fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMModule___global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
3451 /* syntax/mmbuilder.nit:567 */
3452 CALL_syntax___mmbuilder___AClassdef___build_class_refinement(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[7]);
3453 }
3454 }
3455 /* syntax/mmbuilder.nit:571 */
3456 REGB0 = TAG_Int(0);
3457 CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
3458 /* syntax/mmbuilder.nit:572 */
3459 fra.me.REG[6] = CALL_syntax___syntax_base___MMSrcLocalClass___formal_dict(fra.me.REG[6])(fra.me.REG[6]);
3460 CALL_syntax___mmbuilder___ClassBuilderVisitor___formals__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
3461 /* syntax/mmbuilder.nit:575 */
3462 CALL_SUPER_syntax___mmbuilder___AClassdef___accept_class_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3463 /* syntax/mmbuilder.nit:578 */
3464 CALL_syntax___mmbuilder___ClassBuilderVisitor___formals__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3465 label4: while(0);
3466 stack_frame_head = fra.me.prev;
3467 return;
3468 }
3469 static const char LOCATE_syntax___mmbuilder___AClassdef___build_class_introduction[] = "mmbuilder::AClassdef::build_class_introduction";
3470 void syntax___mmbuilder___AClassdef___build_class_introduction(val_t p0, val_t p1){
3471 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
3472 val_t REGB0;
3473 val_t REGB1;
3474 val_t tmp;
3475 static val_t once_value_1; /* Once value */
3476 static val_t once_value_2; /* Once value */
3477 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3478 fra.me.file = LOCATE_syntax___mmbuilder;
3479 fra.me.line = 581;
3480 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___build_class_introduction;
3481 fra.me.has_broke = 0;
3482 fra.me.REG_size = 5;
3483 fra.me.nitni_local_ref_head = NULL;
3484 fra.me.REG[0] = NIT_NULL;
3485 fra.me.REG[1] = NIT_NULL;
3486 fra.me.REG[2] = NIT_NULL;
3487 fra.me.REG[3] = NIT_NULL;
3488 fra.me.REG[4] = NIT_NULL;
3489 fra.me.REG[0] = p0;
3490 fra.me.REG[1] = p1;
3491 /* syntax/mmbuilder.nit:583 */
3492 fra.me.REG[2] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[0])(fra.me.REG[0]);
3493 CALL_metamodel___abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
3494 /* syntax/mmbuilder.nit:584 */
3495 fra.me.REG[2] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[0])(fra.me.REG[0]);
3496 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
3497 /* syntax/mmbuilder.nit:586 */
3498 REGB0 = CALL_syntax___mmbuilder___AClassdef___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
3499 CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
3500 /* syntax/mmbuilder.nit:587 */
3501 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
3502 if (UNTAG_Bool(REGB0)) {
3503 /* syntax/mmbuilder.nit:588 */
3504 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[0])(fra.me.REG[0]);
3505 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3506 if (UNTAG_Bool(REGB0)) {
3507 } else {
3508 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3509 if (UNTAG_Bool(REGB1)) {
3510 REGB1 = TAG_Bool(0);
3511 REGB0 = REGB1;
3512 } else {
3513 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3514 REGB0 = REGB1;
3515 }
3516 }
3517 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3518 if (UNTAG_Bool(REGB0)) {
3519 /* syntax/mmbuilder.nit:589 */
3520 REGB0 = TAG_Int(3);
3521 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3522 if (!once_value_1) {
3523 fra.me.REG[4] = BOX_NativeString("Redef error: No class ");
3524 REGB0 = TAG_Int(22);
3525 fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
3526 once_value_1 = fra.me.REG[4];
3527 register_static_object(&once_value_1);
3528 } else fra.me.REG[4] = once_value_1;
3529 fra.me.REG[4] = fra.me.REG[4];
3530 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3531 fra.me.REG[4] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[0])(fra.me.REG[0]);
3532 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3533 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3534 if (!once_value_2) {
3535 fra.me.REG[4] = BOX_NativeString(" is imported. Remove the redef keyword to define a new class.");
3536 REGB0 = TAG_Int(61);
3537 fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
3538 once_value_2 = fra.me.REG[4];
3539 register_static_object(&once_value_2);
3540 } else fra.me.REG[4] = once_value_2;
3541 fra.me.REG[4] = fra.me.REG[4];
3542 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3543 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3544 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
3545 /* syntax/mmbuilder.nit:590 */
3546 goto label3;
3547 }
3548 /* syntax/mmbuilder.nit:592 */
3549 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3550 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[3])(fra.me.REG[3]);
3551 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
3552 /* syntax/mmbuilder.nit:593 */
3553 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3554 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[3])(fra.me.REG[3]);
3555 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
3556 /* syntax/mmbuilder.nit:594 */
3557 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3558 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[0])(fra.me.REG[0]);
3559 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
3560 }
3561 label3: while(0);
3562 stack_frame_head = fra.me.prev;
3563 return;
3564 }
3565 static const char LOCATE_syntax___mmbuilder___AClassdef___build_class_refinement[] = "mmbuilder::AClassdef::build_class_refinement";
3566 void syntax___mmbuilder___AClassdef___build_class_refinement(val_t p0, val_t p1, val_t p2){
3567 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
3568 val_t REGB0;
3569 val_t REGB1;
3570 val_t REGB2;
3571 val_t tmp;
3572 static val_t once_value_1; /* Once value */
3573 static val_t once_value_2; /* Once value */
3574 static val_t once_value_4; /* Once value */
3575 static val_t once_value_5; /* Once value */
3576 static val_t once_value_6; /* Once value */
3577 static val_t once_value_7; /* Once value */
3578 static val_t once_value_8; /* Once value */
3579 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3580 fra.me.file = LOCATE_syntax___mmbuilder;
3581 fra.me.line = 598;
3582 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___build_class_refinement;
3583 fra.me.has_broke = 0;
3584 fra.me.REG_size = 5;
3585 fra.me.nitni_local_ref_head = NULL;
3586 fra.me.REG[0] = NIT_NULL;
3587 fra.me.REG[1] = NIT_NULL;
3588 fra.me.REG[2] = NIT_NULL;
3589 fra.me.REG[3] = NIT_NULL;
3590 fra.me.REG[4] = NIT_NULL;
3591 fra.me.REG[0] = p0;
3592 fra.me.REG[1] = p1;
3593 fra.me.REG[2] = p2;
3594 /* syntax/mmbuilder.nit:600 */
3595 fra.me.REG[3] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[0])(fra.me.REG[0]);
3596 CALL_metamodel___abstractmetamodel___MMLocalClass___set_global(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
3597 /* syntax/mmbuilder.nit:602 */
3598 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
3599 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]);
3600 /* syntax/mmbuilder.nit:603 */
3601 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
3602 if (UNTAG_Bool(REGB0)) {
3603 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[0])(fra.me.REG[0]);
3604 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3605 if (UNTAG_Bool(REGB0)) {
3606 } else {
3607 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3608 if (UNTAG_Bool(REGB1)) {
3609 REGB1 = TAG_Bool(0);
3610 REGB0 = REGB1;
3611 } else {
3612 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3613 REGB0 = REGB1;
3614 }
3615 }
3616 } else {
3617 REGB1 = TAG_Bool(0);
3618 REGB0 = REGB1;
3619 }
3620 if (UNTAG_Bool(REGB0)) {
3621 /* syntax/mmbuilder.nit:604 */
3622 REGB0 = TAG_Int(3);
3623 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3624 if (!once_value_1) {
3625 fra.me.REG[4] = BOX_NativeString("Redef error: ");
3626 REGB0 = TAG_Int(13);
3627 fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
3628 once_value_1 = fra.me.REG[4];
3629 register_static_object(&once_value_1);
3630 } else fra.me.REG[4] = once_value_1;
3631 fra.me.REG[4] = fra.me.REG[4];
3632 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3633 fra.me.REG[4] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[0])(fra.me.REG[0]);
3634 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3635 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3636 if (!once_value_2) {
3637 fra.me.REG[4] = BOX_NativeString(" is an imported class. Add the redef keyword to refine it.");
3638 REGB0 = TAG_Int(58);
3639 fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
3640 once_value_2 = fra.me.REG[4];
3641 register_static_object(&once_value_2);
3642 } else fra.me.REG[4] = once_value_2;
3643 fra.me.REG[4] = fra.me.REG[4];
3644 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3645 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3646 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
3647 /* syntax/mmbuilder.nit:605 */
3648 goto label3;
3649 }
3650 /* syntax/mmbuilder.nit:608 */
3651 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[2])(fra.me.REG[2]);
3652 REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[3])(fra.me.REG[3]);
3653 fra.me.REG[3] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[0]);
3654 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3655 if (UNTAG_Bool(REGB1)) {
3656 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 608);
3657 }
3658 REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[3])(fra.me.REG[3]);
3659 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
3660 if (UNTAG_Bool(REGB2)) {
3661 } else {
3662 /* ../lib/standard/kernel.nit:237 */
3663 REGB1 = TAG_Bool((REGB0)==(REGB1));
3664 /* syntax/mmbuilder.nit:608 */
3665 REGB2 = REGB1;
3666 }
3667 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
3668 if (UNTAG_Bool(REGB2)) {
3669 /* syntax/mmbuilder.nit:609 */
3670 REGB2 = TAG_Int(5);
3671 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
3672 if (!once_value_4) {
3673 fra.me.REG[4] = BOX_NativeString("Redef error: Formal parameter arity missmatch; got ");
3674 REGB2 = TAG_Int(51);
3675 fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
3676 once_value_4 = fra.me.REG[4];
3677 register_static_object(&once_value_4);
3678 } else fra.me.REG[4] = once_value_4;
3679 fra.me.REG[4] = fra.me.REG[4];
3680 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3681 fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[0]);
3682 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3683 if (UNTAG_Bool(REGB2)) {
3684 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 609);
3685 }
3686 REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
3687 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
3688 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3689 if (!once_value_5) {
3690 fra.me.REG[4] = BOX_NativeString(", expected ");
3691 REGB2 = TAG_Int(11);
3692 fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
3693 once_value_5 = fra.me.REG[4];
3694 register_static_object(&once_value_5);
3695 } else fra.me.REG[4] = once_value_5;
3696 fra.me.REG[4] = fra.me.REG[4];
3697 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3698 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[2])(fra.me.REG[2]);
3699 REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
3700 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
3701 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
3702 if (!once_value_6) {
3703 fra.me.REG[4] = BOX_NativeString(".");
3704 REGB2 = TAG_Int(1);
3705 fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
3706 once_value_6 = fra.me.REG[4];
3707 register_static_object(&once_value_6);
3708 } else fra.me.REG[4] = once_value_6;
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[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3712 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
3713 }
3714 /* syntax/mmbuilder.nit:612 */
3715 REGB2 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
3716 if (UNTAG_Bool(REGB2)) {
3717 REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[2])(fra.me.REG[2]);
3718 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
3719 if (UNTAG_Bool(REGB2)) {
3720 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3721 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[3])(fra.me.REG[3]);
3722 } else {
3723 REGB1 = TAG_Bool(0);
3724 REGB2 = REGB1;
3725 }
3726 if (UNTAG_Bool(REGB2)) {
3727 REGB2 = TAG_Bool(1);
3728 } else {
3729 /* syntax/mmbuilder.nit:613 */
3730 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[2])(fra.me.REG[2]);
3731 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3732 /* syntax/mmbuilder.nit:612 */
3733 REGB2 = REGB1;
3734 }
3735 if (UNTAG_Bool(REGB2)) {
3736 /* syntax/mmbuilder.nit:613 */
3737 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3738 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[3])(fra.me.REG[3]);
3739 } else {
3740 /* syntax/mmbuilder.nit:612 */
3741 REGB1 = TAG_Bool(0);
3742 REGB2 = REGB1;
3743 }
3744 if (UNTAG_Bool(REGB2)) {
3745 REGB2 = TAG_Bool(1);
3746 } else {
3747 /* syntax/mmbuilder.nit:614 */
3748 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[2])(fra.me.REG[2]);
3749 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3750 /* syntax/mmbuilder.nit:612 */
3751 REGB2 = REGB1;
3752 }
3753 if (UNTAG_Bool(REGB2)) {
3754 /* syntax/mmbuilder.nit:614 */
3755 fra.me.REG[2] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
3756 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[2])(fra.me.REG[2]);
3757 } else {
3758 /* syntax/mmbuilder.nit:612 */
3759 REGB1 = TAG_Bool(0);
3760 REGB2 = REGB1;
3761 }
3762 } else {
3763 REGB1 = TAG_Bool(0);
3764 REGB2 = REGB1;
3765 }
3766 if (UNTAG_Bool(REGB2)) {
3767 /* syntax/mmbuilder.nit:616 */
3768 REGB2 = TAG_Int(3);
3769 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
3770 if (!once_value_7) {
3771 fra.me.REG[3] = BOX_NativeString("Redef error: cannot change kind of class ");
3772 REGB2 = TAG_Int(41);
3773 fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB2);
3774 once_value_7 = fra.me.REG[3];
3775 register_static_object(&once_value_7);
3776 } else fra.me.REG[3] = once_value_7;
3777 fra.me.REG[3] = fra.me.REG[3];
3778 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3779 fra.me.REG[3] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[0])(fra.me.REG[0]);
3780 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3781 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3782 if (!once_value_8) {
3783 fra.me.REG[3] = BOX_NativeString(".");
3784 REGB2 = TAG_Int(1);
3785 fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB2);
3786 once_value_8 = fra.me.REG[3];
3787 register_static_object(&once_value_8);
3788 } else fra.me.REG[3] = once_value_8;
3789 fra.me.REG[3] = fra.me.REG[3];
3790 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3791 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3792 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
3793 }
3794 label3: while(0);
3795 stack_frame_head = fra.me.prev;
3796 return;
3797 }
3798 static const char LOCATE_syntax___mmbuilder___AClassdef___accept_class_verifier[] = "mmbuilder::AClassdef::(mmbuilder::ANode::accept_class_verifier)";
3799 void syntax___mmbuilder___AClassdef___accept_class_verifier(val_t p0, val_t p1){
3800 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
3801 val_t REGB0;
3802 val_t REGB1;
3803 val_t REGB2;
3804 val_t tmp;
3805 static val_t once_value_1; /* Once value */
3806 static val_t once_value_2; /* Once value */
3807 static val_t once_value_3; /* Once value */
3808 static val_t once_value_4; /* Once value */
3809 static val_t once_value_5; /* Once value */
3810 static val_t once_value_6; /* Once value */
3811 static val_t once_value_7; /* Once value */
3812 static val_t once_value_8; /* Once value */
3813 static val_t once_value_9; /* Once value */
3814 static val_t once_value_10; /* Once value */
3815 static val_t once_value_11; /* Once value */
3816 static val_t once_value_12; /* Once value */
3817 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3818 fra.me.file = LOCATE_syntax___mmbuilder;
3819 fra.me.line = 620;
3820 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___accept_class_verifier;
3821 fra.me.has_broke = 0;
3822 fra.me.REG_size = 9;
3823 fra.me.nitni_local_ref_head = NULL;
3824 fra.me.REG[0] = NIT_NULL;
3825 fra.me.REG[1] = NIT_NULL;
3826 fra.me.REG[2] = NIT_NULL;
3827 fra.me.REG[3] = NIT_NULL;
3828 fra.me.REG[4] = NIT_NULL;
3829 fra.me.REG[5] = NIT_NULL;
3830 fra.me.REG[6] = NIT_NULL;
3831 fra.me.REG[7] = NIT_NULL;
3832 fra.me.REG[8] = NIT_NULL;
3833 fra.me.REG[0] = p0;
3834 fra.me.REG[1] = p1;
3835 /* syntax/mmbuilder.nit:620 */
3836 fra.me.REG[2] = fra.me.REG[0];
3837 fra.me.REG[3] = fra.me.REG[1];
3838 /* syntax/mmbuilder.nit:622 */
3839 CALL_SUPER_syntax___mmbuilder___AClassdef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3840 /* syntax/mmbuilder.nit:623 */
3841 fra.me.REG[1] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3842 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3843 if (UNTAG_Bool(REGB0)) {
3844 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 623);
3845 }
3846 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
3847 /* syntax/mmbuilder.nit:624 */
3848 fra.me.REG[0] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
3849 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
3850 if (UNTAG_Bool(REGB0)) {
3851 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 624);
3852 }
3853 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
3854 fra.me.REG[0] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[0])(fra.me.REG[0]);
3855 /* ../lib/standard/collection/array.nit:270 */
3856 REGB0 = TAG_Int(0);
3857 /* ../lib/standard/collection/array.nit:271 */
3858 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3859 if (UNTAG_Bool(REGB1)) {
3860 } else {
3861 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
3862 }
3863 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
3864 /* ../lib/standard/collection/array.nit:272 */
3865 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
3866 /* ../lib/standard/collection/array.nit:273 */
3867 while(1) {
3868 /* ../lib/standard/collection/array.nit:24 */
3869 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
3870 if (UNTAG_Bool(REGB1)) {
3871 } else {
3872 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
3873 }
3874 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
3875 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3876 if (UNTAG_Bool(REGB2)) {
3877 } else {
3878 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3879 }
3880 /* ../lib/standard/kernel.nit:242 */
3881 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3882 /* ../lib/standard/collection/array.nit:273 */
3883 if (UNTAG_Bool(REGB1)) {
3884 /* ../lib/standard/collection/array.nit:274 */
3885 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3886 if (UNTAG_Bool(REGB1)) {
3887 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
3888 }
3889 /* ../lib/standard/collection/array.nit:725 */
3890 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
3891 /* syntax/mmbuilder.nit:625 */
3892 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
3893 /* syntax/mmbuilder.nit:626 */
3894 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
3895 if (UNTAG_Bool(REGB1)) {
3896 /* syntax/mmbuilder.nit:627 */
3897 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
3898 if (UNTAG_Bool(REGB1)) {
3899 /* syntax/mmbuilder.nit:628 */
3900 REGB1 = TAG_Int(5);
3901 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
3902 if (!once_value_1) {
3903 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
3904 REGB1 = TAG_Int(25);
3905 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
3906 once_value_1 = fra.me.REG[8];
3907 register_static_object(&once_value_1);
3908 } else fra.me.REG[8] = once_value_1;
3909 fra.me.REG[8] = fra.me.REG[8];
3910 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3911 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3912 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3913 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3914 if (!once_value_2) {
3915 fra.me.REG[8] = BOX_NativeString(" try to specialise enum class ");
3916 REGB1 = TAG_Int(30);
3917 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
3918 once_value_2 = fra.me.REG[8];
3919 register_static_object(&once_value_2);
3920 } else fra.me.REG[8] = once_value_2;
3921 fra.me.REG[8] = fra.me.REG[8];
3922 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3923 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3924 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3925 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3926 if (!once_value_3) {
3927 fra.me.REG[8] = BOX_NativeString(".");
3928 REGB1 = TAG_Int(1);
3929 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
3930 once_value_3 = fra.me.REG[8];
3931 register_static_object(&once_value_3);
3932 } else fra.me.REG[8] = once_value_3;
3933 fra.me.REG[8] = fra.me.REG[8];
3934 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3935 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3936 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3937 } else {
3938 /* syntax/mmbuilder.nit:629 */
3939 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
3940 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3941 if (UNTAG_Bool(REGB1)) {
3942 /* syntax/mmbuilder.nit:630 */
3943 REGB1 = TAG_Int(5);
3944 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
3945 if (!once_value_4) {
3946 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
3947 REGB1 = TAG_Int(25);
3948 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
3949 once_value_4 = fra.me.REG[8];
3950 register_static_object(&once_value_4);
3951 } else fra.me.REG[8] = once_value_4;
3952 fra.me.REG[8] = fra.me.REG[8];
3953 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3954 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
3955 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3956 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3957 if (!once_value_5) {
3958 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
3959 REGB1 = TAG_Int(25);
3960 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
3961 once_value_5 = fra.me.REG[8];
3962 register_static_object(&once_value_5);
3963 } else fra.me.REG[8] = once_value_5;
3964 fra.me.REG[8] = fra.me.REG[8];
3965 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3966 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
3967 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
3968 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3969 if (!once_value_6) {
3970 fra.me.REG[8] = BOX_NativeString(".");
3971 REGB1 = TAG_Int(1);
3972 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
3973 once_value_6 = fra.me.REG[8];
3974 register_static_object(&once_value_6);
3975 } else fra.me.REG[8] = once_value_6;
3976 fra.me.REG[8] = fra.me.REG[8];
3977 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3978 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3979 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
3980 }
3981 }
3982 } else {
3983 /* syntax/mmbuilder.nit:632 */
3984 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
3985 if (UNTAG_Bool(REGB1)) {
3986 /* syntax/mmbuilder.nit:633 */
3987 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
3988 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3989 if (UNTAG_Bool(REGB1)) {
3990 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
3991 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3992 } else {
3993 REGB2 = TAG_Bool(0);
3994 REGB1 = REGB2;
3995 }
3996 if (UNTAG_Bool(REGB1)) {
3997 /* syntax/mmbuilder.nit:634 */
3998 REGB1 = TAG_Int(5);
3999 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4000 if (!once_value_7) {
4001 fra.me.REG[8] = BOX_NativeString("Special error: Enum class ");
4002 REGB1 = TAG_Int(26);
4003 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
4004 once_value_7 = fra.me.REG[8];
4005 register_static_object(&once_value_7);
4006 } else fra.me.REG[8] = once_value_7;
4007 fra.me.REG[8] = fra.me.REG[8];
4008 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4009 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4010 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4011 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4012 if (!once_value_8) {
4013 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
4014 REGB1 = TAG_Int(25);
4015 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
4016 once_value_8 = fra.me.REG[8];
4017 register_static_object(&once_value_8);
4018 } else fra.me.REG[8] = once_value_8;
4019 fra.me.REG[8] = fra.me.REG[8];
4020 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4021 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4022 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4023 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4024 if (!once_value_9) {
4025 fra.me.REG[8] = BOX_NativeString(".");
4026 REGB1 = TAG_Int(1);
4027 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
4028 once_value_9 = fra.me.REG[8];
4029 register_static_object(&once_value_9);
4030 } else fra.me.REG[8] = once_value_9;
4031 fra.me.REG[8] = fra.me.REG[8];
4032 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4033 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4034 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4035 }
4036 } else {
4037 /* syntax/mmbuilder.nit:637 */
4038 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
4039 if (UNTAG_Bool(REGB1)) {
4040 /* syntax/mmbuilder.nit:638 */
4041 REGB1 = TAG_Int(5);
4042 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4043 if (!once_value_10) {
4044 fra.me.REG[7] = BOX_NativeString("Special error: Class ");
4045 REGB1 = TAG_Int(21);
4046 fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB1);
4047 once_value_10 = fra.me.REG[7];
4048 register_static_object(&once_value_10);
4049 } else fra.me.REG[7] = once_value_10;
4050 fra.me.REG[7] = fra.me.REG[7];
4051 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4052 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4053 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4054 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4055 if (!once_value_11) {
4056 fra.me.REG[7] = BOX_NativeString(" try to specialise enum class ");
4057 REGB1 = TAG_Int(30);
4058 fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB1);
4059 once_value_11 = fra.me.REG[7];
4060 register_static_object(&once_value_11);
4061 } else fra.me.REG[7] = once_value_11;
4062 fra.me.REG[7] = fra.me.REG[7];
4063 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4064 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4065 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4066 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
4067 if (!once_value_12) {
4068 fra.me.REG[5] = BOX_NativeString(".");
4069 REGB1 = TAG_Int(1);
4070 fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB1);
4071 once_value_12 = fra.me.REG[5];
4072 register_static_object(&once_value_12);
4073 } else fra.me.REG[5] = once_value_12;
4074 fra.me.REG[5] = fra.me.REG[5];
4075 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
4076 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4077 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
4078 }
4079 }
4080 }
4081 /* ../lib/standard/collection/array.nit:275 */
4082 REGB1 = TAG_Int(1);
4083 /* ../lib/standard/kernel.nit:245 */
4084 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
4085 /* ../lib/standard/collection/array.nit:275 */
4086 REGB0 = REGB1;
4087 } else {
4088 /* ../lib/standard/collection/array.nit:273 */
4089 goto label13;
4090 }
4091 }
4092 label13: while(0);
4093 stack_frame_head = fra.me.prev;
4094 return;
4095 }
4096 static const char LOCATE_syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor[] = "mmbuilder::AClassdef::(syntax_base::ANode::accept_abs_syntax_visitor)";
4097 void syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
4098 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4099 val_t tmp;
4100 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4101 fra.me.file = LOCATE_syntax___mmbuilder;
4102 fra.me.line = 645;
4103 fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor;
4104 fra.me.has_broke = 0;
4105 fra.me.REG_size = 4;
4106 fra.me.nitni_local_ref_head = NULL;
4107 fra.me.REG[0] = NIT_NULL;
4108 fra.me.REG[1] = NIT_NULL;
4109 fra.me.REG[2] = NIT_NULL;
4110 fra.me.REG[3] = NIT_NULL;
4111 fra.me.REG[0] = p0;
4112 fra.me.REG[1] = p1;
4113 /* syntax/mmbuilder.nit:645 */
4114 fra.me.REG[2] = fra.me.REG[0];
4115 fra.me.REG[3] = fra.me.REG[1];
4116 /* syntax/mmbuilder.nit:647 */
4117 fra.me.REG[2] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4118 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
4119 /* syntax/mmbuilder.nit:648 */
4120 CALL_SUPER_syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4121 /* syntax/mmbuilder.nit:649 */
4122 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
4123 stack_frame_head = fra.me.prev;
4124 return;
4125 }
4126 static const char LOCATE_syntax___mmbuilder___AClasskind___is_interface[] = "mmbuilder::AClasskind::is_interface";
4127 val_t syntax___mmbuilder___AClasskind___is_interface(val_t p0){
4128 struct {struct stack_frame_t me;} fra;
4129 val_t REGB0;
4130 val_t tmp;
4131 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4132 fra.me.file = LOCATE_syntax___mmbuilder;
4133 fra.me.line = 654;
4134 fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_interface;
4135 fra.me.has_broke = 0;
4136 fra.me.REG_size = 1;
4137 fra.me.nitni_local_ref_head = NULL;
4138 fra.me.REG[0] = NIT_NULL;
4139 fra.me.REG[0] = p0;
4140 /* syntax/mmbuilder.nit:654 */
4141 REGB0 = TAG_Bool(0);
4142 goto label1;
4143 label1: while(0);
4144 stack_frame_head = fra.me.prev;
4145 return REGB0;
4146 }
4147 static const char LOCATE_syntax___mmbuilder___AClasskind___is_enum[] = "mmbuilder::AClasskind::is_enum";
4148 val_t syntax___mmbuilder___AClasskind___is_enum(val_t p0){
4149 struct {struct stack_frame_t me;} fra;
4150 val_t REGB0;
4151 val_t tmp;
4152 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4153 fra.me.file = LOCATE_syntax___mmbuilder;
4154 fra.me.line = 655;
4155 fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_enum;
4156 fra.me.has_broke = 0;
4157 fra.me.REG_size = 1;
4158 fra.me.nitni_local_ref_head = NULL;
4159 fra.me.REG[0] = NIT_NULL;
4160 fra.me.REG[0] = p0;
4161 /* syntax/mmbuilder.nit:655 */
4162 REGB0 = TAG_Bool(0);
4163 goto label1;
4164 label1: while(0);
4165 stack_frame_head = fra.me.prev;
4166 return REGB0;
4167 }
4168 static const char LOCATE_syntax___mmbuilder___AClasskind___is_abstract[] = "mmbuilder::AClasskind::is_abstract";
4169 val_t syntax___mmbuilder___AClasskind___is_abstract(val_t p0){
4170 struct {struct stack_frame_t me;} fra;
4171 val_t REGB0;
4172 val_t tmp;
4173 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4174 fra.me.file = LOCATE_syntax___mmbuilder;
4175 fra.me.line = 656;
4176 fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_abstract;
4177 fra.me.has_broke = 0;
4178 fra.me.REG_size = 1;
4179 fra.me.nitni_local_ref_head = NULL;
4180 fra.me.REG[0] = NIT_NULL;
4181 fra.me.REG[0] = p0;
4182 /* syntax/mmbuilder.nit:656 */
4183 REGB0 = TAG_Bool(0);
4184 goto label1;
4185 label1: while(0);
4186 stack_frame_head = fra.me.prev;
4187 return REGB0;
4188 }
4189 static const char LOCATE_syntax___mmbuilder___AClasskind___is_extern[] = "mmbuilder::AClasskind::is_extern";
4190 val_t syntax___mmbuilder___AClasskind___is_extern(val_t p0){
4191 struct {struct stack_frame_t me;} fra;
4192 val_t REGB0;
4193 val_t tmp;
4194 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4195 fra.me.file = LOCATE_syntax___mmbuilder;
4196 fra.me.line = 657;
4197 fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_extern;
4198 fra.me.has_broke = 0;
4199 fra.me.REG_size = 1;
4200 fra.me.nitni_local_ref_head = NULL;
4201 fra.me.REG[0] = NIT_NULL;
4202 fra.me.REG[0] = p0;
4203 /* syntax/mmbuilder.nit:657 */
4204 REGB0 = TAG_Bool(0);
4205 goto label1;
4206 label1: while(0);
4207 stack_frame_head = fra.me.prev;
4208 return REGB0;
4209 }
4210 static const char LOCATE_syntax___mmbuilder___AInterfaceClasskind___is_interface[] = "mmbuilder::AInterfaceClasskind::(mmbuilder::AClasskind::is_interface)";
4211 val_t syntax___mmbuilder___AInterfaceClasskind___is_interface(val_t p0){
4212 struct {struct stack_frame_t me;} fra;
4213 val_t REGB0;
4214 val_t tmp;
4215 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4216 fra.me.file = LOCATE_syntax___mmbuilder;
4217 fra.me.line = 661;
4218 fra.me.meth = LOCATE_syntax___mmbuilder___AInterfaceClasskind___is_interface;
4219 fra.me.has_broke = 0;
4220 fra.me.REG_size = 1;
4221 fra.me.nitni_local_ref_head = NULL;
4222 fra.me.REG[0] = NIT_NULL;
4223 fra.me.REG[0] = p0;
4224 /* syntax/mmbuilder.nit:661 */
4225 REGB0 = TAG_Bool(1);
4226 goto label1;
4227 label1: while(0);
4228 stack_frame_head = fra.me.prev;
4229 return REGB0;
4230 }
4231 static const char LOCATE_syntax___mmbuilder___AEnumClasskind___is_enum[] = "mmbuilder::AEnumClasskind::(mmbuilder::AClasskind::is_enum)";
4232 val_t syntax___mmbuilder___AEnumClasskind___is_enum(val_t p0){
4233 struct {struct stack_frame_t me;} fra;
4234 val_t REGB0;
4235 val_t tmp;
4236 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4237 fra.me.file = LOCATE_syntax___mmbuilder;
4238 fra.me.line = 664;
4239 fra.me.meth = LOCATE_syntax___mmbuilder___AEnumClasskind___is_enum;
4240 fra.me.has_broke = 0;
4241 fra.me.REG_size = 1;
4242 fra.me.nitni_local_ref_head = NULL;
4243 fra.me.REG[0] = NIT_NULL;
4244 fra.me.REG[0] = p0;
4245 /* syntax/mmbuilder.nit:664 */
4246 REGB0 = TAG_Bool(1);
4247 goto label1;
4248 label1: while(0);
4249 stack_frame_head = fra.me.prev;
4250 return REGB0;
4251 }
4252 static const char LOCATE_syntax___mmbuilder___AExternClasskind___is_extern[] = "mmbuilder::AExternClasskind::(mmbuilder::AClasskind::is_extern)";
4253 val_t syntax___mmbuilder___AExternClasskind___is_extern(val_t p0){
4254 struct {struct stack_frame_t me;} fra;
4255 val_t REGB0;
4256 val_t tmp;
4257 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4258 fra.me.file = LOCATE_syntax___mmbuilder;
4259 fra.me.line = 667;
4260 fra.me.meth = LOCATE_syntax___mmbuilder___AExternClasskind___is_extern;
4261 fra.me.has_broke = 0;
4262 fra.me.REG_size = 1;
4263 fra.me.nitni_local_ref_head = NULL;
4264 fra.me.REG[0] = NIT_NULL;
4265 fra.me.REG[0] = p0;
4266 /* syntax/mmbuilder.nit:667 */
4267 REGB0 = TAG_Bool(1);
4268 goto label1;
4269 label1: while(0);
4270 stack_frame_head = fra.me.prev;
4271 return REGB0;
4272 }
4273 static const char LOCATE_syntax___mmbuilder___AAbstractClasskind___is_abstract[] = "mmbuilder::AAbstractClasskind::(mmbuilder::AClasskind::is_abstract)";
4274 val_t syntax___mmbuilder___AAbstractClasskind___is_abstract(val_t p0){
4275 struct {struct stack_frame_t me;} fra;
4276 val_t REGB0;
4277 val_t tmp;
4278 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4279 fra.me.file = LOCATE_syntax___mmbuilder;
4280 fra.me.line = 670;
4281 fra.me.meth = LOCATE_syntax___mmbuilder___AAbstractClasskind___is_abstract;
4282 fra.me.has_broke = 0;
4283 fra.me.REG_size = 1;
4284 fra.me.nitni_local_ref_head = NULL;
4285 fra.me.REG[0] = NIT_NULL;
4286 fra.me.REG[0] = p0;
4287 /* syntax/mmbuilder.nit:670 */
4288 REGB0 = TAG_Bool(1);
4289 goto label1;
4290 label1: while(0);
4291 stack_frame_head = fra.me.prev;
4292 return REGB0;
4293 }
4294 static const char LOCATE_syntax___mmbuilder___AStdClassdef___name[] = "mmbuilder::AStdClassdef::(mmbuilder::AClassdef::name)";
4295 val_t syntax___mmbuilder___AStdClassdef___name(val_t p0){
4296 struct {struct stack_frame_t me;} fra;
4297 val_t REGB0;
4298 val_t tmp;
4299 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4300 fra.me.file = LOCATE_syntax___mmbuilder;
4301 fra.me.line = 674;
4302 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___name;
4303 fra.me.has_broke = 0;
4304 fra.me.REG_size = 1;
4305 fra.me.nitni_local_ref_head = NULL;
4306 fra.me.REG[0] = NIT_NULL;
4307 fra.me.REG[0] = p0;
4308 /* syntax/mmbuilder.nit:676 */
4309 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_id(fra.me.REG[0])(fra.me.REG[0]);
4310 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4311 if (UNTAG_Bool(REGB0)) {
4312 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 676);
4313 }
4314 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
4315 goto label1;
4316 label1: while(0);
4317 stack_frame_head = fra.me.prev;
4318 return fra.me.REG[0];
4319 }
4320 static const char LOCATE_syntax___mmbuilder___AStdClassdef___arity[] = "mmbuilder::AStdClassdef::(mmbuilder::AClassdef::arity)";
4321 val_t syntax___mmbuilder___AStdClassdef___arity(val_t p0){
4322 struct {struct stack_frame_t me;} fra;
4323 val_t REGB0;
4324 val_t tmp;
4325 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4326 fra.me.file = LOCATE_syntax___mmbuilder;
4327 fra.me.line = 678;
4328 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___arity;
4329 fra.me.has_broke = 0;
4330 fra.me.REG_size = 1;
4331 fra.me.nitni_local_ref_head = NULL;
4332 fra.me.REG[0] = NIT_NULL;
4333 fra.me.REG[0] = p0;
4334 /* syntax/mmbuilder.nit:680 */
4335 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_formaldefs(fra.me.REG[0])(fra.me.REG[0]);
4336 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
4337 goto label1;
4338 label1: while(0);
4339 stack_frame_head = fra.me.prev;
4340 return REGB0;
4341 }
4342 static const char LOCATE_syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder[] = "mmbuilder::AStdClassdef::(mmbuilder::ANode::accept_class_specialization_builder)";
4343 void syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder(val_t p0, val_t p1){
4344 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4345 val_t REGB0;
4346 val_t REGB1;
4347 val_t tmp;
4348 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4349 fra.me.file = LOCATE_syntax___mmbuilder;
4350 fra.me.line = 682;
4351 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder;
4352 fra.me.has_broke = 0;
4353 fra.me.REG_size = 4;
4354 fra.me.nitni_local_ref_head = NULL;
4355 fra.me.REG[0] = NIT_NULL;
4356 fra.me.REG[1] = NIT_NULL;
4357 fra.me.REG[2] = NIT_NULL;
4358 fra.me.REG[3] = NIT_NULL;
4359 fra.me.REG[0] = p0;
4360 fra.me.REG[1] = p1;
4361 /* syntax/mmbuilder.nit:682 */
4362 fra.me.REG[2] = fra.me.REG[0];
4363 /* syntax/mmbuilder.nit:684 */
4364 CALL_SUPER_syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4365 /* syntax/mmbuilder.nit:686 */
4366 fra.me.REG[1] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[2])(fra.me.REG[2]);
4367 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
4368 /* syntax/mmbuilder.nit:687 */
4369 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
4370 fra.me.REG[3] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[2])(fra.me.REG[2]);
4371 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[3]));
4372 if (UNTAG_Bool(REGB0)) {
4373 } else {
4374 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
4375 REGB0 = REGB1;
4376 }
4377 if (UNTAG_Bool(REGB0)) {
4378 /* syntax/mmbuilder.nit:688 */
4379 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4380 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[3])(fra.me.REG[3]);
4381 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
4382 /* syntax/mmbuilder.nit:689 */
4383 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4384 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[3])(fra.me.REG[3]);
4385 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
4386 /* syntax/mmbuilder.nit:690 */
4387 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4388 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[3])(fra.me.REG[3]);
4389 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
4390 /* syntax/mmbuilder.nit:691 */
4391 fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4392 REGB0 = CALL_syntax___mmbuilder___AClasskind___is_extern(fra.me.REG[3])(fra.me.REG[3]);
4393 CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
4394 /* syntax/mmbuilder.nit:692 */
4395 REGB0 = CALL_syntax___mmbuilder___AClassdef___visibility_level(fra.me.REG[2])(fra.me.REG[2]);
4396 CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
4397 }
4398 stack_frame_head = fra.me.prev;
4399 return;
4400 }
4401 static const char LOCATE_syntax___mmbuilder___AStdClassdef___accept_class_verifier[] = "mmbuilder::AStdClassdef::(mmbuilder::ANode::accept_class_verifier)";
4402 void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p1){
4403 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
4404 val_t REGB0;
4405 val_t REGB1;
4406 val_t REGB2;
4407 val_t tmp;
4408 static val_t once_value_1; /* Once value */
4409 static val_t once_value_2; /* Once value */
4410 static val_t once_value_3; /* Once value */
4411 static val_t once_value_4; /* Once value */
4412 static val_t once_value_5; /* Once value */
4413 static val_t once_value_6; /* Once value */
4414 static val_t once_value_7; /* Once value */
4415 static val_t once_value_8; /* Once value */
4416 static val_t once_value_9; /* Once value */
4417 static val_t once_value_10; /* Once value */
4418 static val_t once_value_11; /* Once value */
4419 static val_t once_value_12; /* Once value */
4420 static val_t once_value_13; /* Once value */
4421 static val_t once_value_14; /* Once value */
4422 static val_t once_value_15; /* Once value */
4423 static val_t once_value_16; /* Once value */
4424 static val_t once_value_17; /* Once value */
4425 static val_t once_value_18; /* Once value */
4426 static val_t once_value_19; /* Once value */
4427 static val_t once_value_20; /* Once value */
4428 static val_t once_value_23; /* Once value */
4429 static val_t once_value_24; /* Once value */
4430 static val_t once_value_25; /* Once value */
4431 static val_t once_value_26; /* Once value */
4432 static val_t once_value_27; /* Once value */
4433 static val_t once_value_28; /* Once value */
4434 static val_t once_value_29; /* Once value */
4435 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4436 fra.me.file = LOCATE_syntax___mmbuilder;
4437 fra.me.line = 695;
4438 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___accept_class_verifier;
4439 fra.me.has_broke = 0;
4440 fra.me.REG_size = 9;
4441 fra.me.nitni_local_ref_head = NULL;
4442 fra.me.REG[0] = NIT_NULL;
4443 fra.me.REG[1] = NIT_NULL;
4444 fra.me.REG[2] = NIT_NULL;
4445 fra.me.REG[3] = NIT_NULL;
4446 fra.me.REG[4] = NIT_NULL;
4447 fra.me.REG[5] = NIT_NULL;
4448 fra.me.REG[6] = NIT_NULL;
4449 fra.me.REG[7] = NIT_NULL;
4450 fra.me.REG[8] = NIT_NULL;
4451 fra.me.REG[0] = p0;
4452 fra.me.REG[1] = p1;
4453 /* syntax/mmbuilder.nit:695 */
4454 fra.me.REG[2] = fra.me.REG[0];
4455 fra.me.REG[3] = fra.me.REG[1];
4456 /* syntax/mmbuilder.nit:697 */
4457 CALL_SUPER_syntax___mmbuilder___AStdClassdef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4458 /* syntax/mmbuilder.nit:698 */
4459 fra.me.REG[1] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4460 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4461 if (UNTAG_Bool(REGB0)) {
4462 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 698);
4463 }
4464 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
4465 /* syntax/mmbuilder.nit:699 */
4466 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
4467 fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4468 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[0],fra.me.REG[4]));
4469 if (UNTAG_Bool(REGB0)) {
4470 } else {
4471 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4472 REGB0 = REGB1;
4473 }
4474 if (UNTAG_Bool(REGB0)) {
4475 /* syntax/mmbuilder.nit:701 */
4476 fra.me.REG[4] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
4477 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4478 if (UNTAG_Bool(REGB0)) {
4479 } else {
4480 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4481 if (UNTAG_Bool(REGB1)) {
4482 REGB1 = TAG_Bool(0);
4483 REGB0 = REGB1;
4484 } else {
4485 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
4486 REGB0 = REGB1;
4487 }
4488 }
4489 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4490 if (UNTAG_Bool(REGB0)) {
4491 /* syntax/mmbuilder.nit:702 */
4492 REGB0 = TAG_Int(3);
4493 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
4494 if (!once_value_1) {
4495 fra.me.REG[0] = BOX_NativeString("Redef error: No class ");
4496 REGB0 = TAG_Int(22);
4497 fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
4498 once_value_1 = fra.me.REG[0];
4499 register_static_object(&once_value_1);
4500 } else fra.me.REG[0] = once_value_1;
4501 fra.me.REG[0] = fra.me.REG[0];
4502 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
4503 fra.me.REG[0] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4504 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
4505 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
4506 if (!once_value_2) {
4507 fra.me.REG[0] = BOX_NativeString(" is imported. Remove the redef keyword to define a new class.");
4508 REGB0 = TAG_Int(61);
4509 fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
4510 once_value_2 = fra.me.REG[0];
4511 register_static_object(&once_value_2);
4512 } else fra.me.REG[0] = once_value_2;
4513 fra.me.REG[0] = fra.me.REG[0];
4514 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
4515 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4516 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]);
4517 }
4518 /* syntax/mmbuilder.nit:704 */
4519 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[1])(fra.me.REG[1]);
4520 if (UNTAG_Bool(REGB0)) {
4521 /* syntax/mmbuilder.nit:705 */
4522 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
4523 REGB0 = TAG_Bool(1);
4524 CALL_metamodel___abstractmetamodel___MMModule___is_extern_hybrid__eq(fra.me.REG[4])(fra.me.REG[4], REGB0);
4525 }
4526 /* syntax/mmbuilder.nit:708 */
4527 fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4528 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4529 if (UNTAG_Bool(REGB0)) {
4530 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 708);
4531 }
4532 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[4])(fra.me.REG[4]);
4533 fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[4])(fra.me.REG[4]);
4534 /* ../lib/standard/collection/array.nit:270 */
4535 REGB0 = TAG_Int(0);
4536 /* ../lib/standard/collection/array.nit:271 */
4537 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
4538 if (UNTAG_Bool(REGB1)) {
4539 } else {
4540 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
4541 }
4542 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
4543 /* ../lib/standard/collection/array.nit:272 */
4544 fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
4545 /* ../lib/standard/collection/array.nit:273 */
4546 while(1) {
4547 /* ../lib/standard/collection/array.nit:24 */
4548 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
4549 if (UNTAG_Bool(REGB1)) {
4550 } else {
4551 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
4552 }
4553 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
4554 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
4555 if (UNTAG_Bool(REGB2)) {
4556 } else {
4557 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4558 }
4559 /* ../lib/standard/kernel.nit:242 */
4560 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
4561 /* ../lib/standard/collection/array.nit:273 */
4562 if (UNTAG_Bool(REGB1)) {
4563 /* ../lib/standard/collection/array.nit:274 */
4564 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4565 if (UNTAG_Bool(REGB1)) {
4566 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
4567 }
4568 /* ../lib/standard/collection/array.nit:725 */
4569 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
4570 /* syntax/mmbuilder.nit:709 */
4571 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
4572 /* syntax/mmbuilder.nit:710 */
4573 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
4574 if (UNTAG_Bool(REGB1)) {
4575 /* syntax/mmbuilder.nit:711 */
4576 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
4577 if (UNTAG_Bool(REGB1)) {
4578 /* syntax/mmbuilder.nit:712 */
4579 REGB1 = TAG_Int(5);
4580 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4581 if (!once_value_3) {
4582 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
4583 REGB1 = TAG_Int(25);
4584 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
4585 once_value_3 = fra.me.REG[8];
4586 register_static_object(&once_value_3);
4587 } else fra.me.REG[8] = once_value_3;
4588 fra.me.REG[8] = fra.me.REG[8];
4589 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4590 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4591 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4592 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4593 if (!once_value_4) {
4594 fra.me.REG[8] = BOX_NativeString(" try to specialise enum class ");
4595 REGB1 = TAG_Int(30);
4596 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
4597 once_value_4 = fra.me.REG[8];
4598 register_static_object(&once_value_4);
4599 } else fra.me.REG[8] = once_value_4;
4600 fra.me.REG[8] = fra.me.REG[8];
4601 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4602 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4603 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4604 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4605 if (!once_value_5) {
4606 fra.me.REG[8] = BOX_NativeString(".");
4607 REGB1 = TAG_Int(1);
4608 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
4609 once_value_5 = fra.me.REG[8];
4610 register_static_object(&once_value_5);
4611 } else fra.me.REG[8] = once_value_5;
4612 fra.me.REG[8] = fra.me.REG[8];
4613 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4614 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4615 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4616 } else {
4617 /* syntax/mmbuilder.nit:713 */
4618 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
4619 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4620 if (UNTAG_Bool(REGB1)) {
4621 /* syntax/mmbuilder.nit:714 */
4622 REGB1 = TAG_Int(5);
4623 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4624 if (!once_value_6) {
4625 fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
4626 REGB1 = TAG_Int(25);
4627 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
4628 once_value_6 = fra.me.REG[8];
4629 register_static_object(&once_value_6);
4630 } else fra.me.REG[8] = once_value_6;
4631 fra.me.REG[8] = fra.me.REG[8];
4632 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4633 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4634 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4635 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4636 if (!once_value_7) {
4637 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
4638 REGB1 = TAG_Int(25);
4639 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
4640 once_value_7 = fra.me.REG[8];
4641 register_static_object(&once_value_7);
4642 } else fra.me.REG[8] = once_value_7;
4643 fra.me.REG[8] = fra.me.REG[8];
4644 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4645 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4646 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4647 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4648 if (!once_value_8) {
4649 fra.me.REG[8] = BOX_NativeString(".");
4650 REGB1 = TAG_Int(1);
4651 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
4652 once_value_8 = fra.me.REG[8];
4653 register_static_object(&once_value_8);
4654 } else fra.me.REG[8] = once_value_8;
4655 fra.me.REG[8] = fra.me.REG[8];
4656 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4657 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4658 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4659 }
4660 }
4661 } else {
4662 /* syntax/mmbuilder.nit:716 */
4663 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
4664 if (UNTAG_Bool(REGB1)) {
4665 /* syntax/mmbuilder.nit:717 */
4666 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
4667 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4668 if (UNTAG_Bool(REGB1)) {
4669 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
4670 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4671 } else {
4672 REGB2 = TAG_Bool(0);
4673 REGB1 = REGB2;
4674 }
4675 if (UNTAG_Bool(REGB1)) {
4676 /* syntax/mmbuilder.nit:718 */
4677 REGB1 = TAG_Int(5);
4678 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4679 if (!once_value_9) {
4680 fra.me.REG[8] = BOX_NativeString("Special error: Enum class ");
4681 REGB1 = TAG_Int(26);
4682 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
4683 once_value_9 = fra.me.REG[8];
4684 register_static_object(&once_value_9);
4685 } else fra.me.REG[8] = once_value_9;
4686 fra.me.REG[8] = fra.me.REG[8];
4687 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4688 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4689 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4690 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4691 if (!once_value_10) {
4692 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
4693 REGB1 = TAG_Int(25);
4694 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
4695 once_value_10 = fra.me.REG[8];
4696 register_static_object(&once_value_10);
4697 } else fra.me.REG[8] = once_value_10;
4698 fra.me.REG[8] = fra.me.REG[8];
4699 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4700 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4701 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4702 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4703 if (!once_value_11) {
4704 fra.me.REG[8] = BOX_NativeString(".");
4705 REGB1 = TAG_Int(1);
4706 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
4707 once_value_11 = fra.me.REG[8];
4708 register_static_object(&once_value_11);
4709 } else fra.me.REG[8] = once_value_11;
4710 fra.me.REG[8] = fra.me.REG[8];
4711 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4712 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4713 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4714 }
4715 } else {
4716 /* syntax/mmbuilder.nit:720 */
4717 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[1])(fra.me.REG[1]);
4718 if (UNTAG_Bool(REGB1)) {
4719 /* syntax/mmbuilder.nit:721 */
4720 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
4721 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4722 if (UNTAG_Bool(REGB1)) {
4723 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[6])(fra.me.REG[6]);
4724 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4725 } else {
4726 REGB2 = TAG_Bool(0);
4727 REGB1 = REGB2;
4728 }
4729 if (UNTAG_Bool(REGB1)) {
4730 /* syntax/mmbuilder.nit:722 */
4731 REGB1 = TAG_Int(5);
4732 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4733 if (!once_value_12) {
4734 fra.me.REG[8] = BOX_NativeString("Special error: Extern class ");
4735 REGB1 = TAG_Int(28);
4736 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
4737 once_value_12 = fra.me.REG[8];
4738 register_static_object(&once_value_12);
4739 } else fra.me.REG[8] = once_value_12;
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[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4743 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4744 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4745 if (!once_value_13) {
4746 fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
4747 REGB1 = TAG_Int(25);
4748 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
4749 once_value_13 = fra.me.REG[8];
4750 register_static_object(&once_value_13);
4751 } else fra.me.REG[8] = once_value_13;
4752 fra.me.REG[8] = fra.me.REG[8];
4753 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4754 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4755 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4756 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4757 if (!once_value_14) {
4758 fra.me.REG[8] = BOX_NativeString(".");
4759 REGB1 = TAG_Int(1);
4760 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
4761 once_value_14 = fra.me.REG[8];
4762 register_static_object(&once_value_14);
4763 } else fra.me.REG[8] = once_value_14;
4764 fra.me.REG[8] = fra.me.REG[8];
4765 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4766 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4767 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4768 }
4769 } else {
4770 /* syntax/mmbuilder.nit:725 */
4771 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
4772 if (UNTAG_Bool(REGB1)) {
4773 /* syntax/mmbuilder.nit:726 */
4774 REGB1 = TAG_Int(5);
4775 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4776 if (!once_value_15) {
4777 fra.me.REG[8] = BOX_NativeString("Special error: Class ");
4778 REGB1 = TAG_Int(21);
4779 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
4780 once_value_15 = fra.me.REG[8];
4781 register_static_object(&once_value_15);
4782 } else fra.me.REG[8] = once_value_15;
4783 fra.me.REG[8] = fra.me.REG[8];
4784 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4785 fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4786 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4787 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4788 if (!once_value_16) {
4789 fra.me.REG[8] = BOX_NativeString(" try to specialise enum class ");
4790 REGB1 = TAG_Int(30);
4791 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
4792 once_value_16 = fra.me.REG[8];
4793 register_static_object(&once_value_16);
4794 } else fra.me.REG[8] = once_value_16;
4795 fra.me.REG[8] = fra.me.REG[8];
4796 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4797 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4798 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
4799 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4800 if (!once_value_17) {
4801 fra.me.REG[8] = BOX_NativeString(".");
4802 REGB1 = TAG_Int(1);
4803 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
4804 once_value_17 = fra.me.REG[8];
4805 register_static_object(&once_value_17);
4806 } else fra.me.REG[8] = once_value_17;
4807 fra.me.REG[8] = fra.me.REG[8];
4808 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
4809 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4810 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
4811 } else {
4812 /* syntax/mmbuilder.nit:727 */
4813 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[6])(fra.me.REG[6]);
4814 if (UNTAG_Bool(REGB1)) {
4815 /* syntax/mmbuilder.nit:728 */
4816 REGB1 = TAG_Int(5);
4817 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4818 if (!once_value_18) {
4819 fra.me.REG[7] = BOX_NativeString("Special error: Class ");
4820 REGB1 = TAG_Int(21);
4821 fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB1);
4822 once_value_18 = fra.me.REG[7];
4823 register_static_object(&once_value_18);
4824 } else fra.me.REG[7] = once_value_18;
4825 fra.me.REG[7] = fra.me.REG[7];
4826 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4827 fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4828 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
4829 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4830 if (!once_value_19) {
4831 fra.me.REG[7] = BOX_NativeString(" try to specialise extern class ");
4832 REGB1 = TAG_Int(32);
4833 fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB1);
4834 once_value_19 = fra.me.REG[7];
4835 register_static_object(&once_value_19);
4836 } else fra.me.REG[7] = once_value_19;
4837 fra.me.REG[7] = fra.me.REG[7];
4838 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4839 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
4840 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4841 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
4842 if (!once_value_20) {
4843 fra.me.REG[5] = BOX_NativeString(".");
4844 REGB1 = TAG_Int(1);
4845 fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB1);
4846 once_value_20 = fra.me.REG[5];
4847 register_static_object(&once_value_20);
4848 } else fra.me.REG[5] = once_value_20;
4849 fra.me.REG[5] = fra.me.REG[5];
4850 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
4851 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4852 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
4853 }
4854 }
4855 }
4856 }
4857 }
4858 /* ../lib/standard/collection/array.nit:275 */
4859 REGB1 = TAG_Int(1);
4860 /* ../lib/standard/kernel.nit:245 */
4861 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
4862 /* ../lib/standard/collection/array.nit:275 */
4863 REGB0 = REGB1;
4864 } else {
4865 /* ../lib/standard/collection/array.nit:273 */
4866 goto label21;
4867 }
4868 }
4869 label21: while(0);
4870 /* syntax/mmbuilder.nit:733 */
4871 goto label22;
4872 }
4873 /* syntax/mmbuilder.nit:738 */
4874 fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
4875 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]);
4876 /* syntax/mmbuilder.nit:739 */
4877 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
4878 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4879 if (UNTAG_Bool(REGB0)) {
4880 } else {
4881 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4882 if (UNTAG_Bool(REGB1)) {
4883 REGB1 = TAG_Bool(0);
4884 REGB0 = REGB1;
4885 } else {
4886 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
4887 REGB0 = REGB1;
4888 }
4889 }
4890 if (UNTAG_Bool(REGB0)) {
4891 /* syntax/mmbuilder.nit:740 */
4892 REGB0 = TAG_Int(3);
4893 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
4894 if (!once_value_23) {
4895 fra.me.REG[4] = BOX_NativeString("Redef error: ");
4896 REGB0 = TAG_Int(13);
4897 fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
4898 once_value_23 = fra.me.REG[4];
4899 register_static_object(&once_value_23);
4900 } else fra.me.REG[4] = once_value_23;
4901 fra.me.REG[4] = fra.me.REG[4];
4902 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4903 fra.me.REG[4] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
4904 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4905 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4906 if (!once_value_24) {
4907 fra.me.REG[4] = BOX_NativeString(" is an imported class. Add the redef keyword to refine it.");
4908 REGB0 = TAG_Int(58);
4909 fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
4910 once_value_24 = fra.me.REG[4];
4911 register_static_object(&once_value_24);
4912 } else fra.me.REG[4] = once_value_24;
4913 fra.me.REG[4] = fra.me.REG[4];
4914 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4915 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
4916 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
4917 /* syntax/mmbuilder.nit:741 */
4918 goto label22;
4919 }
4920 /* syntax/mmbuilder.nit:744 */
4921 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
4922 REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[0])(fra.me.REG[0]);
4923 fra.me.REG[0] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4924 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4925 if (UNTAG_Bool(REGB1)) {
4926 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 744);
4927 }
4928 REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[0])(fra.me.REG[0]);
4929 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
4930 if (UNTAG_Bool(REGB2)) {
4931 } else {
4932 /* ../lib/standard/kernel.nit:237 */
4933 REGB1 = TAG_Bool((REGB0)==(REGB1));
4934 /* syntax/mmbuilder.nit:744 */
4935 REGB2 = REGB1;
4936 }
4937 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
4938 if (UNTAG_Bool(REGB2)) {
4939 /* syntax/mmbuilder.nit:745 */
4940 REGB2 = TAG_Int(5);
4941 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
4942 if (!once_value_25) {
4943 fra.me.REG[4] = BOX_NativeString("Redef error: Formal parameter arity mismatch; got ");
4944 REGB2 = TAG_Int(50);
4945 fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
4946 once_value_25 = fra.me.REG[4];
4947 register_static_object(&once_value_25);
4948 } else fra.me.REG[4] = once_value_25;
4949 fra.me.REG[4] = fra.me.REG[4];
4950 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4951 fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
4952 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4953 if (UNTAG_Bool(REGB2)) {
4954 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 745);
4955 }
4956 REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
4957 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
4958 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4959 if (!once_value_26) {
4960 fra.me.REG[4] = BOX_NativeString(", expected ");
4961 REGB2 = TAG_Int(11);
4962 fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
4963 once_value_26 = fra.me.REG[4];
4964 register_static_object(&once_value_26);
4965 } else fra.me.REG[4] = once_value_26;
4966 fra.me.REG[4] = fra.me.REG[4];
4967 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4968 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
4969 REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
4970 fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
4971 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
4972 if (!once_value_27) {
4973 fra.me.REG[4] = BOX_NativeString(".");
4974 REGB2 = TAG_Int(1);
4975 fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
4976 once_value_27 = fra.me.REG[4];
4977 register_static_object(&once_value_27);
4978 } else fra.me.REG[4] = once_value_27;
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[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
4982 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
4983 }
4984 /* syntax/mmbuilder.nit:749 */
4985 REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
4986 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
4987 if (UNTAG_Bool(REGB2)) {
4988 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
4989 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[0])(fra.me.REG[0]);
4990 } else {
4991 REGB1 = TAG_Bool(0);
4992 REGB2 = REGB1;
4993 }
4994 if (UNTAG_Bool(REGB2)) {
4995 REGB2 = TAG_Bool(1);
4996 } else {
4997 /* syntax/mmbuilder.nit:750 */
4998 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[1])(fra.me.REG[1]);
4999 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
5000 /* syntax/mmbuilder.nit:749 */
5001 REGB2 = REGB1;
5002 }
5003 if (UNTAG_Bool(REGB2)) {
5004 /* syntax/mmbuilder.nit:750 */
5005 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
5006 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[0])(fra.me.REG[0]);
5007 } else {
5008 /* syntax/mmbuilder.nit:749 */
5009 REGB1 = TAG_Bool(0);
5010 REGB2 = REGB1;
5011 }
5012 if (UNTAG_Bool(REGB2)) {
5013 REGB2 = TAG_Bool(1);
5014 } else {
5015 /* syntax/mmbuilder.nit:751 */
5016 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
5017 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
5018 /* syntax/mmbuilder.nit:749 */
5019 REGB2 = REGB1;
5020 }
5021 if (UNTAG_Bool(REGB2)) {
5022 /* syntax/mmbuilder.nit:751 */
5023 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
5024 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[0])(fra.me.REG[0]);
5025 } else {
5026 /* syntax/mmbuilder.nit:749 */
5027 REGB1 = TAG_Bool(0);
5028 REGB2 = REGB1;
5029 }
5030 if (UNTAG_Bool(REGB2)) {
5031 REGB2 = TAG_Bool(1);
5032 } else {
5033 /* syntax/mmbuilder.nit:752 */
5034 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[1])(fra.me.REG[1]);
5035 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
5036 /* syntax/mmbuilder.nit:749 */
5037 REGB2 = REGB1;
5038 }
5039 if (UNTAG_Bool(REGB2)) {
5040 /* syntax/mmbuilder.nit:752 */
5041 fra.me.REG[1] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
5042 REGB2 = CALL_syntax___mmbuilder___AClasskind___is_extern(fra.me.REG[1])(fra.me.REG[1]);
5043 } else {
5044 /* syntax/mmbuilder.nit:749 */
5045 REGB1 = TAG_Bool(0);
5046 REGB2 = REGB1;
5047 }
5048 /* syntax/mmbuilder.nit:748 */
5049 if (UNTAG_Bool(REGB2)) {
5050 /* syntax/mmbuilder.nit:754 */
5051 REGB2 = TAG_Int(3);
5052 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
5053 if (!once_value_28) {
5054 fra.me.REG[0] = BOX_NativeString("Redef error: cannot change kind of class ");
5055 REGB2 = TAG_Int(41);
5056 fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB2);
5057 once_value_28 = fra.me.REG[0];
5058 register_static_object(&once_value_28);
5059 } else fra.me.REG[0] = once_value_28;
5060 fra.me.REG[0] = fra.me.REG[0];
5061 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
5062 fra.me.REG[0] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
5063 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
5064 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
5065 if (!once_value_29) {
5066 fra.me.REG[0] = BOX_NativeString(".");
5067 REGB2 = TAG_Int(1);
5068 fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB2);
5069 once_value_29 = fra.me.REG[0];
5070 register_static_object(&once_value_29);
5071 } else fra.me.REG[0] = once_value_29;
5072 fra.me.REG[0] = fra.me.REG[0];
5073 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
5074 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
5075 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[1]);
5076 }
5077 label22: while(0);
5078 stack_frame_head = fra.me.prev;
5079 return;
5080 }
5081 static const char LOCATE_syntax___mmbuilder___AStdClassdef___visibility_level[] = "mmbuilder::AStdClassdef::(mmbuilder::AClassdef::visibility_level)";
5082 val_t syntax___mmbuilder___AStdClassdef___visibility_level(val_t p0){
5083 struct {struct stack_frame_t me;} fra;
5084 val_t REGB0;
5085 val_t tmp;
5086 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5087 fra.me.file = LOCATE_syntax___mmbuilder;
5088 fra.me.line = 758;
5089 fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___visibility_level;
5090 fra.me.has_broke = 0;
5091 fra.me.REG_size = 1;
5092 fra.me.nitni_local_ref_head = NULL;
5093 fra.me.REG[0] = NIT_NULL;
5094 fra.me.REG[0] = p0;
5095 /* syntax/mmbuilder.nit:760 */
5096 fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_visibility(fra.me.REG[0])(fra.me.REG[0]);
5097 REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
5098 goto label1;
5099 label1: while(0);
5100 stack_frame_head = fra.me.prev;
5101 return REGB0;
5102 }
5103 static const char LOCATE_syntax___mmbuilder___AMainClassdef___name[] = "mmbuilder::AMainClassdef::(mmbuilder::AClassdef::name)";
5104 val_t syntax___mmbuilder___AMainClassdef___name(val_t p0){
5105 struct {struct stack_frame_t me;} fra;
5106 val_t REGB0;
5107 val_t tmp;
5108 static val_t once_value_1; /* Once value */
5109 static val_t once_value_2; /* Once value */
5110 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5111 fra.me.file = LOCATE_syntax___mmbuilder;
5112 fra.me.line = 765;
5113 fra.me.meth = LOCATE_syntax___mmbuilder___AMainClassdef___name;
5114 fra.me.has_broke = 0;
5115 fra.me.REG_size = 1;
5116 fra.me.nitni_local_ref_head = NULL;
5117 fra.me.REG[0] = NIT_NULL;
5118 fra.me.REG[0] = p0;
5119 /* syntax/mmbuilder.nit:767 */
5120 if (!once_value_1) {
5121 if (!once_value_2) {
5122 fra.me.REG[0] = BOX_NativeString("Sys");
5123 REGB0 = TAG_Int(3);
5124 fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
5125 once_value_2 = fra.me.REG[0];
5126 register_static_object(&once_value_2);
5127 } else fra.me.REG[0] = once_value_2;
5128 fra.me.REG[0] = fra.me.REG[0];
5129 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
5130 once_value_1 = fra.me.REG[0];
5131 register_static_object(&once_value_1);
5132 } else fra.me.REG[0] = once_value_1;
5133 fra.me.REG[0] = fra.me.REG[0];
5134 goto label3;
5135 label3: while(0);
5136 stack_frame_head = fra.me.prev;
5137 return fra.me.REG[0];
5138 }
5139 static const char LOCATE_syntax___mmbuilder___ATopClassdef___name[] = "mmbuilder::ATopClassdef::(mmbuilder::AClassdef::name)";
5140 val_t syntax___mmbuilder___ATopClassdef___name(val_t p0){
5141 struct {struct stack_frame_t me;} fra;
5142 val_t REGB0;
5143 val_t tmp;
5144 static val_t once_value_1; /* Once value */
5145 static val_t once_value_2; /* Once value */
5146 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5147 fra.me.file = LOCATE_syntax___mmbuilder;
5148 fra.me.line = 772;
5149 fra.me.meth = LOCATE_syntax___mmbuilder___ATopClassdef___name;
5150 fra.me.has_broke = 0;
5151 fra.me.REG_size = 1;
5152 fra.me.nitni_local_ref_head = NULL;
5153 fra.me.REG[0] = NIT_NULL;
5154 fra.me.REG[0] = p0;
5155 /* syntax/mmbuilder.nit:774 */
5156 if (!once_value_1) {
5157 if (!once_value_2) {
5158 fra.me.REG[0] = BOX_NativeString("Object");
5159 REGB0 = TAG_Int(6);
5160 fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
5161 once_value_2 = fra.me.REG[0];
5162 register_static_object(&once_value_2);
5163 } else fra.me.REG[0] = once_value_2;
5164 fra.me.REG[0] = fra.me.REG[0];
5165 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
5166 once_value_1 = fra.me.REG[0];
5167 register_static_object(&once_value_1);
5168 } else fra.me.REG[0] = once_value_1;
5169 fra.me.REG[0] = fra.me.REG[0];
5170 goto label3;
5171 label3: while(0);
5172 stack_frame_head = fra.me.prev;
5173 return fra.me.REG[0];
5174 }
5175 static const char LOCATE_syntax___mmbuilder___AFormaldef___accept_class_builder[] = "mmbuilder::AFormaldef::(mmbuilder::ANode::accept_class_builder)";
5176 void syntax___mmbuilder___AFormaldef___accept_class_builder(val_t p0, val_t p1){
5177 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
5178 val_t REGB0;
5179 val_t REGB1;
5180 val_t tmp;
5181 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5182 fra.me.file = LOCATE_syntax___mmbuilder;
5183 fra.me.line = 782;
5184 fra.me.meth = LOCATE_syntax___mmbuilder___AFormaldef___accept_class_builder;
5185 fra.me.has_broke = 0;
5186 fra.me.REG_size = 6;
5187 fra.me.nitni_local_ref_head = NULL;
5188 fra.me.REG[0] = NIT_NULL;
5189 fra.me.REG[1] = NIT_NULL;
5190 fra.me.REG[2] = NIT_NULL;
5191 fra.me.REG[3] = NIT_NULL;
5192 fra.me.REG[4] = NIT_NULL;
5193 fra.me.REG[5] = NIT_NULL;
5194 fra.me.REG[0] = p0;
5195 fra.me.REG[1] = p1;
5196 /* syntax/mmbuilder.nit:782 */
5197 fra.me.REG[2] = fra.me.REG[0];
5198 fra.me.REG[3] = fra.me.REG[1];
5199 /* syntax/mmbuilder.nit:784 */
5200 fra.me.REG[4] = CALL_parser___parser_nodes___AFormaldef___n_id(fra.me.REG[2])(fra.me.REG[2]);
5201 fra.me.REG[4] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
5202 /* syntax/mmbuilder.nit:785 */
5203 REGB0 = CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity(fra.me.REG[3])(fra.me.REG[3]);
5204 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5205 fra.me.REG[5] = NEW_MMTypeFormalParameter_metamodel___genericity___MMTypeFormalParameter___init(fra.me.REG[4], REGB0, fra.me.REG[5]);
5206 /* syntax/mmbuilder.nit:786 */
5207 ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]) = fra.me.REG[5];
5208 /* syntax/mmbuilder.nit:787 */
5209 REGB0 = CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity(fra.me.REG[3])(fra.me.REG[3]);
5210 REGB1 = TAG_Int(1);
5211 /* ../lib/standard/kernel.nit:245 */
5212 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
5213 /* syntax/mmbuilder.nit:787 */
5214 CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB1);
5215 /* syntax/mmbuilder.nit:788 */
5216 fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5217 CALL_metamodel___genericity___MMLocalClass___register_formal(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
5218 /* syntax/mmbuilder.nit:789 */
5219 fra.me.REG[3] = CALL_syntax___mmbuilder___ClassBuilderVisitor___formals(fra.me.REG[3])(fra.me.REG[3]);
5220 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5221 if (UNTAG_Bool(REGB1)) {
5222 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 789);
5223 }
5224 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]);
5225 /* syntax/mmbuilder.nit:790 */
5226 CALL_SUPER_syntax___mmbuilder___AFormaldef___accept_class_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5227 stack_frame_head = fra.me.prev;
5228 return;
5229 }
5230 static const char LOCATE_syntax___mmbuilder___AFormaldef___accept_class_verifier[] = "mmbuilder::AFormaldef::(mmbuilder::ANode::accept_class_verifier)";
5231 void syntax___mmbuilder___AFormaldef___accept_class_verifier(val_t p0, val_t p1){
5232 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
5233 val_t REGB0;
5234 val_t REGB1;
5235 val_t tmp;
5236 static val_t once_value_2; /* Once value */
5237 static val_t once_value_3; /* Once value */
5238 static val_t once_value_4; /* Once value */
5239 static val_t once_value_5; /* Once value */
5240 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5241 fra.me.file = LOCATE_syntax___mmbuilder;
5242 fra.me.line = 793;
5243 fra.me.meth = LOCATE_syntax___mmbuilder___AFormaldef___accept_class_verifier;
5244 fra.me.has_broke = 0;
5245 fra.me.REG_size = 6;
5246 fra.me.nitni_local_ref_head = NULL;
5247 fra.me.REG[0] = NIT_NULL;
5248 fra.me.REG[1] = NIT_NULL;
5249 fra.me.REG[2] = NIT_NULL;
5250 fra.me.REG[3] = NIT_NULL;
5251 fra.me.REG[4] = NIT_NULL;
5252 fra.me.REG[5] = NIT_NULL;
5253 fra.me.REG[0] = p0;
5254 fra.me.REG[1] = p1;
5255 /* syntax/mmbuilder.nit:793 */
5256 fra.me.REG[2] = fra.me.REG[0];
5257 fra.me.REG[3] = fra.me.REG[1];
5258 /* syntax/mmbuilder.nit:795 */
5259 CALL_SUPER_syntax___mmbuilder___AFormaldef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5260 /* syntax/mmbuilder.nit:796 */
5261 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5262 /* syntax/mmbuilder.nit:797 */
5263 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
5264 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[0])(fra.me.REG[0]);
5265 /* syntax/mmbuilder.nit:798 */
5266 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
5267 if (UNTAG_Bool(REGB0)) {
5268 } else {
5269 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
5270 REGB0 = REGB1;
5271 }
5272 if (UNTAG_Bool(REGB0)) {
5273 /* syntax/mmbuilder.nit:799 */
5274 fra.me.REG[4] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
5275 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5276 if (UNTAG_Bool(REGB0)) {
5277 } else {
5278 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5279 if (UNTAG_Bool(REGB1)) {
5280 REGB1 = TAG_Bool(0);
5281 REGB0 = REGB1;
5282 } else {
5283 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5284 REGB0 = REGB1;
5285 }
5286 }
5287 if (UNTAG_Bool(REGB0)) {
5288 /* syntax/mmbuilder.nit:800 */
5289 fra.me.REG[4] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5290 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
5291 fra.me.REG[5] = CALL_metamodel___inheritance___MMModule___type_any(fra.me.REG[5])(fra.me.REG[5]);
5292 fra.me.REG[5] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[5])(fra.me.REG[5]);
5293 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5294 if (UNTAG_Bool(REGB0)) {
5295 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 800);
5296 }
5297 CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5298 } else {
5299 /* syntax/mmbuilder.nit:802 */
5300 fra.me.REG[5] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
5301 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
5302 if (UNTAG_Bool(REGB0)) {
5303 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 802);
5304 }
5305 fra.me.REG[5] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
5306 /* syntax/mmbuilder.nit:803 */
5307 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
5308 if (UNTAG_Bool(REGB0)) {
5309 } else {
5310 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
5311 if (UNTAG_Bool(REGB1)) {
5312 REGB1 = TAG_Bool(0);
5313 REGB0 = REGB1;
5314 } else {
5315 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
5316 REGB0 = REGB1;
5317 }
5318 }
5319 if (UNTAG_Bool(REGB0)) {
5320 goto label1;
5321 }
5322 /* syntax/mmbuilder.nit:804 */
5323 fra.me.REG[4] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5324 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5325 if (UNTAG_Bool(REGB0)) {
5326 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 804);
5327 }
5328 CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5329 }
5330 } else {
5331 /* syntax/mmbuilder.nit:807 */
5332 fra.me.REG[5] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5333 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
5334 if (UNTAG_Bool(REGB0)) {
5335 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 807);
5336 }
5337 REGB0 = CALL_metamodel___genericity___MMTypeFormalParameter___position(fra.me.REG[5])(fra.me.REG[5]);
5338 fra.me.REG[0] = CALL_metamodel___genericity___MMLocalClass___get_formal(fra.me.REG[0])(fra.me.REG[0], REGB0);
5339 fra.me.REG[0] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]);
5340 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
5341 fra.me.REG[5] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
5342 /* syntax/mmbuilder.nit:808 */
5343 fra.me.REG[0] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
5344 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5345 if (UNTAG_Bool(REGB0)) {
5346 } else {
5347 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5348 if (UNTAG_Bool(REGB1)) {
5349 REGB1 = TAG_Bool(0);
5350 REGB0 = REGB1;
5351 } else {
5352 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
5353 REGB0 = REGB1;
5354 }
5355 }
5356 if (UNTAG_Bool(REGB0)) {
5357 /* syntax/mmbuilder.nit:809 */
5358 fra.me.REG[0] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5359 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5360 if (UNTAG_Bool(REGB0)) {
5361 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 809);
5362 }
5363 CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
5364 } else {
5365 /* syntax/mmbuilder.nit:811 */
5366 fra.me.REG[0] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
5367 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5368 if (UNTAG_Bool(REGB0)) {
5369 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 811);
5370 }
5371 fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
5372 /* syntax/mmbuilder.nit:812 */
5373 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5374 if (UNTAG_Bool(REGB0)) {
5375 } else {
5376 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
5377 if (UNTAG_Bool(REGB1)) {
5378 REGB1 = TAG_Bool(0);
5379 REGB0 = REGB1;
5380 } else {
5381 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
5382 REGB0 = REGB1;
5383 }
5384 }
5385 if (UNTAG_Bool(REGB0)) {
5386 goto label1;
5387 }
5388 /* syntax/mmbuilder.nit:813 */
5389 fra.me.REG[4] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5390 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5391 if (UNTAG_Bool(REGB0)) {
5392 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 813);
5393 }
5394 CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
5395 /* syntax/mmbuilder.nit:814 */
5396 fra.me.REG[0] = ATTR_syntax___mmbuilder___AFormaldef____formal(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, 814);
5400 }
5401 fra.me.REG[0] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]);
5402 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[5]));
5403 if (UNTAG_Bool(REGB0)) {
5404 } else {
5405 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
5406 REGB0 = REGB1;
5407 }
5408 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5409 if (UNTAG_Bool(REGB0)) {
5410 /* syntax/mmbuilder.nit:815 */
5411 REGB0 = TAG_Int(7);
5412 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5413 if (!once_value_2) {
5414 fra.me.REG[4] = BOX_NativeString("Redef error: Cannot change formal parameter type of class ");
5415 REGB0 = TAG_Int(58);
5416 fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
5417 once_value_2 = fra.me.REG[4];
5418 register_static_object(&once_value_2);
5419 } else fra.me.REG[4] = once_value_2;
5420 fra.me.REG[4] = fra.me.REG[4];
5421 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
5422 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
5423 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5424 if (!once_value_3) {
5425 fra.me.REG[1] = BOX_NativeString("; got ");
5426 REGB0 = TAG_Int(6);
5427 fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0);
5428 once_value_3 = fra.me.REG[1];
5429 register_static_object(&once_value_3);
5430 } else fra.me.REG[1] = once_value_3;
5431 fra.me.REG[1] = fra.me.REG[1];
5432 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5433 fra.me.REG[1] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
5434 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5435 if (UNTAG_Bool(REGB0)) {
5436 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 815);
5437 }
5438 fra.me.REG[1] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[1])(fra.me.REG[1]);
5439 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
5440 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5441 if (!once_value_4) {
5442 fra.me.REG[1] = BOX_NativeString(", expected ");
5443 REGB0 = TAG_Int(11);
5444 fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0);
5445 once_value_4 = fra.me.REG[1];
5446 register_static_object(&once_value_4);
5447 } else fra.me.REG[1] = once_value_4;
5448 fra.me.REG[1] = fra.me.REG[1];
5449 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5450 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5451 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
5452 if (!once_value_5) {
5453 fra.me.REG[5] = BOX_NativeString(".");
5454 REGB0 = TAG_Int(1);
5455 fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
5456 once_value_5 = fra.me.REG[5];
5457 register_static_object(&once_value_5);
5458 } else fra.me.REG[5] = once_value_5;
5459 fra.me.REG[5] = fra.me.REG[5];
5460 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
5461 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
5462 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
5463 }
5464 }
5465 }
5466 label1: while(0);
5467 stack_frame_head = fra.me.prev;
5468 return;
5469 }
5470 static const char LOCATE_syntax___mmbuilder___ASuperclass___ancestor[] = "mmbuilder::ASuperclass::ancestor";
5471 val_t syntax___mmbuilder___ASuperclass___ancestor(val_t p0){
5472 struct {struct stack_frame_t me;} fra;
5473 val_t tmp;
5474 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5475 fra.me.file = LOCATE_syntax___mmbuilder;
5476 fra.me.line = 823;
5477 fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___ancestor;
5478 fra.me.has_broke = 0;
5479 fra.me.REG_size = 1;
5480 fra.me.nitni_local_ref_head = NULL;
5481 fra.me.REG[0] = NIT_NULL;
5482 fra.me.REG[0] = p0;
5483 /* syntax/mmbuilder.nit:823 */
5484 fra.me.REG[0] = ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[0]);
5485 stack_frame_head = fra.me.prev;
5486 return fra.me.REG[0];
5487 }
5488 static const char LOCATE_syntax___mmbuilder___ASuperclass___accept_class_specialization_builder[] = "mmbuilder::ASuperclass::(mmbuilder::ANode::accept_class_specialization_builder)";
5489 void syntax___mmbuilder___ASuperclass___accept_class_specialization_builder(val_t p0, val_t p1){
5490 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5491 val_t REGB0;
5492 val_t REGB1;
5493 val_t tmp;
5494 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5495 fra.me.file = LOCATE_syntax___mmbuilder;
5496 fra.me.line = 825;
5497 fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___accept_class_specialization_builder;
5498 fra.me.has_broke = 0;
5499 fra.me.REG_size = 4;
5500 fra.me.nitni_local_ref_head = NULL;
5501 fra.me.REG[0] = NIT_NULL;
5502 fra.me.REG[1] = NIT_NULL;
5503 fra.me.REG[2] = NIT_NULL;
5504 fra.me.REG[3] = NIT_NULL;
5505 fra.me.REG[0] = p0;
5506 fra.me.REG[1] = p1;
5507 /* syntax/mmbuilder.nit:825 */
5508 fra.me.REG[2] = fra.me.REG[0];
5509 fra.me.REG[3] = fra.me.REG[1];
5510 /* syntax/mmbuilder.nit:827 */
5511 CALL_SUPER_syntax___mmbuilder___ASuperclass___accept_class_specialization_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5512 /* syntax/mmbuilder.nit:828 */
5513 fra.me.REG[1] = CALL_parser___parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
5514 fra.me.REG[1] = CALL_syntax___syntax_base___AType___get_local_class(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5515 /* syntax/mmbuilder.nit:829 */
5516 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5517 if (UNTAG_Bool(REGB0)) {
5518 } else {
5519 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5520 if (UNTAG_Bool(REGB1)) {
5521 REGB1 = TAG_Bool(0);
5522 REGB0 = REGB1;
5523 } else {
5524 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
5525 REGB0 = REGB1;
5526 }
5527 }
5528 if (UNTAG_Bool(REGB0)) {
5529 goto label1;
5530 }
5531 /* syntax/mmbuilder.nit:830 */
5532 fra.me.REG[1] = NEW_MMSrcAncestor_syntax___mmbuilder___MMSrcAncestor___init(fra.me.REG[1]);
5533 /* syntax/mmbuilder.nit:831 */
5534 ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[2]) = fra.me.REG[1];
5535 /* syntax/mmbuilder.nit:832 */
5536 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5537 CALL_metamodel___inheritance___MMLocalClass___add_direct_parent(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5538 label1: while(0);
5539 stack_frame_head = fra.me.prev;
5540 return;
5541 }
5542 static const char LOCATE_syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder[] = "mmbuilder::ASuperclass::(mmbuilder::ANode::accept_class_ancestor_builder)";
5543 void syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder(val_t p0, val_t p1){
5544 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5545 val_t REGB0;
5546 val_t tmp;
5547 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5548 fra.me.file = LOCATE_syntax___mmbuilder;
5549 fra.me.line = 835;
5550 fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder;
5551 fra.me.has_broke = 0;
5552 fra.me.REG_size = 4;
5553 fra.me.nitni_local_ref_head = NULL;
5554 fra.me.REG[0] = NIT_NULL;
5555 fra.me.REG[1] = NIT_NULL;
5556 fra.me.REG[2] = NIT_NULL;
5557 fra.me.REG[3] = NIT_NULL;
5558 fra.me.REG[0] = p0;
5559 fra.me.REG[1] = p1;
5560 /* syntax/mmbuilder.nit:835 */
5561 fra.me.REG[2] = fra.me.REG[0];
5562 fra.me.REG[3] = fra.me.REG[1];
5563 /* syntax/mmbuilder.nit:837 */
5564 CALL_SUPER_syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5565 /* syntax/mmbuilder.nit:838 */
5566 fra.me.REG[1] = ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[2]);
5567 fra.me.REG[0] = CALL_parser___parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
5568 fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_unchecked_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
5569 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5570 if (UNTAG_Bool(REGB0)) {
5571 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 838);
5572 }
5573 CALL_metamodel___static_type___MMAncestor___stype__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
5574 /* syntax/mmbuilder.nit:839 */
5575 fra.me.REG[2] = ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[2]);
5576 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
5577 fra.me.REG[3] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[3])(fra.me.REG[3]);
5578 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5579 if (UNTAG_Bool(REGB0)) {
5580 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 839);
5581 }
5582 CALL_metamodel___static_type___MMAncestor___inheriter__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
5583 stack_frame_head = fra.me.prev;
5584 return;
5585 }
5586 static const char LOCATE_syntax___mmbuilder___ASuperclass___accept_class_verifier[] = "mmbuilder::ASuperclass::(mmbuilder::ANode::accept_class_verifier)";
5587 void syntax___mmbuilder___ASuperclass___accept_class_verifier(val_t p0, val_t p1){
5588 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5589 val_t tmp;
5590 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5591 fra.me.file = LOCATE_syntax___mmbuilder;
5592 fra.me.line = 842;
5593 fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___accept_class_verifier;
5594 fra.me.has_broke = 0;
5595 fra.me.REG_size = 4;
5596 fra.me.nitni_local_ref_head = NULL;
5597 fra.me.REG[0] = NIT_NULL;
5598 fra.me.REG[1] = NIT_NULL;
5599 fra.me.REG[2] = NIT_NULL;
5600 fra.me.REG[3] = NIT_NULL;
5601 fra.me.REG[0] = p0;
5602 fra.me.REG[1] = p1;
5603 /* syntax/mmbuilder.nit:842 */
5604 fra.me.REG[2] = fra.me.REG[0];
5605 fra.me.REG[3] = fra.me.REG[1];
5606 /* syntax/mmbuilder.nit:844 */
5607 CALL_SUPER_syntax___mmbuilder___ASuperclass___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
5608 /* syntax/mmbuilder.nit:845 */
5609 fra.me.REG[2] = CALL_parser___parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
5610 CALL_syntax___syntax_base___AType___check_conform(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
5611 stack_frame_head = fra.me.prev;
5612 return;
5613 }
5614 static const char LOCATE_syntax___mmbuilder___APropdef___process_and_check[] = "mmbuilder::APropdef::process_and_check";
5615 void syntax___mmbuilder___APropdef___process_and_check(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
5616 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5617 val_t REGB0;
5618 val_t REGB1;
5619 val_t REGB2;
5620 val_t REGB3;
5621 val_t tmp;
5622 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5623 fra.me.file = LOCATE_syntax___mmbuilder;
5624 fra.me.line = 850;
5625 fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___process_and_check;
5626 fra.me.has_broke = 0;
5627 fra.me.REG_size = 4;
5628 fra.me.nitni_local_ref_head = NULL;
5629 fra.me.REG[0] = NIT_NULL;
5630 fra.me.REG[1] = NIT_NULL;
5631 fra.me.REG[2] = NIT_NULL;
5632 fra.me.REG[3] = NIT_NULL;
5633 fra.me.REG[0] = p0;
5634 fra.me.REG[1] = p1;
5635 fra.me.REG[2] = p2;
5636 REGB0 = p3;
5637 REGB1 = p4;
5638 /* syntax/mmbuilder.nit:858 */
5639 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
5640 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[3])(fra.me.REG[3]);
5641 REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[2]));
5642 if (UNTAG_Bool(REGB2)) {
5643 } else {
5644 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
5645 REGB2 = REGB3;
5646 }
5647 if (UNTAG_Bool(REGB2)) {
5648 /* syntax/mmbuilder.nit:859 */
5649 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);
5650 } else {
5651 /* syntax/mmbuilder.nit:861 */
5652 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);
5653 }
5654 stack_frame_head = fra.me.prev;
5655 return;
5656 }
5657 static const char LOCATE_syntax___mmbuilder___APropdef___do_and_check_intro[] = "mmbuilder::APropdef::do_and_check_intro";
5658 void syntax___mmbuilder___APropdef___do_and_check_intro(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
5659 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
5660 val_t REGB0;
5661 val_t REGB1;
5662 val_t REGB2;
5663 val_t REGB3;
5664 val_t REGB4;
5665 val_t tmp;
5666 static val_t once_value_1; /* Once value */
5667 static val_t once_value_2; /* Once value */
5668 static val_t once_value_3; /* Once value */
5669 static val_t once_value_4; /* Once value */
5670 static val_t once_value_5; /* Once value */
5671 static val_t once_value_6; /* Once value */
5672 static val_t once_value_7; /* Once value */
5673 static val_t once_value_8; /* Once value */
5674 static val_t once_value_9; /* Once value */
5675 static val_t once_value_10; /* Once value */
5676 static val_t once_value_11; /* Once value */
5677 static val_t once_value_12; /* Once value */
5678 static val_t once_value_13; /* Once value */
5679 static val_t once_value_14; /* Once value */
5680 static val_t once_value_15; /* Once value */
5681 static val_t once_value_16; /* Once value */
5682 static val_t once_value_17; /* Once value */
5683 static val_t once_value_18; /* Once value */
5684 static val_t once_value_19; /* Once value */
5685 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5686 fra.me.file = LOCATE_syntax___mmbuilder;
5687 fra.me.line = 865;
5688 fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___do_and_check_intro;
5689 fra.me.has_broke = 0;
5690 fra.me.REG_size = 7;
5691 fra.me.nitni_local_ref_head = NULL;
5692 fra.me.REG[0] = NIT_NULL;
5693 fra.me.REG[1] = NIT_NULL;
5694 fra.me.REG[2] = NIT_NULL;
5695 fra.me.REG[3] = NIT_NULL;
5696 fra.me.REG[4] = NIT_NULL;
5697 fra.me.REG[5] = NIT_NULL;
5698 fra.me.REG[6] = NIT_NULL;
5699 fra.me.REG[0] = p0;
5700 fra.me.REG[1] = p1;
5701 fra.me.REG[2] = p2;
5702 REGB0 = p3;
5703 REGB1 = p4;
5704 /* syntax/mmbuilder.nit:868 */
5705 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
5706 /* syntax/mmbuilder.nit:869 */
5707 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5708 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
5709 /* syntax/mmbuilder.nit:870 */
5710 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
5711 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
5712 REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[5])(fra.me.REG[5]);
5713 REGB3 = TAG_Int(3);
5714 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
5715 if (UNTAG_Bool(REGB4)) {
5716 } else {
5717 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
5718 }
5719 /* ../lib/standard/kernel.nit:243 */
5720 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
5721 /* syntax/mmbuilder.nit:870 */
5722 if (UNTAG_Bool(REGB3)) {
5723 /* syntax/mmbuilder.nit:872 */
5724 REGB3 = TAG_Int(3);
5725 REGB1 = REGB3;
5726 }
5727 /* syntax/mmbuilder.nit:874 */
5728 CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[3])(fra.me.REG[3], REGB1);
5729 /* syntax/mmbuilder.nit:875 */
5730 if (UNTAG_Bool(REGB0)) {
5731 /* syntax/mmbuilder.nit:876 */
5732 REGB0 = TAG_Int(5);
5733 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5734 if (!once_value_1) {
5735 fra.me.REG[6] = BOX_NativeString("Error: No property ");
5736 REGB0 = TAG_Int(19);
5737 fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
5738 once_value_1 = fra.me.REG[6];
5739 register_static_object(&once_value_1);
5740 } else fra.me.REG[6] = once_value_1;
5741 fra.me.REG[6] = fra.me.REG[6];
5742 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5743 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5744 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5745 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5746 if (!once_value_2) {
5747 fra.me.REG[6] = BOX_NativeString("::");
5748 REGB0 = TAG_Int(2);
5749 fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
5750 once_value_2 = fra.me.REG[6];
5751 register_static_object(&once_value_2);
5752 } else fra.me.REG[6] = once_value_2;
5753 fra.me.REG[6] = fra.me.REG[6];
5754 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5755 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5756 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5757 if (!once_value_3) {
5758 fra.me.REG[6] = BOX_NativeString(" is inherited. Remove the redef keyword to define a new property.");
5759 REGB0 = TAG_Int(65);
5760 fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
5761 once_value_3 = fra.me.REG[6];
5762 register_static_object(&once_value_3);
5763 } else fra.me.REG[6] = once_value_3;
5764 fra.me.REG[6] = fra.me.REG[6];
5765 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5766 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5767 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5768 }
5769 /* syntax/mmbuilder.nit:878 */
5770 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_attribute(fra.me.REG[3])(fra.me.REG[3]);
5771 if (UNTAG_Bool(REGB0)) {
5772 /* syntax/mmbuilder.nit:879 */
5773 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]);
5774 if (UNTAG_Bool(REGB0)) {
5775 /* syntax/mmbuilder.nit:880 */
5776 REGB0 = TAG_Int(5);
5777 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5778 if (!once_value_4) {
5779 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
5780 REGB0 = TAG_Int(35);
5781 fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
5782 once_value_4 = fra.me.REG[6];
5783 register_static_object(&once_value_4);
5784 } else fra.me.REG[6] = once_value_4;
5785 fra.me.REG[6] = fra.me.REG[6];
5786 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5787 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5788 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5789 if (!once_value_5) {
5790 fra.me.REG[6] = BOX_NativeString(" in the interface ");
5791 REGB0 = TAG_Int(18);
5792 fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
5793 once_value_5 = fra.me.REG[6];
5794 register_static_object(&once_value_5);
5795 } else fra.me.REG[6] = once_value_5;
5796 fra.me.REG[6] = fra.me.REG[6];
5797 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5798 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5799 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5800 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5801 if (!once_value_6) {
5802 fra.me.REG[6] = BOX_NativeString(".");
5803 REGB0 = TAG_Int(1);
5804 fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
5805 once_value_6 = fra.me.REG[6];
5806 register_static_object(&once_value_6);
5807 } else fra.me.REG[6] = once_value_6;
5808 fra.me.REG[6] = fra.me.REG[6];
5809 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5810 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5811 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5812 } else {
5813 /* syntax/mmbuilder.nit:881 */
5814 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[4])(fra.me.REG[4]);
5815 if (UNTAG_Bool(REGB0)) {
5816 /* syntax/mmbuilder.nit:882 */
5817 REGB0 = TAG_Int(5);
5818 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5819 if (!once_value_7) {
5820 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
5821 REGB0 = TAG_Int(35);
5822 fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
5823 once_value_7 = fra.me.REG[6];
5824 register_static_object(&once_value_7);
5825 } else fra.me.REG[6] = once_value_7;
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_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5829 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5830 if (!once_value_8) {
5831 fra.me.REG[6] = BOX_NativeString(" in the enum class ");
5832 REGB0 = TAG_Int(19);
5833 fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
5834 once_value_8 = fra.me.REG[6];
5835 register_static_object(&once_value_8);
5836 } else fra.me.REG[6] = once_value_8;
5837 fra.me.REG[6] = fra.me.REG[6];
5838 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5839 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5840 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5841 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5842 if (!once_value_9) {
5843 fra.me.REG[6] = BOX_NativeString(".");
5844 REGB0 = TAG_Int(1);
5845 fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
5846 once_value_9 = fra.me.REG[6];
5847 register_static_object(&once_value_9);
5848 } else fra.me.REG[6] = once_value_9;
5849 fra.me.REG[6] = fra.me.REG[6];
5850 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5851 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5852 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5853 } else {
5854 /* syntax/mmbuilder.nit:883 */
5855 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[4])(fra.me.REG[4]);
5856 if (UNTAG_Bool(REGB0)) {
5857 /* syntax/mmbuilder.nit:884 */
5858 REGB0 = TAG_Int(5);
5859 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5860 if (!once_value_10) {
5861 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
5862 REGB0 = TAG_Int(35);
5863 fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
5864 once_value_10 = fra.me.REG[6];
5865 register_static_object(&once_value_10);
5866 } else fra.me.REG[6] = once_value_10;
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_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5870 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5871 if (!once_value_11) {
5872 fra.me.REG[6] = BOX_NativeString(" in the extern class ");
5873 REGB0 = TAG_Int(21);
5874 fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
5875 once_value_11 = fra.me.REG[6];
5876 register_static_object(&once_value_11);
5877 } else fra.me.REG[6] = once_value_11;
5878 fra.me.REG[6] = fra.me.REG[6];
5879 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5880 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5881 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5882 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5883 if (!once_value_12) {
5884 fra.me.REG[6] = BOX_NativeString(".");
5885 REGB0 = TAG_Int(1);
5886 fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
5887 once_value_12 = fra.me.REG[6];
5888 register_static_object(&once_value_12);
5889 } else fra.me.REG[6] = once_value_12;
5890 fra.me.REG[6] = fra.me.REG[6];
5891 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5892 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5893 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5894 }
5895 }
5896 }
5897 } else {
5898 /* syntax/mmbuilder.nit:886 */
5899 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
5900 if (UNTAG_Bool(REGB0)) {
5901 /* syntax/mmbuilder.nit:887 */
5902 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]);
5903 if (UNTAG_Bool(REGB0)) {
5904 /* syntax/mmbuilder.nit:888 */
5905 REGB0 = TAG_Int(5);
5906 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5907 if (!once_value_13) {
5908 fra.me.REG[6] = BOX_NativeString("Error: Attempt to define a constructor ");
5909 REGB0 = TAG_Int(39);
5910 fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
5911 once_value_13 = fra.me.REG[6];
5912 register_static_object(&once_value_13);
5913 } else fra.me.REG[6] = once_value_13;
5914 fra.me.REG[6] = fra.me.REG[6];
5915 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5916 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5917 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5918 if (!once_value_14) {
5919 fra.me.REG[6] = BOX_NativeString(" in the class ");
5920 REGB0 = TAG_Int(14);
5921 fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
5922 once_value_14 = fra.me.REG[6];
5923 register_static_object(&once_value_14);
5924 } else fra.me.REG[6] = once_value_14;
5925 fra.me.REG[6] = fra.me.REG[6];
5926 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5927 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5928 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
5929 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5930 if (!once_value_15) {
5931 fra.me.REG[6] = BOX_NativeString(".");
5932 REGB0 = TAG_Int(1);
5933 fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
5934 once_value_15 = fra.me.REG[6];
5935 register_static_object(&once_value_15);
5936 } else fra.me.REG[6] = once_value_15;
5937 fra.me.REG[6] = fra.me.REG[6];
5938 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
5939 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5940 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
5941 } else {
5942 /* syntax/mmbuilder.nit:889 */
5943 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[4])(fra.me.REG[4]);
5944 if (UNTAG_Bool(REGB0)) {
5945 /* syntax/mmbuilder.nit:890 */
5946 REGB0 = TAG_Int(5);
5947 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
5948 if (!once_value_16) {
5949 fra.me.REG[5] = BOX_NativeString("Error: Attempt to define a constructor ");
5950 REGB0 = TAG_Int(39);
5951 fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
5952 once_value_16 = fra.me.REG[5];
5953 register_static_object(&once_value_16);
5954 } else fra.me.REG[5] = once_value_16;
5955 fra.me.REG[5] = fra.me.REG[5];
5956 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5957 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
5958 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5959 if (!once_value_17) {
5960 fra.me.REG[5] = BOX_NativeString(" in the enum ");
5961 REGB0 = TAG_Int(13);
5962 fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
5963 once_value_17 = fra.me.REG[5];
5964 register_static_object(&once_value_17);
5965 } else fra.me.REG[5] = once_value_17;
5966 fra.me.REG[5] = fra.me.REG[5];
5967 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5968 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
5969 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
5970 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5971 if (!once_value_18) {
5972 fra.me.REG[5] = BOX_NativeString(".");
5973 REGB0 = TAG_Int(1);
5974 fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
5975 once_value_18 = fra.me.REG[5];
5976 register_static_object(&once_value_18);
5977 } else fra.me.REG[5] = once_value_18;
5978 fra.me.REG[5] = fra.me.REG[5];
5979 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
5980 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
5981 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
5982 }
5983 }
5984 }
5985 }
5986 /* syntax/mmbuilder.nit:895 */
5987 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
5988 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5989 if (UNTAG_Bool(REGB0)) {
5990 } else {
5991 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5992 if (UNTAG_Bool(REGB1)) {
5993 REGB1 = TAG_Bool(0);
5994 REGB0 = REGB1;
5995 } else {
5996 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5997 REGB0 = REGB1;
5998 }
5999 }
6000 if (UNTAG_Bool(REGB0)) {
6001 /* syntax/mmbuilder.nit:896 */
6002 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
6003 if (UNTAG_Bool(REGB0)) {
6004 /* syntax/mmbuilder.nit:897 */
6005 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6006 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
6007 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
6008 /* syntax/mmbuilder.nit:898 */
6009 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]);
6010 }
6011 /* syntax/mmbuilder.nit:900 */
6012 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
6013 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6014 if (UNTAG_Bool(REGB0)) {
6015 } else {
6016 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6017 if (UNTAG_Bool(REGB1)) {
6018 REGB1 = TAG_Bool(0);
6019 REGB0 = REGB1;
6020 } else {
6021 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
6022 REGB0 = REGB1;
6023 }
6024 }
6025 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6026 if (UNTAG_Bool(REGB0)) {
6027 REGB0 = TAG_Bool(1);
6028 } else {
6029 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6030 REGB1 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[4])(fra.me.REG[4]);
6031 REGB0 = REGB1;
6032 }
6033 if (UNTAG_Bool(REGB0)) {
6034 } else {
6035 /* syntax/mmbuilder.nit:902 */
6036 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6037 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
6038 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[4])(fra.me.REG[4]);
6039 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6040 if (UNTAG_Bool(REGB0)) {
6041 /* syntax/mmbuilder.nit:903 */
6042 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6043 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
6044 fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
6045 if (!once_value_19) {
6046 fra.me.REG[0] = BOX_NativeString("Error: Untyped parameter.");
6047 REGB0 = TAG_Int(25);
6048 fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
6049 once_value_19 = fra.me.REG[0];
6050 register_static_object(&once_value_19);
6051 } else fra.me.REG[0] = once_value_19;
6052 fra.me.REG[0] = fra.me.REG[0];
6053 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]);
6054 } else {
6055 /* syntax/mmbuilder.nit:905 */
6056 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
6057 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
6058 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
6059 fra.me.REG[4] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[4]);
6060 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
6061 /* syntax/mmbuilder.nit:906 */
6062 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6063 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[1])(fra.me.REG[1]);
6064 /* ../lib/standard/collection/array.nit:270 */
6065 REGB0 = TAG_Int(0);
6066 /* ../lib/standard/collection/array.nit:271 */
6067 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
6068 if (UNTAG_Bool(REGB1)) {
6069 } else {
6070 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
6071 }
6072 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
6073 /* ../lib/standard/collection/array.nit:272 */
6074 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
6075 /* ../lib/standard/collection/array.nit:273 */
6076 while(1) {
6077 /* ../lib/standard/collection/array.nit:24 */
6078 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
6079 if (UNTAG_Bool(REGB1)) {
6080 } else {
6081 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6082 }
6083 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
6084 REGB3 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
6085 if (UNTAG_Bool(REGB3)) {
6086 } else {
6087 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6088 }
6089 /* ../lib/standard/kernel.nit:242 */
6090 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
6091 /* ../lib/standard/collection/array.nit:273 */
6092 if (UNTAG_Bool(REGB1)) {
6093 /* ../lib/standard/collection/array.nit:274 */
6094 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6095 if (UNTAG_Bool(REGB1)) {
6096 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
6097 }
6098 /* ../lib/standard/collection/array.nit:725 */
6099 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
6100 /* syntax/mmbuilder.nit:907 */
6101 fra.me.REG[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
6102 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6103 if (UNTAG_Bool(REGB1)) {
6104 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 907);
6105 }
6106 fra.me.REG[3] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[3])(fra.me.REG[3]);
6107 fra.me.REG[0] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[0])(fra.me.REG[0]);
6108 fra.me.REG[0] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[0])(fra.me.REG[0]);
6109 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
6110 /* ../lib/standard/collection/array.nit:275 */
6111 REGB1 = TAG_Int(1);
6112 /* ../lib/standard/kernel.nit:245 */
6113 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
6114 /* ../lib/standard/collection/array.nit:275 */
6115 REGB0 = REGB1;
6116 } else {
6117 /* ../lib/standard/collection/array.nit:273 */
6118 goto label20;
6119 }
6120 }
6121 label20: while(0);
6122 }
6123 }
6124 }
6125 stack_frame_head = fra.me.prev;
6126 return;
6127 }
6128 static const char LOCATE_syntax___mmbuilder___APropdef___inherit_signature[] = "mmbuilder::APropdef::inherit_signature";
6129 void syntax___mmbuilder___APropdef___inherit_signature(val_t p0, val_t p1, val_t p2, val_t p3){
6130 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
6131 val_t REGB0;
6132 val_t REGB1;
6133 val_t REGB2;
6134 val_t REGB3;
6135 val_t REGB4;
6136 val_t tmp;
6137 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6138 fra.me.file = LOCATE_syntax___mmbuilder;
6139 fra.me.line = 913;
6140 fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___inherit_signature;
6141 fra.me.has_broke = 0;
6142 fra.me.REG_size = 11;
6143 fra.me.nitni_local_ref_head = NULL;
6144 fra.me.REG[0] = NIT_NULL;
6145 fra.me.REG[1] = NIT_NULL;
6146 fra.me.REG[2] = NIT_NULL;
6147 fra.me.REG[3] = NIT_NULL;
6148 fra.me.REG[4] = NIT_NULL;
6149 fra.me.REG[5] = NIT_NULL;
6150 fra.me.REG[6] = NIT_NULL;
6151 fra.me.REG[7] = NIT_NULL;
6152 fra.me.REG[8] = NIT_NULL;
6153 fra.me.REG[9] = NIT_NULL;
6154 fra.me.REG[10] = NIT_NULL;
6155 fra.me.REG[0] = p0;
6156 fra.me.REG[1] = p1;
6157 fra.me.REG[2] = p2;
6158 fra.me.REG[3] = p3;
6159 /* syntax/mmbuilder.nit:915 */
6160 fra.me.REG[0] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
6161 /* ../lib/standard/collection/array.nit:270 */
6162 REGB0 = TAG_Int(0);
6163 /* ../lib/standard/collection/array.nit:271 */
6164 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
6165 if (UNTAG_Bool(REGB1)) {
6166 } else {
6167 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
6168 }
6169 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
6170 /* ../lib/standard/collection/array.nit:272 */
6171 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
6172 /* ../lib/standard/collection/array.nit:273 */
6173 while(1) {
6174 /* ../lib/standard/collection/array.nit:24 */
6175 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
6176 if (UNTAG_Bool(REGB1)) {
6177 } else {
6178 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6179 }
6180 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
6181 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
6182 if (UNTAG_Bool(REGB2)) {
6183 } else {
6184 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6185 }
6186 /* ../lib/standard/kernel.nit:242 */
6187 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
6188 /* ../lib/standard/collection/array.nit:273 */
6189 if (UNTAG_Bool(REGB1)) {
6190 /* ../lib/standard/collection/array.nit:274 */
6191 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6192 if (UNTAG_Bool(REGB1)) {
6193 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
6194 }
6195 /* ../lib/standard/collection/array.nit:725 */
6196 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
6197 /* syntax/mmbuilder.nit:917 */
6198 fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[5])(fra.me.REG[5]);
6199 fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
6200 fra.me.REG[6] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[6])(fra.me.REG[6]);
6201 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6202 if (UNTAG_Bool(REGB1)) {
6203 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 917);
6204 }
6205 fra.me.REG[6] = CALL_metamodel___static_type___MMSignature___adaptation_to(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
6206 /* syntax/mmbuilder.nit:919 */
6207 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6208 if (UNTAG_Bool(REGB1)) {
6209 } else {
6210 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
6211 if (UNTAG_Bool(REGB2)) {
6212 REGB2 = TAG_Bool(0);
6213 REGB1 = REGB2;
6214 } else {
6215 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
6216 REGB1 = REGB2;
6217 }
6218 }
6219 if (UNTAG_Bool(REGB1)) {
6220 /* syntax/mmbuilder.nit:920 */
6221 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6222 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[5])(fra.me.REG[5]);
6223 /* ../lib/standard/collection/array.nit:24 */
6224 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
6225 if (UNTAG_Bool(REGB1)) {
6226 } else {
6227 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6228 }
6229 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
6230 /* syntax/mmbuilder.nit:920 */
6231 REGB2 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[6])(fra.me.REG[6]);
6232 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
6233 if (UNTAG_Bool(REGB3)) {
6234 } else {
6235 /* ../lib/standard/kernel.nit:237 */
6236 REGB2 = TAG_Bool((REGB1)==(REGB2));
6237 /* syntax/mmbuilder.nit:920 */
6238 REGB3 = REGB2;
6239 }
6240 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
6241 if (UNTAG_Bool(REGB3)) {
6242 /* syntax/mmbuilder.nit:921 */
6243 goto label1;
6244 }
6245 /* syntax/mmbuilder.nit:923 */
6246 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6247 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[5])(fra.me.REG[5]);
6248 /* ../lib/standard/collection/array.nit:270 */
6249 REGB3 = TAG_Int(0);
6250 /* ../lib/standard/collection/array.nit:271 */
6251 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
6252 if (UNTAG_Bool(REGB2)) {
6253 } else {
6254 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
6255 }
6256 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
6257 /* ../lib/standard/collection/array.nit:272 */
6258 fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
6259 /* ../lib/standard/collection/array.nit:273 */
6260 while(1) {
6261 /* ../lib/standard/collection/array.nit:24 */
6262 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
6263 if (UNTAG_Bool(REGB2)) {
6264 } else {
6265 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6266 }
6267 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
6268 REGB1 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
6269 if (UNTAG_Bool(REGB1)) {
6270 } else {
6271 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6272 }
6273 /* ../lib/standard/kernel.nit:242 */
6274 REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB2));
6275 /* ../lib/standard/collection/array.nit:273 */
6276 if (UNTAG_Bool(REGB2)) {
6277 /* ../lib/standard/collection/array.nit:274 */
6278 REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6279 if (UNTAG_Bool(REGB2)) {
6280 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
6281 }
6282 /* ../lib/standard/collection/array.nit:725 */
6283 fra.me.REG[8] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB3)];
6284 /* syntax/mmbuilder.nit:924 */
6285 REGB2 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[8])(fra.me.REG[8]);
6286 fra.me.REG[9] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[6])(fra.me.REG[6], REGB2);
6287 /* syntax/mmbuilder.nit:925 */
6288 CALL_syntax___mmbuilder___AParam___stype__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
6289 /* syntax/mmbuilder.nit:926 */
6290 REGB2 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[8])(fra.me.REG[8]);
6291 REGB1 = CALL_metamodel___vararg___MMSignature___vararg_rank(fra.me.REG[6])(fra.me.REG[6]);
6292 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
6293 if (UNTAG_Bool(REGB4)) {
6294 } else {
6295 /* ../lib/standard/kernel.nit:237 */
6296 REGB1 = TAG_Bool((REGB2)==(REGB1));
6297 /* syntax/mmbuilder.nit:926 */
6298 REGB4 = REGB1;
6299 }
6300 if (UNTAG_Bool(REGB4)) {
6301 /* syntax/mmbuilder.nit:927 */
6302 fra.me.REG[10] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
6303 fra.me.REG[9] = fra.me.REG[10];
6304 }
6305 /* syntax/mmbuilder.nit:929 */
6306 fra.me.REG[8] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[8])(fra.me.REG[8]);
6307 CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
6308 /* ../lib/standard/collection/array.nit:275 */
6309 REGB4 = TAG_Int(1);
6310 /* ../lib/standard/kernel.nit:245 */
6311 REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB4));
6312 /* ../lib/standard/collection/array.nit:275 */
6313 REGB3 = REGB4;
6314 } else {
6315 /* ../lib/standard/collection/array.nit:273 */
6316 goto label2;
6317 }
6318 }
6319 label2: while(0);
6320 /* syntax/mmbuilder.nit:932 */
6321 fra.me.REG[0] = fra.me.REG[6];
6322 /* syntax/mmbuilder.nit:933 */
6323 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6324 }
6325 /* ../lib/standard/collection/array.nit:275 */
6326 REGB3 = TAG_Int(1);
6327 /* ../lib/standard/kernel.nit:245 */
6328 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
6329 /* ../lib/standard/collection/array.nit:275 */
6330 REGB0 = REGB3;
6331 } else {
6332 /* ../lib/standard/collection/array.nit:273 */
6333 goto label3;
6334 }
6335 }
6336 label3: while(0);
6337 label1: while(0);
6338 stack_frame_head = fra.me.prev;
6339 return;
6340 }
6341 static const char LOCATE_syntax___mmbuilder___APropdef___do_and_check_redef[] = "mmbuilder::APropdef::do_and_check_redef";
6342 void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
6343 struct {struct stack_frame_t me; val_t MORE_REG[13];} fra;
6344 val_t REGB0;
6345 val_t REGB1;
6346 val_t REGB2;
6347 val_t REGB3;
6348 val_t REGB4;
6349 val_t REGB5;
6350 val_t REGB6;
6351 val_t REGB7;
6352 val_t tmp;
6353 static val_t once_value_1; /* Once value */
6354 static val_t once_value_2; /* Once value */
6355 static val_t once_value_3; /* Once value */
6356 static val_t once_value_5; /* Once value */
6357 static val_t once_value_6; /* Once value */
6358 static val_t once_value_7; /* Once value */
6359 static val_t once_value_8; /* Once value */
6360 static val_t once_value_9; /* Once value */
6361 static val_t once_value_10; /* Once value */
6362 static val_t once_value_12; /* Once value */
6363 static val_t once_value_13; /* Once value */
6364 static val_t once_value_14; /* Once value */
6365 static val_t once_value_15; /* Once value */
6366 static val_t once_value_16; /* Once value */
6367 static val_t once_value_17; /* Once value */
6368 static val_t once_value_18; /* Once value */
6369 static val_t once_value_19; /* Once value */
6370 static val_t once_value_20; /* Once value */
6371 static val_t once_value_21; /* Once value */
6372 static val_t once_value_22; /* Once value */
6373 static val_t once_value_23; /* Once value */
6374 static val_t once_value_26; /* Once value */
6375 static val_t once_value_27; /* Once value */
6376 static val_t once_value_28; /* Once value */
6377 static val_t once_value_29; /* Once value */
6378 static val_t once_value_30; /* Once value */
6379 static val_t once_value_31; /* Once value */
6380 static val_t once_value_32; /* Once value */
6381 static val_t once_value_33; /* Once value */
6382 static val_t once_value_34; /* Once value */
6383 static val_t once_value_35; /* Once value */
6384 static val_t once_value_37; /* Once value */
6385 static val_t once_value_38; /* Once value */
6386 static val_t once_value_39; /* Once value */
6387 static val_t once_value_40; /* Once value */
6388 static val_t once_value_41; /* Once value */
6389 static val_t once_value_42; /* Once value */
6390 static val_t once_value_43; /* Once value */
6391 static val_t once_value_44; /* Once value */
6392 static val_t once_value_45; /* Once value */
6393 static val_t once_value_46; /* Once value */
6394 static val_t once_value_47; /* Once value */
6395 static val_t once_value_48; /* Once value */
6396 static val_t once_value_49; /* Once value */
6397 static val_t once_value_50; /* Once value */
6398 static val_t once_value_51; /* Once value */
6399 static val_t once_value_52; /* Once value */
6400 static val_t once_value_53; /* Once value */
6401 static val_t once_value_54; /* Once value */
6402 static val_t once_value_55; /* Once value */
6403 static val_t once_value_56; /* Once value */
6404 static val_t once_value_57; /* Once value */
6405 static val_t once_value_58; /* Once value */
6406 static val_t once_value_59; /* Once value */
6407 static val_t once_value_60; /* Once value */
6408 static val_t once_value_61; /* Once value */
6409 static val_t once_value_62; /* Once value */
6410 static val_t once_value_63; /* Once value */
6411 static val_t once_value_65; /* Once value */
6412 static val_t once_value_66; /* Once value */
6413 static val_t once_value_67; /* Once value */
6414 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6415 fra.me.file = LOCATE_syntax___mmbuilder;
6416 fra.me.line = 938;
6417 fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___do_and_check_redef;
6418 fra.me.has_broke = 0;
6419 fra.me.REG_size = 14;
6420 fra.me.nitni_local_ref_head = NULL;
6421 fra.me.REG[0] = NIT_NULL;
6422 fra.me.REG[1] = NIT_NULL;
6423 fra.me.REG[2] = NIT_NULL;
6424 fra.me.REG[3] = NIT_NULL;
6425 fra.me.REG[4] = NIT_NULL;
6426 fra.me.REG[5] = NIT_NULL;
6427 fra.me.REG[6] = NIT_NULL;
6428 fra.me.REG[7] = NIT_NULL;
6429 fra.me.REG[8] = NIT_NULL;
6430 fra.me.REG[9] = NIT_NULL;
6431 fra.me.REG[10] = NIT_NULL;
6432 fra.me.REG[11] = NIT_NULL;
6433 fra.me.REG[12] = NIT_NULL;
6434 fra.me.REG[13] = NIT_NULL;
6435 fra.me.REG[0] = p0;
6436 fra.me.REG[1] = p1;
6437 fra.me.REG[2] = p2;
6438 REGB0 = p3;
6439 REGB1 = p4;
6440 /* syntax/mmbuilder.nit:941 */
6441 REGB2 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AInitPropdef, ID_parser___parser_nodes___AInitPropdef)) /*cast AInitPropdef*/;
6442 /* syntax/mmbuilder.nit:942 */
6443 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
6444 /* syntax/mmbuilder.nit:944 */
6445 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6446 if (UNTAG_Bool(REGB0)) {
6447 /* syntax/mmbuilder.nit:945 */
6448 REGB0 = TAG_Int(5);
6449 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
6450 if (!once_value_1) {
6451 fra.me.REG[5] = BOX_NativeString("Redef error: ");
6452 REGB0 = TAG_Int(13);
6453 fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
6454 once_value_1 = fra.me.REG[5];
6455 register_static_object(&once_value_1);
6456 } else fra.me.REG[5] = once_value_1;
6457 fra.me.REG[5] = fra.me.REG[5];
6458 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6459 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6460 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
6461 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6462 if (!once_value_2) {
6463 fra.me.REG[5] = BOX_NativeString("::");
6464 REGB0 = TAG_Int(2);
6465 fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
6466 once_value_2 = fra.me.REG[5];
6467 register_static_object(&once_value_2);
6468 } else fra.me.REG[5] = once_value_2;
6469 fra.me.REG[5] = fra.me.REG[5];
6470 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6471 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6472 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6473 if (!once_value_3) {
6474 fra.me.REG[5] = BOX_NativeString(" is an inherited property. To redefine it, add the redef keyword.");
6475 REGB0 = TAG_Int(65);
6476 fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
6477 once_value_3 = fra.me.REG[5];
6478 register_static_object(&once_value_3);
6479 } else fra.me.REG[5] = once_value_3;
6480 fra.me.REG[5] = fra.me.REG[5];
6481 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6482 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
6483 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
6484 /* syntax/mmbuilder.nit:946 */
6485 goto label4;
6486 }
6487 /* syntax/mmbuilder.nit:948 */
6488 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
6489 if (UNTAG_Bool(REGB0)) {
6490 REGB0 = TAG_Bool(!UNTAG_Bool(REGB2));
6491 } else {
6492 REGB3 = TAG_Bool(0);
6493 REGB0 = REGB3;
6494 }
6495 if (UNTAG_Bool(REGB0)) {
6496 /* syntax/mmbuilder.nit:949 */
6497 REGB0 = TAG_Int(5);
6498 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
6499 if (!once_value_5) {
6500 fra.me.REG[5] = BOX_NativeString("Redef error: A method ");
6501 REGB0 = TAG_Int(22);
6502 fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
6503 once_value_5 = fra.me.REG[5];
6504 register_static_object(&once_value_5);
6505 } else fra.me.REG[5] = once_value_5;
6506 fra.me.REG[5] = fra.me.REG[5];
6507 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6508 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6509 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
6510 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6511 if (!once_value_6) {
6512 fra.me.REG[5] = BOX_NativeString("::");
6513 REGB0 = TAG_Int(2);
6514 fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
6515 once_value_6 = fra.me.REG[5];
6516 register_static_object(&once_value_6);
6517 } else fra.me.REG[5] = once_value_6;
6518 fra.me.REG[5] = fra.me.REG[5];
6519 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6520 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6521 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6522 if (!once_value_7) {
6523 fra.me.REG[5] = BOX_NativeString(" cannot redefine a constructor.");
6524 REGB0 = TAG_Int(31);
6525 fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
6526 once_value_7 = fra.me.REG[5];
6527 register_static_object(&once_value_7);
6528 } else fra.me.REG[5] = once_value_7;
6529 fra.me.REG[5] = fra.me.REG[5];
6530 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6531 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
6532 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
6533 } else {
6534 /* syntax/mmbuilder.nit:950 */
6535 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
6536 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6537 if (UNTAG_Bool(REGB0)) {
6538 } else {
6539 REGB0 = TAG_Bool(0);
6540 REGB2 = REGB0;
6541 }
6542 if (UNTAG_Bool(REGB2)) {
6543 /* syntax/mmbuilder.nit:951 */
6544 REGB2 = TAG_Int(5);
6545 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
6546 if (!once_value_8) {
6547 fra.me.REG[5] = BOX_NativeString("Redef error: A constructor ");
6548 REGB2 = TAG_Int(27);
6549 fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
6550 once_value_8 = fra.me.REG[5];
6551 register_static_object(&once_value_8);
6552 } else fra.me.REG[5] = once_value_8;
6553 fra.me.REG[5] = fra.me.REG[5];
6554 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6555 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6556 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
6557 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6558 if (!once_value_9) {
6559 fra.me.REG[5] = BOX_NativeString("::");
6560 REGB2 = TAG_Int(2);
6561 fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
6562 once_value_9 = fra.me.REG[5];
6563 register_static_object(&once_value_9);
6564 } else fra.me.REG[5] = once_value_9;
6565 fra.me.REG[5] = fra.me.REG[5];
6566 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6567 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6568 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6569 if (!once_value_10) {
6570 fra.me.REG[5] = BOX_NativeString(" cannot redefine a method.");
6571 REGB2 = TAG_Int(26);
6572 fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
6573 once_value_10 = fra.me.REG[5];
6574 register_static_object(&once_value_10);
6575 } else fra.me.REG[5] = once_value_10;
6576 fra.me.REG[5] = fra.me.REG[5];
6577 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
6578 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
6579 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
6580 }
6581 }
6582 /* syntax/mmbuilder.nit:954 */
6583 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
6584 /* syntax/mmbuilder.nit:956 */
6585 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[2])(fra.me.REG[2]);
6586 fra.me.REG[5] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[5])(fra.me.REG[5]);
6587 /* ../lib/standard/collection/array.nit:270 */
6588 REGB2 = TAG_Int(0);
6589 /* ../lib/standard/collection/array.nit:271 */
6590 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
6591 if (UNTAG_Bool(REGB0)) {
6592 } else {
6593 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
6594 }
6595 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
6596 /* ../lib/standard/collection/array.nit:272 */
6597 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
6598 /* ../lib/standard/collection/array.nit:273 */
6599 while(1) {
6600 /* ../lib/standard/collection/array.nit:24 */
6601 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
6602 if (UNTAG_Bool(REGB0)) {
6603 } else {
6604 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6605 }
6606 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
6607 REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
6608 if (UNTAG_Bool(REGB3)) {
6609 } else {
6610 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6611 }
6612 /* ../lib/standard/kernel.nit:242 */
6613 REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
6614 /* ../lib/standard/collection/array.nit:273 */
6615 if (UNTAG_Bool(REGB0)) {
6616 /* ../lib/standard/collection/array.nit:274 */
6617 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
6618 if (UNTAG_Bool(REGB0)) {
6619 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
6620 }
6621 /* ../lib/standard/collection/array.nit:725 */
6622 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB2)];
6623 /* syntax/mmbuilder.nit:957 */
6624 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[7])(fra.me.REG[7]);
6625 fra.me.REG[9] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
6626 fra.me.REG[9] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
6627 /* syntax/mmbuilder.nit:958 */
6628 fra.me.REG[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[7])(fra.me.REG[7]);
6629 /* syntax/mmbuilder.nit:959 */
6630 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6631 if (UNTAG_Bool(REGB0)) {
6632 } else {
6633 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6634 if (UNTAG_Bool(REGB3)) {
6635 REGB3 = TAG_Bool(0);
6636 REGB0 = REGB3;
6637 } else {
6638 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
6639 REGB0 = REGB3;
6640 }
6641 }
6642 if (UNTAG_Bool(REGB0)) {
6643 goto label11;
6644 }
6645 /* syntax/mmbuilder.nit:960 */
6646 fra.me.REG[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
6647 fra.me.REG[8] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[8])(fra.me.REG[8]);
6648 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6649 if (UNTAG_Bool(REGB0)) {
6650 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 960);
6651 }
6652 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___adaptation_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
6653 fra.me.REG[7] = fra.me.REG[8];
6654 /* syntax/mmbuilder.nit:962 */
6655 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6656 if (UNTAG_Bool(REGB0)) {
6657 } else {
6658 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6659 if (UNTAG_Bool(REGB3)) {
6660 REGB3 = TAG_Bool(0);
6661 REGB0 = REGB3;
6662 } else {
6663 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
6664 REGB0 = REGB3;
6665 }
6666 }
6667 if (UNTAG_Bool(REGB0)) {
6668 /* syntax/mmbuilder.nit:964 */
6669 fra.me.REG[8] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6670 fra.me.REG[8] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[8])(fra.me.REG[8]);
6671 /* ../lib/standard/collection/array.nit:24 */
6672 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6673 if (UNTAG_Bool(REGB0)) {
6674 } else {
6675 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6676 }
6677 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6678 /* syntax/mmbuilder.nit:964 */
6679 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6680 if (UNTAG_Bool(REGB3)) {
6681 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 964);
6682 }
6683 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
6684 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB3));
6685 if (UNTAG_Bool(REGB4)) {
6686 } else {
6687 /* ../lib/standard/kernel.nit:237 */
6688 REGB3 = TAG_Bool((REGB0)==(REGB3));
6689 /* syntax/mmbuilder.nit:964 */
6690 REGB4 = REGB3;
6691 }
6692 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
6693 if (UNTAG_Bool(REGB4)) {
6694 /* syntax/mmbuilder.nit:965 */
6695 REGB4 = TAG_Int(11);
6696 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
6697 if (!once_value_12) {
6698 fra.me.REG[10] = BOX_NativeString("Redef error: ");
6699 REGB4 = TAG_Int(13);
6700 fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB4);
6701 once_value_12 = fra.me.REG[10];
6702 register_static_object(&once_value_12);
6703 } else fra.me.REG[10] = once_value_12;
6704 fra.me.REG[10] = fra.me.REG[10];
6705 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6706 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6707 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6708 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6709 if (!once_value_13) {
6710 fra.me.REG[10] = BOX_NativeString("::");
6711 REGB4 = TAG_Int(2);
6712 fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB4);
6713 once_value_13 = fra.me.REG[10];
6714 register_static_object(&once_value_13);
6715 } else fra.me.REG[10] = once_value_13;
6716 fra.me.REG[10] = fra.me.REG[10];
6717 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6718 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6719 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6720 if (!once_value_14) {
6721 fra.me.REG[10] = BOX_NativeString(" redefines ");
6722 REGB4 = TAG_Int(11);
6723 fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB4);
6724 once_value_14 = fra.me.REG[10];
6725 register_static_object(&once_value_14);
6726 } else fra.me.REG[10] = once_value_14;
6727 fra.me.REG[10] = fra.me.REG[10];
6728 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6729 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6730 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6731 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6732 if (!once_value_15) {
6733 fra.me.REG[10] = BOX_NativeString("::");
6734 REGB4 = TAG_Int(2);
6735 fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB4);
6736 once_value_15 = fra.me.REG[10];
6737 register_static_object(&once_value_15);
6738 } else fra.me.REG[10] = once_value_15;
6739 fra.me.REG[10] = fra.me.REG[10];
6740 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6741 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6742 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6743 if (!once_value_16) {
6744 fra.me.REG[10] = BOX_NativeString(" with ");
6745 REGB4 = TAG_Int(6);
6746 fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB4);
6747 once_value_16 = fra.me.REG[10];
6748 register_static_object(&once_value_16);
6749 } else fra.me.REG[10] = once_value_16;
6750 fra.me.REG[10] = fra.me.REG[10];
6751 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6752 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6753 if (UNTAG_Bool(REGB4)) {
6754 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 965);
6755 }
6756 REGB4 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
6757 fra.me.REG[10] = CALL_standard___string___Object___to_s(REGB4)(REGB4);
6758 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6759 if (!once_value_17) {
6760 fra.me.REG[10] = BOX_NativeString(" parameter(s).");
6761 REGB4 = TAG_Int(14);
6762 fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB4);
6763 once_value_17 = fra.me.REG[10];
6764 register_static_object(&once_value_17);
6765 } else fra.me.REG[10] = once_value_17;
6766 fra.me.REG[10] = fra.me.REG[10];
6767 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6768 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
6769 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]);
6770 /* syntax/mmbuilder.nit:966 */
6771 goto label4;
6772 }
6773 /* syntax/mmbuilder.nit:968 */
6774 fra.me.REG[8] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6775 fra.me.REG[8] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[8])(fra.me.REG[8]);
6776 /* ../lib/standard/collection/array.nit:24 */
6777 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6778 if (UNTAG_Bool(REGB4)) {
6779 } else {
6780 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6781 }
6782 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6783 /* syntax/mmbuilder.nit:968 */
6784 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6785 if (UNTAG_Bool(REGB3)) {
6786 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 968);
6787 }
6788 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[7])(fra.me.REG[7]);
6789 /* ../lib/standard/collection/array.nit:24 */
6790 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6791 if (UNTAG_Bool(REGB3)) {
6792 } else {
6793 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6794 }
6795 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6796 /* syntax/mmbuilder.nit:968 */
6797 REGB0 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB3));
6798 if (UNTAG_Bool(REGB0)) {
6799 } else {
6800 /* ../lib/standard/kernel.nit:237 */
6801 REGB3 = TAG_Bool((REGB4)==(REGB3));
6802 /* syntax/mmbuilder.nit:968 */
6803 REGB0 = REGB3;
6804 }
6805 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6806 if (UNTAG_Bool(REGB0)) {
6807 /* syntax/mmbuilder.nit:969 */
6808 REGB0 = TAG_Int(11);
6809 fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
6810 if (!once_value_18) {
6811 fra.me.REG[10] = BOX_NativeString("Redef error: ");
6812 REGB0 = TAG_Int(13);
6813 fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB0);
6814 once_value_18 = fra.me.REG[10];
6815 register_static_object(&once_value_18);
6816 } else fra.me.REG[10] = once_value_18;
6817 fra.me.REG[10] = fra.me.REG[10];
6818 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6819 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
6820 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6821 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6822 if (!once_value_19) {
6823 fra.me.REG[10] = BOX_NativeString("::");
6824 REGB0 = TAG_Int(2);
6825 fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB0);
6826 once_value_19 = fra.me.REG[10];
6827 register_static_object(&once_value_19);
6828 } else fra.me.REG[10] = once_value_19;
6829 fra.me.REG[10] = fra.me.REG[10];
6830 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6831 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
6832 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6833 if (!once_value_20) {
6834 fra.me.REG[10] = BOX_NativeString(" redefines ");
6835 REGB0 = TAG_Int(11);
6836 fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB0);
6837 once_value_20 = fra.me.REG[10];
6838 register_static_object(&once_value_20);
6839 } else fra.me.REG[10] = once_value_20;
6840 fra.me.REG[10] = fra.me.REG[10];
6841 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6842 fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
6843 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
6844 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6845 if (!once_value_21) {
6846 fra.me.REG[10] = BOX_NativeString("::");
6847 REGB0 = TAG_Int(2);
6848 fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB0);
6849 once_value_21 = fra.me.REG[10];
6850 register_static_object(&once_value_21);
6851 } else fra.me.REG[10] = once_value_21;
6852 fra.me.REG[10] = fra.me.REG[10];
6853 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6854 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
6855 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6856 if (!once_value_22) {
6857 fra.me.REG[10] = BOX_NativeString(" with ");
6858 REGB0 = TAG_Int(6);
6859 fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB0);
6860 once_value_22 = fra.me.REG[10];
6861 register_static_object(&once_value_22);
6862 } else fra.me.REG[10] = once_value_22;
6863 fra.me.REG[10] = fra.me.REG[10];
6864 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6865 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6866 if (UNTAG_Bool(REGB0)) {
6867 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 969);
6868 }
6869 REGB0 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
6870 fra.me.REG[10] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
6871 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6872 if (!once_value_23) {
6873 fra.me.REG[10] = BOX_NativeString(" closure(s).");
6874 REGB0 = TAG_Int(12);
6875 fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB0);
6876 once_value_23 = fra.me.REG[10];
6877 register_static_object(&once_value_23);
6878 } else fra.me.REG[10] = once_value_23;
6879 fra.me.REG[10] = fra.me.REG[10];
6880 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
6881 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
6882 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]);
6883 /* syntax/mmbuilder.nit:970 */
6884 goto label4;
6885 }
6886 /* syntax/mmbuilder.nit:972 */
6887 fra.me.REG[8] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
6888 fra.me.REG[8] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[8])(fra.me.REG[8]);
6889 /* ../lib/standard/collection/array.nit:270 */
6890 REGB0 = TAG_Int(0);
6891 /* ../lib/standard/collection/array.nit:271 */
6892 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6893 if (UNTAG_Bool(REGB3)) {
6894 } else {
6895 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
6896 }
6897 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6898 /* ../lib/standard/collection/array.nit:272 */
6899 fra.me.REG[10] = ATTR_standard___collection___array___Array____items(fra.me.REG[8]);
6900 /* ../lib/standard/collection/array.nit:273 */
6901 while(1) {
6902 /* ../lib/standard/collection/array.nit:24 */
6903 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
6904 if (UNTAG_Bool(REGB3)) {
6905 } else {
6906 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
6907 }
6908 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
6909 REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
6910 if (UNTAG_Bool(REGB4)) {
6911 } else {
6912 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6913 }
6914 /* ../lib/standard/kernel.nit:242 */
6915 REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB3));
6916 /* ../lib/standard/collection/array.nit:273 */
6917 if (UNTAG_Bool(REGB3)) {
6918 /* ../lib/standard/collection/array.nit:274 */
6919 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6920 if (UNTAG_Bool(REGB3)) {
6921 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
6922 }
6923 /* ../lib/standard/collection/array.nit:725 */
6924 fra.me.REG[11] = ((Nit_NativeArray)fra.me.REG[10])->val[UNTAG_Int(REGB0)];
6925 /* syntax/mmbuilder.nit:973 */
6926 REGB3 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]);
6927 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6928 if (UNTAG_Bool(REGB4)) {
6929 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 973);
6930 }
6931 fra.me.REG[12] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB3);
6932 /* syntax/mmbuilder.nit:974 */
6933 CALL_syntax___mmbuilder___AParam___stype__eq(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
6934 /* syntax/mmbuilder.nit:975 */
6935 REGB3 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]);
6936 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6937 if (UNTAG_Bool(REGB4)) {
6938 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 975);
6939 }
6940 REGB4 = CALL_metamodel___vararg___MMSignature___vararg_rank(fra.me.REG[7])(fra.me.REG[7]);
6941 REGB5 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB4));
6942 if (UNTAG_Bool(REGB5)) {
6943 } else {
6944 /* ../lib/standard/kernel.nit:237 */
6945 REGB4 = TAG_Bool((REGB3)==(REGB4));
6946 /* syntax/mmbuilder.nit:975 */
6947 REGB5 = REGB4;
6948 }
6949 if (UNTAG_Bool(REGB5)) {
6950 /* syntax/mmbuilder.nit:976 */
6951 fra.me.REG[13] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[12]);
6952 fra.me.REG[12] = fra.me.REG[13];
6953 }
6954 /* syntax/mmbuilder.nit:978 */
6955 fra.me.REG[13] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[11])(fra.me.REG[11]);
6956 CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[13])(fra.me.REG[13], fra.me.REG[12]);
6957 /* syntax/mmbuilder.nit:980 */
6958 REGB5 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6959 if (UNTAG_Bool(REGB5)) {
6960 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 980);
6961 }
6962 fra.me.REG[12] = CALL_metamodel___static_type___MMSignature___params(fra.me.REG[7])(fra.me.REG[7]);
6963 REGB5 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]);
6964 /* ../lib/standard/collection/array.nit:281 */
6965 REGB4 = TAG_Int(0);
6966 REGB3 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
6967 if (UNTAG_Bool(REGB3)) {
6968 } else {
6969 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6970 }
6971 /* ../lib/standard/kernel.nit:243 */
6972 REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
6973 /* ../lib/standard/collection/array.nit:281 */
6974 if (UNTAG_Bool(REGB4)) {
6975 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[12])!=NIT_NULL);
6976 if (UNTAG_Bool(REGB4)) {
6977 } else {
6978 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281);
6979 }
6980 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[12]);
6981 REGB3 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
6982 if (UNTAG_Bool(REGB3)) {
6983 } else {
6984 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
6985 }
6986 /* ../lib/standard/kernel.nit:242 */
6987 REGB4 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB4));
6988 } else {
6989 /* ../lib/standard/collection/array.nit:281 */
6990 REGB3 = TAG_Bool(0);
6991 REGB4 = REGB3;
6992 }
6993 if (UNTAG_Bool(REGB4)) {
6994 } else {
6995 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 281);
6996 }
6997 /* ../lib/standard/collection/array.nit:282 */
6998 fra.me.REG[12] = ATTR_standard___collection___array___Array____items(fra.me.REG[12]);
6999 REGB4 = TAG_Bool(fra.me.REG[12]==NIT_NULL);
7000 if (UNTAG_Bool(REGB4)) {
7001 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 282);
7002 }
7003 /* ../lib/standard/collection/array.nit:725 */
7004 fra.me.REG[12] = ((Nit_NativeArray)fra.me.REG[12])->val[UNTAG_Int(REGB5)];
7005 /* ../lib/standard/collection/array.nit:282 */
7006 goto label24;
7007 label24: while(0);
7008 /* syntax/mmbuilder.nit:980 */
7009 fra.me.REG[11] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[11])(fra.me.REG[11]);
7010 fra.me.REG[11] = CALL_syntax___syntax_base___Variable___name(fra.me.REG[11])(fra.me.REG[11]);
7011 REGB5 = TAG_Bool(fra.me.REG[12]==NIT_NULL);
7012 if (UNTAG_Bool(REGB5)) {
7013 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 980);
7014 }
7015 CALL_metamodel___static_type___MMParam___name__eq(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
7016 /* ../lib/standard/collection/array.nit:275 */
7017 REGB5 = TAG_Int(1);
7018 /* ../lib/standard/kernel.nit:245 */
7019 REGB5 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB5));
7020 /* ../lib/standard/collection/array.nit:275 */
7021 REGB0 = REGB5;
7022 } else {
7023 /* ../lib/standard/collection/array.nit:273 */
7024 goto label25;
7025 }
7026 }
7027 label25: while(0);
7028 /* syntax/mmbuilder.nit:982 */
7029 fra.me.REG[4] = fra.me.REG[7];
7030 /* syntax/mmbuilder.nit:983 */
7031 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
7032 }
7033 /* syntax/mmbuilder.nit:987 */
7034 fra.me.REG[10] = CALL_syntax___syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
7035 REGB0 = CALL_toolcontext___ToolContext___error_count(fra.me.REG[10])(fra.me.REG[10]);
7036 /* syntax/mmbuilder.nit:995 */
7037 REGB5 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7038 if (UNTAG_Bool(REGB5)) {
7039 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 995);
7040 }
7041 REGB5 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
7042 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7043 if (UNTAG_Bool(REGB4)) {
7044 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 995);
7045 }
7046 REGB4 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
7047 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB5,REGB4));
7048 if (UNTAG_Bool(REGB3)) {
7049 } else {
7050 /* ../lib/standard/kernel.nit:237 */
7051 REGB4 = TAG_Bool((REGB5)==(REGB4));
7052 /* syntax/mmbuilder.nit:995 */
7053 REGB3 = REGB4;
7054 }
7055 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7056 if (UNTAG_Bool(REGB3)) {
7057 /* syntax/mmbuilder.nit:996 */
7058 REGB3 = TAG_Int(11);
7059 fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
7060 if (!once_value_26) {
7061 fra.me.REG[8] = BOX_NativeString("Redef error: ");
7062 REGB3 = TAG_Int(13);
7063 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB3);
7064 once_value_26 = fra.me.REG[8];
7065 register_static_object(&once_value_26);
7066 } else fra.me.REG[8] = once_value_26;
7067 fra.me.REG[8] = fra.me.REG[8];
7068 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7069 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
7070 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
7071 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7072 if (!once_value_27) {
7073 fra.me.REG[8] = BOX_NativeString("::");
7074 REGB3 = TAG_Int(2);
7075 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB3);
7076 once_value_27 = fra.me.REG[8];
7077 register_static_object(&once_value_27);
7078 } else fra.me.REG[8] = once_value_27;
7079 fra.me.REG[8] = fra.me.REG[8];
7080 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7081 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
7082 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7083 if (!once_value_28) {
7084 fra.me.REG[8] = BOX_NativeString(" redefines ");
7085 REGB3 = TAG_Int(11);
7086 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB3);
7087 once_value_28 = fra.me.REG[8];
7088 register_static_object(&once_value_28);
7089 } else fra.me.REG[8] = once_value_28;
7090 fra.me.REG[8] = fra.me.REG[8];
7091 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7092 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7093 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
7094 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7095 if (!once_value_29) {
7096 fra.me.REG[8] = BOX_NativeString("::");
7097 REGB3 = TAG_Int(2);
7098 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB3);
7099 once_value_29 = fra.me.REG[8];
7100 register_static_object(&once_value_29);
7101 } else fra.me.REG[8] = once_value_29;
7102 fra.me.REG[8] = fra.me.REG[8];
7103 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7104 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7105 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7106 if (!once_value_30) {
7107 fra.me.REG[8] = BOX_NativeString(" with ");
7108 REGB3 = TAG_Int(6);
7109 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB3);
7110 once_value_30 = fra.me.REG[8];
7111 register_static_object(&once_value_30);
7112 } else fra.me.REG[8] = once_value_30;
7113 fra.me.REG[8] = fra.me.REG[8];
7114 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7115 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7116 if (UNTAG_Bool(REGB3)) {
7117 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 996);
7118 }
7119 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
7120 fra.me.REG[8] = CALL_standard___string___Object___to_s(REGB3)(REGB3);
7121 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7122 if (!once_value_31) {
7123 fra.me.REG[8] = BOX_NativeString(" parameter(s).");
7124 REGB3 = TAG_Int(14);
7125 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB3);
7126 once_value_31 = fra.me.REG[8];
7127 register_static_object(&once_value_31);
7128 } else fra.me.REG[8] = once_value_31;
7129 fra.me.REG[8] = fra.me.REG[8];
7130 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7131 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
7132 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[10]);
7133 } else {
7134 /* syntax/mmbuilder.nit:997 */
7135 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7136 if (UNTAG_Bool(REGB3)) {
7137 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 997);
7138 }
7139 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
7140 REGB4 = TAG_Int(0);
7141 REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
7142 if (UNTAG_Bool(REGB5)) {
7143 } else {
7144 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7145 }
7146 /* ../lib/standard/kernel.nit:244 */
7147 REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB4));
7148 /* syntax/mmbuilder.nit:997 */
7149 if (UNTAG_Bool(REGB4)) {
7150 /* syntax/mmbuilder.nit:998 */
7151 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AMethPropdef, ID_parser___parser_nodes___AMethPropdef)) /*cast AMethPropdef*/;
7152 if (UNTAG_Bool(REGB4)) {
7153 /* syntax/mmbuilder.nit:1000 */
7154 REGB4 = TAG_Int(0);
7155 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7156 if (UNTAG_Bool(REGB3)) {
7157 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1000);
7158 }
7159 REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
7160 /* ../lib/standard/kernel.nit:404 */
7161 while(1) {
7162 REGB5 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
7163 if (UNTAG_Bool(REGB5)) {
7164 } else {
7165 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
7166 }
7167 /* ../lib/standard/kernel.nit:242 */
7168 REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB3));
7169 /* ../lib/standard/kernel.nit:404 */
7170 if (UNTAG_Bool(REGB5)) {
7171 /* syntax/mmbuilder.nit:1000 */
7172 REGB5 = REGB4;
7173 /* syntax/mmbuilder.nit:1001 */
7174 REGB6 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7175 if (UNTAG_Bool(REGB6)) {
7176 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1001);
7177 }
7178 fra.me.REG[10] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[4])(fra.me.REG[4], REGB5);
7179 REGB6 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7180 if (UNTAG_Bool(REGB6)) {
7181 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1001);
7182 }
7183 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB5);
7184 REGB6 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[10],fra.me.REG[8]));
7185 if (UNTAG_Bool(REGB6)) {
7186 } else {
7187 REGB7 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7188 REGB6 = REGB7;
7189 }
7190 REGB6 = TAG_Bool(!UNTAG_Bool(REGB6));
7191 if (UNTAG_Bool(REGB6)) {
7192 /* syntax/mmbuilder.nit:1002 */
7193 fra.me.REG[8] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[0])(fra.me.REG[0]);
7194 REGB6 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7195 if (UNTAG_Bool(REGB6)) {
7196 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1002);
7197 }
7198 fra.me.REG[8] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[8])(fra.me.REG[8]);
7199 fra.me.REG[8] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[8])(fra.me.REG[8], REGB5);
7200 REGB6 = TAG_Int(7);
7201 fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB6);
7202 if (!once_value_32) {
7203 fra.me.REG[11] = BOX_NativeString("Redef error: Expected ");
7204 REGB6 = TAG_Int(22);
7205 fra.me.REG[11] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[11])(fra.me.REG[11], REGB6);
7206 once_value_32 = fra.me.REG[11];
7207 register_static_object(&once_value_32);
7208 } else fra.me.REG[11] = once_value_32;
7209 fra.me.REG[11] = fra.me.REG[11];
7210 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7211 REGB6 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7212 if (UNTAG_Bool(REGB6)) {
7213 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1002);
7214 }
7215 fra.me.REG[11] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB5);
7216 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7217 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7218 if (!once_value_33) {
7219 fra.me.REG[11] = BOX_NativeString(", as in ");
7220 REGB5 = TAG_Int(8);
7221 fra.me.REG[11] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[11])(fra.me.REG[11], REGB5);
7222 once_value_33 = fra.me.REG[11];
7223 register_static_object(&once_value_33);
7224 } else fra.me.REG[11] = once_value_33;
7225 fra.me.REG[11] = fra.me.REG[11];
7226 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7227 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7228 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7229 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7230 if (!once_value_34) {
7231 fra.me.REG[11] = BOX_NativeString("::");
7232 REGB5 = TAG_Int(2);
7233 fra.me.REG[11] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[11])(fra.me.REG[11], REGB5);
7234 once_value_34 = fra.me.REG[11];
7235 register_static_object(&once_value_34);
7236 } else fra.me.REG[11] = once_value_34;
7237 fra.me.REG[11] = fra.me.REG[11];
7238 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7239 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7240 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7241 if (!once_value_35) {
7242 fra.me.REG[11] = BOX_NativeString(".");
7243 REGB5 = TAG_Int(1);
7244 fra.me.REG[11] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[11])(fra.me.REG[11], REGB5);
7245 once_value_35 = fra.me.REG[11];
7246 register_static_object(&once_value_35);
7247 } else fra.me.REG[11] = once_value_35;
7248 fra.me.REG[11] = fra.me.REG[11];
7249 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7250 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
7251 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8], fra.me.REG[10]);
7252 }
7253 /* ../lib/standard/kernel.nit:406 */
7254 REGB5 = TAG_Int(1);
7255 /* ../lib/standard/kernel.nit:245 */
7256 REGB5 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB5));
7257 /* ../lib/standard/kernel.nit:406 */
7258 REGB4 = REGB5;
7259 } else {
7260 /* ../lib/standard/kernel.nit:404 */
7261 goto label36;
7262 }
7263 }
7264 label36: while(0);
7265 } else {
7266 /* syntax/mmbuilder.nit:1005 */
7267 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AAttrPropdef, ID_parser___parser_nodes___AAttrPropdef)) /*cast AAttrPropdef*/;
7268 if (UNTAG_Bool(REGB4)) {
7269 /* syntax/mmbuilder.nit:1007 */
7270 REGB4 = TAG_Int(0);
7271 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7272 if (UNTAG_Bool(REGB3)) {
7273 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1007);
7274 }
7275 fra.me.REG[10] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[4])(fra.me.REG[4], REGB4);
7276 REGB4 = TAG_Int(0);
7277 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7278 if (UNTAG_Bool(REGB3)) {
7279 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1007);
7280 }
7281 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB4);
7282 REGB4 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[10],fra.me.REG[8]));
7283 if (UNTAG_Bool(REGB4)) {
7284 } else {
7285 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7286 REGB4 = REGB3;
7287 }
7288 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7289 if (UNTAG_Bool(REGB4)) {
7290 /* syntax/mmbuilder.nit:1008 */
7291 fra.me.REG[8] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[0])(fra.me.REG[0]);
7292 REGB4 = TAG_Int(7);
7293 fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
7294 if (!once_value_37) {
7295 fra.me.REG[11] = BOX_NativeString("Redef error: Expected ");
7296 REGB4 = TAG_Int(22);
7297 fra.me.REG[11] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[11])(fra.me.REG[11], REGB4);
7298 once_value_37 = fra.me.REG[11];
7299 register_static_object(&once_value_37);
7300 } else fra.me.REG[11] = once_value_37;
7301 fra.me.REG[11] = fra.me.REG[11];
7302 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7303 REGB4 = TAG_Int(0);
7304 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7305 if (UNTAG_Bool(REGB3)) {
7306 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1008);
7307 }
7308 fra.me.REG[11] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB4);
7309 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7310 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7311 if (!once_value_38) {
7312 fra.me.REG[11] = BOX_NativeString(", as in the parameter of ");
7313 REGB4 = TAG_Int(25);
7314 fra.me.REG[11] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[11])(fra.me.REG[11], REGB4);
7315 once_value_38 = fra.me.REG[11];
7316 register_static_object(&once_value_38);
7317 } else fra.me.REG[11] = once_value_38;
7318 fra.me.REG[11] = fra.me.REG[11];
7319 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7320 fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7321 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7322 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7323 if (!once_value_39) {
7324 fra.me.REG[11] = BOX_NativeString("::");
7325 REGB4 = TAG_Int(2);
7326 fra.me.REG[11] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[11])(fra.me.REG[11], REGB4);
7327 once_value_39 = fra.me.REG[11];
7328 register_static_object(&once_value_39);
7329 } else fra.me.REG[11] = once_value_39;
7330 fra.me.REG[11] = fra.me.REG[11];
7331 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7332 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7333 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7334 if (!once_value_40) {
7335 fra.me.REG[11] = BOX_NativeString(".");
7336 REGB4 = TAG_Int(1);
7337 fra.me.REG[11] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[11])(fra.me.REG[11], REGB4);
7338 once_value_40 = fra.me.REG[11];
7339 register_static_object(&once_value_40);
7340 } else fra.me.REG[11] = once_value_40;
7341 fra.me.REG[11] = fra.me.REG[11];
7342 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
7343 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
7344 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8], fra.me.REG[10]);
7345 }
7346 } else {
7347 /* syntax/mmbuilder.nit:1012 */
7348 nit_abort("Aborted", NULL, LOCATE_syntax___mmbuilder, 1012);
7349 }
7350 }
7351 }
7352 }
7353 /* syntax/mmbuilder.nit:1016 */
7354 REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7355 if (UNTAG_Bool(REGB4)) {
7356 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1016);
7357 }
7358 fra.me.REG[10] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[4])(fra.me.REG[4]);
7359 /* syntax/mmbuilder.nit:1017 */
7360 REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7361 if (UNTAG_Bool(REGB4)) {
7362 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1017);
7363 }
7364 fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[7])(fra.me.REG[7]);
7365 /* syntax/mmbuilder.nit:1018 */
7366 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7367 if (UNTAG_Bool(REGB4)) {
7368 } else {
7369 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7370 if (UNTAG_Bool(REGB3)) {
7371 REGB3 = TAG_Bool(0);
7372 REGB4 = REGB3;
7373 } else {
7374 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
7375 REGB4 = REGB3;
7376 }
7377 }
7378 if (UNTAG_Bool(REGB4)) {
7379 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7380 if (UNTAG_Bool(REGB4)) {
7381 } else {
7382 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7383 if (UNTAG_Bool(REGB3)) {
7384 REGB3 = TAG_Bool(0);
7385 REGB4 = REGB3;
7386 } else {
7387 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
7388 REGB4 = REGB3;
7389 }
7390 }
7391 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7392 } else {
7393 REGB3 = TAG_Bool(0);
7394 REGB4 = REGB3;
7395 }
7396 if (UNTAG_Bool(REGB4)) {
7397 /* syntax/mmbuilder.nit:1019 */
7398 REGB4 = TAG_Int(9);
7399 fra.me.REG[11] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
7400 if (!once_value_41) {
7401 fra.me.REG[12] = BOX_NativeString("Redef error: The procedure ");
7402 REGB4 = TAG_Int(27);
7403 fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB4);
7404 once_value_41 = fra.me.REG[12];
7405 register_static_object(&once_value_41);
7406 } else fra.me.REG[12] = once_value_41;
7407 fra.me.REG[12] = fra.me.REG[12];
7408 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7409 fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
7410 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7411 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7412 if (!once_value_42) {
7413 fra.me.REG[12] = BOX_NativeString("::");
7414 REGB4 = TAG_Int(2);
7415 fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB4);
7416 once_value_42 = fra.me.REG[12];
7417 register_static_object(&once_value_42);
7418 } else fra.me.REG[12] = once_value_42;
7419 fra.me.REG[12] = fra.me.REG[12];
7420 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7421 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
7422 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7423 if (!once_value_43) {
7424 fra.me.REG[12] = BOX_NativeString(" redefines the function ");
7425 REGB4 = TAG_Int(24);
7426 fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB4);
7427 once_value_43 = fra.me.REG[12];
7428 register_static_object(&once_value_43);
7429 } else fra.me.REG[12] = once_value_43;
7430 fra.me.REG[12] = fra.me.REG[12];
7431 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7432 fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7433 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7434 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7435 if (!once_value_44) {
7436 fra.me.REG[12] = BOX_NativeString("::");
7437 REGB4 = TAG_Int(2);
7438 fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB4);
7439 once_value_44 = fra.me.REG[12];
7440 register_static_object(&once_value_44);
7441 } else fra.me.REG[12] = once_value_44;
7442 fra.me.REG[12] = fra.me.REG[12];
7443 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7444 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7445 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7446 if (!once_value_45) {
7447 fra.me.REG[12] = BOX_NativeString(".");
7448 REGB4 = TAG_Int(1);
7449 fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB4);
7450 once_value_45 = fra.me.REG[12];
7451 register_static_object(&once_value_45);
7452 } else fra.me.REG[12] = once_value_45;
7453 fra.me.REG[12] = fra.me.REG[12];
7454 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7455 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7456 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[11]);
7457 } else {
7458 /* syntax/mmbuilder.nit:1020 */
7459 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7460 if (UNTAG_Bool(REGB4)) {
7461 } else {
7462 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7463 if (UNTAG_Bool(REGB3)) {
7464 REGB3 = TAG_Bool(0);
7465 REGB4 = REGB3;
7466 } else {
7467 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
7468 REGB4 = REGB3;
7469 }
7470 }
7471 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7472 if (UNTAG_Bool(REGB4)) {
7473 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7474 if (UNTAG_Bool(REGB4)) {
7475 } else {
7476 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7477 if (UNTAG_Bool(REGB3)) {
7478 REGB3 = TAG_Bool(0);
7479 REGB4 = REGB3;
7480 } else {
7481 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
7482 REGB4 = REGB3;
7483 }
7484 }
7485 } else {
7486 REGB3 = TAG_Bool(0);
7487 REGB4 = REGB3;
7488 }
7489 if (UNTAG_Bool(REGB4)) {
7490 /* syntax/mmbuilder.nit:1021 */
7491 REGB4 = TAG_Int(9);
7492 fra.me.REG[11] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
7493 if (!once_value_46) {
7494 fra.me.REG[12] = BOX_NativeString("Redef error: The function ");
7495 REGB4 = TAG_Int(26);
7496 fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB4);
7497 once_value_46 = fra.me.REG[12];
7498 register_static_object(&once_value_46);
7499 } else fra.me.REG[12] = once_value_46;
7500 fra.me.REG[12] = fra.me.REG[12];
7501 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7502 fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
7503 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7504 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7505 if (!once_value_47) {
7506 fra.me.REG[12] = BOX_NativeString("::");
7507 REGB4 = TAG_Int(2);
7508 fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB4);
7509 once_value_47 = fra.me.REG[12];
7510 register_static_object(&once_value_47);
7511 } else fra.me.REG[12] = once_value_47;
7512 fra.me.REG[12] = fra.me.REG[12];
7513 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7514 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
7515 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7516 if (!once_value_48) {
7517 fra.me.REG[12] = BOX_NativeString(" redefines the procedure ");
7518 REGB4 = TAG_Int(25);
7519 fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB4);
7520 once_value_48 = fra.me.REG[12];
7521 register_static_object(&once_value_48);
7522 } else fra.me.REG[12] = once_value_48;
7523 fra.me.REG[12] = fra.me.REG[12];
7524 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7525 fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7526 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7527 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7528 if (!once_value_49) {
7529 fra.me.REG[12] = BOX_NativeString("::");
7530 REGB4 = TAG_Int(2);
7531 fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB4);
7532 once_value_49 = fra.me.REG[12];
7533 register_static_object(&once_value_49);
7534 } else fra.me.REG[12] = once_value_49;
7535 fra.me.REG[12] = fra.me.REG[12];
7536 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7537 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7538 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7539 if (!once_value_50) {
7540 fra.me.REG[12] = BOX_NativeString(".");
7541 REGB4 = TAG_Int(1);
7542 fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB4);
7543 once_value_50 = fra.me.REG[12];
7544 register_static_object(&once_value_50);
7545 } else fra.me.REG[12] = once_value_50;
7546 fra.me.REG[12] = fra.me.REG[12];
7547 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
7548 fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
7549 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[11]);
7550 } else {
7551 /* syntax/mmbuilder.nit:1022 */
7552 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7553 if (UNTAG_Bool(REGB4)) {
7554 } else {
7555 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7556 if (UNTAG_Bool(REGB3)) {
7557 REGB3 = TAG_Bool(0);
7558 REGB4 = REGB3;
7559 } else {
7560 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
7561 REGB4 = REGB3;
7562 }
7563 }
7564 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7565 if (UNTAG_Bool(REGB4)) {
7566 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7567 if (UNTAG_Bool(REGB4)) {
7568 } else {
7569 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7570 if (UNTAG_Bool(REGB3)) {
7571 REGB3 = TAG_Bool(0);
7572 REGB4 = REGB3;
7573 } else {
7574 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
7575 REGB4 = REGB3;
7576 }
7577 }
7578 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7579 } else {
7580 REGB3 = TAG_Bool(0);
7581 REGB4 = REGB3;
7582 }
7583 if (UNTAG_Bool(REGB4)) {
7584 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7585 if (UNTAG_Bool(REGB4)) {
7586 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1022);
7587 }
7588 REGB4 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7589 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7590 } else {
7591 REGB3 = TAG_Bool(0);
7592 REGB4 = REGB3;
7593 }
7594 if (UNTAG_Bool(REGB4)) {
7595 /* syntax/mmbuilder.nit:1023 */
7596 fra.me.REG[11] = NIT_NULL;
7597 /* syntax/mmbuilder.nit:1024 */
7598 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AMethPropdef, ID_parser___parser_nodes___AMethPropdef)) /*cast AMethPropdef*/;
7599 if (UNTAG_Bool(REGB4)) {
7600 /* syntax/mmbuilder.nit:1025 */
7601 fra.me.REG[12] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[0])(fra.me.REG[0]);
7602 REGB4 = TAG_Bool(fra.me.REG[12]==NIT_NULL);
7603 if (UNTAG_Bool(REGB4)) {
7604 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1025);
7605 }
7606 fra.me.REG[12] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[12])(fra.me.REG[12]);
7607 fra.me.REG[11] = fra.me.REG[12];
7608 } else {
7609 /* syntax/mmbuilder.nit:1026 */
7610 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AAttrPropdef, ID_parser___parser_nodes___AAttrPropdef)) /*cast AAttrPropdef*/;
7611 if (UNTAG_Bool(REGB4)) {
7612 /* syntax/mmbuilder.nit:1027 */
7613 fra.me.REG[12] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[0])(fra.me.REG[0]);
7614 fra.me.REG[11] = fra.me.REG[12];
7615 } else {
7616 /* syntax/mmbuilder.nit:1028 */
7617 REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___ATypePropdef, ID_parser___parser_nodes___ATypePropdef)) /*cast ATypePropdef*/;
7618 if (UNTAG_Bool(REGB4)) {
7619 /* syntax/mmbuilder.nit:1029 */
7620 fra.me.REG[12] = CALL_parser___parser_nodes___ATypePropdef___n_type(fra.me.REG[0])(fra.me.REG[0]);
7621 fra.me.REG[11] = fra.me.REG[12];
7622 }
7623 }
7624 }
7625 /* syntax/mmbuilder.nit:1031 */
7626 REGB4 = TAG_Int(7);
7627 fra.me.REG[12] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
7628 if (!once_value_51) {
7629 fra.me.REG[13] = BOX_NativeString("Redef error: Expected ");
7630 REGB4 = TAG_Int(22);
7631 fra.me.REG[13] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[13])(fra.me.REG[13], REGB4);
7632 once_value_51 = fra.me.REG[13];
7633 register_static_object(&once_value_51);
7634 } else fra.me.REG[13] = once_value_51;
7635 fra.me.REG[13] = fra.me.REG[13];
7636 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
7637 fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
7638 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
7639 if (!once_value_52) {
7640 fra.me.REG[13] = BOX_NativeString(", as in ");
7641 REGB4 = TAG_Int(8);
7642 fra.me.REG[13] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[13])(fra.me.REG[13], REGB4);
7643 once_value_52 = fra.me.REG[13];
7644 register_static_object(&once_value_52);
7645 } else fra.me.REG[13] = once_value_52;
7646 fra.me.REG[13] = fra.me.REG[13];
7647 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
7648 fra.me.REG[13] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7649 fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[13])(fra.me.REG[13]);
7650 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
7651 if (!once_value_53) {
7652 fra.me.REG[13] = BOX_NativeString("::");
7653 REGB4 = TAG_Int(2);
7654 fra.me.REG[13] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[13])(fra.me.REG[13], REGB4);
7655 once_value_53 = fra.me.REG[13];
7656 register_static_object(&once_value_53);
7657 } else fra.me.REG[13] = once_value_53;
7658 fra.me.REG[13] = fra.me.REG[13];
7659 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
7660 fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7661 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
7662 if (!once_value_54) {
7663 fra.me.REG[13] = BOX_NativeString(".");
7664 REGB4 = TAG_Int(1);
7665 fra.me.REG[13] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[13])(fra.me.REG[13], REGB4);
7666 once_value_54 = fra.me.REG[13];
7667 register_static_object(&once_value_54);
7668 } else fra.me.REG[13] = once_value_54;
7669 fra.me.REG[13] = fra.me.REG[13];
7670 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
7671 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7672 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[11], fra.me.REG[12]);
7673 } else {
7674 /* syntax/mmbuilder.nit:1032 */
7675 REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7676 if (UNTAG_Bool(REGB4)) {
7677 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1032);
7678 }
7679 REGB4 = CALL_metamodel___static_type___MMSignature_____l(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
7680 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
7681 if (UNTAG_Bool(REGB4)) {
7682 fra.me.REG[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
7683 REGB4 = CALL_toolcontext___ToolContext___error_count(fra.me.REG[7])(fra.me.REG[7]);
7684 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB4));
7685 if (UNTAG_Bool(REGB3)) {
7686 } else {
7687 /* ../lib/standard/kernel.nit:237 */
7688 REGB4 = TAG_Bool((REGB0)==(REGB4));
7689 /* syntax/mmbuilder.nit:1032 */
7690 REGB3 = REGB4;
7691 }
7692 } else {
7693 REGB4 = TAG_Bool(0);
7694 REGB3 = REGB4;
7695 }
7696 if (UNTAG_Bool(REGB3)) {
7697 /* syntax/mmbuilder.nit:1034 */
7698 REGB3 = TAG_Int(9);
7699 fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
7700 if (!once_value_55) {
7701 fra.me.REG[12] = BOX_NativeString("Redef error: Incompatible redefinition of ");
7702 REGB3 = TAG_Int(42);
7703 fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB3);
7704 once_value_55 = fra.me.REG[12];
7705 register_static_object(&once_value_55);
7706 } else fra.me.REG[12] = once_value_55;
7707 fra.me.REG[12] = fra.me.REG[12];
7708 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7709 fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7710 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7711 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7712 if (!once_value_56) {
7713 fra.me.REG[12] = BOX_NativeString("::");
7714 REGB3 = TAG_Int(2);
7715 fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB3);
7716 once_value_56 = fra.me.REG[12];
7717 register_static_object(&once_value_56);
7718 } else fra.me.REG[12] = once_value_56;
7719 fra.me.REG[12] = fra.me.REG[12];
7720 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7721 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7722 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7723 if (!once_value_57) {
7724 fra.me.REG[12] = BOX_NativeString(" with ");
7725 REGB3 = TAG_Int(6);
7726 fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB3);
7727 once_value_57 = fra.me.REG[12];
7728 register_static_object(&once_value_57);
7729 } else fra.me.REG[12] = once_value_57;
7730 fra.me.REG[12] = fra.me.REG[12];
7731 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7732 fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
7733 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
7734 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7735 if (!once_value_58) {
7736 fra.me.REG[12] = BOX_NativeString("::");
7737 REGB3 = TAG_Int(2);
7738 fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB3);
7739 once_value_58 = fra.me.REG[12];
7740 register_static_object(&once_value_58);
7741 } else fra.me.REG[12] = once_value_58;
7742 fra.me.REG[12] = fra.me.REG[12];
7743 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7744 fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
7745 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7746 if (!once_value_59) {
7747 fra.me.REG[12] = BOX_NativeString("");
7748 REGB3 = TAG_Int(0);
7749 fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB3);
7750 once_value_59 = fra.me.REG[12];
7751 register_static_object(&once_value_59);
7752 } else fra.me.REG[12] = once_value_59;
7753 fra.me.REG[12] = fra.me.REG[12];
7754 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
7755 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
7756 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[7]);
7757 } else {
7758 /* syntax/mmbuilder.nit:1035 */
7759 REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7760 if (UNTAG_Bool(REGB3)) {
7761 } else {
7762 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7763 if (UNTAG_Bool(REGB4)) {
7764 REGB4 = TAG_Bool(0);
7765 REGB3 = REGB4;
7766 } else {
7767 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
7768 REGB3 = REGB4;
7769 }
7770 }
7771 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7772 if (UNTAG_Bool(REGB3)) {
7773 REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7774 if (UNTAG_Bool(REGB3)) {
7775 } else {
7776 REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7777 if (UNTAG_Bool(REGB4)) {
7778 REGB4 = TAG_Bool(0);
7779 REGB3 = REGB4;
7780 } else {
7781 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
7782 REGB3 = REGB4;
7783 }
7784 }
7785 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7786 } else {
7787 REGB4 = TAG_Bool(0);
7788 REGB3 = REGB4;
7789 }
7790 if (UNTAG_Bool(REGB3)) {
7791 REGB3 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[10],fra.me.REG[8]));
7792 if (UNTAG_Bool(REGB3)) {
7793 } else {
7794 REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
7795 if (UNTAG_Bool(REGB4)) {
7796 REGB4 = TAG_Bool(0);
7797 REGB3 = REGB4;
7798 } else {
7799 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7800 REGB3 = REGB4;
7801 }
7802 }
7803 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7804 } else {
7805 REGB4 = TAG_Bool(0);
7806 REGB3 = REGB4;
7807 }
7808 if (UNTAG_Bool(REGB3)) {
7809 REGB3 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_metamodel___abstractmetamodel___MMAttribute, ID_metamodel___abstractmetamodel___MMAttribute)) /*cast MMAttribute*/;
7810 } else {
7811 REGB4 = TAG_Bool(0);
7812 REGB3 = REGB4;
7813 }
7814 if (UNTAG_Bool(REGB3)) {
7815 /* syntax/mmbuilder.nit:1036 */
7816 REGB3 = TAG_Int(7);
7817 fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
7818 if (!once_value_60) {
7819 fra.me.REG[7] = BOX_NativeString("Redef error: Expected ");
7820 REGB3 = TAG_Int(22);
7821 fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB3);
7822 once_value_60 = fra.me.REG[7];
7823 register_static_object(&once_value_60);
7824 } else fra.me.REG[7] = once_value_60;
7825 fra.me.REG[7] = fra.me.REG[7];
7826 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
7827 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
7828 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7829 if (!once_value_61) {
7830 fra.me.REG[8] = BOX_NativeString(", as in ");
7831 REGB3 = TAG_Int(8);
7832 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB3);
7833 once_value_61 = fra.me.REG[8];
7834 register_static_object(&once_value_61);
7835 } else fra.me.REG[8] = once_value_61;
7836 fra.me.REG[8] = fra.me.REG[8];
7837 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7838 fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
7839 fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
7840 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7841 if (!once_value_62) {
7842 fra.me.REG[8] = BOX_NativeString("::");
7843 REGB3 = TAG_Int(2);
7844 fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB3);
7845 once_value_62 = fra.me.REG[8];
7846 register_static_object(&once_value_62);
7847 } else fra.me.REG[8] = once_value_62;
7848 fra.me.REG[8] = fra.me.REG[8];
7849 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
7850 fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
7851 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[9]);
7852 if (!once_value_63) {
7853 fra.me.REG[9] = BOX_NativeString(".");
7854 REGB3 = TAG_Int(1);
7855 fra.me.REG[9] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[9])(fra.me.REG[9], REGB3);
7856 once_value_63 = fra.me.REG[9];
7857 register_static_object(&once_value_63);
7858 } else fra.me.REG[9] = once_value_63;
7859 fra.me.REG[9] = fra.me.REG[9];
7860 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[9]);
7861 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
7862 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[10]);
7863 }
7864 }
7865 }
7866 }
7867 }
7868 /* ../lib/standard/collection/array.nit:275 */
7869 REGB3 = TAG_Int(1);
7870 /* ../lib/standard/kernel.nit:245 */
7871 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
7872 /* ../lib/standard/collection/array.nit:275 */
7873 REGB2 = REGB3;
7874 } else {
7875 /* ../lib/standard/collection/array.nit:273 */
7876 goto label64;
7877 }
7878 }
7879 label64: while(0);
7880 label11: while(0);
7881 /* syntax/mmbuilder.nit:1040 */
7882 REGB2 = TAG_Int(1);
7883 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
7884 if (UNTAG_Bool(REGB3)) {
7885 } else {
7886 /* ../lib/standard/kernel.nit:237 */
7887 REGB2 = TAG_Bool((REGB1)==(REGB2));
7888 /* syntax/mmbuilder.nit:1040 */
7889 REGB3 = REGB2;
7890 }
7891 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
7892 if (UNTAG_Bool(REGB3)) {
7893 REGB3 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
7894 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB1));
7895 if (UNTAG_Bool(REGB2)) {
7896 } else {
7897 /* ../lib/standard/kernel.nit:237 */
7898 REGB1 = TAG_Bool((REGB3)==(REGB1));
7899 /* syntax/mmbuilder.nit:1040 */
7900 REGB2 = REGB1;
7901 }
7902 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
7903 } else {
7904 REGB1 = TAG_Bool(0);
7905 REGB2 = REGB1;
7906 }
7907 if (UNTAG_Bool(REGB2)) {
7908 /* syntax/mmbuilder.nit:1041 */
7909 REGB2 = TAG_Int(5);
7910 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
7911 if (!once_value_65) {
7912 fra.me.REG[6] = BOX_NativeString("Redef error: ");
7913 REGB2 = TAG_Int(13);
7914 fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
7915 once_value_65 = fra.me.REG[6];
7916 register_static_object(&once_value_65);
7917 } else fra.me.REG[6] = once_value_65;
7918 fra.me.REG[6] = fra.me.REG[6];
7919 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
7920 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
7921 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
7922 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
7923 if (!once_value_66) {
7924 fra.me.REG[6] = BOX_NativeString("::");
7925 REGB2 = TAG_Int(2);
7926 fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
7927 once_value_66 = fra.me.REG[6];
7928 register_static_object(&once_value_66);
7929 } else fra.me.REG[6] = once_value_66;
7930 fra.me.REG[6] = fra.me.REG[6];
7931 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
7932 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
7933 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
7934 if (!once_value_67) {
7935 fra.me.REG[2] = BOX_NativeString(" redefinition cannot change visibility.");
7936 REGB2 = TAG_Int(39);
7937 fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB2);
7938 once_value_67 = fra.me.REG[2];
7939 register_static_object(&once_value_67);
7940 } else fra.me.REG[2] = once_value_67;
7941 fra.me.REG[2] = fra.me.REG[2];
7942 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
7943 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
7944 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
7945 }
7946 /* syntax/mmbuilder.nit:1043 */
7947 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
7948 REGB2 = TAG_Bool(1);
7949 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);
7950 label4: while(0);
7951 stack_frame_head = fra.me.prev;
7952 return;
7953 }
7954 static const char LOCATE_syntax___mmbuilder___AAttrPropdef___readmethod[] = "mmbuilder::AAttrPropdef::(syntax_base::AAttrPropdef::readmethod)";
7955 val_t syntax___mmbuilder___AAttrPropdef___readmethod(val_t p0){
7956 struct {struct stack_frame_t me;} fra;
7957 val_t tmp;
7958 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7959 fra.me.file = LOCATE_syntax___mmbuilder;
7960 fra.me.line = 1048;
7961 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___readmethod;
7962 fra.me.has_broke = 0;
7963 fra.me.REG_size = 1;
7964 fra.me.nitni_local_ref_head = NULL;
7965 fra.me.REG[0] = NIT_NULL;
7966 fra.me.REG[0] = p0;
7967 /* syntax/mmbuilder.nit:1048 */
7968 fra.me.REG[0] = ATTR_syntax___mmbuilder___AAttrPropdef____readmethod(fra.me.REG[0]);
7969 stack_frame_head = fra.me.prev;
7970 return fra.me.REG[0];
7971 }
7972 static const char LOCATE_syntax___mmbuilder___AAttrPropdef___writemethod[] = "mmbuilder::AAttrPropdef::(syntax_base::AAttrPropdef::writemethod)";
7973 val_t syntax___mmbuilder___AAttrPropdef___writemethod(val_t p0){
7974 struct {struct stack_frame_t me;} fra;
7975 val_t tmp;
7976 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7977 fra.me.file = LOCATE_syntax___mmbuilder;
7978 fra.me.line = 1049;
7979 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___writemethod;
7980 fra.me.has_broke = 0;
7981 fra.me.REG_size = 1;
7982 fra.me.nitni_local_ref_head = NULL;
7983 fra.me.REG[0] = NIT_NULL;
7984 fra.me.REG[0] = p0;
7985 /* syntax/mmbuilder.nit:1049 */
7986 fra.me.REG[0] = ATTR_syntax___mmbuilder___AAttrPropdef____writemethod(fra.me.REG[0]);
7987 stack_frame_head = fra.me.prev;
7988 return fra.me.REG[0];
7989 }
7990 static const char LOCATE_syntax___mmbuilder___AAttrPropdef___prop[] = "mmbuilder::AAttrPropdef::(syntax_base::AAttrPropdef::prop)";
7991 val_t syntax___mmbuilder___AAttrPropdef___prop(val_t p0){
7992 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
7993 val_t REGB0;
7994 val_t tmp;
7995 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7996 fra.me.file = LOCATE_syntax___mmbuilder;
7997 fra.me.line = 1051;
7998 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___prop;
7999 fra.me.has_broke = 0;
8000 fra.me.REG_size = 2;
8001 fra.me.nitni_local_ref_head = NULL;
8002 fra.me.REG[0] = NIT_NULL;
8003 fra.me.REG[1] = NIT_NULL;
8004 fra.me.REG[0] = p0;
8005 /* syntax/mmbuilder.nit:1051 */
8006 fra.me.REG[1] = fra.me.REG[0];
8007 fra.me.REG[1] = ATTR_syntax___mmbuilder___AAttrPropdef____prop(fra.me.REG[1]);
8008 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
8009 if (UNTAG_Bool(REGB0)) {
8010 } else {
8011 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1051);
8012 }
8013 goto label1;
8014 label1: while(0);
8015 stack_frame_head = fra.me.prev;
8016 return fra.me.REG[1];
8017 }
8018 static const char LOCATE_syntax___mmbuilder___AAttrPropdef___accept_property_builder[] = "mmbuilder::AAttrPropdef::(mmbuilder::ANode::accept_property_builder)";
8019 void syntax___mmbuilder___AAttrPropdef___accept_property_builder(val_t p0, val_t p1){
8020 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
8021 val_t REGB0;
8022 val_t REGB1;
8023 val_t REGB2;
8024 val_t tmp;
8025 static val_t once_value_1; /* Once value */
8026 static val_t once_value_2; /* Once value */
8027 static val_t once_value_3; /* Once value */
8028 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8029 fra.me.file = LOCATE_syntax___mmbuilder;
8030 fra.me.line = 1053;
8031 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___accept_property_builder;
8032 fra.me.has_broke = 0;
8033 fra.me.REG_size = 6;
8034 fra.me.nitni_local_ref_head = NULL;
8035 fra.me.REG[0] = NIT_NULL;
8036 fra.me.REG[1] = NIT_NULL;
8037 fra.me.REG[2] = NIT_NULL;
8038 fra.me.REG[3] = NIT_NULL;
8039 fra.me.REG[4] = NIT_NULL;
8040 fra.me.REG[5] = NIT_NULL;
8041 fra.me.REG[0] = p0;
8042 fra.me.REG[1] = p1;
8043 /* syntax/mmbuilder.nit:1053 */
8044 fra.me.REG[2] = fra.me.REG[0];
8045 fra.me.REG[3] = fra.me.REG[1];
8046 /* syntax/mmbuilder.nit:1055 */
8047 CALL_SUPER_syntax___mmbuilder___AAttrPropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8048 /* syntax/mmbuilder.nit:1057 */
8049 fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8050 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8051 if (UNTAG_Bool(REGB0)) {
8052 } else {
8053 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8054 if (UNTAG_Bool(REGB1)) {
8055 REGB1 = TAG_Bool(0);
8056 REGB0 = REGB1;
8057 } else {
8058 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8059 REGB0 = REGB1;
8060 }
8061 }
8062 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8063 if (UNTAG_Bool(REGB0)) {
8064 /* syntax/mmbuilder.nit:1058 */
8065 fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8066 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8067 if (UNTAG_Bool(REGB0)) {
8068 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1058);
8069 }
8070 fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
8071 } else {
8072 /* syntax/mmbuilder.nit:1060 */
8073 if (!once_value_1) {
8074 fra.me.REG[0] = BOX_NativeString("@");
8075 REGB0 = TAG_Int(1);
8076 fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
8077 once_value_1 = fra.me.REG[0];
8078 register_static_object(&once_value_1);
8079 } else fra.me.REG[0] = once_value_1;
8080 fra.me.REG[0] = fra.me.REG[0];
8081 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
8082 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8083 if (UNTAG_Bool(REGB0)) {
8084 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1060);
8085 }
8086 fra.me.REG[4] = CALL_parser___parser_nodes___Token___text(fra.me.REG[4])(fra.me.REG[4]);
8087 fra.me.REG[4] = CALL_standard___string___String_____plus(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
8088 fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
8089 fra.me.REG[1] = fra.me.REG[4];
8090 }
8091 /* syntax/mmbuilder.nit:1062 */
8092 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8093 /* syntax/mmbuilder.nit:1063 */
8094 fra.me.REG[0] = NEW_MMSrcAttribute_syntax___syntax_base___MMSrcAttribute___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
8095 /* syntax/mmbuilder.nit:1064 */
8096 ATTR_syntax___mmbuilder___AAttrPropdef____prop(fra.me.REG[2]) = fra.me.REG[0];
8097 /* syntax/mmbuilder.nit:1065 */
8098 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8099 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[0]);
8100 /* syntax/mmbuilder.nit:1067 */
8101 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
8102 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8103 if (UNTAG_Bool(REGB0)) {
8104 } else {
8105 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8106 if (UNTAG_Bool(REGB1)) {
8107 REGB1 = TAG_Bool(0);
8108 REGB0 = REGB1;
8109 } else {
8110 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8111 REGB0 = REGB1;
8112 }
8113 }
8114 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8115 if (UNTAG_Bool(REGB0)) {
8116 REGB0 = TAG_Bool(1);
8117 } else {
8118 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8119 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8120 if (UNTAG_Bool(REGB1)) {
8121 } else {
8122 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8123 if (UNTAG_Bool(REGB2)) {
8124 REGB2 = TAG_Bool(0);
8125 REGB1 = REGB2;
8126 } else {
8127 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8128 REGB1 = REGB2;
8129 }
8130 }
8131 REGB0 = REGB1;
8132 }
8133 if (UNTAG_Bool(REGB0)) {
8134 /* syntax/mmbuilder.nit:1068 */
8135 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8136 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8137 if (UNTAG_Bool(REGB0)) {
8138 } else {
8139 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8140 if (UNTAG_Bool(REGB1)) {
8141 REGB1 = TAG_Bool(0);
8142 REGB0 = REGB1;
8143 } else {
8144 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8145 REGB0 = REGB1;
8146 }
8147 }
8148 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8149 if (UNTAG_Bool(REGB0)) {
8150 /* syntax/mmbuilder.nit:1069 */
8151 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8152 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8153 if (UNTAG_Bool(REGB0)) {
8154 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1069);
8155 }
8156 fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
8157 REGB0 = TAG_Int(1);
8158 fra.me.REG[0] = CALL_standard___string___AbstractString___substring_from(fra.me.REG[0])(fra.me.REG[0], REGB0);
8159 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
8160 fra.me.REG[1] = fra.me.REG[0];
8161 } else {
8162 /* syntax/mmbuilder.nit:1071 */
8163 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
8164 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8165 if (UNTAG_Bool(REGB0)) {
8166 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1071);
8167 }
8168 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
8169 fra.me.REG[1] = fra.me.REG[0];
8170 }
8171 /* syntax/mmbuilder.nit:1073 */
8172 fra.me.REG[0] = NEW_MMReadImplementationMethod_syntax___syntax_base___MMReadImplementationMethod___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
8173 /* syntax/mmbuilder.nit:1074 */
8174 ATTR_syntax___mmbuilder___AAttrPropdef____readmethod(fra.me.REG[2]) = fra.me.REG[0];
8175 /* syntax/mmbuilder.nit:1075 */
8176 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8177 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[0]);
8178 }
8179 /* syntax/mmbuilder.nit:1077 */
8180 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8181 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8182 if (UNTAG_Bool(REGB0)) {
8183 } else {
8184 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8185 if (UNTAG_Bool(REGB1)) {
8186 REGB1 = TAG_Bool(0);
8187 REGB0 = REGB1;
8188 } else {
8189 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8190 REGB0 = REGB1;
8191 }
8192 }
8193 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8194 if (UNTAG_Bool(REGB0)) {
8195 REGB0 = TAG_Bool(1);
8196 } else {
8197 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8198 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8199 if (UNTAG_Bool(REGB1)) {
8200 } else {
8201 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8202 if (UNTAG_Bool(REGB2)) {
8203 REGB2 = TAG_Bool(0);
8204 REGB1 = REGB2;
8205 } else {
8206 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8207 REGB1 = REGB2;
8208 }
8209 }
8210 REGB0 = REGB1;
8211 }
8212 if (UNTAG_Bool(REGB0)) {
8213 /* syntax/mmbuilder.nit:1078 */
8214 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8215 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8216 if (UNTAG_Bool(REGB0)) {
8217 } else {
8218 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8219 if (UNTAG_Bool(REGB1)) {
8220 REGB1 = TAG_Bool(0);
8221 REGB0 = REGB1;
8222 } else {
8223 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
8224 REGB0 = REGB1;
8225 }
8226 }
8227 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8228 if (UNTAG_Bool(REGB0)) {
8229 /* syntax/mmbuilder.nit:1079 */
8230 fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8231 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
8232 if (UNTAG_Bool(REGB0)) {
8233 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1079);
8234 }
8235 fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
8236 REGB0 = TAG_Int(1);
8237 fra.me.REG[0] = CALL_standard___string___AbstractString___substring_from(fra.me.REG[0])(fra.me.REG[0], REGB0);
8238 if (!once_value_2) {
8239 fra.me.REG[5] = BOX_NativeString("=");
8240 REGB0 = TAG_Int(1);
8241 fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
8242 once_value_2 = fra.me.REG[5];
8243 register_static_object(&once_value_2);
8244 } else fra.me.REG[5] = once_value_2;
8245 fra.me.REG[5] = fra.me.REG[5];
8246 fra.me.REG[5] = CALL_standard___string___String_____plus(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
8247 fra.me.REG[5] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
8248 fra.me.REG[1] = fra.me.REG[5];
8249 } else {
8250 /* syntax/mmbuilder.nit:1081 */
8251 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
8252 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8253 if (UNTAG_Bool(REGB0)) {
8254 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1081);
8255 }
8256 fra.me.REG[5] = CALL_parser___parser_nodes___Token___text(fra.me.REG[5])(fra.me.REG[5]);
8257 if (!once_value_3) {
8258 fra.me.REG[0] = BOX_NativeString("=");
8259 REGB0 = TAG_Int(1);
8260 fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
8261 once_value_3 = fra.me.REG[0];
8262 register_static_object(&once_value_3);
8263 } else fra.me.REG[0] = once_value_3;
8264 fra.me.REG[0] = fra.me.REG[0];
8265 fra.me.REG[0] = CALL_standard___string___String_____plus(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
8266 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
8267 fra.me.REG[1] = fra.me.REG[0];
8268 }
8269 /* syntax/mmbuilder.nit:1083 */
8270 fra.me.REG[4] = NEW_MMWriteImplementationMethod_syntax___syntax_base___MMWriteImplementationMethod___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
8271 /* syntax/mmbuilder.nit:1084 */
8272 ATTR_syntax___mmbuilder___AAttrPropdef____writemethod(fra.me.REG[2]) = fra.me.REG[4];
8273 /* syntax/mmbuilder.nit:1085 */
8274 fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8275 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
8276 }
8277 stack_frame_head = fra.me.prev;
8278 return;
8279 }
8280 static const char LOCATE_syntax___mmbuilder___AAttrPropdef___accept_property_verifier[] = "mmbuilder::AAttrPropdef::(mmbuilder::ANode::accept_property_verifier)";
8281 void syntax___mmbuilder___AAttrPropdef___accept_property_verifier(val_t p0, val_t p1){
8282 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
8283 val_t REGB0;
8284 val_t REGB1;
8285 val_t REGB2;
8286 val_t REGB3;
8287 val_t tmp;
8288 static val_t once_value_2; /* Once value */
8289 static val_t once_value_3; /* Once value */
8290 static val_t once_value_4; /* Once value */
8291 static val_t once_value_5; /* Once value */
8292 static val_t once_value_6; /* Once value */
8293 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8294 fra.me.file = LOCATE_syntax___mmbuilder;
8295 fra.me.line = 1089;
8296 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___accept_property_verifier;
8297 fra.me.has_broke = 0;
8298 fra.me.REG_size = 7;
8299 fra.me.nitni_local_ref_head = NULL;
8300 fra.me.REG[0] = NIT_NULL;
8301 fra.me.REG[1] = NIT_NULL;
8302 fra.me.REG[2] = NIT_NULL;
8303 fra.me.REG[3] = NIT_NULL;
8304 fra.me.REG[4] = NIT_NULL;
8305 fra.me.REG[5] = NIT_NULL;
8306 fra.me.REG[6] = NIT_NULL;
8307 fra.me.REG[0] = p0;
8308 fra.me.REG[1] = p1;
8309 /* syntax/mmbuilder.nit:1089 */
8310 fra.me.REG[2] = fra.me.REG[0];
8311 fra.me.REG[3] = fra.me.REG[1];
8312 /* syntax/mmbuilder.nit:1091 */
8313 CALL_SUPER_syntax___mmbuilder___AAttrPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8314 /* syntax/mmbuilder.nit:1092 */
8315 fra.me.REG[1] = NIT_NULL;
8316 /* syntax/mmbuilder.nit:1093 */
8317 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8318 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8319 if (UNTAG_Bool(REGB0)) {
8320 } else {
8321 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8322 if (UNTAG_Bool(REGB1)) {
8323 REGB1 = TAG_Bool(0);
8324 REGB0 = REGB1;
8325 } else {
8326 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8327 REGB0 = REGB1;
8328 }
8329 }
8330 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8331 if (UNTAG_Bool(REGB0)) {
8332 /* syntax/mmbuilder.nit:1094 */
8333 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8334 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8335 if (UNTAG_Bool(REGB0)) {
8336 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1094);
8337 }
8338 fra.me.REG[4] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
8339 /* syntax/mmbuilder.nit:1095 */
8340 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8341 if (UNTAG_Bool(REGB0)) {
8342 } else {
8343 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8344 if (UNTAG_Bool(REGB1)) {
8345 REGB1 = TAG_Bool(0);
8346 REGB0 = REGB1;
8347 } else {
8348 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8349 REGB0 = REGB1;
8350 }
8351 }
8352 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8353 if (UNTAG_Bool(REGB0)) {
8354 fra.me.REG[1] = fra.me.REG[4];
8355 } else {
8356 goto label1;
8357 }
8358 } else {
8359 /* syntax/mmbuilder.nit:1096 */
8360 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra.me.REG[2])(fra.me.REG[2]);
8361 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8362 if (UNTAG_Bool(REGB0)) {
8363 } else {
8364 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8365 if (UNTAG_Bool(REGB1)) {
8366 REGB1 = TAG_Bool(0);
8367 REGB0 = REGB1;
8368 } else {
8369 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8370 REGB0 = REGB1;
8371 }
8372 }
8373 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8374 if (UNTAG_Bool(REGB0)) {
8375 /* syntax/mmbuilder.nit:1097 */
8376 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra.me.REG[2])(fra.me.REG[2]);
8377 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8378 if (UNTAG_Bool(REGB0)) {
8379 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1097);
8380 }
8381 fra.me.REG[4] = CALL_syntax___mmbuilder___AExpr___get_easy_stype(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
8382 fra.me.REG[1] = fra.me.REG[4];
8383 }
8384 }
8385 /* syntax/mmbuilder.nit:1100 */
8386 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8387 if (UNTAG_Bool(REGB0)) {
8388 } else {
8389 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8390 if (UNTAG_Bool(REGB1)) {
8391 REGB1 = TAG_Bool(0);
8392 REGB0 = REGB1;
8393 } else {
8394 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8395 REGB0 = REGB1;
8396 }
8397 }
8398 if (UNTAG_Bool(REGB0)) {
8399 /* syntax/mmbuilder.nit:1101 */
8400 REGB0 = TAG_Int(5);
8401 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
8402 if (!once_value_2) {
8403 fra.me.REG[5] = BOX_NativeString("Not yet implemented: Attribute definition ");
8404 REGB0 = TAG_Int(42);
8405 fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
8406 once_value_2 = fra.me.REG[5];
8407 register_static_object(&once_value_2);
8408 } else fra.me.REG[5] = once_value_2;
8409 fra.me.REG[5] = fra.me.REG[5];
8410 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
8411 fra.me.REG[5] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
8412 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[5])(fra.me.REG[5]);
8413 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
8414 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
8415 if (!once_value_3) {
8416 fra.me.REG[5] = BOX_NativeString("::");
8417 REGB0 = TAG_Int(2);
8418 fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
8419 once_value_3 = fra.me.REG[5];
8420 register_static_object(&once_value_3);
8421 } else fra.me.REG[5] = once_value_3;
8422 fra.me.REG[5] = fra.me.REG[5];
8423 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
8424 fra.me.REG[5] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
8425 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
8426 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
8427 if (!once_value_4) {
8428 fra.me.REG[5] = BOX_NativeString(" requires an explicit type.");
8429 REGB0 = TAG_Int(27);
8430 fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
8431 once_value_4 = fra.me.REG[5];
8432 register_static_object(&once_value_4);
8433 } else fra.me.REG[5] = once_value_4;
8434 fra.me.REG[5] = fra.me.REG[5];
8435 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
8436 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
8437 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]);
8438 /* syntax/mmbuilder.nit:1102 */
8439 goto label1;
8440 }
8441 /* syntax/mmbuilder.nit:1105 */
8442 fra.me.REG[4] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
8443 /* syntax/mmbuilder.nit:1106 */
8444 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
8445 fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8446 fra.me.REG[6] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[6])(fra.me.REG[6]);
8447 fra.me.REG[6] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[5], fra.me.REG[1], fra.me.REG[6]);
8448 /* syntax/mmbuilder.nit:1107 */
8449 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
8450 /* syntax/mmbuilder.nit:1108 */
8451 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
8452 REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[5])(fra.me.REG[5]);
8453 /* syntax/mmbuilder.nit:1109 */
8454 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8455 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8456 if (UNTAG_Bool(REGB1)) {
8457 } else {
8458 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8459 if (UNTAG_Bool(REGB2)) {
8460 REGB2 = TAG_Bool(0);
8461 REGB1 = REGB2;
8462 } else {
8463 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
8464 REGB1 = REGB2;
8465 }
8466 }
8467 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8468 if (UNTAG_Bool(REGB1)) {
8469 fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
8470 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8471 if (UNTAG_Bool(REGB1)) {
8472 } else {
8473 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8474 if (UNTAG_Bool(REGB2)) {
8475 REGB2 = TAG_Bool(0);
8476 REGB1 = REGB2;
8477 } else {
8478 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
8479 REGB1 = REGB2;
8480 }
8481 }
8482 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8483 } else {
8484 REGB2 = TAG_Bool(0);
8485 REGB1 = REGB2;
8486 }
8487 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);
8488 /* syntax/mmbuilder.nit:1110 */
8489 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
8490 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8491 if (UNTAG_Bool(REGB1)) {
8492 } else {
8493 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8494 if (UNTAG_Bool(REGB2)) {
8495 REGB2 = TAG_Bool(0);
8496 REGB1 = REGB2;
8497 } else {
8498 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8499 REGB1 = REGB2;
8500 }
8501 }
8502 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8503 if (UNTAG_Bool(REGB1)) {
8504 REGB1 = TAG_Bool(1);
8505 } else {
8506 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8507 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8508 if (UNTAG_Bool(REGB2)) {
8509 } else {
8510 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8511 if (UNTAG_Bool(REGB3)) {
8512 REGB3 = TAG_Bool(0);
8513 REGB2 = REGB3;
8514 } else {
8515 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8516 REGB2 = REGB3;
8517 }
8518 }
8519 REGB1 = REGB2;
8520 }
8521 if (UNTAG_Bool(REGB1)) {
8522 /* syntax/mmbuilder.nit:1111 */
8523 fra.me.REG[4] = ATTR_syntax___mmbuilder___AAttrPropdef____readmethod(fra.me.REG[2]);
8524 REGB1 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8525 if (UNTAG_Bool(REGB1)) {
8526 } else {
8527 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1111);
8528 }
8529 /* syntax/mmbuilder.nit:1112 */
8530 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
8531 /* syntax/mmbuilder.nit:1113 */
8532 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
8533 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8534 if (UNTAG_Bool(REGB1)) {
8535 } else {
8536 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8537 if (UNTAG_Bool(REGB2)) {
8538 REGB2 = TAG_Bool(0);
8539 REGB1 = REGB2;
8540 } else {
8541 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8542 REGB1 = REGB2;
8543 }
8544 }
8545 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8546 if (UNTAG_Bool(REGB1)) {
8547 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
8548 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8549 if (UNTAG_Bool(REGB1)) {
8550 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1113);
8551 }
8552 fra.me.REG[6] = CALL_parser___parser_nodes___AAble___n_kwredef(fra.me.REG[6])(fra.me.REG[6]);
8553 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8554 if (UNTAG_Bool(REGB1)) {
8555 } else {
8556 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8557 if (UNTAG_Bool(REGB2)) {
8558 REGB2 = TAG_Bool(0);
8559 REGB1 = REGB2;
8560 } else {
8561 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8562 REGB1 = REGB2;
8563 }
8564 }
8565 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8566 } else {
8567 REGB2 = TAG_Bool(0);
8568 REGB1 = REGB2;
8569 }
8570 if (UNTAG_Bool(REGB1)) {
8571 REGB1 = TAG_Bool(1);
8572 } else {
8573 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8574 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8575 if (UNTAG_Bool(REGB2)) {
8576 } else {
8577 REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8578 if (UNTAG_Bool(REGB3)) {
8579 REGB3 = TAG_Bool(0);
8580 REGB2 = REGB3;
8581 } else {
8582 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8583 REGB2 = REGB3;
8584 }
8585 }
8586 if (UNTAG_Bool(REGB2)) {
8587 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
8588 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8589 if (UNTAG_Bool(REGB2)) {
8590 } else {
8591 REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8592 if (UNTAG_Bool(REGB3)) {
8593 REGB3 = TAG_Bool(0);
8594 REGB2 = REGB3;
8595 } else {
8596 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8597 REGB2 = REGB3;
8598 }
8599 }
8600 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
8601 } else {
8602 REGB3 = TAG_Bool(0);
8603 REGB2 = REGB3;
8604 }
8605 REGB1 = REGB2;
8606 }
8607 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);
8608 /* syntax/mmbuilder.nit:1114 */
8609 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8610 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8611 if (UNTAG_Bool(REGB1)) {
8612 } else {
8613 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8614 if (UNTAG_Bool(REGB2)) {
8615 REGB2 = TAG_Bool(0);
8616 REGB1 = REGB2;
8617 } else {
8618 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8619 REGB1 = REGB2;
8620 }
8621 }
8622 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8623 if (UNTAG_Bool(REGB1)) {
8624 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8625 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8626 if (UNTAG_Bool(REGB1)) {
8627 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1114);
8628 }
8629 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3], fra.me.REG[4]);
8630 }
8631 }
8632 /* syntax/mmbuilder.nit:1116 */
8633 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8634 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8635 if (UNTAG_Bool(REGB1)) {
8636 } else {
8637 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8638 if (UNTAG_Bool(REGB2)) {
8639 REGB2 = TAG_Bool(0);
8640 REGB1 = REGB2;
8641 } else {
8642 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8643 REGB1 = REGB2;
8644 }
8645 }
8646 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8647 if (UNTAG_Bool(REGB1)) {
8648 REGB1 = TAG_Bool(1);
8649 } else {
8650 fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8651 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8652 if (UNTAG_Bool(REGB2)) {
8653 } else {
8654 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8655 if (UNTAG_Bool(REGB3)) {
8656 REGB3 = TAG_Bool(0);
8657 REGB2 = REGB3;
8658 } else {
8659 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
8660 REGB2 = REGB3;
8661 }
8662 }
8663 REGB1 = REGB2;
8664 }
8665 if (UNTAG_Bool(REGB1)) {
8666 /* syntax/mmbuilder.nit:1117 */
8667 fra.me.REG[4] = ATTR_syntax___mmbuilder___AAttrPropdef____writemethod(fra.me.REG[2]);
8668 REGB1 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8669 if (UNTAG_Bool(REGB1)) {
8670 } else {
8671 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1117);
8672 }
8673 /* syntax/mmbuilder.nit:1118 */
8674 REGB1 = TAG_Int(0);
8675 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
8676 if (!once_value_5) {
8677 if (!once_value_6) {
8678 fra.me.REG[6] = BOX_NativeString("value");
8679 REGB1 = TAG_Int(5);
8680 fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB1);
8681 once_value_6 = fra.me.REG[6];
8682 register_static_object(&once_value_6);
8683 } else fra.me.REG[6] = once_value_6;
8684 fra.me.REG[6] = fra.me.REG[6];
8685 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
8686 once_value_5 = fra.me.REG[6];
8687 register_static_object(&once_value_5);
8688 } else fra.me.REG[6] = once_value_5;
8689 fra.me.REG[6] = fra.me.REG[6];
8690 fra.me.REG[6] = NEW_MMParam_metamodel___static_type___MMParam___init(fra.me.REG[1], fra.me.REG[6]);
8691 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
8692 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_items(fra.me.REG[0]);
8693 fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
8694 fra.me.REG[6] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[6])(fra.me.REG[6]);
8695 fra.me.REG[6] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[6]);
8696 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
8697 /* syntax/mmbuilder.nit:1120 */
8698 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
8699 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8700 if (UNTAG_Bool(REGB1)) {
8701 } else {
8702 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8703 if (UNTAG_Bool(REGB2)) {
8704 REGB2 = TAG_Bool(0);
8705 REGB1 = REGB2;
8706 } else {
8707 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8708 REGB1 = REGB2;
8709 }
8710 }
8711 if (UNTAG_Bool(REGB1)) {
8712 /* syntax/mmbuilder.nit:1121 */
8713 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8714 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8715 if (UNTAG_Bool(REGB1)) {
8716 } else {
8717 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8718 if (UNTAG_Bool(REGB2)) {
8719 REGB2 = TAG_Bool(0);
8720 REGB1 = REGB2;
8721 } else {
8722 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8723 REGB1 = REGB2;
8724 }
8725 }
8726 if (UNTAG_Bool(REGB1)) {
8727 REGB1 = TAG_Int(3);
8728 REGB0 = REGB1;
8729 } else {
8730 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8731 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8732 if (UNTAG_Bool(REGB1)) {
8733 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1121);
8734 }
8735 fra.me.REG[6] = CALL_parser___parser_nodes___AAble___n_visibility(fra.me.REG[6])(fra.me.REG[6]);
8736 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8737 if (UNTAG_Bool(REGB1)) {
8738 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1121);
8739 }
8740 REGB1 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[6])(fra.me.REG[6]);
8741 REGB0 = REGB1;
8742 }
8743 }
8744 /* syntax/mmbuilder.nit:1123 */
8745 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
8746 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8747 if (UNTAG_Bool(REGB1)) {
8748 } else {
8749 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8750 if (UNTAG_Bool(REGB2)) {
8751 REGB2 = TAG_Bool(0);
8752 REGB1 = REGB2;
8753 } else {
8754 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8755 REGB1 = REGB2;
8756 }
8757 }
8758 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8759 if (UNTAG_Bool(REGB1)) {
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, 1123);
8764 }
8765 fra.me.REG[6] = CALL_parser___parser_nodes___AAble___n_kwredef(fra.me.REG[6])(fra.me.REG[6]);
8766 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8767 if (UNTAG_Bool(REGB1)) {
8768 } else {
8769 REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8770 if (UNTAG_Bool(REGB2)) {
8771 REGB2 = TAG_Bool(0);
8772 REGB1 = REGB2;
8773 } else {
8774 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8775 REGB1 = REGB2;
8776 }
8777 }
8778 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
8779 } else {
8780 REGB2 = TAG_Bool(0);
8781 REGB1 = REGB2;
8782 }
8783 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);
8784 /* syntax/mmbuilder.nit:1124 */
8785 fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8786 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8787 if (UNTAG_Bool(REGB0)) {
8788 } else {
8789 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8790 if (UNTAG_Bool(REGB1)) {
8791 REGB1 = TAG_Bool(0);
8792 REGB0 = REGB1;
8793 } else {
8794 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
8795 REGB0 = REGB1;
8796 }
8797 }
8798 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8799 if (UNTAG_Bool(REGB0)) {
8800 fra.me.REG[2] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
8801 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8802 if (UNTAG_Bool(REGB0)) {
8803 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1124);
8804 }
8805 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
8806 }
8807 }
8808 label1: while(0);
8809 stack_frame_head = fra.me.prev;
8810 return;
8811 }
8812 static const char LOCATE_syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor[] = "mmbuilder::AAttrPropdef::(syntax_base::ANode::accept_abs_syntax_visitor)";
8813 void syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
8814 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8815 val_t tmp;
8816 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8817 fra.me.file = LOCATE_syntax___mmbuilder;
8818 fra.me.line = 1128;
8819 fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor;
8820 fra.me.has_broke = 0;
8821 fra.me.REG_size = 4;
8822 fra.me.nitni_local_ref_head = NULL;
8823 fra.me.REG[0] = NIT_NULL;
8824 fra.me.REG[1] = NIT_NULL;
8825 fra.me.REG[2] = NIT_NULL;
8826 fra.me.REG[3] = NIT_NULL;
8827 fra.me.REG[0] = p0;
8828 fra.me.REG[1] = p1;
8829 /* syntax/mmbuilder.nit:1128 */
8830 fra.me.REG[2] = fra.me.REG[0];
8831 fra.me.REG[3] = fra.me.REG[1];
8832 /* syntax/mmbuilder.nit:1130 */
8833 fra.me.REG[2] = ATTR_syntax___mmbuilder___AAttrPropdef____prop(fra.me.REG[2]);
8834 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
8835 /* syntax/mmbuilder.nit:1131 */
8836 CALL_SUPER_syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8837 /* syntax/mmbuilder.nit:1132 */
8838 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8839 stack_frame_head = fra.me.prev;
8840 return;
8841 }
8842 static const char LOCATE_syntax___mmbuilder___AMethPropdef___name[] = "mmbuilder::AMethPropdef::name";
8843 val_t syntax___mmbuilder___AMethPropdef___name(val_t p0){
8844 struct {struct stack_frame_t me;} 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 = 1137;
8849 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___name;
8850 fra.me.has_broke = 0;
8851 fra.me.REG_size = 1;
8852 fra.me.nitni_local_ref_head = NULL;
8853 fra.me.REG[0] = NIT_NULL;
8854 fra.me.REG[0] = p0;
8855 /* syntax/mmbuilder.nit:1137 */
8856 fra.me.REG[0] = ATTR_syntax___mmbuilder___AMethPropdef____name(fra.me.REG[0]);
8857 stack_frame_head = fra.me.prev;
8858 return fra.me.REG[0];
8859 }
8860 static const char LOCATE_syntax___mmbuilder___AMethPropdef___method[] = "mmbuilder::AMethPropdef::(syntax_base::AMethPropdef::method)";
8861 val_t syntax___mmbuilder___AMethPropdef___method(val_t p0){
8862 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
8863 val_t REGB0;
8864 val_t tmp;
8865 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8866 fra.me.file = LOCATE_syntax___mmbuilder;
8867 fra.me.line = 1141;
8868 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___method;
8869 fra.me.has_broke = 0;
8870 fra.me.REG_size = 2;
8871 fra.me.nitni_local_ref_head = NULL;
8872 fra.me.REG[0] = NIT_NULL;
8873 fra.me.REG[1] = NIT_NULL;
8874 fra.me.REG[0] = p0;
8875 /* syntax/mmbuilder.nit:1141 */
8876 fra.me.REG[1] = fra.me.REG[0];
8877 fra.me.REG[1] = ATTR_syntax___mmbuilder___AMethPropdef____method(fra.me.REG[1]);
8878 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
8879 if (UNTAG_Bool(REGB0)) {
8880 } else {
8881 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1141);
8882 }
8883 goto label1;
8884 label1: while(0);
8885 stack_frame_head = fra.me.prev;
8886 return fra.me.REG[1];
8887 }
8888 static const char LOCATE_syntax___mmbuilder___AMethPropdef___accept_property_builder[] = "mmbuilder::AMethPropdef::(mmbuilder::ANode::accept_property_builder)";
8889 void syntax___mmbuilder___AMethPropdef___accept_property_builder(val_t p0, val_t p1){
8890 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
8891 val_t REGB0;
8892 val_t REGB1;
8893 val_t REGB2;
8894 val_t tmp;
8895 static val_t once_value_1; /* Once value */
8896 static val_t once_value_2; /* Once value */
8897 static val_t once_value_3; /* Once value */
8898 static val_t once_value_4; /* Once value */
8899 static val_t once_value_5; /* Once value */
8900 static val_t once_value_6; /* Once value */
8901 static val_t once_value_7; /* Once value */
8902 static val_t once_value_8; /* Once value */
8903 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8904 fra.me.file = LOCATE_syntax___mmbuilder;
8905 fra.me.line = 1143;
8906 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___accept_property_builder;
8907 fra.me.has_broke = 0;
8908 fra.me.REG_size = 5;
8909 fra.me.nitni_local_ref_head = NULL;
8910 fra.me.REG[0] = NIT_NULL;
8911 fra.me.REG[1] = NIT_NULL;
8912 fra.me.REG[2] = NIT_NULL;
8913 fra.me.REG[3] = NIT_NULL;
8914 fra.me.REG[4] = NIT_NULL;
8915 fra.me.REG[0] = p0;
8916 fra.me.REG[1] = p1;
8917 /* syntax/mmbuilder.nit:1143 */
8918 fra.me.REG[2] = fra.me.REG[0];
8919 fra.me.REG[3] = fra.me.REG[1];
8920 /* syntax/mmbuilder.nit:1145 */
8921 CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
8922 /* syntax/mmbuilder.nit:1147 */
8923 fra.me.REG[1] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
8924 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8925 if (UNTAG_Bool(REGB0)) {
8926 } else {
8927 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8928 if (UNTAG_Bool(REGB1)) {
8929 REGB1 = TAG_Bool(0);
8930 REGB0 = REGB1;
8931 } else {
8932 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8933 REGB0 = REGB1;
8934 }
8935 }
8936 if (UNTAG_Bool(REGB0)) {
8937 /* syntax/mmbuilder.nit:1148 */
8938 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AInitPropdef, ID_parser___parser_nodes___AInitPropdef)) /*cast AInitPropdef*/;
8939 if (UNTAG_Bool(REGB0)) {
8940 /* syntax/mmbuilder.nit:1149 */
8941 if (!once_value_1) {
8942 if (!once_value_2) {
8943 fra.me.REG[1] = BOX_NativeString("init");
8944 REGB0 = TAG_Int(4);
8945 fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0);
8946 once_value_2 = fra.me.REG[1];
8947 register_static_object(&once_value_2);
8948 } else fra.me.REG[1] = once_value_2;
8949 fra.me.REG[1] = fra.me.REG[1];
8950 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
8951 once_value_1 = fra.me.REG[1];
8952 register_static_object(&once_value_1);
8953 } else fra.me.REG[1] = once_value_1;
8954 fra.me.REG[1] = fra.me.REG[1];
8955 } else {
8956 /* syntax/mmbuilder.nit:1151 */
8957 if (!once_value_3) {
8958 if (!once_value_4) {
8959 fra.me.REG[4] = BOX_NativeString("main");
8960 REGB0 = TAG_Int(4);
8961 fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
8962 once_value_4 = fra.me.REG[4];
8963 register_static_object(&once_value_4);
8964 } else fra.me.REG[4] = once_value_4;
8965 fra.me.REG[4] = fra.me.REG[4];
8966 fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
8967 once_value_3 = fra.me.REG[4];
8968 register_static_object(&once_value_3);
8969 } else fra.me.REG[4] = once_value_3;
8970 fra.me.REG[4] = fra.me.REG[4];
8971 fra.me.REG[1] = fra.me.REG[4];
8972 }
8973 } else {
8974 /* syntax/mmbuilder.nit:1154 */
8975 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
8976 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8977 if (UNTAG_Bool(REGB0)) {
8978 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1154);
8979 }
8980 fra.me.REG[4] = CALL_syntax___syntax_base___AMethid___name(fra.me.REG[4])(fra.me.REG[4]);
8981 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8982 if (UNTAG_Bool(REGB0)) {
8983 } else {
8984 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1154);
8985 }
8986 fra.me.REG[1] = fra.me.REG[4];
8987 /* syntax/mmbuilder.nit:1156 */
8988 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
8989 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8990 if (UNTAG_Bool(REGB0)) {
8991 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1156);
8992 }
8993 fra.me.REG[4] = CALL_syntax___syntax_base___AMethid___name(fra.me.REG[4])(fra.me.REG[4]);
8994 if (!once_value_5) {
8995 if (!once_value_6) {
8996 fra.me.REG[0] = BOX_NativeString("-");
8997 REGB0 = TAG_Int(1);
8998 fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
8999 once_value_6 = fra.me.REG[0];
9000 register_static_object(&once_value_6);
9001 } else fra.me.REG[0] = once_value_6;
9002 fra.me.REG[0] = fra.me.REG[0];
9003 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
9004 once_value_5 = fra.me.REG[0];
9005 register_static_object(&once_value_5);
9006 } else fra.me.REG[0] = once_value_5;
9007 fra.me.REG[0] = fra.me.REG[0];
9008 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[0],fra.me.REG[4]));
9009 if (UNTAG_Bool(REGB0)) {
9010 } else {
9011 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9012 if (UNTAG_Bool(REGB1)) {
9013 REGB1 = TAG_Bool(0);
9014 REGB0 = REGB1;
9015 } else {
9016 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
9017 REGB0 = REGB1;
9018 }
9019 }
9020 if (UNTAG_Bool(REGB0)) {
9021 /* syntax/mmbuilder.nit:1157 */
9022 fra.me.REG[0] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
9023 /* syntax/mmbuilder.nit:1158 */
9024 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9025 if (UNTAG_Bool(REGB0)) {
9026 } else {
9027 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9028 if (UNTAG_Bool(REGB1)) {
9029 REGB1 = TAG_Bool(0);
9030 REGB0 = REGB1;
9031 } else {
9032 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
9033 REGB0 = REGB1;
9034 }
9035 }
9036 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9037 if (UNTAG_Bool(REGB0)) {
9038 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9039 if (UNTAG_Bool(REGB0)) {
9040 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1158);
9041 }
9042 fra.me.REG[0] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[0])(fra.me.REG[0]);
9043 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
9044 REGB1 = TAG_Int(0);
9045 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
9046 if (UNTAG_Bool(REGB2)) {
9047 } else {
9048 /* ../lib/standard/kernel.nit:237 */
9049 REGB1 = TAG_Bool((REGB0)==(REGB1));
9050 /* syntax/mmbuilder.nit:1158 */
9051 REGB2 = REGB1;
9052 }
9053 } else {
9054 REGB1 = TAG_Bool(0);
9055 REGB2 = REGB1;
9056 }
9057 if (UNTAG_Bool(REGB2)) {
9058 /* syntax/mmbuilder.nit:1159 */
9059 if (!once_value_7) {
9060 if (!once_value_8) {
9061 fra.me.REG[0] = BOX_NativeString("unary -");
9062 REGB2 = TAG_Int(7);
9063 fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB2);
9064 once_value_8 = fra.me.REG[0];
9065 register_static_object(&once_value_8);
9066 } else fra.me.REG[0] = once_value_8;
9067 fra.me.REG[0] = fra.me.REG[0];
9068 fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
9069 once_value_7 = fra.me.REG[0];
9070 register_static_object(&once_value_7);
9071 } else fra.me.REG[0] = once_value_7;
9072 fra.me.REG[0] = fra.me.REG[0];
9073 fra.me.REG[1] = fra.me.REG[0];
9074 }
9075 }
9076 }
9077 /* syntax/mmbuilder.nit:1163 */
9078 ATTR_syntax___mmbuilder___AMethPropdef____name(fra.me.REG[2]) = fra.me.REG[1];
9079 /* syntax/mmbuilder.nit:1164 */
9080 fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9081 fra.me.REG[0] = NEW_MMMethSrcMethod_syntax___syntax_base___MMMethSrcMethod___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
9082 /* syntax/mmbuilder.nit:1165 */
9083 ATTR_syntax___mmbuilder___AMethPropdef____method(fra.me.REG[2]) = fra.me.REG[0];
9084 /* syntax/mmbuilder.nit:1166 */
9085 fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9086 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0]);
9087 stack_frame_head = fra.me.prev;
9088 return;
9089 }
9090 static const char LOCATE_syntax___mmbuilder___AMethPropdef___accept_property_verifier[] = "mmbuilder::AMethPropdef::(mmbuilder::ANode::accept_property_verifier)";
9091 void syntax___mmbuilder___AMethPropdef___accept_property_verifier(val_t p0, val_t p1){
9092 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
9093 val_t REGB0;
9094 val_t REGB1;
9095 val_t REGB2;
9096 val_t REGB3;
9097 val_t tmp;
9098 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9099 fra.me.file = LOCATE_syntax___mmbuilder;
9100 fra.me.line = 1169;
9101 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___accept_property_verifier;
9102 fra.me.has_broke = 0;
9103 fra.me.REG_size = 5;
9104 fra.me.nitni_local_ref_head = NULL;
9105 fra.me.REG[0] = NIT_NULL;
9106 fra.me.REG[1] = NIT_NULL;
9107 fra.me.REG[2] = NIT_NULL;
9108 fra.me.REG[3] = NIT_NULL;
9109 fra.me.REG[4] = NIT_NULL;
9110 fra.me.REG[0] = p0;
9111 fra.me.REG[1] = p1;
9112 /* syntax/mmbuilder.nit:1169 */
9113 fra.me.REG[2] = fra.me.REG[0];
9114 fra.me.REG[3] = fra.me.REG[1];
9115 /* syntax/mmbuilder.nit:1171 */
9116 fra.me.REG[4] = NEW_SignatureBuilder_syntax___mmbuilder___SignatureBuilder___init();
9117 CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
9118 /* syntax/mmbuilder.nit:1172 */
9119 CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9120 /* syntax/mmbuilder.nit:1174 */
9121 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9122 REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
9123 if (UNTAG_Bool(REGB0)) {
9124 goto label1;
9125 }
9126 /* syntax/mmbuilder.nit:1176 */
9127 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9128 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
9129 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9130 if (UNTAG_Bool(REGB0)) {
9131 } else {
9132 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9133 if (UNTAG_Bool(REGB1)) {
9134 REGB1 = TAG_Bool(0);
9135 REGB0 = REGB1;
9136 } else {
9137 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9138 REGB0 = REGB1;
9139 }
9140 }
9141 if (UNTAG_Bool(REGB0)) {
9142 } else {
9143 /* syntax/mmbuilder.nit:1179 */
9144 fra.me.REG[1] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
9145 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9146 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[4])(fra.me.REG[4]);
9147 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
9148 if (UNTAG_Bool(REGB0)) {
9149 } else {
9150 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1179);
9151 }
9152 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
9153 }
9154 /* syntax/mmbuilder.nit:1181 */
9155 REGB0 = TAG_Int(1);
9156 /* syntax/mmbuilder.nit:1182 */
9157 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
9158 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9159 if (UNTAG_Bool(REGB1)) {
9160 } else {
9161 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9162 if (UNTAG_Bool(REGB2)) {
9163 REGB2 = TAG_Bool(0);
9164 REGB1 = REGB2;
9165 } else {
9166 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
9167 REGB1 = REGB2;
9168 }
9169 }
9170 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
9171 if (UNTAG_Bool(REGB1)) {
9172 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
9173 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9174 if (UNTAG_Bool(REGB1)) {
9175 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1182);
9176 }
9177 REGB1 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
9178 REGB2 = TAG_Int(1);
9179 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9180 if (UNTAG_Bool(REGB3)) {
9181 } else {
9182 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9183 }
9184 /* ../lib/standard/kernel.nit:244 */
9185 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
9186 } else {
9187 /* syntax/mmbuilder.nit:1182 */
9188 REGB1 = TAG_Bool(0);
9189 REGB2 = REGB1;
9190 }
9191 if (UNTAG_Bool(REGB2)) {
9192 /* syntax/mmbuilder.nit:1183 */
9193 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
9194 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9195 if (UNTAG_Bool(REGB2)) {
9196 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1183);
9197 }
9198 REGB2 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
9199 REGB0 = REGB2;
9200 }
9201 /* syntax/mmbuilder.nit:1185 */
9202 fra.me.REG[4] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
9203 fra.me.REG[1] = CALL_parser___parser_nodes___AMethPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
9204 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9205 if (UNTAG_Bool(REGB2)) {
9206 } else {
9207 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9208 if (UNTAG_Bool(REGB1)) {
9209 REGB1 = TAG_Bool(0);
9210 REGB2 = REGB1;
9211 } else {
9212 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9213 REGB2 = REGB1;
9214 }
9215 }
9216 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
9217 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);
9218 /* syntax/mmbuilder.nit:1186 */
9219 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
9220 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9221 if (UNTAG_Bool(REGB0)) {
9222 } else {
9223 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9224 if (UNTAG_Bool(REGB2)) {
9225 REGB2 = TAG_Bool(0);
9226 REGB0 = REGB2;
9227 } else {
9228 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
9229 REGB0 = REGB2;
9230 }
9231 }
9232 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9233 if (UNTAG_Bool(REGB0)) {
9234 fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
9235 fra.me.REG[2] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
9236 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9237 if (UNTAG_Bool(REGB0)) {
9238 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1186);
9239 }
9240 CALL_syntax___mmbuilder___ASignature___check_visibility(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3], fra.me.REG[2]);
9241 }
9242 label1: while(0);
9243 stack_frame_head = fra.me.prev;
9244 return;
9245 }
9246 static const char LOCATE_syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor[] = "mmbuilder::AMethPropdef::(syntax_base::ANode::accept_abs_syntax_visitor)";
9247 void syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
9248 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9249 val_t tmp;
9250 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9251 fra.me.file = LOCATE_syntax___mmbuilder;
9252 fra.me.line = 1189;
9253 fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor;
9254 fra.me.has_broke = 0;
9255 fra.me.REG_size = 4;
9256 fra.me.nitni_local_ref_head = NULL;
9257 fra.me.REG[0] = NIT_NULL;
9258 fra.me.REG[1] = NIT_NULL;
9259 fra.me.REG[2] = NIT_NULL;
9260 fra.me.REG[3] = NIT_NULL;
9261 fra.me.REG[0] = p0;
9262 fra.me.REG[1] = p1;
9263 /* syntax/mmbuilder.nit:1189 */
9264 fra.me.REG[2] = fra.me.REG[0];
9265 fra.me.REG[3] = fra.me.REG[1];
9266 /* syntax/mmbuilder.nit:1191 */
9267 fra.me.REG[2] = ATTR_syntax___mmbuilder___AMethPropdef____method(fra.me.REG[2]);
9268 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
9269 /* syntax/mmbuilder.nit:1192 */
9270 CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9271 /* syntax/mmbuilder.nit:1193 */
9272 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9273 stack_frame_head = fra.me.prev;
9274 return;
9275 }
9276 static const char LOCATE_syntax___mmbuilder___AMainMethPropdef___process_and_check[] = "mmbuilder::AMainMethPropdef::(mmbuilder::APropdef::process_and_check)";
9277 void syntax___mmbuilder___AMainMethPropdef___process_and_check(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
9278 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
9279 val_t REGB0;
9280 val_t REGB1;
9281 val_t tmp;
9282 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9283 fra.me.file = LOCATE_syntax___mmbuilder;
9284 fra.me.line = 1198;
9285 fra.me.meth = LOCATE_syntax___mmbuilder___AMainMethPropdef___process_and_check;
9286 fra.me.has_broke = 0;
9287 fra.me.REG_size = 3;
9288 fra.me.nitni_local_ref_head = NULL;
9289 fra.me.REG[0] = NIT_NULL;
9290 fra.me.REG[1] = NIT_NULL;
9291 fra.me.REG[2] = NIT_NULL;
9292 fra.me.REG[0] = p0;
9293 fra.me.REG[1] = p1;
9294 fra.me.REG[2] = p2;
9295 REGB0 = p3;
9296 REGB1 = p4;
9297 /* syntax/mmbuilder.nit:1200 */
9298 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
9299 CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[0])(fra.me.REG[0], REGB1);
9300 /* syntax/mmbuilder.nit:1201 */
9301 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
9302 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
9303 fra.me.REG[1] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
9304 fra.me.REG[1] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[1]);
9305 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
9306 stack_frame_head = fra.me.prev;
9307 return;
9308 }
9309 static const char LOCATE_syntax___mmbuilder___AExternPropdef___accept_property_verifier[] = "mmbuilder::AExternPropdef::(mmbuilder::ANode::accept_property_verifier)";
9310 void syntax___mmbuilder___AExternPropdef___accept_property_verifier(val_t p0, val_t p1){
9311 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
9312 val_t REGB0;
9313 val_t REGB1;
9314 val_t REGB2;
9315 val_t tmp;
9316 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9317 fra.me.file = LOCATE_syntax___mmbuilder;
9318 fra.me.line = 1207;
9319 fra.me.meth = LOCATE_syntax___mmbuilder___AExternPropdef___accept_property_verifier;
9320 fra.me.has_broke = 0;
9321 fra.me.REG_size = 3;
9322 fra.me.nitni_local_ref_head = NULL;
9323 fra.me.REG[0] = NIT_NULL;
9324 fra.me.REG[1] = NIT_NULL;
9325 fra.me.REG[2] = NIT_NULL;
9326 fra.me.REG[0] = p0;
9327 fra.me.REG[1] = p1;
9328 /* syntax/mmbuilder.nit:1207 */
9329 fra.me.REG[2] = fra.me.REG[0];
9330 /* syntax/mmbuilder.nit:1209 */
9331 CALL_SUPER_syntax___mmbuilder___AExternPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9332 /* syntax/mmbuilder.nit:1211 */
9333 fra.me.REG[1] = CALL_parser___parser_nodes___AExternPropdef___n_extern(fra.me.REG[2])(fra.me.REG[2]);
9334 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9335 if (UNTAG_Bool(REGB0)) {
9336 } else {
9337 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9338 if (UNTAG_Bool(REGB1)) {
9339 REGB1 = TAG_Bool(0);
9340 REGB0 = REGB1;
9341 } else {
9342 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9343 REGB0 = REGB1;
9344 }
9345 }
9346 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9347 if (UNTAG_Bool(REGB0)) {
9348 /* syntax/mmbuilder.nit:1212 */
9349 fra.me.REG[1] = CALL_parser___parser_nodes___AExternPropdef___n_extern(fra.me.REG[2])(fra.me.REG[2]);
9350 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9351 if (UNTAG_Bool(REGB0)) {
9352 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1212);
9353 }
9354 fra.me.REG[1] = CALL_parser___parser_nodes___Token___text(fra.me.REG[1])(fra.me.REG[1]);
9355 /* syntax/mmbuilder.nit:1213 */
9356 REGB0 = TAG_Int(1);
9357 /* ../lib/standard/collection/array.nit:24 */
9358 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
9359 if (UNTAG_Bool(REGB1)) {
9360 } else {
9361 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
9362 }
9363 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
9364 /* syntax/mmbuilder.nit:1213 */
9365 REGB2 = TAG_Int(2);
9366 /* ../lib/standard/kernel.nit:247 */
9367 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
9368 /* syntax/mmbuilder.nit:1213 */
9369 fra.me.REG[0] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB0, REGB2);
9370 fra.me.REG[1] = fra.me.REG[0];
9371 } else {
9372 /* syntax/mmbuilder.nit:1215 */
9373 fra.me.REG[0] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
9374 fra.me.REG[0] = CALL_primitive_info___MMMethod___default_extern_name(fra.me.REG[0])(fra.me.REG[0]);
9375 fra.me.REG[1] = fra.me.REG[0];
9376 }
9377 /* syntax/mmbuilder.nit:1217 */
9378 fra.me.REG[2] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
9379 CALL_syntax___syntax_base___MMMethSrcMethod___extern_name__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
9380 stack_frame_head = fra.me.prev;
9381 return;
9382 }
9383 static const char LOCATE_syntax___mmbuilder___ATypePropdef___prop[] = "mmbuilder::ATypePropdef::(syntax_base::ATypePropdef::prop)";
9384 val_t syntax___mmbuilder___ATypePropdef___prop(val_t p0){
9385 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
9386 val_t REGB0;
9387 val_t tmp;
9388 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9389 fra.me.file = LOCATE_syntax___mmbuilder;
9390 fra.me.line = 1222;
9391 fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___prop;
9392 fra.me.has_broke = 0;
9393 fra.me.REG_size = 2;
9394 fra.me.nitni_local_ref_head = NULL;
9395 fra.me.REG[0] = NIT_NULL;
9396 fra.me.REG[1] = NIT_NULL;
9397 fra.me.REG[0] = p0;
9398 /* syntax/mmbuilder.nit:1222 */
9399 fra.me.REG[1] = fra.me.REG[0];
9400 fra.me.REG[1] = ATTR_syntax___mmbuilder___ATypePropdef____prop(fra.me.REG[1]);
9401 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
9402 if (UNTAG_Bool(REGB0)) {
9403 } else {
9404 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1222);
9405 }
9406 goto label1;
9407 label1: while(0);
9408 stack_frame_head = fra.me.prev;
9409 return fra.me.REG[1];
9410 }
9411 static const char LOCATE_syntax___mmbuilder___ATypePropdef___accept_property_builder[] = "mmbuilder::ATypePropdef::(mmbuilder::ANode::accept_property_builder)";
9412 void syntax___mmbuilder___ATypePropdef___accept_property_builder(val_t p0, val_t p1){
9413 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9414 val_t tmp;
9415 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9416 fra.me.file = LOCATE_syntax___mmbuilder;
9417 fra.me.line = 1225;
9418 fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___accept_property_builder;
9419 fra.me.has_broke = 0;
9420 fra.me.REG_size = 4;
9421 fra.me.nitni_local_ref_head = NULL;
9422 fra.me.REG[0] = NIT_NULL;
9423 fra.me.REG[1] = NIT_NULL;
9424 fra.me.REG[2] = NIT_NULL;
9425 fra.me.REG[3] = NIT_NULL;
9426 fra.me.REG[0] = p0;
9427 fra.me.REG[1] = p1;
9428 /* syntax/mmbuilder.nit:1225 */
9429 fra.me.REG[2] = fra.me.REG[0];
9430 fra.me.REG[3] = fra.me.REG[1];
9431 /* syntax/mmbuilder.nit:1227 */
9432 CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9433 /* syntax/mmbuilder.nit:1228 */
9434 fra.me.REG[1] = CALL_parser___parser_nodes___ATypePropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
9435 fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
9436 /* syntax/mmbuilder.nit:1229 */
9437 fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9438 fra.me.REG[0] = NEW_MMSrcTypeProperty_syntax___syntax_base___MMSrcTypeProperty___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
9439 /* syntax/mmbuilder.nit:1230 */
9440 ATTR_syntax___mmbuilder___ATypePropdef____prop(fra.me.REG[2]) = fra.me.REG[0];
9441 /* syntax/mmbuilder.nit:1231 */
9442 fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9443 CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0]);
9444 stack_frame_head = fra.me.prev;
9445 return;
9446 }
9447 static const char LOCATE_syntax___mmbuilder___ATypePropdef___accept_property_verifier[] = "mmbuilder::ATypePropdef::(mmbuilder::ANode::accept_property_verifier)";
9448 void syntax___mmbuilder___ATypePropdef___accept_property_verifier(val_t p0, val_t p1){
9449 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
9450 val_t REGB0;
9451 val_t REGB1;
9452 val_t REGB2;
9453 val_t tmp;
9454 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9455 fra.me.file = LOCATE_syntax___mmbuilder;
9456 fra.me.line = 1234;
9457 fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___accept_property_verifier;
9458 fra.me.has_broke = 0;
9459 fra.me.REG_size = 5;
9460 fra.me.nitni_local_ref_head = NULL;
9461 fra.me.REG[0] = NIT_NULL;
9462 fra.me.REG[1] = NIT_NULL;
9463 fra.me.REG[2] = NIT_NULL;
9464 fra.me.REG[3] = NIT_NULL;
9465 fra.me.REG[4] = NIT_NULL;
9466 fra.me.REG[0] = p0;
9467 fra.me.REG[1] = p1;
9468 /* syntax/mmbuilder.nit:1234 */
9469 fra.me.REG[2] = fra.me.REG[0];
9470 fra.me.REG[3] = fra.me.REG[1];
9471 /* syntax/mmbuilder.nit:1236 */
9472 CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9473 /* syntax/mmbuilder.nit:1237 */
9474 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
9475 fra.me.REG[0] = CALL_parser___parser_nodes___ATypePropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
9476 fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
9477 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9478 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
9479 fra.me.REG[4] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
9480 /* syntax/mmbuilder.nit:1238 */
9481 fra.me.REG[0] = CALL_syntax___syntax_base___ATypePropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
9482 CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
9483 /* syntax/mmbuilder.nit:1239 */
9484 fra.me.REG[4] = CALL_parser___parser_nodes___ATypePropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
9485 REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
9486 /* syntax/mmbuilder.nit:1240 */
9487 fra.me.REG[4] = CALL_syntax___syntax_base___ATypePropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
9488 fra.me.REG[0] = CALL_parser___parser_nodes___ATypePropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
9489 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9490 if (UNTAG_Bool(REGB1)) {
9491 } else {
9492 REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9493 if (UNTAG_Bool(REGB2)) {
9494 REGB2 = TAG_Bool(0);
9495 REGB1 = REGB2;
9496 } else {
9497 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
9498 REGB1 = REGB2;
9499 }
9500 }
9501 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
9502 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);
9503 stack_frame_head = fra.me.prev;
9504 return;
9505 }
9506 static const char LOCATE_syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor[] = "mmbuilder::ATypePropdef::(syntax_base::ANode::accept_abs_syntax_visitor)";
9507 void syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
9508 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9509 val_t tmp;
9510 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9511 fra.me.file = LOCATE_syntax___mmbuilder;
9512 fra.me.line = 1243;
9513 fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor;
9514 fra.me.has_broke = 0;
9515 fra.me.REG_size = 4;
9516 fra.me.nitni_local_ref_head = NULL;
9517 fra.me.REG[0] = NIT_NULL;
9518 fra.me.REG[1] = NIT_NULL;
9519 fra.me.REG[2] = NIT_NULL;
9520 fra.me.REG[3] = NIT_NULL;
9521 fra.me.REG[0] = p0;
9522 fra.me.REG[1] = p1;
9523 /* syntax/mmbuilder.nit:1243 */
9524 fra.me.REG[2] = fra.me.REG[0];
9525 fra.me.REG[3] = fra.me.REG[1];
9526 /* syntax/mmbuilder.nit:1245 */
9527 fra.me.REG[2] = ATTR_syntax___mmbuilder___ATypePropdef____prop(fra.me.REG[2]);
9528 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
9529 /* syntax/mmbuilder.nit:1246 */
9530 CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9531 /* syntax/mmbuilder.nit:1247 */
9532 CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9533 stack_frame_head = fra.me.prev;
9534 return;
9535 }
9536 static const char LOCATE_syntax___mmbuilder___MethidAccumulator___name[] = "mmbuilder::MethidAccumulator::name";
9537 val_t syntax___mmbuilder___MethidAccumulator___name(val_t p0){
9538 struct {struct stack_frame_t me;} fra;
9539 val_t REGB0;
9540 val_t tmp;
9541 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9542 fra.me.file = LOCATE_syntax___mmbuilder;
9543 fra.me.line = 1254;
9544 fra.me.meth = LOCATE_syntax___mmbuilder___MethidAccumulator___name;
9545 fra.me.has_broke = 0;
9546 fra.me.REG_size = 1;
9547 fra.me.nitni_local_ref_head = NULL;
9548 fra.me.REG[0] = NIT_NULL;
9549 fra.me.REG[0] = p0;
9550 /* syntax/mmbuilder.nit:1254 */
9551 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL);
9552 if (UNTAG_Bool(REGB0)) {
9553 } else {
9554 nit_abort("Uninitialized attribute %s", "_name", LOCATE_syntax___mmbuilder, 1254);
9555 }
9556 fra.me.REG[0] = ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0]);
9557 stack_frame_head = fra.me.prev;
9558 return fra.me.REG[0];
9559 }
9560 static const char LOCATE_syntax___mmbuilder___MethidAccumulator___visit[] = "mmbuilder::MethidAccumulator::(parser_nodes::Visitor::visit)";
9561 void syntax___mmbuilder___MethidAccumulator___visit(val_t p0, val_t p1){
9562 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9563 val_t REGB0;
9564 val_t tmp;
9565 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9566 fra.me.file = LOCATE_syntax___mmbuilder;
9567 fra.me.line = 1255;
9568 fra.me.meth = LOCATE_syntax___mmbuilder___MethidAccumulator___visit;
9569 fra.me.has_broke = 0;
9570 fra.me.REG_size = 4;
9571 fra.me.nitni_local_ref_head = NULL;
9572 fra.me.REG[0] = NIT_NULL;
9573 fra.me.REG[1] = NIT_NULL;
9574 fra.me.REG[2] = NIT_NULL;
9575 fra.me.REG[3] = NIT_NULL;
9576 fra.me.REG[0] = p0;
9577 fra.me.REG[1] = p1;
9578 /* syntax/mmbuilder.nit:1257 */
9579 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_parser___parser_nodes___Token, ID_parser___parser_nodes___Token)) /*cast Token*/;
9580 if (UNTAG_Bool(REGB0)) {
9581 /* syntax/mmbuilder.nit:1258 */
9582 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL);
9583 if (UNTAG_Bool(REGB0)) {
9584 } else {
9585 nit_abort("Uninitialized attribute %s", "_name", LOCATE_syntax___mmbuilder, 1258);
9586 }
9587 fra.me.REG[2] = ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0]);
9588 fra.me.REG[3] = CALL_parser___parser_nodes___Token___text(fra.me.REG[1])(fra.me.REG[1]);
9589 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
9590 } else {
9591 /* syntax/mmbuilder.nit:1260 */
9592 CALL_parser___parser_nodes___ANode___visit_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
9593 }
9594 stack_frame_head = fra.me.prev;
9595 return;
9596 }
9597 static const char LOCATE_syntax___mmbuilder___AMethid___name[] = "mmbuilder::AMethid::(syntax_base::AMethid::name)";
9598 val_t syntax___mmbuilder___AMethid___name(val_t p0){
9599 struct {struct stack_frame_t me;} fra;
9600 val_t tmp;
9601 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9602 fra.me.file = LOCATE_syntax___mmbuilder;
9603 fra.me.line = 1266;
9604 fra.me.meth = LOCATE_syntax___mmbuilder___AMethid___name;
9605 fra.me.has_broke = 0;
9606 fra.me.REG_size = 1;
9607 fra.me.nitni_local_ref_head = NULL;
9608 fra.me.REG[0] = NIT_NULL;
9609 fra.me.REG[0] = p0;
9610 /* syntax/mmbuilder.nit:1266 */
9611 fra.me.REG[0] = ATTR_syntax___mmbuilder___AMethid____name(fra.me.REG[0]);
9612 stack_frame_head = fra.me.prev;
9613 return fra.me.REG[0];
9614 }
9615 static const char LOCATE_syntax___mmbuilder___AMethid___accept_property_builder[] = "mmbuilder::AMethid::(mmbuilder::ANode::accept_property_builder)";
9616 void syntax___mmbuilder___AMethid___accept_property_builder(val_t p0, val_t p1){
9617 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9618 val_t tmp;
9619 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9620 fra.me.file = LOCATE_syntax___mmbuilder;
9621 fra.me.line = 1268;
9622 fra.me.meth = LOCATE_syntax___mmbuilder___AMethid___accept_property_builder;
9623 fra.me.has_broke = 0;
9624 fra.me.REG_size = 4;
9625 fra.me.nitni_local_ref_head = NULL;
9626 fra.me.REG[0] = NIT_NULL;
9627 fra.me.REG[1] = NIT_NULL;
9628 fra.me.REG[2] = NIT_NULL;
9629 fra.me.REG[3] = NIT_NULL;
9630 fra.me.REG[0] = p0;
9631 fra.me.REG[1] = p1;
9632 /* syntax/mmbuilder.nit:1268 */
9633 fra.me.REG[2] = fra.me.REG[0];
9634 /* syntax/mmbuilder.nit:1270 */
9635 fra.me.REG[3] = NEW_MethidAccumulator_parser___parser_nodes___Visitor___init();
9636 /* syntax/mmbuilder.nit:1271 */
9637 CALL_parser___parser_nodes___Visitor___enter_visit(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
9638 /* syntax/mmbuilder.nit:1272 */
9639 fra.me.REG[3] = CALL_syntax___mmbuilder___MethidAccumulator___name(fra.me.REG[3])(fra.me.REG[3]);
9640 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
9641 fra.me.REG[3] = CALL_symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
9642 ATTR_syntax___mmbuilder___AMethid____name(fra.me.REG[2]) = fra.me.REG[3];
9643 /* syntax/mmbuilder.nit:1273 */
9644 CALL_SUPER_syntax___mmbuilder___AMethid___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9645 stack_frame_head = fra.me.prev;
9646 return;
9647 }
9648 static const char LOCATE_syntax___mmbuilder___ASignature___accept_property_verifier[] = "mmbuilder::ASignature::(mmbuilder::ANode::accept_property_verifier)";
9649 void syntax___mmbuilder___ASignature___accept_property_verifier(val_t p0, val_t p1){
9650 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
9651 val_t REGB0;
9652 val_t REGB1;
9653 val_t REGB2;
9654 val_t tmp;
9655 static val_t once_value_2; /* Once value */
9656 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9657 fra.me.file = LOCATE_syntax___mmbuilder;
9658 fra.me.line = 1278;
9659 fra.me.meth = LOCATE_syntax___mmbuilder___ASignature___accept_property_verifier;
9660 fra.me.has_broke = 0;
9661 fra.me.REG_size = 8;
9662 fra.me.nitni_local_ref_head = NULL;
9663 fra.me.REG[0] = NIT_NULL;
9664 fra.me.REG[1] = NIT_NULL;
9665 fra.me.REG[2] = NIT_NULL;
9666 fra.me.REG[3] = NIT_NULL;
9667 fra.me.REG[4] = NIT_NULL;
9668 fra.me.REG[5] = NIT_NULL;
9669 fra.me.REG[6] = NIT_NULL;
9670 fra.me.REG[7] = NIT_NULL;
9671 fra.me.REG[0] = p0;
9672 fra.me.REG[1] = p1;
9673 /* syntax/mmbuilder.nit:1278 */
9674 fra.me.REG[2] = fra.me.REG[0];
9675 fra.me.REG[3] = fra.me.REG[1];
9676 /* syntax/mmbuilder.nit:1280 */
9677 CALL_SUPER_syntax___mmbuilder___ASignature___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
9678 /* syntax/mmbuilder.nit:1281 */
9679 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9680 REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
9681 if (UNTAG_Bool(REGB0)) {
9682 /* syntax/mmbuilder.nit:1282 */
9683 goto label1;
9684 } else {
9685 /* syntax/mmbuilder.nit:1283 */
9686 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9687 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
9688 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
9689 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9690 if (UNTAG_Bool(REGB0)) {
9691 /* syntax/mmbuilder.nit:1284 */
9692 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9693 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
9694 fra.me.REG[1] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[1])(fra.me.REG[1]);
9695 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9696 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[4])(fra.me.REG[4]);
9697 fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
9698 REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[1],fra.me.REG[4]));
9699 if (UNTAG_Bool(REGB0)) {
9700 } else {
9701 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9702 if (UNTAG_Bool(REGB1)) {
9703 REGB1 = TAG_Bool(0);
9704 REGB0 = REGB1;
9705 } else {
9706 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
9707 REGB0 = REGB1;
9708 }
9709 }
9710 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9711 if (UNTAG_Bool(REGB0)) {
9712 REGB0 = TAG_Bool(1);
9713 } else {
9714 fra.me.REG[4] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
9715 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9716 if (UNTAG_Bool(REGB1)) {
9717 } else {
9718 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9719 if (UNTAG_Bool(REGB2)) {
9720 REGB2 = TAG_Bool(0);
9721 REGB1 = REGB2;
9722 } else {
9723 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
9724 REGB1 = REGB2;
9725 }
9726 }
9727 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
9728 REGB0 = REGB1;
9729 }
9730 if (UNTAG_Bool(REGB0)) {
9731 /* syntax/mmbuilder.nit:1285 */
9732 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9733 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
9734 fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
9735 if (!once_value_2) {
9736 fra.me.REG[1] = BOX_NativeString("Syntax error: untyped parameter.");
9737 REGB0 = TAG_Int(32);
9738 fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0);
9739 once_value_2 = fra.me.REG[1];
9740 register_static_object(&once_value_2);
9741 } else fra.me.REG[1] = once_value_2;
9742 fra.me.REG[1] = fra.me.REG[1];
9743 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[1]);
9744 /* syntax/mmbuilder.nit:1286 */
9745 goto label1;
9746 }
9747 } else {
9748 /* syntax/mmbuilder.nit:1288 */
9749 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9750 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[1])(fra.me.REG[1]);
9751 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
9752 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9753 if (UNTAG_Bool(REGB0)) {
9754 REGB0 = TAG_Bool(1);
9755 } else {
9756 fra.me.REG[1] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
9757 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9758 if (UNTAG_Bool(REGB1)) {
9759 } else {
9760 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9761 if (UNTAG_Bool(REGB2)) {
9762 REGB2 = TAG_Bool(0);
9763 REGB1 = REGB2;
9764 } else {
9765 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9766 REGB1 = REGB2;
9767 }
9768 }
9769 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
9770 REGB0 = REGB1;
9771 }
9772 if (UNTAG_Bool(REGB0)) {
9773 /* syntax/mmbuilder.nit:1289 */
9774 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
9775 /* syntax/mmbuilder.nit:1290 */
9776 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9777 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[4])(fra.me.REG[4]);
9778 /* ../lib/standard/collection/array.nit:270 */
9779 REGB0 = TAG_Int(0);
9780 /* ../lib/standard/collection/array.nit:271 */
9781 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
9782 if (UNTAG_Bool(REGB1)) {
9783 } else {
9784 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
9785 }
9786 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
9787 /* ../lib/standard/collection/array.nit:272 */
9788 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
9789 /* ../lib/standard/collection/array.nit:273 */
9790 while(1) {
9791 /* ../lib/standard/collection/array.nit:24 */
9792 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
9793 if (UNTAG_Bool(REGB1)) {
9794 } else {
9795 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
9796 }
9797 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
9798 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
9799 if (UNTAG_Bool(REGB2)) {
9800 } else {
9801 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9802 }
9803 /* ../lib/standard/kernel.nit:242 */
9804 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
9805 /* ../lib/standard/collection/array.nit:273 */
9806 if (UNTAG_Bool(REGB1)) {
9807 /* ../lib/standard/collection/array.nit:274 */
9808 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9809 if (UNTAG_Bool(REGB1)) {
9810 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
9811 }
9812 /* ../lib/standard/collection/array.nit:725 */
9813 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
9814 /* syntax/mmbuilder.nit:1291 */
9815 fra.me.REG[7] = CALL_syntax___mmbuilder___AParam___stype(fra.me.REG[6])(fra.me.REG[6]);
9816 REGB1 = TAG_Bool(fra.me.REG[7]!=NIT_NULL);
9817 if (UNTAG_Bool(REGB1)) {
9818 } else {
9819 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1291);
9820 }
9821 fra.me.REG[6] = CALL_parser___parser_nodes___AParam___n_id(fra.me.REG[6])(fra.me.REG[6]);
9822 fra.me.REG[6] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
9823 fra.me.REG[6] = NEW_MMParam_metamodel___static_type___MMParam___init(fra.me.REG[7], fra.me.REG[6]);
9824 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
9825 /* ../lib/standard/collection/array.nit:275 */
9826 REGB1 = TAG_Int(1);
9827 /* ../lib/standard/kernel.nit:245 */
9828 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
9829 /* ../lib/standard/collection/array.nit:275 */
9830 REGB0 = REGB1;
9831 } else {
9832 /* ../lib/standard/collection/array.nit:273 */
9833 goto label3;
9834 }
9835 }
9836 label3: while(0);
9837 /* syntax/mmbuilder.nit:1293 */
9838 fra.me.REG[0] = NIT_NULL;
9839 /* syntax/mmbuilder.nit:1294 */
9840 fra.me.REG[5] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
9841 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9842 if (UNTAG_Bool(REGB0)) {
9843 } else {
9844 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9845 if (UNTAG_Bool(REGB1)) {
9846 REGB1 = TAG_Bool(0);
9847 REGB0 = REGB1;
9848 } else {
9849 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
9850 REGB0 = REGB1;
9851 }
9852 }
9853 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9854 if (UNTAG_Bool(REGB0)) {
9855 /* syntax/mmbuilder.nit:1295 */
9856 fra.me.REG[2] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
9857 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9858 if (UNTAG_Bool(REGB0)) {
9859 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1295);
9860 }
9861 fra.me.REG[2] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
9862 fra.me.REG[0] = fra.me.REG[2];
9863 /* syntax/mmbuilder.nit:1296 */
9864 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9865 if (UNTAG_Bool(REGB0)) {
9866 } else {
9867 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
9868 if (UNTAG_Bool(REGB1)) {
9869 REGB1 = TAG_Bool(0);
9870 REGB0 = REGB1;
9871 } else {
9872 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
9873 REGB0 = REGB1;
9874 }
9875 }
9876 if (UNTAG_Bool(REGB0)) {
9877 /* syntax/mmbuilder.nit:1297 */
9878 fra.me.REG[2] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9879 REGB0 = TAG_Bool(1);
9880 CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
9881 /* syntax/mmbuilder.nit:1298 */
9882 goto label1;
9883 }
9884 }
9885 /* syntax/mmbuilder.nit:1301 */
9886 fra.me.REG[2] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9887 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
9888 fra.me.REG[5] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]);
9889 fra.me.REG[5] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
9890 CALL_syntax___mmbuilder___SignatureBuilder___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
9891 /* syntax/mmbuilder.nit:1302 */
9892 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9893 REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[5])(fra.me.REG[5]);
9894 REGB1 = TAG_Int(0);
9895 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
9896 if (UNTAG_Bool(REGB2)) {
9897 } else {
9898 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9899 }
9900 /* ../lib/standard/kernel.nit:243 */
9901 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
9902 /* syntax/mmbuilder.nit:1302 */
9903 if (UNTAG_Bool(REGB1)) {
9904 /* syntax/mmbuilder.nit:1303 */
9905 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9906 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[5])(fra.me.REG[5]);
9907 fra.me.REG[2] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9908 REGB1 = CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[2])(fra.me.REG[2]);
9909 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9910 if (UNTAG_Bool(REGB0)) {
9911 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1303);
9912 }
9913 CALL_metamodel___vararg___MMSignature___vararg_rank__eq(fra.me.REG[5])(fra.me.REG[5], REGB1);
9914 }
9915 /* syntax/mmbuilder.nit:1305 */
9916 fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9917 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[5])(fra.me.REG[5]);
9918 /* ../lib/standard/collection/array.nit:270 */
9919 REGB1 = TAG_Int(0);
9920 /* ../lib/standard/collection/array.nit:271 */
9921 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
9922 if (UNTAG_Bool(REGB0)) {
9923 } else {
9924 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
9925 }
9926 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
9927 /* ../lib/standard/collection/array.nit:272 */
9928 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
9929 /* ../lib/standard/collection/array.nit:273 */
9930 while(1) {
9931 /* ../lib/standard/collection/array.nit:24 */
9932 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
9933 if (UNTAG_Bool(REGB0)) {
9934 } else {
9935 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
9936 }
9937 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
9938 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
9939 if (UNTAG_Bool(REGB2)) {
9940 } else {
9941 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
9942 }
9943 /* ../lib/standard/kernel.nit:242 */
9944 REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
9945 /* ../lib/standard/collection/array.nit:273 */
9946 if (UNTAG_Bool(REGB0)) {
9947 /* ../lib/standard/collection/array.nit:274 */
9948 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9949 if (UNTAG_Bool(REGB0)) {
9950 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
9951 }
9952 /* ../lib/standard/collection/array.nit:725 */
9953 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
9954 /* syntax/mmbuilder.nit:1306 */
9955 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
9956 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
9957 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9958 if (UNTAG_Bool(REGB0)) {
9959 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1306);
9960 }
9961 fra.me.REG[1] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
9962 fra.me.REG[0] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[0])(fra.me.REG[0]);
9963 fra.me.REG[0] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[0])(fra.me.REG[0]);
9964 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
9965 /* ../lib/standard/collection/array.nit:275 */
9966 REGB0 = TAG_Int(1);
9967 /* ../lib/standard/kernel.nit:245 */
9968 REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
9969 /* ../lib/standard/collection/array.nit:275 */
9970 REGB1 = REGB0;
9971 } else {
9972 /* ../lib/standard/collection/array.nit:273 */
9973 goto label4;
9974 }
9975 }
9976 label4: while(0);
9977 }
9978 }
9979 }
9980 label1: while(0);
9981 stack_frame_head = fra.me.prev;
9982 return;
9983 }
9984 static const char LOCATE_syntax___mmbuilder___ASignature___check_visibility[] = "mmbuilder::ASignature::check_visibility";
9985 void syntax___mmbuilder___ASignature___check_visibility(val_t p0, val_t p1, val_t p2){
9986 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9987 val_t REGB0;
9988 val_t REGB1;
9989 val_t REGB2;
9990 val_t tmp;
9991 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9992 fra.me.file = LOCATE_syntax___mmbuilder;
9993 fra.me.line = 1311;
9994 fra.me.meth = LOCATE_syntax___mmbuilder___ASignature___check_visibility;
9995 fra.me.has_broke = 0;
9996 fra.me.REG_size = 4;
9997 fra.me.nitni_local_ref_head = NULL;
9998 fra.me.REG[0] = NIT_NULL;
9999 fra.me.REG[1] = NIT_NULL;
10000 fra.me.REG[2] = NIT_NULL;
10001 fra.me.REG[3] = NIT_NULL;
10002 fra.me.REG[0] = p0;
10003 fra.me.REG[1] = p1;
10004 fra.me.REG[2] = p2;
10005 /* syntax/mmbuilder.nit:1314 */
10006 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
10007 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
10008 REGB1 = TAG_Int(3);
10009 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
10010 if (UNTAG_Bool(REGB2)) {
10011 } else {
10012 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10013 }
10014 /* ../lib/standard/kernel.nit:243 */
10015 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
10016 /* syntax/mmbuilder.nit:1314 */
10017 if (UNTAG_Bool(REGB1)) {
10018 goto label1;
10019 }
10020 /* syntax/mmbuilder.nit:1315 */
10021 fra.me.REG[3] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[0])(fra.me.REG[0]);
10022 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));
10023 /* syntax/mmbuilder.nit:1318 */
10024 fra.me.REG[3] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[0])(fra.me.REG[0]);
10025 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10026 if (UNTAG_Bool(REGB1)) {
10027 } else {
10028 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10029 if (UNTAG_Bool(REGB0)) {
10030 REGB0 = TAG_Bool(0);
10031 REGB1 = REGB0;
10032 } else {
10033 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10034 REGB1 = REGB0;
10035 }
10036 }
10037 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
10038 if (UNTAG_Bool(REGB1)) {
10039 fra.me.REG[0] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[0])(fra.me.REG[0]);
10040 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10041 if (UNTAG_Bool(REGB1)) {
10042 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1318);
10043 }
10044 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
10045 }
10046 label1: while(0);
10047 stack_frame_head = fra.me.prev;
10048 return;
10049 }
10050 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){
10051 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10052 val_t REGB0;
10053 val_t REGB1;
10054 fun_t CREG[1];
10055 val_t tmp;
10056 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10057 fra.me.file = LOCATE_syntax___mmbuilder;
10058 fra.me.line = 0;
10059 fra.me.meth = LOCATE_syntax___mmbuilder___ASignature___check_visibility;
10060 fra.me.has_broke = 0;
10061 fra.me.REG_size = 2;
10062 fra.me.nitni_local_ref_head = NULL;
10063 fra.me.REG[0] = NIT_NULL;
10064 fra.me.REG[1] = NIT_NULL;
10065 fra.me.closure_ctx = closctx_param;
10066 fra.me.closure_funs = CREG;
10067 fra.me.REG[0] = p0;
10068 CREG[0] = clos_fun0;
10069 /* syntax/mmbuilder.nit:1316 */
10070 fra.me.REG[1] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[0])(fra.me.REG[0]);
10071 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10072 if (UNTAG_Bool(REGB0)) {
10073 } else {
10074 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10075 if (UNTAG_Bool(REGB1)) {
10076 REGB1 = TAG_Bool(0);
10077 REGB0 = REGB1;
10078 } else {
10079 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
10080 REGB0 = REGB1;
10081 }
10082 }
10083 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10084 if (UNTAG_Bool(REGB0)) {
10085 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[0])(fra.me.REG[0]);
10086 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10087 if (UNTAG_Bool(REGB0)) {
10088 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1316);
10089 }
10090 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1], closctx->REG[2]);
10091 }
10092 stack_frame_head = fra.me.prev;
10093 return;
10094 }
10095 static const char LOCATE_syntax___mmbuilder___AParam___position[] = "mmbuilder::AParam::(syntax_base::AParam::position)";
10096 val_t syntax___mmbuilder___AParam___position(val_t p0){
10097 struct {struct stack_frame_t me;} fra;
10098 val_t REGB0;
10099 val_t tmp;
10100 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10101 fra.me.file = LOCATE_syntax___mmbuilder;
10102 fra.me.line = 1323;
10103 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___position;
10104 fra.me.has_broke = 0;
10105 fra.me.REG_size = 1;
10106 fra.me.nitni_local_ref_head = NULL;
10107 fra.me.REG[0] = NIT_NULL;
10108 fra.me.REG[0] = p0;
10109 /* syntax/mmbuilder.nit:1323 */
10110 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___AParam____position(fra.me.REG[0])!=NIT_NULL);
10111 if (UNTAG_Bool(REGB0)) {
10112 } else {
10113 nit_abort("Uninitialized attribute %s", "_position", LOCATE_syntax___mmbuilder, 1323);
10114 }
10115 REGB0 = ATTR_syntax___mmbuilder___AParam____position(fra.me.REG[0]);
10116 stack_frame_head = fra.me.prev;
10117 return REGB0;
10118 }
10119 static const char LOCATE_syntax___mmbuilder___AParam___variable[] = "mmbuilder::AParam::(syntax_base::AParam::variable)";
10120 val_t syntax___mmbuilder___AParam___variable(val_t p0){
10121 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10122 val_t REGB0;
10123 val_t tmp;
10124 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10125 fra.me.file = LOCATE_syntax___mmbuilder;
10126 fra.me.line = 1325;
10127 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___variable;
10128 fra.me.has_broke = 0;
10129 fra.me.REG_size = 2;
10130 fra.me.nitni_local_ref_head = NULL;
10131 fra.me.REG[0] = NIT_NULL;
10132 fra.me.REG[1] = NIT_NULL;
10133 fra.me.REG[0] = p0;
10134 /* syntax/mmbuilder.nit:1325 */
10135 fra.me.REG[1] = fra.me.REG[0];
10136 fra.me.REG[1] = ATTR_syntax___mmbuilder___AParam____variable(fra.me.REG[1]);
10137 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
10138 if (UNTAG_Bool(REGB0)) {
10139 } else {
10140 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1325);
10141 }
10142 goto label1;
10143 label1: while(0);
10144 stack_frame_head = fra.me.prev;
10145 return fra.me.REG[1];
10146 }
10147 static const char LOCATE_syntax___mmbuilder___AParam___stype[] = "mmbuilder::AParam::stype";
10148 val_t syntax___mmbuilder___AParam___stype(val_t p0){
10149 struct {struct stack_frame_t me;} fra;
10150 val_t tmp;
10151 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10152 fra.me.file = LOCATE_syntax___mmbuilder;
10153 fra.me.line = 1328;
10154 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___stype;
10155 fra.me.has_broke = 0;
10156 fra.me.REG_size = 1;
10157 fra.me.nitni_local_ref_head = NULL;
10158 fra.me.REG[0] = NIT_NULL;
10159 fra.me.REG[0] = p0;
10160 /* syntax/mmbuilder.nit:1328 */
10161 fra.me.REG[0] = ATTR_syntax___mmbuilder___AParam____stype(fra.me.REG[0]);
10162 stack_frame_head = fra.me.prev;
10163 return fra.me.REG[0];
10164 }
10165 static const char LOCATE_syntax___mmbuilder___AParam___stype__eq[] = "mmbuilder::AParam::stype=";
10166 void syntax___mmbuilder___AParam___stype__eq(val_t p0, val_t p1){
10167 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10168 val_t tmp;
10169 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10170 fra.me.file = LOCATE_syntax___mmbuilder;
10171 fra.me.line = 1328;
10172 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___stype__eq;
10173 fra.me.has_broke = 0;
10174 fra.me.REG_size = 2;
10175 fra.me.nitni_local_ref_head = NULL;
10176 fra.me.REG[0] = NIT_NULL;
10177 fra.me.REG[1] = NIT_NULL;
10178 fra.me.REG[0] = p0;
10179 fra.me.REG[1] = p1;
10180 /* syntax/mmbuilder.nit:1328 */
10181 ATTR_syntax___mmbuilder___AParam____stype(fra.me.REG[0]) = fra.me.REG[1];
10182 stack_frame_head = fra.me.prev;
10183 return;
10184 }
10185 static const char LOCATE_syntax___mmbuilder___AParam___accept_property_verifier[] = "mmbuilder::AParam::(mmbuilder::ANode::accept_property_verifier)";
10186 void syntax___mmbuilder___AParam___accept_property_verifier(val_t p0, val_t p1){
10187 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
10188 val_t REGB0;
10189 val_t REGB1;
10190 val_t REGB2;
10191 val_t REGB3;
10192 val_t tmp;
10193 static val_t once_value_2; /* Once value */
10194 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10195 fra.me.file = LOCATE_syntax___mmbuilder;
10196 fra.me.line = 1331;
10197 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___accept_property_verifier;
10198 fra.me.has_broke = 0;
10199 fra.me.REG_size = 7;
10200 fra.me.nitni_local_ref_head = NULL;
10201 fra.me.REG[0] = NIT_NULL;
10202 fra.me.REG[1] = NIT_NULL;
10203 fra.me.REG[2] = NIT_NULL;
10204 fra.me.REG[3] = NIT_NULL;
10205 fra.me.REG[4] = NIT_NULL;
10206 fra.me.REG[5] = NIT_NULL;
10207 fra.me.REG[6] = NIT_NULL;
10208 fra.me.REG[0] = p0;
10209 fra.me.REG[1] = p1;
10210 /* syntax/mmbuilder.nit:1331 */
10211 fra.me.REG[2] = fra.me.REG[0];
10212 fra.me.REG[3] = fra.me.REG[1];
10213 /* syntax/mmbuilder.nit:1333 */
10214 CALL_SUPER_syntax___mmbuilder___AParam___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
10215 /* syntax/mmbuilder.nit:1334 */
10216 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10217 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[1])(fra.me.REG[1]);
10218 /* ../lib/standard/collection/array.nit:24 */
10219 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
10220 if (UNTAG_Bool(REGB0)) {
10221 } else {
10222 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
10223 }
10224 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
10225 /* syntax/mmbuilder.nit:1334 */
10226 ATTR_syntax___mmbuilder___AParam____position(fra.me.REG[2]) = REGB0;
10227 /* syntax/mmbuilder.nit:1335 */
10228 fra.me.REG[1] = CALL_parser___parser_nodes___AParam___n_id(fra.me.REG[2])(fra.me.REG[2]);
10229 fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
10230 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_id(fra.me.REG[2])(fra.me.REG[2]);
10231 fra.me.REG[0] = NEW_ParamVariable_syntax___syntax_base___ParamVariable___init(fra.me.REG[1], fra.me.REG[0]);
10232 ATTR_syntax___mmbuilder___AParam____variable(fra.me.REG[2]) = fra.me.REG[0];
10233 /* syntax/mmbuilder.nit:1336 */
10234 fra.me.REG[0] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10235 fra.me.REG[0] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[0])(fra.me.REG[0]);
10236 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
10237 /* syntax/mmbuilder.nit:1337 */
10238 fra.me.REG[0] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10239 fra.me.REG[0] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[0])(fra.me.REG[0]);
10240 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
10241 /* syntax/mmbuilder.nit:1338 */
10242 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[2])(fra.me.REG[2]);
10243 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10244 if (UNTAG_Bool(REGB0)) {
10245 } else {
10246 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10247 if (UNTAG_Bool(REGB1)) {
10248 REGB1 = TAG_Bool(0);
10249 REGB0 = REGB1;
10250 } else {
10251 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
10252 REGB0 = REGB1;
10253 }
10254 }
10255 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10256 if (UNTAG_Bool(REGB0)) {
10257 /* syntax/mmbuilder.nit:1339 */
10258 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[2])(fra.me.REG[2]);
10259 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10260 if (UNTAG_Bool(REGB0)) {
10261 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1339);
10262 }
10263 fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
10264 /* syntax/mmbuilder.nit:1340 */
10265 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10266 if (UNTAG_Bool(REGB0)) {
10267 } else {
10268 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10269 if (UNTAG_Bool(REGB1)) {
10270 REGB1 = TAG_Bool(0);
10271 REGB0 = REGB1;
10272 } else {
10273 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
10274 REGB0 = REGB1;
10275 }
10276 }
10277 if (UNTAG_Bool(REGB0)) {
10278 /* syntax/mmbuilder.nit:1341 */
10279 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10280 REGB0 = TAG_Bool(1);
10281 CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
10282 /* syntax/mmbuilder.nit:1342 */
10283 goto label1;
10284 }
10285 /* syntax/mmbuilder.nit:1344 */
10286 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10287 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
10288 /* ../lib/standard/collection/array.nit:270 */
10289 REGB0 = TAG_Int(0);
10290 /* ../lib/standard/collection/array.nit:271 */
10291 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
10292 if (UNTAG_Bool(REGB1)) {
10293 } else {
10294 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
10295 }
10296 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
10297 /* ../lib/standard/collection/array.nit:272 */
10298 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
10299 /* ../lib/standard/collection/array.nit:273 */
10300 while(1) {
10301 /* ../lib/standard/collection/array.nit:24 */
10302 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
10303 if (UNTAG_Bool(REGB1)) {
10304 } else {
10305 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
10306 }
10307 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
10308 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
10309 if (UNTAG_Bool(REGB2)) {
10310 } else {
10311 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10312 }
10313 /* ../lib/standard/kernel.nit:242 */
10314 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
10315 /* ../lib/standard/collection/array.nit:273 */
10316 if (UNTAG_Bool(REGB1)) {
10317 /* ../lib/standard/collection/array.nit:274 */
10318 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
10319 if (UNTAG_Bool(REGB1)) {
10320 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
10321 }
10322 /* ../lib/standard/collection/array.nit:725 */
10323 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
10324 /* syntax/mmbuilder.nit:1345 */
10325 CALL_syntax___mmbuilder___AParam___stype__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
10326 /* syntax/mmbuilder.nit:1346 */
10327 REGB1 = CALL_syntax___mmbuilder___AParam___is_vararg(fra.me.REG[2])(fra.me.REG[2]);
10328 if (UNTAG_Bool(REGB1)) {
10329 /* syntax/mmbuilder.nit:1347 */
10330 fra.me.REG[6] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10331 REGB1 = CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[6])(fra.me.REG[6]);
10332 REGB2 = TAG_Int(1);
10333 /* ../lib/standard/kernel.nit:246 */
10334 REGB2 = TAG_Int(-UNTAG_Int(REGB2));
10335 /* syntax/mmbuilder.nit:1347 */
10336 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
10337 if (UNTAG_Bool(REGB3)) {
10338 } else {
10339 /* ../lib/standard/kernel.nit:237 */
10340 REGB2 = TAG_Bool((REGB1)==(REGB2));
10341 /* syntax/mmbuilder.nit:1347 */
10342 REGB3 = REGB2;
10343 }
10344 if (UNTAG_Bool(REGB3)) {
10345 /* syntax/mmbuilder.nit:1348 */
10346 fra.me.REG[6] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10347 REGB3 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[5])(fra.me.REG[5]);
10348 CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank__eq(fra.me.REG[6])(fra.me.REG[6], REGB3);
10349 } else {
10350 /* syntax/mmbuilder.nit:1350 */
10351 if (!once_value_2) {
10352 fra.me.REG[6] = BOX_NativeString("Error: A vararg parameter is already defined.");
10353 REGB3 = TAG_Int(45);
10354 fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB3);
10355 once_value_2 = fra.me.REG[6];
10356 register_static_object(&once_value_2);
10357 } else fra.me.REG[6] = once_value_2;
10358 fra.me.REG[6] = fra.me.REG[6];
10359 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
10360 }
10361 /* syntax/mmbuilder.nit:1352 */
10362 fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
10363 fra.me.REG[0] = fra.me.REG[6];
10364 }
10365 /* syntax/mmbuilder.nit:1354 */
10366 fra.me.REG[5] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[5])(fra.me.REG[5]);
10367 CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
10368 /* ../lib/standard/collection/array.nit:275 */
10369 REGB3 = TAG_Int(1);
10370 /* ../lib/standard/kernel.nit:245 */
10371 REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
10372 /* ../lib/standard/collection/array.nit:275 */
10373 REGB0 = REGB3;
10374 } else {
10375 /* ../lib/standard/collection/array.nit:273 */
10376 goto label3;
10377 }
10378 }
10379 label3: while(0);
10380 /* syntax/mmbuilder.nit:1356 */
10381 fra.me.REG[3] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10382 fra.me.REG[3] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[3])(fra.me.REG[3]);
10383 CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[3])(fra.me.REG[3]);
10384 }
10385 label1: while(0);
10386 stack_frame_head = fra.me.prev;
10387 return;
10388 }
10389 static const char LOCATE_syntax___mmbuilder___AParam___is_vararg[] = "mmbuilder::AParam::is_vararg";
10390 val_t syntax___mmbuilder___AParam___is_vararg(val_t p0){
10391 struct {struct stack_frame_t me;} fra;
10392 val_t REGB0;
10393 val_t REGB1;
10394 val_t tmp;
10395 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10396 fra.me.file = LOCATE_syntax___mmbuilder;
10397 fra.me.line = 1360;
10398 fra.me.meth = LOCATE_syntax___mmbuilder___AParam___is_vararg;
10399 fra.me.has_broke = 0;
10400 fra.me.REG_size = 1;
10401 fra.me.nitni_local_ref_head = NULL;
10402 fra.me.REG[0] = NIT_NULL;
10403 fra.me.REG[0] = p0;
10404 /* syntax/mmbuilder.nit:1360 */
10405 fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_dotdotdot(fra.me.REG[0])(fra.me.REG[0]);
10406 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10407 if (UNTAG_Bool(REGB0)) {
10408 } else {
10409 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
10410 if (UNTAG_Bool(REGB1)) {
10411 REGB1 = TAG_Bool(0);
10412 REGB0 = REGB1;
10413 } else {
10414 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
10415 REGB0 = REGB1;
10416 }
10417 }
10418 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10419 goto label1;
10420 label1: while(0);
10421 stack_frame_head = fra.me.prev;
10422 return REGB0;
10423 }
10424 static const char LOCATE_syntax___mmbuilder___AClosureDecl___position[] = "mmbuilder::AClosureDecl::(syntax_base::AClosureDecl::position)";
10425 val_t syntax___mmbuilder___AClosureDecl___position(val_t p0){
10426 struct {struct stack_frame_t me;} fra;
10427 val_t REGB0;
10428 val_t tmp;
10429 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10430 fra.me.file = LOCATE_syntax___mmbuilder;
10431 fra.me.line = 1364;
10432 fra.me.meth = LOCATE_syntax___mmbuilder___AClosureDecl___position;
10433 fra.me.has_broke = 0;
10434 fra.me.REG_size = 1;
10435 fra.me.nitni_local_ref_head = NULL;
10436 fra.me.REG[0] = NIT_NULL;
10437 fra.me.REG[0] = p0;
10438 /* syntax/mmbuilder.nit:1364 */
10439 REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___AClosureDecl____position(fra.me.REG[0])!=NIT_NULL);
10440 if (UNTAG_Bool(REGB0)) {
10441 } else {
10442 nit_abort("Uninitialized attribute %s", "_position", LOCATE_syntax___mmbuilder, 1364);
10443 }
10444 REGB0 = ATTR_syntax___mmbuilder___AClosureDecl____position(fra.me.REG[0]);
10445 stack_frame_head = fra.me.prev;
10446 return REGB0;
10447 }
10448 static const char LOCATE_syntax___mmbuilder___AClosureDecl___variable[] = "mmbuilder::AClosureDecl::(syntax_base::AClosureDecl::variable)";
10449 val_t syntax___mmbuilder___AClosureDecl___variable(val_t p0){
10450 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10451 val_t REGB0;
10452 val_t tmp;
10453 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10454 fra.me.file = LOCATE_syntax___mmbuilder;
10455 fra.me.line = 1366;
10456 fra.me.meth = LOCATE_syntax___mmbuilder___AClosureDecl___variable;
10457 fra.me.has_broke = 0;
10458 fra.me.REG_size = 2;
10459 fra.me.nitni_local_ref_head = NULL;
10460 fra.me.REG[0] = NIT_NULL;
10461 fra.me.REG[1] = NIT_NULL;
10462 fra.me.REG[0] = p0;
10463 /* syntax/mmbuilder.nit:1366 */
10464 fra.me.REG[1] = fra.me.REG[0];
10465 fra.me.REG[1] = ATTR_syntax___mmbuilder___AClosureDecl____variable(fra.me.REG[1]);
10466 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
10467 if (UNTAG_Bool(REGB0)) {
10468 } else {
10469 nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1366);
10470 }
10471 goto label1;
10472 label1: while(0);
10473 stack_frame_head = fra.me.prev;
10474 return fra.me.REG[1];
10475 }
10476 static const char LOCATE_syntax___mmbuilder___AClosureDecl___accept_property_verifier[] = "mmbuilder::AClosureDecl::(mmbuilder::ANode::accept_property_verifier)";
10477 void syntax___mmbuilder___AClosureDecl___accept_property_verifier(val_t p0, val_t p1){
10478 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
10479 val_t REGB0;
10480 val_t REGB1;
10481 val_t REGB2;
10482 val_t tmp;
10483 static val_t once_value_2; /* Once value */
10484 static val_t once_value_3; /* Once value */
10485 static val_t once_value_4; /* Once value */
10486 static val_t once_value_5; /* Once value */
10487 static val_t once_value_6; /* Once value */
10488 static val_t once_value_7; /* Once value */
10489 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10490 fra.me.file = LOCATE_syntax___mmbuilder;
10491 fra.me.line = 1369;
10492 fra.me.meth = LOCATE_syntax___mmbuilder___AClosureDecl___accept_property_verifier;
10493 fra.me.has_broke = 0;
10494 fra.me.REG_size = 11;
10495 fra.me.nitni_local_ref_head = NULL;
10496 fra.me.REG[0] = NIT_NULL;
10497 fra.me.REG[1] = NIT_NULL;
10498 fra.me.REG[2] = NIT_NULL;
10499 fra.me.REG[3] = NIT_NULL;
10500 fra.me.REG[4] = NIT_NULL;
10501 fra.me.REG[5] = NIT_NULL;
10502 fra.me.REG[6] = NIT_NULL;
10503 fra.me.REG[7] = NIT_NULL;
10504 fra.me.REG[8] = NIT_NULL;
10505 fra.me.REG[9] = NIT_NULL;
10506 fra.me.REG[10] = NIT_NULL;
10507 fra.me.REG[0] = p0;
10508 fra.me.REG[1] = p1;
10509 /* syntax/mmbuilder.nit:1369 */
10510 fra.me.REG[2] = fra.me.REG[0];
10511 fra.me.REG[3] = fra.me.REG[1];
10512 /* syntax/mmbuilder.nit:1371 */
10513 fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10514 /* syntax/mmbuilder.nit:1372 */
10515 fra.me.REG[5] = NEW_SignatureBuilder_syntax___mmbuilder___SignatureBuilder___init();
10516 CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
10517 /* syntax/mmbuilder.nit:1373 */
10518 CALL_SUPER_syntax___mmbuilder___AClosureDecl___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
10519 /* syntax/mmbuilder.nit:1374 */
10520 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10521 REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
10522 if (UNTAG_Bool(REGB0)) {
10523 /* syntax/mmbuilder.nit:1375 */
10524 goto label1;
10525 }
10526 /* syntax/mmbuilder.nit:1377 */
10527 fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
10528 fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
10529 /* syntax/mmbuilder.nit:1378 */
10530 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10531 if (UNTAG_Bool(REGB0)) {
10532 } else {
10533 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10534 if (UNTAG_Bool(REGB1)) {
10535 REGB1 = TAG_Bool(0);
10536 REGB0 = REGB1;
10537 } else {
10538 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
10539 REGB0 = REGB1;
10540 }
10541 }
10542 if (UNTAG_Bool(REGB0)) {
10543 /* syntax/mmbuilder.nit:1379 */
10544 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
10545 fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
10546 fra.me.REG[5] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]);
10547 fra.me.REG[5] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[5]);
10548 fra.me.REG[1] = fra.me.REG[5];
10549 }
10550 /* syntax/mmbuilder.nit:1381 */
10551 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10552 if (UNTAG_Bool(REGB0)) {
10553 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1381);
10554 }
10555 fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[1])(fra.me.REG[1]);
10556 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10557 if (UNTAG_Bool(REGB0)) {
10558 } else {
10559 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10560 if (UNTAG_Bool(REGB1)) {
10561 REGB1 = TAG_Bool(0);
10562 REGB0 = REGB1;
10563 } else {
10564 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10565 REGB0 = REGB1;
10566 }
10567 }
10568 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10569 if (UNTAG_Bool(REGB0)) {
10570 fra.me.REG[5] = CALL_parser___parser_nodes___AClosureDecl___n_kwbreak(fra.me.REG[2])(fra.me.REG[2]);
10571 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10572 if (UNTAG_Bool(REGB0)) {
10573 } else {
10574 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10575 if (UNTAG_Bool(REGB1)) {
10576 REGB1 = TAG_Bool(0);
10577 REGB0 = REGB1;
10578 } else {
10579 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10580 REGB0 = REGB1;
10581 }
10582 }
10583 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10584 } else {
10585 REGB1 = TAG_Bool(0);
10586 REGB0 = REGB1;
10587 }
10588 if (UNTAG_Bool(REGB0)) {
10589 /* syntax/mmbuilder.nit:1382 */
10590 if (!once_value_2) {
10591 fra.me.REG[5] = BOX_NativeString("Syntax Error: A break block cannot have a return value.");
10592 REGB0 = TAG_Int(55);
10593 fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
10594 once_value_2 = fra.me.REG[5];
10595 register_static_object(&once_value_2);
10596 } else fra.me.REG[5] = once_value_2;
10597 fra.me.REG[5] = fra.me.REG[5];
10598 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[5]);
10599 }
10600 /* syntax/mmbuilder.nit:1386 */
10601 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
10602 fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
10603 fra.me.REG[0] = CALL_metamodel___inheritance___MMModule___type_any(fra.me.REG[0])(fra.me.REG[0]);
10604 fra.me.REG[0] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[5], NIT_NULL, fra.me.REG[0]);
10605 /* syntax/mmbuilder.nit:1387 */
10606 if (!once_value_3) {
10607 if (!once_value_4) {
10608 fra.me.REG[5] = BOX_NativeString("break");
10609 REGB0 = TAG_Int(5);
10610 fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
10611 once_value_4 = fra.me.REG[5];
10612 register_static_object(&once_value_4);
10613 } else fra.me.REG[5] = once_value_4;
10614 fra.me.REG[5] = fra.me.REG[5];
10615 fra.me.REG[5] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
10616 once_value_3 = fra.me.REG[5];
10617 register_static_object(&once_value_3);
10618 } else fra.me.REG[5] = once_value_3;
10619 fra.me.REG[5] = fra.me.REG[5];
10620 REGB0 = TAG_Bool(0);
10621 REGB1 = TAG_Bool(1);
10622 fra.me.REG[0] = NEW_MMClosure_metamodel___static_type___MMClosure___init(fra.me.REG[5], fra.me.REG[0], REGB0, REGB1);
10623 /* syntax/mmbuilder.nit:1388 */
10624 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10625 if (UNTAG_Bool(REGB1)) {
10626 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1388);
10627 }
10628 fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
10629 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
10630 /* syntax/mmbuilder.nit:1390 */
10631 fra.me.REG[0] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10632 fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
10633 /* syntax/mmbuilder.nit:1391 */
10634 fra.me.REG[5] = CALL_parser___parser_nodes___AClosureDecl___n_kwbreak(fra.me.REG[2])(fra.me.REG[2]);
10635 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10636 if (UNTAG_Bool(REGB1)) {
10637 } else {
10638 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10639 if (UNTAG_Bool(REGB0)) {
10640 REGB0 = TAG_Bool(0);
10641 REGB1 = REGB0;
10642 } else {
10643 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10644 REGB1 = REGB0;
10645 }
10646 }
10647 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
10648 fra.me.REG[5] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra.me.REG[2])(fra.me.REG[2]);
10649 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10650 if (UNTAG_Bool(REGB0)) {
10651 } else {
10652 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10653 if (UNTAG_Bool(REGB2)) {
10654 REGB2 = TAG_Bool(0);
10655 REGB0 = REGB2;
10656 } else {
10657 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
10658 REGB0 = REGB2;
10659 }
10660 }
10661 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10662 fra.me.REG[1] = NEW_MMClosure_metamodel___static_type___MMClosure___init(fra.me.REG[0], fra.me.REG[1], REGB1, REGB0);
10663 /* syntax/mmbuilder.nit:1392 */
10664 fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
10665 /* ../lib/standard/collection/array.nit:270 */
10666 REGB0 = TAG_Int(0);
10667 /* ../lib/standard/collection/array.nit:271 */
10668 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
10669 if (UNTAG_Bool(REGB1)) {
10670 } else {
10671 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
10672 }
10673 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
10674 /* ../lib/standard/collection/array.nit:272 */
10675 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
10676 /* ../lib/standard/collection/array.nit:273 */
10677 while(1) {
10678 /* ../lib/standard/collection/array.nit:24 */
10679 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
10680 if (UNTAG_Bool(REGB1)) {
10681 } else {
10682 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
10683 }
10684 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
10685 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
10686 if (UNTAG_Bool(REGB2)) {
10687 } else {
10688 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10689 }
10690 /* ../lib/standard/kernel.nit:242 */
10691 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
10692 /* ../lib/standard/collection/array.nit:273 */
10693 if (UNTAG_Bool(REGB1)) {
10694 /* ../lib/standard/collection/array.nit:274 */
10695 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
10696 if (UNTAG_Bool(REGB1)) {
10697 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
10698 }
10699 /* ../lib/standard/collection/array.nit:725 */
10700 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
10701 /* syntax/mmbuilder.nit:1393 */
10702 fra.me.REG[8] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[7])(fra.me.REG[7]);
10703 fra.me.REG[8] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[8])(fra.me.REG[8]);
10704 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[8],fra.me.REG[0]));
10705 if (UNTAG_Bool(REGB1)) {
10706 } else {
10707 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
10708 REGB1 = REGB2;
10709 }
10710 if (UNTAG_Bool(REGB1)) {
10711 /* syntax/mmbuilder.nit:1394 */
10712 fra.me.REG[8] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10713 REGB1 = TAG_Int(5);
10714 fra.me.REG[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
10715 if (!once_value_5) {
10716 fra.me.REG[10] = BOX_NativeString("Error: A closure '!");
10717 REGB1 = TAG_Int(19);
10718 fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB1);
10719 once_value_5 = fra.me.REG[10];
10720 register_static_object(&once_value_5);
10721 } else fra.me.REG[10] = once_value_5;
10722 fra.me.REG[10] = fra.me.REG[10];
10723 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10724 fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
10725 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10726 if (!once_value_6) {
10727 fra.me.REG[10] = BOX_NativeString("' already defined at ");
10728 REGB1 = TAG_Int(21);
10729 fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB1);
10730 once_value_6 = fra.me.REG[10];
10731 register_static_object(&once_value_6);
10732 } else fra.me.REG[10] = once_value_6;
10733 fra.me.REG[10] = fra.me.REG[10];
10734 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10735 fra.me.REG[7] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[7])(fra.me.REG[7]);
10736 fra.me.REG[7] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[7])(fra.me.REG[7]);
10737 fra.me.REG[10] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10738 fra.me.REG[10] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[10])(fra.me.REG[10]);
10739 fra.me.REG[10] = CALL_location___Location___relative_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
10740 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10741 if (!once_value_7) {
10742 fra.me.REG[10] = BOX_NativeString(".");
10743 REGB1 = TAG_Int(1);
10744 fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB1);
10745 once_value_7 = fra.me.REG[10];
10746 register_static_object(&once_value_7);
10747 } else fra.me.REG[10] = once_value_7;
10748 fra.me.REG[10] = fra.me.REG[10];
10749 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
10750 fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
10751 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8], fra.me.REG[9]);
10752 /* syntax/mmbuilder.nit:1395 */
10753 goto label1;
10754 }
10755 /* ../lib/standard/collection/array.nit:275 */
10756 REGB1 = TAG_Int(1);
10757 /* ../lib/standard/kernel.nit:245 */
10758 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
10759 /* ../lib/standard/collection/array.nit:275 */
10760 REGB0 = REGB1;
10761 } else {
10762 /* ../lib/standard/collection/array.nit:273 */
10763 goto label8;
10764 }
10765 }
10766 label8: while(0);
10767 /* syntax/mmbuilder.nit:1398 */
10768 CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
10769 /* syntax/mmbuilder.nit:1399 */
10770 fra.me.REG[3] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
10771 /* ../lib/standard/collection/array.nit:24 */
10772 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
10773 if (UNTAG_Bool(REGB0)) {
10774 } else {
10775 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
10776 }
10777 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
10778 /* syntax/mmbuilder.nit:1399 */
10779 ATTR_syntax___mmbuilder___AClosureDecl____position(fra.me.REG[2]) = REGB0;
10780 /* syntax/mmbuilder.nit:1400 */
10781 fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
10782 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
10783 /* syntax/mmbuilder.nit:1401 */
10784 fra.me.REG[4] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10785 fra.me.REG[4] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
10786 fra.me.REG[3] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
10787 fra.me.REG[1] = NEW_ClosureVariable_syntax___syntax_base___ClosureVariable___init(fra.me.REG[4], fra.me.REG[3], fra.me.REG[1]);
10788 ATTR_syntax___mmbuilder___AClosureDecl____variable(fra.me.REG[2]) = fra.me.REG[1];
10789 label1: while(0);
10790 stack_frame_head = fra.me.prev;
10791 return;
10792 }
10793 static const char LOCATE_syntax___mmbuilder___AType___check_visibility[] = "mmbuilder::AType::check_visibility";
10794 void syntax___mmbuilder___AType___check_visibility(val_t p0, val_t p1, val_t p2){
10795 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
10796 val_t REGB0;
10797 val_t REGB1;
10798 val_t REGB2;
10799 val_t tmp;
10800 static val_t once_value_2; /* Once value */
10801 static val_t once_value_3; /* Once value */
10802 static val_t once_value_4; /* Once value */
10803 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10804 fra.me.file = LOCATE_syntax___mmbuilder;
10805 fra.me.line = 1406;
10806 fra.me.meth = LOCATE_syntax___mmbuilder___AType___check_visibility;
10807 fra.me.has_broke = 0;
10808 fra.me.REG_size = 6;
10809 fra.me.nitni_local_ref_head = NULL;
10810 fra.me.REG[0] = NIT_NULL;
10811 fra.me.REG[1] = NIT_NULL;
10812 fra.me.REG[2] = NIT_NULL;
10813 fra.me.REG[3] = NIT_NULL;
10814 fra.me.REG[4] = NIT_NULL;
10815 fra.me.REG[5] = NIT_NULL;
10816 fra.me.REG[0] = p0;
10817 fra.me.REG[1] = p1;
10818 fra.me.REG[2] = p2;
10819 /* syntax/mmbuilder.nit:1409 */
10820 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
10821 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
10822 REGB1 = TAG_Int(3);
10823 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
10824 if (UNTAG_Bool(REGB2)) {
10825 } else {
10826 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10827 }
10828 /* ../lib/standard/kernel.nit:243 */
10829 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
10830 /* syntax/mmbuilder.nit:1409 */
10831 if (UNTAG_Bool(REGB1)) {
10832 goto label1;
10833 }
10834 /* syntax/mmbuilder.nit:1410 */
10835 fra.me.REG[3] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
10836 /* syntax/mmbuilder.nit:1411 */
10837 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10838 if (UNTAG_Bool(REGB1)) {
10839 } else {
10840 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10841 if (UNTAG_Bool(REGB0)) {
10842 REGB0 = TAG_Bool(0);
10843 REGB1 = REGB0;
10844 } else {
10845 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10846 REGB1 = REGB0;
10847 }
10848 }
10849 if (UNTAG_Bool(REGB1)) {
10850 goto label1;
10851 }
10852 /* syntax/mmbuilder.nit:1412 */
10853 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10854 if (UNTAG_Bool(REGB1)) {
10855 nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1412);
10856 }
10857 fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]);
10858 /* syntax/mmbuilder.nit:1413 */
10859 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
10860 REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[4])(fra.me.REG[4]);
10861 REGB0 = TAG_Int(3);
10862 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
10863 if (UNTAG_Bool(REGB2)) {
10864 } else {
10865 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
10866 }
10867 /* ../lib/standard/kernel.nit:243 */
10868 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
10869 /* syntax/mmbuilder.nit:1413 */
10870 if (UNTAG_Bool(REGB0)) {
10871 /* syntax/mmbuilder.nit:1414 */
10872 REGB0 = TAG_Int(5);
10873 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
10874 if (!once_value_2) {
10875 fra.me.REG[5] = BOX_NativeString("Access error: Class ");
10876 REGB0 = TAG_Int(20);
10877 fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
10878 once_value_2 = fra.me.REG[5];
10879 register_static_object(&once_value_2);
10880 } else fra.me.REG[5] = once_value_2;
10881 fra.me.REG[5] = fra.me.REG[5];
10882 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
10883 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
10884 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
10885 if (!once_value_3) {
10886 fra.me.REG[3] = BOX_NativeString(" is private and cannot be used in the signature of the non-private property ");
10887 REGB0 = TAG_Int(76);
10888 fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
10889 once_value_3 = fra.me.REG[3];
10890 register_static_object(&once_value_3);
10891 } else fra.me.REG[3] = once_value_3;
10892 fra.me.REG[3] = fra.me.REG[3];
10893 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
10894 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
10895 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
10896 if (!once_value_4) {
10897 fra.me.REG[3] = BOX_NativeString(".");
10898 REGB0 = TAG_Int(1);
10899 fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
10900 once_value_4 = fra.me.REG[3];
10901 register_static_object(&once_value_4);
10902 } else fra.me.REG[3] = once_value_4;
10903 fra.me.REG[3] = fra.me.REG[3];
10904 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
10905 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
10906 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
10907 }
10908 /* syntax/mmbuilder.nit:1416 */
10909 fra.me.REG[0] = CALL_parser___parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
10910 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));
10911 label1: while(0);
10912 stack_frame_head = fra.me.prev;
10913 return;
10914 }
10915 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){
10916 struct {struct stack_frame_t me;} fra;
10917 fun_t CREG[1];
10918 val_t tmp;
10919 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10920 fra.me.file = LOCATE_syntax___mmbuilder;
10921 fra.me.line = 0;
10922 fra.me.meth = LOCATE_syntax___mmbuilder___AType___check_visibility;
10923 fra.me.has_broke = 0;
10924 fra.me.REG_size = 1;
10925 fra.me.nitni_local_ref_head = NULL;
10926 fra.me.REG[0] = NIT_NULL;
10927 fra.me.closure_ctx = closctx_param;
10928 fra.me.closure_funs = CREG;
10929 fra.me.REG[0] = p0;
10930 CREG[0] = clos_fun0;
10931 /* syntax/mmbuilder.nit:1417 */
10932 CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1], closctx->REG[2]);
10933 stack_frame_head = fra.me.prev;
10934 return;
10935 }
10936 static const char LOCATE_syntax___mmbuilder___AExpr___accept_class_builder[] = "mmbuilder::AExpr::(mmbuilder::ANode::accept_class_builder)";
10937 void syntax___mmbuilder___AExpr___accept_class_builder(val_t p0, val_t p1){
10938 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10939 val_t tmp;
10940 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10941 fra.me.file = LOCATE_syntax___mmbuilder;
10942 fra.me.line = 1423;
10943 fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___accept_class_builder;
10944 fra.me.has_broke = 0;
10945 fra.me.REG_size = 2;
10946 fra.me.nitni_local_ref_head = NULL;
10947 fra.me.REG[0] = NIT_NULL;
10948 fra.me.REG[1] = NIT_NULL;
10949 fra.me.REG[0] = p0;
10950 fra.me.REG[1] = p1;
10951 stack_frame_head = fra.me.prev;
10952 return;
10953 }
10954 static const char LOCATE_syntax___mmbuilder___AExpr___accept_property_builder[] = "mmbuilder::AExpr::(mmbuilder::ANode::accept_property_builder)";
10955 void syntax___mmbuilder___AExpr___accept_property_builder(val_t p0, val_t p1){
10956 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10957 val_t tmp;
10958 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10959 fra.me.file = LOCATE_syntax___mmbuilder;
10960 fra.me.line = 1424;
10961 fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___accept_property_builder;
10962 fra.me.has_broke = 0;
10963 fra.me.REG_size = 2;
10964 fra.me.nitni_local_ref_head = NULL;
10965 fra.me.REG[0] = NIT_NULL;
10966 fra.me.REG[1] = NIT_NULL;
10967 fra.me.REG[0] = p0;
10968 fra.me.REG[1] = p1;
10969 stack_frame_head = fra.me.prev;
10970 return;
10971 }
10972 static const char LOCATE_syntax___mmbuilder___AExpr___accept_property_verifier[] = "mmbuilder::AExpr::(mmbuilder::ANode::accept_property_verifier)";
10973 void syntax___mmbuilder___AExpr___accept_property_verifier(val_t p0, val_t p1){
10974 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10975 val_t tmp;
10976 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10977 fra.me.file = LOCATE_syntax___mmbuilder;
10978 fra.me.line = 1425;
10979 fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___accept_property_verifier;
10980 fra.me.has_broke = 0;
10981 fra.me.REG_size = 2;
10982 fra.me.nitni_local_ref_head = NULL;
10983 fra.me.REG[0] = NIT_NULL;
10984 fra.me.REG[1] = NIT_NULL;
10985 fra.me.REG[0] = p0;
10986 fra.me.REG[1] = p1;
10987 stack_frame_head = fra.me.prev;
10988 return;
10989 }
10990 static const char LOCATE_syntax___mmbuilder___AExpr___get_easy_stype[] = "mmbuilder::AExpr::get_easy_stype";
10991 val_t syntax___mmbuilder___AExpr___get_easy_stype(val_t p0, val_t p1){
10992 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
10993 val_t tmp;
10994 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10995 fra.me.file = LOCATE_syntax___mmbuilder;
10996 fra.me.line = 1427;
10997 fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___get_easy_stype;
10998 fra.me.has_broke = 0;
10999 fra.me.REG_size = 2;
11000 fra.me.nitni_local_ref_head = NULL;
11001 fra.me.REG[0] = NIT_NULL;
11002 fra.me.REG[1] = NIT_NULL;
11003 fra.me.REG[0] = p0;
11004 fra.me.REG[1] = p1;
11005 /* syntax/mmbuilder.nit:1427 */
11006 fra.me.REG[1] = NIT_NULL;
11007 goto label1;
11008 label1: while(0);
11009 stack_frame_head = fra.me.prev;
11010 return fra.me.REG[1];
11011 }
11012 static const char LOCATE_syntax___mmbuilder___ABoolExpr___get_easy_stype[] = "mmbuilder::ABoolExpr::(mmbuilder::AExpr::get_easy_stype)";
11013 val_t syntax___mmbuilder___ABoolExpr___get_easy_stype(val_t p0, val_t p1){
11014 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11015 val_t tmp;
11016 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11017 fra.me.file = LOCATE_syntax___mmbuilder;
11018 fra.me.line = 1431;
11019 fra.me.meth = LOCATE_syntax___mmbuilder___ABoolExpr___get_easy_stype;
11020 fra.me.has_broke = 0;
11021 fra.me.REG_size = 2;
11022 fra.me.nitni_local_ref_head = NULL;
11023 fra.me.REG[0] = NIT_NULL;
11024 fra.me.REG[1] = NIT_NULL;
11025 fra.me.REG[0] = p0;
11026 fra.me.REG[1] = p1;
11027 /* syntax/mmbuilder.nit:1431 */
11028 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(fra.me.REG[1])(fra.me.REG[1]);
11029 goto label1;
11030 label1: while(0);
11031 stack_frame_head = fra.me.prev;
11032 return fra.me.REG[1];
11033 }
11034 static const char LOCATE_syntax___mmbuilder___AStringExpr___get_easy_stype[] = "mmbuilder::AStringExpr::(mmbuilder::AExpr::get_easy_stype)";
11035 val_t syntax___mmbuilder___AStringExpr___get_easy_stype(val_t p0, val_t p1){
11036 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11037 val_t tmp;
11038 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11039 fra.me.file = LOCATE_syntax___mmbuilder;
11040 fra.me.line = 1435;
11041 fra.me.meth = LOCATE_syntax___mmbuilder___AStringExpr___get_easy_stype;
11042 fra.me.has_broke = 0;
11043 fra.me.REG_size = 2;
11044 fra.me.nitni_local_ref_head = NULL;
11045 fra.me.REG[0] = NIT_NULL;
11046 fra.me.REG[1] = NIT_NULL;
11047 fra.me.REG[0] = p0;
11048 fra.me.REG[1] = p1;
11049 /* syntax/mmbuilder.nit:1435 */
11050 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_string(fra.me.REG[1])(fra.me.REG[1]);
11051 goto label1;
11052 label1: while(0);
11053 stack_frame_head = fra.me.prev;
11054 return fra.me.REG[1];
11055 }
11056 static const char LOCATE_syntax___mmbuilder___ACharExpr___get_easy_stype[] = "mmbuilder::ACharExpr::(mmbuilder::AExpr::get_easy_stype)";
11057 val_t syntax___mmbuilder___ACharExpr___get_easy_stype(val_t p0, val_t p1){
11058 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11059 val_t tmp;
11060 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11061 fra.me.file = LOCATE_syntax___mmbuilder;
11062 fra.me.line = 1439;
11063 fra.me.meth = LOCATE_syntax___mmbuilder___ACharExpr___get_easy_stype;
11064 fra.me.has_broke = 0;
11065 fra.me.REG_size = 2;
11066 fra.me.nitni_local_ref_head = NULL;
11067 fra.me.REG[0] = NIT_NULL;
11068 fra.me.REG[1] = NIT_NULL;
11069 fra.me.REG[0] = p0;
11070 fra.me.REG[1] = p1;
11071 /* syntax/mmbuilder.nit:1439 */
11072 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_char(fra.me.REG[1])(fra.me.REG[1]);
11073 goto label1;
11074 label1: while(0);
11075 stack_frame_head = fra.me.prev;
11076 return fra.me.REG[1];
11077 }
11078 static const char LOCATE_syntax___mmbuilder___AIntExpr___get_easy_stype[] = "mmbuilder::AIntExpr::(mmbuilder::AExpr::get_easy_stype)";
11079 val_t syntax___mmbuilder___AIntExpr___get_easy_stype(val_t p0, val_t p1){
11080 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11081 val_t tmp;
11082 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11083 fra.me.file = LOCATE_syntax___mmbuilder;
11084 fra.me.line = 1443;
11085 fra.me.meth = LOCATE_syntax___mmbuilder___AIntExpr___get_easy_stype;
11086 fra.me.has_broke = 0;
11087 fra.me.REG_size = 2;
11088 fra.me.nitni_local_ref_head = NULL;
11089 fra.me.REG[0] = NIT_NULL;
11090 fra.me.REG[1] = NIT_NULL;
11091 fra.me.REG[0] = p0;
11092 fra.me.REG[1] = p1;
11093 /* syntax/mmbuilder.nit:1443 */
11094 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(fra.me.REG[1])(fra.me.REG[1]);
11095 goto label1;
11096 label1: while(0);
11097 stack_frame_head = fra.me.prev;
11098 return fra.me.REG[1];
11099 }
11100 static const char LOCATE_syntax___mmbuilder___AFloatExpr___get_easy_stype[] = "mmbuilder::AFloatExpr::(mmbuilder::AExpr::get_easy_stype)";
11101 val_t syntax___mmbuilder___AFloatExpr___get_easy_stype(val_t p0, val_t p1){
11102 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11103 val_t tmp;
11104 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11105 fra.me.file = LOCATE_syntax___mmbuilder;
11106 fra.me.line = 1447;
11107 fra.me.meth = LOCATE_syntax___mmbuilder___AFloatExpr___get_easy_stype;
11108 fra.me.has_broke = 0;
11109 fra.me.REG_size = 2;
11110 fra.me.nitni_local_ref_head = NULL;
11111 fra.me.REG[0] = NIT_NULL;
11112 fra.me.REG[1] = NIT_NULL;
11113 fra.me.REG[0] = p0;
11114 fra.me.REG[1] = p1;
11115 /* syntax/mmbuilder.nit:1447 */
11116 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_float(fra.me.REG[1])(fra.me.REG[1]);
11117 goto label1;
11118 label1: while(0);
11119 stack_frame_head = fra.me.prev;
11120 return fra.me.REG[1];
11121 }
11122 static const char LOCATE_syntax___mmbuilder___ANewExpr___get_easy_stype[] = "mmbuilder::ANewExpr::(mmbuilder::AExpr::get_easy_stype)";
11123 val_t syntax___mmbuilder___ANewExpr___get_easy_stype(val_t p0, val_t p1){
11124 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11125 val_t tmp;
11126 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11127 fra.me.file = LOCATE_syntax___mmbuilder;
11128 fra.me.line = 1451;
11129 fra.me.meth = LOCATE_syntax___mmbuilder___ANewExpr___get_easy_stype;
11130 fra.me.has_broke = 0;
11131 fra.me.REG_size = 2;
11132 fra.me.nitni_local_ref_head = NULL;
11133 fra.me.REG[0] = NIT_NULL;
11134 fra.me.REG[1] = NIT_NULL;
11135 fra.me.REG[0] = p0;
11136 fra.me.REG[1] = p1;
11137 /* syntax/mmbuilder.nit:1451 */
11138 fra.me.REG[0] = CALL_parser___parser_nodes___ANewExpr___n_type(fra.me.REG[0])(fra.me.REG[0]);
11139 fra.me.REG[1] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
11140 goto label1;
11141 label1: while(0);
11142 stack_frame_head = fra.me.prev;
11143 return fra.me.REG[1];
11144 }