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