Merge branch 'alexis/various-fixes' into wip
[nit.git] / c_src / syntax_base._sep.c
1 /* This C file is generated by NIT to compile module syntax_base. */
2 #include "syntax_base._sep.h"
3 val_t syntax_base___MMSrcModule___nodes(val_t p0, val_t p1){
4 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
5 val_t REGB0;
6 val_t REGB1;
7 val_t tmp;
8 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9 fra.me.file = LOCATE_syntax_base;
10 fra.me.line = 47;
11 fra.me.meth = LOCATE_syntax_base___MMSrcModule___nodes;
12 fra.me.has_broke = 0;
13 fra.me.REG_size = 3;
14 fra.me.REG[0] = NIT_NULL;
15 fra.me.REG[1] = NIT_NULL;
16 fra.me.REG[2] = NIT_NULL;
17 fra.me.REG[0] = p0;
18 fra.me.REG[1] = p1;
19 fra.me.REG[2] = ATTR_syntax_base___MMSrcModule____nodes(fra.me.REG[0]);
20 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21 /* ./syntax//syntax_base.nit:49 */
22 if (UNTAG_Bool(REGB0)) {
23 } else {
24 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25 if (UNTAG_Bool(REGB1)) {
26 REGB1 = TAG_Bool(false);
27 REGB0 = REGB1;
28 } else {
29 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30 REGB0 = REGB1;
31 }
32 }
33 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34 if (UNTAG_Bool(REGB0)) {
35 fra.me.REG[2] = ATTR_syntax_base___MMSrcModule____nodes(fra.me.REG[0]);
36 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37 if (UNTAG_Bool(REGB0)) {
38 fprintf(stderr, "Reciever is null");
39 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 49);
40 nit_exit(1);
41 }
42 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
43 } else {
44 REGB1 = TAG_Bool(false);
45 REGB0 = REGB1;
46 }
47 if (UNTAG_Bool(REGB0)) {
48 fra.me.REG[0] = ATTR_syntax_base___MMSrcModule____nodes(fra.me.REG[0]);
49 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
50 if (UNTAG_Bool(REGB0)) {
51 fprintf(stderr, "Reciever is null");
52 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 49);
53 nit_exit(1);
54 }
55 fra.me.REG[1] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
56 goto label1;
57 } else {
58 fra.me.REG[1] = NIT_NULL;
59 goto label1;
60 }
61 label1: while(0);
62 stack_frame_head = fra.me.prev;
63 return fra.me.REG[1];
64 }
65 void syntax_base___MMSrcModule___nodes__eq(val_t p0, val_t p1, val_t p2){
66 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
67 val_t REGB0;
68 val_t tmp;
69 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
70 fra.me.file = LOCATE_syntax_base;
71 fra.me.line = 51;
72 fra.me.meth = LOCATE_syntax_base___MMSrcModule___nodes__eq;
73 fra.me.has_broke = 0;
74 fra.me.REG_size = 4;
75 fra.me.REG[0] = NIT_NULL;
76 fra.me.REG[1] = NIT_NULL;
77 fra.me.REG[2] = NIT_NULL;
78 fra.me.REG[3] = NIT_NULL;
79 fra.me.REG[0] = p0;
80 fra.me.REG[1] = p1;
81 fra.me.REG[2] = p2;
82 fra.me.REG[3] = ATTR_syntax_base___MMSrcModule____nodes(fra.me.REG[0]);
83 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
84 /* ./syntax//syntax_base.nit:53 */
85 if (UNTAG_Bool(REGB0)) {
86 fprintf(stderr, "Reciever is null");
87 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 53);
88 nit_exit(1);
89 }
90 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
91 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
92 if (UNTAG_Bool(REGB0)) {
93 } else {
94 fprintf(stderr, "Assert failed");
95 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 53);
96 nit_exit(1);
97 }
98 fra.me.REG[0] = ATTR_syntax_base___MMSrcModule____nodes(fra.me.REG[0]);
99 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
100 /* ./syntax//syntax_base.nit:54 */
101 if (UNTAG_Bool(REGB0)) {
102 fprintf(stderr, "Reciever is null");
103 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 54);
104 nit_exit(1);
105 }
106 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
107 stack_frame_head = fra.me.prev;
108 return;
109 }
110 void syntax_base___MMSrcModule___clear_ast(val_t p0){
111 struct {struct stack_frame_t me;} fra;
112 val_t tmp;
113 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
114 fra.me.file = LOCATE_syntax_base;
115 fra.me.line = 31;
116 fra.me.meth = LOCATE_syntax_base___MMSrcModule___clear_ast;
117 fra.me.has_broke = 0;
118 fra.me.REG_size = 1;
119 fra.me.REG[0] = NIT_NULL;
120 fra.me.REG[0] = p0;
121 /* ./syntax//syntax_base.nit:32 */
122 ATTR_syntax_base___MMSrcModule____nodes(fra.me.REG[0]) = NIT_NULL;
123 stack_frame_head = fra.me.prev;
124 return;
125 }
126 val_t syntax_base___MMSrcModule___node(val_t p0){
127 struct {struct stack_frame_t me;} fra;
128 val_t REGB0;
129 val_t tmp;
130 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
131 fra.me.file = LOCATE_syntax_base;
132 fra.me.line = 34;
133 fra.me.meth = LOCATE_syntax_base___MMSrcModule___node;
134 fra.me.has_broke = 0;
135 fra.me.REG_size = 1;
136 fra.me.REG[0] = NIT_NULL;
137 fra.me.REG[0] = p0;
138 fra.me.REG[0] = CALL_syntax_base___MMModule___nodes(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[0]);
139 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_AModule, ID_AModule)) /*cast AModule*/;
140 /* ./syntax//syntax_base.nit:35 */
141 if (UNTAG_Bool(REGB0)) {
142 } else {
143 fprintf(stderr, "Cast failed");
144 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 35);
145 nit_exit(1);
146 }
147 goto label1;
148 label1: while(0);
149 stack_frame_head = fra.me.prev;
150 return fra.me.REG[0];
151 }
152 val_t syntax_base___MMSrcModule___src_local_classes(val_t p0){
153 struct {struct stack_frame_t me;} fra;
154 val_t REGB0;
155 val_t tmp;
156 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
157 fra.me.file = LOCATE_syntax_base;
158 fra.me.line = 37;
159 fra.me.meth = LOCATE_syntax_base___MMSrcModule___src_local_classes;
160 fra.me.has_broke = 0;
161 fra.me.REG_size = 1;
162 fra.me.REG[0] = NIT_NULL;
163 fra.me.REG[0] = p0;
164 REGB0 = TAG_Bool(ATTR_syntax_base___MMSrcModule____src_local_classes(fra.me.REG[0])!=NIT_NULL);
165 /* ./syntax//syntax_base.nit:37 */
166 if (UNTAG_Bool(REGB0)) {
167 } else {
168 fprintf(stderr, "Uninitialized attribute %s", "_src_local_classes");
169 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 37);
170 nit_exit(1);
171 }
172 fra.me.REG[0] = ATTR_syntax_base___MMSrcModule____src_local_classes(fra.me.REG[0]);
173 stack_frame_head = fra.me.prev;
174 return fra.me.REG[0];
175 }
176 void syntax_base___MMSrcModule___init(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table){
177 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMSrcModule].i;
178 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
179 val_t tmp;
180 if (init_table[itpos0]) return;
181 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
182 fra.me.file = LOCATE_syntax_base;
183 fra.me.line = 40;
184 fra.me.meth = LOCATE_syntax_base___MMSrcModule___init;
185 fra.me.has_broke = 0;
186 fra.me.REG_size = 7;
187 fra.me.REG[0] = NIT_NULL;
188 fra.me.REG[1] = NIT_NULL;
189 fra.me.REG[2] = NIT_NULL;
190 fra.me.REG[3] = NIT_NULL;
191 fra.me.REG[4] = NIT_NULL;
192 fra.me.REG[5] = NIT_NULL;
193 fra.me.REG[6] = NIT_NULL;
194 fra.me.REG[0] = p0;
195 fra.me.REG[1] = p1;
196 fra.me.REG[2] = p2;
197 fra.me.REG[3] = p3;
198 fra.me.REG[4] = p4;
199 fra.me.REG[5] = p5;
200 fra.me.REG[6] = fra.me.REG[0];
201 /* ./syntax//syntax_base.nit:42 */
202 CALL_abstractmetamodel___MMModule___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3], fra.me.REG[1], fra.me.REG[5], init_table);
203 /* ./syntax//syntax_base.nit:43 */
204 CALL_syntax_base___MMModule___nodes__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[6], fra.me.REG[2]);
205 fra.me.REG[2] = NEW_HashMap_hash_collection___HashMap___init();
206 /* ./syntax//syntax_base.nit:44 */
207 ATTR_syntax_base___MMSrcModule____src_local_classes(fra.me.REG[6]) = fra.me.REG[2];
208 stack_frame_head = fra.me.prev;
209 init_table[itpos0] = 1;
210 return;
211 }
212 val_t syntax_base___MMModule___nodes(val_t p0, val_t p1){
213 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
214 val_t tmp;
215 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
216 fra.me.file = LOCATE_syntax_base;
217 fra.me.line = 59;
218 fra.me.meth = LOCATE_syntax_base___MMModule___nodes;
219 fra.me.has_broke = 0;
220 fra.me.REG_size = 2;
221 fra.me.REG[0] = NIT_NULL;
222 fra.me.REG[1] = NIT_NULL;
223 fra.me.REG[0] = p0;
224 fra.me.REG[1] = p1;
225 fra.me.REG[1] = NIT_NULL;
226 /* ./syntax//syntax_base.nit:60 */
227 goto label1;
228 label1: while(0);
229 stack_frame_head = fra.me.prev;
230 return fra.me.REG[1];
231 }
232 void syntax_base___MMModule___nodes__eq(val_t p0, val_t p1, val_t p2){
233 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
234 val_t tmp;
235 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
236 fra.me.file = LOCATE_syntax_base;
237 fra.me.line = 61;
238 fra.me.meth = LOCATE_syntax_base___MMModule___nodes__eq;
239 fra.me.has_broke = 0;
240 fra.me.REG_size = 3;
241 fra.me.REG[0] = NIT_NULL;
242 fra.me.REG[1] = NIT_NULL;
243 fra.me.REG[2] = NIT_NULL;
244 fra.me.REG[0] = p0;
245 fra.me.REG[1] = p1;
246 fra.me.REG[2] = p2;
247 /* ./syntax//syntax_base.nit:62 */
248 fprintf(stderr, "Aborted");
249 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 62);
250 nit_exit(1);
251 stack_frame_head = fra.me.prev;
252 return;
253 }
254 val_t syntax_base___MMGlobalClass___check_visibility(val_t p0, val_t p1, val_t p2, val_t p3){
255 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
256 val_t REGB0;
257 val_t REGB1;
258 val_t REGB2;
259 val_t REGB3;
260 val_t tmp;
261 static val_t once_value_2; /* Once value */
262 static val_t once_value_3; /* Once value */
263 static val_t once_value_4; /* Once value */
264 static val_t once_value_5; /* Once value */
265 static val_t once_value_6; /* Once value */
266 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
267 fra.me.file = LOCATE_syntax_base;
268 fra.me.line = 66;
269 fra.me.meth = LOCATE_syntax_base___MMGlobalClass___check_visibility;
270 fra.me.has_broke = 0;
271 fra.me.REG_size = 6;
272 fra.me.REG[0] = NIT_NULL;
273 fra.me.REG[1] = NIT_NULL;
274 fra.me.REG[2] = NIT_NULL;
275 fra.me.REG[3] = NIT_NULL;
276 fra.me.REG[4] = NIT_NULL;
277 fra.me.REG[5] = NIT_NULL;
278 fra.me.REG[0] = p0;
279 fra.me.REG[1] = p1;
280 fra.me.REG[2] = p2;
281 fra.me.REG[3] = p3;
282 fra.me.REG[4] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[0])(fra.me.REG[0]);
283 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___module(fra.me.REG[4])(fra.me.REG[4]);
284 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_MMSrcModule, ID_MMSrcModule)) /*cast MMSrcModule*/;
285 /* ./syntax//syntax_base.nit:69 */
286 if (UNTAG_Bool(REGB0)) {
287 } else {
288 fprintf(stderr, "Assert failed");
289 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 69);
290 nit_exit(1);
291 }
292 REGB0 = CALL_abstractmetamodel___MMModule___visibility_for(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
293 REGB1 = TAG_Int(3);
294 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
295 /* ./syntax//syntax_base.nit:71 */
296 if (UNTAG_Bool(REGB2)) {
297 } else {
298 REGB1 = TAG_Bool((REGB0)==(REGB1));
299 REGB2 = REGB1;
300 /* ./syntax//syntax_base.nit:71 */
301 }
302 if (UNTAG_Bool(REGB2)) {
303 REGB2 = TAG_Bool(true);
304 /* ./syntax//syntax_base.nit:72 */
305 goto label1;
306 } else {
307 REGB1 = TAG_Int(0);
308 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
309 /* ./syntax//syntax_base.nit:73 */
310 if (UNTAG_Bool(REGB3)) {
311 } else {
312 REGB1 = TAG_Bool((REGB0)==(REGB1));
313 REGB3 = REGB1;
314 /* ./syntax//syntax_base.nit:73 */
315 }
316 if (UNTAG_Bool(REGB3)) {
317 REGB3 = TAG_Int(5);
318 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB3);
319 /* ./syntax//syntax_base.nit:74 */
320 if (!once_value_2) {
321 fra.me.REG[5] = BOX_NativeString("Visibility error: Class ");
322 REGB3 = TAG_Int(24);
323 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB3);
324 once_value_2 = fra.me.REG[5];
325 register_static_object(&once_value_2);
326 } else fra.me.REG[5] = once_value_2;
327 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
328 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
329 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
330 if (!once_value_3) {
331 fra.me.REG[5] = BOX_NativeString(" comes from the hidden module ");
332 REGB3 = TAG_Int(30);
333 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB3);
334 once_value_3 = fra.me.REG[5];
335 register_static_object(&once_value_3);
336 } else fra.me.REG[5] = once_value_3;
337 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
338 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
339 array___Array___add(fra.me.REG[4], fra.me.REG[3]);
340 if (!once_value_4) {
341 fra.me.REG[3] = BOX_NativeString(".");
342 REGB3 = TAG_Int(1);
343 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB3);
344 once_value_4 = fra.me.REG[3];
345 register_static_object(&once_value_4);
346 } else fra.me.REG[3] = once_value_4;
347 array___Array___add(fra.me.REG[4], fra.me.REG[3]);
348 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
349 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[4]);
350 REGB3 = TAG_Bool(false);
351 REGB2 = REGB3;
352 /* ./syntax//syntax_base.nit:75 */
353 goto label1;
354 } else {
355 REGB3 = CALL_abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
356 REGB1 = TAG_Int(3);
357 REGB1 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB1));
358 /* ./syntax//syntax_base.nit:76 */
359 if (UNTAG_Bool(REGB1)) {
360 REGB1 = TAG_Int(3);
361 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB1);
362 /* ./syntax//syntax_base.nit:77 */
363 if (!once_value_5) {
364 fra.me.REG[3] = BOX_NativeString("Visibility error: Class ");
365 REGB1 = TAG_Int(24);
366 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1);
367 once_value_5 = fra.me.REG[3];
368 register_static_object(&once_value_5);
369 } else fra.me.REG[3] = once_value_5;
370 array___Array___add(fra.me.REG[4], fra.me.REG[3]);
371 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
372 array___Array___add(fra.me.REG[4], fra.me.REG[0]);
373 if (!once_value_6) {
374 fra.me.REG[0] = BOX_NativeString(" is private.");
375 REGB1 = TAG_Int(12);
376 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB1);
377 once_value_6 = fra.me.REG[0];
378 register_static_object(&once_value_6);
379 } else fra.me.REG[0] = once_value_6;
380 array___Array___add(fra.me.REG[4], fra.me.REG[0]);
381 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
382 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[4]);
383 REGB1 = TAG_Bool(false);
384 REGB2 = REGB1;
385 /* ./syntax//syntax_base.nit:78 */
386 goto label1;
387 }
388 }
389 }
390 REGB1 = TAG_Bool(true);
391 REGB2 = REGB1;
392 /* ./syntax//syntax_base.nit:80 */
393 goto label1;
394 label1: while(0);
395 stack_frame_head = fra.me.prev;
396 return REGB2;
397 }
398 val_t syntax_base___MMSrcLocalClass___node(val_t p0){
399 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
400 val_t REGB0;
401 val_t tmp;
402 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
403 fra.me.file = LOCATE_syntax_base;
404 fra.me.line = 87;
405 fra.me.meth = LOCATE_syntax_base___MMSrcLocalClass___node;
406 fra.me.has_broke = 0;
407 fra.me.REG_size = 2;
408 fra.me.REG[0] = NIT_NULL;
409 fra.me.REG[1] = NIT_NULL;
410 fra.me.REG[0] = p0;
411 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___module(fra.me.REG[0])(fra.me.REG[0]);
412 fra.me.REG[0] = CALL_syntax_base___MMModule___nodes(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
413 REGB0 = TAG_Bool((fra.me.REG[0]==NIT_NULL) || VAL_ISA(fra.me.REG[0], COLOR_AClassdef, ID_AClassdef)) /*cast nullable AClassdef*/;
414 /* ./syntax//syntax_base.nit:88 */
415 if (UNTAG_Bool(REGB0)) {
416 } else {
417 fprintf(stderr, "Cast failed");
418 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 88);
419 nit_exit(1);
420 }
421 goto label1;
422 label1: while(0);
423 stack_frame_head = fra.me.prev;
424 return fra.me.REG[0];
425 }
426 val_t syntax_base___MMSrcLocalClass___formal_dict(val_t p0){
427 struct {struct stack_frame_t me;} fra;
428 val_t REGB0;
429 val_t tmp;
430 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
431 fra.me.file = LOCATE_syntax_base;
432 fra.me.line = 90;
433 fra.me.meth = LOCATE_syntax_base___MMSrcLocalClass___formal_dict;
434 fra.me.has_broke = 0;
435 fra.me.REG_size = 1;
436 fra.me.REG[0] = NIT_NULL;
437 fra.me.REG[0] = p0;
438 REGB0 = TAG_Bool(ATTR_syntax_base___MMSrcLocalClass____formal_dict(fra.me.REG[0])!=NIT_NULL);
439 /* ./syntax//syntax_base.nit:90 */
440 if (UNTAG_Bool(REGB0)) {
441 } else {
442 fprintf(stderr, "Uninitialized attribute %s", "_formal_dict");
443 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 90);
444 nit_exit(1);
445 }
446 fra.me.REG[0] = ATTR_syntax_base___MMSrcLocalClass____formal_dict(fra.me.REG[0]);
447 stack_frame_head = fra.me.prev;
448 return fra.me.REG[0];
449 }
450 val_t syntax_base___MMSrcLocalClass___src_local_properties(val_t p0){
451 struct {struct stack_frame_t me;} fra;
452 val_t REGB0;
453 val_t tmp;
454 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
455 fra.me.file = LOCATE_syntax_base;
456 fra.me.line = 93;
457 fra.me.meth = LOCATE_syntax_base___MMSrcLocalClass___src_local_properties;
458 fra.me.has_broke = 0;
459 fra.me.REG_size = 1;
460 fra.me.REG[0] = NIT_NULL;
461 fra.me.REG[0] = p0;
462 REGB0 = TAG_Bool(ATTR_syntax_base___MMSrcLocalClass____src_local_properties(fra.me.REG[0])!=NIT_NULL);
463 /* ./syntax//syntax_base.nit:93 */
464 if (UNTAG_Bool(REGB0)) {
465 } else {
466 fprintf(stderr, "Uninitialized attribute %s", "_src_local_properties");
467 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 93);
468 nit_exit(1);
469 }
470 fra.me.REG[0] = ATTR_syntax_base___MMSrcLocalClass____src_local_properties(fra.me.REG[0]);
471 stack_frame_head = fra.me.prev;
472 return fra.me.REG[0];
473 }
474 void syntax_base___MMSrcLocalClass___init(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
475 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMSrcLocalClass].i;
476 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
477 val_t REGB0;
478 val_t tmp;
479 if (init_table[itpos1]) return;
480 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
481 fra.me.file = LOCATE_syntax_base;
482 fra.me.line = 96;
483 fra.me.meth = LOCATE_syntax_base___MMSrcLocalClass___init;
484 fra.me.has_broke = 0;
485 fra.me.REG_size = 5;
486 fra.me.REG[0] = NIT_NULL;
487 fra.me.REG[1] = NIT_NULL;
488 fra.me.REG[2] = NIT_NULL;
489 fra.me.REG[3] = NIT_NULL;
490 fra.me.REG[4] = NIT_NULL;
491 fra.me.REG[0] = p0;
492 fra.me.REG[1] = p1;
493 fra.me.REG[2] = p2;
494 fra.me.REG[3] = p3;
495 REGB0 = p4;
496 fra.me.REG[4] = fra.me.REG[0];
497 /* ./syntax//syntax_base.nit:98 */
498 CALL_abstractmetamodel___MMLocalClass___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, init_table);
499 /* ./syntax//syntax_base.nit:99 */
500 CALL_syntax_base___MMModule___nodes__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[3]);
501 fra.me.REG[3] = NEW_HashMap_hash_collection___HashMap___init();
502 /* ./syntax//syntax_base.nit:100 */
503 ATTR_syntax_base___MMSrcLocalClass____src_local_properties(fra.me.REG[4]) = fra.me.REG[3];
504 stack_frame_head = fra.me.prev;
505 init_table[itpos1] = 1;
506 return;
507 }
508 val_t syntax_base___MMGlobalProperty___check_visibility(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
509 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
510 val_t REGB0;
511 val_t REGB1;
512 val_t REGB2;
513 val_t REGB3;
514 val_t REGB4;
515 val_t tmp;
516 static val_t once_value_2; /* Once value */
517 static val_t once_value_3; /* Once value */
518 static val_t once_value_4; /* Once value */
519 static val_t once_value_5; /* Once value */
520 static val_t once_value_6; /* Once value */
521 static val_t once_value_7; /* Once value */
522 static val_t once_value_8; /* Once value */
523 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
524 fra.me.file = LOCATE_syntax_base;
525 fra.me.line = 105;
526 fra.me.meth = LOCATE_syntax_base___MMGlobalProperty___check_visibility;
527 fra.me.has_broke = 0;
528 fra.me.REG_size = 6;
529 fra.me.REG[0] = NIT_NULL;
530 fra.me.REG[1] = NIT_NULL;
531 fra.me.REG[2] = NIT_NULL;
532 fra.me.REG[3] = NIT_NULL;
533 fra.me.REG[4] = NIT_NULL;
534 fra.me.REG[5] = NIT_NULL;
535 fra.me.REG[0] = p0;
536 fra.me.REG[1] = p1;
537 fra.me.REG[2] = p2;
538 fra.me.REG[3] = p3;
539 REGB0 = p4;
540 fra.me.REG[4] = CALL_abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
541 fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___module(fra.me.REG[4])(fra.me.REG[4]);
542 REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_MMSrcModule, ID_MMSrcModule)) /*cast MMSrcModule*/;
543 /* ./syntax//syntax_base.nit:108 */
544 if (UNTAG_Bool(REGB1)) {
545 } else {
546 fprintf(stderr, "Assert failed");
547 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 108);
548 nit_exit(1);
549 }
550 REGB1 = CALL_abstractmetamodel___MMModule___visibility_for(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
551 REGB2 = TAG_Int(3);
552 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
553 /* ./syntax//syntax_base.nit:110 */
554 if (UNTAG_Bool(REGB3)) {
555 } else {
556 REGB2 = TAG_Bool((REGB1)==(REGB2));
557 REGB3 = REGB2;
558 /* ./syntax//syntax_base.nit:110 */
559 }
560 if (UNTAG_Bool(REGB3)) {
561 REGB3 = TAG_Bool(true);
562 /* ./syntax//syntax_base.nit:111 */
563 goto label1;
564 } else {
565 REGB2 = TAG_Int(0);
566 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
567 /* ./syntax//syntax_base.nit:112 */
568 if (UNTAG_Bool(REGB4)) {
569 } else {
570 REGB2 = TAG_Bool((REGB1)==(REGB2));
571 REGB4 = REGB2;
572 /* ./syntax//syntax_base.nit:112 */
573 }
574 if (UNTAG_Bool(REGB4)) {
575 REGB4 = TAG_Int(5);
576 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB4);
577 /* ./syntax//syntax_base.nit:114 */
578 if (!once_value_2) {
579 fra.me.REG[5] = BOX_NativeString("Visibility error: Property ");
580 REGB4 = TAG_Int(27);
581 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB4);
582 once_value_2 = fra.me.REG[5];
583 register_static_object(&once_value_2);
584 } else fra.me.REG[5] = once_value_2;
585 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
586 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
587 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
588 if (!once_value_3) {
589 fra.me.REG[5] = BOX_NativeString(" comes from the hidden module ");
590 REGB4 = TAG_Int(30);
591 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB4);
592 once_value_3 = fra.me.REG[5];
593 register_static_object(&once_value_3);
594 } else fra.me.REG[5] = once_value_3;
595 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
596 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
597 array___Array___add(fra.me.REG[4], fra.me.REG[3]);
598 if (!once_value_4) {
599 fra.me.REG[3] = BOX_NativeString(".");
600 REGB4 = TAG_Int(1);
601 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB4);
602 once_value_4 = fra.me.REG[3];
603 register_static_object(&once_value_4);
604 } else fra.me.REG[3] = once_value_4;
605 array___Array___add(fra.me.REG[4], fra.me.REG[3]);
606 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
607 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[4]);
608 REGB4 = TAG_Bool(false);
609 REGB3 = REGB4;
610 /* ./syntax//syntax_base.nit:115 */
611 goto label1;
612 } else {
613 REGB4 = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
614 REGB2 = TAG_Int(3);
615 REGB2 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB2));
616 /* ./syntax//syntax_base.nit:116 */
617 if (UNTAG_Bool(REGB2)) {
618 REGB2 = TAG_Int(3);
619 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB2);
620 /* ./syntax//syntax_base.nit:117 */
621 if (!once_value_5) {
622 fra.me.REG[3] = BOX_NativeString("Visibility error: Property ");
623 REGB2 = TAG_Int(27);
624 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
625 once_value_5 = fra.me.REG[3];
626 register_static_object(&once_value_5);
627 } else fra.me.REG[3] = once_value_5;
628 array___Array___add(fra.me.REG[4], fra.me.REG[3]);
629 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
630 array___Array___add(fra.me.REG[4], fra.me.REG[3]);
631 if (!once_value_6) {
632 fra.me.REG[3] = BOX_NativeString(" is private.");
633 REGB2 = TAG_Int(12);
634 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
635 once_value_6 = fra.me.REG[3];
636 register_static_object(&once_value_6);
637 } else fra.me.REG[3] = once_value_6;
638 array___Array___add(fra.me.REG[4], fra.me.REG[3]);
639 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
640 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[4]);
641 REGB2 = TAG_Bool(false);
642 REGB3 = REGB2;
643 /* ./syntax//syntax_base.nit:118 */
644 goto label1;
645 } else {
646 REGB2 = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
647 REGB4 = TAG_Int(2);
648 REGB4 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB4));
649 /* ./syntax//syntax_base.nit:119 */
650 if (UNTAG_Bool(REGB4)) {
651 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
652 } else {
653 REGB4 = TAG_Bool(false);
654 REGB0 = REGB4;
655 }
656 if (UNTAG_Bool(REGB0)) {
657 REGB0 = TAG_Int(3);
658 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
659 /* ./syntax//syntax_base.nit:120 */
660 if (!once_value_7) {
661 fra.me.REG[3] = BOX_NativeString("Visibility error: Property ");
662 REGB0 = TAG_Int(27);
663 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
664 once_value_7 = fra.me.REG[3];
665 register_static_object(&once_value_7);
666 } else fra.me.REG[3] = once_value_7;
667 array___Array___add(fra.me.REG[4], fra.me.REG[3]);
668 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
669 array___Array___add(fra.me.REG[4], fra.me.REG[0]);
670 if (!once_value_8) {
671 fra.me.REG[0] = BOX_NativeString(" is protected and can only acceded by self.");
672 REGB0 = TAG_Int(43);
673 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
674 once_value_8 = fra.me.REG[0];
675 register_static_object(&once_value_8);
676 } else fra.me.REG[0] = once_value_8;
677 array___Array___add(fra.me.REG[4], fra.me.REG[0]);
678 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
679 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[4]);
680 REGB0 = TAG_Bool(false);
681 REGB3 = REGB0;
682 /* ./syntax//syntax_base.nit:121 */
683 goto label1;
684 }
685 }
686 }
687 }
688 REGB0 = TAG_Bool(true);
689 REGB3 = REGB0;
690 /* ./syntax//syntax_base.nit:123 */
691 goto label1;
692 label1: while(0);
693 stack_frame_head = fra.me.prev;
694 return REGB3;
695 }
696 val_t syntax_base___MMLocalProperty___node(val_t p0){
697 struct {struct stack_frame_t me;} fra;
698 val_t tmp;
699 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
700 fra.me.file = LOCATE_syntax_base;
701 fra.me.line = 128;
702 fra.me.meth = LOCATE_syntax_base___MMLocalProperty___node;
703 fra.me.has_broke = 0;
704 fra.me.REG_size = 1;
705 fra.me.REG[0] = NIT_NULL;
706 fra.me.REG[0] = p0;
707 fra.me.REG[0] = NIT_NULL;
708 /* ./syntax//syntax_base.nit:129 */
709 goto label1;
710 label1: while(0);
711 stack_frame_head = fra.me.prev;
712 return fra.me.REG[0];
713 }
714 val_t syntax_base___MMLocalProperty___is_init(val_t p0){
715 struct {struct stack_frame_t me;} fra;
716 val_t REGB0;
717 val_t tmp;
718 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
719 fra.me.file = LOCATE_syntax_base;
720 fra.me.line = 131;
721 fra.me.meth = LOCATE_syntax_base___MMLocalProperty___is_init;
722 fra.me.has_broke = 0;
723 fra.me.REG_size = 1;
724 fra.me.REG[0] = NIT_NULL;
725 fra.me.REG[0] = p0;
726 REGB0 = TAG_Bool(false);
727 /* ./syntax//syntax_base.nit:132 */
728 goto label1;
729 label1: while(0);
730 stack_frame_head = fra.me.prev;
731 return REGB0;
732 }
733 val_t syntax_base___MMSrcAttribute___node(val_t p0){
734 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
735 val_t REGB0;
736 val_t tmp;
737 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
738 fra.me.file = LOCATE_syntax_base;
739 fra.me.line = 138;
740 fra.me.meth = LOCATE_syntax_base___MMSrcAttribute___node;
741 fra.me.has_broke = 0;
742 fra.me.REG_size = 2;
743 fra.me.REG[0] = NIT_NULL;
744 fra.me.REG[1] = NIT_NULL;
745 fra.me.REG[0] = p0;
746 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalProperty___module(fra.me.REG[0])(fra.me.REG[0]);
747 fra.me.REG[0] = CALL_syntax_base___MMModule___nodes(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
748 REGB0 = TAG_Bool((fra.me.REG[0]==NIT_NULL) || VAL_ISA(fra.me.REG[0], COLOR_AAttrPropdef, ID_AAttrPropdef)) /*cast nullable AAttrPropdef*/;
749 /* ./syntax//syntax_base.nit:138 */
750 if (UNTAG_Bool(REGB0)) {
751 } else {
752 fprintf(stderr, "Cast failed");
753 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 138);
754 nit_exit(1);
755 }
756 goto label1;
757 label1: while(0);
758 stack_frame_head = fra.me.prev;
759 return fra.me.REG[0];
760 }
761 void syntax_base___MMSrcAttribute___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
762 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMSrcAttribute].i;
763 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
764 val_t tmp;
765 if (init_table[itpos2]) return;
766 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
767 fra.me.file = LOCATE_syntax_base;
768 fra.me.line = 139;
769 fra.me.meth = LOCATE_syntax_base___MMSrcAttribute___init;
770 fra.me.has_broke = 0;
771 fra.me.REG_size = 5;
772 fra.me.REG[0] = NIT_NULL;
773 fra.me.REG[1] = NIT_NULL;
774 fra.me.REG[2] = NIT_NULL;
775 fra.me.REG[3] = NIT_NULL;
776 fra.me.REG[4] = NIT_NULL;
777 fra.me.REG[0] = p0;
778 fra.me.REG[1] = p1;
779 fra.me.REG[2] = p2;
780 fra.me.REG[3] = p3;
781 fra.me.REG[4] = fra.me.REG[0];
782 /* ./syntax//syntax_base.nit:141 */
783 CALL_abstractmetamodel___MMLocalProperty___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
784 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___module(fra.me.REG[2])(fra.me.REG[2]);
785 /* ./syntax//syntax_base.nit:142 */
786 CALL_syntax_base___MMModule___nodes__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4], fra.me.REG[3]);
787 stack_frame_head = fra.me.prev;
788 init_table[itpos2] = 1;
789 return;
790 }
791 val_t syntax_base___MMSrcMethod___is_intern(val_t p0){
792 struct {struct stack_frame_t me;} fra;
793 val_t REGB0;
794 val_t tmp;
795 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
796 fra.me.file = LOCATE_syntax_base;
797 fra.me.line = 149;
798 fra.me.meth = LOCATE_syntax_base___MMSrcMethod___is_intern;
799 fra.me.has_broke = 0;
800 fra.me.REG_size = 1;
801 fra.me.REG[0] = NIT_NULL;
802 fra.me.REG[0] = p0;
803 REGB0 = TAG_Bool(false);
804 /* ./syntax//syntax_base.nit:149 */
805 goto label1;
806 label1: while(0);
807 stack_frame_head = fra.me.prev;
808 return REGB0;
809 }
810 val_t syntax_base___MMSrcMethod___is_abstract(val_t p0){
811 struct {struct stack_frame_t me;} fra;
812 val_t REGB0;
813 val_t tmp;
814 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
815 fra.me.file = LOCATE_syntax_base;
816 fra.me.line = 150;
817 fra.me.meth = LOCATE_syntax_base___MMSrcMethod___is_abstract;
818 fra.me.has_broke = 0;
819 fra.me.REG_size = 1;
820 fra.me.REG[0] = NIT_NULL;
821 fra.me.REG[0] = p0;
822 REGB0 = TAG_Bool(false);
823 /* ./syntax//syntax_base.nit:150 */
824 goto label1;
825 label1: while(0);
826 stack_frame_head = fra.me.prev;
827 return REGB0;
828 }
829 val_t syntax_base___MMAttrImplementationMethod___node(val_t p0){
830 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
831 val_t REGB0;
832 val_t tmp;
833 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
834 fra.me.file = LOCATE_syntax_base;
835 fra.me.line = 156;
836 fra.me.meth = LOCATE_syntax_base___MMAttrImplementationMethod___node;
837 fra.me.has_broke = 0;
838 fra.me.REG_size = 2;
839 fra.me.REG[0] = NIT_NULL;
840 fra.me.REG[1] = NIT_NULL;
841 fra.me.REG[0] = p0;
842 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalProperty___module(fra.me.REG[0])(fra.me.REG[0]);
843 fra.me.REG[0] = CALL_syntax_base___MMModule___nodes(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
844 REGB0 = TAG_Bool((fra.me.REG[0]==NIT_NULL) || VAL_ISA(fra.me.REG[0], COLOR_AAttrPropdef, ID_AAttrPropdef)) /*cast nullable AAttrPropdef*/;
845 /* ./syntax//syntax_base.nit:156 */
846 if (UNTAG_Bool(REGB0)) {
847 } else {
848 fprintf(stderr, "Cast failed");
849 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 156);
850 nit_exit(1);
851 }
852 goto label1;
853 label1: while(0);
854 stack_frame_head = fra.me.prev;
855 return fra.me.REG[0];
856 }
857 void syntax_base___MMAttrImplementationMethod___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
858 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMAttrImplementationMethod].i;
859 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
860 val_t tmp;
861 if (init_table[itpos3]) return;
862 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
863 fra.me.file = LOCATE_syntax_base;
864 fra.me.line = 157;
865 fra.me.meth = LOCATE_syntax_base___MMAttrImplementationMethod___init;
866 fra.me.has_broke = 0;
867 fra.me.REG_size = 5;
868 fra.me.REG[0] = NIT_NULL;
869 fra.me.REG[1] = NIT_NULL;
870 fra.me.REG[2] = NIT_NULL;
871 fra.me.REG[3] = NIT_NULL;
872 fra.me.REG[4] = NIT_NULL;
873 fra.me.REG[0] = p0;
874 fra.me.REG[1] = p1;
875 fra.me.REG[2] = p2;
876 fra.me.REG[3] = p3;
877 fra.me.REG[4] = fra.me.REG[0];
878 /* ./syntax//syntax_base.nit:159 */
879 CALL_abstractmetamodel___MMLocalProperty___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
880 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___module(fra.me.REG[2])(fra.me.REG[2]);
881 /* ./syntax//syntax_base.nit:160 */
882 CALL_syntax_base___MMModule___nodes__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4], fra.me.REG[3]);
883 stack_frame_head = fra.me.prev;
884 init_table[itpos3] = 1;
885 return;
886 }
887 void syntax_base___MMReadImplementationMethod___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
888 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMReadImplementationMethod].i;
889 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
890 val_t tmp;
891 if (init_table[itpos4]) return;
892 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
893 fra.me.file = LOCATE_syntax_base;
894 fra.me.line = 167;
895 fra.me.meth = LOCATE_syntax_base___MMReadImplementationMethod___init;
896 fra.me.has_broke = 0;
897 fra.me.REG_size = 4;
898 fra.me.REG[0] = NIT_NULL;
899 fra.me.REG[1] = NIT_NULL;
900 fra.me.REG[2] = NIT_NULL;
901 fra.me.REG[3] = NIT_NULL;
902 fra.me.REG[0] = p0;
903 fra.me.REG[1] = p1;
904 fra.me.REG[2] = p2;
905 fra.me.REG[3] = p3;
906 /* ./syntax//syntax_base.nit:169 */
907 CALL_syntax_base___MMAttrImplementationMethod___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
908 stack_frame_head = fra.me.prev;
909 init_table[itpos4] = 1;
910 return;
911 }
912 void syntax_base___MMWriteImplementationMethod___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
913 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMWriteImplementationMethod].i;
914 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
915 val_t tmp;
916 if (init_table[itpos5]) return;
917 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
918 fra.me.file = LOCATE_syntax_base;
919 fra.me.line = 176;
920 fra.me.meth = LOCATE_syntax_base___MMWriteImplementationMethod___init;
921 fra.me.has_broke = 0;
922 fra.me.REG_size = 4;
923 fra.me.REG[0] = NIT_NULL;
924 fra.me.REG[1] = NIT_NULL;
925 fra.me.REG[2] = NIT_NULL;
926 fra.me.REG[3] = NIT_NULL;
927 fra.me.REG[0] = p0;
928 fra.me.REG[1] = p1;
929 fra.me.REG[2] = p2;
930 fra.me.REG[3] = p3;
931 /* ./syntax//syntax_base.nit:178 */
932 CALL_syntax_base___MMAttrImplementationMethod___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table);
933 stack_frame_head = fra.me.prev;
934 init_table[itpos5] = 1;
935 return;
936 }
937 val_t syntax_base___MMMethSrcMethod___is_intern(val_t p0){
938 struct {struct stack_frame_t me;} fra;
939 val_t REGB0;
940 val_t tmp;
941 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
942 fra.me.file = LOCATE_syntax_base;
943 fra.me.line = 186;
944 fra.me.meth = LOCATE_syntax_base___MMMethSrcMethod___is_intern;
945 fra.me.has_broke = 0;
946 fra.me.REG_size = 1;
947 fra.me.REG[0] = NIT_NULL;
948 fra.me.REG[0] = p0;
949 REGB0 = TAG_Bool(ATTR_syntax_base___MMMethSrcMethod____is_intern(fra.me.REG[0])!=NIT_NULL);
950 /* ./syntax//syntax_base.nit:186 */
951 if (UNTAG_Bool(REGB0)) {
952 } else {
953 fprintf(stderr, "Uninitialized attribute %s", "_is_intern");
954 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 186);
955 nit_exit(1);
956 }
957 REGB0 = ATTR_syntax_base___MMMethSrcMethod____is_intern(fra.me.REG[0]);
958 stack_frame_head = fra.me.prev;
959 return REGB0;
960 }
961 val_t syntax_base___MMMethSrcMethod___is_abstract(val_t p0){
962 struct {struct stack_frame_t me;} fra;
963 val_t REGB0;
964 val_t tmp;
965 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
966 fra.me.file = LOCATE_syntax_base;
967 fra.me.line = 187;
968 fra.me.meth = LOCATE_syntax_base___MMMethSrcMethod___is_abstract;
969 fra.me.has_broke = 0;
970 fra.me.REG_size = 1;
971 fra.me.REG[0] = NIT_NULL;
972 fra.me.REG[0] = p0;
973 REGB0 = TAG_Bool(ATTR_syntax_base___MMMethSrcMethod____is_abstract(fra.me.REG[0])!=NIT_NULL);
974 /* ./syntax//syntax_base.nit:187 */
975 if (UNTAG_Bool(REGB0)) {
976 } else {
977 fprintf(stderr, "Uninitialized attribute %s", "_is_abstract");
978 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 187);
979 nit_exit(1);
980 }
981 REGB0 = ATTR_syntax_base___MMMethSrcMethod____is_abstract(fra.me.REG[0]);
982 stack_frame_head = fra.me.prev;
983 return REGB0;
984 }
985 val_t syntax_base___MMMethSrcMethod___node(val_t p0){
986 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
987 val_t REGB0;
988 val_t tmp;
989 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
990 fra.me.file = LOCATE_syntax_base;
991 fra.me.line = 188;
992 fra.me.meth = LOCATE_syntax_base___MMMethSrcMethod___node;
993 fra.me.has_broke = 0;
994 fra.me.REG_size = 2;
995 fra.me.REG[0] = NIT_NULL;
996 fra.me.REG[1] = NIT_NULL;
997 fra.me.REG[0] = p0;
998 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalProperty___module(fra.me.REG[0])(fra.me.REG[0]);
999 fra.me.REG[0] = CALL_syntax_base___MMModule___nodes(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1000 REGB0 = TAG_Bool((fra.me.REG[0]==NIT_NULL) || VAL_ISA(fra.me.REG[0], COLOR_AMethPropdef, ID_AMethPropdef)) /*cast nullable AMethPropdef*/;
1001 /* ./syntax//syntax_base.nit:188 */
1002 if (UNTAG_Bool(REGB0)) {
1003 } else {
1004 fprintf(stderr, "Cast failed");
1005 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 188);
1006 nit_exit(1);
1007 }
1008 goto label1;
1009 label1: while(0);
1010 stack_frame_head = fra.me.prev;
1011 return fra.me.REG[0];
1012 }
1013 val_t syntax_base___MMMethSrcMethod___is_init(val_t p0){
1014 struct {struct stack_frame_t me;} fra;
1015 val_t REGB0;
1016 val_t tmp;
1017 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1018 fra.me.file = LOCATE_syntax_base;
1019 fra.me.line = 185;
1020 fra.me.meth = LOCATE_syntax_base___MMMethSrcMethod___is_init;
1021 fra.me.has_broke = 0;
1022 fra.me.REG_size = 1;
1023 fra.me.REG[0] = NIT_NULL;
1024 fra.me.REG[0] = p0;
1025 REGB0 = TAG_Bool(ATTR_syntax_base___MMMethSrcMethod____is_init(fra.me.REG[0])!=NIT_NULL);
1026 /* ./syntax//syntax_base.nit:185 */
1027 if (UNTAG_Bool(REGB0)) {
1028 } else {
1029 fprintf(stderr, "Uninitialized attribute %s", "_is_init");
1030 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 185);
1031 nit_exit(1);
1032 }
1033 REGB0 = ATTR_syntax_base___MMMethSrcMethod____is_init(fra.me.REG[0]);
1034 stack_frame_head = fra.me.prev;
1035 return REGB0;
1036 }
1037 void syntax_base___MMMethSrcMethod___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1038 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMMethSrcMethod].i;
1039 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1040 val_t REGB0;
1041 val_t tmp;
1042 if (init_table[itpos6]) return;
1043 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1044 fra.me.file = LOCATE_syntax_base;
1045 fra.me.line = 189;
1046 fra.me.meth = LOCATE_syntax_base___MMMethSrcMethod___init;
1047 fra.me.has_broke = 0;
1048 fra.me.REG_size = 5;
1049 fra.me.REG[0] = NIT_NULL;
1050 fra.me.REG[1] = NIT_NULL;
1051 fra.me.REG[2] = NIT_NULL;
1052 fra.me.REG[3] = NIT_NULL;
1053 fra.me.REG[4] = NIT_NULL;
1054 fra.me.REG[0] = p0;
1055 fra.me.REG[1] = p1;
1056 fra.me.REG[2] = p2;
1057 fra.me.REG[3] = p3;
1058 fra.me.REG[4] = fra.me.REG[0];
1059 /* ./syntax//syntax_base.nit:191 */
1060 CALL_abstractmetamodel___MMLocalProperty___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1061 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___module(fra.me.REG[2])(fra.me.REG[2]);
1062 /* ./syntax//syntax_base.nit:192 */
1063 CALL_syntax_base___MMModule___nodes__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4], fra.me.REG[3]);
1064 fra.me.REG[3] = CALL_syntax_base___MMLocalProperty___node(fra.me.REG[4])(fra.me.REG[4]);
1065 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
1066 /* ./syntax//syntax_base.nit:193 */
1067 ATTR_syntax_base___MMMethSrcMethod____is_init(fra.me.REG[4]) = REGB0;
1068 fra.me.REG[3] = CALL_syntax_base___MMLocalProperty___node(fra.me.REG[4])(fra.me.REG[4]);
1069 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_AInternMethPropdef, ID_AInternMethPropdef)) /*cast AInternMethPropdef*/;
1070 /* ./syntax//syntax_base.nit:194 */
1071 ATTR_syntax_base___MMMethSrcMethod____is_intern(fra.me.REG[4]) = REGB0;
1072 fra.me.REG[3] = CALL_syntax_base___MMLocalProperty___node(fra.me.REG[4])(fra.me.REG[4]);
1073 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_ADeferredMethPropdef, ID_ADeferredMethPropdef)) /*cast ADeferredMethPropdef*/;
1074 /* ./syntax//syntax_base.nit:195 */
1075 ATTR_syntax_base___MMMethSrcMethod____is_abstract(fra.me.REG[4]) = REGB0;
1076 stack_frame_head = fra.me.prev;
1077 init_table[itpos6] = 1;
1078 return;
1079 }
1080 void syntax_base___MMSrcTypeProperty___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1081 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMSrcTypeProperty].i;
1082 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1083 val_t tmp;
1084 if (init_table[itpos7]) return;
1085 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1086 fra.me.file = LOCATE_syntax_base;
1087 fra.me.line = 203;
1088 fra.me.meth = LOCATE_syntax_base___MMSrcTypeProperty___init;
1089 fra.me.has_broke = 0;
1090 fra.me.REG_size = 4;
1091 fra.me.REG[0] = NIT_NULL;
1092 fra.me.REG[1] = NIT_NULL;
1093 fra.me.REG[2] = NIT_NULL;
1094 fra.me.REG[3] = NIT_NULL;
1095 fra.me.REG[0] = p0;
1096 fra.me.REG[1] = p1;
1097 fra.me.REG[2] = p2;
1098 fra.me.REG[3] = p3;
1099 /* ./syntax//syntax_base.nit:205 */
1100 CALL_abstractmetamodel___MMLocalProperty___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1101 stack_frame_head = fra.me.prev;
1102 init_table[itpos7] = 1;
1103 return;
1104 }
1105 val_t syntax_base___MMImplicitInit___is_init(val_t p0){
1106 struct {struct stack_frame_t me;} fra;
1107 val_t REGB0;
1108 val_t tmp;
1109 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1110 fra.me.file = LOCATE_syntax_base;
1111 fra.me.line = 213;
1112 fra.me.meth = LOCATE_syntax_base___MMImplicitInit___is_init;
1113 fra.me.has_broke = 0;
1114 fra.me.REG_size = 1;
1115 fra.me.REG[0] = NIT_NULL;
1116 fra.me.REG[0] = p0;
1117 REGB0 = TAG_Bool(true);
1118 /* ./syntax//syntax_base.nit:213 */
1119 goto label1;
1120 label1: while(0);
1121 stack_frame_head = fra.me.prev;
1122 return REGB0;
1123 }
1124 val_t syntax_base___MMImplicitInit___super_init(val_t p0){
1125 struct {struct stack_frame_t me;} fra;
1126 val_t tmp;
1127 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1128 fra.me.file = LOCATE_syntax_base;
1129 fra.me.line = 212;
1130 fra.me.meth = LOCATE_syntax_base___MMImplicitInit___super_init;
1131 fra.me.has_broke = 0;
1132 fra.me.REG_size = 0;
1133 /* ./syntax//syntax_base.nit:212 */
1134 fprintf(stderr, "Deferred method called");
1135 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 212);
1136 nit_exit(1);
1137 stack_frame_head = fra.me.prev;
1138 return NIT_NULL;
1139 }
1140 val_t syntax_base___MMImplicitInit___unassigned_attributes(val_t p0){
1141 struct {struct stack_frame_t me;} fra;
1142 val_t REGB0;
1143 val_t tmp;
1144 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1145 fra.me.file = LOCATE_syntax_base;
1146 fra.me.line = 214;
1147 fra.me.meth = LOCATE_syntax_base___MMImplicitInit___unassigned_attributes;
1148 fra.me.has_broke = 0;
1149 fra.me.REG_size = 1;
1150 fra.me.REG[0] = NIT_NULL;
1151 fra.me.REG[0] = p0;
1152 REGB0 = TAG_Bool(ATTR_syntax_base___MMImplicitInit____unassigned_attributes(fra.me.REG[0])!=NIT_NULL);
1153 /* ./syntax//syntax_base.nit:214 */
1154 if (UNTAG_Bool(REGB0)) {
1155 } else {
1156 fprintf(stderr, "Uninitialized attribute %s", "_unassigned_attributes");
1157 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 214);
1158 nit_exit(1);
1159 }
1160 fra.me.REG[0] = ATTR_syntax_base___MMImplicitInit____unassigned_attributes(fra.me.REG[0]);
1161 stack_frame_head = fra.me.prev;
1162 return fra.me.REG[0];
1163 }
1164 val_t syntax_base___MMImplicitInit___super_inits(val_t p0){
1165 struct {struct stack_frame_t me;} fra;
1166 val_t REGB0;
1167 val_t tmp;
1168 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1169 fra.me.file = LOCATE_syntax_base;
1170 fra.me.line = 215;
1171 fra.me.meth = LOCATE_syntax_base___MMImplicitInit___super_inits;
1172 fra.me.has_broke = 0;
1173 fra.me.REG_size = 1;
1174 fra.me.REG[0] = NIT_NULL;
1175 fra.me.REG[0] = p0;
1176 REGB0 = TAG_Bool(ATTR_syntax_base___MMImplicitInit____super_inits(fra.me.REG[0])!=NIT_NULL);
1177 /* ./syntax//syntax_base.nit:215 */
1178 if (UNTAG_Bool(REGB0)) {
1179 } else {
1180 fprintf(stderr, "Uninitialized attribute %s", "_super_inits");
1181 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 215);
1182 nit_exit(1);
1183 }
1184 fra.me.REG[0] = ATTR_syntax_base___MMImplicitInit____super_inits(fra.me.REG[0]);
1185 stack_frame_head = fra.me.prev;
1186 return fra.me.REG[0];
1187 }
1188 void syntax_base___MMImplicitInit___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1189 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMImplicitInit].i;
1190 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1191 val_t REGB0;
1192 val_t tmp;
1193 static val_t once_value_1; /* Once value */
1194 static val_t once_value_2; /* Once value */
1195 if (init_table[itpos8]) return;
1196 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1197 fra.me.file = LOCATE_syntax_base;
1198 fra.me.line = 216;
1199 fra.me.meth = LOCATE_syntax_base___MMImplicitInit___init;
1200 fra.me.has_broke = 0;
1201 fra.me.REG_size = 6;
1202 fra.me.REG[0] = NIT_NULL;
1203 fra.me.REG[1] = NIT_NULL;
1204 fra.me.REG[2] = NIT_NULL;
1205 fra.me.REG[3] = NIT_NULL;
1206 fra.me.REG[4] = NIT_NULL;
1207 fra.me.REG[5] = NIT_NULL;
1208 fra.me.REG[0] = p0;
1209 fra.me.REG[1] = p1;
1210 fra.me.REG[2] = p2;
1211 fra.me.REG[3] = p3;
1212 fra.me.REG[4] = fra.me.REG[0];
1213 /* ./syntax//syntax_base.nit:218 */
1214 if (!once_value_1) {
1215 if (!once_value_2) {
1216 fra.me.REG[5] = BOX_NativeString("init");
1217 REGB0 = TAG_Int(4);
1218 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
1219 once_value_2 = fra.me.REG[5];
1220 register_static_object(&once_value_2);
1221 } else fra.me.REG[5] = once_value_2;
1222 fra.me.REG[5] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
1223 once_value_1 = fra.me.REG[5];
1224 register_static_object(&once_value_1);
1225 } else fra.me.REG[5] = once_value_1;
1226 CALL_syntax_base___MMMethSrcMethod___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[1], NIT_NULL, init_table);
1227 /* ./syntax//syntax_base.nit:219 */
1228 ATTR_syntax_base___MMImplicitInit____unassigned_attributes(fra.me.REG[4]) = fra.me.REG[2];
1229 /* ./syntax//syntax_base.nit:220 */
1230 ATTR_syntax_base___MMImplicitInit____super_inits(fra.me.REG[4]) = fra.me.REG[3];
1231 stack_frame_head = fra.me.prev;
1232 init_table[itpos8] = 1;
1233 return;
1234 }
1235 val_t syntax_base___Variable___to_s(val_t p0){
1236 struct {struct stack_frame_t me;} fra;
1237 val_t REGB0;
1238 val_t tmp;
1239 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1240 fra.me.file = LOCATE_syntax_base;
1241 fra.me.line = 240;
1242 fra.me.meth = LOCATE_syntax_base___Variable___to_s;
1243 fra.me.has_broke = 0;
1244 fra.me.REG_size = 1;
1245 fra.me.REG[0] = NIT_NULL;
1246 fra.me.REG[0] = p0;
1247 REGB0 = TAG_Bool(ATTR_syntax_base___Variable____name(fra.me.REG[0])!=NIT_NULL);
1248 /* ./syntax//syntax_base.nit:240 */
1249 if (UNTAG_Bool(REGB0)) {
1250 } else {
1251 fprintf(stderr, "Uninitialized attribute %s", "_name");
1252 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 240);
1253 nit_exit(1);
1254 }
1255 fra.me.REG[0] = ATTR_syntax_base___Variable____name(fra.me.REG[0]);
1256 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
1257 goto label1;
1258 label1: while(0);
1259 stack_frame_head = fra.me.prev;
1260 return fra.me.REG[0];
1261 }
1262 val_t syntax_base___Variable___name(val_t p0){
1263 struct {struct stack_frame_t me;} fra;
1264 val_t REGB0;
1265 val_t tmp;
1266 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1267 fra.me.file = LOCATE_syntax_base;
1268 fra.me.line = 226;
1269 fra.me.meth = LOCATE_syntax_base___Variable___name;
1270 fra.me.has_broke = 0;
1271 fra.me.REG_size = 1;
1272 fra.me.REG[0] = NIT_NULL;
1273 fra.me.REG[0] = p0;
1274 REGB0 = TAG_Bool(ATTR_syntax_base___Variable____name(fra.me.REG[0])!=NIT_NULL);
1275 /* ./syntax//syntax_base.nit:226 */
1276 if (UNTAG_Bool(REGB0)) {
1277 } else {
1278 fprintf(stderr, "Uninitialized attribute %s", "_name");
1279 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 226);
1280 nit_exit(1);
1281 }
1282 fra.me.REG[0] = ATTR_syntax_base___Variable____name(fra.me.REG[0]);
1283 stack_frame_head = fra.me.prev;
1284 return fra.me.REG[0];
1285 }
1286 val_t syntax_base___Variable___decl(val_t p0){
1287 struct {struct stack_frame_t me;} fra;
1288 val_t tmp;
1289 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1290 fra.me.file = LOCATE_syntax_base;
1291 fra.me.line = 229;
1292 fra.me.meth = LOCATE_syntax_base___Variable___decl;
1293 fra.me.has_broke = 0;
1294 fra.me.REG_size = 1;
1295 fra.me.REG[0] = NIT_NULL;
1296 fra.me.REG[0] = p0;
1297 fra.me.REG[0] = ATTR_syntax_base___Variable____decl(fra.me.REG[0]);
1298 /* ./syntax//syntax_base.nit:229 */
1299 stack_frame_head = fra.me.prev;
1300 return fra.me.REG[0];
1301 }
1302 val_t syntax_base___Variable___is_typed(val_t p0){
1303 struct {struct stack_frame_t me;} fra;
1304 val_t REGB0;
1305 val_t REGB1;
1306 val_t tmp;
1307 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1308 fra.me.file = LOCATE_syntax_base;
1309 fra.me.line = 232;
1310 fra.me.meth = LOCATE_syntax_base___Variable___is_typed;
1311 fra.me.has_broke = 0;
1312 fra.me.REG_size = 1;
1313 fra.me.REG[0] = NIT_NULL;
1314 fra.me.REG[0] = p0;
1315 fra.me.REG[0] = ATTR_syntax_base___Variable____stype(fra.me.REG[0]);
1316 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1317 /* ./syntax//syntax_base.nit:235 */
1318 if (UNTAG_Bool(REGB0)) {
1319 } else {
1320 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1321 if (UNTAG_Bool(REGB1)) {
1322 REGB1 = TAG_Bool(false);
1323 REGB0 = REGB1;
1324 } else {
1325 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
1326 REGB0 = REGB1;
1327 }
1328 }
1329 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1330 goto label1;
1331 label1: while(0);
1332 stack_frame_head = fra.me.prev;
1333 return REGB0;
1334 }
1335 val_t syntax_base___Variable___stype(val_t p0){
1336 struct {struct stack_frame_t me;} fra;
1337 val_t tmp;
1338 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1339 fra.me.file = LOCATE_syntax_base;
1340 fra.me.line = 237;
1341 fra.me.meth = LOCATE_syntax_base___Variable___stype;
1342 fra.me.has_broke = 0;
1343 fra.me.REG_size = 1;
1344 fra.me.REG[0] = NIT_NULL;
1345 fra.me.REG[0] = p0;
1346 fra.me.REG[0] = ATTR_syntax_base___Variable____stype(fra.me.REG[0]);
1347 /* ./syntax//syntax_base.nit:237 */
1348 stack_frame_head = fra.me.prev;
1349 return fra.me.REG[0];
1350 }
1351 void syntax_base___Variable___stype__eq(val_t p0, val_t p1){
1352 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1353 val_t tmp;
1354 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1355 fra.me.file = LOCATE_syntax_base;
1356 fra.me.line = 237;
1357 fra.me.meth = LOCATE_syntax_base___Variable___stype__eq;
1358 fra.me.has_broke = 0;
1359 fra.me.REG_size = 2;
1360 fra.me.REG[0] = NIT_NULL;
1361 fra.me.REG[1] = NIT_NULL;
1362 fra.me.REG[0] = p0;
1363 fra.me.REG[1] = p1;
1364 /* ./syntax//syntax_base.nit:237 */
1365 ATTR_syntax_base___Variable____stype(fra.me.REG[0]) = fra.me.REG[1];
1366 stack_frame_head = fra.me.prev;
1367 return;
1368 }
1369 val_t syntax_base___Variable___kind(val_t p0){
1370 struct {struct stack_frame_t me;} fra;
1371 val_t tmp;
1372 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1373 fra.me.file = LOCATE_syntax_base;
1374 fra.me.line = 242;
1375 fra.me.meth = LOCATE_syntax_base___Variable___kind;
1376 fra.me.has_broke = 0;
1377 fra.me.REG_size = 0;
1378 /* ./syntax//syntax_base.nit:242 */
1379 fprintf(stderr, "Deferred method called");
1380 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 242);
1381 nit_exit(1);
1382 stack_frame_head = fra.me.prev;
1383 return NIT_NULL;
1384 }
1385 void syntax_base___Variable___init(val_t p0, val_t p1, val_t p2, int* init_table){
1386 int itpos9 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_Variable].i;
1387 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1388 val_t tmp;
1389 if (init_table[itpos9]) return;
1390 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1391 fra.me.file = LOCATE_syntax_base;
1392 fra.me.line = 244;
1393 fra.me.meth = LOCATE_syntax_base___Variable___init;
1394 fra.me.has_broke = 0;
1395 fra.me.REG_size = 3;
1396 fra.me.REG[0] = NIT_NULL;
1397 fra.me.REG[1] = NIT_NULL;
1398 fra.me.REG[2] = NIT_NULL;
1399 fra.me.REG[0] = p0;
1400 fra.me.REG[1] = p1;
1401 fra.me.REG[2] = p2;
1402 /* ./syntax//syntax_base.nit:246 */
1403 ATTR_syntax_base___Variable____name(fra.me.REG[0]) = fra.me.REG[1];
1404 /* ./syntax//syntax_base.nit:247 */
1405 ATTR_syntax_base___Variable____decl(fra.me.REG[0]) = fra.me.REG[2];
1406 stack_frame_head = fra.me.prev;
1407 init_table[itpos9] = 1;
1408 return;
1409 }
1410 val_t syntax_base___VarVariable___kind(val_t p0){
1411 struct {struct stack_frame_t me;} fra;
1412 val_t REGB0;
1413 val_t tmp;
1414 static val_t once_value_1; /* Once value */
1415 static val_t once_value_2; /* Once value */
1416 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1417 fra.me.file = LOCATE_syntax_base;
1418 fra.me.line = 254;
1419 fra.me.meth = LOCATE_syntax_base___VarVariable___kind;
1420 fra.me.has_broke = 0;
1421 fra.me.REG_size = 1;
1422 fra.me.REG[0] = NIT_NULL;
1423 fra.me.REG[0] = p0;
1424 /* ./syntax//syntax_base.nit:254 */
1425 if (!once_value_1) {
1426 if (!once_value_2) {
1427 fra.me.REG[0] = BOX_NativeString("variable");
1428 REGB0 = TAG_Int(8);
1429 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
1430 once_value_2 = fra.me.REG[0];
1431 register_static_object(&once_value_2);
1432 } else fra.me.REG[0] = once_value_2;
1433 once_value_1 = fra.me.REG[0];
1434 register_static_object(&once_value_1);
1435 } else fra.me.REG[0] = once_value_1;
1436 goto label3;
1437 label3: while(0);
1438 stack_frame_head = fra.me.prev;
1439 return fra.me.REG[0];
1440 }
1441 void syntax_base___VarVariable___init(val_t p0, val_t p1, val_t p2, int* init_table){
1442 int itpos10 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_VarVariable].i;
1443 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1444 val_t tmp;
1445 if (init_table[itpos10]) return;
1446 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1447 fra.me.file = LOCATE_syntax_base;
1448 fra.me.line = 255;
1449 fra.me.meth = LOCATE_syntax_base___VarVariable___init;
1450 fra.me.has_broke = 0;
1451 fra.me.REG_size = 3;
1452 fra.me.REG[0] = NIT_NULL;
1453 fra.me.REG[1] = NIT_NULL;
1454 fra.me.REG[2] = NIT_NULL;
1455 fra.me.REG[0] = p0;
1456 fra.me.REG[1] = p1;
1457 fra.me.REG[2] = p2;
1458 /* ./syntax//syntax_base.nit:255 */
1459 CALL_syntax_base___Variable___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1460 stack_frame_head = fra.me.prev;
1461 init_table[itpos10] = 1;
1462 return;
1463 }
1464 val_t syntax_base___ParamVariable___kind(val_t p0){
1465 struct {struct stack_frame_t me;} fra;
1466 val_t REGB0;
1467 val_t tmp;
1468 static val_t once_value_1; /* Once value */
1469 static val_t once_value_2; /* Once value */
1470 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1471 fra.me.file = LOCATE_syntax_base;
1472 fra.me.line = 261;
1473 fra.me.meth = LOCATE_syntax_base___ParamVariable___kind;
1474 fra.me.has_broke = 0;
1475 fra.me.REG_size = 1;
1476 fra.me.REG[0] = NIT_NULL;
1477 fra.me.REG[0] = p0;
1478 /* ./syntax//syntax_base.nit:261 */
1479 if (!once_value_1) {
1480 if (!once_value_2) {
1481 fra.me.REG[0] = BOX_NativeString("parameter");
1482 REGB0 = TAG_Int(9);
1483 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
1484 once_value_2 = fra.me.REG[0];
1485 register_static_object(&once_value_2);
1486 } else fra.me.REG[0] = once_value_2;
1487 once_value_1 = fra.me.REG[0];
1488 register_static_object(&once_value_1);
1489 } else fra.me.REG[0] = once_value_1;
1490 goto label3;
1491 label3: while(0);
1492 stack_frame_head = fra.me.prev;
1493 return fra.me.REG[0];
1494 }
1495 void syntax_base___ParamVariable___init(val_t p0, val_t p1, val_t p2, int* init_table){
1496 int itpos11 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ParamVariable].i;
1497 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1498 val_t tmp;
1499 if (init_table[itpos11]) return;
1500 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1501 fra.me.file = LOCATE_syntax_base;
1502 fra.me.line = 262;
1503 fra.me.meth = LOCATE_syntax_base___ParamVariable___init;
1504 fra.me.has_broke = 0;
1505 fra.me.REG_size = 3;
1506 fra.me.REG[0] = NIT_NULL;
1507 fra.me.REG[1] = NIT_NULL;
1508 fra.me.REG[2] = NIT_NULL;
1509 fra.me.REG[0] = p0;
1510 fra.me.REG[1] = p1;
1511 fra.me.REG[2] = p2;
1512 /* ./syntax//syntax_base.nit:262 */
1513 CALL_syntax_base___Variable___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1514 stack_frame_head = fra.me.prev;
1515 init_table[itpos11] = 1;
1516 return;
1517 }
1518 val_t syntax_base___AutoVariable___kind(val_t p0){
1519 struct {struct stack_frame_t me;} fra;
1520 val_t REGB0;
1521 val_t tmp;
1522 static val_t once_value_1; /* Once value */
1523 static val_t once_value_2; /* Once value */
1524 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1525 fra.me.file = LOCATE_syntax_base;
1526 fra.me.line = 268;
1527 fra.me.meth = LOCATE_syntax_base___AutoVariable___kind;
1528 fra.me.has_broke = 0;
1529 fra.me.REG_size = 1;
1530 fra.me.REG[0] = NIT_NULL;
1531 fra.me.REG[0] = p0;
1532 /* ./syntax//syntax_base.nit:268 */
1533 if (!once_value_1) {
1534 if (!once_value_2) {
1535 fra.me.REG[0] = BOX_NativeString("automatic variable");
1536 REGB0 = TAG_Int(18);
1537 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
1538 once_value_2 = fra.me.REG[0];
1539 register_static_object(&once_value_2);
1540 } else fra.me.REG[0] = once_value_2;
1541 once_value_1 = fra.me.REG[0];
1542 register_static_object(&once_value_1);
1543 } else fra.me.REG[0] = once_value_1;
1544 goto label3;
1545 label3: while(0);
1546 stack_frame_head = fra.me.prev;
1547 return fra.me.REG[0];
1548 }
1549 void syntax_base___AutoVariable___init(val_t p0, val_t p1, val_t p2, int* init_table){
1550 int itpos12 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AutoVariable].i;
1551 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1552 val_t tmp;
1553 if (init_table[itpos12]) return;
1554 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1555 fra.me.file = LOCATE_syntax_base;
1556 fra.me.line = 269;
1557 fra.me.meth = LOCATE_syntax_base___AutoVariable___init;
1558 fra.me.has_broke = 0;
1559 fra.me.REG_size = 3;
1560 fra.me.REG[0] = NIT_NULL;
1561 fra.me.REG[1] = NIT_NULL;
1562 fra.me.REG[2] = NIT_NULL;
1563 fra.me.REG[0] = p0;
1564 fra.me.REG[1] = p1;
1565 fra.me.REG[2] = p2;
1566 /* ./syntax//syntax_base.nit:269 */
1567 CALL_syntax_base___Variable___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1568 stack_frame_head = fra.me.prev;
1569 init_table[itpos12] = 1;
1570 return;
1571 }
1572 val_t syntax_base___ClosureVariable___kind(val_t p0){
1573 struct {struct stack_frame_t me;} fra;
1574 val_t REGB0;
1575 val_t tmp;
1576 static val_t once_value_1; /* Once value */
1577 static val_t once_value_2; /* Once value */
1578 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1579 fra.me.file = LOCATE_syntax_base;
1580 fra.me.line = 276;
1581 fra.me.meth = LOCATE_syntax_base___ClosureVariable___kind;
1582 fra.me.has_broke = 0;
1583 fra.me.REG_size = 1;
1584 fra.me.REG[0] = NIT_NULL;
1585 fra.me.REG[0] = p0;
1586 /* ./syntax//syntax_base.nit:276 */
1587 if (!once_value_1) {
1588 if (!once_value_2) {
1589 fra.me.REG[0] = BOX_NativeString("closure");
1590 REGB0 = TAG_Int(7);
1591 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
1592 once_value_2 = fra.me.REG[0];
1593 register_static_object(&once_value_2);
1594 } else fra.me.REG[0] = once_value_2;
1595 once_value_1 = fra.me.REG[0];
1596 register_static_object(&once_value_1);
1597 } else fra.me.REG[0] = once_value_1;
1598 goto label3;
1599 label3: while(0);
1600 stack_frame_head = fra.me.prev;
1601 return fra.me.REG[0];
1602 }
1603 val_t syntax_base___ClosureVariable___closure(val_t p0){
1604 struct {struct stack_frame_t me;} fra;
1605 val_t REGB0;
1606 val_t tmp;
1607 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1608 fra.me.file = LOCATE_syntax_base;
1609 fra.me.line = 278;
1610 fra.me.meth = LOCATE_syntax_base___ClosureVariable___closure;
1611 fra.me.has_broke = 0;
1612 fra.me.REG_size = 1;
1613 fra.me.REG[0] = NIT_NULL;
1614 fra.me.REG[0] = p0;
1615 REGB0 = TAG_Bool(ATTR_syntax_base___ClosureVariable____closure(fra.me.REG[0])!=NIT_NULL);
1616 /* ./syntax//syntax_base.nit:278 */
1617 if (UNTAG_Bool(REGB0)) {
1618 } else {
1619 fprintf(stderr, "Uninitialized attribute %s", "_closure");
1620 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 278);
1621 nit_exit(1);
1622 }
1623 fra.me.REG[0] = ATTR_syntax_base___ClosureVariable____closure(fra.me.REG[0]);
1624 stack_frame_head = fra.me.prev;
1625 return fra.me.REG[0];
1626 }
1627 void syntax_base___ClosureVariable___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1628 int itpos13 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ClosureVariable].i;
1629 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1630 val_t tmp;
1631 if (init_table[itpos13]) return;
1632 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1633 fra.me.file = LOCATE_syntax_base;
1634 fra.me.line = 281;
1635 fra.me.meth = LOCATE_syntax_base___ClosureVariable___init;
1636 fra.me.has_broke = 0;
1637 fra.me.REG_size = 5;
1638 fra.me.REG[0] = NIT_NULL;
1639 fra.me.REG[1] = NIT_NULL;
1640 fra.me.REG[2] = NIT_NULL;
1641 fra.me.REG[3] = NIT_NULL;
1642 fra.me.REG[4] = NIT_NULL;
1643 fra.me.REG[0] = p0;
1644 fra.me.REG[1] = p1;
1645 fra.me.REG[2] = p2;
1646 fra.me.REG[3] = p3;
1647 fra.me.REG[4] = fra.me.REG[0];
1648 /* ./syntax//syntax_base.nit:283 */
1649 CALL_syntax_base___Variable___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1650 /* ./syntax//syntax_base.nit:284 */
1651 ATTR_syntax_base___ClosureVariable____closure(fra.me.REG[4]) = fra.me.REG[3];
1652 stack_frame_head = fra.me.prev;
1653 init_table[itpos13] = 1;
1654 return;
1655 }
1656 val_t syntax_base___AbsSyntaxVisitor___get_type_by_name(val_t p0, val_t p1){
1657 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1658 val_t REGB0;
1659 val_t tmp;
1660 static val_t once_value_1; /* Once value */
1661 static val_t once_value_2; /* Once value */
1662 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1663 fra.me.file = LOCATE_syntax_base;
1664 fra.me.line = 293;
1665 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___get_type_by_name;
1666 fra.me.has_broke = 0;
1667 fra.me.REG_size = 6;
1668 fra.me.REG[0] = NIT_NULL;
1669 fra.me.REG[1] = NIT_NULL;
1670 fra.me.REG[2] = NIT_NULL;
1671 fra.me.REG[3] = NIT_NULL;
1672 fra.me.REG[4] = NIT_NULL;
1673 fra.me.REG[5] = NIT_NULL;
1674 fra.me.REG[0] = p0;
1675 fra.me.REG[1] = p1;
1676 REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[0])!=NIT_NULL);
1677 /* ./syntax//syntax_base.nit:295 */
1678 if (UNTAG_Bool(REGB0)) {
1679 } else {
1680 fprintf(stderr, "Uninitialized attribute %s", "_module");
1681 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 295);
1682 nit_exit(1);
1683 }
1684 fra.me.REG[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[0]);
1685 REGB0 = CALL_abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1686 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1687 if (UNTAG_Bool(REGB0)) {
1688 REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
1689 if (UNTAG_Bool(REGB0)) {
1690 } else {
1691 fprintf(stderr, "Uninitialized attribute %s", "_tc");
1692 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 295);
1693 nit_exit(1);
1694 }
1695 fra.me.REG[2] = ATTR_syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0]);
1696 REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[0])!=NIT_NULL);
1697 if (UNTAG_Bool(REGB0)) {
1698 } else {
1699 fprintf(stderr, "Uninitialized attribute %s", "_module");
1700 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 295);
1701 nit_exit(1);
1702 }
1703 fra.me.REG[3] = ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[0]);
1704 fra.me.REG[3] = CALL_abstractmetamodel___MMModule___location(fra.me.REG[3])(fra.me.REG[3]);
1705 REGB0 = TAG_Int(3);
1706 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
1707 if (!once_value_1) {
1708 fra.me.REG[5] = BOX_NativeString("Missing necessary class: \"");
1709 REGB0 = TAG_Int(26);
1710 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
1711 once_value_1 = fra.me.REG[5];
1712 register_static_object(&once_value_1);
1713 } else fra.me.REG[5] = once_value_1;
1714 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
1715 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
1716 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
1717 if (!once_value_2) {
1718 fra.me.REG[5] = BOX_NativeString("\"");
1719 REGB0 = TAG_Int(1);
1720 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
1721 once_value_2 = fra.me.REG[5];
1722 register_static_object(&once_value_2);
1723 } else fra.me.REG[5] = once_value_2;
1724 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
1725 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1726 CALL_mmloader___ToolContext___fatal_error(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
1727 }
1728 REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[0])!=NIT_NULL);
1729 /* ./syntax//syntax_base.nit:296 */
1730 if (UNTAG_Bool(REGB0)) {
1731 } else {
1732 fprintf(stderr, "Uninitialized attribute %s", "_module");
1733 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 296);
1734 nit_exit(1);
1735 }
1736 fra.me.REG[0] = ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[0]);
1737 fra.me.REG[1] = CALL_abstractmetamodel___MMModule___class_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1738 fra.me.REG[1] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
1739 /* ./syntax//syntax_base.nit:297 */
1740 goto label3;
1741 label3: while(0);
1742 stack_frame_head = fra.me.prev;
1743 return fra.me.REG[1];
1744 }
1745 val_t syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name(val_t p0, val_t p1, val_t p2){
1746 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
1747 val_t REGB0;
1748 val_t tmp;
1749 static val_t once_value_1; /* Once value */
1750 static val_t once_value_2; /* Once value */
1751 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1752 fra.me.file = LOCATE_syntax_base;
1753 fra.me.line = 300;
1754 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name;
1755 fra.me.has_broke = 0;
1756 fra.me.REG_size = 7;
1757 fra.me.REG[0] = NIT_NULL;
1758 fra.me.REG[1] = NIT_NULL;
1759 fra.me.REG[2] = NIT_NULL;
1760 fra.me.REG[3] = NIT_NULL;
1761 fra.me.REG[4] = NIT_NULL;
1762 fra.me.REG[5] = NIT_NULL;
1763 fra.me.REG[6] = NIT_NULL;
1764 fra.me.REG[0] = p0;
1765 fra.me.REG[1] = p1;
1766 fra.me.REG[2] = p2;
1767 REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[0])!=NIT_NULL);
1768 /* ./syntax//syntax_base.nit:302 */
1769 if (UNTAG_Bool(REGB0)) {
1770 } else {
1771 fprintf(stderr, "Uninitialized attribute %s", "_module");
1772 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 302);
1773 nit_exit(1);
1774 }
1775 fra.me.REG[3] = ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[0]);
1776 REGB0 = CALL_abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1777 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1778 if (UNTAG_Bool(REGB0)) {
1779 REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
1780 if (UNTAG_Bool(REGB0)) {
1781 } else {
1782 fprintf(stderr, "Uninitialized attribute %s", "_tc");
1783 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 302);
1784 nit_exit(1);
1785 }
1786 fra.me.REG[3] = ATTR_syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0]);
1787 REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[0])!=NIT_NULL);
1788 if (UNTAG_Bool(REGB0)) {
1789 } else {
1790 fprintf(stderr, "Uninitialized attribute %s", "_module");
1791 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 302);
1792 nit_exit(1);
1793 }
1794 fra.me.REG[4] = ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[0]);
1795 fra.me.REG[4] = CALL_abstractmetamodel___MMModule___location(fra.me.REG[4])(fra.me.REG[4]);
1796 REGB0 = TAG_Int(3);
1797 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
1798 if (!once_value_1) {
1799 fra.me.REG[6] = BOX_NativeString("Missing necessary class: \"");
1800 REGB0 = TAG_Int(26);
1801 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
1802 once_value_1 = fra.me.REG[6];
1803 register_static_object(&once_value_1);
1804 } else fra.me.REG[6] = once_value_1;
1805 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
1806 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
1807 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
1808 if (!once_value_2) {
1809 fra.me.REG[6] = BOX_NativeString("\"");
1810 REGB0 = TAG_Int(1);
1811 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
1812 once_value_2 = fra.me.REG[6];
1813 register_static_object(&once_value_2);
1814 } else fra.me.REG[6] = once_value_2;
1815 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
1816 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
1817 CALL_mmloader___ToolContext___fatal_error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]);
1818 }
1819 REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[0])!=NIT_NULL);
1820 /* ./syntax//syntax_base.nit:303 */
1821 if (UNTAG_Bool(REGB0)) {
1822 } else {
1823 fprintf(stderr, "Uninitialized attribute %s", "_module");
1824 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 303);
1825 nit_exit(1);
1826 }
1827 fra.me.REG[0] = ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[0]);
1828 fra.me.REG[1] = CALL_abstractmetamodel___MMModule___class_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1829 fra.me.REG[2] = CALL_genericity___MMLocalClass___get_instantiate_type(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1830 /* ./syntax//syntax_base.nit:304 */
1831 goto label3;
1832 label3: while(0);
1833 stack_frame_head = fra.me.prev;
1834 return fra.me.REG[2];
1835 }
1836 val_t syntax_base___AbsSyntaxVisitor___type_object(val_t p0){
1837 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1838 val_t REGB0;
1839 val_t tmp;
1840 static val_t once_value_1; /* Once value */
1841 static val_t once_value_2; /* Once value */
1842 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1843 fra.me.file = LOCATE_syntax_base;
1844 fra.me.line = 307;
1845 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___type_object;
1846 fra.me.has_broke = 0;
1847 fra.me.REG_size = 2;
1848 fra.me.REG[0] = NIT_NULL;
1849 fra.me.REG[1] = NIT_NULL;
1850 fra.me.REG[0] = p0;
1851 /* ./syntax//syntax_base.nit:310 */
1852 if (!once_value_1) {
1853 if (!once_value_2) {
1854 fra.me.REG[1] = BOX_NativeString("Object");
1855 REGB0 = TAG_Int(6);
1856 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
1857 once_value_2 = fra.me.REG[1];
1858 register_static_object(&once_value_2);
1859 } else fra.me.REG[1] = once_value_2;
1860 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
1861 once_value_1 = fra.me.REG[1];
1862 register_static_object(&once_value_1);
1863 } else fra.me.REG[1] = once_value_1;
1864 fra.me.REG[1] = CALL_syntax_base___AbsSyntaxVisitor___get_type_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1865 goto label3;
1866 label3: while(0);
1867 stack_frame_head = fra.me.prev;
1868 return fra.me.REG[1];
1869 }
1870 val_t syntax_base___AbsSyntaxVisitor___type_bool(val_t p0){
1871 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1872 val_t REGB0;
1873 val_t tmp;
1874 static val_t once_value_1; /* Once value */
1875 static val_t once_value_2; /* Once value */
1876 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1877 fra.me.file = LOCATE_syntax_base;
1878 fra.me.line = 313;
1879 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___type_bool;
1880 fra.me.has_broke = 0;
1881 fra.me.REG_size = 2;
1882 fra.me.REG[0] = NIT_NULL;
1883 fra.me.REG[1] = NIT_NULL;
1884 fra.me.REG[0] = p0;
1885 /* ./syntax//syntax_base.nit:316 */
1886 if (!once_value_1) {
1887 if (!once_value_2) {
1888 fra.me.REG[1] = BOX_NativeString("Bool");
1889 REGB0 = TAG_Int(4);
1890 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
1891 once_value_2 = fra.me.REG[1];
1892 register_static_object(&once_value_2);
1893 } else fra.me.REG[1] = once_value_2;
1894 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
1895 once_value_1 = fra.me.REG[1];
1896 register_static_object(&once_value_1);
1897 } else fra.me.REG[1] = once_value_1;
1898 fra.me.REG[1] = CALL_syntax_base___AbsSyntaxVisitor___get_type_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1899 goto label3;
1900 label3: while(0);
1901 stack_frame_head = fra.me.prev;
1902 return fra.me.REG[1];
1903 }
1904 val_t syntax_base___AbsSyntaxVisitor___type_int(val_t p0){
1905 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1906 val_t REGB0;
1907 val_t tmp;
1908 static val_t once_value_1; /* Once value */
1909 static val_t once_value_2; /* Once value */
1910 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1911 fra.me.file = LOCATE_syntax_base;
1912 fra.me.line = 319;
1913 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___type_int;
1914 fra.me.has_broke = 0;
1915 fra.me.REG_size = 2;
1916 fra.me.REG[0] = NIT_NULL;
1917 fra.me.REG[1] = NIT_NULL;
1918 fra.me.REG[0] = p0;
1919 /* ./syntax//syntax_base.nit:322 */
1920 if (!once_value_1) {
1921 if (!once_value_2) {
1922 fra.me.REG[1] = BOX_NativeString("Int");
1923 REGB0 = TAG_Int(3);
1924 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
1925 once_value_2 = fra.me.REG[1];
1926 register_static_object(&once_value_2);
1927 } else fra.me.REG[1] = once_value_2;
1928 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
1929 once_value_1 = fra.me.REG[1];
1930 register_static_object(&once_value_1);
1931 } else fra.me.REG[1] = once_value_1;
1932 fra.me.REG[1] = CALL_syntax_base___AbsSyntaxVisitor___get_type_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1933 goto label3;
1934 label3: while(0);
1935 stack_frame_head = fra.me.prev;
1936 return fra.me.REG[1];
1937 }
1938 val_t syntax_base___AbsSyntaxVisitor___type_float(val_t p0){
1939 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1940 val_t REGB0;
1941 val_t tmp;
1942 static val_t once_value_1; /* Once value */
1943 static val_t once_value_2; /* Once value */
1944 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1945 fra.me.file = LOCATE_syntax_base;
1946 fra.me.line = 325;
1947 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___type_float;
1948 fra.me.has_broke = 0;
1949 fra.me.REG_size = 2;
1950 fra.me.REG[0] = NIT_NULL;
1951 fra.me.REG[1] = NIT_NULL;
1952 fra.me.REG[0] = p0;
1953 /* ./syntax//syntax_base.nit:328 */
1954 if (!once_value_1) {
1955 if (!once_value_2) {
1956 fra.me.REG[1] = BOX_NativeString("Float");
1957 REGB0 = TAG_Int(5);
1958 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
1959 once_value_2 = fra.me.REG[1];
1960 register_static_object(&once_value_2);
1961 } else fra.me.REG[1] = once_value_2;
1962 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
1963 once_value_1 = fra.me.REG[1];
1964 register_static_object(&once_value_1);
1965 } else fra.me.REG[1] = once_value_1;
1966 fra.me.REG[1] = CALL_syntax_base___AbsSyntaxVisitor___get_type_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1967 goto label3;
1968 label3: while(0);
1969 stack_frame_head = fra.me.prev;
1970 return fra.me.REG[1];
1971 }
1972 val_t syntax_base___AbsSyntaxVisitor___type_char(val_t p0){
1973 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1974 val_t REGB0;
1975 val_t tmp;
1976 static val_t once_value_1; /* Once value */
1977 static val_t once_value_2; /* Once value */
1978 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1979 fra.me.file = LOCATE_syntax_base;
1980 fra.me.line = 331;
1981 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___type_char;
1982 fra.me.has_broke = 0;
1983 fra.me.REG_size = 2;
1984 fra.me.REG[0] = NIT_NULL;
1985 fra.me.REG[1] = NIT_NULL;
1986 fra.me.REG[0] = p0;
1987 /* ./syntax//syntax_base.nit:334 */
1988 if (!once_value_1) {
1989 if (!once_value_2) {
1990 fra.me.REG[1] = BOX_NativeString("Char");
1991 REGB0 = TAG_Int(4);
1992 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
1993 once_value_2 = fra.me.REG[1];
1994 register_static_object(&once_value_2);
1995 } else fra.me.REG[1] = once_value_2;
1996 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
1997 once_value_1 = fra.me.REG[1];
1998 register_static_object(&once_value_1);
1999 } else fra.me.REG[1] = once_value_1;
2000 fra.me.REG[1] = CALL_syntax_base___AbsSyntaxVisitor___get_type_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2001 goto label3;
2002 label3: while(0);
2003 stack_frame_head = fra.me.prev;
2004 return fra.me.REG[1];
2005 }
2006 val_t syntax_base___AbsSyntaxVisitor___type_string(val_t p0){
2007 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2008 val_t REGB0;
2009 val_t tmp;
2010 static val_t once_value_1; /* Once value */
2011 static val_t once_value_2; /* Once value */
2012 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2013 fra.me.file = LOCATE_syntax_base;
2014 fra.me.line = 337;
2015 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___type_string;
2016 fra.me.has_broke = 0;
2017 fra.me.REG_size = 2;
2018 fra.me.REG[0] = NIT_NULL;
2019 fra.me.REG[1] = NIT_NULL;
2020 fra.me.REG[0] = p0;
2021 /* ./syntax//syntax_base.nit:340 */
2022 if (!once_value_1) {
2023 if (!once_value_2) {
2024 fra.me.REG[1] = BOX_NativeString("String");
2025 REGB0 = TAG_Int(6);
2026 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
2027 once_value_2 = fra.me.REG[1];
2028 register_static_object(&once_value_2);
2029 } else fra.me.REG[1] = once_value_2;
2030 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
2031 once_value_1 = fra.me.REG[1];
2032 register_static_object(&once_value_1);
2033 } else fra.me.REG[1] = once_value_1;
2034 fra.me.REG[1] = CALL_syntax_base___AbsSyntaxVisitor___get_type_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2035 goto label3;
2036 label3: while(0);
2037 stack_frame_head = fra.me.prev;
2038 return fra.me.REG[1];
2039 }
2040 val_t syntax_base___AbsSyntaxVisitor___type_collection(val_t p0){
2041 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2042 val_t REGB0;
2043 val_t tmp;
2044 static val_t once_value_1; /* Once value */
2045 static val_t once_value_2; /* Once value */
2046 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2047 fra.me.file = LOCATE_syntax_base;
2048 fra.me.line = 343;
2049 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___type_collection;
2050 fra.me.has_broke = 0;
2051 fra.me.REG_size = 4;
2052 fra.me.REG[0] = NIT_NULL;
2053 fra.me.REG[1] = NIT_NULL;
2054 fra.me.REG[2] = NIT_NULL;
2055 fra.me.REG[3] = NIT_NULL;
2056 fra.me.REG[0] = p0;
2057 /* ./syntax//syntax_base.nit:346 */
2058 if (!once_value_1) {
2059 if (!once_value_2) {
2060 fra.me.REG[1] = BOX_NativeString("Collection");
2061 REGB0 = TAG_Int(10);
2062 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
2063 once_value_2 = fra.me.REG[1];
2064 register_static_object(&once_value_2);
2065 } else fra.me.REG[1] = once_value_2;
2066 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
2067 once_value_1 = fra.me.REG[1];
2068 register_static_object(&once_value_1);
2069 } else fra.me.REG[1] = once_value_1;
2070 REGB0 = TAG_Int(1);
2071 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
2072 fra.me.REG[3] = CALL_syntax_base___AbsSyntaxVisitor___type_object(fra.me.REG[0])(fra.me.REG[0]);
2073 fra.me.REG[3] = CALL_static_type___MMType___as_nullable(fra.me.REG[3])(fra.me.REG[3]);
2074 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
2075 fra.me.REG[2] = CALL_syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
2076 goto label3;
2077 label3: while(0);
2078 stack_frame_head = fra.me.prev;
2079 return fra.me.REG[2];
2080 }
2081 val_t syntax_base___AbsSyntaxVisitor___type_nativestring(val_t p0){
2082 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2083 val_t REGB0;
2084 val_t tmp;
2085 static val_t once_value_1; /* Once value */
2086 static val_t once_value_2; /* Once value */
2087 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2088 fra.me.file = LOCATE_syntax_base;
2089 fra.me.line = 349;
2090 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___type_nativestring;
2091 fra.me.has_broke = 0;
2092 fra.me.REG_size = 2;
2093 fra.me.REG[0] = NIT_NULL;
2094 fra.me.REG[1] = NIT_NULL;
2095 fra.me.REG[0] = p0;
2096 /* ./syntax//syntax_base.nit:352 */
2097 if (!once_value_1) {
2098 if (!once_value_2) {
2099 fra.me.REG[1] = BOX_NativeString("NativeString");
2100 REGB0 = TAG_Int(12);
2101 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
2102 once_value_2 = fra.me.REG[1];
2103 register_static_object(&once_value_2);
2104 } else fra.me.REG[1] = once_value_2;
2105 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
2106 once_value_1 = fra.me.REG[1];
2107 register_static_object(&once_value_1);
2108 } else fra.me.REG[1] = once_value_1;
2109 fra.me.REG[1] = CALL_syntax_base___AbsSyntaxVisitor___get_type_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2110 goto label3;
2111 label3: while(0);
2112 stack_frame_head = fra.me.prev;
2113 return fra.me.REG[1];
2114 }
2115 val_t syntax_base___AbsSyntaxVisitor___type_array(val_t p0, val_t p1){
2116 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2117 val_t REGB0;
2118 val_t tmp;
2119 static val_t once_value_1; /* Once value */
2120 static val_t once_value_2; /* Once value */
2121 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2122 fra.me.file = LOCATE_syntax_base;
2123 fra.me.line = 355;
2124 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___type_array;
2125 fra.me.has_broke = 0;
2126 fra.me.REG_size = 4;
2127 fra.me.REG[0] = NIT_NULL;
2128 fra.me.REG[1] = NIT_NULL;
2129 fra.me.REG[2] = NIT_NULL;
2130 fra.me.REG[3] = NIT_NULL;
2131 fra.me.REG[0] = p0;
2132 fra.me.REG[1] = p1;
2133 /* ./syntax//syntax_base.nit:358 */
2134 if (!once_value_1) {
2135 if (!once_value_2) {
2136 fra.me.REG[2] = BOX_NativeString("Array");
2137 REGB0 = TAG_Int(5);
2138 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
2139 once_value_2 = fra.me.REG[2];
2140 register_static_object(&once_value_2);
2141 } else fra.me.REG[2] = once_value_2;
2142 fra.me.REG[2] = CALL_symbol___String___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
2143 once_value_1 = fra.me.REG[2];
2144 register_static_object(&once_value_1);
2145 } else fra.me.REG[2] = once_value_1;
2146 REGB0 = TAG_Int(1);
2147 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
2148 array___Array___add(fra.me.REG[3], fra.me.REG[1]);
2149 fra.me.REG[3] = CALL_syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[3]);
2150 goto label3;
2151 label3: while(0);
2152 stack_frame_head = fra.me.prev;
2153 return fra.me.REG[3];
2154 }
2155 val_t syntax_base___AbsSyntaxVisitor___type_discrete(val_t p0){
2156 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2157 val_t REGB0;
2158 val_t tmp;
2159 static val_t once_value_1; /* Once value */
2160 static val_t once_value_2; /* Once value */
2161 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2162 fra.me.file = LOCATE_syntax_base;
2163 fra.me.line = 361;
2164 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___type_discrete;
2165 fra.me.has_broke = 0;
2166 fra.me.REG_size = 2;
2167 fra.me.REG[0] = NIT_NULL;
2168 fra.me.REG[1] = NIT_NULL;
2169 fra.me.REG[0] = p0;
2170 /* ./syntax//syntax_base.nit:364 */
2171 if (!once_value_1) {
2172 if (!once_value_2) {
2173 fra.me.REG[1] = BOX_NativeString("Discrete");
2174 REGB0 = TAG_Int(8);
2175 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
2176 once_value_2 = fra.me.REG[1];
2177 register_static_object(&once_value_2);
2178 } else fra.me.REG[1] = once_value_2;
2179 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
2180 once_value_1 = fra.me.REG[1];
2181 register_static_object(&once_value_1);
2182 } else fra.me.REG[1] = once_value_1;
2183 fra.me.REG[1] = CALL_syntax_base___AbsSyntaxVisitor___get_type_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2184 goto label3;
2185 label3: while(0);
2186 stack_frame_head = fra.me.prev;
2187 return fra.me.REG[1];
2188 }
2189 val_t syntax_base___AbsSyntaxVisitor___type_range(val_t p0, val_t p1){
2190 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2191 val_t REGB0;
2192 val_t tmp;
2193 static val_t once_value_1; /* Once value */
2194 static val_t once_value_2; /* Once value */
2195 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2196 fra.me.file = LOCATE_syntax_base;
2197 fra.me.line = 367;
2198 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___type_range;
2199 fra.me.has_broke = 0;
2200 fra.me.REG_size = 4;
2201 fra.me.REG[0] = NIT_NULL;
2202 fra.me.REG[1] = NIT_NULL;
2203 fra.me.REG[2] = NIT_NULL;
2204 fra.me.REG[3] = NIT_NULL;
2205 fra.me.REG[0] = p0;
2206 fra.me.REG[1] = p1;
2207 /* ./syntax//syntax_base.nit:370 */
2208 if (!once_value_1) {
2209 if (!once_value_2) {
2210 fra.me.REG[2] = BOX_NativeString("Range");
2211 REGB0 = TAG_Int(5);
2212 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
2213 once_value_2 = fra.me.REG[2];
2214 register_static_object(&once_value_2);
2215 } else fra.me.REG[2] = once_value_2;
2216 fra.me.REG[2] = CALL_symbol___String___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
2217 once_value_1 = fra.me.REG[2];
2218 register_static_object(&once_value_1);
2219 } else fra.me.REG[2] = once_value_1;
2220 REGB0 = TAG_Int(1);
2221 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
2222 array___Array___add(fra.me.REG[3], fra.me.REG[1]);
2223 fra.me.REG[3] = CALL_syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[3]);
2224 goto label3;
2225 label3: while(0);
2226 stack_frame_head = fra.me.prev;
2227 return fra.me.REG[3];
2228 }
2229 val_t syntax_base___AbsSyntaxVisitor___type_none(val_t p0){
2230 struct {struct stack_frame_t me;} fra;
2231 val_t REGB0;
2232 val_t tmp;
2233 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2234 fra.me.file = LOCATE_syntax_base;
2235 fra.me.line = 373;
2236 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___type_none;
2237 fra.me.has_broke = 0;
2238 fra.me.REG_size = 1;
2239 fra.me.REG[0] = NIT_NULL;
2240 fra.me.REG[0] = p0;
2241 REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[0])!=NIT_NULL);
2242 /* ./syntax//syntax_base.nit:376 */
2243 if (UNTAG_Bool(REGB0)) {
2244 } else {
2245 fprintf(stderr, "Uninitialized attribute %s", "_module");
2246 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 376);
2247 nit_exit(1);
2248 }
2249 fra.me.REG[0] = ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[0]);
2250 fra.me.REG[0] = CALL_static_type___MMModule___type_none(fra.me.REG[0])(fra.me.REG[0]);
2251 goto label1;
2252 label1: while(0);
2253 stack_frame_head = fra.me.prev;
2254 return fra.me.REG[0];
2255 }
2256 val_t syntax_base___AbsSyntaxVisitor___get_method(val_t p0, val_t p1, val_t p2){
2257 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
2258 val_t REGB0;
2259 val_t tmp;
2260 static val_t once_value_1; /* Once value */
2261 static val_t once_value_2; /* Once value */
2262 static val_t once_value_3; /* Once value */
2263 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2264 fra.me.file = LOCATE_syntax_base;
2265 fra.me.line = 379;
2266 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___get_method;
2267 fra.me.has_broke = 0;
2268 fra.me.REG_size = 6;
2269 fra.me.REG[0] = NIT_NULL;
2270 fra.me.REG[1] = NIT_NULL;
2271 fra.me.REG[2] = NIT_NULL;
2272 fra.me.REG[3] = NIT_NULL;
2273 fra.me.REG[4] = NIT_NULL;
2274 fra.me.REG[5] = NIT_NULL;
2275 fra.me.REG[0] = p0;
2276 fra.me.REG[1] = p1;
2277 fra.me.REG[2] = p2;
2278 fra.me.REG[3] = CALL_static_type___MMType___local_class(fra.me.REG[1])(fra.me.REG[1]);
2279 REGB0 = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
2280 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2281 /* ./syntax//syntax_base.nit:381 */
2282 if (UNTAG_Bool(REGB0)) {
2283 fra.me.REG[3] = CALL_parser_prod___Visitor___current_node(fra.me.REG[0])(fra.me.REG[0]);
2284 REGB0 = TAG_Int(5);
2285 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
2286 /* ./syntax//syntax_base.nit:382 */
2287 if (!once_value_1) {
2288 fra.me.REG[5] = BOX_NativeString("Fatal Error: ");
2289 REGB0 = TAG_Int(13);
2290 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
2291 once_value_1 = fra.me.REG[5];
2292 register_static_object(&once_value_1);
2293 } else fra.me.REG[5] = once_value_1;
2294 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
2295 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
2296 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
2297 if (!once_value_2) {
2298 fra.me.REG[5] = BOX_NativeString(" must have a property named ");
2299 REGB0 = TAG_Int(28);
2300 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
2301 once_value_2 = fra.me.REG[5];
2302 register_static_object(&once_value_2);
2303 } else fra.me.REG[5] = once_value_2;
2304 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
2305 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2306 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
2307 if (!once_value_3) {
2308 fra.me.REG[5] = BOX_NativeString(".");
2309 REGB0 = TAG_Int(1);
2310 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
2311 once_value_3 = fra.me.REG[5];
2312 register_static_object(&once_value_3);
2313 } else fra.me.REG[5] = once_value_3;
2314 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
2315 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
2316 CALL_syntax_base___AbsSyntaxVisitor___fatal_error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[4]);
2317 }
2318 fra.me.REG[1] = CALL_static_type___MMType___local_class(fra.me.REG[1])(fra.me.REG[1]);
2319 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___select_method(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2320 /* ./syntax//syntax_base.nit:384 */
2321 goto label4;
2322 label4: while(0);
2323 stack_frame_head = fra.me.prev;
2324 return fra.me.REG[2];
2325 }
2326 val_t syntax_base___AbsSyntaxVisitor___module(val_t p0){
2327 struct {struct stack_frame_t me;} fra;
2328 val_t REGB0;
2329 val_t tmp;
2330 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2331 fra.me.file = LOCATE_syntax_base;
2332 fra.me.line = 387;
2333 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___module;
2334 fra.me.has_broke = 0;
2335 fra.me.REG_size = 1;
2336 fra.me.REG[0] = NIT_NULL;
2337 fra.me.REG[0] = p0;
2338 REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[0])!=NIT_NULL);
2339 /* ./syntax//syntax_base.nit:387 */
2340 if (UNTAG_Bool(REGB0)) {
2341 } else {
2342 fprintf(stderr, "Uninitialized attribute %s", "_module");
2343 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 387);
2344 nit_exit(1);
2345 }
2346 fra.me.REG[0] = ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[0]);
2347 stack_frame_head = fra.me.prev;
2348 return fra.me.REG[0];
2349 }
2350 val_t syntax_base___AbsSyntaxVisitor___local_class(val_t p0){
2351 struct {struct stack_frame_t me;} fra;
2352 val_t REGB0;
2353 val_t tmp;
2354 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2355 fra.me.file = LOCATE_syntax_base;
2356 fra.me.line = 390;
2357 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___local_class;
2358 fra.me.has_broke = 0;
2359 fra.me.REG_size = 1;
2360 fra.me.REG[0] = NIT_NULL;
2361 fra.me.REG[0] = p0;
2362 fra.me.REG[0] = ATTR_syntax_base___AbsSyntaxVisitor____local_class(fra.me.REG[0]);
2363 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
2364 /* ./syntax//syntax_base.nit:391 */
2365 if (UNTAG_Bool(REGB0)) {
2366 } else {
2367 fprintf(stderr, "Cast failed");
2368 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 391);
2369 nit_exit(1);
2370 }
2371 goto label1;
2372 label1: while(0);
2373 stack_frame_head = fra.me.prev;
2374 return fra.me.REG[0];
2375 }
2376 void syntax_base___AbsSyntaxVisitor___local_class__eq(val_t p0, val_t p1){
2377 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2378 val_t tmp;
2379 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2380 fra.me.file = LOCATE_syntax_base;
2381 fra.me.line = 392;
2382 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___local_class__eq;
2383 fra.me.has_broke = 0;
2384 fra.me.REG_size = 2;
2385 fra.me.REG[0] = NIT_NULL;
2386 fra.me.REG[1] = NIT_NULL;
2387 fra.me.REG[0] = p0;
2388 fra.me.REG[1] = p1;
2389 /* ./syntax//syntax_base.nit:392 */
2390 ATTR_syntax_base___AbsSyntaxVisitor____local_class(fra.me.REG[0]) = fra.me.REG[1];
2391 stack_frame_head = fra.me.prev;
2392 return;
2393 }
2394 val_t syntax_base___AbsSyntaxVisitor___local_property(val_t p0){
2395 struct {struct stack_frame_t me;} fra;
2396 val_t REGB0;
2397 val_t tmp;
2398 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2399 fra.me.file = LOCATE_syntax_base;
2400 fra.me.line = 394;
2401 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___local_property;
2402 fra.me.has_broke = 0;
2403 fra.me.REG_size = 1;
2404 fra.me.REG[0] = NIT_NULL;
2405 fra.me.REG[0] = p0;
2406 fra.me.REG[0] = ATTR_syntax_base___AbsSyntaxVisitor____local_property(fra.me.REG[0]);
2407 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
2408 /* ./syntax//syntax_base.nit:395 */
2409 if (UNTAG_Bool(REGB0)) {
2410 } else {
2411 fprintf(stderr, "Cast failed");
2412 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 395);
2413 nit_exit(1);
2414 }
2415 goto label1;
2416 label1: while(0);
2417 stack_frame_head = fra.me.prev;
2418 return fra.me.REG[0];
2419 }
2420 void syntax_base___AbsSyntaxVisitor___local_property__eq(val_t p0, val_t p1){
2421 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2422 val_t tmp;
2423 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2424 fra.me.file = LOCATE_syntax_base;
2425 fra.me.line = 396;
2426 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___local_property__eq;
2427 fra.me.has_broke = 0;
2428 fra.me.REG_size = 2;
2429 fra.me.REG[0] = NIT_NULL;
2430 fra.me.REG[1] = NIT_NULL;
2431 fra.me.REG[0] = p0;
2432 fra.me.REG[1] = p1;
2433 /* ./syntax//syntax_base.nit:396 */
2434 ATTR_syntax_base___AbsSyntaxVisitor____local_property(fra.me.REG[0]) = fra.me.REG[1];
2435 stack_frame_head = fra.me.prev;
2436 return;
2437 }
2438 val_t syntax_base___AbsSyntaxVisitor___tc(val_t p0){
2439 struct {struct stack_frame_t me;} fra;
2440 val_t REGB0;
2441 val_t tmp;
2442 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2443 fra.me.file = LOCATE_syntax_base;
2444 fra.me.line = 398;
2445 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___tc;
2446 fra.me.has_broke = 0;
2447 fra.me.REG_size = 1;
2448 fra.me.REG[0] = NIT_NULL;
2449 fra.me.REG[0] = p0;
2450 REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
2451 /* ./syntax//syntax_base.nit:398 */
2452 if (UNTAG_Bool(REGB0)) {
2453 } else {
2454 fprintf(stderr, "Uninitialized attribute %s", "_tc");
2455 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 398);
2456 nit_exit(1);
2457 }
2458 fra.me.REG[0] = ATTR_syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0]);
2459 stack_frame_head = fra.me.prev;
2460 return fra.me.REG[0];
2461 }
2462 void syntax_base___AbsSyntaxVisitor___error(val_t p0, val_t p1, val_t p2){
2463 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2464 val_t REGB0;
2465 val_t REGB1;
2466 val_t tmp;
2467 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2468 fra.me.file = LOCATE_syntax_base;
2469 fra.me.line = 401;
2470 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___error;
2471 fra.me.has_broke = 0;
2472 fra.me.REG_size = 4;
2473 fra.me.REG[0] = NIT_NULL;
2474 fra.me.REG[1] = NIT_NULL;
2475 fra.me.REG[2] = NIT_NULL;
2476 fra.me.REG[3] = NIT_NULL;
2477 fra.me.REG[0] = p0;
2478 fra.me.REG[1] = p1;
2479 fra.me.REG[2] = p2;
2480 REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
2481 /* ./syntax//syntax_base.nit:404 */
2482 if (UNTAG_Bool(REGB0)) {
2483 } else {
2484 fprintf(stderr, "Uninitialized attribute %s", "_tc");
2485 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 404);
2486 nit_exit(1);
2487 }
2488 fra.me.REG[0] = ATTR_syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0]);
2489 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2490 if (UNTAG_Bool(REGB0)) {
2491 } else {
2492 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2493 if (UNTAG_Bool(REGB1)) {
2494 REGB1 = TAG_Bool(false);
2495 REGB0 = REGB1;
2496 } else {
2497 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2498 REGB0 = REGB1;
2499 }
2500 }
2501 if (UNTAG_Bool(REGB0)) {
2502 fra.me.REG[3] = NIT_NULL;
2503 } else {
2504 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2505 if (UNTAG_Bool(REGB0)) {
2506 fprintf(stderr, "Reciever is null");
2507 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 404);
2508 nit_exit(1);
2509 }
2510 fra.me.REG[1] = CALL_parser_nodes___ANode___location(fra.me.REG[1])(fra.me.REG[1]);
2511 fra.me.REG[3] = fra.me.REG[1];
2512 }
2513 CALL_mmloader___ToolContext___error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
2514 stack_frame_head = fra.me.prev;
2515 return;
2516 }
2517 void syntax_base___AbsSyntaxVisitor___fatal_error(val_t p0, val_t p1, val_t p2){
2518 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2519 val_t REGB0;
2520 val_t REGB1;
2521 val_t tmp;
2522 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2523 fra.me.file = LOCATE_syntax_base;
2524 fra.me.line = 407;
2525 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___fatal_error;
2526 fra.me.has_broke = 0;
2527 fra.me.REG_size = 4;
2528 fra.me.REG[0] = NIT_NULL;
2529 fra.me.REG[1] = NIT_NULL;
2530 fra.me.REG[2] = NIT_NULL;
2531 fra.me.REG[3] = NIT_NULL;
2532 fra.me.REG[0] = p0;
2533 fra.me.REG[1] = p1;
2534 fra.me.REG[2] = p2;
2535 REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
2536 /* ./syntax//syntax_base.nit:410 */
2537 if (UNTAG_Bool(REGB0)) {
2538 } else {
2539 fprintf(stderr, "Uninitialized attribute %s", "_tc");
2540 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 410);
2541 nit_exit(1);
2542 }
2543 fra.me.REG[0] = ATTR_syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0]);
2544 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2545 if (UNTAG_Bool(REGB0)) {
2546 } else {
2547 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2548 if (UNTAG_Bool(REGB1)) {
2549 REGB1 = TAG_Bool(false);
2550 REGB0 = REGB1;
2551 } else {
2552 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2553 REGB0 = REGB1;
2554 }
2555 }
2556 if (UNTAG_Bool(REGB0)) {
2557 fra.me.REG[3] = NIT_NULL;
2558 } else {
2559 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2560 if (UNTAG_Bool(REGB0)) {
2561 fprintf(stderr, "Reciever is null");
2562 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 410);
2563 nit_exit(1);
2564 }
2565 fra.me.REG[1] = CALL_parser_nodes___ANode___location(fra.me.REG[1])(fra.me.REG[1]);
2566 fra.me.REG[3] = fra.me.REG[1];
2567 }
2568 CALL_mmloader___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
2569 stack_frame_head = fra.me.prev;
2570 return;
2571 }
2572 void syntax_base___AbsSyntaxVisitor___warning(val_t p0, val_t p1, val_t p2){
2573 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2574 val_t REGB0;
2575 val_t REGB1;
2576 val_t tmp;
2577 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2578 fra.me.file = LOCATE_syntax_base;
2579 fra.me.line = 413;
2580 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___warning;
2581 fra.me.has_broke = 0;
2582 fra.me.REG_size = 4;
2583 fra.me.REG[0] = NIT_NULL;
2584 fra.me.REG[1] = NIT_NULL;
2585 fra.me.REG[2] = NIT_NULL;
2586 fra.me.REG[3] = NIT_NULL;
2587 fra.me.REG[0] = p0;
2588 fra.me.REG[1] = p1;
2589 fra.me.REG[2] = p2;
2590 REGB0 = TAG_Bool(ATTR_syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
2591 /* ./syntax//syntax_base.nit:416 */
2592 if (UNTAG_Bool(REGB0)) {
2593 } else {
2594 fprintf(stderr, "Uninitialized attribute %s", "_tc");
2595 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 416);
2596 nit_exit(1);
2597 }
2598 fra.me.REG[0] = ATTR_syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0]);
2599 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2600 if (UNTAG_Bool(REGB0)) {
2601 } else {
2602 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2603 if (UNTAG_Bool(REGB1)) {
2604 REGB1 = TAG_Bool(false);
2605 REGB0 = REGB1;
2606 } else {
2607 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2608 REGB0 = REGB1;
2609 }
2610 }
2611 if (UNTAG_Bool(REGB0)) {
2612 fra.me.REG[3] = NIT_NULL;
2613 } else {
2614 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2615 if (UNTAG_Bool(REGB0)) {
2616 fprintf(stderr, "Reciever is null");
2617 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 416);
2618 nit_exit(1);
2619 }
2620 fra.me.REG[1] = CALL_parser_nodes___ANode___location(fra.me.REG[1])(fra.me.REG[1]);
2621 fra.me.REG[3] = fra.me.REG[1];
2622 }
2623 CALL_mmloader___ToolContext___warning(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
2624 stack_frame_head = fra.me.prev;
2625 return;
2626 }
2627 val_t syntax_base___AbsSyntaxVisitor___check_conform(val_t p0, val_t p1, val_t p2, val_t p3){
2628 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
2629 val_t REGB0;
2630 val_t REGB1;
2631 val_t REGB2;
2632 val_t tmp;
2633 static val_t once_value_2; /* Once value */
2634 static val_t once_value_3; /* Once value */
2635 static val_t once_value_4; /* Once value */
2636 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2637 fra.me.file = LOCATE_syntax_base;
2638 fra.me.line = 419;
2639 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___check_conform;
2640 fra.me.has_broke = 0;
2641 fra.me.REG_size = 6;
2642 fra.me.REG[0] = NIT_NULL;
2643 fra.me.REG[1] = NIT_NULL;
2644 fra.me.REG[2] = NIT_NULL;
2645 fra.me.REG[3] = NIT_NULL;
2646 fra.me.REG[4] = NIT_NULL;
2647 fra.me.REG[5] = NIT_NULL;
2648 fra.me.REG[0] = p0;
2649 fra.me.REG[1] = p1;
2650 fra.me.REG[2] = p2;
2651 fra.me.REG[3] = p3;
2652 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2653 /* ./syntax//syntax_base.nit:422 */
2654 if (UNTAG_Bool(REGB0)) {
2655 } else {
2656 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2657 if (UNTAG_Bool(REGB1)) {
2658 REGB1 = TAG_Bool(false);
2659 REGB0 = REGB1;
2660 } else {
2661 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
2662 REGB0 = REGB1;
2663 }
2664 }
2665 if (UNTAG_Bool(REGB0)) {
2666 REGB0 = TAG_Bool(true);
2667 } else {
2668 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2669 if (UNTAG_Bool(REGB1)) {
2670 } else {
2671 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2672 if (UNTAG_Bool(REGB2)) {
2673 REGB2 = TAG_Bool(false);
2674 REGB1 = REGB2;
2675 } else {
2676 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2677 REGB1 = REGB2;
2678 }
2679 }
2680 REGB0 = REGB1;
2681 }
2682 if (UNTAG_Bool(REGB0)) {
2683 REGB0 = TAG_Bool(false);
2684 /* ./syntax//syntax_base.nit:423 */
2685 goto label1;
2686 }
2687 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2688 /* ./syntax//syntax_base.nit:425 */
2689 if (UNTAG_Bool(REGB1)) {
2690 fprintf(stderr, "Reciever is null");
2691 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 425);
2692 nit_exit(1);
2693 }
2694 REGB1 = CALL_static_type___MMType_____l(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2695 if (UNTAG_Bool(REGB1)) {
2696 REGB1 = TAG_Bool(true);
2697 REGB0 = REGB1;
2698 /* ./syntax//syntax_base.nit:426 */
2699 goto label1;
2700 }
2701 REGB1 = TAG_Int(5);
2702 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB1);
2703 /* ./syntax//syntax_base.nit:428 */
2704 if (!once_value_2) {
2705 fra.me.REG[5] = BOX_NativeString("Type error: expected ");
2706 REGB1 = TAG_Int(21);
2707 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
2708 once_value_2 = fra.me.REG[5];
2709 register_static_object(&once_value_2);
2710 } else fra.me.REG[5] = once_value_2;
2711 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
2712 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2713 array___Array___add(fra.me.REG[4], fra.me.REG[3]);
2714 if (!once_value_3) {
2715 fra.me.REG[3] = BOX_NativeString(", got ");
2716 REGB1 = TAG_Int(6);
2717 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1);
2718 once_value_3 = fra.me.REG[3];
2719 register_static_object(&once_value_3);
2720 } else fra.me.REG[3] = once_value_3;
2721 array___Array___add(fra.me.REG[4], fra.me.REG[3]);
2722 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2723 array___Array___add(fra.me.REG[4], fra.me.REG[2]);
2724 if (!once_value_4) {
2725 fra.me.REG[2] = BOX_NativeString("");
2726 REGB1 = TAG_Int(0);
2727 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
2728 once_value_4 = fra.me.REG[2];
2729 register_static_object(&once_value_4);
2730 } else fra.me.REG[2] = once_value_4;
2731 array___Array___add(fra.me.REG[4], fra.me.REG[2]);
2732 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
2733 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[4]);
2734 REGB1 = TAG_Bool(false);
2735 REGB0 = REGB1;
2736 /* ./syntax//syntax_base.nit:429 */
2737 goto label1;
2738 label1: while(0);
2739 stack_frame_head = fra.me.prev;
2740 return REGB0;
2741 }
2742 val_t syntax_base___AbsSyntaxVisitor___check_expr(val_t p0, val_t p1){
2743 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2744 val_t REGB0;
2745 val_t REGB1;
2746 val_t REGB2;
2747 val_t tmp;
2748 static val_t once_value_1; /* Once value */
2749 static val_t once_value_2; /* Once value */
2750 static val_t once_value_4; /* Once value */
2751 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2752 fra.me.file = LOCATE_syntax_base;
2753 fra.me.line = 432;
2754 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___check_expr;
2755 fra.me.has_broke = 0;
2756 fra.me.REG_size = 4;
2757 fra.me.REG[0] = NIT_NULL;
2758 fra.me.REG[1] = NIT_NULL;
2759 fra.me.REG[2] = NIT_NULL;
2760 fra.me.REG[3] = NIT_NULL;
2761 fra.me.REG[0] = p0;
2762 fra.me.REG[1] = p1;
2763 REGB0 = CALL_syntax_base___AExpr___is_typed(fra.me.REG[1])(fra.me.REG[1]);
2764 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2765 /* ./syntax//syntax_base.nit:437 */
2766 if (UNTAG_Bool(REGB0)) {
2767 fra.me.REG[2] = CALL_syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[0])(fra.me.REG[0]);
2768 REGB0 = CALL_mmloader___ToolContext___error_count(fra.me.REG[2])(fra.me.REG[2]);
2769 REGB1 = TAG_Int(0);
2770 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
2771 /* ./syntax//syntax_base.nit:438 */
2772 if (UNTAG_Bool(REGB2)) {
2773 } else {
2774 REGB1 = TAG_Bool((REGB0)==(REGB1));
2775 REGB2 = REGB1;
2776 /* ./syntax//syntax_base.nit:438 */
2777 }
2778 if (UNTAG_Bool(REGB2)) {
2779 REGB2 = TAG_Int(3);
2780 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB2);
2781 /* ./syntax//syntax_base.nit:439 */
2782 if (!once_value_1) {
2783 fra.me.REG[3] = BOX_NativeString("");
2784 REGB2 = TAG_Int(0);
2785 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
2786 once_value_1 = fra.me.REG[3];
2787 register_static_object(&once_value_1);
2788 } else fra.me.REG[3] = once_value_1;
2789 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
2790 fra.me.REG[3] = CALL_parser_nodes___ANode___location(fra.me.REG[1])(fra.me.REG[1]);
2791 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2792 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
2793 if (!once_value_2) {
2794 fra.me.REG[3] = BOX_NativeString(" not typed but not error");
2795 REGB2 = TAG_Int(24);
2796 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
2797 once_value_2 = fra.me.REG[3];
2798 register_static_object(&once_value_2);
2799 } else fra.me.REG[3] = once_value_2;
2800 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
2801 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2802 CALL_file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
2803 /* ./syntax//syntax_base.nit:440 */
2804 fprintf(stderr, "Aborted");
2805 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 440);
2806 nit_exit(1);
2807 }
2808 REGB2 = TAG_Bool(false);
2809 /* ./syntax//syntax_base.nit:444 */
2810 goto label3;
2811 } else {
2812 REGB1 = CALL_syntax_base___AExpr___is_statement(fra.me.REG[1])(fra.me.REG[1]);
2813 /* ./syntax//syntax_base.nit:445 */
2814 if (UNTAG_Bool(REGB1)) {
2815 /* ./syntax//syntax_base.nit:446 */
2816 if (!once_value_4) {
2817 fra.me.REG[2] = BOX_NativeString("Type error: expected expression.");
2818 REGB1 = TAG_Int(32);
2819 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
2820 once_value_4 = fra.me.REG[2];
2821 register_static_object(&once_value_4);
2822 } else fra.me.REG[2] = once_value_4;
2823 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
2824 REGB1 = TAG_Bool(false);
2825 REGB2 = REGB1;
2826 /* ./syntax//syntax_base.nit:447 */
2827 goto label3;
2828 }
2829 }
2830 REGB1 = TAG_Bool(true);
2831 REGB2 = REGB1;
2832 /* ./syntax//syntax_base.nit:449 */
2833 goto label3;
2834 label3: while(0);
2835 stack_frame_head = fra.me.prev;
2836 return REGB2;
2837 }
2838 val_t syntax_base___AbsSyntaxVisitor___check_conform_expr(val_t p0, val_t p1, val_t p2){
2839 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2840 val_t REGB0;
2841 val_t REGB1;
2842 val_t tmp;
2843 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2844 fra.me.file = LOCATE_syntax_base;
2845 fra.me.line = 452;
2846 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___check_conform_expr;
2847 fra.me.has_broke = 0;
2848 fra.me.REG_size = 4;
2849 fra.me.REG[0] = NIT_NULL;
2850 fra.me.REG[1] = NIT_NULL;
2851 fra.me.REG[2] = NIT_NULL;
2852 fra.me.REG[3] = NIT_NULL;
2853 fra.me.REG[0] = p0;
2854 fra.me.REG[1] = p1;
2855 fra.me.REG[2] = p2;
2856 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2857 /* ./syntax//syntax_base.nit:455 */
2858 if (UNTAG_Bool(REGB0)) {
2859 } else {
2860 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2861 if (UNTAG_Bool(REGB1)) {
2862 REGB1 = TAG_Bool(false);
2863 REGB0 = REGB1;
2864 } else {
2865 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2866 REGB0 = REGB1;
2867 }
2868 }
2869 if (UNTAG_Bool(REGB0)) {
2870 REGB0 = TAG_Bool(false);
2871 goto label1;
2872 }
2873 REGB1 = CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2874 /* ./syntax//syntax_base.nit:456 */
2875 if (UNTAG_Bool(REGB1)) {
2876 fra.me.REG[3] = CALL_syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]);
2877 REGB1 = CALL_syntax_base___AbsSyntaxVisitor___check_conform(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3], fra.me.REG[2]);
2878 REGB0 = REGB1;
2879 goto label1;
2880 } else {
2881 REGB1 = TAG_Bool(false);
2882 REGB0 = REGB1;
2883 goto label1;
2884 }
2885 label1: while(0);
2886 stack_frame_head = fra.me.prev;
2887 return REGB0;
2888 }
2889 val_t syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(val_t p0, val_t p1, val_t p2){
2890 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
2891 val_t REGB0;
2892 val_t REGB1;
2893 val_t REGB2;
2894 val_t tmp;
2895 static val_t once_value_3; /* Once value */
2896 static val_t once_value_4; /* Once value */
2897 static val_t once_value_5; /* Once value */
2898 static val_t once_value_6; /* Once value */
2899 static val_t once_value_7; /* Once value */
2900 static val_t once_value_8; /* Once value */
2901 static val_t once_value_9; /* Once value */
2902 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2903 fra.me.file = LOCATE_syntax_base;
2904 fra.me.line = 459;
2905 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___check_conform_multiexpr;
2906 fra.me.has_broke = 0;
2907 fra.me.REG_size = 9;
2908 fra.me.REG[0] = NIT_NULL;
2909 fra.me.REG[1] = NIT_NULL;
2910 fra.me.REG[2] = NIT_NULL;
2911 fra.me.REG[3] = NIT_NULL;
2912 fra.me.REG[4] = NIT_NULL;
2913 fra.me.REG[5] = NIT_NULL;
2914 fra.me.REG[6] = NIT_NULL;
2915 fra.me.REG[7] = NIT_NULL;
2916 fra.me.REG[8] = NIT_NULL;
2917 fra.me.REG[0] = p0;
2918 fra.me.REG[1] = p1;
2919 fra.me.REG[2] = p2;
2920 fra.me.REG[3] = NIT_NULL;
2921 fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
2922 /* ./syntax//syntax_base.nit:472 */
2923 while(1) {
2924 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]);
2925 if (UNTAG_Bool(REGB0)) {
2926 fra.me.REG[5] = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]);
2927 REGB0 = CALL_syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
2928 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2929 /* ./syntax//syntax_base.nit:473 */
2930 if (UNTAG_Bool(REGB0)) {
2931 fra.me.REG[6] = NIT_NULL;
2932 goto label1;
2933 }
2934 fra.me.REG[7] = CALL_syntax_base___AExpr___stype(fra.me.REG[5])(fra.me.REG[5]);
2935 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2936 /* ./syntax//syntax_base.nit:475 */
2937 if (UNTAG_Bool(REGB0)) {
2938 } else {
2939 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2940 if (UNTAG_Bool(REGB1)) {
2941 REGB1 = TAG_Bool(false);
2942 REGB0 = REGB1;
2943 } else {
2944 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2945 REGB0 = REGB1;
2946 }
2947 }
2948 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2949 if (UNTAG_Bool(REGB0)) {
2950 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2951 if (UNTAG_Bool(REGB0)) {
2952 fprintf(stderr, "Reciever is null");
2953 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 475);
2954 nit_exit(1);
2955 }
2956 REGB0 = CALL_static_type___MMType___is_nullable(fra.me.REG[1])(fra.me.REG[1]);
2957 REGB1 = CALL_static_type___MMType___is_nullable(fra.me.REG[7])(fra.me.REG[7]);
2958 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
2959 if (UNTAG_Bool(REGB2)) {
2960 } else {
2961 REGB1 = TAG_Bool((REGB0)==(REGB1));
2962 REGB2 = REGB1;
2963 /* ./syntax//syntax_base.nit:475 */
2964 }
2965 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
2966 } else {
2967 REGB1 = TAG_Bool(false);
2968 REGB2 = REGB1;
2969 }
2970 if (UNTAG_Bool(REGB2)) {
2971 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2972 /* ./syntax//syntax_base.nit:477 */
2973 if (UNTAG_Bool(REGB2)) {
2974 fprintf(stderr, "Reciever is null");
2975 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 477);
2976 nit_exit(1);
2977 }
2978 fra.me.REG[8] = CALL_static_type___MMType___as_nullable(fra.me.REG[1])(fra.me.REG[1]);
2979 fra.me.REG[1] = fra.me.REG[8];
2980 fra.me.REG[8] = CALL_static_type___MMType___as_nullable(fra.me.REG[7])(fra.me.REG[7]);
2981 fra.me.REG[7] = fra.me.REG[8];
2982 /* ./syntax//syntax_base.nit:478 */
2983 }
2984 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2985 /* ./syntax//syntax_base.nit:480 */
2986 if (UNTAG_Bool(REGB2)) {
2987 } else {
2988 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2989 if (UNTAG_Bool(REGB1)) {
2990 REGB1 = TAG_Bool(false);
2991 REGB2 = REGB1;
2992 } else {
2993 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2994 REGB2 = REGB1;
2995 }
2996 }
2997 if (UNTAG_Bool(REGB2)) {
2998 REGB2 = TAG_Bool(true);
2999 } else {
3000 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3001 if (UNTAG_Bool(REGB1)) {
3002 fprintf(stderr, "Reciever is null");
3003 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 480);
3004 nit_exit(1);
3005 }
3006 REGB1 = CALL_static_type___MMType_____l(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
3007 REGB2 = REGB1;
3008 }
3009 if (UNTAG_Bool(REGB2)) {
3010 fra.me.REG[1] = fra.me.REG[7];
3011 fra.me.REG[3] = fra.me.REG[5];
3012 /* ./syntax//syntax_base.nit:482 */
3013 }
3014 } else {
3015 /* ./syntax//syntax_base.nit:472 */
3016 goto label2;
3017 }
3018 CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]);
3019 }
3020 label2: while(0);
3021 fra.me.REG[2] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
3022 /* ./syntax//syntax_base.nit:485 */
3023 while(1) {
3024 REGB2 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[2])(fra.me.REG[2]);
3025 if (UNTAG_Bool(REGB2)) {
3026 fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[2])(fra.me.REG[2]);
3027 fra.me.REG[5] = CALL_syntax_base___AExpr___stype(fra.me.REG[4])(fra.me.REG[4]);
3028 REGB2 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
3029 /* ./syntax//syntax_base.nit:486 */
3030 if (UNTAG_Bool(REGB2)) {
3031 } else {
3032 fprintf(stderr, "Cast failed");
3033 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 486);
3034 nit_exit(1);
3035 }
3036 REGB2 = CALL_static_type___MMType_____l(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
3037 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
3038 if (UNTAG_Bool(REGB2)) {
3039 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3040 /* ./syntax//syntax_base.nit:487 */
3041 if (UNTAG_Bool(REGB2)) {
3042 } else {
3043 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3044 if (UNTAG_Bool(REGB1)) {
3045 REGB1 = TAG_Bool(false);
3046 REGB2 = REGB1;
3047 } else {
3048 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3049 REGB2 = REGB1;
3050 }
3051 }
3052 if (UNTAG_Bool(REGB2)) {
3053 REGB2 = TAG_Int(5);
3054 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB2);
3055 /* ./syntax//syntax_base.nit:488 */
3056 if (!once_value_3) {
3057 fra.me.REG[7] = BOX_NativeString("Type error: no most general type. Got ");
3058 REGB2 = TAG_Int(38);
3059 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
3060 once_value_3 = fra.me.REG[7];
3061 register_static_object(&once_value_3);
3062 } else fra.me.REG[7] = once_value_3;
3063 array___Array___add(fra.me.REG[5], fra.me.REG[7]);
3064 fra.me.REG[7] = CALL_syntax_base___AExpr___stype(fra.me.REG[4])(fra.me.REG[4]);
3065 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3066 array___Array___add(fra.me.REG[5], fra.me.REG[7]);
3067 if (!once_value_4) {
3068 fra.me.REG[7] = BOX_NativeString(" and ");
3069 REGB2 = TAG_Int(5);
3070 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
3071 once_value_4 = fra.me.REG[7];
3072 register_static_object(&once_value_4);
3073 } else fra.me.REG[7] = once_value_4;
3074 array___Array___add(fra.me.REG[5], fra.me.REG[7]);
3075 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
3076 array___Array___add(fra.me.REG[5], fra.me.REG[7]);
3077 if (!once_value_5) {
3078 fra.me.REG[7] = BOX_NativeString(".");
3079 REGB2 = TAG_Int(1);
3080 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
3081 once_value_5 = fra.me.REG[7];
3082 register_static_object(&once_value_5);
3083 } else fra.me.REG[7] = once_value_5;
3084 array___Array___add(fra.me.REG[5], fra.me.REG[7]);
3085 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
3086 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[5]);
3087 } else {
3088 REGB2 = TAG_Int(7);
3089 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB2);
3090 /* ./syntax//syntax_base.nit:490 */
3091 if (!once_value_6) {
3092 fra.me.REG[7] = BOX_NativeString("Type error: no most general type. Got ");
3093 REGB2 = TAG_Int(38);
3094 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
3095 once_value_6 = fra.me.REG[7];
3096 register_static_object(&once_value_6);
3097 } else fra.me.REG[7] = once_value_6;
3098 array___Array___add(fra.me.REG[5], fra.me.REG[7]);
3099 fra.me.REG[7] = CALL_syntax_base___AExpr___stype(fra.me.REG[4])(fra.me.REG[4]);
3100 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
3101 array___Array___add(fra.me.REG[5], fra.me.REG[7]);
3102 if (!once_value_7) {
3103 fra.me.REG[7] = BOX_NativeString(" and ");
3104 REGB2 = TAG_Int(5);
3105 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
3106 once_value_7 = fra.me.REG[7];
3107 register_static_object(&once_value_7);
3108 } else fra.me.REG[7] = once_value_7;
3109 array___Array___add(fra.me.REG[5], fra.me.REG[7]);
3110 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
3111 array___Array___add(fra.me.REG[5], fra.me.REG[7]);
3112 if (!once_value_8) {
3113 fra.me.REG[7] = BOX_NativeString(" at ");
3114 REGB2 = TAG_Int(4);
3115 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB2);
3116 once_value_8 = fra.me.REG[7];
3117 register_static_object(&once_value_8);
3118 } else fra.me.REG[7] = once_value_8;
3119 array___Array___add(fra.me.REG[5], fra.me.REG[7]);
3120 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3121 if (UNTAG_Bool(REGB2)) {
3122 fprintf(stderr, "Reciever is null");
3123 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 490);
3124 nit_exit(1);
3125 }
3126 fra.me.REG[7] = CALL_parser_nodes___ANode___location(fra.me.REG[3])(fra.me.REG[3]);
3127 fra.me.REG[8] = CALL_parser_nodes___ANode___location(fra.me.REG[4])(fra.me.REG[4]);
3128 fra.me.REG[8] = CALL_location___Location___relative_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
3129 array___Array___add(fra.me.REG[5], fra.me.REG[8]);
3130 if (!once_value_9) {
3131 fra.me.REG[8] = BOX_NativeString(".");
3132 REGB2 = TAG_Int(1);
3133 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB2);
3134 once_value_9 = fra.me.REG[8];
3135 register_static_object(&once_value_9);
3136 } else fra.me.REG[8] = once_value_9;
3137 array___Array___add(fra.me.REG[5], fra.me.REG[8]);
3138 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
3139 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[5]);
3140 }
3141 fra.me.REG[6] = NIT_NULL;
3142 /* ./syntax//syntax_base.nit:492 */
3143 goto label1;
3144 }
3145 } else {
3146 /* ./syntax//syntax_base.nit:485 */
3147 goto label10;
3148 }
3149 CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]);
3150 }
3151 label10: while(0);
3152 fra.me.REG[6] = fra.me.REG[1];
3153 /* ./syntax//syntax_base.nit:495 */
3154 goto label1;
3155 label1: while(0);
3156 stack_frame_head = fra.me.prev;
3157 return fra.me.REG[6];
3158 }
3159 void syntax_base___AbsSyntaxVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
3160 int itpos14 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AbsSyntaxVisitor].i;
3161 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3162 val_t tmp;
3163 if (init_table[itpos14]) return;
3164 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3165 fra.me.file = LOCATE_syntax_base;
3166 fra.me.line = 498;
3167 fra.me.meth = LOCATE_syntax_base___AbsSyntaxVisitor___init;
3168 fra.me.has_broke = 0;
3169 fra.me.REG_size = 4;
3170 fra.me.REG[0] = NIT_NULL;
3171 fra.me.REG[1] = NIT_NULL;
3172 fra.me.REG[2] = NIT_NULL;
3173 fra.me.REG[3] = NIT_NULL;
3174 fra.me.REG[0] = p0;
3175 fra.me.REG[1] = p1;
3176 fra.me.REG[2] = p2;
3177 fra.me.REG[3] = fra.me.REG[0];
3178 /* ./syntax//syntax_base.nit:498 */
3179 CALL_parser_prod___Visitor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
3180 /* ./syntax//syntax_base.nit:500 */
3181 ATTR_syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[3]) = fra.me.REG[1];
3182 /* ./syntax//syntax_base.nit:501 */
3183 ATTR_syntax_base___AbsSyntaxVisitor____module(fra.me.REG[3]) = fra.me.REG[2];
3184 stack_frame_head = fra.me.prev;
3185 init_table[itpos14] = 1;
3186 return;
3187 }
3188 void syntax_base___ANode___accept_abs_syntax_visitor(val_t p0, val_t p1){
3189 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3190 val_t tmp;
3191 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3192 fra.me.file = LOCATE_syntax_base;
3193 fra.me.line = 508;
3194 fra.me.meth = LOCATE_syntax_base___ANode___accept_abs_syntax_visitor;
3195 fra.me.has_broke = 0;
3196 fra.me.REG_size = 2;
3197 fra.me.REG[0] = NIT_NULL;
3198 fra.me.REG[1] = NIT_NULL;
3199 fra.me.REG[0] = p0;
3200 fra.me.REG[1] = p1;
3201 /* ./syntax//syntax_base.nit:508 */
3202 CALL_parser_prod___ANode___visit_all(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3203 stack_frame_head = fra.me.prev;
3204 return;
3205 }
3206 val_t syntax_base___Token___to_symbol(val_t p0){
3207 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3208 val_t REGB0;
3209 val_t REGB1;
3210 val_t tmp;
3211 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3212 fra.me.file = LOCATE_syntax_base;
3213 fra.me.line = 514;
3214 fra.me.meth = LOCATE_syntax_base___Token___to_symbol;
3215 fra.me.has_broke = 0;
3216 fra.me.REG_size = 3;
3217 fra.me.REG[0] = NIT_NULL;
3218 fra.me.REG[1] = NIT_NULL;
3219 fra.me.REG[2] = NIT_NULL;
3220 fra.me.REG[0] = p0;
3221 fra.me.REG[1] = ATTR_syntax_base___Token____symbol_cache(fra.me.REG[0]);
3222 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3223 /* ./syntax//syntax_base.nit:519 */
3224 if (UNTAG_Bool(REGB0)) {
3225 } else {
3226 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3227 if (UNTAG_Bool(REGB1)) {
3228 REGB1 = TAG_Bool(false);
3229 REGB0 = REGB1;
3230 } else {
3231 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
3232 REGB0 = REGB1;
3233 }
3234 }
3235 if (UNTAG_Bool(REGB0)) {
3236 fra.me.REG[2] = CALL_lexer___Token___text(fra.me.REG[0])(fra.me.REG[0]);
3237 fra.me.REG[2] = CALL_symbol___String___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
3238 fra.me.REG[1] = fra.me.REG[2];
3239 /* ./syntax//syntax_base.nit:521 */
3240 ATTR_syntax_base___Token____symbol_cache(fra.me.REG[0]) = fra.me.REG[1];
3241 }
3242 /* ./syntax//syntax_base.nit:523 */
3243 goto label1;
3244 label1: while(0);
3245 stack_frame_head = fra.me.prev;
3246 return fra.me.REG[1];
3247 }
3248 val_t syntax_base___AClassdef___local_class(val_t p0){
3249 struct {struct stack_frame_t me;} fra;
3250 val_t tmp;
3251 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3252 fra.me.file = LOCATE_syntax_base;
3253 fra.me.line = 528;
3254 fra.me.meth = LOCATE_syntax_base___AClassdef___local_class;
3255 fra.me.has_broke = 0;
3256 fra.me.REG_size = 0;
3257 /* ./syntax//syntax_base.nit:528 */
3258 fprintf(stderr, "Deferred method called");
3259 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 528);
3260 nit_exit(1);
3261 stack_frame_head = fra.me.prev;
3262 return NIT_NULL;
3263 }
3264 val_t syntax_base___AClassdef___next_node(val_t p0){
3265 struct {struct stack_frame_t me;} fra;
3266 val_t tmp;
3267 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3268 fra.me.file = LOCATE_syntax_base;
3269 fra.me.line = 531;
3270 fra.me.meth = LOCATE_syntax_base___AClassdef___next_node;
3271 fra.me.has_broke = 0;
3272 fra.me.REG_size = 1;
3273 fra.me.REG[0] = NIT_NULL;
3274 fra.me.REG[0] = p0;
3275 fra.me.REG[0] = ATTR_syntax_base___AClassdef____next_node(fra.me.REG[0]);
3276 /* ./syntax//syntax_base.nit:531 */
3277 stack_frame_head = fra.me.prev;
3278 return fra.me.REG[0];
3279 }
3280 void syntax_base___AClassdef___next_node__eq(val_t p0, val_t p1){
3281 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3282 val_t tmp;
3283 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3284 fra.me.file = LOCATE_syntax_base;
3285 fra.me.line = 531;
3286 fra.me.meth = LOCATE_syntax_base___AClassdef___next_node__eq;
3287 fra.me.has_broke = 0;
3288 fra.me.REG_size = 2;
3289 fra.me.REG[0] = NIT_NULL;
3290 fra.me.REG[1] = NIT_NULL;
3291 fra.me.REG[0] = p0;
3292 fra.me.REG[1] = p1;
3293 /* ./syntax//syntax_base.nit:531 */
3294 ATTR_syntax_base___AClassdef____next_node(fra.me.REG[0]) = fra.me.REG[1];
3295 stack_frame_head = fra.me.prev;
3296 return;
3297 }
3298 val_t syntax_base___APropdef___self_var(val_t p0){
3299 struct {struct stack_frame_t me;} fra;
3300 val_t tmp;
3301 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3302 fra.me.file = LOCATE_syntax_base;
3303 fra.me.line = 536;
3304 fra.me.meth = LOCATE_syntax_base___APropdef___self_var;
3305 fra.me.has_broke = 0;
3306 fra.me.REG_size = 0;
3307 /* ./syntax//syntax_base.nit:536 */
3308 fprintf(stderr, "Deferred method called");
3309 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 536);
3310 nit_exit(1);
3311 stack_frame_head = fra.me.prev;
3312 return NIT_NULL;
3313 }
3314 val_t syntax_base___AAttrPropdef___prop(val_t p0){
3315 struct {struct stack_frame_t me;} fra;
3316 val_t tmp;
3317 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3318 fra.me.file = LOCATE_syntax_base;
3319 fra.me.line = 541;
3320 fra.me.meth = LOCATE_syntax_base___AAttrPropdef___prop;
3321 fra.me.has_broke = 0;
3322 fra.me.REG_size = 0;
3323 /* ./syntax//syntax_base.nit:541 */
3324 fprintf(stderr, "Deferred method called");
3325 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 541);
3326 nit_exit(1);
3327 stack_frame_head = fra.me.prev;
3328 return NIT_NULL;
3329 }
3330 val_t syntax_base___AAttrPropdef___readmethod(val_t p0){
3331 struct {struct stack_frame_t me;} fra;
3332 val_t tmp;
3333 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3334 fra.me.file = LOCATE_syntax_base;
3335 fra.me.line = 544;
3336 fra.me.meth = LOCATE_syntax_base___AAttrPropdef___readmethod;
3337 fra.me.has_broke = 0;
3338 fra.me.REG_size = 0;
3339 /* ./syntax//syntax_base.nit:544 */
3340 fprintf(stderr, "Deferred method called");
3341 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 544);
3342 nit_exit(1);
3343 stack_frame_head = fra.me.prev;
3344 return NIT_NULL;
3345 }
3346 val_t syntax_base___AAttrPropdef___writemethod(val_t p0){
3347 struct {struct stack_frame_t me;} fra;
3348 val_t tmp;
3349 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3350 fra.me.file = LOCATE_syntax_base;
3351 fra.me.line = 547;
3352 fra.me.meth = LOCATE_syntax_base___AAttrPropdef___writemethod;
3353 fra.me.has_broke = 0;
3354 fra.me.REG_size = 0;
3355 /* ./syntax//syntax_base.nit:547 */
3356 fprintf(stderr, "Deferred method called");
3357 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 547);
3358 nit_exit(1);
3359 stack_frame_head = fra.me.prev;
3360 return NIT_NULL;
3361 }
3362 val_t syntax_base___AConcreteInitPropdef___super_init_calls(val_t p0){
3363 struct {struct stack_frame_t me;} fra;
3364 val_t REGB0;
3365 val_t tmp;
3366 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3367 fra.me.file = LOCATE_syntax_base;
3368 fra.me.line = 552;
3369 fra.me.meth = LOCATE_syntax_base___AConcreteInitPropdef___super_init_calls;
3370 fra.me.has_broke = 0;
3371 fra.me.REG_size = 1;
3372 fra.me.REG[0] = NIT_NULL;
3373 fra.me.REG[0] = p0;
3374 REGB0 = TAG_Bool(ATTR_syntax_base___AConcreteInitPropdef____super_init_calls(fra.me.REG[0])!=NIT_NULL);
3375 /* ./syntax//syntax_base.nit:552 */
3376 if (UNTAG_Bool(REGB0)) {
3377 } else {
3378 fprintf(stderr, "Uninitialized attribute %s", "_super_init_calls");
3379 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 552);
3380 nit_exit(1);
3381 }
3382 fra.me.REG[0] = ATTR_syntax_base___AConcreteInitPropdef____super_init_calls(fra.me.REG[0]);
3383 stack_frame_head = fra.me.prev;
3384 return fra.me.REG[0];
3385 }
3386 val_t syntax_base___AConcreteInitPropdef___explicit_super_init_calls(val_t p0){
3387 struct {struct stack_frame_t me;} fra;
3388 val_t REGB0;
3389 val_t tmp;
3390 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3391 fra.me.file = LOCATE_syntax_base;
3392 fra.me.line = 553;
3393 fra.me.meth = LOCATE_syntax_base___AConcreteInitPropdef___explicit_super_init_calls;
3394 fra.me.has_broke = 0;
3395 fra.me.REG_size = 1;
3396 fra.me.REG[0] = NIT_NULL;
3397 fra.me.REG[0] = p0;
3398 REGB0 = TAG_Bool(ATTR_syntax_base___AConcreteInitPropdef____explicit_super_init_calls(fra.me.REG[0])!=NIT_NULL);
3399 /* ./syntax//syntax_base.nit:553 */
3400 if (UNTAG_Bool(REGB0)) {
3401 } else {
3402 fprintf(stderr, "Uninitialized attribute %s", "_explicit_super_init_calls");
3403 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 553);
3404 nit_exit(1);
3405 }
3406 fra.me.REG[0] = ATTR_syntax_base___AConcreteInitPropdef____explicit_super_init_calls(fra.me.REG[0]);
3407 stack_frame_head = fra.me.prev;
3408 return fra.me.REG[0];
3409 }
3410 val_t syntax_base___AMethPropdef___method(val_t p0){
3411 struct {struct stack_frame_t me;} fra;
3412 val_t tmp;
3413 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3414 fra.me.file = LOCATE_syntax_base;
3415 fra.me.line = 557;
3416 fra.me.meth = LOCATE_syntax_base___AMethPropdef___method;
3417 fra.me.has_broke = 0;
3418 fra.me.REG_size = 0;
3419 /* ./syntax//syntax_base.nit:557 */
3420 fprintf(stderr, "Deferred method called");
3421 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 557);
3422 nit_exit(1);
3423 stack_frame_head = fra.me.prev;
3424 return NIT_NULL;
3425 }
3426 val_t syntax_base___ATypePropdef___prop(val_t p0){
3427 struct {struct stack_frame_t me;} fra;
3428 val_t tmp;
3429 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3430 fra.me.file = LOCATE_syntax_base;
3431 fra.me.line = 562;
3432 fra.me.meth = LOCATE_syntax_base___ATypePropdef___prop;
3433 fra.me.has_broke = 0;
3434 fra.me.REG_size = 0;
3435 /* ./syntax//syntax_base.nit:562 */
3436 fprintf(stderr, "Deferred method called");
3437 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 562);
3438 nit_exit(1);
3439 stack_frame_head = fra.me.prev;
3440 return NIT_NULL;
3441 }
3442 val_t syntax_base___AParam___position(val_t p0){
3443 struct {struct stack_frame_t me;} fra;
3444 val_t tmp;
3445 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3446 fra.me.file = LOCATE_syntax_base;
3447 fra.me.line = 567;
3448 fra.me.meth = LOCATE_syntax_base___AParam___position;
3449 fra.me.has_broke = 0;
3450 fra.me.REG_size = 0;
3451 /* ./syntax//syntax_base.nit:567 */
3452 fprintf(stderr, "Deferred method called");
3453 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 567);
3454 nit_exit(1);
3455 stack_frame_head = fra.me.prev;
3456 return NIT_NULL;
3457 }
3458 val_t syntax_base___AParam___variable(val_t p0){
3459 struct {struct stack_frame_t me;} fra;
3460 val_t tmp;
3461 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3462 fra.me.file = LOCATE_syntax_base;
3463 fra.me.line = 570;
3464 fra.me.meth = LOCATE_syntax_base___AParam___variable;
3465 fra.me.has_broke = 0;
3466 fra.me.REG_size = 0;
3467 /* ./syntax//syntax_base.nit:570 */
3468 fprintf(stderr, "Deferred method called");
3469 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 570);
3470 nit_exit(1);
3471 stack_frame_head = fra.me.prev;
3472 return NIT_NULL;
3473 }
3474 val_t syntax_base___AClosureDecl___position(val_t p0){
3475 struct {struct stack_frame_t me;} fra;
3476 val_t tmp;
3477 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3478 fra.me.file = LOCATE_syntax_base;
3479 fra.me.line = 575;
3480 fra.me.meth = LOCATE_syntax_base___AClosureDecl___position;
3481 fra.me.has_broke = 0;
3482 fra.me.REG_size = 0;
3483 /* ./syntax//syntax_base.nit:575 */
3484 fprintf(stderr, "Deferred method called");
3485 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 575);
3486 nit_exit(1);
3487 stack_frame_head = fra.me.prev;
3488 return NIT_NULL;
3489 }
3490 val_t syntax_base___AClosureDecl___variable(val_t p0){
3491 struct {struct stack_frame_t me;} fra;
3492 val_t tmp;
3493 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3494 fra.me.file = LOCATE_syntax_base;
3495 fra.me.line = 578;
3496 fra.me.meth = LOCATE_syntax_base___AClosureDecl___variable;
3497 fra.me.has_broke = 0;
3498 fra.me.REG_size = 0;
3499 /* ./syntax//syntax_base.nit:578 */
3500 fprintf(stderr, "Deferred method called");
3501 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 578);
3502 nit_exit(1);
3503 stack_frame_head = fra.me.prev;
3504 return NIT_NULL;
3505 }
3506 val_t syntax_base___AType___is_typed(val_t p0){
3507 struct {struct stack_frame_t me;} fra;
3508 val_t tmp;
3509 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3510 fra.me.file = LOCATE_syntax_base;
3511 fra.me.line = 583;
3512 fra.me.meth = LOCATE_syntax_base___AType___is_typed;
3513 fra.me.has_broke = 0;
3514 fra.me.REG_size = 0;
3515 /* ./syntax//syntax_base.nit:583 */
3516 fprintf(stderr, "Deferred method called");
3517 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 583);
3518 nit_exit(1);
3519 stack_frame_head = fra.me.prev;
3520 return NIT_NULL;
3521 }
3522 val_t syntax_base___AType___stype(val_t p0){
3523 struct {struct stack_frame_t me;} fra;
3524 val_t tmp;
3525 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3526 fra.me.file = LOCATE_syntax_base;
3527 fra.me.line = 588;
3528 fra.me.meth = LOCATE_syntax_base___AType___stype;
3529 fra.me.has_broke = 0;
3530 fra.me.REG_size = 0;
3531 /* ./syntax//syntax_base.nit:588 */
3532 fprintf(stderr, "Deferred method called");
3533 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 588);
3534 nit_exit(1);
3535 stack_frame_head = fra.me.prev;
3536 return NIT_NULL;
3537 }
3538 val_t syntax_base___AType___get_local_class(val_t p0, val_t p1){
3539 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
3540 val_t REGB0;
3541 val_t REGB1;
3542 val_t tmp;
3543 static val_t once_value_1; /* Once value */
3544 static val_t once_value_2; /* Once value */
3545 static val_t once_value_4; /* Once value */
3546 static val_t once_value_5; /* Once value */
3547 static val_t once_value_6; /* Once value */
3548 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3549 fra.me.file = LOCATE_syntax_base;
3550 fra.me.line = 594;
3551 fra.me.meth = LOCATE_syntax_base___AType___get_local_class;
3552 fra.me.has_broke = 0;
3553 fra.me.REG_size = 8;
3554 fra.me.REG[0] = NIT_NULL;
3555 fra.me.REG[1] = NIT_NULL;
3556 fra.me.REG[2] = NIT_NULL;
3557 fra.me.REG[3] = NIT_NULL;
3558 fra.me.REG[4] = NIT_NULL;
3559 fra.me.REG[5] = NIT_NULL;
3560 fra.me.REG[6] = NIT_NULL;
3561 fra.me.REG[7] = NIT_NULL;
3562 fra.me.REG[0] = p0;
3563 fra.me.REG[1] = p1;
3564 fra.me.REG[2] = CALL_parser_nodes___AType___n_id(fra.me.REG[0])(fra.me.REG[0]);
3565 fra.me.REG[2] = CALL_syntax_base___Token___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
3566 fra.me.REG[3] = CALL_syntax_base___AbsSyntaxVisitor___module(fra.me.REG[1])(fra.me.REG[1]);
3567 fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
3568 fra.me.REG[5] = CALL_syntax_base___MMSrcLocalClass___formal_dict(fra.me.REG[4])(fra.me.REG[4]);
3569 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
3570 /* ./syntax//syntax_base.nit:603 */
3571 if (UNTAG_Bool(REGB0)) {
3572 REGB0 = TAG_Bool(true);
3573 } else {
3574 REGB1 = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
3575 REGB0 = REGB1;
3576 }
3577 if (UNTAG_Bool(REGB0)) {
3578 fra.me.REG[4] = CALL_parser_nodes___AType___n_id(fra.me.REG[0])(fra.me.REG[0]);
3579 REGB0 = TAG_Int(3);
3580 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
3581 /* ./syntax//syntax_base.nit:604 */
3582 if (!once_value_1) {
3583 fra.me.REG[6] = BOX_NativeString("Type error: ");
3584 REGB0 = TAG_Int(12);
3585 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
3586 once_value_1 = fra.me.REG[6];
3587 register_static_object(&once_value_1);
3588 } else fra.me.REG[6] = once_value_1;
3589 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
3590 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3591 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
3592 if (!once_value_2) {
3593 fra.me.REG[6] = BOX_NativeString(" is a formal type");
3594 REGB0 = TAG_Int(17);
3595 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
3596 once_value_2 = fra.me.REG[6];
3597 register_static_object(&once_value_2);
3598 } else fra.me.REG[6] = once_value_2;
3599 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
3600 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
3601 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[5]);
3602 REGB0 = TAG_Bool(true);
3603 /* ./syntax//syntax_base.nit:605 */
3604 ATTR_syntax_base___AType____stype_cached(fra.me.REG[0]) = REGB0;
3605 fra.me.REG[5] = NIT_NULL;
3606 /* ./syntax//syntax_base.nit:606 */
3607 goto label3;
3608 }
3609 REGB0 = CALL_abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
3610 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3611 /* ./syntax//syntax_base.nit:609 */
3612 if (UNTAG_Bool(REGB0)) {
3613 fra.me.REG[4] = CALL_parser_nodes___AType___n_id(fra.me.REG[0])(fra.me.REG[0]);
3614 REGB0 = TAG_Int(5);
3615 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB0);
3616 /* ./syntax//syntax_base.nit:610 */
3617 if (!once_value_4) {
3618 fra.me.REG[7] = BOX_NativeString("Type error: class ");
3619 REGB0 = TAG_Int(18);
3620 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
3621 once_value_4 = fra.me.REG[7];
3622 register_static_object(&once_value_4);
3623 } else fra.me.REG[7] = once_value_4;
3624 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
3625 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3626 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
3627 if (!once_value_5) {
3628 fra.me.REG[7] = BOX_NativeString(" not found in module ");
3629 REGB0 = TAG_Int(21);
3630 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
3631 once_value_5 = fra.me.REG[7];
3632 register_static_object(&once_value_5);
3633 } else fra.me.REG[7] = once_value_5;
3634 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
3635 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3636 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
3637 if (!once_value_6) {
3638 fra.me.REG[7] = BOX_NativeString(".");
3639 REGB0 = TAG_Int(1);
3640 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
3641 once_value_6 = fra.me.REG[7];
3642 register_static_object(&once_value_6);
3643 } else fra.me.REG[7] = once_value_6;
3644 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
3645 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
3646 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[6]);
3647 REGB0 = TAG_Bool(true);
3648 /* ./syntax//syntax_base.nit:611 */
3649 ATTR_syntax_base___AType____stype_cached(fra.me.REG[0]) = REGB0;
3650 fra.me.REG[5] = NIT_NULL;
3651 /* ./syntax//syntax_base.nit:612 */
3652 goto label3;
3653 }
3654 fra.me.REG[2] = CALL_abstractmetamodel___MMModule___class_by_name(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
3655 fra.me.REG[6] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
3656 /* ./syntax//syntax_base.nit:616 */
3657 CALL_syntax_base___MMGlobalClass___check_visibility(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
3658 fra.me.REG[5] = fra.me.REG[2];
3659 /* ./syntax//syntax_base.nit:617 */
3660 goto label3;
3661 label3: while(0);
3662 stack_frame_head = fra.me.prev;
3663 return fra.me.REG[5];
3664 }
3665 val_t syntax_base___AType___get_unchecked_stype(val_t p0, val_t p1){
3666 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
3667 val_t REGB0;
3668 val_t REGB1;
3669 val_t REGB2;
3670 val_t REGB3;
3671 val_t tmp;
3672 static val_t once_value_2; /* Once value */
3673 static val_t once_value_3; /* Once value */
3674 static val_t once_value_4; /* Once value */
3675 static val_t once_value_5; /* Once value */
3676 static val_t once_value_6; /* Once value */
3677 static val_t once_value_7; /* Once value */
3678 static val_t once_value_8; /* Once value */
3679 static val_t once_value_9; /* Once value */
3680 static val_t once_value_10; /* Once value */
3681 static val_t once_value_11; /* Once value */
3682 static val_t once_value_12; /* Once value */
3683 static val_t once_value_13; /* Once value */
3684 static val_t once_value_14; /* Once value */
3685 static val_t once_value_15; /* Once value */
3686 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3687 fra.me.file = LOCATE_syntax_base;
3688 fra.me.line = 620;
3689 fra.me.meth = LOCATE_syntax_base___AType___get_unchecked_stype;
3690 fra.me.has_broke = 0;
3691 fra.me.REG_size = 8;
3692 fra.me.REG[0] = NIT_NULL;
3693 fra.me.REG[1] = NIT_NULL;
3694 fra.me.REG[2] = NIT_NULL;
3695 fra.me.REG[3] = NIT_NULL;
3696 fra.me.REG[4] = NIT_NULL;
3697 fra.me.REG[5] = NIT_NULL;
3698 fra.me.REG[6] = NIT_NULL;
3699 fra.me.REG[7] = NIT_NULL;
3700 fra.me.REG[0] = p0;
3701 fra.me.REG[1] = p1;
3702 REGB0 = TAG_Bool(ATTR_syntax_base___AType____stype_cached(fra.me.REG[0])!=NIT_NULL);
3703 /* ./syntax//syntax_base.nit:626 */
3704 if (UNTAG_Bool(REGB0)) {
3705 } else {
3706 fprintf(stderr, "Uninitialized attribute %s", "_stype_cached");
3707 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 626);
3708 nit_exit(1);
3709 }
3710 REGB0 = ATTR_syntax_base___AType____stype_cached(fra.me.REG[0]);
3711 if (UNTAG_Bool(REGB0)) {
3712 fra.me.REG[2] = ATTR_syntax_base___AType____stype_cache(fra.me.REG[0]);
3713 goto label1;
3714 }
3715 REGB0 = TAG_Bool(true);
3716 /* ./syntax//syntax_base.nit:627 */
3717 ATTR_syntax_base___AType____stype_cached(fra.me.REG[0]) = REGB0;
3718 fra.me.REG[3] = CALL_parser_nodes___AType___n_id(fra.me.REG[0])(fra.me.REG[0]);
3719 fra.me.REG[3] = CALL_syntax_base___Token___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
3720 fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___module(fra.me.REG[1])(fra.me.REG[1]);
3721 fra.me.REG[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
3722 fra.me.REG[5] = CALL_syntax_base___MMSrcLocalClass___formal_dict(fra.me.REG[4])(fra.me.REG[4]);
3723 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
3724 /* ./syntax//syntax_base.nit:634 */
3725 if (UNTAG_Bool(REGB0)) {
3726 fra.me.REG[5] = CALL_parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
3727 REGB0 = CALL_abstract_collection___Collection___length(fra.me.REG[5])(fra.me.REG[5]);
3728 REGB1 = TAG_Int(0);
3729 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
3730 /* ./syntax//syntax_base.nit:635 */
3731 if (UNTAG_Bool(REGB1)) {
3732 REGB1 = TAG_Int(3);
3733 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB1);
3734 /* ./syntax//syntax_base.nit:636 */
3735 if (!once_value_2) {
3736 fra.me.REG[6] = BOX_NativeString("Type error: formal type ");
3737 REGB1 = TAG_Int(24);
3738 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
3739 once_value_2 = fra.me.REG[6];
3740 register_static_object(&once_value_2);
3741 } else fra.me.REG[6] = once_value_2;
3742 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
3743 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3744 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
3745 if (!once_value_3) {
3746 fra.me.REG[6] = BOX_NativeString(" cannot have formal parameters.");
3747 REGB1 = TAG_Int(31);
3748 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
3749 once_value_3 = fra.me.REG[6];
3750 register_static_object(&once_value_3);
3751 } else fra.me.REG[6] = once_value_3;
3752 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
3753 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
3754 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
3755 fra.me.REG[2] = NIT_NULL;
3756 /* ./syntax//syntax_base.nit:637 */
3757 goto label1;
3758 }
3759 fra.me.REG[5] = CALL_syntax_base___MMSrcLocalClass___formal_dict(fra.me.REG[4])(fra.me.REG[4]);
3760 fra.me.REG[5] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
3761 fra.me.REG[6] = CALL_parser_nodes___AType___n_kwnullable(fra.me.REG[0])(fra.me.REG[0]);
3762 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
3763 /* ./syntax//syntax_base.nit:640 */
3764 if (UNTAG_Bool(REGB1)) {
3765 } else {
3766 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
3767 if (UNTAG_Bool(REGB0)) {
3768 REGB0 = TAG_Bool(false);
3769 REGB1 = REGB0;
3770 } else {
3771 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
3772 REGB1 = REGB0;
3773 }
3774 }
3775 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
3776 if (UNTAG_Bool(REGB1)) {
3777 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3778 if (UNTAG_Bool(REGB1)) {
3779 fprintf(stderr, "Reciever is null");
3780 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 640);
3781 nit_exit(1);
3782 }
3783 fra.me.REG[6] = CALL_static_type___MMType___as_nullable(fra.me.REG[5])(fra.me.REG[5]);
3784 fra.me.REG[5] = fra.me.REG[6];
3785 }
3786 /* ./syntax//syntax_base.nit:641 */
3787 ATTR_syntax_base___AType____stype_cache(fra.me.REG[0]) = fra.me.REG[5];
3788 fra.me.REG[2] = fra.me.REG[5];
3789 /* ./syntax//syntax_base.nit:642 */
3790 goto label1;
3791 }
3792 REGB1 = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
3793 /* ./syntax//syntax_base.nit:645 */
3794 if (UNTAG_Bool(REGB1)) {
3795 fra.me.REG[6] = CALL_parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
3796 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[6])(fra.me.REG[6]);
3797 REGB0 = TAG_Int(0);
3798 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0));
3799 /* ./syntax//syntax_base.nit:646 */
3800 if (UNTAG_Bool(REGB0)) {
3801 REGB0 = TAG_Int(3);
3802 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB0);
3803 /* ./syntax//syntax_base.nit:647 */
3804 if (!once_value_4) {
3805 fra.me.REG[7] = BOX_NativeString("Type error: formal type ");
3806 REGB0 = TAG_Int(24);
3807 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
3808 once_value_4 = fra.me.REG[7];
3809 register_static_object(&once_value_4);
3810 } else fra.me.REG[7] = once_value_4;
3811 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
3812 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3813 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
3814 if (!once_value_5) {
3815 fra.me.REG[7] = BOX_NativeString(" cannot have formal parameters.");
3816 REGB0 = TAG_Int(31);
3817 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
3818 once_value_5 = fra.me.REG[7];
3819 register_static_object(&once_value_5);
3820 } else fra.me.REG[7] = once_value_5;
3821 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
3822 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
3823 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[6]);
3824 fra.me.REG[2] = NIT_NULL;
3825 /* ./syntax//syntax_base.nit:648 */
3826 goto label1;
3827 }
3828 fra.me.REG[6] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
3829 fra.me.REG[6] = CALL_static_type___MMType___local_class(fra.me.REG[6])(fra.me.REG[6]);
3830 fra.me.REG[6] = CALL_virtualtype___MMLocalClass___select_virtual_type(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
3831 fra.me.REG[4] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
3832 fra.me.REG[4] = CALL_virtualtype___MMTypeProperty___stype_for(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
3833 fra.me.REG[5] = fra.me.REG[4];
3834 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3835 /* ./syntax//syntax_base.nit:651 */
3836 if (UNTAG_Bool(REGB0)) {
3837 } else {
3838 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3839 if (UNTAG_Bool(REGB1)) {
3840 REGB1 = TAG_Bool(false);
3841 REGB0 = REGB1;
3842 } else {
3843 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
3844 REGB0 = REGB1;
3845 }
3846 }
3847 if (UNTAG_Bool(REGB0)) {
3848 REGB0 = TAG_Int(3);
3849 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
3850 /* ./syntax//syntax_base.nit:652 */
3851 if (!once_value_6) {
3852 fra.me.REG[6] = BOX_NativeString("Type error: circular definition in formal type ");
3853 REGB0 = TAG_Int(47);
3854 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
3855 once_value_6 = fra.me.REG[6];
3856 register_static_object(&once_value_6);
3857 } else fra.me.REG[6] = once_value_6;
3858 array___Array___add(fra.me.REG[4], fra.me.REG[6]);
3859 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3860 array___Array___add(fra.me.REG[4], fra.me.REG[3]);
3861 if (!once_value_7) {
3862 fra.me.REG[3] = BOX_NativeString(".");
3863 REGB0 = TAG_Int(1);
3864 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
3865 once_value_7 = fra.me.REG[3];
3866 register_static_object(&once_value_7);
3867 } else fra.me.REG[3] = once_value_7;
3868 array___Array___add(fra.me.REG[4], fra.me.REG[3]);
3869 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3870 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
3871 fra.me.REG[2] = NIT_NULL;
3872 /* ./syntax//syntax_base.nit:653 */
3873 goto label1;
3874 }
3875 fra.me.REG[4] = CALL_parser_nodes___AType___n_kwnullable(fra.me.REG[0])(fra.me.REG[0]);
3876 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3877 /* ./syntax//syntax_base.nit:655 */
3878 if (UNTAG_Bool(REGB0)) {
3879 } else {
3880 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3881 if (UNTAG_Bool(REGB1)) {
3882 REGB1 = TAG_Bool(false);
3883 REGB0 = REGB1;
3884 } else {
3885 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
3886 REGB0 = REGB1;
3887 }
3888 }
3889 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3890 if (UNTAG_Bool(REGB0)) {
3891 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
3892 if (UNTAG_Bool(REGB0)) {
3893 fprintf(stderr, "Reciever is null");
3894 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 655);
3895 nit_exit(1);
3896 }
3897 fra.me.REG[4] = CALL_static_type___MMType___as_nullable(fra.me.REG[5])(fra.me.REG[5]);
3898 fra.me.REG[5] = fra.me.REG[4];
3899 }
3900 /* ./syntax//syntax_base.nit:656 */
3901 ATTR_syntax_base___AType____stype_cache(fra.me.REG[0]) = fra.me.REG[5];
3902 fra.me.REG[2] = fra.me.REG[5];
3903 /* ./syntax//syntax_base.nit:657 */
3904 goto label1;
3905 }
3906 fra.me.REG[4] = CALL_syntax_base___AType___get_local_class(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3907 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3908 /* ./syntax//syntax_base.nit:661 */
3909 if (UNTAG_Bool(REGB0)) {
3910 } else {
3911 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3912 if (UNTAG_Bool(REGB1)) {
3913 REGB1 = TAG_Bool(false);
3914 REGB0 = REGB1;
3915 } else {
3916 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
3917 REGB0 = REGB1;
3918 }
3919 }
3920 if (UNTAG_Bool(REGB0)) {
3921 fra.me.REG[2] = NIT_NULL;
3922 goto label1;
3923 }
3924 fra.me.REG[3] = CALL_parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
3925 REGB0 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
3926 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3927 /* ./syntax//syntax_base.nit:664 */
3928 if (UNTAG_Bool(REGB1)) {
3929 fprintf(stderr, "Reciever is null");
3930 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 664);
3931 nit_exit(1);
3932 }
3933 REGB1 = CALL_abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
3934 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0));
3935 if (UNTAG_Bool(REGB2)) {
3936 } else {
3937 REGB1 = TAG_Bool((REGB1)==(REGB0));
3938 REGB2 = REGB1;
3939 /* ./syntax//syntax_base.nit:664 */
3940 }
3941 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
3942 if (UNTAG_Bool(REGB2)) {
3943 REGB2 = TAG_Int(0);
3944 REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
3945 /* ./syntax//syntax_base.nit:665 */
3946 if (UNTAG_Bool(REGB1)) {
3947 } else {
3948 REGB2 = TAG_Bool((REGB0)==(REGB2));
3949 REGB1 = REGB2;
3950 /* ./syntax//syntax_base.nit:665 */
3951 }
3952 if (UNTAG_Bool(REGB1)) {
3953 REGB1 = TAG_Int(3);
3954 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1);
3955 /* ./syntax//syntax_base.nit:666 */
3956 if (!once_value_8) {
3957 fra.me.REG[6] = BOX_NativeString("Type error: '");
3958 REGB1 = TAG_Int(13);
3959 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
3960 once_value_8 = fra.me.REG[6];
3961 register_static_object(&once_value_8);
3962 } else fra.me.REG[6] = once_value_8;
3963 array___Array___add(fra.me.REG[3], fra.me.REG[6]);
3964 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
3965 array___Array___add(fra.me.REG[3], fra.me.REG[6]);
3966 if (!once_value_9) {
3967 fra.me.REG[6] = BOX_NativeString("' is a generic class.");
3968 REGB1 = TAG_Int(21);
3969 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
3970 once_value_9 = fra.me.REG[6];
3971 register_static_object(&once_value_9);
3972 } else fra.me.REG[6] = once_value_9;
3973 array___Array___add(fra.me.REG[3], fra.me.REG[6]);
3974 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3975 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
3976 } else {
3977 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
3978 /* ./syntax//syntax_base.nit:667 */
3979 if (UNTAG_Bool(REGB1)) {
3980 fprintf(stderr, "Reciever is null");
3981 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 667);
3982 nit_exit(1);
3983 }
3984 REGB1 = CALL_abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
3985 REGB2 = TAG_Int(0);
3986 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
3987 if (UNTAG_Bool(REGB3)) {
3988 } else {
3989 REGB2 = TAG_Bool((REGB1)==(REGB2));
3990 REGB3 = REGB2;
3991 /* ./syntax//syntax_base.nit:667 */
3992 }
3993 if (UNTAG_Bool(REGB3)) {
3994 REGB3 = TAG_Int(3);
3995 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB3);
3996 /* ./syntax//syntax_base.nit:668 */
3997 if (!once_value_10) {
3998 fra.me.REG[6] = BOX_NativeString("Type error: '");
3999 REGB3 = TAG_Int(13);
4000 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB3);
4001 once_value_10 = fra.me.REG[6];
4002 register_static_object(&once_value_10);
4003 } else fra.me.REG[6] = once_value_10;
4004 array___Array___add(fra.me.REG[3], fra.me.REG[6]);
4005 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4006 array___Array___add(fra.me.REG[3], fra.me.REG[6]);
4007 if (!once_value_11) {
4008 fra.me.REG[6] = BOX_NativeString("' is not a generic class.");
4009 REGB3 = TAG_Int(25);
4010 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB3);
4011 once_value_11 = fra.me.REG[6];
4012 register_static_object(&once_value_11);
4013 } else fra.me.REG[6] = once_value_11;
4014 array___Array___add(fra.me.REG[3], fra.me.REG[6]);
4015 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
4016 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
4017 } else {
4018 REGB3 = TAG_Int(7);
4019 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB3);
4020 /* ./syntax//syntax_base.nit:670 */
4021 if (!once_value_12) {
4022 fra.me.REG[6] = BOX_NativeString("Type error: '");
4023 REGB3 = TAG_Int(13);
4024 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB3);
4025 once_value_12 = fra.me.REG[6];
4026 register_static_object(&once_value_12);
4027 } else fra.me.REG[6] = once_value_12;
4028 array___Array___add(fra.me.REG[3], fra.me.REG[6]);
4029 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4030 array___Array___add(fra.me.REG[3], fra.me.REG[6]);
4031 if (!once_value_13) {
4032 fra.me.REG[6] = BOX_NativeString("' has ");
4033 REGB3 = TAG_Int(6);
4034 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB3);
4035 once_value_13 = fra.me.REG[6];
4036 register_static_object(&once_value_13);
4037 } else fra.me.REG[6] = once_value_13;
4038 array___Array___add(fra.me.REG[3], fra.me.REG[6]);
4039 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4040 if (UNTAG_Bool(REGB3)) {
4041 fprintf(stderr, "Reciever is null");
4042 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 670);
4043 nit_exit(1);
4044 }
4045 REGB3 = CALL_abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
4046 fra.me.REG[6] = CALL_string___Object___to_s(REGB3)(REGB3);
4047 array___Array___add(fra.me.REG[3], fra.me.REG[6]);
4048 if (!once_value_14) {
4049 fra.me.REG[6] = BOX_NativeString(" parameters (");
4050 REGB3 = TAG_Int(13);
4051 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB3);
4052 once_value_14 = fra.me.REG[6];
4053 register_static_object(&once_value_14);
4054 } else fra.me.REG[6] = once_value_14;
4055 array___Array___add(fra.me.REG[3], fra.me.REG[6]);
4056 fra.me.REG[6] = CALL_string___Object___to_s(REGB0)(REGB0);
4057 array___Array___add(fra.me.REG[3], fra.me.REG[6]);
4058 if (!once_value_15) {
4059 fra.me.REG[6] = BOX_NativeString(" are provided).");
4060 REGB3 = TAG_Int(15);
4061 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB3);
4062 once_value_15 = fra.me.REG[6];
4063 register_static_object(&once_value_15);
4064 } else fra.me.REG[6] = once_value_15;
4065 array___Array___add(fra.me.REG[3], fra.me.REG[6]);
4066 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
4067 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
4068 }
4069 }
4070 fra.me.REG[2] = NIT_NULL;
4071 /* ./syntax//syntax_base.nit:672 */
4072 goto label1;
4073 }
4074 REGB3 = TAG_Int(0);
4075 REGB3 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB3));
4076 /* ./syntax//syntax_base.nit:675 */
4077 if (UNTAG_Bool(REGB3)) {
4078 fra.me.REG[3] = NEW_Array_array___Array___init();
4079 fra.me.REG[6] = CALL_parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
4080 fra.me.REG[6] = CALL_abstract_collection___Collection___iterator(fra.me.REG[6])(fra.me.REG[6]);
4081 /* ./syntax//syntax_base.nit:677 */
4082 while(1) {
4083 REGB3 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[6])(fra.me.REG[6]);
4084 if (UNTAG_Bool(REGB3)) {
4085 fra.me.REG[7] = CALL_abstract_collection___Iterator___item(fra.me.REG[6])(fra.me.REG[6]);
4086 fra.me.REG[7] = CALL_syntax_base___AType___get_unchecked_stype(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[1]);
4087 REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
4088 /* ./syntax//syntax_base.nit:679 */
4089 if (UNTAG_Bool(REGB3)) {
4090 } else {
4091 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
4092 if (UNTAG_Bool(REGB0)) {
4093 REGB0 = TAG_Bool(false);
4094 REGB3 = REGB0;
4095 } else {
4096 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
4097 REGB3 = REGB0;
4098 }
4099 }
4100 if (UNTAG_Bool(REGB3)) {
4101 fra.me.REG[2] = NIT_NULL;
4102 goto label1;
4103 }
4104 /* ./syntax//syntax_base.nit:680 */
4105 array___Array___add(fra.me.REG[3], fra.me.REG[7]);
4106 } else {
4107 /* ./syntax//syntax_base.nit:677 */
4108 goto label16;
4109 }
4110 CALL_abstract_collection___Iterator___next(fra.me.REG[6])(fra.me.REG[6]);
4111 }
4112 label16: while(0);
4113 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4114 /* ./syntax//syntax_base.nit:682 */
4115 if (UNTAG_Bool(REGB3)) {
4116 fprintf(stderr, "Reciever is null");
4117 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 682);
4118 nit_exit(1);
4119 }
4120 fra.me.REG[3] = CALL_genericity___MMLocalClass___get_instantiate_type(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
4121 fra.me.REG[5] = fra.me.REG[3];
4122 } else {
4123 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4124 /* ./syntax//syntax_base.nit:684 */
4125 if (UNTAG_Bool(REGB3)) {
4126 fprintf(stderr, "Reciever is null");
4127 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 684);
4128 nit_exit(1);
4129 }
4130 fra.me.REG[4] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
4131 fra.me.REG[5] = fra.me.REG[4];
4132 }
4133 fra.me.REG[4] = CALL_parser_nodes___AType___n_kwnullable(fra.me.REG[0])(fra.me.REG[0]);
4134 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4135 /* ./syntax//syntax_base.nit:686 */
4136 if (UNTAG_Bool(REGB3)) {
4137 } else {
4138 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4139 if (UNTAG_Bool(REGB0)) {
4140 REGB0 = TAG_Bool(false);
4141 REGB3 = REGB0;
4142 } else {
4143 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
4144 REGB3 = REGB0;
4145 }
4146 }
4147 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
4148 if (UNTAG_Bool(REGB3)) {
4149 REGB3 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4150 if (UNTAG_Bool(REGB3)) {
4151 fprintf(stderr, "Reciever is null");
4152 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 686);
4153 nit_exit(1);
4154 }
4155 fra.me.REG[4] = CALL_static_type___MMType___as_nullable(fra.me.REG[5])(fra.me.REG[5]);
4156 fra.me.REG[5] = fra.me.REG[4];
4157 }
4158 /* ./syntax//syntax_base.nit:687 */
4159 ATTR_syntax_base___AType____stype_cache(fra.me.REG[0]) = fra.me.REG[5];
4160 fra.me.REG[2] = fra.me.REG[5];
4161 /* ./syntax//syntax_base.nit:688 */
4162 goto label1;
4163 label1: while(0);
4164 stack_frame_head = fra.me.prev;
4165 return fra.me.REG[2];
4166 }
4167 val_t syntax_base___AType___get_stype(val_t p0, val_t p1){
4168 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4169 val_t REGB0;
4170 val_t REGB1;
4171 val_t tmp;
4172 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4173 fra.me.file = LOCATE_syntax_base;
4174 fra.me.line = 691;
4175 fra.me.meth = LOCATE_syntax_base___AType___get_stype;
4176 fra.me.has_broke = 0;
4177 fra.me.REG_size = 4;
4178 fra.me.REG[0] = NIT_NULL;
4179 fra.me.REG[1] = NIT_NULL;
4180 fra.me.REG[2] = NIT_NULL;
4181 fra.me.REG[3] = NIT_NULL;
4182 fra.me.REG[0] = p0;
4183 fra.me.REG[1] = p1;
4184 fra.me.REG[2] = CALL_syntax_base___AType___get_unchecked_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4185 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4186 /* ./syntax//syntax_base.nit:696 */
4187 if (UNTAG_Bool(REGB0)) {
4188 } else {
4189 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4190 if (UNTAG_Bool(REGB1)) {
4191 REGB1 = TAG_Bool(false);
4192 REGB0 = REGB1;
4193 } else {
4194 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4195 REGB0 = REGB1;
4196 }
4197 }
4198 if (UNTAG_Bool(REGB0)) {
4199 fra.me.REG[3] = NIT_NULL;
4200 goto label1;
4201 }
4202 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4203 /* ./syntax//syntax_base.nit:697 */
4204 if (UNTAG_Bool(REGB0)) {
4205 fprintf(stderr, "Reciever is null");
4206 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 697);
4207 nit_exit(1);
4208 }
4209 REGB0 = CALL_static_type___MMType___is_valid(fra.me.REG[2])(fra.me.REG[2]);
4210 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4211 if (UNTAG_Bool(REGB0)) {
4212 fra.me.REG[3] = NIT_NULL;
4213 goto label1;
4214 }
4215 /* ./syntax//syntax_base.nit:698 */
4216 CALL_syntax_base___AType___check_conform(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4217 fra.me.REG[3] = fra.me.REG[2];
4218 /* ./syntax//syntax_base.nit:699 */
4219 goto label1;
4220 label1: while(0);
4221 stack_frame_head = fra.me.prev;
4222 return fra.me.REG[3];
4223 }
4224 void syntax_base___AType___check_conform(val_t p0, val_t p1){
4225 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
4226 val_t REGB0;
4227 val_t REGB1;
4228 val_t tmp;
4229 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4230 fra.me.file = LOCATE_syntax_base;
4231 fra.me.line = 702;
4232 fra.me.meth = LOCATE_syntax_base___AType___check_conform;
4233 fra.me.has_broke = 0;
4234 fra.me.REG_size = 9;
4235 fra.me.REG[0] = NIT_NULL;
4236 fra.me.REG[1] = NIT_NULL;
4237 fra.me.REG[2] = NIT_NULL;
4238 fra.me.REG[3] = NIT_NULL;
4239 fra.me.REG[4] = NIT_NULL;
4240 fra.me.REG[5] = NIT_NULL;
4241 fra.me.REG[6] = NIT_NULL;
4242 fra.me.REG[7] = NIT_NULL;
4243 fra.me.REG[8] = NIT_NULL;
4244 fra.me.REG[0] = p0;
4245 fra.me.REG[1] = p1;
4246 fra.me.REG[2] = CALL_syntax_base___AType___get_unchecked_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4247 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4248 /* ./syntax//syntax_base.nit:708 */
4249 if (UNTAG_Bool(REGB0)) {
4250 } else {
4251 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4252 if (UNTAG_Bool(REGB1)) {
4253 REGB1 = TAG_Bool(false);
4254 REGB0 = REGB1;
4255 } else {
4256 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4257 REGB0 = REGB1;
4258 }
4259 }
4260 if (UNTAG_Bool(REGB0)) {
4261 goto label1;
4262 }
4263 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4264 /* ./syntax//syntax_base.nit:709 */
4265 if (UNTAG_Bool(REGB0)) {
4266 fprintf(stderr, "Reciever is null");
4267 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 709);
4268 nit_exit(1);
4269 }
4270 fra.me.REG[3] = CALL_static_type___MMType___local_class(fra.me.REG[2])(fra.me.REG[2]);
4271 fra.me.REG[4] = CALL_parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
4272 REGB0 = CALL_abstract_collection___Collection___length(fra.me.REG[4])(fra.me.REG[4]);
4273 REGB1 = TAG_Int(0);
4274 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
4275 /* ./syntax//syntax_base.nit:711 */
4276 if (UNTAG_Bool(REGB1)) {
4277 REGB1 = TAG_Int(0);
4278 fra.me.REG[4] = NEW_Range_range___Range___without_last(REGB1, REGB0);
4279 fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[4])(fra.me.REG[4]);
4280 /* ./syntax//syntax_base.nit:712 */
4281 while(1) {
4282 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]);
4283 if (UNTAG_Bool(REGB0)) {
4284 REGB0 = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]);
4285 fra.me.REG[5] = CALL_parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
4286 fra.me.REG[5] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], REGB0);
4287 fra.me.REG[6] = CALL_syntax_base___AType___get_stype(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
4288 fra.me.REG[7] = CALL_genericity___MMLocalClass___get_formal(fra.me.REG[3])(fra.me.REG[3], REGB0);
4289 REGB0 = CALL_static_type___MMType___is_valid(fra.me.REG[7])(fra.me.REG[7]);
4290 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4291 /* ./syntax//syntax_base.nit:716 */
4292 if (UNTAG_Bool(REGB0)) {
4293 goto label1;
4294 }
4295 fra.me.REG[7] = CALL_type_formal___MMTypeFormal___bound(fra.me.REG[7])(fra.me.REG[7]);
4296 fra.me.REG[8] = CALL_static_type___MMType___adapt_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]);
4297 fra.me.REG[7] = fra.me.REG[8];
4298 /* ./syntax//syntax_base.nit:719 */
4299 CALL_syntax_base___AbsSyntaxVisitor___check_conform(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5], fra.me.REG[6], fra.me.REG[7]);
4300 } else {
4301 /* ./syntax//syntax_base.nit:712 */
4302 goto label2;
4303 }
4304 CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]);
4305 }
4306 label2: while(0);
4307 }
4308 label1: while(0);
4309 stack_frame_head = fra.me.prev;
4310 return;
4311 }
4312 val_t syntax_base___AExpr___is_typed(val_t p0){
4313 struct {struct stack_frame_t me;} fra;
4314 val_t tmp;
4315 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4316 fra.me.file = LOCATE_syntax_base;
4317 fra.me.line = 726;
4318 fra.me.meth = LOCATE_syntax_base___AExpr___is_typed;
4319 fra.me.has_broke = 0;
4320 fra.me.REG_size = 0;
4321 /* ./syntax//syntax_base.nit:726 */
4322 fprintf(stderr, "Deferred method called");
4323 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 726);
4324 nit_exit(1);
4325 stack_frame_head = fra.me.prev;
4326 return NIT_NULL;
4327 }
4328 val_t syntax_base___AExpr___is_statement(val_t p0){
4329 struct {struct stack_frame_t me;} fra;
4330 val_t tmp;
4331 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4332 fra.me.file = LOCATE_syntax_base;
4333 fra.me.line = 731;
4334 fra.me.meth = LOCATE_syntax_base___AExpr___is_statement;
4335 fra.me.has_broke = 0;
4336 fra.me.REG_size = 0;
4337 /* ./syntax//syntax_base.nit:731 */
4338 fprintf(stderr, "Deferred method called");
4339 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 731);
4340 nit_exit(1);
4341 stack_frame_head = fra.me.prev;
4342 return NIT_NULL;
4343 }
4344 val_t syntax_base___AExpr___stype(val_t p0){
4345 struct {struct stack_frame_t me;} fra;
4346 val_t tmp;
4347 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4348 fra.me.file = LOCATE_syntax_base;
4349 fra.me.line = 735;
4350 fra.me.meth = LOCATE_syntax_base___AExpr___stype;
4351 fra.me.has_broke = 0;
4352 fra.me.REG_size = 0;
4353 /* ./syntax//syntax_base.nit:735 */
4354 fprintf(stderr, "Deferred method called");
4355 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 735);
4356 nit_exit(1);
4357 stack_frame_head = fra.me.prev;
4358 return NIT_NULL;
4359 }
4360 val_t syntax_base___AAbsAbsSendExpr___prop_signature(val_t p0){
4361 struct {struct stack_frame_t me;} fra;
4362 val_t tmp;
4363 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4364 fra.me.file = LOCATE_syntax_base;
4365 fra.me.line = 742;
4366 fra.me.meth = LOCATE_syntax_base___AAbsAbsSendExpr___prop_signature;
4367 fra.me.has_broke = 0;
4368 fra.me.REG_size = 0;
4369 /* ./syntax//syntax_base.nit:742 */
4370 fprintf(stderr, "Deferred method called");
4371 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 742);
4372 nit_exit(1);
4373 stack_frame_head = fra.me.prev;
4374 return NIT_NULL;
4375 }
4376 val_t syntax_base___AAbsAbsSendExpr___raw_arguments(val_t p0){
4377 struct {struct stack_frame_t me;} fra;
4378 val_t tmp;
4379 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4380 fra.me.file = LOCATE_syntax_base;
4381 fra.me.line = 745;
4382 fra.me.meth = LOCATE_syntax_base___AAbsAbsSendExpr___raw_arguments;
4383 fra.me.has_broke = 0;
4384 fra.me.REG_size = 0;
4385 /* ./syntax//syntax_base.nit:745 */
4386 fprintf(stderr, "Deferred method called");
4387 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 745);
4388 nit_exit(1);
4389 stack_frame_head = fra.me.prev;
4390 return NIT_NULL;
4391 }
4392 val_t syntax_base___AAbsSendExpr___prop(val_t p0){
4393 struct {struct stack_frame_t me;} fra;
4394 val_t tmp;
4395 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4396 fra.me.file = LOCATE_syntax_base;
4397 fra.me.line = 751;
4398 fra.me.meth = LOCATE_syntax_base___AAbsSendExpr___prop;
4399 fra.me.has_broke = 0;
4400 fra.me.REG_size = 0;
4401 /* ./syntax//syntax_base.nit:751 */
4402 fprintf(stderr, "Deferred method called");
4403 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 751);
4404 nit_exit(1);
4405 stack_frame_head = fra.me.prev;
4406 return NIT_NULL;
4407 }
4408 val_t syntax_base___AAbsSendExpr___return_type(val_t p0){
4409 struct {struct stack_frame_t me;} fra;
4410 val_t tmp;
4411 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4412 fra.me.file = LOCATE_syntax_base;
4413 fra.me.line = 754;
4414 fra.me.meth = LOCATE_syntax_base___AAbsSendExpr___return_type;
4415 fra.me.has_broke = 0;
4416 fra.me.REG_size = 0;
4417 /* ./syntax//syntax_base.nit:754 */
4418 fprintf(stderr, "Deferred method called");
4419 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 754);
4420 nit_exit(1);
4421 stack_frame_head = fra.me.prev;
4422 return NIT_NULL;
4423 }
4424 val_t syntax_base___ASuperExpr___init_in_superclass(val_t p0){
4425 struct {struct stack_frame_t me;} fra;
4426 val_t tmp;
4427 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4428 fra.me.file = LOCATE_syntax_base;
4429 fra.me.line = 764;
4430 fra.me.meth = LOCATE_syntax_base___ASuperExpr___init_in_superclass;
4431 fra.me.has_broke = 0;
4432 fra.me.REG_size = 0;
4433 /* ./syntax//syntax_base.nit:764 */
4434 fprintf(stderr, "Deferred method called");
4435 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 764);
4436 nit_exit(1);
4437 stack_frame_head = fra.me.prev;
4438 return NIT_NULL;
4439 }
4440 val_t syntax_base___ASendExpr___closure_defs(val_t p0){
4441 struct {struct stack_frame_t me;} fra;
4442 val_t tmp;
4443 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4444 fra.me.file = LOCATE_syntax_base;
4445 fra.me.line = 773;
4446 fra.me.meth = LOCATE_syntax_base___ASendExpr___closure_defs;
4447 fra.me.has_broke = 0;
4448 fra.me.REG_size = 0;
4449 /* ./syntax//syntax_base.nit:773 */
4450 fprintf(stderr, "Deferred method called");
4451 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 773);
4452 nit_exit(1);
4453 stack_frame_head = fra.me.prev;
4454 return NIT_NULL;
4455 }
4456 val_t syntax_base___AReassignFormExpr___assign_method(val_t p0){
4457 struct {struct stack_frame_t me;} fra;
4458 val_t tmp;
4459 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4460 fra.me.file = LOCATE_syntax_base;
4461 fra.me.line = 778;
4462 fra.me.meth = LOCATE_syntax_base___AReassignFormExpr___assign_method;
4463 fra.me.has_broke = 0;
4464 fra.me.REG_size = 0;
4465 /* ./syntax//syntax_base.nit:778 */
4466 fprintf(stderr, "Deferred method called");
4467 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 778);
4468 nit_exit(1);
4469 stack_frame_head = fra.me.prev;
4470 return NIT_NULL;
4471 }
4472 val_t syntax_base___ASendReassignExpr___read_prop(val_t p0){
4473 struct {struct stack_frame_t me;} fra;
4474 val_t tmp;
4475 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4476 fra.me.file = LOCATE_syntax_base;
4477 fra.me.line = 785;
4478 fra.me.meth = LOCATE_syntax_base___ASendReassignExpr___read_prop;
4479 fra.me.has_broke = 0;
4480 fra.me.REG_size = 0;
4481 /* ./syntax//syntax_base.nit:785 */
4482 fprintf(stderr, "Deferred method called");
4483 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 785);
4484 nit_exit(1);
4485 stack_frame_head = fra.me.prev;
4486 return NIT_NULL;
4487 }
4488 val_t syntax_base___AAttrFormExpr___prop(val_t p0){
4489 struct {struct stack_frame_t me;} fra;
4490 val_t tmp;
4491 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4492 fra.me.file = LOCATE_syntax_base;
4493 fra.me.line = 799;
4494 fra.me.meth = LOCATE_syntax_base___AAttrFormExpr___prop;
4495 fra.me.has_broke = 0;
4496 fra.me.REG_size = 0;
4497 /* ./syntax//syntax_base.nit:799 */
4498 fprintf(stderr, "Deferred method called");
4499 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 799);
4500 nit_exit(1);
4501 stack_frame_head = fra.me.prev;
4502 return NIT_NULL;
4503 }
4504 val_t syntax_base___AAttrFormExpr___attr_type(val_t p0){
4505 struct {struct stack_frame_t me;} fra;
4506 val_t tmp;
4507 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4508 fra.me.file = LOCATE_syntax_base;
4509 fra.me.line = 802;
4510 fra.me.meth = LOCATE_syntax_base___AAttrFormExpr___attr_type;
4511 fra.me.has_broke = 0;
4512 fra.me.REG_size = 0;
4513 /* ./syntax//syntax_base.nit:802 */
4514 fprintf(stderr, "Deferred method called");
4515 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 802);
4516 nit_exit(1);
4517 stack_frame_head = fra.me.prev;
4518 return NIT_NULL;
4519 }
4520 val_t syntax_base___ASuperstringExpr___atype(val_t p0){
4521 struct {struct stack_frame_t me;} fra;
4522 val_t tmp;
4523 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4524 fra.me.file = LOCATE_syntax_base;
4525 fra.me.line = 807;
4526 fra.me.meth = LOCATE_syntax_base___ASuperstringExpr___atype;
4527 fra.me.has_broke = 0;
4528 fra.me.REG_size = 0;
4529 /* ./syntax//syntax_base.nit:807 */
4530 fprintf(stderr, "Deferred method called");
4531 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 807);
4532 nit_exit(1);
4533 stack_frame_head = fra.me.prev;
4534 return NIT_NULL;
4535 }
4536 val_t syntax_base___AVardeclExpr___variable(val_t p0){
4537 struct {struct stack_frame_t me;} fra;
4538 val_t tmp;
4539 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4540 fra.me.file = LOCATE_syntax_base;
4541 fra.me.line = 811;
4542 fra.me.meth = LOCATE_syntax_base___AVardeclExpr___variable;
4543 fra.me.has_broke = 0;
4544 fra.me.REG_size = 0;
4545 /* ./syntax//syntax_base.nit:811 */
4546 fprintf(stderr, "Deferred method called");
4547 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 811);
4548 nit_exit(1);
4549 stack_frame_head = fra.me.prev;
4550 return NIT_NULL;
4551 }
4552 val_t syntax_base___AForExpr___variable(val_t p0){
4553 struct {struct stack_frame_t me;} fra;
4554 val_t tmp;
4555 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4556 fra.me.file = LOCATE_syntax_base;
4557 fra.me.line = 817;
4558 fra.me.meth = LOCATE_syntax_base___AForExpr___variable;
4559 fra.me.has_broke = 0;
4560 fra.me.REG_size = 0;
4561 /* ./syntax//syntax_base.nit:817 */
4562 fprintf(stderr, "Deferred method called");
4563 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 817);
4564 nit_exit(1);
4565 stack_frame_head = fra.me.prev;
4566 return NIT_NULL;
4567 }
4568 val_t syntax_base___ASelfExpr___variable(val_t p0){
4569 struct {struct stack_frame_t me;} fra;
4570 val_t tmp;
4571 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4572 fra.me.file = LOCATE_syntax_base;
4573 fra.me.line = 822;
4574 fra.me.meth = LOCATE_syntax_base___ASelfExpr___variable;
4575 fra.me.has_broke = 0;
4576 fra.me.REG_size = 0;
4577 /* ./syntax//syntax_base.nit:822 */
4578 fprintf(stderr, "Deferred method called");
4579 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 822);
4580 nit_exit(1);
4581 stack_frame_head = fra.me.prev;
4582 return NIT_NULL;
4583 }
4584 val_t syntax_base___AVarFormExpr___variable(val_t p0){
4585 struct {struct stack_frame_t me;} fra;
4586 val_t tmp;
4587 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4588 fra.me.file = LOCATE_syntax_base;
4589 fra.me.line = 827;
4590 fra.me.meth = LOCATE_syntax_base___AVarFormExpr___variable;
4591 fra.me.has_broke = 0;
4592 fra.me.REG_size = 0;
4593 /* ./syntax//syntax_base.nit:827 */
4594 fprintf(stderr, "Deferred method called");
4595 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 827);
4596 nit_exit(1);
4597 stack_frame_head = fra.me.prev;
4598 return NIT_NULL;
4599 }
4600 val_t syntax_base___AClosureCallExpr___variable(val_t p0){
4601 struct {struct stack_frame_t me;} fra;
4602 val_t tmp;
4603 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4604 fra.me.file = LOCATE_syntax_base;
4605 fra.me.line = 833;
4606 fra.me.meth = LOCATE_syntax_base___AClosureCallExpr___variable;
4607 fra.me.has_broke = 0;
4608 fra.me.REG_size = 0;
4609 /* ./syntax//syntax_base.nit:833 */
4610 fprintf(stderr, "Deferred method called");
4611 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 833);
4612 nit_exit(1);
4613 stack_frame_head = fra.me.prev;
4614 return NIT_NULL;
4615 }
4616 val_t syntax_base___AClosureDef___closure(val_t p0){
4617 struct {struct stack_frame_t me;} fra;
4618 val_t tmp;
4619 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4620 fra.me.file = LOCATE_syntax_base;
4621 fra.me.line = 838;
4622 fra.me.meth = LOCATE_syntax_base___AClosureDef___closure;
4623 fra.me.has_broke = 0;
4624 fra.me.REG_size = 0;
4625 /* ./syntax//syntax_base.nit:838 */
4626 fprintf(stderr, "Deferred method called");
4627 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 838);
4628 nit_exit(1);
4629 stack_frame_head = fra.me.prev;
4630 return NIT_NULL;
4631 }
4632 val_t syntax_base___AClosureDef___variables(val_t p0){
4633 struct {struct stack_frame_t me;} fra;
4634 val_t tmp;
4635 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4636 fra.me.file = LOCATE_syntax_base;
4637 fra.me.line = 841;
4638 fra.me.meth = LOCATE_syntax_base___AClosureDef___variables;
4639 fra.me.has_broke = 0;
4640 fra.me.REG_size = 1;
4641 fra.me.REG[0] = NIT_NULL;
4642 fra.me.REG[0] = p0;
4643 fra.me.REG[0] = ATTR_syntax_base___AClosureDef____variables(fra.me.REG[0]);
4644 /* ./syntax//syntax_base.nit:841 */
4645 stack_frame_head = fra.me.prev;
4646 return fra.me.REG[0];
4647 }
4648 void syntax_base___AClosureDef___variables__eq(val_t p0, val_t p1){
4649 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4650 val_t tmp;
4651 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4652 fra.me.file = LOCATE_syntax_base;
4653 fra.me.line = 841;
4654 fra.me.meth = LOCATE_syntax_base___AClosureDef___variables__eq;
4655 fra.me.has_broke = 0;
4656 fra.me.REG_size = 2;
4657 fra.me.REG[0] = NIT_NULL;
4658 fra.me.REG[1] = NIT_NULL;
4659 fra.me.REG[0] = p0;
4660 fra.me.REG[1] = p1;
4661 /* ./syntax//syntax_base.nit:841 */
4662 ATTR_syntax_base___AClosureDef____variables(fra.me.REG[0]) = fra.me.REG[1];
4663 stack_frame_head = fra.me.prev;
4664 return;
4665 }