ni_nitdoc: added fast copy past utility to signatures.
[nit.git] / c_src / syntax___syntax_base._sep.c
1 /* This C file is generated by NIT to compile module syntax___syntax_base. */
2 #include "syntax___syntax_base._sep.h"
3 static const char LOCATE_syntax___syntax_base___MMSrcModule___clear_ast[] = "syntax_base::MMSrcModule::clear_ast";
4 void syntax___syntax_base___MMSrcModule___clear_ast(val_t p0){
5 struct {struct stack_frame_t me;} fra;
6 val_t tmp;
7 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8 fra.me.file = LOCATE_syntax___syntax_base;
9 fra.me.line = 31;
10 fra.me.meth = LOCATE_syntax___syntax_base___MMSrcModule___clear_ast;
11 fra.me.has_broke = 0;
12 fra.me.REG_size = 1;
13 fra.me.nitni_local_ref_head = NULL;
14 fra.me.REG[0] = NIT_NULL;
15 fra.me.REG[0] = p0;
16 /* syntax/syntax_base.nit:32 */
17 ATTR_syntax___syntax_base___MMSrcModule____nodes(fra.me.REG[0]) = NIT_NULL;
18 stack_frame_head = fra.me.prev;
19 return;
20 }
21 static const char LOCATE_syntax___syntax_base___MMSrcModule___node[] = "syntax_base::MMSrcModule::node";
22 val_t syntax___syntax_base___MMSrcModule___node(val_t p0){
23 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24 val_t REGB0;
25 val_t tmp;
26 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27 fra.me.file = LOCATE_syntax___syntax_base;
28 fra.me.line = 34;
29 fra.me.meth = LOCATE_syntax___syntax_base___MMSrcModule___node;
30 fra.me.has_broke = 0;
31 fra.me.REG_size = 2;
32 fra.me.nitni_local_ref_head = NULL;
33 fra.me.REG[0] = NIT_NULL;
34 fra.me.REG[1] = NIT_NULL;
35 fra.me.REG[0] = p0;
36 /* syntax/syntax_base.nit:34 */
37 fra.me.REG[1] = fra.me.REG[0];
38 /* syntax/syntax_base.nit:35 */
39 fra.me.REG[1] = CALL_syntax___syntax_base___MMModule___nodes(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[1]);
40 REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_parser___parser_nodes___AModule, ID_parser___parser_nodes___AModule)) /*cast AModule*/;
41 if (UNTAG_Bool(REGB0)) {
42 } else {
43 nit_abort("Cast failed", NULL, LOCATE_syntax___syntax_base, 35);
44 }
45 goto label1;
46 label1: while(0);
47 stack_frame_head = fra.me.prev;
48 return fra.me.REG[1];
49 }
50 static const char LOCATE_syntax___syntax_base___MMSrcModule___src_local_classes[] = "syntax_base::MMSrcModule::src_local_classes";
51 val_t syntax___syntax_base___MMSrcModule___src_local_classes(val_t p0){
52 struct {struct stack_frame_t me;} fra;
53 val_t REGB0;
54 val_t tmp;
55 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
56 fra.me.file = LOCATE_syntax___syntax_base;
57 fra.me.line = 37;
58 fra.me.meth = LOCATE_syntax___syntax_base___MMSrcModule___src_local_classes;
59 fra.me.has_broke = 0;
60 fra.me.REG_size = 1;
61 fra.me.nitni_local_ref_head = NULL;
62 fra.me.REG[0] = NIT_NULL;
63 fra.me.REG[0] = p0;
64 /* syntax/syntax_base.nit:37 */
65 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMSrcModule____src_local_classes(fra.me.REG[0])!=NIT_NULL);
66 if (UNTAG_Bool(REGB0)) {
67 } else {
68 nit_abort("Uninitialized attribute %s", "_src_local_classes", LOCATE_syntax___syntax_base, 37);
69 }
70 fra.me.REG[0] = ATTR_syntax___syntax_base___MMSrcModule____src_local_classes(fra.me.REG[0]);
71 stack_frame_head = fra.me.prev;
72 return fra.me.REG[0];
73 }
74 static const char LOCATE_syntax___syntax_base___MMSrcModule___init[] = "syntax_base::MMSrcModule::init";
75 void syntax___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){
76 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___syntax_base___MMSrcModule].i;
77 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
78 val_t tmp;
79 if (init_table[itpos0]) return;
80 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
81 fra.me.file = LOCATE_syntax___syntax_base;
82 fra.me.line = 40;
83 fra.me.meth = LOCATE_syntax___syntax_base___MMSrcModule___init;
84 fra.me.has_broke = 0;
85 fra.me.REG_size = 7;
86 fra.me.nitni_local_ref_head = NULL;
87 fra.me.REG[0] = NIT_NULL;
88 fra.me.REG[1] = NIT_NULL;
89 fra.me.REG[2] = NIT_NULL;
90 fra.me.REG[3] = NIT_NULL;
91 fra.me.REG[4] = NIT_NULL;
92 fra.me.REG[5] = NIT_NULL;
93 fra.me.REG[6] = NIT_NULL;
94 fra.me.REG[0] = p0;
95 fra.me.REG[1] = p1;
96 fra.me.REG[2] = p2;
97 fra.me.REG[3] = p3;
98 fra.me.REG[4] = p4;
99 fra.me.REG[5] = p5;
100 /* syntax/syntax_base.nit:40 */
101 fra.me.REG[6] = fra.me.REG[0];
102 /* syntax/syntax_base.nit:42 */
103 CALL_metamodel___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);
104 /* syntax/syntax_base.nit:43 */
105 CALL_syntax___syntax_base___MMModule___nodes__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[6], fra.me.REG[2]);
106 /* syntax/syntax_base.nit:44 */
107 fra.me.REG[2] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
108 ATTR_syntax___syntax_base___MMSrcModule____src_local_classes(fra.me.REG[6]) = fra.me.REG[2];
109 stack_frame_head = fra.me.prev;
110 init_table[itpos0] = 1;
111 return;
112 }
113 static const char LOCATE_syntax___syntax_base___MMSrcModule___nodes[] = "syntax_base::MMSrcModule::(syntax_base::MMModule::nodes)";
114 val_t syntax___syntax_base___MMSrcModule___nodes(val_t p0, val_t p1){
115 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
116 val_t REGB0;
117 val_t REGB1;
118 val_t tmp;
119 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
120 fra.me.file = LOCATE_syntax___syntax_base;
121 fra.me.line = 47;
122 fra.me.meth = LOCATE_syntax___syntax_base___MMSrcModule___nodes;
123 fra.me.has_broke = 0;
124 fra.me.REG_size = 3;
125 fra.me.nitni_local_ref_head = NULL;
126 fra.me.REG[0] = NIT_NULL;
127 fra.me.REG[1] = NIT_NULL;
128 fra.me.REG[2] = NIT_NULL;
129 fra.me.REG[0] = p0;
130 fra.me.REG[1] = p1;
131 /* syntax/syntax_base.nit:49 */
132 fra.me.REG[2] = ATTR_syntax___syntax_base___MMSrcModule____nodes(fra.me.REG[0]);
133 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
134 if (UNTAG_Bool(REGB0)) {
135 } else {
136 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
137 if (UNTAG_Bool(REGB1)) {
138 REGB1 = TAG_Bool(0);
139 REGB0 = REGB1;
140 } else {
141 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
142 REGB0 = REGB1;
143 }
144 }
145 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
146 if (UNTAG_Bool(REGB0)) {
147 fra.me.REG[2] = ATTR_syntax___syntax_base___MMSrcModule____nodes(fra.me.REG[0]);
148 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
149 if (UNTAG_Bool(REGB0)) {
150 nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 49);
151 }
152 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
153 } else {
154 REGB1 = TAG_Bool(0);
155 REGB0 = REGB1;
156 }
157 if (UNTAG_Bool(REGB0)) {
158 fra.me.REG[0] = ATTR_syntax___syntax_base___MMSrcModule____nodes(fra.me.REG[0]);
159 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
160 if (UNTAG_Bool(REGB0)) {
161 nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 49);
162 }
163 fra.me.REG[1] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
164 goto label1;
165 } else {
166 fra.me.REG[1] = NIT_NULL;
167 goto label1;
168 }
169 label1: while(0);
170 stack_frame_head = fra.me.prev;
171 return fra.me.REG[1];
172 }
173 static const char LOCATE_syntax___syntax_base___MMSrcModule___nodes__eq[] = "syntax_base::MMSrcModule::(syntax_base::MMModule::nodes=)";
174 void syntax___syntax_base___MMSrcModule___nodes__eq(val_t p0, val_t p1, val_t p2){
175 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
176 val_t REGB0;
177 val_t tmp;
178 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
179 fra.me.file = LOCATE_syntax___syntax_base;
180 fra.me.line = 51;
181 fra.me.meth = LOCATE_syntax___syntax_base___MMSrcModule___nodes__eq;
182 fra.me.has_broke = 0;
183 fra.me.REG_size = 4;
184 fra.me.nitni_local_ref_head = NULL;
185 fra.me.REG[0] = NIT_NULL;
186 fra.me.REG[1] = NIT_NULL;
187 fra.me.REG[2] = NIT_NULL;
188 fra.me.REG[3] = NIT_NULL;
189 fra.me.REG[0] = p0;
190 fra.me.REG[1] = p1;
191 fra.me.REG[2] = p2;
192 /* syntax/syntax_base.nit:53 */
193 fra.me.REG[3] = ATTR_syntax___syntax_base___MMSrcModule____nodes(fra.me.REG[0]);
194 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
195 if (UNTAG_Bool(REGB0)) {
196 nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 53);
197 }
198 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
199 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
200 if (UNTAG_Bool(REGB0)) {
201 } else {
202 nit_abort("Assert failed", NULL, LOCATE_syntax___syntax_base, 53);
203 }
204 /* syntax/syntax_base.nit:54 */
205 fra.me.REG[0] = ATTR_syntax___syntax_base___MMSrcModule____nodes(fra.me.REG[0]);
206 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
207 if (UNTAG_Bool(REGB0)) {
208 nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 54);
209 }
210 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
211 stack_frame_head = fra.me.prev;
212 return;
213 }
214 static const char LOCATE_syntax___syntax_base___MMModule___nodes[] = "syntax_base::MMModule::nodes";
215 val_t syntax___syntax_base___MMModule___nodes(val_t p0, val_t p1){
216 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
217 val_t tmp;
218 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
219 fra.me.file = LOCATE_syntax___syntax_base;
220 fra.me.line = 59;
221 fra.me.meth = LOCATE_syntax___syntax_base___MMModule___nodes;
222 fra.me.has_broke = 0;
223 fra.me.REG_size = 2;
224 fra.me.nitni_local_ref_head = NULL;
225 fra.me.REG[0] = NIT_NULL;
226 fra.me.REG[1] = NIT_NULL;
227 fra.me.REG[0] = p0;
228 fra.me.REG[1] = p1;
229 /* syntax/syntax_base.nit:60 */
230 fra.me.REG[1] = NIT_NULL;
231 goto label1;
232 label1: while(0);
233 stack_frame_head = fra.me.prev;
234 return fra.me.REG[1];
235 }
236 static const char LOCATE_syntax___syntax_base___MMModule___nodes__eq[] = "syntax_base::MMModule::nodes=";
237 void syntax___syntax_base___MMModule___nodes__eq(val_t p0, val_t p1, val_t p2){
238 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
239 val_t tmp;
240 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
241 fra.me.file = LOCATE_syntax___syntax_base;
242 fra.me.line = 61;
243 fra.me.meth = LOCATE_syntax___syntax_base___MMModule___nodes__eq;
244 fra.me.has_broke = 0;
245 fra.me.REG_size = 3;
246 fra.me.nitni_local_ref_head = NULL;
247 fra.me.REG[0] = NIT_NULL;
248 fra.me.REG[1] = NIT_NULL;
249 fra.me.REG[2] = NIT_NULL;
250 fra.me.REG[0] = p0;
251 fra.me.REG[1] = p1;
252 fra.me.REG[2] = p2;
253 /* syntax/syntax_base.nit:62 */
254 nit_abort("Aborted", NULL, LOCATE_syntax___syntax_base, 62);
255 stack_frame_head = fra.me.prev;
256 return;
257 }
258 static const char LOCATE_syntax___syntax_base___MMGlobalClass___check_visibility[] = "syntax_base::MMGlobalClass::check_visibility";
259 val_t syntax___syntax_base___MMGlobalClass___check_visibility(val_t p0, val_t p1, val_t p2, val_t p3){
260 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
261 val_t REGB0;
262 val_t REGB1;
263 val_t REGB2;
264 val_t REGB3;
265 val_t tmp;
266 static val_t once_value_2; /* Once value */
267 static val_t once_value_3; /* Once value */
268 static val_t once_value_4; /* Once value */
269 static val_t once_value_5; /* Once value */
270 static val_t once_value_6; /* Once value */
271 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
272 fra.me.file = LOCATE_syntax___syntax_base;
273 fra.me.line = 66;
274 fra.me.meth = LOCATE_syntax___syntax_base___MMGlobalClass___check_visibility;
275 fra.me.has_broke = 0;
276 fra.me.REG_size = 6;
277 fra.me.nitni_local_ref_head = NULL;
278 fra.me.REG[0] = NIT_NULL;
279 fra.me.REG[1] = NIT_NULL;
280 fra.me.REG[2] = NIT_NULL;
281 fra.me.REG[3] = NIT_NULL;
282 fra.me.REG[4] = NIT_NULL;
283 fra.me.REG[5] = NIT_NULL;
284 fra.me.REG[0] = p0;
285 fra.me.REG[1] = p1;
286 fra.me.REG[2] = p2;
287 fra.me.REG[3] = p3;
288 /* syntax/syntax_base.nit:68 */
289 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[0])(fra.me.REG[0]);
290 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[4])(fra.me.REG[4]);
291 /* syntax/syntax_base.nit:69 */
292 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_syntax___syntax_base___MMSrcModule, ID_syntax___syntax_base___MMSrcModule)) /*cast MMSrcModule*/;
293 if (UNTAG_Bool(REGB0)) {
294 } else {
295 nit_abort("Assert failed", NULL, LOCATE_syntax___syntax_base, 69);
296 }
297 /* syntax/syntax_base.nit:70 */
298 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___visibility_for(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
299 /* syntax/syntax_base.nit:71 */
300 REGB1 = TAG_Int(3);
301 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
302 if (UNTAG_Bool(REGB2)) {
303 } else {
304 /* ../lib/standard/kernel.nit:230 */
305 REGB1 = TAG_Bool((REGB0)==(REGB1));
306 /* syntax/syntax_base.nit:71 */
307 REGB2 = REGB1;
308 }
309 if (UNTAG_Bool(REGB2)) {
310 /* syntax/syntax_base.nit:72 */
311 REGB2 = TAG_Bool(1);
312 goto label1;
313 } else {
314 /* syntax/syntax_base.nit:73 */
315 REGB1 = TAG_Int(0);
316 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
317 if (UNTAG_Bool(REGB3)) {
318 } else {
319 /* ../lib/standard/kernel.nit:230 */
320 REGB1 = TAG_Bool((REGB0)==(REGB1));
321 /* syntax/syntax_base.nit:73 */
322 REGB3 = REGB1;
323 }
324 if (UNTAG_Bool(REGB3)) {
325 /* syntax/syntax_base.nit:74 */
326 REGB3 = TAG_Int(5);
327 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
328 if (!once_value_2) {
329 fra.me.REG[5] = BOX_NativeString("Visibility error: Class ");
330 REGB3 = TAG_Int(24);
331 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB3);
332 once_value_2 = fra.me.REG[5];
333 register_static_object(&once_value_2);
334 } else fra.me.REG[5] = once_value_2;
335 fra.me.REG[5] = fra.me.REG[5];
336 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
337 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
338 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
339 if (!once_value_3) {
340 fra.me.REG[5] = BOX_NativeString(" comes from the hidden module ");
341 REGB3 = TAG_Int(30);
342 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB3);
343 once_value_3 = fra.me.REG[5];
344 register_static_object(&once_value_3);
345 } else fra.me.REG[5] = once_value_3;
346 fra.me.REG[5] = fra.me.REG[5];
347 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
348 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
349 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
350 if (!once_value_4) {
351 fra.me.REG[4] = BOX_NativeString(".");
352 REGB3 = TAG_Int(1);
353 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB3);
354 once_value_4 = fra.me.REG[4];
355 register_static_object(&once_value_4);
356 } else fra.me.REG[4] = once_value_4;
357 fra.me.REG[4] = fra.me.REG[4];
358 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
359 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
360 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
361 /* syntax/syntax_base.nit:75 */
362 REGB3 = TAG_Bool(0);
363 REGB2 = REGB3;
364 goto label1;
365 } else {
366 /* syntax/syntax_base.nit:76 */
367 REGB3 = CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
368 REGB1 = TAG_Int(3);
369 REGB0 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
370 if (UNTAG_Bool(REGB0)) {
371 } else {
372 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
373 }
374 /* ../lib/standard/kernel.nit:236 */
375 REGB1 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB1));
376 /* syntax/syntax_base.nit:76 */
377 if (UNTAG_Bool(REGB1)) {
378 /* syntax/syntax_base.nit:77 */
379 REGB1 = TAG_Int(3);
380 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
381 if (!once_value_5) {
382 fra.me.REG[4] = BOX_NativeString("Visibility error: Class ");
383 REGB1 = TAG_Int(24);
384 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
385 once_value_5 = fra.me.REG[4];
386 register_static_object(&once_value_5);
387 } else fra.me.REG[4] = once_value_5;
388 fra.me.REG[4] = fra.me.REG[4];
389 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
390 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
391 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
392 if (!once_value_6) {
393 fra.me.REG[0] = BOX_NativeString(" is private.");
394 REGB1 = TAG_Int(12);
395 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB1);
396 once_value_6 = fra.me.REG[0];
397 register_static_object(&once_value_6);
398 } else fra.me.REG[0] = once_value_6;
399 fra.me.REG[0] = fra.me.REG[0];
400 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
401 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
402 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
403 /* syntax/syntax_base.nit:78 */
404 REGB1 = TAG_Bool(0);
405 REGB2 = REGB1;
406 goto label1;
407 }
408 }
409 }
410 /* syntax/syntax_base.nit:80 */
411 REGB1 = TAG_Bool(1);
412 REGB2 = REGB1;
413 goto label1;
414 label1: while(0);
415 stack_frame_head = fra.me.prev;
416 return REGB2;
417 }
418 static const char LOCATE_syntax___syntax_base___MMSrcLocalClass___node[] = "syntax_base::MMSrcLocalClass::node";
419 val_t syntax___syntax_base___MMSrcLocalClass___node(val_t p0){
420 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
421 val_t REGB0;
422 val_t tmp;
423 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
424 fra.me.file = LOCATE_syntax___syntax_base;
425 fra.me.line = 87;
426 fra.me.meth = LOCATE_syntax___syntax_base___MMSrcLocalClass___node;
427 fra.me.has_broke = 0;
428 fra.me.REG_size = 3;
429 fra.me.nitni_local_ref_head = NULL;
430 fra.me.REG[0] = NIT_NULL;
431 fra.me.REG[1] = NIT_NULL;
432 fra.me.REG[2] = NIT_NULL;
433 fra.me.REG[0] = p0;
434 /* syntax/syntax_base.nit:87 */
435 fra.me.REG[1] = fra.me.REG[0];
436 /* syntax/syntax_base.nit:88 */
437 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
438 fra.me.REG[1] = CALL_syntax___syntax_base___MMModule___nodes(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
439 REGB0 = TAG_Bool((fra.me.REG[1]==NIT_NULL) || VAL_ISA(fra.me.REG[1], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast nullable AClassdef*/;
440 if (UNTAG_Bool(REGB0)) {
441 } else {
442 nit_abort("Cast failed", NULL, LOCATE_syntax___syntax_base, 88);
443 }
444 goto label1;
445 label1: while(0);
446 stack_frame_head = fra.me.prev;
447 return fra.me.REG[1];
448 }
449 static const char LOCATE_syntax___syntax_base___MMSrcLocalClass___formal_dict[] = "syntax_base::MMSrcLocalClass::formal_dict";
450 val_t syntax___syntax_base___MMSrcLocalClass___formal_dict(val_t p0){
451 struct {struct stack_frame_t me;} fra;
452 val_t REGB0;
453 val_t tmp;
454 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
455 fra.me.file = LOCATE_syntax___syntax_base;
456 fra.me.line = 90;
457 fra.me.meth = LOCATE_syntax___syntax_base___MMSrcLocalClass___formal_dict;
458 fra.me.has_broke = 0;
459 fra.me.REG_size = 1;
460 fra.me.nitni_local_ref_head = NULL;
461 fra.me.REG[0] = NIT_NULL;
462 fra.me.REG[0] = p0;
463 /* syntax/syntax_base.nit:90 */
464 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMSrcLocalClass____formal_dict(fra.me.REG[0])!=NIT_NULL);
465 if (UNTAG_Bool(REGB0)) {
466 } else {
467 nit_abort("Uninitialized attribute %s", "_formal_dict", LOCATE_syntax___syntax_base, 90);
468 }
469 fra.me.REG[0] = ATTR_syntax___syntax_base___MMSrcLocalClass____formal_dict(fra.me.REG[0]);
470 stack_frame_head = fra.me.prev;
471 return fra.me.REG[0];
472 }
473 static const char LOCATE_syntax___syntax_base___MMSrcLocalClass___src_local_properties[] = "syntax_base::MMSrcLocalClass::src_local_properties";
474 val_t syntax___syntax_base___MMSrcLocalClass___src_local_properties(val_t p0){
475 struct {struct stack_frame_t me;} fra;
476 val_t REGB0;
477 val_t tmp;
478 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
479 fra.me.file = LOCATE_syntax___syntax_base;
480 fra.me.line = 93;
481 fra.me.meth = LOCATE_syntax___syntax_base___MMSrcLocalClass___src_local_properties;
482 fra.me.has_broke = 0;
483 fra.me.REG_size = 1;
484 fra.me.nitni_local_ref_head = NULL;
485 fra.me.REG[0] = NIT_NULL;
486 fra.me.REG[0] = p0;
487 /* syntax/syntax_base.nit:93 */
488 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMSrcLocalClass____src_local_properties(fra.me.REG[0])!=NIT_NULL);
489 if (UNTAG_Bool(REGB0)) {
490 } else {
491 nit_abort("Uninitialized attribute %s", "_src_local_properties", LOCATE_syntax___syntax_base, 93);
492 }
493 fra.me.REG[0] = ATTR_syntax___syntax_base___MMSrcLocalClass____src_local_properties(fra.me.REG[0]);
494 stack_frame_head = fra.me.prev;
495 return fra.me.REG[0];
496 }
497 static const char LOCATE_syntax___syntax_base___MMSrcLocalClass___init[] = "syntax_base::MMSrcLocalClass::init";
498 void syntax___syntax_base___MMSrcLocalClass___init(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
499 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___syntax_base___MMSrcLocalClass].i;
500 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
501 val_t REGB0;
502 val_t tmp;
503 if (init_table[itpos1]) return;
504 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
505 fra.me.file = LOCATE_syntax___syntax_base;
506 fra.me.line = 96;
507 fra.me.meth = LOCATE_syntax___syntax_base___MMSrcLocalClass___init;
508 fra.me.has_broke = 0;
509 fra.me.REG_size = 5;
510 fra.me.nitni_local_ref_head = NULL;
511 fra.me.REG[0] = NIT_NULL;
512 fra.me.REG[1] = NIT_NULL;
513 fra.me.REG[2] = NIT_NULL;
514 fra.me.REG[3] = NIT_NULL;
515 fra.me.REG[4] = NIT_NULL;
516 fra.me.REG[0] = p0;
517 fra.me.REG[1] = p1;
518 fra.me.REG[2] = p2;
519 fra.me.REG[3] = p3;
520 REGB0 = p4;
521 /* syntax/syntax_base.nit:96 */
522 fra.me.REG[4] = fra.me.REG[0];
523 /* syntax/syntax_base.nit:98 */
524 CALL_metamodel___abstractmetamodel___MMLocalClass___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, init_table);
525 /* syntax/syntax_base.nit:99 */
526 CALL_syntax___syntax_base___MMModule___nodes__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[3]);
527 /* syntax/syntax_base.nit:100 */
528 fra.me.REG[3] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
529 ATTR_syntax___syntax_base___MMSrcLocalClass____src_local_properties(fra.me.REG[4]) = fra.me.REG[3];
530 stack_frame_head = fra.me.prev;
531 init_table[itpos1] = 1;
532 return;
533 }
534 static const char LOCATE_syntax___syntax_base___MMGlobalProperty___check_visibility[] = "syntax_base::MMGlobalProperty::check_visibility";
535 val_t syntax___syntax_base___MMGlobalProperty___check_visibility(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
536 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
537 val_t REGB0;
538 val_t REGB1;
539 val_t REGB2;
540 val_t REGB3;
541 val_t REGB4;
542 val_t tmp;
543 static val_t once_value_2; /* Once value */
544 static val_t once_value_3; /* Once value */
545 static val_t once_value_4; /* Once value */
546 static val_t once_value_5; /* Once value */
547 static val_t once_value_6; /* Once value */
548 static val_t once_value_7; /* Once value */
549 static val_t once_value_8; /* Once value */
550 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
551 fra.me.file = LOCATE_syntax___syntax_base;
552 fra.me.line = 105;
553 fra.me.meth = LOCATE_syntax___syntax_base___MMGlobalProperty___check_visibility;
554 fra.me.has_broke = 0;
555 fra.me.REG_size = 6;
556 fra.me.nitni_local_ref_head = NULL;
557 fra.me.REG[0] = NIT_NULL;
558 fra.me.REG[1] = NIT_NULL;
559 fra.me.REG[2] = NIT_NULL;
560 fra.me.REG[3] = NIT_NULL;
561 fra.me.REG[4] = NIT_NULL;
562 fra.me.REG[5] = NIT_NULL;
563 fra.me.REG[0] = p0;
564 fra.me.REG[1] = p1;
565 fra.me.REG[2] = p2;
566 fra.me.REG[3] = p3;
567 REGB0 = p4;
568 /* syntax/syntax_base.nit:107 */
569 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
570 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[4])(fra.me.REG[4]);
571 /* syntax/syntax_base.nit:108 */
572 REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_syntax___syntax_base___MMSrcModule, ID_syntax___syntax_base___MMSrcModule)) /*cast MMSrcModule*/;
573 if (UNTAG_Bool(REGB1)) {
574 } else {
575 nit_abort("Assert failed", NULL, LOCATE_syntax___syntax_base, 108);
576 }
577 /* syntax/syntax_base.nit:109 */
578 REGB1 = CALL_metamodel___abstractmetamodel___MMModule___visibility_for(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
579 /* syntax/syntax_base.nit:110 */
580 REGB2 = TAG_Int(3);
581 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
582 if (UNTAG_Bool(REGB3)) {
583 } else {
584 /* ../lib/standard/kernel.nit:230 */
585 REGB2 = TAG_Bool((REGB1)==(REGB2));
586 /* syntax/syntax_base.nit:110 */
587 REGB3 = REGB2;
588 }
589 if (UNTAG_Bool(REGB3)) {
590 /* syntax/syntax_base.nit:111 */
591 REGB3 = TAG_Bool(1);
592 goto label1;
593 } else {
594 /* syntax/syntax_base.nit:112 */
595 REGB2 = TAG_Int(0);
596 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
597 if (UNTAG_Bool(REGB4)) {
598 } else {
599 /* ../lib/standard/kernel.nit:230 */
600 REGB2 = TAG_Bool((REGB1)==(REGB2));
601 /* syntax/syntax_base.nit:112 */
602 REGB4 = REGB2;
603 }
604 if (UNTAG_Bool(REGB4)) {
605 /* syntax/syntax_base.nit:114 */
606 REGB4 = TAG_Int(5);
607 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
608 if (!once_value_2) {
609 fra.me.REG[5] = BOX_NativeString("Visibility error: Property ");
610 REGB4 = TAG_Int(27);
611 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB4);
612 once_value_2 = fra.me.REG[5];
613 register_static_object(&once_value_2);
614 } else fra.me.REG[5] = once_value_2;
615 fra.me.REG[5] = fra.me.REG[5];
616 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
617 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
618 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
619 if (!once_value_3) {
620 fra.me.REG[5] = BOX_NativeString(" comes from the hidden module ");
621 REGB4 = TAG_Int(30);
622 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB4);
623 once_value_3 = fra.me.REG[5];
624 register_static_object(&once_value_3);
625 } else fra.me.REG[5] = once_value_3;
626 fra.me.REG[5] = fra.me.REG[5];
627 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
628 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
629 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
630 if (!once_value_4) {
631 fra.me.REG[4] = BOX_NativeString(".");
632 REGB4 = TAG_Int(1);
633 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB4);
634 once_value_4 = fra.me.REG[4];
635 register_static_object(&once_value_4);
636 } else fra.me.REG[4] = once_value_4;
637 fra.me.REG[4] = fra.me.REG[4];
638 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
639 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
640 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
641 /* syntax/syntax_base.nit:115 */
642 REGB4 = TAG_Bool(0);
643 REGB3 = REGB4;
644 goto label1;
645 } else {
646 /* syntax/syntax_base.nit:116 */
647 REGB4 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
648 REGB2 = TAG_Int(3);
649 REGB1 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
650 if (UNTAG_Bool(REGB1)) {
651 } else {
652 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
653 }
654 /* ../lib/standard/kernel.nit:236 */
655 REGB2 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB2));
656 /* syntax/syntax_base.nit:116 */
657 if (UNTAG_Bool(REGB2)) {
658 /* syntax/syntax_base.nit:117 */
659 REGB2 = TAG_Int(3);
660 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
661 if (!once_value_5) {
662 fra.me.REG[4] = BOX_NativeString("Visibility error: Property ");
663 REGB2 = TAG_Int(27);
664 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
665 once_value_5 = fra.me.REG[4];
666 register_static_object(&once_value_5);
667 } else fra.me.REG[4] = once_value_5;
668 fra.me.REG[4] = fra.me.REG[4];
669 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
670 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
671 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
672 if (!once_value_6) {
673 fra.me.REG[4] = BOX_NativeString(" is private.");
674 REGB2 = TAG_Int(12);
675 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
676 once_value_6 = fra.me.REG[4];
677 register_static_object(&once_value_6);
678 } else fra.me.REG[4] = once_value_6;
679 fra.me.REG[4] = fra.me.REG[4];
680 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
681 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
682 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
683 /* syntax/syntax_base.nit:118 */
684 REGB2 = TAG_Bool(0);
685 REGB3 = REGB2;
686 goto label1;
687 } else {
688 /* syntax/syntax_base.nit:119 */
689 REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
690 REGB4 = TAG_Int(2);
691 REGB1 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
692 if (UNTAG_Bool(REGB1)) {
693 } else {
694 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
695 }
696 /* ../lib/standard/kernel.nit:236 */
697 REGB4 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB4));
698 /* syntax/syntax_base.nit:119 */
699 if (UNTAG_Bool(REGB4)) {
700 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
701 } else {
702 REGB4 = TAG_Bool(0);
703 REGB0 = REGB4;
704 }
705 if (UNTAG_Bool(REGB0)) {
706 /* syntax/syntax_base.nit:120 */
707 REGB0 = TAG_Int(3);
708 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
709 if (!once_value_7) {
710 fra.me.REG[4] = BOX_NativeString("Visibility error: Property ");
711 REGB0 = TAG_Int(27);
712 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
713 once_value_7 = fra.me.REG[4];
714 register_static_object(&once_value_7);
715 } else fra.me.REG[4] = once_value_7;
716 fra.me.REG[4] = fra.me.REG[4];
717 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
718 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
719 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
720 if (!once_value_8) {
721 fra.me.REG[0] = BOX_NativeString(" is protected and can only acceded by self.");
722 REGB0 = TAG_Int(43);
723 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
724 once_value_8 = fra.me.REG[0];
725 register_static_object(&once_value_8);
726 } else fra.me.REG[0] = once_value_8;
727 fra.me.REG[0] = fra.me.REG[0];
728 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
729 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
730 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
731 /* syntax/syntax_base.nit:121 */
732 REGB0 = TAG_Bool(0);
733 REGB3 = REGB0;
734 goto label1;
735 }
736 }
737 }
738 }
739 /* syntax/syntax_base.nit:123 */
740 REGB0 = TAG_Bool(1);
741 REGB3 = REGB0;
742 goto label1;
743 label1: while(0);
744 stack_frame_head = fra.me.prev;
745 return REGB3;
746 }
747 static const char LOCATE_syntax___syntax_base___MMLocalProperty___node[] = "syntax_base::MMLocalProperty::node";
748 val_t syntax___syntax_base___MMLocalProperty___node(val_t p0){
749 struct {struct stack_frame_t me;} fra;
750 val_t tmp;
751 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
752 fra.me.file = LOCATE_syntax___syntax_base;
753 fra.me.line = 128;
754 fra.me.meth = LOCATE_syntax___syntax_base___MMLocalProperty___node;
755 fra.me.has_broke = 0;
756 fra.me.REG_size = 1;
757 fra.me.nitni_local_ref_head = NULL;
758 fra.me.REG[0] = NIT_NULL;
759 fra.me.REG[0] = p0;
760 /* syntax/syntax_base.nit:129 */
761 fra.me.REG[0] = NIT_NULL;
762 goto label1;
763 label1: while(0);
764 stack_frame_head = fra.me.prev;
765 return fra.me.REG[0];
766 }
767 static const char LOCATE_syntax___syntax_base___MMLocalProperty___is_init[] = "syntax_base::MMLocalProperty::is_init";
768 val_t syntax___syntax_base___MMLocalProperty___is_init(val_t p0){
769 struct {struct stack_frame_t me;} fra;
770 val_t REGB0;
771 val_t tmp;
772 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
773 fra.me.file = LOCATE_syntax___syntax_base;
774 fra.me.line = 131;
775 fra.me.meth = LOCATE_syntax___syntax_base___MMLocalProperty___is_init;
776 fra.me.has_broke = 0;
777 fra.me.REG_size = 1;
778 fra.me.nitni_local_ref_head = NULL;
779 fra.me.REG[0] = NIT_NULL;
780 fra.me.REG[0] = p0;
781 /* syntax/syntax_base.nit:132 */
782 REGB0 = TAG_Bool(0);
783 goto label1;
784 label1: while(0);
785 stack_frame_head = fra.me.prev;
786 return REGB0;
787 }
788 static const char LOCATE_syntax___syntax_base___MMSrcAttribute___node[] = "syntax_base::MMSrcAttribute::(syntax_base::MMLocalProperty::node)";
789 val_t syntax___syntax_base___MMSrcAttribute___node(val_t p0){
790 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
791 val_t REGB0;
792 val_t tmp;
793 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
794 fra.me.file = LOCATE_syntax___syntax_base;
795 fra.me.line = 138;
796 fra.me.meth = LOCATE_syntax___syntax_base___MMSrcAttribute___node;
797 fra.me.has_broke = 0;
798 fra.me.REG_size = 3;
799 fra.me.nitni_local_ref_head = NULL;
800 fra.me.REG[0] = NIT_NULL;
801 fra.me.REG[1] = NIT_NULL;
802 fra.me.REG[2] = NIT_NULL;
803 fra.me.REG[0] = p0;
804 /* syntax/syntax_base.nit:138 */
805 fra.me.REG[1] = fra.me.REG[0];
806 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
807 fra.me.REG[1] = CALL_syntax___syntax_base___MMModule___nodes(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
808 REGB0 = TAG_Bool((fra.me.REG[1]==NIT_NULL) || VAL_ISA(fra.me.REG[1], COLOR_parser___parser_nodes___AAttrPropdef, ID_parser___parser_nodes___AAttrPropdef)) /*cast nullable AAttrPropdef*/;
809 if (UNTAG_Bool(REGB0)) {
810 } else {
811 nit_abort("Cast failed", NULL, LOCATE_syntax___syntax_base, 138);
812 }
813 goto label1;
814 label1: while(0);
815 stack_frame_head = fra.me.prev;
816 return fra.me.REG[1];
817 }
818 static const char LOCATE_syntax___syntax_base___MMSrcAttribute___init[] = "syntax_base::MMSrcAttribute::init";
819 void syntax___syntax_base___MMSrcAttribute___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
820 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___syntax_base___MMSrcAttribute].i;
821 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
822 val_t tmp;
823 if (init_table[itpos2]) return;
824 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
825 fra.me.file = LOCATE_syntax___syntax_base;
826 fra.me.line = 139;
827 fra.me.meth = LOCATE_syntax___syntax_base___MMSrcAttribute___init;
828 fra.me.has_broke = 0;
829 fra.me.REG_size = 5;
830 fra.me.nitni_local_ref_head = NULL;
831 fra.me.REG[0] = NIT_NULL;
832 fra.me.REG[1] = NIT_NULL;
833 fra.me.REG[2] = NIT_NULL;
834 fra.me.REG[3] = NIT_NULL;
835 fra.me.REG[4] = NIT_NULL;
836 fra.me.REG[0] = p0;
837 fra.me.REG[1] = p1;
838 fra.me.REG[2] = p2;
839 fra.me.REG[3] = p3;
840 /* syntax/syntax_base.nit:139 */
841 fra.me.REG[4] = fra.me.REG[0];
842 /* syntax/syntax_base.nit:141 */
843 CALL_metamodel___abstractmetamodel___MMLocalProperty___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
844 /* syntax/syntax_base.nit:142 */
845 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[2])(fra.me.REG[2]);
846 CALL_syntax___syntax_base___MMModule___nodes__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4], fra.me.REG[3]);
847 stack_frame_head = fra.me.prev;
848 init_table[itpos2] = 1;
849 return;
850 }
851 static const char LOCATE_syntax___syntax_base___MMSrcMethod___is_intern[] = "syntax_base::MMSrcMethod::(abstractmetamodel::MMMethod::is_intern)";
852 val_t syntax___syntax_base___MMSrcMethod___is_intern(val_t p0){
853 struct {struct stack_frame_t me;} fra;
854 val_t REGB0;
855 val_t tmp;
856 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
857 fra.me.file = LOCATE_syntax___syntax_base;
858 fra.me.line = 149;
859 fra.me.meth = LOCATE_syntax___syntax_base___MMSrcMethod___is_intern;
860 fra.me.has_broke = 0;
861 fra.me.REG_size = 1;
862 fra.me.nitni_local_ref_head = NULL;
863 fra.me.REG[0] = NIT_NULL;
864 fra.me.REG[0] = p0;
865 /* syntax/syntax_base.nit:149 */
866 REGB0 = TAG_Bool(0);
867 goto label1;
868 label1: while(0);
869 stack_frame_head = fra.me.prev;
870 return REGB0;
871 }
872 static const char LOCATE_syntax___syntax_base___MMSrcMethod___is_extern[] = "syntax_base::MMSrcMethod::(abstractmetamodel::MMMethod::is_extern)";
873 val_t syntax___syntax_base___MMSrcMethod___is_extern(val_t p0){
874 struct {struct stack_frame_t me;} fra;
875 val_t REGB0;
876 val_t tmp;
877 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
878 fra.me.file = LOCATE_syntax___syntax_base;
879 fra.me.line = 150;
880 fra.me.meth = LOCATE_syntax___syntax_base___MMSrcMethod___is_extern;
881 fra.me.has_broke = 0;
882 fra.me.REG_size = 1;
883 fra.me.nitni_local_ref_head = NULL;
884 fra.me.REG[0] = NIT_NULL;
885 fra.me.REG[0] = p0;
886 /* syntax/syntax_base.nit:150 */
887 REGB0 = TAG_Bool(0);
888 goto label1;
889 label1: while(0);
890 stack_frame_head = fra.me.prev;
891 return REGB0;
892 }
893 static const char LOCATE_syntax___syntax_base___MMSrcMethod___is_abstract[] = "syntax_base::MMSrcMethod::(abstractmetamodel::MMMethod::is_abstract)";
894 val_t syntax___syntax_base___MMSrcMethod___is_abstract(val_t p0){
895 struct {struct stack_frame_t me;} fra;
896 val_t REGB0;
897 val_t tmp;
898 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
899 fra.me.file = LOCATE_syntax___syntax_base;
900 fra.me.line = 151;
901 fra.me.meth = LOCATE_syntax___syntax_base___MMSrcMethod___is_abstract;
902 fra.me.has_broke = 0;
903 fra.me.REG_size = 1;
904 fra.me.nitni_local_ref_head = NULL;
905 fra.me.REG[0] = NIT_NULL;
906 fra.me.REG[0] = p0;
907 /* syntax/syntax_base.nit:151 */
908 REGB0 = TAG_Bool(0);
909 goto label1;
910 label1: while(0);
911 stack_frame_head = fra.me.prev;
912 return REGB0;
913 }
914 static const char LOCATE_syntax___syntax_base___MMSrcMethod___extern_name[] = "syntax_base::MMSrcMethod::(abstractmetamodel::MMMethod::extern_name)";
915 val_t syntax___syntax_base___MMSrcMethod___extern_name(val_t p0){
916 struct {struct stack_frame_t me;} fra;
917 val_t tmp;
918 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
919 fra.me.file = LOCATE_syntax___syntax_base;
920 fra.me.line = 152;
921 fra.me.meth = LOCATE_syntax___syntax_base___MMSrcMethod___extern_name;
922 fra.me.has_broke = 0;
923 fra.me.REG_size = 1;
924 fra.me.nitni_local_ref_head = NULL;
925 fra.me.REG[0] = NIT_NULL;
926 fra.me.REG[0] = p0;
927 /* syntax/syntax_base.nit:152 */
928 fra.me.REG[0] = NIT_NULL;
929 goto label1;
930 label1: while(0);
931 stack_frame_head = fra.me.prev;
932 return fra.me.REG[0];
933 }
934 static const char LOCATE_syntax___syntax_base___MMAttrImplementationMethod___node[] = "syntax_base::MMAttrImplementationMethod::(syntax_base::MMLocalProperty::node)";
935 val_t syntax___syntax_base___MMAttrImplementationMethod___node(val_t p0){
936 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
937 val_t REGB0;
938 val_t tmp;
939 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
940 fra.me.file = LOCATE_syntax___syntax_base;
941 fra.me.line = 158;
942 fra.me.meth = LOCATE_syntax___syntax_base___MMAttrImplementationMethod___node;
943 fra.me.has_broke = 0;
944 fra.me.REG_size = 3;
945 fra.me.nitni_local_ref_head = NULL;
946 fra.me.REG[0] = NIT_NULL;
947 fra.me.REG[1] = NIT_NULL;
948 fra.me.REG[2] = NIT_NULL;
949 fra.me.REG[0] = p0;
950 /* syntax/syntax_base.nit:158 */
951 fra.me.REG[1] = fra.me.REG[0];
952 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
953 fra.me.REG[1] = CALL_syntax___syntax_base___MMModule___nodes(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
954 REGB0 = TAG_Bool((fra.me.REG[1]==NIT_NULL) || VAL_ISA(fra.me.REG[1], COLOR_parser___parser_nodes___AAttrPropdef, ID_parser___parser_nodes___AAttrPropdef)) /*cast nullable AAttrPropdef*/;
955 if (UNTAG_Bool(REGB0)) {
956 } else {
957 nit_abort("Cast failed", NULL, LOCATE_syntax___syntax_base, 158);
958 }
959 goto label1;
960 label1: while(0);
961 stack_frame_head = fra.me.prev;
962 return fra.me.REG[1];
963 }
964 static const char LOCATE_syntax___syntax_base___MMAttrImplementationMethod___init[] = "syntax_base::MMAttrImplementationMethod::init";
965 void syntax___syntax_base___MMAttrImplementationMethod___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
966 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___syntax_base___MMAttrImplementationMethod].i;
967 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
968 val_t tmp;
969 if (init_table[itpos3]) return;
970 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
971 fra.me.file = LOCATE_syntax___syntax_base;
972 fra.me.line = 159;
973 fra.me.meth = LOCATE_syntax___syntax_base___MMAttrImplementationMethod___init;
974 fra.me.has_broke = 0;
975 fra.me.REG_size = 5;
976 fra.me.nitni_local_ref_head = NULL;
977 fra.me.REG[0] = NIT_NULL;
978 fra.me.REG[1] = NIT_NULL;
979 fra.me.REG[2] = NIT_NULL;
980 fra.me.REG[3] = NIT_NULL;
981 fra.me.REG[4] = NIT_NULL;
982 fra.me.REG[0] = p0;
983 fra.me.REG[1] = p1;
984 fra.me.REG[2] = p2;
985 fra.me.REG[3] = p3;
986 /* syntax/syntax_base.nit:159 */
987 fra.me.REG[4] = fra.me.REG[0];
988 /* syntax/syntax_base.nit:161 */
989 CALL_metamodel___abstractmetamodel___MMLocalProperty___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
990 /* syntax/syntax_base.nit:162 */
991 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[2])(fra.me.REG[2]);
992 CALL_syntax___syntax_base___MMModule___nodes__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4], fra.me.REG[3]);
993 stack_frame_head = fra.me.prev;
994 init_table[itpos3] = 1;
995 return;
996 }
997 static const char LOCATE_syntax___syntax_base___MMReadImplementationMethod___init[] = "syntax_base::MMReadImplementationMethod::init";
998 void syntax___syntax_base___MMReadImplementationMethod___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
999 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___syntax_base___MMReadImplementationMethod].i;
1000 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1001 val_t tmp;
1002 if (init_table[itpos4]) return;
1003 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1004 fra.me.file = LOCATE_syntax___syntax_base;
1005 fra.me.line = 169;
1006 fra.me.meth = LOCATE_syntax___syntax_base___MMReadImplementationMethod___init;
1007 fra.me.has_broke = 0;
1008 fra.me.REG_size = 4;
1009 fra.me.nitni_local_ref_head = NULL;
1010 fra.me.REG[0] = NIT_NULL;
1011 fra.me.REG[1] = NIT_NULL;
1012 fra.me.REG[2] = NIT_NULL;
1013 fra.me.REG[3] = NIT_NULL;
1014 fra.me.REG[0] = p0;
1015 fra.me.REG[1] = p1;
1016 fra.me.REG[2] = p2;
1017 fra.me.REG[3] = p3;
1018 /* syntax/syntax_base.nit:171 */
1019 CALL_syntax___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);
1020 stack_frame_head = fra.me.prev;
1021 init_table[itpos4] = 1;
1022 return;
1023 }
1024 static const char LOCATE_syntax___syntax_base___MMWriteImplementationMethod___init[] = "syntax_base::MMWriteImplementationMethod::init";
1025 void syntax___syntax_base___MMWriteImplementationMethod___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1026 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___syntax_base___MMWriteImplementationMethod].i;
1027 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1028 val_t tmp;
1029 if (init_table[itpos5]) return;
1030 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1031 fra.me.file = LOCATE_syntax___syntax_base;
1032 fra.me.line = 178;
1033 fra.me.meth = LOCATE_syntax___syntax_base___MMWriteImplementationMethod___init;
1034 fra.me.has_broke = 0;
1035 fra.me.REG_size = 4;
1036 fra.me.nitni_local_ref_head = NULL;
1037 fra.me.REG[0] = NIT_NULL;
1038 fra.me.REG[1] = NIT_NULL;
1039 fra.me.REG[2] = NIT_NULL;
1040 fra.me.REG[3] = NIT_NULL;
1041 fra.me.REG[0] = p0;
1042 fra.me.REG[1] = p1;
1043 fra.me.REG[2] = p2;
1044 fra.me.REG[3] = p3;
1045 /* syntax/syntax_base.nit:180 */
1046 CALL_syntax___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);
1047 stack_frame_head = fra.me.prev;
1048 init_table[itpos5] = 1;
1049 return;
1050 }
1051 static const char LOCATE_syntax___syntax_base___MMMethSrcMethod___is_init[] = "syntax_base::MMMethSrcMethod::(syntax_base::MMLocalProperty::is_init)";
1052 val_t syntax___syntax_base___MMMethSrcMethod___is_init(val_t p0){
1053 struct {struct stack_frame_t me;} fra;
1054 val_t REGB0;
1055 val_t tmp;
1056 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1057 fra.me.file = LOCATE_syntax___syntax_base;
1058 fra.me.line = 187;
1059 fra.me.meth = LOCATE_syntax___syntax_base___MMMethSrcMethod___is_init;
1060 fra.me.has_broke = 0;
1061 fra.me.REG_size = 1;
1062 fra.me.nitni_local_ref_head = NULL;
1063 fra.me.REG[0] = NIT_NULL;
1064 fra.me.REG[0] = p0;
1065 /* syntax/syntax_base.nit:187 */
1066 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMMethSrcMethod____is_init(fra.me.REG[0])!=NIT_NULL);
1067 if (UNTAG_Bool(REGB0)) {
1068 } else {
1069 nit_abort("Uninitialized attribute %s", "_is_init", LOCATE_syntax___syntax_base, 187);
1070 }
1071 REGB0 = ATTR_syntax___syntax_base___MMMethSrcMethod____is_init(fra.me.REG[0]);
1072 stack_frame_head = fra.me.prev;
1073 return REGB0;
1074 }
1075 static const char LOCATE_syntax___syntax_base___MMMethSrcMethod___is_intern[] = "syntax_base::MMMethSrcMethod::(abstractmetamodel::MMMethod::is_intern)";
1076 val_t syntax___syntax_base___MMMethSrcMethod___is_intern(val_t p0){
1077 struct {struct stack_frame_t me;} fra;
1078 val_t REGB0;
1079 val_t tmp;
1080 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1081 fra.me.file = LOCATE_syntax___syntax_base;
1082 fra.me.line = 188;
1083 fra.me.meth = LOCATE_syntax___syntax_base___MMMethSrcMethod___is_intern;
1084 fra.me.has_broke = 0;
1085 fra.me.REG_size = 1;
1086 fra.me.nitni_local_ref_head = NULL;
1087 fra.me.REG[0] = NIT_NULL;
1088 fra.me.REG[0] = p0;
1089 /* syntax/syntax_base.nit:188 */
1090 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMMethSrcMethod____is_intern(fra.me.REG[0])!=NIT_NULL);
1091 if (UNTAG_Bool(REGB0)) {
1092 } else {
1093 nit_abort("Uninitialized attribute %s", "_is_intern", LOCATE_syntax___syntax_base, 188);
1094 }
1095 REGB0 = ATTR_syntax___syntax_base___MMMethSrcMethod____is_intern(fra.me.REG[0]);
1096 stack_frame_head = fra.me.prev;
1097 return REGB0;
1098 }
1099 static const char LOCATE_syntax___syntax_base___MMMethSrcMethod___is_extern[] = "syntax_base::MMMethSrcMethod::(abstractmetamodel::MMMethod::is_extern)";
1100 val_t syntax___syntax_base___MMMethSrcMethod___is_extern(val_t p0){
1101 struct {struct stack_frame_t me;} fra;
1102 val_t REGB0;
1103 val_t tmp;
1104 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1105 fra.me.file = LOCATE_syntax___syntax_base;
1106 fra.me.line = 189;
1107 fra.me.meth = LOCATE_syntax___syntax_base___MMMethSrcMethod___is_extern;
1108 fra.me.has_broke = 0;
1109 fra.me.REG_size = 1;
1110 fra.me.nitni_local_ref_head = NULL;
1111 fra.me.REG[0] = NIT_NULL;
1112 fra.me.REG[0] = p0;
1113 /* syntax/syntax_base.nit:189 */
1114 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMMethSrcMethod____is_extern(fra.me.REG[0])!=NIT_NULL);
1115 if (UNTAG_Bool(REGB0)) {
1116 } else {
1117 nit_abort("Uninitialized attribute %s", "_is_extern", LOCATE_syntax___syntax_base, 189);
1118 }
1119 REGB0 = ATTR_syntax___syntax_base___MMMethSrcMethod____is_extern(fra.me.REG[0]);
1120 stack_frame_head = fra.me.prev;
1121 return REGB0;
1122 }
1123 static const char LOCATE_syntax___syntax_base___MMMethSrcMethod___is_abstract[] = "syntax_base::MMMethSrcMethod::(abstractmetamodel::MMMethod::is_abstract)";
1124 val_t syntax___syntax_base___MMMethSrcMethod___is_abstract(val_t p0){
1125 struct {struct stack_frame_t me;} fra;
1126 val_t REGB0;
1127 val_t tmp;
1128 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1129 fra.me.file = LOCATE_syntax___syntax_base;
1130 fra.me.line = 190;
1131 fra.me.meth = LOCATE_syntax___syntax_base___MMMethSrcMethod___is_abstract;
1132 fra.me.has_broke = 0;
1133 fra.me.REG_size = 1;
1134 fra.me.nitni_local_ref_head = NULL;
1135 fra.me.REG[0] = NIT_NULL;
1136 fra.me.REG[0] = p0;
1137 /* syntax/syntax_base.nit:190 */
1138 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMMethSrcMethod____is_abstract(fra.me.REG[0])!=NIT_NULL);
1139 if (UNTAG_Bool(REGB0)) {
1140 } else {
1141 nit_abort("Uninitialized attribute %s", "_is_abstract", LOCATE_syntax___syntax_base, 190);
1142 }
1143 REGB0 = ATTR_syntax___syntax_base___MMMethSrcMethod____is_abstract(fra.me.REG[0]);
1144 stack_frame_head = fra.me.prev;
1145 return REGB0;
1146 }
1147 static const char LOCATE_syntax___syntax_base___MMMethSrcMethod___extern_name[] = "syntax_base::MMMethSrcMethod::(abstractmetamodel::MMMethod::extern_name)";
1148 val_t syntax___syntax_base___MMMethSrcMethod___extern_name(val_t p0){
1149 struct {struct stack_frame_t me;} fra;
1150 val_t tmp;
1151 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1152 fra.me.file = LOCATE_syntax___syntax_base;
1153 fra.me.line = 191;
1154 fra.me.meth = LOCATE_syntax___syntax_base___MMMethSrcMethod___extern_name;
1155 fra.me.has_broke = 0;
1156 fra.me.REG_size = 1;
1157 fra.me.nitni_local_ref_head = NULL;
1158 fra.me.REG[0] = NIT_NULL;
1159 fra.me.REG[0] = p0;
1160 /* syntax/syntax_base.nit:191 */
1161 fra.me.REG[0] = ATTR_syntax___syntax_base___MMMethSrcMethod____extern_name(fra.me.REG[0]);
1162 stack_frame_head = fra.me.prev;
1163 return fra.me.REG[0];
1164 }
1165 static const char LOCATE_syntax___syntax_base___MMMethSrcMethod___extern_name__eq[] = "syntax_base::MMMethSrcMethod::extern_name=";
1166 void syntax___syntax_base___MMMethSrcMethod___extern_name__eq(val_t p0, val_t p1){
1167 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1168 val_t tmp;
1169 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1170 fra.me.file = LOCATE_syntax___syntax_base;
1171 fra.me.line = 191;
1172 fra.me.meth = LOCATE_syntax___syntax_base___MMMethSrcMethod___extern_name__eq;
1173 fra.me.has_broke = 0;
1174 fra.me.REG_size = 2;
1175 fra.me.nitni_local_ref_head = NULL;
1176 fra.me.REG[0] = NIT_NULL;
1177 fra.me.REG[1] = NIT_NULL;
1178 fra.me.REG[0] = p0;
1179 fra.me.REG[1] = p1;
1180 /* syntax/syntax_base.nit:191 */
1181 ATTR_syntax___syntax_base___MMMethSrcMethod____extern_name(fra.me.REG[0]) = fra.me.REG[1];
1182 stack_frame_head = fra.me.prev;
1183 return;
1184 }
1185 static const char LOCATE_syntax___syntax_base___MMMethSrcMethod___explicit_casts[] = "syntax_base::MMMethSrcMethod::(static_type::MMMethod::explicit_casts)";
1186 val_t syntax___syntax_base___MMMethSrcMethod___explicit_casts(val_t p0){
1187 struct {struct stack_frame_t me;} fra;
1188 val_t REGB0;
1189 val_t tmp;
1190 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1191 fra.me.file = LOCATE_syntax___syntax_base;
1192 fra.me.line = 192;
1193 fra.me.meth = LOCATE_syntax___syntax_base___MMMethSrcMethod___explicit_casts;
1194 fra.me.has_broke = 0;
1195 fra.me.REG_size = 1;
1196 fra.me.nitni_local_ref_head = NULL;
1197 fra.me.REG[0] = NIT_NULL;
1198 fra.me.REG[0] = p0;
1199 /* syntax/syntax_base.nit:192 */
1200 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMMethSrcMethod____explicit_casts(fra.me.REG[0])!=NIT_NULL);
1201 if (UNTAG_Bool(REGB0)) {
1202 } else {
1203 nit_abort("Uninitialized attribute %s", "_explicit_casts", LOCATE_syntax___syntax_base, 192);
1204 }
1205 fra.me.REG[0] = ATTR_syntax___syntax_base___MMMethSrcMethod____explicit_casts(fra.me.REG[0]);
1206 stack_frame_head = fra.me.prev;
1207 return fra.me.REG[0];
1208 }
1209 static const char LOCATE_syntax___syntax_base___MMMethSrcMethod___explicit_imports[] = "syntax_base::MMMethSrcMethod::(abstractmetamodel::MMMethod::explicit_imports)";
1210 val_t syntax___syntax_base___MMMethSrcMethod___explicit_imports(val_t p0){
1211 struct {struct stack_frame_t me;} fra;
1212 val_t REGB0;
1213 val_t tmp;
1214 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1215 fra.me.file = LOCATE_syntax___syntax_base;
1216 fra.me.line = 193;
1217 fra.me.meth = LOCATE_syntax___syntax_base___MMMethSrcMethod___explicit_imports;
1218 fra.me.has_broke = 0;
1219 fra.me.REG_size = 1;
1220 fra.me.nitni_local_ref_head = NULL;
1221 fra.me.REG[0] = NIT_NULL;
1222 fra.me.REG[0] = p0;
1223 /* syntax/syntax_base.nit:193 */
1224 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMMethSrcMethod____explicit_imports(fra.me.REG[0])!=NIT_NULL);
1225 if (UNTAG_Bool(REGB0)) {
1226 } else {
1227 nit_abort("Uninitialized attribute %s", "_explicit_imports", LOCATE_syntax___syntax_base, 193);
1228 }
1229 fra.me.REG[0] = ATTR_syntax___syntax_base___MMMethSrcMethod____explicit_imports(fra.me.REG[0]);
1230 stack_frame_head = fra.me.prev;
1231 return fra.me.REG[0];
1232 }
1233 static const char LOCATE_syntax___syntax_base___MMMethSrcMethod___node[] = "syntax_base::MMMethSrcMethod::(syntax_base::MMLocalProperty::node)";
1234 val_t syntax___syntax_base___MMMethSrcMethod___node(val_t p0){
1235 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1236 val_t REGB0;
1237 val_t tmp;
1238 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1239 fra.me.file = LOCATE_syntax___syntax_base;
1240 fra.me.line = 194;
1241 fra.me.meth = LOCATE_syntax___syntax_base___MMMethSrcMethod___node;
1242 fra.me.has_broke = 0;
1243 fra.me.REG_size = 3;
1244 fra.me.nitni_local_ref_head = NULL;
1245 fra.me.REG[0] = NIT_NULL;
1246 fra.me.REG[1] = NIT_NULL;
1247 fra.me.REG[2] = NIT_NULL;
1248 fra.me.REG[0] = p0;
1249 /* syntax/syntax_base.nit:194 */
1250 fra.me.REG[1] = fra.me.REG[0];
1251 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
1252 fra.me.REG[1] = CALL_syntax___syntax_base___MMModule___nodes(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1253 REGB0 = TAG_Bool((fra.me.REG[1]==NIT_NULL) || VAL_ISA(fra.me.REG[1], COLOR_parser___parser_nodes___AMethPropdef, ID_parser___parser_nodes___AMethPropdef)) /*cast nullable AMethPropdef*/;
1254 if (UNTAG_Bool(REGB0)) {
1255 } else {
1256 nit_abort("Cast failed", NULL, LOCATE_syntax___syntax_base, 194);
1257 }
1258 goto label1;
1259 label1: while(0);
1260 stack_frame_head = fra.me.prev;
1261 return fra.me.REG[1];
1262 }
1263 static const char LOCATE_syntax___syntax_base___MMMethSrcMethod___init[] = "syntax_base::MMMethSrcMethod::init";
1264 void syntax___syntax_base___MMMethSrcMethod___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1265 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___syntax_base___MMMethSrcMethod].i;
1266 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1267 val_t REGB0;
1268 val_t tmp;
1269 if (init_table[itpos6]) return;
1270 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1271 fra.me.file = LOCATE_syntax___syntax_base;
1272 fra.me.line = 195;
1273 fra.me.meth = LOCATE_syntax___syntax_base___MMMethSrcMethod___init;
1274 fra.me.has_broke = 0;
1275 fra.me.REG_size = 5;
1276 fra.me.nitni_local_ref_head = NULL;
1277 fra.me.REG[0] = NIT_NULL;
1278 fra.me.REG[1] = NIT_NULL;
1279 fra.me.REG[2] = NIT_NULL;
1280 fra.me.REG[3] = NIT_NULL;
1281 fra.me.REG[4] = NIT_NULL;
1282 fra.me.REG[0] = p0;
1283 fra.me.REG[1] = p1;
1284 fra.me.REG[2] = p2;
1285 fra.me.REG[3] = p3;
1286 /* syntax/syntax_base.nit:195 */
1287 fra.me.REG[4] = fra.me.REG[0];
1288 /* syntax/syntax_base.nit:197 */
1289 CALL_metamodel___abstractmetamodel___MMLocalProperty___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1290 /* syntax/syntax_base.nit:198 */
1291 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[2])(fra.me.REG[2]);
1292 CALL_syntax___syntax_base___MMModule___nodes__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4], fra.me.REG[3]);
1293 /* syntax/syntax_base.nit:199 */
1294 fra.me.REG[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[4])(fra.me.REG[4]);
1295 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AInitPropdef, ID_parser___parser_nodes___AInitPropdef)) /*cast AInitPropdef*/;
1296 ATTR_syntax___syntax_base___MMMethSrcMethod____is_init(fra.me.REG[4]) = REGB0;
1297 /* syntax/syntax_base.nit:200 */
1298 fra.me.REG[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[4])(fra.me.REG[4]);
1299 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AInternMethPropdef, ID_parser___parser_nodes___AInternMethPropdef)) /*cast AInternMethPropdef*/;
1300 ATTR_syntax___syntax_base___MMMethSrcMethod____is_intern(fra.me.REG[4]) = REGB0;
1301 /* syntax/syntax_base.nit:201 */
1302 fra.me.REG[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[4])(fra.me.REG[4]);
1303 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExternPropdef, ID_parser___parser_nodes___AExternPropdef)) /*cast AExternPropdef*/;
1304 ATTR_syntax___syntax_base___MMMethSrcMethod____is_extern(fra.me.REG[4]) = REGB0;
1305 /* syntax/syntax_base.nit:202 */
1306 fra.me.REG[3] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[4])(fra.me.REG[4]);
1307 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADeferredMethPropdef, ID_parser___parser_nodes___ADeferredMethPropdef)) /*cast ADeferredMethPropdef*/;
1308 ATTR_syntax___syntax_base___MMMethSrcMethod____is_abstract(fra.me.REG[4]) = REGB0;
1309 /* syntax/syntax_base.nit:203 */
1310 ATTR_syntax___syntax_base___MMMethSrcMethod____extern_name(fra.me.REG[4]) = NIT_NULL;
1311 /* syntax/syntax_base.nit:205 */
1312 REGB0 = CALL_metamodel___abstractmetamodel___MMMethod___is_extern(fra.me.REG[4])(fra.me.REG[4]);
1313 if (UNTAG_Bool(REGB0)) {
1314 /* syntax/syntax_base.nit:206 */
1315 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra.me.REG[4])(fra.me.REG[4]);
1316 REGB0 = TAG_Bool(1);
1317 CALL_metamodel___abstractmetamodel___MMModule___is_extern_hybrid__eq(fra.me.REG[4])(fra.me.REG[4], REGB0);
1318 }
1319 stack_frame_head = fra.me.prev;
1320 init_table[itpos6] = 1;
1321 return;
1322 }
1323 static const char LOCATE_syntax___syntax_base___MMSrcTypeProperty___init[] = "syntax_base::MMSrcTypeProperty::init";
1324 void syntax___syntax_base___MMSrcTypeProperty___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1325 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___syntax_base___MMSrcTypeProperty].i;
1326 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1327 val_t tmp;
1328 if (init_table[itpos7]) return;
1329 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1330 fra.me.file = LOCATE_syntax___syntax_base;
1331 fra.me.line = 215;
1332 fra.me.meth = LOCATE_syntax___syntax_base___MMSrcTypeProperty___init;
1333 fra.me.has_broke = 0;
1334 fra.me.REG_size = 4;
1335 fra.me.nitni_local_ref_head = NULL;
1336 fra.me.REG[0] = NIT_NULL;
1337 fra.me.REG[1] = NIT_NULL;
1338 fra.me.REG[2] = NIT_NULL;
1339 fra.me.REG[3] = NIT_NULL;
1340 fra.me.REG[0] = p0;
1341 fra.me.REG[1] = p1;
1342 fra.me.REG[2] = p2;
1343 fra.me.REG[3] = p3;
1344 /* syntax/syntax_base.nit:217 */
1345 CALL_metamodel___abstractmetamodel___MMLocalProperty___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1346 stack_frame_head = fra.me.prev;
1347 init_table[itpos7] = 1;
1348 return;
1349 }
1350 static const char LOCATE_syntax___syntax_base___MMImplicitInit___super_init[] = "syntax_base::MMImplicitInit::super_init";
1351 val_t syntax___syntax_base___MMImplicitInit___super_init(val_t p0){
1352 struct {struct stack_frame_t me;} fra;
1353 val_t tmp;
1354 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1355 fra.me.file = LOCATE_syntax___syntax_base;
1356 fra.me.line = 224;
1357 fra.me.meth = LOCATE_syntax___syntax_base___MMImplicitInit___super_init;
1358 fra.me.has_broke = 0;
1359 fra.me.REG_size = 0;
1360 fra.me.nitni_local_ref_head = NULL;
1361 /* syntax/syntax_base.nit:224 */
1362 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 224);
1363 stack_frame_head = fra.me.prev;
1364 return NIT_NULL;
1365 }
1366 static const char LOCATE_syntax___syntax_base___MMImplicitInit___is_init[] = "syntax_base::MMImplicitInit::(syntax_base::MMLocalProperty::is_init)";
1367 val_t syntax___syntax_base___MMImplicitInit___is_init(val_t p0){
1368 struct {struct stack_frame_t me;} fra;
1369 val_t REGB0;
1370 val_t tmp;
1371 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1372 fra.me.file = LOCATE_syntax___syntax_base;
1373 fra.me.line = 225;
1374 fra.me.meth = LOCATE_syntax___syntax_base___MMImplicitInit___is_init;
1375 fra.me.has_broke = 0;
1376 fra.me.REG_size = 1;
1377 fra.me.nitni_local_ref_head = NULL;
1378 fra.me.REG[0] = NIT_NULL;
1379 fra.me.REG[0] = p0;
1380 /* syntax/syntax_base.nit:225 */
1381 REGB0 = TAG_Bool(1);
1382 goto label1;
1383 label1: while(0);
1384 stack_frame_head = fra.me.prev;
1385 return REGB0;
1386 }
1387 static const char LOCATE_syntax___syntax_base___MMImplicitInit___unassigned_attributes[] = "syntax_base::MMImplicitInit::unassigned_attributes";
1388 val_t syntax___syntax_base___MMImplicitInit___unassigned_attributes(val_t p0){
1389 struct {struct stack_frame_t me;} fra;
1390 val_t REGB0;
1391 val_t tmp;
1392 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1393 fra.me.file = LOCATE_syntax___syntax_base;
1394 fra.me.line = 226;
1395 fra.me.meth = LOCATE_syntax___syntax_base___MMImplicitInit___unassigned_attributes;
1396 fra.me.has_broke = 0;
1397 fra.me.REG_size = 1;
1398 fra.me.nitni_local_ref_head = NULL;
1399 fra.me.REG[0] = NIT_NULL;
1400 fra.me.REG[0] = p0;
1401 /* syntax/syntax_base.nit:226 */
1402 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMImplicitInit____unassigned_attributes(fra.me.REG[0])!=NIT_NULL);
1403 if (UNTAG_Bool(REGB0)) {
1404 } else {
1405 nit_abort("Uninitialized attribute %s", "_unassigned_attributes", LOCATE_syntax___syntax_base, 226);
1406 }
1407 fra.me.REG[0] = ATTR_syntax___syntax_base___MMImplicitInit____unassigned_attributes(fra.me.REG[0]);
1408 stack_frame_head = fra.me.prev;
1409 return fra.me.REG[0];
1410 }
1411 static const char LOCATE_syntax___syntax_base___MMImplicitInit___super_inits[] = "syntax_base::MMImplicitInit::super_inits";
1412 val_t syntax___syntax_base___MMImplicitInit___super_inits(val_t p0){
1413 struct {struct stack_frame_t me;} fra;
1414 val_t REGB0;
1415 val_t tmp;
1416 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1417 fra.me.file = LOCATE_syntax___syntax_base;
1418 fra.me.line = 227;
1419 fra.me.meth = LOCATE_syntax___syntax_base___MMImplicitInit___super_inits;
1420 fra.me.has_broke = 0;
1421 fra.me.REG_size = 1;
1422 fra.me.nitni_local_ref_head = NULL;
1423 fra.me.REG[0] = NIT_NULL;
1424 fra.me.REG[0] = p0;
1425 /* syntax/syntax_base.nit:227 */
1426 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___MMImplicitInit____super_inits(fra.me.REG[0])!=NIT_NULL);
1427 if (UNTAG_Bool(REGB0)) {
1428 } else {
1429 nit_abort("Uninitialized attribute %s", "_super_inits", LOCATE_syntax___syntax_base, 227);
1430 }
1431 fra.me.REG[0] = ATTR_syntax___syntax_base___MMImplicitInit____super_inits(fra.me.REG[0]);
1432 stack_frame_head = fra.me.prev;
1433 return fra.me.REG[0];
1434 }
1435 static const char LOCATE_syntax___syntax_base___MMImplicitInit___init[] = "syntax_base::MMImplicitInit::init";
1436 void syntax___syntax_base___MMImplicitInit___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1437 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___syntax_base___MMImplicitInit].i;
1438 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1439 val_t REGB0;
1440 val_t tmp;
1441 static val_t once_value_1; /* Once value */
1442 static val_t once_value_2; /* Once value */
1443 if (init_table[itpos8]) return;
1444 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1445 fra.me.file = LOCATE_syntax___syntax_base;
1446 fra.me.line = 228;
1447 fra.me.meth = LOCATE_syntax___syntax_base___MMImplicitInit___init;
1448 fra.me.has_broke = 0;
1449 fra.me.REG_size = 6;
1450 fra.me.nitni_local_ref_head = NULL;
1451 fra.me.REG[0] = NIT_NULL;
1452 fra.me.REG[1] = NIT_NULL;
1453 fra.me.REG[2] = NIT_NULL;
1454 fra.me.REG[3] = NIT_NULL;
1455 fra.me.REG[4] = NIT_NULL;
1456 fra.me.REG[5] = NIT_NULL;
1457 fra.me.REG[0] = p0;
1458 fra.me.REG[1] = p1;
1459 fra.me.REG[2] = p2;
1460 fra.me.REG[3] = p3;
1461 /* syntax/syntax_base.nit:228 */
1462 fra.me.REG[4] = fra.me.REG[0];
1463 /* syntax/syntax_base.nit:230 */
1464 if (!once_value_1) {
1465 if (!once_value_2) {
1466 fra.me.REG[5] = BOX_NativeString("init");
1467 REGB0 = TAG_Int(4);
1468 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
1469 once_value_2 = fra.me.REG[5];
1470 register_static_object(&once_value_2);
1471 } else fra.me.REG[5] = once_value_2;
1472 fra.me.REG[5] = fra.me.REG[5];
1473 fra.me.REG[5] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
1474 once_value_1 = fra.me.REG[5];
1475 register_static_object(&once_value_1);
1476 } else fra.me.REG[5] = once_value_1;
1477 fra.me.REG[5] = fra.me.REG[5];
1478 CALL_syntax___syntax_base___MMMethSrcMethod___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[1], NIT_NULL, init_table);
1479 /* syntax/syntax_base.nit:231 */
1480 ATTR_syntax___syntax_base___MMImplicitInit____unassigned_attributes(fra.me.REG[4]) = fra.me.REG[2];
1481 /* syntax/syntax_base.nit:232 */
1482 ATTR_syntax___syntax_base___MMImplicitInit____super_inits(fra.me.REG[4]) = fra.me.REG[3];
1483 stack_frame_head = fra.me.prev;
1484 init_table[itpos8] = 1;
1485 return;
1486 }
1487 static const char LOCATE_syntax___syntax_base___Variable___name[] = "syntax_base::Variable::name";
1488 val_t syntax___syntax_base___Variable___name(val_t p0){
1489 struct {struct stack_frame_t me;} fra;
1490 val_t REGB0;
1491 val_t tmp;
1492 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1493 fra.me.file = LOCATE_syntax___syntax_base;
1494 fra.me.line = 238;
1495 fra.me.meth = LOCATE_syntax___syntax_base___Variable___name;
1496 fra.me.has_broke = 0;
1497 fra.me.REG_size = 1;
1498 fra.me.nitni_local_ref_head = NULL;
1499 fra.me.REG[0] = NIT_NULL;
1500 fra.me.REG[0] = p0;
1501 /* syntax/syntax_base.nit:238 */
1502 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___Variable____name(fra.me.REG[0])!=NIT_NULL);
1503 if (UNTAG_Bool(REGB0)) {
1504 } else {
1505 nit_abort("Uninitialized attribute %s", "_name", LOCATE_syntax___syntax_base, 238);
1506 }
1507 fra.me.REG[0] = ATTR_syntax___syntax_base___Variable____name(fra.me.REG[0]);
1508 stack_frame_head = fra.me.prev;
1509 return fra.me.REG[0];
1510 }
1511 static const char LOCATE_syntax___syntax_base___Variable___decl[] = "syntax_base::Variable::decl";
1512 val_t syntax___syntax_base___Variable___decl(val_t p0){
1513 struct {struct stack_frame_t me;} fra;
1514 val_t tmp;
1515 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1516 fra.me.file = LOCATE_syntax___syntax_base;
1517 fra.me.line = 241;
1518 fra.me.meth = LOCATE_syntax___syntax_base___Variable___decl;
1519 fra.me.has_broke = 0;
1520 fra.me.REG_size = 1;
1521 fra.me.nitni_local_ref_head = NULL;
1522 fra.me.REG[0] = NIT_NULL;
1523 fra.me.REG[0] = p0;
1524 /* syntax/syntax_base.nit:241 */
1525 fra.me.REG[0] = ATTR_syntax___syntax_base___Variable____decl(fra.me.REG[0]);
1526 stack_frame_head = fra.me.prev;
1527 return fra.me.REG[0];
1528 }
1529 static const char LOCATE_syntax___syntax_base___Variable___stype[] = "syntax_base::Variable::stype";
1530 val_t syntax___syntax_base___Variable___stype(val_t p0){
1531 struct {struct stack_frame_t me;} fra;
1532 val_t tmp;
1533 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1534 fra.me.file = LOCATE_syntax___syntax_base;
1535 fra.me.line = 244;
1536 fra.me.meth = LOCATE_syntax___syntax_base___Variable___stype;
1537 fra.me.has_broke = 0;
1538 fra.me.REG_size = 1;
1539 fra.me.nitni_local_ref_head = NULL;
1540 fra.me.REG[0] = NIT_NULL;
1541 fra.me.REG[0] = p0;
1542 /* syntax/syntax_base.nit:244 */
1543 fra.me.REG[0] = ATTR_syntax___syntax_base___Variable____stype(fra.me.REG[0]);
1544 stack_frame_head = fra.me.prev;
1545 return fra.me.REG[0];
1546 }
1547 static const char LOCATE_syntax___syntax_base___Variable___stype__eq[] = "syntax_base::Variable::stype=";
1548 void syntax___syntax_base___Variable___stype__eq(val_t p0, val_t p1){
1549 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1550 val_t tmp;
1551 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1552 fra.me.file = LOCATE_syntax___syntax_base;
1553 fra.me.line = 244;
1554 fra.me.meth = LOCATE_syntax___syntax_base___Variable___stype__eq;
1555 fra.me.has_broke = 0;
1556 fra.me.REG_size = 2;
1557 fra.me.nitni_local_ref_head = NULL;
1558 fra.me.REG[0] = NIT_NULL;
1559 fra.me.REG[1] = NIT_NULL;
1560 fra.me.REG[0] = p0;
1561 fra.me.REG[1] = p1;
1562 /* syntax/syntax_base.nit:244 */
1563 ATTR_syntax___syntax_base___Variable____stype(fra.me.REG[0]) = fra.me.REG[1];
1564 stack_frame_head = fra.me.prev;
1565 return;
1566 }
1567 static const char LOCATE_syntax___syntax_base___Variable___to_s[] = "syntax_base::Variable::(string::Object::to_s)";
1568 val_t syntax___syntax_base___Variable___to_s(val_t p0){
1569 struct {struct stack_frame_t me;} fra;
1570 val_t REGB0;
1571 val_t tmp;
1572 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1573 fra.me.file = LOCATE_syntax___syntax_base;
1574 fra.me.line = 247;
1575 fra.me.meth = LOCATE_syntax___syntax_base___Variable___to_s;
1576 fra.me.has_broke = 0;
1577 fra.me.REG_size = 1;
1578 fra.me.nitni_local_ref_head = NULL;
1579 fra.me.REG[0] = NIT_NULL;
1580 fra.me.REG[0] = p0;
1581 /* syntax/syntax_base.nit:247 */
1582 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___Variable____name(fra.me.REG[0])!=NIT_NULL);
1583 if (UNTAG_Bool(REGB0)) {
1584 } else {
1585 nit_abort("Uninitialized attribute %s", "_name", LOCATE_syntax___syntax_base, 247);
1586 }
1587 fra.me.REG[0] = ATTR_syntax___syntax_base___Variable____name(fra.me.REG[0]);
1588 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
1589 goto label1;
1590 label1: while(0);
1591 stack_frame_head = fra.me.prev;
1592 return fra.me.REG[0];
1593 }
1594 static const char LOCATE_syntax___syntax_base___Variable___kind[] = "syntax_base::Variable::kind";
1595 val_t syntax___syntax_base___Variable___kind(val_t p0){
1596 struct {struct stack_frame_t me;} fra;
1597 val_t tmp;
1598 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1599 fra.me.file = LOCATE_syntax___syntax_base;
1600 fra.me.line = 249;
1601 fra.me.meth = LOCATE_syntax___syntax_base___Variable___kind;
1602 fra.me.has_broke = 0;
1603 fra.me.REG_size = 0;
1604 fra.me.nitni_local_ref_head = NULL;
1605 /* syntax/syntax_base.nit:249 */
1606 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 249);
1607 stack_frame_head = fra.me.prev;
1608 return NIT_NULL;
1609 }
1610 static const char LOCATE_syntax___syntax_base___Variable___init[] = "syntax_base::Variable::init";
1611 void syntax___syntax_base___Variable___init(val_t p0, val_t p1, val_t p2, int* init_table){
1612 int itpos9 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___syntax_base___Variable].i;
1613 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1614 val_t tmp;
1615 if (init_table[itpos9]) return;
1616 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1617 fra.me.file = LOCATE_syntax___syntax_base;
1618 fra.me.line = 251;
1619 fra.me.meth = LOCATE_syntax___syntax_base___Variable___init;
1620 fra.me.has_broke = 0;
1621 fra.me.REG_size = 3;
1622 fra.me.nitni_local_ref_head = NULL;
1623 fra.me.REG[0] = NIT_NULL;
1624 fra.me.REG[1] = NIT_NULL;
1625 fra.me.REG[2] = NIT_NULL;
1626 fra.me.REG[0] = p0;
1627 fra.me.REG[1] = p1;
1628 fra.me.REG[2] = p2;
1629 /* syntax/syntax_base.nit:253 */
1630 ATTR_syntax___syntax_base___Variable____name(fra.me.REG[0]) = fra.me.REG[1];
1631 /* syntax/syntax_base.nit:254 */
1632 ATTR_syntax___syntax_base___Variable____decl(fra.me.REG[0]) = fra.me.REG[2];
1633 stack_frame_head = fra.me.prev;
1634 init_table[itpos9] = 1;
1635 return;
1636 }
1637 static const char LOCATE_syntax___syntax_base___VarVariable___kind[] = "syntax_base::VarVariable::(syntax_base::Variable::kind)";
1638 val_t syntax___syntax_base___VarVariable___kind(val_t p0){
1639 struct {struct stack_frame_t me;} fra;
1640 val_t REGB0;
1641 val_t tmp;
1642 static val_t once_value_1; /* Once value */
1643 static val_t once_value_2; /* Once value */
1644 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1645 fra.me.file = LOCATE_syntax___syntax_base;
1646 fra.me.line = 261;
1647 fra.me.meth = LOCATE_syntax___syntax_base___VarVariable___kind;
1648 fra.me.has_broke = 0;
1649 fra.me.REG_size = 1;
1650 fra.me.nitni_local_ref_head = NULL;
1651 fra.me.REG[0] = NIT_NULL;
1652 fra.me.REG[0] = p0;
1653 /* syntax/syntax_base.nit:261 */
1654 if (!once_value_1) {
1655 if (!once_value_2) {
1656 fra.me.REG[0] = BOX_NativeString("variable");
1657 REGB0 = TAG_Int(8);
1658 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
1659 once_value_2 = fra.me.REG[0];
1660 register_static_object(&once_value_2);
1661 } else fra.me.REG[0] = once_value_2;
1662 fra.me.REG[0] = fra.me.REG[0];
1663 once_value_1 = fra.me.REG[0];
1664 register_static_object(&once_value_1);
1665 } else fra.me.REG[0] = once_value_1;
1666 fra.me.REG[0] = fra.me.REG[0];
1667 goto label3;
1668 label3: while(0);
1669 stack_frame_head = fra.me.prev;
1670 return fra.me.REG[0];
1671 }
1672 static const char LOCATE_syntax___syntax_base___VarVariable___init[] = "syntax_base::VarVariable::init";
1673 void syntax___syntax_base___VarVariable___init(val_t p0, val_t p1, val_t p2, int* init_table){
1674 int itpos10 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___syntax_base___VarVariable].i;
1675 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1676 val_t tmp;
1677 if (init_table[itpos10]) return;
1678 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1679 fra.me.file = LOCATE_syntax___syntax_base;
1680 fra.me.line = 262;
1681 fra.me.meth = LOCATE_syntax___syntax_base___VarVariable___init;
1682 fra.me.has_broke = 0;
1683 fra.me.REG_size = 3;
1684 fra.me.nitni_local_ref_head = NULL;
1685 fra.me.REG[0] = NIT_NULL;
1686 fra.me.REG[1] = NIT_NULL;
1687 fra.me.REG[2] = NIT_NULL;
1688 fra.me.REG[0] = p0;
1689 fra.me.REG[1] = p1;
1690 fra.me.REG[2] = p2;
1691 /* syntax/syntax_base.nit:262 */
1692 CALL_syntax___syntax_base___Variable___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1693 stack_frame_head = fra.me.prev;
1694 init_table[itpos10] = 1;
1695 return;
1696 }
1697 static const char LOCATE_syntax___syntax_base___ParamVariable___kind[] = "syntax_base::ParamVariable::(syntax_base::Variable::kind)";
1698 val_t syntax___syntax_base___ParamVariable___kind(val_t p0){
1699 struct {struct stack_frame_t me;} fra;
1700 val_t REGB0;
1701 val_t tmp;
1702 static val_t once_value_1; /* Once value */
1703 static val_t once_value_2; /* Once value */
1704 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1705 fra.me.file = LOCATE_syntax___syntax_base;
1706 fra.me.line = 268;
1707 fra.me.meth = LOCATE_syntax___syntax_base___ParamVariable___kind;
1708 fra.me.has_broke = 0;
1709 fra.me.REG_size = 1;
1710 fra.me.nitni_local_ref_head = NULL;
1711 fra.me.REG[0] = NIT_NULL;
1712 fra.me.REG[0] = p0;
1713 /* syntax/syntax_base.nit:268 */
1714 if (!once_value_1) {
1715 if (!once_value_2) {
1716 fra.me.REG[0] = BOX_NativeString("parameter");
1717 REGB0 = TAG_Int(9);
1718 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
1719 once_value_2 = fra.me.REG[0];
1720 register_static_object(&once_value_2);
1721 } else fra.me.REG[0] = once_value_2;
1722 fra.me.REG[0] = fra.me.REG[0];
1723 once_value_1 = fra.me.REG[0];
1724 register_static_object(&once_value_1);
1725 } else fra.me.REG[0] = once_value_1;
1726 fra.me.REG[0] = fra.me.REG[0];
1727 goto label3;
1728 label3: while(0);
1729 stack_frame_head = fra.me.prev;
1730 return fra.me.REG[0];
1731 }
1732 static const char LOCATE_syntax___syntax_base___ParamVariable___init[] = "syntax_base::ParamVariable::init";
1733 void syntax___syntax_base___ParamVariable___init(val_t p0, val_t p1, val_t p2, int* init_table){
1734 int itpos11 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___syntax_base___ParamVariable].i;
1735 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1736 val_t tmp;
1737 if (init_table[itpos11]) return;
1738 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1739 fra.me.file = LOCATE_syntax___syntax_base;
1740 fra.me.line = 269;
1741 fra.me.meth = LOCATE_syntax___syntax_base___ParamVariable___init;
1742 fra.me.has_broke = 0;
1743 fra.me.REG_size = 3;
1744 fra.me.nitni_local_ref_head = NULL;
1745 fra.me.REG[0] = NIT_NULL;
1746 fra.me.REG[1] = NIT_NULL;
1747 fra.me.REG[2] = NIT_NULL;
1748 fra.me.REG[0] = p0;
1749 fra.me.REG[1] = p1;
1750 fra.me.REG[2] = p2;
1751 /* syntax/syntax_base.nit:269 */
1752 CALL_syntax___syntax_base___Variable___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1753 stack_frame_head = fra.me.prev;
1754 init_table[itpos11] = 1;
1755 return;
1756 }
1757 static const char LOCATE_syntax___syntax_base___AutoVariable___kind[] = "syntax_base::AutoVariable::(syntax_base::Variable::kind)";
1758 val_t syntax___syntax_base___AutoVariable___kind(val_t p0){
1759 struct {struct stack_frame_t me;} fra;
1760 val_t REGB0;
1761 val_t tmp;
1762 static val_t once_value_1; /* Once value */
1763 static val_t once_value_2; /* Once value */
1764 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1765 fra.me.file = LOCATE_syntax___syntax_base;
1766 fra.me.line = 275;
1767 fra.me.meth = LOCATE_syntax___syntax_base___AutoVariable___kind;
1768 fra.me.has_broke = 0;
1769 fra.me.REG_size = 1;
1770 fra.me.nitni_local_ref_head = NULL;
1771 fra.me.REG[0] = NIT_NULL;
1772 fra.me.REG[0] = p0;
1773 /* syntax/syntax_base.nit:275 */
1774 if (!once_value_1) {
1775 if (!once_value_2) {
1776 fra.me.REG[0] = BOX_NativeString("automatic variable");
1777 REGB0 = TAG_Int(18);
1778 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
1779 once_value_2 = fra.me.REG[0];
1780 register_static_object(&once_value_2);
1781 } else fra.me.REG[0] = once_value_2;
1782 fra.me.REG[0] = fra.me.REG[0];
1783 once_value_1 = fra.me.REG[0];
1784 register_static_object(&once_value_1);
1785 } else fra.me.REG[0] = once_value_1;
1786 fra.me.REG[0] = fra.me.REG[0];
1787 goto label3;
1788 label3: while(0);
1789 stack_frame_head = fra.me.prev;
1790 return fra.me.REG[0];
1791 }
1792 static const char LOCATE_syntax___syntax_base___AutoVariable___init[] = "syntax_base::AutoVariable::init";
1793 void syntax___syntax_base___AutoVariable___init(val_t p0, val_t p1, val_t p2, int* init_table){
1794 int itpos12 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___syntax_base___AutoVariable].i;
1795 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1796 val_t tmp;
1797 if (init_table[itpos12]) return;
1798 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1799 fra.me.file = LOCATE_syntax___syntax_base;
1800 fra.me.line = 276;
1801 fra.me.meth = LOCATE_syntax___syntax_base___AutoVariable___init;
1802 fra.me.has_broke = 0;
1803 fra.me.REG_size = 3;
1804 fra.me.nitni_local_ref_head = NULL;
1805 fra.me.REG[0] = NIT_NULL;
1806 fra.me.REG[1] = NIT_NULL;
1807 fra.me.REG[2] = NIT_NULL;
1808 fra.me.REG[0] = p0;
1809 fra.me.REG[1] = p1;
1810 fra.me.REG[2] = p2;
1811 /* syntax/syntax_base.nit:276 */
1812 CALL_syntax___syntax_base___Variable___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1813 stack_frame_head = fra.me.prev;
1814 init_table[itpos12] = 1;
1815 return;
1816 }
1817 static const char LOCATE_syntax___syntax_base___ClosureVariable___kind[] = "syntax_base::ClosureVariable::(syntax_base::Variable::kind)";
1818 val_t syntax___syntax_base___ClosureVariable___kind(val_t p0){
1819 struct {struct stack_frame_t me;} fra;
1820 val_t REGB0;
1821 val_t tmp;
1822 static val_t once_value_1; /* Once value */
1823 static val_t once_value_2; /* Once value */
1824 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1825 fra.me.file = LOCATE_syntax___syntax_base;
1826 fra.me.line = 283;
1827 fra.me.meth = LOCATE_syntax___syntax_base___ClosureVariable___kind;
1828 fra.me.has_broke = 0;
1829 fra.me.REG_size = 1;
1830 fra.me.nitni_local_ref_head = NULL;
1831 fra.me.REG[0] = NIT_NULL;
1832 fra.me.REG[0] = p0;
1833 /* syntax/syntax_base.nit:283 */
1834 if (!once_value_1) {
1835 if (!once_value_2) {
1836 fra.me.REG[0] = BOX_NativeString("closure");
1837 REGB0 = TAG_Int(7);
1838 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
1839 once_value_2 = fra.me.REG[0];
1840 register_static_object(&once_value_2);
1841 } else fra.me.REG[0] = once_value_2;
1842 fra.me.REG[0] = fra.me.REG[0];
1843 once_value_1 = fra.me.REG[0];
1844 register_static_object(&once_value_1);
1845 } else fra.me.REG[0] = once_value_1;
1846 fra.me.REG[0] = fra.me.REG[0];
1847 goto label3;
1848 label3: while(0);
1849 stack_frame_head = fra.me.prev;
1850 return fra.me.REG[0];
1851 }
1852 static const char LOCATE_syntax___syntax_base___ClosureVariable___closure[] = "syntax_base::ClosureVariable::closure";
1853 val_t syntax___syntax_base___ClosureVariable___closure(val_t p0){
1854 struct {struct stack_frame_t me;} fra;
1855 val_t REGB0;
1856 val_t tmp;
1857 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1858 fra.me.file = LOCATE_syntax___syntax_base;
1859 fra.me.line = 285;
1860 fra.me.meth = LOCATE_syntax___syntax_base___ClosureVariable___closure;
1861 fra.me.has_broke = 0;
1862 fra.me.REG_size = 1;
1863 fra.me.nitni_local_ref_head = NULL;
1864 fra.me.REG[0] = NIT_NULL;
1865 fra.me.REG[0] = p0;
1866 /* syntax/syntax_base.nit:285 */
1867 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___ClosureVariable____closure(fra.me.REG[0])!=NIT_NULL);
1868 if (UNTAG_Bool(REGB0)) {
1869 } else {
1870 nit_abort("Uninitialized attribute %s", "_closure", LOCATE_syntax___syntax_base, 285);
1871 }
1872 fra.me.REG[0] = ATTR_syntax___syntax_base___ClosureVariable____closure(fra.me.REG[0]);
1873 stack_frame_head = fra.me.prev;
1874 return fra.me.REG[0];
1875 }
1876 static const char LOCATE_syntax___syntax_base___ClosureVariable___init[] = "syntax_base::ClosureVariable::init";
1877 void syntax___syntax_base___ClosureVariable___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1878 int itpos13 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___syntax_base___ClosureVariable].i;
1879 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1880 val_t tmp;
1881 if (init_table[itpos13]) return;
1882 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1883 fra.me.file = LOCATE_syntax___syntax_base;
1884 fra.me.line = 288;
1885 fra.me.meth = LOCATE_syntax___syntax_base___ClosureVariable___init;
1886 fra.me.has_broke = 0;
1887 fra.me.REG_size = 5;
1888 fra.me.nitni_local_ref_head = NULL;
1889 fra.me.REG[0] = NIT_NULL;
1890 fra.me.REG[1] = NIT_NULL;
1891 fra.me.REG[2] = NIT_NULL;
1892 fra.me.REG[3] = NIT_NULL;
1893 fra.me.REG[4] = NIT_NULL;
1894 fra.me.REG[0] = p0;
1895 fra.me.REG[1] = p1;
1896 fra.me.REG[2] = p2;
1897 fra.me.REG[3] = p3;
1898 /* syntax/syntax_base.nit:288 */
1899 fra.me.REG[4] = fra.me.REG[0];
1900 /* syntax/syntax_base.nit:290 */
1901 CALL_syntax___syntax_base___Variable___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1902 /* syntax/syntax_base.nit:291 */
1903 ATTR_syntax___syntax_base___ClosureVariable____closure(fra.me.REG[4]) = fra.me.REG[3];
1904 stack_frame_head = fra.me.prev;
1905 init_table[itpos13] = 1;
1906 return;
1907 }
1908 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___get_type_by_name[] = "syntax_base::AbsSyntaxVisitor::get_type_by_name";
1909 val_t syntax___syntax_base___AbsSyntaxVisitor___get_type_by_name(val_t p0, val_t p1){
1910 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1911 val_t REGB0;
1912 val_t tmp;
1913 static val_t once_value_1; /* Once value */
1914 static val_t once_value_2; /* Once value */
1915 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1916 fra.me.file = LOCATE_syntax___syntax_base;
1917 fra.me.line = 300;
1918 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___get_type_by_name;
1919 fra.me.has_broke = 0;
1920 fra.me.REG_size = 6;
1921 fra.me.nitni_local_ref_head = NULL;
1922 fra.me.REG[0] = NIT_NULL;
1923 fra.me.REG[1] = NIT_NULL;
1924 fra.me.REG[2] = NIT_NULL;
1925 fra.me.REG[3] = NIT_NULL;
1926 fra.me.REG[4] = NIT_NULL;
1927 fra.me.REG[5] = NIT_NULL;
1928 fra.me.REG[0] = p0;
1929 fra.me.REG[1] = p1;
1930 /* syntax/syntax_base.nit:302 */
1931 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[0])!=NIT_NULL);
1932 if (UNTAG_Bool(REGB0)) {
1933 } else {
1934 nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_syntax___syntax_base, 302);
1935 }
1936 fra.me.REG[2] = ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[0]);
1937 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1938 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1939 if (UNTAG_Bool(REGB0)) {
1940 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
1941 if (UNTAG_Bool(REGB0)) {
1942 } else {
1943 nit_abort("Uninitialized attribute %s", "_tc", LOCATE_syntax___syntax_base, 302);
1944 }
1945 fra.me.REG[2] = ATTR_syntax___syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0]);
1946 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[0])!=NIT_NULL);
1947 if (UNTAG_Bool(REGB0)) {
1948 } else {
1949 nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_syntax___syntax_base, 302);
1950 }
1951 fra.me.REG[3] = ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[0]);
1952 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___location(fra.me.REG[3])(fra.me.REG[3]);
1953 REGB0 = TAG_Int(3);
1954 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1955 if (!once_value_1) {
1956 fra.me.REG[5] = BOX_NativeString("Missing necessary class: \"");
1957 REGB0 = TAG_Int(26);
1958 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
1959 once_value_1 = fra.me.REG[5];
1960 register_static_object(&once_value_1);
1961 } else fra.me.REG[5] = once_value_1;
1962 fra.me.REG[5] = fra.me.REG[5];
1963 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
1964 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
1965 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
1966 if (!once_value_2) {
1967 fra.me.REG[5] = BOX_NativeString("\"");
1968 REGB0 = TAG_Int(1);
1969 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
1970 once_value_2 = fra.me.REG[5];
1971 register_static_object(&once_value_2);
1972 } else fra.me.REG[5] = once_value_2;
1973 fra.me.REG[5] = fra.me.REG[5];
1974 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
1975 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1976 CALL_toolcontext___ToolContext___fatal_error(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
1977 }
1978 /* syntax/syntax_base.nit:303 */
1979 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[0])!=NIT_NULL);
1980 if (UNTAG_Bool(REGB0)) {
1981 } else {
1982 nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_syntax___syntax_base, 303);
1983 }
1984 fra.me.REG[0] = ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[0]);
1985 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1986 /* syntax/syntax_base.nit:304 */
1987 fra.me.REG[1] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
1988 goto label3;
1989 label3: while(0);
1990 stack_frame_head = fra.me.prev;
1991 return fra.me.REG[1];
1992 }
1993 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name[] = "syntax_base::AbsSyntaxVisitor::get_instantiated_type_by_name";
1994 val_t syntax___syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name(val_t p0, val_t p1, val_t p2){
1995 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
1996 val_t REGB0;
1997 val_t tmp;
1998 static val_t once_value_1; /* Once value */
1999 static val_t once_value_2; /* Once value */
2000 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2001 fra.me.file = LOCATE_syntax___syntax_base;
2002 fra.me.line = 307;
2003 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name;
2004 fra.me.has_broke = 0;
2005 fra.me.REG_size = 7;
2006 fra.me.nitni_local_ref_head = NULL;
2007 fra.me.REG[0] = NIT_NULL;
2008 fra.me.REG[1] = NIT_NULL;
2009 fra.me.REG[2] = NIT_NULL;
2010 fra.me.REG[3] = NIT_NULL;
2011 fra.me.REG[4] = NIT_NULL;
2012 fra.me.REG[5] = NIT_NULL;
2013 fra.me.REG[6] = NIT_NULL;
2014 fra.me.REG[0] = p0;
2015 fra.me.REG[1] = p1;
2016 fra.me.REG[2] = p2;
2017 /* syntax/syntax_base.nit:309 */
2018 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[0])!=NIT_NULL);
2019 if (UNTAG_Bool(REGB0)) {
2020 } else {
2021 nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_syntax___syntax_base, 309);
2022 }
2023 fra.me.REG[3] = ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[0]);
2024 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2025 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2026 if (UNTAG_Bool(REGB0)) {
2027 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
2028 if (UNTAG_Bool(REGB0)) {
2029 } else {
2030 nit_abort("Uninitialized attribute %s", "_tc", LOCATE_syntax___syntax_base, 309);
2031 }
2032 fra.me.REG[3] = ATTR_syntax___syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0]);
2033 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[0])!=NIT_NULL);
2034 if (UNTAG_Bool(REGB0)) {
2035 } else {
2036 nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_syntax___syntax_base, 309);
2037 }
2038 fra.me.REG[4] = ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[0]);
2039 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMModule___location(fra.me.REG[4])(fra.me.REG[4]);
2040 REGB0 = TAG_Int(3);
2041 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2042 if (!once_value_1) {
2043 fra.me.REG[6] = BOX_NativeString("Missing necessary class: \"");
2044 REGB0 = TAG_Int(26);
2045 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
2046 once_value_1 = fra.me.REG[6];
2047 register_static_object(&once_value_1);
2048 } else fra.me.REG[6] = once_value_1;
2049 fra.me.REG[6] = fra.me.REG[6];
2050 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2051 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
2052 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2053 if (!once_value_2) {
2054 fra.me.REG[6] = BOX_NativeString("\"");
2055 REGB0 = TAG_Int(1);
2056 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
2057 once_value_2 = fra.me.REG[6];
2058 register_static_object(&once_value_2);
2059 } else fra.me.REG[6] = once_value_2;
2060 fra.me.REG[6] = fra.me.REG[6];
2061 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
2062 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
2063 CALL_toolcontext___ToolContext___fatal_error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]);
2064 }
2065 /* syntax/syntax_base.nit:310 */
2066 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[0])!=NIT_NULL);
2067 if (UNTAG_Bool(REGB0)) {
2068 } else {
2069 nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_syntax___syntax_base, 310);
2070 }
2071 fra.me.REG[0] = ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[0]);
2072 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2073 /* syntax/syntax_base.nit:311 */
2074 fra.me.REG[2] = CALL_metamodel___genericity___MMLocalClass___get_instantiate_type(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2075 goto label3;
2076 label3: while(0);
2077 stack_frame_head = fra.me.prev;
2078 return fra.me.REG[2];
2079 }
2080 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___type_object[] = "syntax_base::AbsSyntaxVisitor::type_object";
2081 val_t syntax___syntax_base___AbsSyntaxVisitor___type_object(val_t p0){
2082 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2083 val_t REGB0;
2084 val_t tmp;
2085 static val_t once_value_1; /* Once value */
2086 static val_t once_value_2; /* Once value */
2087 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2088 fra.me.file = LOCATE_syntax___syntax_base;
2089 fra.me.line = 314;
2090 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___type_object;
2091 fra.me.has_broke = 0;
2092 fra.me.REG_size = 2;
2093 fra.me.nitni_local_ref_head = NULL;
2094 fra.me.REG[0] = NIT_NULL;
2095 fra.me.REG[1] = NIT_NULL;
2096 fra.me.REG[0] = p0;
2097 /* syntax/syntax_base.nit:317 */
2098 if (!once_value_1) {
2099 if (!once_value_2) {
2100 fra.me.REG[1] = BOX_NativeString("Object");
2101 REGB0 = TAG_Int(6);
2102 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
2103 once_value_2 = fra.me.REG[1];
2104 register_static_object(&once_value_2);
2105 } else fra.me.REG[1] = once_value_2;
2106 fra.me.REG[1] = fra.me.REG[1];
2107 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
2108 once_value_1 = fra.me.REG[1];
2109 register_static_object(&once_value_1);
2110 } else fra.me.REG[1] = once_value_1;
2111 fra.me.REG[1] = fra.me.REG[1];
2112 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_type_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2113 goto label3;
2114 label3: while(0);
2115 stack_frame_head = fra.me.prev;
2116 return fra.me.REG[1];
2117 }
2118 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___type_bool[] = "syntax_base::AbsSyntaxVisitor::type_bool";
2119 val_t syntax___syntax_base___AbsSyntaxVisitor___type_bool(val_t p0){
2120 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2121 val_t REGB0;
2122 val_t tmp;
2123 static val_t once_value_1; /* Once value */
2124 static val_t once_value_2; /* Once value */
2125 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2126 fra.me.file = LOCATE_syntax___syntax_base;
2127 fra.me.line = 320;
2128 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___type_bool;
2129 fra.me.has_broke = 0;
2130 fra.me.REG_size = 2;
2131 fra.me.nitni_local_ref_head = NULL;
2132 fra.me.REG[0] = NIT_NULL;
2133 fra.me.REG[1] = NIT_NULL;
2134 fra.me.REG[0] = p0;
2135 /* syntax/syntax_base.nit:323 */
2136 if (!once_value_1) {
2137 if (!once_value_2) {
2138 fra.me.REG[1] = BOX_NativeString("Bool");
2139 REGB0 = TAG_Int(4);
2140 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
2141 once_value_2 = fra.me.REG[1];
2142 register_static_object(&once_value_2);
2143 } else fra.me.REG[1] = once_value_2;
2144 fra.me.REG[1] = fra.me.REG[1];
2145 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
2146 once_value_1 = fra.me.REG[1];
2147 register_static_object(&once_value_1);
2148 } else fra.me.REG[1] = once_value_1;
2149 fra.me.REG[1] = fra.me.REG[1];
2150 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_type_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2151 goto label3;
2152 label3: while(0);
2153 stack_frame_head = fra.me.prev;
2154 return fra.me.REG[1];
2155 }
2156 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___type_int[] = "syntax_base::AbsSyntaxVisitor::type_int";
2157 val_t syntax___syntax_base___AbsSyntaxVisitor___type_int(val_t p0){
2158 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2159 val_t REGB0;
2160 val_t tmp;
2161 static val_t once_value_1; /* Once value */
2162 static val_t once_value_2; /* Once value */
2163 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2164 fra.me.file = LOCATE_syntax___syntax_base;
2165 fra.me.line = 326;
2166 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___type_int;
2167 fra.me.has_broke = 0;
2168 fra.me.REG_size = 2;
2169 fra.me.nitni_local_ref_head = NULL;
2170 fra.me.REG[0] = NIT_NULL;
2171 fra.me.REG[1] = NIT_NULL;
2172 fra.me.REG[0] = p0;
2173 /* syntax/syntax_base.nit:329 */
2174 if (!once_value_1) {
2175 if (!once_value_2) {
2176 fra.me.REG[1] = BOX_NativeString("Int");
2177 REGB0 = TAG_Int(3);
2178 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
2179 once_value_2 = fra.me.REG[1];
2180 register_static_object(&once_value_2);
2181 } else fra.me.REG[1] = once_value_2;
2182 fra.me.REG[1] = fra.me.REG[1];
2183 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
2184 once_value_1 = fra.me.REG[1];
2185 register_static_object(&once_value_1);
2186 } else fra.me.REG[1] = once_value_1;
2187 fra.me.REG[1] = fra.me.REG[1];
2188 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_type_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2189 goto label3;
2190 label3: while(0);
2191 stack_frame_head = fra.me.prev;
2192 return fra.me.REG[1];
2193 }
2194 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___type_float[] = "syntax_base::AbsSyntaxVisitor::type_float";
2195 val_t syntax___syntax_base___AbsSyntaxVisitor___type_float(val_t p0){
2196 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2197 val_t REGB0;
2198 val_t tmp;
2199 static val_t once_value_1; /* Once value */
2200 static val_t once_value_2; /* Once value */
2201 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2202 fra.me.file = LOCATE_syntax___syntax_base;
2203 fra.me.line = 332;
2204 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___type_float;
2205 fra.me.has_broke = 0;
2206 fra.me.REG_size = 2;
2207 fra.me.nitni_local_ref_head = NULL;
2208 fra.me.REG[0] = NIT_NULL;
2209 fra.me.REG[1] = NIT_NULL;
2210 fra.me.REG[0] = p0;
2211 /* syntax/syntax_base.nit:335 */
2212 if (!once_value_1) {
2213 if (!once_value_2) {
2214 fra.me.REG[1] = BOX_NativeString("Float");
2215 REGB0 = TAG_Int(5);
2216 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
2217 once_value_2 = fra.me.REG[1];
2218 register_static_object(&once_value_2);
2219 } else fra.me.REG[1] = once_value_2;
2220 fra.me.REG[1] = fra.me.REG[1];
2221 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
2222 once_value_1 = fra.me.REG[1];
2223 register_static_object(&once_value_1);
2224 } else fra.me.REG[1] = once_value_1;
2225 fra.me.REG[1] = fra.me.REG[1];
2226 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_type_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2227 goto label3;
2228 label3: while(0);
2229 stack_frame_head = fra.me.prev;
2230 return fra.me.REG[1];
2231 }
2232 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___type_char[] = "syntax_base::AbsSyntaxVisitor::type_char";
2233 val_t syntax___syntax_base___AbsSyntaxVisitor___type_char(val_t p0){
2234 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2235 val_t REGB0;
2236 val_t tmp;
2237 static val_t once_value_1; /* Once value */
2238 static val_t once_value_2; /* Once value */
2239 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2240 fra.me.file = LOCATE_syntax___syntax_base;
2241 fra.me.line = 338;
2242 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___type_char;
2243 fra.me.has_broke = 0;
2244 fra.me.REG_size = 2;
2245 fra.me.nitni_local_ref_head = NULL;
2246 fra.me.REG[0] = NIT_NULL;
2247 fra.me.REG[1] = NIT_NULL;
2248 fra.me.REG[0] = p0;
2249 /* syntax/syntax_base.nit:341 */
2250 if (!once_value_1) {
2251 if (!once_value_2) {
2252 fra.me.REG[1] = BOX_NativeString("Char");
2253 REGB0 = TAG_Int(4);
2254 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
2255 once_value_2 = fra.me.REG[1];
2256 register_static_object(&once_value_2);
2257 } else fra.me.REG[1] = once_value_2;
2258 fra.me.REG[1] = fra.me.REG[1];
2259 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
2260 once_value_1 = fra.me.REG[1];
2261 register_static_object(&once_value_1);
2262 } else fra.me.REG[1] = once_value_1;
2263 fra.me.REG[1] = fra.me.REG[1];
2264 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_type_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2265 goto label3;
2266 label3: while(0);
2267 stack_frame_head = fra.me.prev;
2268 return fra.me.REG[1];
2269 }
2270 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___type_string[] = "syntax_base::AbsSyntaxVisitor::type_string";
2271 val_t syntax___syntax_base___AbsSyntaxVisitor___type_string(val_t p0){
2272 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2273 val_t REGB0;
2274 val_t tmp;
2275 static val_t once_value_1; /* Once value */
2276 static val_t once_value_2; /* Once value */
2277 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2278 fra.me.file = LOCATE_syntax___syntax_base;
2279 fra.me.line = 344;
2280 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___type_string;
2281 fra.me.has_broke = 0;
2282 fra.me.REG_size = 2;
2283 fra.me.nitni_local_ref_head = NULL;
2284 fra.me.REG[0] = NIT_NULL;
2285 fra.me.REG[1] = NIT_NULL;
2286 fra.me.REG[0] = p0;
2287 /* syntax/syntax_base.nit:347 */
2288 if (!once_value_1) {
2289 if (!once_value_2) {
2290 fra.me.REG[1] = BOX_NativeString("String");
2291 REGB0 = TAG_Int(6);
2292 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
2293 once_value_2 = fra.me.REG[1];
2294 register_static_object(&once_value_2);
2295 } else fra.me.REG[1] = once_value_2;
2296 fra.me.REG[1] = fra.me.REG[1];
2297 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
2298 once_value_1 = fra.me.REG[1];
2299 register_static_object(&once_value_1);
2300 } else fra.me.REG[1] = once_value_1;
2301 fra.me.REG[1] = fra.me.REG[1];
2302 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_type_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2303 goto label3;
2304 label3: while(0);
2305 stack_frame_head = fra.me.prev;
2306 return fra.me.REG[1];
2307 }
2308 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___type_nativestring[] = "syntax_base::AbsSyntaxVisitor::type_nativestring";
2309 val_t syntax___syntax_base___AbsSyntaxVisitor___type_nativestring(val_t p0){
2310 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2311 val_t REGB0;
2312 val_t tmp;
2313 static val_t once_value_1; /* Once value */
2314 static val_t once_value_2; /* Once value */
2315 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2316 fra.me.file = LOCATE_syntax___syntax_base;
2317 fra.me.line = 350;
2318 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___type_nativestring;
2319 fra.me.has_broke = 0;
2320 fra.me.REG_size = 2;
2321 fra.me.nitni_local_ref_head = NULL;
2322 fra.me.REG[0] = NIT_NULL;
2323 fra.me.REG[1] = NIT_NULL;
2324 fra.me.REG[0] = p0;
2325 /* syntax/syntax_base.nit:353 */
2326 if (!once_value_1) {
2327 if (!once_value_2) {
2328 fra.me.REG[1] = BOX_NativeString("NativeString");
2329 REGB0 = TAG_Int(12);
2330 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
2331 once_value_2 = fra.me.REG[1];
2332 register_static_object(&once_value_2);
2333 } else fra.me.REG[1] = once_value_2;
2334 fra.me.REG[1] = fra.me.REG[1];
2335 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
2336 once_value_1 = fra.me.REG[1];
2337 register_static_object(&once_value_1);
2338 } else fra.me.REG[1] = once_value_1;
2339 fra.me.REG[1] = fra.me.REG[1];
2340 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_type_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2341 goto label3;
2342 label3: while(0);
2343 stack_frame_head = fra.me.prev;
2344 return fra.me.REG[1];
2345 }
2346 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___type_array[] = "syntax_base::AbsSyntaxVisitor::type_array";
2347 val_t syntax___syntax_base___AbsSyntaxVisitor___type_array(val_t p0, val_t p1){
2348 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2349 val_t REGB0;
2350 val_t tmp;
2351 static val_t once_value_1; /* Once value */
2352 static val_t once_value_2; /* Once value */
2353 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2354 fra.me.file = LOCATE_syntax___syntax_base;
2355 fra.me.line = 356;
2356 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___type_array;
2357 fra.me.has_broke = 0;
2358 fra.me.REG_size = 4;
2359 fra.me.nitni_local_ref_head = NULL;
2360 fra.me.REG[0] = NIT_NULL;
2361 fra.me.REG[1] = NIT_NULL;
2362 fra.me.REG[2] = NIT_NULL;
2363 fra.me.REG[3] = NIT_NULL;
2364 fra.me.REG[0] = p0;
2365 fra.me.REG[1] = p1;
2366 /* syntax/syntax_base.nit:359 */
2367 if (!once_value_1) {
2368 if (!once_value_2) {
2369 fra.me.REG[2] = BOX_NativeString("Array");
2370 REGB0 = TAG_Int(5);
2371 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
2372 once_value_2 = fra.me.REG[2];
2373 register_static_object(&once_value_2);
2374 } else fra.me.REG[2] = once_value_2;
2375 fra.me.REG[2] = fra.me.REG[2];
2376 fra.me.REG[2] = CALL_symbol___String___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
2377 once_value_1 = fra.me.REG[2];
2378 register_static_object(&once_value_1);
2379 } else fra.me.REG[2] = once_value_1;
2380 fra.me.REG[2] = fra.me.REG[2];
2381 REGB0 = TAG_Int(1);
2382 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2383 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2384 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[3]);
2385 goto label3;
2386 label3: while(0);
2387 stack_frame_head = fra.me.prev;
2388 return fra.me.REG[3];
2389 }
2390 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___type_discrete[] = "syntax_base::AbsSyntaxVisitor::type_discrete";
2391 val_t syntax___syntax_base___AbsSyntaxVisitor___type_discrete(val_t p0){
2392 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2393 val_t REGB0;
2394 val_t tmp;
2395 static val_t once_value_1; /* Once value */
2396 static val_t once_value_2; /* Once value */
2397 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2398 fra.me.file = LOCATE_syntax___syntax_base;
2399 fra.me.line = 362;
2400 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___type_discrete;
2401 fra.me.has_broke = 0;
2402 fra.me.REG_size = 2;
2403 fra.me.nitni_local_ref_head = NULL;
2404 fra.me.REG[0] = NIT_NULL;
2405 fra.me.REG[1] = NIT_NULL;
2406 fra.me.REG[0] = p0;
2407 /* syntax/syntax_base.nit:365 */
2408 if (!once_value_1) {
2409 if (!once_value_2) {
2410 fra.me.REG[1] = BOX_NativeString("Discrete");
2411 REGB0 = TAG_Int(8);
2412 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
2413 once_value_2 = fra.me.REG[1];
2414 register_static_object(&once_value_2);
2415 } else fra.me.REG[1] = once_value_2;
2416 fra.me.REG[1] = fra.me.REG[1];
2417 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
2418 once_value_1 = fra.me.REG[1];
2419 register_static_object(&once_value_1);
2420 } else fra.me.REG[1] = once_value_1;
2421 fra.me.REG[1] = fra.me.REG[1];
2422 fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_type_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2423 goto label3;
2424 label3: while(0);
2425 stack_frame_head = fra.me.prev;
2426 return fra.me.REG[1];
2427 }
2428 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___type_range[] = "syntax_base::AbsSyntaxVisitor::type_range";
2429 val_t syntax___syntax_base___AbsSyntaxVisitor___type_range(val_t p0, val_t p1){
2430 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2431 val_t REGB0;
2432 val_t tmp;
2433 static val_t once_value_1; /* Once value */
2434 static val_t once_value_2; /* Once value */
2435 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2436 fra.me.file = LOCATE_syntax___syntax_base;
2437 fra.me.line = 368;
2438 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___type_range;
2439 fra.me.has_broke = 0;
2440 fra.me.REG_size = 4;
2441 fra.me.nitni_local_ref_head = NULL;
2442 fra.me.REG[0] = NIT_NULL;
2443 fra.me.REG[1] = NIT_NULL;
2444 fra.me.REG[2] = NIT_NULL;
2445 fra.me.REG[3] = NIT_NULL;
2446 fra.me.REG[0] = p0;
2447 fra.me.REG[1] = p1;
2448 /* syntax/syntax_base.nit:371 */
2449 if (!once_value_1) {
2450 if (!once_value_2) {
2451 fra.me.REG[2] = BOX_NativeString("Range");
2452 REGB0 = TAG_Int(5);
2453 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
2454 once_value_2 = fra.me.REG[2];
2455 register_static_object(&once_value_2);
2456 } else fra.me.REG[2] = once_value_2;
2457 fra.me.REG[2] = fra.me.REG[2];
2458 fra.me.REG[2] = CALL_symbol___String___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
2459 once_value_1 = fra.me.REG[2];
2460 register_static_object(&once_value_1);
2461 } else fra.me.REG[2] = once_value_1;
2462 fra.me.REG[2] = fra.me.REG[2];
2463 REGB0 = TAG_Int(1);
2464 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2465 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2466 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___get_instantiated_type_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[3]);
2467 goto label3;
2468 label3: while(0);
2469 stack_frame_head = fra.me.prev;
2470 return fra.me.REG[3];
2471 }
2472 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___type_none[] = "syntax_base::AbsSyntaxVisitor::type_none";
2473 val_t syntax___syntax_base___AbsSyntaxVisitor___type_none(val_t p0){
2474 struct {struct stack_frame_t me;} fra;
2475 val_t REGB0;
2476 val_t tmp;
2477 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2478 fra.me.file = LOCATE_syntax___syntax_base;
2479 fra.me.line = 374;
2480 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___type_none;
2481 fra.me.has_broke = 0;
2482 fra.me.REG_size = 1;
2483 fra.me.nitni_local_ref_head = NULL;
2484 fra.me.REG[0] = NIT_NULL;
2485 fra.me.REG[0] = p0;
2486 /* syntax/syntax_base.nit:377 */
2487 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[0])!=NIT_NULL);
2488 if (UNTAG_Bool(REGB0)) {
2489 } else {
2490 nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_syntax___syntax_base, 377);
2491 }
2492 fra.me.REG[0] = ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[0]);
2493 fra.me.REG[0] = CALL_metamodel___static_type___MMModule___type_none(fra.me.REG[0])(fra.me.REG[0]);
2494 goto label1;
2495 label1: while(0);
2496 stack_frame_head = fra.me.prev;
2497 return fra.me.REG[0];
2498 }
2499 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___get_method[] = "syntax_base::AbsSyntaxVisitor::get_method";
2500 val_t syntax___syntax_base___AbsSyntaxVisitor___get_method(val_t p0, val_t p1, val_t p2){
2501 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
2502 val_t REGB0;
2503 val_t tmp;
2504 static val_t once_value_1; /* Once value */
2505 static val_t once_value_2; /* Once value */
2506 static val_t once_value_3; /* Once value */
2507 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2508 fra.me.file = LOCATE_syntax___syntax_base;
2509 fra.me.line = 380;
2510 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___get_method;
2511 fra.me.has_broke = 0;
2512 fra.me.REG_size = 6;
2513 fra.me.nitni_local_ref_head = NULL;
2514 fra.me.REG[0] = NIT_NULL;
2515 fra.me.REG[1] = NIT_NULL;
2516 fra.me.REG[2] = NIT_NULL;
2517 fra.me.REG[3] = NIT_NULL;
2518 fra.me.REG[4] = NIT_NULL;
2519 fra.me.REG[5] = NIT_NULL;
2520 fra.me.REG[0] = p0;
2521 fra.me.REG[1] = p1;
2522 fra.me.REG[2] = p2;
2523 /* syntax/syntax_base.nit:382 */
2524 fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[1])(fra.me.REG[1]);
2525 REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
2526 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2527 if (UNTAG_Bool(REGB0)) {
2528 /* syntax/syntax_base.nit:383 */
2529 fra.me.REG[3] = CALL_parser___parser_prod___Visitor___current_node(fra.me.REG[0])(fra.me.REG[0]);
2530 REGB0 = TAG_Int(5);
2531 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2532 if (!once_value_1) {
2533 fra.me.REG[5] = BOX_NativeString("Fatal Error: ");
2534 REGB0 = TAG_Int(13);
2535 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
2536 once_value_1 = fra.me.REG[5];
2537 register_static_object(&once_value_1);
2538 } else fra.me.REG[5] = once_value_1;
2539 fra.me.REG[5] = fra.me.REG[5];
2540 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2541 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
2542 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2543 if (!once_value_2) {
2544 fra.me.REG[5] = BOX_NativeString(" must have a property named ");
2545 REGB0 = TAG_Int(28);
2546 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
2547 once_value_2 = fra.me.REG[5];
2548 register_static_object(&once_value_2);
2549 } else fra.me.REG[5] = once_value_2;
2550 fra.me.REG[5] = fra.me.REG[5];
2551 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2552 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2553 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2554 if (!once_value_3) {
2555 fra.me.REG[5] = BOX_NativeString(".");
2556 REGB0 = TAG_Int(1);
2557 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
2558 once_value_3 = fra.me.REG[5];
2559 register_static_object(&once_value_3);
2560 } else fra.me.REG[5] = once_value_3;
2561 fra.me.REG[5] = fra.me.REG[5];
2562 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2563 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
2564 CALL_syntax___syntax_base___AbsSyntaxVisitor___fatal_error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[4]);
2565 }
2566 /* syntax/syntax_base.nit:385 */
2567 fra.me.REG[1] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[1])(fra.me.REG[1]);
2568 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2569 goto label4;
2570 label4: while(0);
2571 stack_frame_head = fra.me.prev;
2572 return fra.me.REG[2];
2573 }
2574 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___mmmodule[] = "syntax_base::AbsSyntaxVisitor::mmmodule";
2575 val_t syntax___syntax_base___AbsSyntaxVisitor___mmmodule(val_t p0){
2576 struct {struct stack_frame_t me;} fra;
2577 val_t REGB0;
2578 val_t tmp;
2579 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2580 fra.me.file = LOCATE_syntax___syntax_base;
2581 fra.me.line = 388;
2582 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___mmmodule;
2583 fra.me.has_broke = 0;
2584 fra.me.REG_size = 1;
2585 fra.me.nitni_local_ref_head = NULL;
2586 fra.me.REG[0] = NIT_NULL;
2587 fra.me.REG[0] = p0;
2588 /* syntax/syntax_base.nit:388 */
2589 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[0])!=NIT_NULL);
2590 if (UNTAG_Bool(REGB0)) {
2591 } else {
2592 nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_syntax___syntax_base, 388);
2593 }
2594 fra.me.REG[0] = ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[0]);
2595 stack_frame_head = fra.me.prev;
2596 return fra.me.REG[0];
2597 }
2598 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___local_class[] = "syntax_base::AbsSyntaxVisitor::local_class";
2599 val_t syntax___syntax_base___AbsSyntaxVisitor___local_class(val_t p0){
2600 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2601 val_t REGB0;
2602 val_t tmp;
2603 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2604 fra.me.file = LOCATE_syntax___syntax_base;
2605 fra.me.line = 391;
2606 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___local_class;
2607 fra.me.has_broke = 0;
2608 fra.me.REG_size = 2;
2609 fra.me.nitni_local_ref_head = NULL;
2610 fra.me.REG[0] = NIT_NULL;
2611 fra.me.REG[1] = NIT_NULL;
2612 fra.me.REG[0] = p0;
2613 /* syntax/syntax_base.nit:391 */
2614 fra.me.REG[1] = fra.me.REG[0];
2615 /* syntax/syntax_base.nit:392 */
2616 fra.me.REG[1] = ATTR_syntax___syntax_base___AbsSyntaxVisitor____local_class(fra.me.REG[1]);
2617 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
2618 if (UNTAG_Bool(REGB0)) {
2619 } else {
2620 nit_abort("Cast failed", NULL, LOCATE_syntax___syntax_base, 392);
2621 }
2622 goto label1;
2623 label1: while(0);
2624 stack_frame_head = fra.me.prev;
2625 return fra.me.REG[1];
2626 }
2627 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___local_class__eq[] = "syntax_base::AbsSyntaxVisitor::local_class=";
2628 void syntax___syntax_base___AbsSyntaxVisitor___local_class__eq(val_t p0, val_t p1){
2629 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2630 val_t tmp;
2631 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2632 fra.me.file = LOCATE_syntax___syntax_base;
2633 fra.me.line = 393;
2634 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___local_class__eq;
2635 fra.me.has_broke = 0;
2636 fra.me.REG_size = 2;
2637 fra.me.nitni_local_ref_head = NULL;
2638 fra.me.REG[0] = NIT_NULL;
2639 fra.me.REG[1] = NIT_NULL;
2640 fra.me.REG[0] = p0;
2641 fra.me.REG[1] = p1;
2642 /* syntax/syntax_base.nit:393 */
2643 ATTR_syntax___syntax_base___AbsSyntaxVisitor____local_class(fra.me.REG[0]) = fra.me.REG[1];
2644 stack_frame_head = fra.me.prev;
2645 return;
2646 }
2647 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___local_property[] = "syntax_base::AbsSyntaxVisitor::local_property";
2648 val_t syntax___syntax_base___AbsSyntaxVisitor___local_property(val_t p0){
2649 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2650 val_t REGB0;
2651 val_t tmp;
2652 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2653 fra.me.file = LOCATE_syntax___syntax_base;
2654 fra.me.line = 395;
2655 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___local_property;
2656 fra.me.has_broke = 0;
2657 fra.me.REG_size = 2;
2658 fra.me.nitni_local_ref_head = NULL;
2659 fra.me.REG[0] = NIT_NULL;
2660 fra.me.REG[1] = NIT_NULL;
2661 fra.me.REG[0] = p0;
2662 /* syntax/syntax_base.nit:395 */
2663 fra.me.REG[1] = fra.me.REG[0];
2664 /* syntax/syntax_base.nit:396 */
2665 fra.me.REG[1] = ATTR_syntax___syntax_base___AbsSyntaxVisitor____local_property(fra.me.REG[1]);
2666 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
2667 if (UNTAG_Bool(REGB0)) {
2668 } else {
2669 nit_abort("Cast failed", NULL, LOCATE_syntax___syntax_base, 396);
2670 }
2671 goto label1;
2672 label1: while(0);
2673 stack_frame_head = fra.me.prev;
2674 return fra.me.REG[1];
2675 }
2676 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq[] = "syntax_base::AbsSyntaxVisitor::local_property=";
2677 void syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(val_t p0, val_t p1){
2678 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2679 val_t tmp;
2680 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2681 fra.me.file = LOCATE_syntax___syntax_base;
2682 fra.me.line = 397;
2683 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq;
2684 fra.me.has_broke = 0;
2685 fra.me.REG_size = 2;
2686 fra.me.nitni_local_ref_head = NULL;
2687 fra.me.REG[0] = NIT_NULL;
2688 fra.me.REG[1] = NIT_NULL;
2689 fra.me.REG[0] = p0;
2690 fra.me.REG[1] = p1;
2691 /* syntax/syntax_base.nit:397 */
2692 ATTR_syntax___syntax_base___AbsSyntaxVisitor____local_property(fra.me.REG[0]) = fra.me.REG[1];
2693 stack_frame_head = fra.me.prev;
2694 return;
2695 }
2696 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___tc[] = "syntax_base::AbsSyntaxVisitor::tc";
2697 val_t syntax___syntax_base___AbsSyntaxVisitor___tc(val_t p0){
2698 struct {struct stack_frame_t me;} fra;
2699 val_t REGB0;
2700 val_t tmp;
2701 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2702 fra.me.file = LOCATE_syntax___syntax_base;
2703 fra.me.line = 399;
2704 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___tc;
2705 fra.me.has_broke = 0;
2706 fra.me.REG_size = 1;
2707 fra.me.nitni_local_ref_head = NULL;
2708 fra.me.REG[0] = NIT_NULL;
2709 fra.me.REG[0] = p0;
2710 /* syntax/syntax_base.nit:399 */
2711 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
2712 if (UNTAG_Bool(REGB0)) {
2713 } else {
2714 nit_abort("Uninitialized attribute %s", "_tc", LOCATE_syntax___syntax_base, 399);
2715 }
2716 fra.me.REG[0] = ATTR_syntax___syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0]);
2717 stack_frame_head = fra.me.prev;
2718 return fra.me.REG[0];
2719 }
2720 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___error[] = "syntax_base::AbsSyntaxVisitor::error";
2721 void syntax___syntax_base___AbsSyntaxVisitor___error(val_t p0, val_t p1, val_t p2){
2722 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2723 val_t REGB0;
2724 val_t REGB1;
2725 val_t tmp;
2726 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2727 fra.me.file = LOCATE_syntax___syntax_base;
2728 fra.me.line = 402;
2729 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___error;
2730 fra.me.has_broke = 0;
2731 fra.me.REG_size = 4;
2732 fra.me.nitni_local_ref_head = NULL;
2733 fra.me.REG[0] = NIT_NULL;
2734 fra.me.REG[1] = NIT_NULL;
2735 fra.me.REG[2] = NIT_NULL;
2736 fra.me.REG[3] = NIT_NULL;
2737 fra.me.REG[0] = p0;
2738 fra.me.REG[1] = p1;
2739 fra.me.REG[2] = p2;
2740 /* syntax/syntax_base.nit:405 */
2741 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
2742 if (UNTAG_Bool(REGB0)) {
2743 } else {
2744 nit_abort("Uninitialized attribute %s", "_tc", LOCATE_syntax___syntax_base, 405);
2745 }
2746 fra.me.REG[0] = ATTR_syntax___syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0]);
2747 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2748 if (UNTAG_Bool(REGB0)) {
2749 } else {
2750 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2751 if (UNTAG_Bool(REGB1)) {
2752 REGB1 = TAG_Bool(0);
2753 REGB0 = REGB1;
2754 } else {
2755 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2756 REGB0 = REGB1;
2757 }
2758 }
2759 if (UNTAG_Bool(REGB0)) {
2760 fra.me.REG[3] = NIT_NULL;
2761 } else {
2762 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2763 if (UNTAG_Bool(REGB0)) {
2764 nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 405);
2765 }
2766 fra.me.REG[1] = CALL_parser___parser_nodes___ANode___hot_location(fra.me.REG[1])(fra.me.REG[1]);
2767 fra.me.REG[3] = fra.me.REG[1];
2768 }
2769 CALL_toolcontext___ToolContext___error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
2770 stack_frame_head = fra.me.prev;
2771 return;
2772 }
2773 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___fatal_error[] = "syntax_base::AbsSyntaxVisitor::fatal_error";
2774 void syntax___syntax_base___AbsSyntaxVisitor___fatal_error(val_t p0, val_t p1, val_t p2){
2775 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2776 val_t REGB0;
2777 val_t REGB1;
2778 val_t tmp;
2779 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2780 fra.me.file = LOCATE_syntax___syntax_base;
2781 fra.me.line = 408;
2782 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___fatal_error;
2783 fra.me.has_broke = 0;
2784 fra.me.REG_size = 4;
2785 fra.me.nitni_local_ref_head = NULL;
2786 fra.me.REG[0] = NIT_NULL;
2787 fra.me.REG[1] = NIT_NULL;
2788 fra.me.REG[2] = NIT_NULL;
2789 fra.me.REG[3] = NIT_NULL;
2790 fra.me.REG[0] = p0;
2791 fra.me.REG[1] = p1;
2792 fra.me.REG[2] = p2;
2793 /* syntax/syntax_base.nit:411 */
2794 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
2795 if (UNTAG_Bool(REGB0)) {
2796 } else {
2797 nit_abort("Uninitialized attribute %s", "_tc", LOCATE_syntax___syntax_base, 411);
2798 }
2799 fra.me.REG[0] = ATTR_syntax___syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0]);
2800 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2801 if (UNTAG_Bool(REGB0)) {
2802 } else {
2803 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2804 if (UNTAG_Bool(REGB1)) {
2805 REGB1 = TAG_Bool(0);
2806 REGB0 = REGB1;
2807 } else {
2808 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2809 REGB0 = REGB1;
2810 }
2811 }
2812 if (UNTAG_Bool(REGB0)) {
2813 fra.me.REG[3] = NIT_NULL;
2814 } else {
2815 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2816 if (UNTAG_Bool(REGB0)) {
2817 nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 411);
2818 }
2819 fra.me.REG[1] = CALL_parser___parser_nodes___ANode___hot_location(fra.me.REG[1])(fra.me.REG[1]);
2820 fra.me.REG[3] = fra.me.REG[1];
2821 }
2822 CALL_toolcontext___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
2823 stack_frame_head = fra.me.prev;
2824 return;
2825 }
2826 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___warning[] = "syntax_base::AbsSyntaxVisitor::warning";
2827 void syntax___syntax_base___AbsSyntaxVisitor___warning(val_t p0, val_t p1, val_t p2){
2828 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2829 val_t REGB0;
2830 val_t REGB1;
2831 val_t tmp;
2832 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2833 fra.me.file = LOCATE_syntax___syntax_base;
2834 fra.me.line = 414;
2835 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___warning;
2836 fra.me.has_broke = 0;
2837 fra.me.REG_size = 4;
2838 fra.me.nitni_local_ref_head = NULL;
2839 fra.me.REG[0] = NIT_NULL;
2840 fra.me.REG[1] = NIT_NULL;
2841 fra.me.REG[2] = NIT_NULL;
2842 fra.me.REG[3] = NIT_NULL;
2843 fra.me.REG[0] = p0;
2844 fra.me.REG[1] = p1;
2845 fra.me.REG[2] = p2;
2846 /* syntax/syntax_base.nit:417 */
2847 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0])!=NIT_NULL);
2848 if (UNTAG_Bool(REGB0)) {
2849 } else {
2850 nit_abort("Uninitialized attribute %s", "_tc", LOCATE_syntax___syntax_base, 417);
2851 }
2852 fra.me.REG[0] = ATTR_syntax___syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[0]);
2853 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2854 if (UNTAG_Bool(REGB0)) {
2855 } else {
2856 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2857 if (UNTAG_Bool(REGB1)) {
2858 REGB1 = TAG_Bool(0);
2859 REGB0 = REGB1;
2860 } else {
2861 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2862 REGB0 = REGB1;
2863 }
2864 }
2865 if (UNTAG_Bool(REGB0)) {
2866 fra.me.REG[3] = NIT_NULL;
2867 } else {
2868 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2869 if (UNTAG_Bool(REGB0)) {
2870 nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 417);
2871 }
2872 fra.me.REG[1] = CALL_parser___parser_nodes___ANode___hot_location(fra.me.REG[1])(fra.me.REG[1]);
2873 fra.me.REG[3] = fra.me.REG[1];
2874 }
2875 CALL_toolcontext___ToolContext___warning(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
2876 stack_frame_head = fra.me.prev;
2877 return;
2878 }
2879 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___check_conform[] = "syntax_base::AbsSyntaxVisitor::check_conform";
2880 val_t syntax___syntax_base___AbsSyntaxVisitor___check_conform(val_t p0, val_t p1, val_t p2, val_t p3){
2881 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
2882 val_t REGB0;
2883 val_t REGB1;
2884 val_t REGB2;
2885 val_t tmp;
2886 static val_t once_value_2; /* Once value */
2887 static val_t once_value_3; /* Once value */
2888 static val_t once_value_4; /* Once value */
2889 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2890 fra.me.file = LOCATE_syntax___syntax_base;
2891 fra.me.line = 420;
2892 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___check_conform;
2893 fra.me.has_broke = 0;
2894 fra.me.REG_size = 6;
2895 fra.me.nitni_local_ref_head = NULL;
2896 fra.me.REG[0] = NIT_NULL;
2897 fra.me.REG[1] = NIT_NULL;
2898 fra.me.REG[2] = NIT_NULL;
2899 fra.me.REG[3] = NIT_NULL;
2900 fra.me.REG[4] = NIT_NULL;
2901 fra.me.REG[5] = NIT_NULL;
2902 fra.me.REG[0] = p0;
2903 fra.me.REG[1] = p1;
2904 fra.me.REG[2] = p2;
2905 fra.me.REG[3] = p3;
2906 /* syntax/syntax_base.nit:423 */
2907 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2908 if (UNTAG_Bool(REGB0)) {
2909 } else {
2910 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2911 if (UNTAG_Bool(REGB1)) {
2912 REGB1 = TAG_Bool(0);
2913 REGB0 = REGB1;
2914 } else {
2915 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
2916 REGB0 = REGB1;
2917 }
2918 }
2919 if (UNTAG_Bool(REGB0)) {
2920 REGB0 = TAG_Bool(1);
2921 } else {
2922 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2923 if (UNTAG_Bool(REGB1)) {
2924 } else {
2925 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2926 if (UNTAG_Bool(REGB2)) {
2927 REGB2 = TAG_Bool(0);
2928 REGB1 = REGB2;
2929 } else {
2930 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2931 REGB1 = REGB2;
2932 }
2933 }
2934 REGB0 = REGB1;
2935 }
2936 if (UNTAG_Bool(REGB0)) {
2937 /* syntax/syntax_base.nit:424 */
2938 REGB0 = TAG_Bool(0);
2939 goto label1;
2940 }
2941 /* syntax/syntax_base.nit:426 */
2942 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2943 if (UNTAG_Bool(REGB1)) {
2944 nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 426);
2945 }
2946 REGB1 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
2947 if (UNTAG_Bool(REGB1)) {
2948 /* syntax/syntax_base.nit:427 */
2949 REGB1 = TAG_Bool(1);
2950 REGB0 = REGB1;
2951 goto label1;
2952 }
2953 /* syntax/syntax_base.nit:429 */
2954 REGB1 = TAG_Int(5);
2955 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
2956 if (!once_value_2) {
2957 fra.me.REG[5] = BOX_NativeString("Type error: expected ");
2958 REGB1 = TAG_Int(21);
2959 fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
2960 once_value_2 = fra.me.REG[5];
2961 register_static_object(&once_value_2);
2962 } else fra.me.REG[5] = once_value_2;
2963 fra.me.REG[5] = fra.me.REG[5];
2964 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
2965 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
2966 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
2967 if (!once_value_3) {
2968 fra.me.REG[3] = BOX_NativeString(", got ");
2969 REGB1 = TAG_Int(6);
2970 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
2971 once_value_3 = fra.me.REG[3];
2972 register_static_object(&once_value_3);
2973 } else fra.me.REG[3] = once_value_3;
2974 fra.me.REG[3] = fra.me.REG[3];
2975 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
2976 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
2977 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
2978 if (!once_value_4) {
2979 fra.me.REG[2] = BOX_NativeString("");
2980 REGB1 = TAG_Int(0);
2981 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
2982 once_value_4 = fra.me.REG[2];
2983 register_static_object(&once_value_4);
2984 } else fra.me.REG[2] = once_value_4;
2985 fra.me.REG[2] = fra.me.REG[2];
2986 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
2987 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
2988 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[4]);
2989 /* syntax/syntax_base.nit:430 */
2990 REGB1 = TAG_Bool(0);
2991 REGB0 = REGB1;
2992 goto label1;
2993 label1: while(0);
2994 stack_frame_head = fra.me.prev;
2995 return REGB0;
2996 }
2997 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___check_expr[] = "syntax_base::AbsSyntaxVisitor::check_expr";
2998 val_t syntax___syntax_base___AbsSyntaxVisitor___check_expr(val_t p0, val_t p1){
2999 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3000 val_t REGB0;
3001 val_t REGB1;
3002 val_t REGB2;
3003 val_t tmp;
3004 static val_t once_value_1; /* Once value */
3005 static val_t once_value_2; /* Once value */
3006 static val_t once_value_4; /* Once value */
3007 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3008 fra.me.file = LOCATE_syntax___syntax_base;
3009 fra.me.line = 433;
3010 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___check_expr;
3011 fra.me.has_broke = 0;
3012 fra.me.REG_size = 4;
3013 fra.me.nitni_local_ref_head = NULL;
3014 fra.me.REG[0] = NIT_NULL;
3015 fra.me.REG[1] = NIT_NULL;
3016 fra.me.REG[2] = NIT_NULL;
3017 fra.me.REG[3] = NIT_NULL;
3018 fra.me.REG[0] = p0;
3019 fra.me.REG[1] = p1;
3020 /* syntax/syntax_base.nit:438 */
3021 REGB0 = CALL_syntax___syntax_base___AExpr___is_typed(fra.me.REG[1])(fra.me.REG[1]);
3022 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3023 if (UNTAG_Bool(REGB0)) {
3024 /* syntax/syntax_base.nit:439 */
3025 fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[0])(fra.me.REG[0]);
3026 REGB0 = CALL_toolcontext___ToolContext___error_count(fra.me.REG[2])(fra.me.REG[2]);
3027 REGB1 = TAG_Int(0);
3028 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
3029 if (UNTAG_Bool(REGB2)) {
3030 } else {
3031 /* ../lib/standard/kernel.nit:230 */
3032 REGB1 = TAG_Bool((REGB0)==(REGB1));
3033 /* syntax/syntax_base.nit:439 */
3034 REGB2 = REGB1;
3035 }
3036 if (UNTAG_Bool(REGB2)) {
3037 /* syntax/syntax_base.nit:440 */
3038 REGB2 = TAG_Int(3);
3039 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
3040 if (!once_value_1) {
3041 fra.me.REG[3] = BOX_NativeString("");
3042 REGB2 = TAG_Int(0);
3043 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
3044 once_value_1 = fra.me.REG[3];
3045 register_static_object(&once_value_1);
3046 } else fra.me.REG[3] = once_value_1;
3047 fra.me.REG[3] = fra.me.REG[3];
3048 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3049 fra.me.REG[3] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[1])(fra.me.REG[1]);
3050 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3051 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3052 if (!once_value_2) {
3053 fra.me.REG[3] = BOX_NativeString(" not typed but not error");
3054 REGB2 = TAG_Int(24);
3055 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
3056 once_value_2 = fra.me.REG[3];
3057 register_static_object(&once_value_2);
3058 } else fra.me.REG[3] = once_value_2;
3059 fra.me.REG[3] = fra.me.REG[3];
3060 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3061 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3062 CALL_standard___file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
3063 /* syntax/syntax_base.nit:441 */
3064 nit_abort("Aborted", NULL, LOCATE_syntax___syntax_base, 441);
3065 }
3066 /* syntax/syntax_base.nit:445 */
3067 REGB2 = TAG_Bool(0);
3068 goto label3;
3069 } else {
3070 /* syntax/syntax_base.nit:446 */
3071 REGB1 = CALL_syntax___syntax_base___AExpr___is_statement(fra.me.REG[1])(fra.me.REG[1]);
3072 if (UNTAG_Bool(REGB1)) {
3073 /* syntax/syntax_base.nit:447 */
3074 if (!once_value_4) {
3075 fra.me.REG[2] = BOX_NativeString("Type error: expected expression.");
3076 REGB1 = TAG_Int(32);
3077 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
3078 once_value_4 = fra.me.REG[2];
3079 register_static_object(&once_value_4);
3080 } else fra.me.REG[2] = once_value_4;
3081 fra.me.REG[2] = fra.me.REG[2];
3082 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
3083 /* syntax/syntax_base.nit:448 */
3084 REGB1 = TAG_Bool(0);
3085 REGB2 = REGB1;
3086 goto label3;
3087 }
3088 }
3089 /* syntax/syntax_base.nit:450 */
3090 REGB1 = TAG_Bool(1);
3091 REGB2 = REGB1;
3092 goto label3;
3093 label3: while(0);
3094 stack_frame_head = fra.me.prev;
3095 return REGB2;
3096 }
3097 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr[] = "syntax_base::AbsSyntaxVisitor::check_conform_expr";
3098 val_t syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr(val_t p0, val_t p1, val_t p2){
3099 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3100 val_t REGB0;
3101 val_t REGB1;
3102 val_t tmp;
3103 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3104 fra.me.file = LOCATE_syntax___syntax_base;
3105 fra.me.line = 453;
3106 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___check_conform_expr;
3107 fra.me.has_broke = 0;
3108 fra.me.REG_size = 4;
3109 fra.me.nitni_local_ref_head = NULL;
3110 fra.me.REG[0] = NIT_NULL;
3111 fra.me.REG[1] = NIT_NULL;
3112 fra.me.REG[2] = NIT_NULL;
3113 fra.me.REG[3] = NIT_NULL;
3114 fra.me.REG[0] = p0;
3115 fra.me.REG[1] = p1;
3116 fra.me.REG[2] = p2;
3117 /* syntax/syntax_base.nit:456 */
3118 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3119 if (UNTAG_Bool(REGB0)) {
3120 } else {
3121 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3122 if (UNTAG_Bool(REGB1)) {
3123 REGB1 = TAG_Bool(0);
3124 REGB0 = REGB1;
3125 } else {
3126 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3127 REGB0 = REGB1;
3128 }
3129 }
3130 if (UNTAG_Bool(REGB0)) {
3131 REGB0 = TAG_Bool(0);
3132 goto label1;
3133 }
3134 /* syntax/syntax_base.nit:457 */
3135 REGB1 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3136 if (UNTAG_Bool(REGB1)) {
3137 fra.me.REG[3] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[1])(fra.me.REG[1]);
3138 REGB1 = CALL_syntax___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]);
3139 REGB0 = REGB1;
3140 goto label1;
3141 } else {
3142 REGB1 = TAG_Bool(0);
3143 REGB0 = REGB1;
3144 goto label1;
3145 }
3146 label1: while(0);
3147 stack_frame_head = fra.me.prev;
3148 return REGB0;
3149 }
3150 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr[] = "syntax_base::AbsSyntaxVisitor::check_conform_multiexpr";
3151 val_t syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(val_t p0, val_t p1, val_t p2){
3152 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
3153 val_t REGB0;
3154 val_t REGB1;
3155 val_t tmp;
3156 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3157 fra.me.file = LOCATE_syntax___syntax_base;
3158 fra.me.line = 460;
3159 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr;
3160 fra.me.has_broke = 0;
3161 fra.me.REG_size = 5;
3162 fra.me.nitni_local_ref_head = NULL;
3163 fra.me.REG[0] = NIT_NULL;
3164 fra.me.REG[1] = NIT_NULL;
3165 fra.me.REG[2] = NIT_NULL;
3166 fra.me.REG[3] = NIT_NULL;
3167 fra.me.REG[4] = NIT_NULL;
3168 fra.me.REG[0] = p0;
3169 fra.me.REG[1] = p1;
3170 fra.me.REG[2] = p2;
3171 /* syntax/syntax_base.nit:472 */
3172 fra.me.REG[3] = NIT_NULL;
3173 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr_1));
3174 switch ((&(fra.me))->has_broke) {
3175 case 0: break;
3176 case 1: (&(fra.me))->has_broke = 0; goto label3;
3177 }
3178 /* syntax/syntax_base.nit:486 */
3179 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3180 if (UNTAG_Bool(REGB0)) {
3181 } else {
3182 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3183 if (UNTAG_Bool(REGB1)) {
3184 REGB1 = TAG_Bool(0);
3185 REGB0 = REGB1;
3186 } else {
3187 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
3188 REGB0 = REGB1;
3189 }
3190 }
3191 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3192 if (UNTAG_Bool(REGB0)) {
3193 } else {
3194 nit_abort("Assert failed", NULL, LOCATE_syntax___syntax_base, 486);
3195 }
3196 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr_4));
3197 switch ((&(fra.me))->has_broke) {
3198 case 0: break;
3199 case 1: (&(fra.me))->has_broke = 0; goto label3;
3200 }
3201 /* syntax/syntax_base.nit:497 */
3202 fra.me.REG[4] = fra.me.REG[1];
3203 goto label3;
3204 label3: while(0);
3205 stack_frame_head = fra.me.prev;
3206 return fra.me.REG[4];
3207 }
3208 void OC_syntax___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){
3209 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3210 val_t REGB0;
3211 val_t REGB1;
3212 val_t REGB2;
3213 fun_t CREG[1];
3214 val_t tmp;
3215 /* syntax/syntax_base.nit:473 */
3216 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3217 fra.me.file = LOCATE_syntax___syntax_base;
3218 fra.me.line = 0;
3219 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr;
3220 fra.me.has_broke = 0;
3221 fra.me.REG_size = 3;
3222 fra.me.nitni_local_ref_head = NULL;
3223 fra.me.REG[0] = NIT_NULL;
3224 fra.me.REG[1] = NIT_NULL;
3225 fra.me.REG[2] = NIT_NULL;
3226 fra.me.closure_ctx = closctx_param;
3227 fra.me.closure_funs = CREG;
3228 fra.me.REG[0] = p0;
3229 CREG[0] = clos_fun0;
3230 /* syntax/syntax_base.nit:474 */
3231 REGB0 = CALL_syntax___syntax_base___AbsSyntaxVisitor___check_expr(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
3232 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3233 if (UNTAG_Bool(REGB0)) {
3234 closctx->REG[4] = NIT_NULL;
3235 closctx->has_broke = 1;
3236 goto label2;
3237 }
3238 /* syntax/syntax_base.nit:475 */
3239 fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
3240 /* syntax/syntax_base.nit:476 */
3241 REGB0 = TAG_Bool(closctx->REG[1]==NIT_NULL);
3242 if (UNTAG_Bool(REGB0)) {
3243 } else {
3244 REGB1 = TAG_Bool(closctx->REG[1]==NIT_NULL);
3245 if (UNTAG_Bool(REGB1)) {
3246 REGB1 = TAG_Bool(0);
3247 REGB0 = REGB1;
3248 } else {
3249 REGB1 = CALL_standard___kernel___Object_____eqeq(closctx->REG[1])(closctx->REG[1], NIT_NULL);
3250 REGB0 = REGB1;
3251 }
3252 }
3253 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3254 if (UNTAG_Bool(REGB0)) {
3255 REGB0 = TAG_Bool(closctx->REG[1]==NIT_NULL);
3256 if (UNTAG_Bool(REGB0)) {
3257 nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 476);
3258 }
3259 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(closctx->REG[1])(closctx->REG[1]);
3260 REGB1 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[1])(fra.me.REG[1]);
3261 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
3262 if (UNTAG_Bool(REGB2)) {
3263 } else {
3264 /* ../lib/standard/kernel.nit:198 */
3265 REGB1 = TAG_Bool((REGB0)==(REGB1));
3266 /* syntax/syntax_base.nit:476 */
3267 REGB2 = REGB1;
3268 }
3269 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
3270 } else {
3271 REGB1 = TAG_Bool(0);
3272 REGB2 = REGB1;
3273 }
3274 if (UNTAG_Bool(REGB2)) {
3275 /* syntax/syntax_base.nit:478 */
3276 REGB2 = TAG_Bool(closctx->REG[1]==NIT_NULL);
3277 if (UNTAG_Bool(REGB2)) {
3278 nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 478);
3279 }
3280 fra.me.REG[2] = CALL_metamodel___static_type___MMType___as_nullable(closctx->REG[1])(closctx->REG[1]);
3281 closctx->REG[1] = fra.me.REG[2];
3282 /* syntax/syntax_base.nit:479 */
3283 fra.me.REG[2] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[1])(fra.me.REG[1]);
3284 fra.me.REG[1] = fra.me.REG[2];
3285 }
3286 /* syntax/syntax_base.nit:481 */
3287 REGB2 = TAG_Bool(closctx->REG[1]==NIT_NULL);
3288 if (UNTAG_Bool(REGB2)) {
3289 } else {
3290 REGB1 = TAG_Bool(closctx->REG[1]==NIT_NULL);
3291 if (UNTAG_Bool(REGB1)) {
3292 REGB1 = TAG_Bool(0);
3293 REGB2 = REGB1;
3294 } else {
3295 REGB1 = CALL_standard___kernel___Object_____eqeq(closctx->REG[1])(closctx->REG[1], NIT_NULL);
3296 REGB2 = REGB1;
3297 }
3298 }
3299 if (UNTAG_Bool(REGB2)) {
3300 REGB2 = TAG_Bool(1);
3301 } else {
3302 REGB1 = TAG_Bool(closctx->REG[1]==NIT_NULL);
3303 if (UNTAG_Bool(REGB1)) {
3304 nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 481);
3305 }
3306 REGB1 = CALL_metamodel___static_type___MMType_____l(closctx->REG[1])(closctx->REG[1], fra.me.REG[1]);
3307 REGB2 = REGB1;
3308 }
3309 if (UNTAG_Bool(REGB2)) {
3310 /* syntax/syntax_base.nit:482 */
3311 closctx->REG[1] = fra.me.REG[1];
3312 /* syntax/syntax_base.nit:483 */
3313 closctx->REG[3] = fra.me.REG[0];
3314 }
3315 label2: while(0);
3316 stack_frame_head = fra.me.prev;
3317 return;
3318 }
3319 void OC_syntax___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){
3320 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3321 val_t REGB0;
3322 val_t REGB1;
3323 fun_t CREG[1];
3324 val_t tmp;
3325 static val_t once_value_5; /* Once value */
3326 static val_t once_value_6; /* Once value */
3327 static val_t once_value_7; /* Once value */
3328 static val_t once_value_8; /* Once value */
3329 static val_t once_value_9; /* Once value */
3330 static val_t once_value_10; /* Once value */
3331 static val_t once_value_11; /* Once value */
3332 /* syntax/syntax_base.nit:487 */
3333 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3334 fra.me.file = LOCATE_syntax___syntax_base;
3335 fra.me.line = 0;
3336 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___check_conform_multiexpr;
3337 fra.me.has_broke = 0;
3338 fra.me.REG_size = 4;
3339 fra.me.nitni_local_ref_head = NULL;
3340 fra.me.REG[0] = NIT_NULL;
3341 fra.me.REG[1] = NIT_NULL;
3342 fra.me.REG[2] = NIT_NULL;
3343 fra.me.REG[3] = NIT_NULL;
3344 fra.me.closure_ctx = closctx_param;
3345 fra.me.closure_funs = CREG;
3346 fra.me.REG[0] = p0;
3347 CREG[0] = clos_fun0;
3348 /* syntax/syntax_base.nit:488 */
3349 fra.me.REG[1] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
3350 REGB0 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[1])(fra.me.REG[1], closctx->REG[1]);
3351 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3352 if (UNTAG_Bool(REGB0)) {
3353 /* syntax/syntax_base.nit:489 */
3354 REGB0 = TAG_Bool(closctx->REG[3]==NIT_NULL);
3355 if (UNTAG_Bool(REGB0)) {
3356 } else {
3357 REGB1 = TAG_Bool(closctx->REG[3]==NIT_NULL);
3358 if (UNTAG_Bool(REGB1)) {
3359 REGB1 = TAG_Bool(0);
3360 REGB0 = REGB1;
3361 } else {
3362 REGB1 = CALL_standard___kernel___Object_____eqeq(closctx->REG[3])(closctx->REG[3], NIT_NULL);
3363 REGB0 = REGB1;
3364 }
3365 }
3366 if (UNTAG_Bool(REGB0)) {
3367 /* syntax/syntax_base.nit:490 */
3368 REGB0 = TAG_Int(5);
3369 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3370 if (!once_value_5) {
3371 fra.me.REG[2] = BOX_NativeString("Type error: no most general type. Got ");
3372 REGB0 = TAG_Int(38);
3373 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
3374 once_value_5 = fra.me.REG[2];
3375 register_static_object(&once_value_5);
3376 } else fra.me.REG[2] = once_value_5;
3377 fra.me.REG[2] = fra.me.REG[2];
3378 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3379 fra.me.REG[2] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
3380 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3381 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3382 if (!once_value_6) {
3383 fra.me.REG[2] = BOX_NativeString(" and ");
3384 REGB0 = TAG_Int(5);
3385 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
3386 once_value_6 = fra.me.REG[2];
3387 register_static_object(&once_value_6);
3388 } else fra.me.REG[2] = once_value_6;
3389 fra.me.REG[2] = fra.me.REG[2];
3390 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3391 fra.me.REG[2] = CALL_standard___string___Object___to_s(closctx->REG[1])(closctx->REG[1]);
3392 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3393 if (!once_value_7) {
3394 fra.me.REG[2] = BOX_NativeString(".");
3395 REGB0 = TAG_Int(1);
3396 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
3397 once_value_7 = fra.me.REG[2];
3398 register_static_object(&once_value_7);
3399 } else fra.me.REG[2] = once_value_7;
3400 fra.me.REG[2] = fra.me.REG[2];
3401 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3402 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
3403 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(closctx->REG[0])(closctx->REG[0], fra.me.REG[0], fra.me.REG[1]);
3404 } else {
3405 /* syntax/syntax_base.nit:492 */
3406 REGB0 = TAG_Int(7);
3407 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3408 if (!once_value_8) {
3409 fra.me.REG[2] = BOX_NativeString("Type error: no most general type. Got ");
3410 REGB0 = TAG_Int(38);
3411 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
3412 once_value_8 = fra.me.REG[2];
3413 register_static_object(&once_value_8);
3414 } else fra.me.REG[2] = once_value_8;
3415 fra.me.REG[2] = fra.me.REG[2];
3416 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3417 fra.me.REG[2] = CALL_syntax___syntax_base___AExpr___stype(fra.me.REG[0])(fra.me.REG[0]);
3418 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3419 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3420 if (!once_value_9) {
3421 fra.me.REG[2] = BOX_NativeString(" and ");
3422 REGB0 = TAG_Int(5);
3423 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
3424 once_value_9 = fra.me.REG[2];
3425 register_static_object(&once_value_9);
3426 } else fra.me.REG[2] = once_value_9;
3427 fra.me.REG[2] = fra.me.REG[2];
3428 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3429 fra.me.REG[2] = CALL_standard___string___Object___to_s(closctx->REG[1])(closctx->REG[1]);
3430 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3431 if (!once_value_10) {
3432 fra.me.REG[2] = BOX_NativeString(" at ");
3433 REGB0 = TAG_Int(4);
3434 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
3435 once_value_10 = fra.me.REG[2];
3436 register_static_object(&once_value_10);
3437 } else fra.me.REG[2] = once_value_10;
3438 fra.me.REG[2] = fra.me.REG[2];
3439 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3440 REGB0 = TAG_Bool(closctx->REG[3]==NIT_NULL);
3441 if (UNTAG_Bool(REGB0)) {
3442 nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 492);
3443 }
3444 fra.me.REG[2] = CALL_parser___parser_nodes___ANode___location(closctx->REG[3])(closctx->REG[3]);
3445 fra.me.REG[3] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[0])(fra.me.REG[0]);
3446 fra.me.REG[3] = CALL_location___Location___relative_to(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3447 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3448 if (!once_value_11) {
3449 fra.me.REG[3] = BOX_NativeString(".");
3450 REGB0 = TAG_Int(1);
3451 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
3452 once_value_11 = fra.me.REG[3];
3453 register_static_object(&once_value_11);
3454 } else fra.me.REG[3] = once_value_11;
3455 fra.me.REG[3] = fra.me.REG[3];
3456 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3457 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
3458 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(closctx->REG[0])(closctx->REG[0], fra.me.REG[0], fra.me.REG[1]);
3459 }
3460 /* syntax/syntax_base.nit:494 */
3461 closctx->REG[4] = NIT_NULL;
3462 closctx->has_broke = 1;
3463 goto label12;
3464 }
3465 label12: while(0);
3466 stack_frame_head = fra.me.prev;
3467 return;
3468 }
3469 static const char LOCATE_syntax___syntax_base___AbsSyntaxVisitor___init[] = "syntax_base::AbsSyntaxVisitor::init";
3470 void syntax___syntax_base___AbsSyntaxVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
3471 int itpos14 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___syntax_base___AbsSyntaxVisitor].i;
3472 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3473 val_t tmp;
3474 if (init_table[itpos14]) return;
3475 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3476 fra.me.file = LOCATE_syntax___syntax_base;
3477 fra.me.line = 500;
3478 fra.me.meth = LOCATE_syntax___syntax_base___AbsSyntaxVisitor___init;
3479 fra.me.has_broke = 0;
3480 fra.me.REG_size = 4;
3481 fra.me.nitni_local_ref_head = NULL;
3482 fra.me.REG[0] = NIT_NULL;
3483 fra.me.REG[1] = NIT_NULL;
3484 fra.me.REG[2] = NIT_NULL;
3485 fra.me.REG[3] = NIT_NULL;
3486 fra.me.REG[0] = p0;
3487 fra.me.REG[1] = p1;
3488 fra.me.REG[2] = p2;
3489 /* syntax/syntax_base.nit:500 */
3490 fra.me.REG[3] = fra.me.REG[0];
3491 CALL_parser___parser_prod___Visitor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
3492 /* syntax/syntax_base.nit:502 */
3493 ATTR_syntax___syntax_base___AbsSyntaxVisitor____tc(fra.me.REG[3]) = fra.me.REG[1];
3494 /* syntax/syntax_base.nit:503 */
3495 ATTR_syntax___syntax_base___AbsSyntaxVisitor____mmmodule(fra.me.REG[3]) = fra.me.REG[2];
3496 stack_frame_head = fra.me.prev;
3497 init_table[itpos14] = 1;
3498 return;
3499 }
3500 static const char LOCATE_syntax___syntax_base___ANode___accept_abs_syntax_visitor[] = "syntax_base::ANode::accept_abs_syntax_visitor";
3501 void syntax___syntax_base___ANode___accept_abs_syntax_visitor(val_t p0, val_t p1){
3502 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3503 val_t tmp;
3504 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3505 fra.me.file = LOCATE_syntax___syntax_base;
3506 fra.me.line = 510;
3507 fra.me.meth = LOCATE_syntax___syntax_base___ANode___accept_abs_syntax_visitor;
3508 fra.me.has_broke = 0;
3509 fra.me.REG_size = 2;
3510 fra.me.nitni_local_ref_head = NULL;
3511 fra.me.REG[0] = NIT_NULL;
3512 fra.me.REG[1] = NIT_NULL;
3513 fra.me.REG[0] = p0;
3514 fra.me.REG[1] = p1;
3515 /* syntax/syntax_base.nit:510 */
3516 CALL_parser___parser_prod___ANode___visit_all(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3517 stack_frame_head = fra.me.prev;
3518 return;
3519 }
3520 static const char LOCATE_syntax___syntax_base___Token___to_symbol[] = "syntax_base::Token::to_symbol";
3521 val_t syntax___syntax_base___Token___to_symbol(val_t p0){
3522 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3523 val_t REGB0;
3524 val_t REGB1;
3525 val_t tmp;
3526 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3527 fra.me.file = LOCATE_syntax___syntax_base;
3528 fra.me.line = 516;
3529 fra.me.meth = LOCATE_syntax___syntax_base___Token___to_symbol;
3530 fra.me.has_broke = 0;
3531 fra.me.REG_size = 3;
3532 fra.me.nitni_local_ref_head = NULL;
3533 fra.me.REG[0] = NIT_NULL;
3534 fra.me.REG[1] = NIT_NULL;
3535 fra.me.REG[2] = NIT_NULL;
3536 fra.me.REG[0] = p0;
3537 /* syntax/syntax_base.nit:520 */
3538 fra.me.REG[1] = ATTR_syntax___syntax_base___Token____symbol_cache(fra.me.REG[0]);
3539 /* syntax/syntax_base.nit:521 */
3540 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3541 if (UNTAG_Bool(REGB0)) {
3542 } else {
3543 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3544 if (UNTAG_Bool(REGB1)) {
3545 REGB1 = TAG_Bool(0);
3546 REGB0 = REGB1;
3547 } else {
3548 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
3549 REGB0 = REGB1;
3550 }
3551 }
3552 if (UNTAG_Bool(REGB0)) {
3553 /* syntax/syntax_base.nit:522 */
3554 fra.me.REG[2] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
3555 fra.me.REG[2] = CALL_symbol___String___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
3556 fra.me.REG[1] = fra.me.REG[2];
3557 /* syntax/syntax_base.nit:523 */
3558 ATTR_syntax___syntax_base___Token____symbol_cache(fra.me.REG[0]) = fra.me.REG[1];
3559 }
3560 /* syntax/syntax_base.nit:525 */
3561 goto label1;
3562 label1: while(0);
3563 stack_frame_head = fra.me.prev;
3564 return fra.me.REG[1];
3565 }
3566 static const char LOCATE_syntax___syntax_base___AClassdef___local_class[] = "syntax_base::AClassdef::local_class";
3567 val_t syntax___syntax_base___AClassdef___local_class(val_t p0){
3568 struct {struct stack_frame_t me;} fra;
3569 val_t tmp;
3570 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3571 fra.me.file = LOCATE_syntax___syntax_base;
3572 fra.me.line = 530;
3573 fra.me.meth = LOCATE_syntax___syntax_base___AClassdef___local_class;
3574 fra.me.has_broke = 0;
3575 fra.me.REG_size = 0;
3576 fra.me.nitni_local_ref_head = NULL;
3577 /* syntax/syntax_base.nit:530 */
3578 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 530);
3579 stack_frame_head = fra.me.prev;
3580 return NIT_NULL;
3581 }
3582 static const char LOCATE_syntax___syntax_base___AClassdef___next_node[] = "syntax_base::AClassdef::next_node";
3583 val_t syntax___syntax_base___AClassdef___next_node(val_t p0){
3584 struct {struct stack_frame_t me;} fra;
3585 val_t tmp;
3586 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3587 fra.me.file = LOCATE_syntax___syntax_base;
3588 fra.me.line = 533;
3589 fra.me.meth = LOCATE_syntax___syntax_base___AClassdef___next_node;
3590 fra.me.has_broke = 0;
3591 fra.me.REG_size = 1;
3592 fra.me.nitni_local_ref_head = NULL;
3593 fra.me.REG[0] = NIT_NULL;
3594 fra.me.REG[0] = p0;
3595 /* syntax/syntax_base.nit:533 */
3596 fra.me.REG[0] = ATTR_syntax___syntax_base___AClassdef____next_node(fra.me.REG[0]);
3597 stack_frame_head = fra.me.prev;
3598 return fra.me.REG[0];
3599 }
3600 static const char LOCATE_syntax___syntax_base___AClassdef___next_node__eq[] = "syntax_base::AClassdef::next_node=";
3601 void syntax___syntax_base___AClassdef___next_node__eq(val_t p0, val_t p1){
3602 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3603 val_t tmp;
3604 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3605 fra.me.file = LOCATE_syntax___syntax_base;
3606 fra.me.line = 533;
3607 fra.me.meth = LOCATE_syntax___syntax_base___AClassdef___next_node__eq;
3608 fra.me.has_broke = 0;
3609 fra.me.REG_size = 2;
3610 fra.me.nitni_local_ref_head = NULL;
3611 fra.me.REG[0] = NIT_NULL;
3612 fra.me.REG[1] = NIT_NULL;
3613 fra.me.REG[0] = p0;
3614 fra.me.REG[1] = p1;
3615 /* syntax/syntax_base.nit:533 */
3616 ATTR_syntax___syntax_base___AClassdef____next_node(fra.me.REG[0]) = fra.me.REG[1];
3617 stack_frame_head = fra.me.prev;
3618 return;
3619 }
3620 static const char LOCATE_syntax___syntax_base___APropdef___self_var[] = "syntax_base::APropdef::self_var";
3621 val_t syntax___syntax_base___APropdef___self_var(val_t p0){
3622 struct {struct stack_frame_t me;} fra;
3623 val_t tmp;
3624 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3625 fra.me.file = LOCATE_syntax___syntax_base;
3626 fra.me.line = 538;
3627 fra.me.meth = LOCATE_syntax___syntax_base___APropdef___self_var;
3628 fra.me.has_broke = 0;
3629 fra.me.REG_size = 0;
3630 fra.me.nitni_local_ref_head = NULL;
3631 /* syntax/syntax_base.nit:538 */
3632 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 538);
3633 stack_frame_head = fra.me.prev;
3634 return NIT_NULL;
3635 }
3636 static const char LOCATE_syntax___syntax_base___AAttrPropdef___prop[] = "syntax_base::AAttrPropdef::prop";
3637 val_t syntax___syntax_base___AAttrPropdef___prop(val_t p0){
3638 struct {struct stack_frame_t me;} fra;
3639 val_t tmp;
3640 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3641 fra.me.file = LOCATE_syntax___syntax_base;
3642 fra.me.line = 543;
3643 fra.me.meth = LOCATE_syntax___syntax_base___AAttrPropdef___prop;
3644 fra.me.has_broke = 0;
3645 fra.me.REG_size = 0;
3646 fra.me.nitni_local_ref_head = NULL;
3647 /* syntax/syntax_base.nit:543 */
3648 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 543);
3649 stack_frame_head = fra.me.prev;
3650 return NIT_NULL;
3651 }
3652 static const char LOCATE_syntax___syntax_base___AAttrPropdef___readmethod[] = "syntax_base::AAttrPropdef::readmethod";
3653 val_t syntax___syntax_base___AAttrPropdef___readmethod(val_t p0){
3654 struct {struct stack_frame_t me;} fra;
3655 val_t tmp;
3656 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3657 fra.me.file = LOCATE_syntax___syntax_base;
3658 fra.me.line = 546;
3659 fra.me.meth = LOCATE_syntax___syntax_base___AAttrPropdef___readmethod;
3660 fra.me.has_broke = 0;
3661 fra.me.REG_size = 0;
3662 fra.me.nitni_local_ref_head = NULL;
3663 /* syntax/syntax_base.nit:546 */
3664 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 546);
3665 stack_frame_head = fra.me.prev;
3666 return NIT_NULL;
3667 }
3668 static const char LOCATE_syntax___syntax_base___AAttrPropdef___writemethod[] = "syntax_base::AAttrPropdef::writemethod";
3669 val_t syntax___syntax_base___AAttrPropdef___writemethod(val_t p0){
3670 struct {struct stack_frame_t me;} fra;
3671 val_t tmp;
3672 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3673 fra.me.file = LOCATE_syntax___syntax_base;
3674 fra.me.line = 549;
3675 fra.me.meth = LOCATE_syntax___syntax_base___AAttrPropdef___writemethod;
3676 fra.me.has_broke = 0;
3677 fra.me.REG_size = 0;
3678 fra.me.nitni_local_ref_head = NULL;
3679 /* syntax/syntax_base.nit:549 */
3680 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 549);
3681 stack_frame_head = fra.me.prev;
3682 return NIT_NULL;
3683 }
3684 static const char LOCATE_syntax___syntax_base___AConcreteInitPropdef___super_init_calls[] = "syntax_base::AConcreteInitPropdef::super_init_calls";
3685 val_t syntax___syntax_base___AConcreteInitPropdef___super_init_calls(val_t p0){
3686 struct {struct stack_frame_t me;} fra;
3687 val_t REGB0;
3688 val_t tmp;
3689 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3690 fra.me.file = LOCATE_syntax___syntax_base;
3691 fra.me.line = 554;
3692 fra.me.meth = LOCATE_syntax___syntax_base___AConcreteInitPropdef___super_init_calls;
3693 fra.me.has_broke = 0;
3694 fra.me.REG_size = 1;
3695 fra.me.nitni_local_ref_head = NULL;
3696 fra.me.REG[0] = NIT_NULL;
3697 fra.me.REG[0] = p0;
3698 /* syntax/syntax_base.nit:554 */
3699 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AConcreteInitPropdef____super_init_calls(fra.me.REG[0])!=NIT_NULL);
3700 if (UNTAG_Bool(REGB0)) {
3701 } else {
3702 nit_abort("Uninitialized attribute %s", "_super_init_calls", LOCATE_syntax___syntax_base, 554);
3703 }
3704 fra.me.REG[0] = ATTR_syntax___syntax_base___AConcreteInitPropdef____super_init_calls(fra.me.REG[0]);
3705 stack_frame_head = fra.me.prev;
3706 return fra.me.REG[0];
3707 }
3708 static const char LOCATE_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls[] = "syntax_base::AConcreteInitPropdef::explicit_super_init_calls";
3709 val_t syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls(val_t p0){
3710 struct {struct stack_frame_t me;} fra;
3711 val_t REGB0;
3712 val_t tmp;
3713 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3714 fra.me.file = LOCATE_syntax___syntax_base;
3715 fra.me.line = 555;
3716 fra.me.meth = LOCATE_syntax___syntax_base___AConcreteInitPropdef___explicit_super_init_calls;
3717 fra.me.has_broke = 0;
3718 fra.me.REG_size = 1;
3719 fra.me.nitni_local_ref_head = NULL;
3720 fra.me.REG[0] = NIT_NULL;
3721 fra.me.REG[0] = p0;
3722 /* syntax/syntax_base.nit:555 */
3723 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AConcreteInitPropdef____explicit_super_init_calls(fra.me.REG[0])!=NIT_NULL);
3724 if (UNTAG_Bool(REGB0)) {
3725 } else {
3726 nit_abort("Uninitialized attribute %s", "_explicit_super_init_calls", LOCATE_syntax___syntax_base, 555);
3727 }
3728 fra.me.REG[0] = ATTR_syntax___syntax_base___AConcreteInitPropdef____explicit_super_init_calls(fra.me.REG[0]);
3729 stack_frame_head = fra.me.prev;
3730 return fra.me.REG[0];
3731 }
3732 static const char LOCATE_syntax___syntax_base___AMethPropdef___method[] = "syntax_base::AMethPropdef::method";
3733 val_t syntax___syntax_base___AMethPropdef___method(val_t p0){
3734 struct {struct stack_frame_t me;} fra;
3735 val_t tmp;
3736 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3737 fra.me.file = LOCATE_syntax___syntax_base;
3738 fra.me.line = 559;
3739 fra.me.meth = LOCATE_syntax___syntax_base___AMethPropdef___method;
3740 fra.me.has_broke = 0;
3741 fra.me.REG_size = 0;
3742 fra.me.nitni_local_ref_head = NULL;
3743 /* syntax/syntax_base.nit:559 */
3744 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 559);
3745 stack_frame_head = fra.me.prev;
3746 return NIT_NULL;
3747 }
3748 static const char LOCATE_syntax___syntax_base___ATypePropdef___prop[] = "syntax_base::ATypePropdef::prop";
3749 val_t syntax___syntax_base___ATypePropdef___prop(val_t p0){
3750 struct {struct stack_frame_t me;} fra;
3751 val_t tmp;
3752 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3753 fra.me.file = LOCATE_syntax___syntax_base;
3754 fra.me.line = 564;
3755 fra.me.meth = LOCATE_syntax___syntax_base___ATypePropdef___prop;
3756 fra.me.has_broke = 0;
3757 fra.me.REG_size = 0;
3758 fra.me.nitni_local_ref_head = NULL;
3759 /* syntax/syntax_base.nit:564 */
3760 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 564);
3761 stack_frame_head = fra.me.prev;
3762 return NIT_NULL;
3763 }
3764 static const char LOCATE_syntax___syntax_base___AParam___position[] = "syntax_base::AParam::position";
3765 val_t syntax___syntax_base___AParam___position(val_t p0){
3766 struct {struct stack_frame_t me;} fra;
3767 val_t tmp;
3768 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3769 fra.me.file = LOCATE_syntax___syntax_base;
3770 fra.me.line = 569;
3771 fra.me.meth = LOCATE_syntax___syntax_base___AParam___position;
3772 fra.me.has_broke = 0;
3773 fra.me.REG_size = 0;
3774 fra.me.nitni_local_ref_head = NULL;
3775 /* syntax/syntax_base.nit:569 */
3776 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 569);
3777 stack_frame_head = fra.me.prev;
3778 return NIT_NULL;
3779 }
3780 static const char LOCATE_syntax___syntax_base___AParam___variable[] = "syntax_base::AParam::variable";
3781 val_t syntax___syntax_base___AParam___variable(val_t p0){
3782 struct {struct stack_frame_t me;} fra;
3783 val_t tmp;
3784 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3785 fra.me.file = LOCATE_syntax___syntax_base;
3786 fra.me.line = 572;
3787 fra.me.meth = LOCATE_syntax___syntax_base___AParam___variable;
3788 fra.me.has_broke = 0;
3789 fra.me.REG_size = 0;
3790 fra.me.nitni_local_ref_head = NULL;
3791 /* syntax/syntax_base.nit:572 */
3792 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 572);
3793 stack_frame_head = fra.me.prev;
3794 return NIT_NULL;
3795 }
3796 static const char LOCATE_syntax___syntax_base___AClosureDecl___position[] = "syntax_base::AClosureDecl::position";
3797 val_t syntax___syntax_base___AClosureDecl___position(val_t p0){
3798 struct {struct stack_frame_t me;} fra;
3799 val_t tmp;
3800 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3801 fra.me.file = LOCATE_syntax___syntax_base;
3802 fra.me.line = 577;
3803 fra.me.meth = LOCATE_syntax___syntax_base___AClosureDecl___position;
3804 fra.me.has_broke = 0;
3805 fra.me.REG_size = 0;
3806 fra.me.nitni_local_ref_head = NULL;
3807 /* syntax/syntax_base.nit:577 */
3808 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 577);
3809 stack_frame_head = fra.me.prev;
3810 return NIT_NULL;
3811 }
3812 static const char LOCATE_syntax___syntax_base___AClosureDecl___variable[] = "syntax_base::AClosureDecl::variable";
3813 val_t syntax___syntax_base___AClosureDecl___variable(val_t p0){
3814 struct {struct stack_frame_t me;} fra;
3815 val_t tmp;
3816 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3817 fra.me.file = LOCATE_syntax___syntax_base;
3818 fra.me.line = 580;
3819 fra.me.meth = LOCATE_syntax___syntax_base___AClosureDecl___variable;
3820 fra.me.has_broke = 0;
3821 fra.me.REG_size = 0;
3822 fra.me.nitni_local_ref_head = NULL;
3823 /* syntax/syntax_base.nit:580 */
3824 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 580);
3825 stack_frame_head = fra.me.prev;
3826 return NIT_NULL;
3827 }
3828 static const char LOCATE_syntax___syntax_base___AType___is_typed[] = "syntax_base::AType::is_typed";
3829 val_t syntax___syntax_base___AType___is_typed(val_t p0){
3830 struct {struct stack_frame_t me;} fra;
3831 val_t tmp;
3832 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3833 fra.me.file = LOCATE_syntax___syntax_base;
3834 fra.me.line = 585;
3835 fra.me.meth = LOCATE_syntax___syntax_base___AType___is_typed;
3836 fra.me.has_broke = 0;
3837 fra.me.REG_size = 0;
3838 fra.me.nitni_local_ref_head = NULL;
3839 /* syntax/syntax_base.nit:585 */
3840 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 585);
3841 stack_frame_head = fra.me.prev;
3842 return NIT_NULL;
3843 }
3844 static const char LOCATE_syntax___syntax_base___AType___stype[] = "syntax_base::AType::stype";
3845 val_t syntax___syntax_base___AType___stype(val_t p0){
3846 struct {struct stack_frame_t me;} fra;
3847 val_t tmp;
3848 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3849 fra.me.file = LOCATE_syntax___syntax_base;
3850 fra.me.line = 590;
3851 fra.me.meth = LOCATE_syntax___syntax_base___AType___stype;
3852 fra.me.has_broke = 0;
3853 fra.me.REG_size = 0;
3854 fra.me.nitni_local_ref_head = NULL;
3855 /* syntax/syntax_base.nit:590 */
3856 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 590);
3857 stack_frame_head = fra.me.prev;
3858 return NIT_NULL;
3859 }
3860 static const char LOCATE_syntax___syntax_base___AType___get_local_class[] = "syntax_base::AType::get_local_class";
3861 val_t syntax___syntax_base___AType___get_local_class(val_t p0, val_t p1){
3862 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
3863 val_t REGB0;
3864 val_t REGB1;
3865 val_t tmp;
3866 static val_t once_value_1; /* Once value */
3867 static val_t once_value_2; /* Once value */
3868 static val_t once_value_4; /* Once value */
3869 static val_t once_value_5; /* Once value */
3870 static val_t once_value_6; /* Once value */
3871 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3872 fra.me.file = LOCATE_syntax___syntax_base;
3873 fra.me.line = 596;
3874 fra.me.meth = LOCATE_syntax___syntax_base___AType___get_local_class;
3875 fra.me.has_broke = 0;
3876 fra.me.REG_size = 8;
3877 fra.me.nitni_local_ref_head = NULL;
3878 fra.me.REG[0] = NIT_NULL;
3879 fra.me.REG[1] = NIT_NULL;
3880 fra.me.REG[2] = NIT_NULL;
3881 fra.me.REG[3] = NIT_NULL;
3882 fra.me.REG[4] = NIT_NULL;
3883 fra.me.REG[5] = NIT_NULL;
3884 fra.me.REG[6] = NIT_NULL;
3885 fra.me.REG[7] = NIT_NULL;
3886 fra.me.REG[0] = p0;
3887 fra.me.REG[1] = p1;
3888 /* syntax/syntax_base.nit:601 */
3889 fra.me.REG[2] = CALL_parser___parser_nodes___AType___n_id(fra.me.REG[0])(fra.me.REG[0]);
3890 fra.me.REG[2] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
3891 /* syntax/syntax_base.nit:602 */
3892 fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
3893 /* syntax/syntax_base.nit:603 */
3894 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
3895 /* syntax/syntax_base.nit:605 */
3896 fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcLocalClass___formal_dict(fra.me.REG[4])(fra.me.REG[4]);
3897 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
3898 if (UNTAG_Bool(REGB0)) {
3899 REGB0 = TAG_Bool(1);
3900 } else {
3901 REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
3902 REGB0 = REGB1;
3903 }
3904 if (UNTAG_Bool(REGB0)) {
3905 /* syntax/syntax_base.nit:606 */
3906 fra.me.REG[4] = CALL_parser___parser_nodes___AType___n_id(fra.me.REG[0])(fra.me.REG[0]);
3907 REGB0 = TAG_Int(3);
3908 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3909 if (!once_value_1) {
3910 fra.me.REG[6] = BOX_NativeString("Type error: ");
3911 REGB0 = TAG_Int(12);
3912 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
3913 once_value_1 = fra.me.REG[6];
3914 register_static_object(&once_value_1);
3915 } else fra.me.REG[6] = once_value_1;
3916 fra.me.REG[6] = fra.me.REG[6];
3917 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
3918 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3919 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
3920 if (!once_value_2) {
3921 fra.me.REG[6] = BOX_NativeString(" is a formal type");
3922 REGB0 = TAG_Int(17);
3923 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
3924 once_value_2 = fra.me.REG[6];
3925 register_static_object(&once_value_2);
3926 } else fra.me.REG[6] = once_value_2;
3927 fra.me.REG[6] = fra.me.REG[6];
3928 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
3929 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
3930 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[5]);
3931 /* syntax/syntax_base.nit:607 */
3932 REGB0 = TAG_Bool(1);
3933 ATTR_syntax___syntax_base___AType____stype_cached(fra.me.REG[0]) = REGB0;
3934 /* syntax/syntax_base.nit:608 */
3935 fra.me.REG[5] = NIT_NULL;
3936 goto label3;
3937 }
3938 /* syntax/syntax_base.nit:611 */
3939 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
3940 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3941 if (UNTAG_Bool(REGB0)) {
3942 /* syntax/syntax_base.nit:612 */
3943 fra.me.REG[4] = CALL_parser___parser_nodes___AType___n_id(fra.me.REG[0])(fra.me.REG[0]);
3944 REGB0 = TAG_Int(5);
3945 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
3946 if (!once_value_4) {
3947 fra.me.REG[7] = BOX_NativeString("Type error: class ");
3948 REGB0 = TAG_Int(18);
3949 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
3950 once_value_4 = fra.me.REG[7];
3951 register_static_object(&once_value_4);
3952 } else fra.me.REG[7] = once_value_4;
3953 fra.me.REG[7] = fra.me.REG[7];
3954 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
3955 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
3956 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
3957 if (!once_value_5) {
3958 fra.me.REG[7] = BOX_NativeString(" not found in module ");
3959 REGB0 = TAG_Int(21);
3960 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
3961 once_value_5 = fra.me.REG[7];
3962 register_static_object(&once_value_5);
3963 } else fra.me.REG[7] = once_value_5;
3964 fra.me.REG[7] = fra.me.REG[7];
3965 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
3966 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
3967 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
3968 if (!once_value_6) {
3969 fra.me.REG[7] = BOX_NativeString(".");
3970 REGB0 = TAG_Int(1);
3971 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
3972 once_value_6 = fra.me.REG[7];
3973 register_static_object(&once_value_6);
3974 } else fra.me.REG[7] = once_value_6;
3975 fra.me.REG[7] = fra.me.REG[7];
3976 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
3977 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
3978 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[6]);
3979 /* syntax/syntax_base.nit:613 */
3980 REGB0 = TAG_Bool(1);
3981 ATTR_syntax___syntax_base___AType____stype_cached(fra.me.REG[0]) = REGB0;
3982 /* syntax/syntax_base.nit:614 */
3983 fra.me.REG[5] = NIT_NULL;
3984 goto label3;
3985 }
3986 /* syntax/syntax_base.nit:617 */
3987 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
3988 /* syntax/syntax_base.nit:618 */
3989 fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
3990 CALL_syntax___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]);
3991 /* syntax/syntax_base.nit:619 */
3992 fra.me.REG[5] = fra.me.REG[2];
3993 goto label3;
3994 label3: while(0);
3995 stack_frame_head = fra.me.prev;
3996 return fra.me.REG[5];
3997 }
3998 static const char LOCATE_syntax___syntax_base___AType___get_unchecked_stype[] = "syntax_base::AType::get_unchecked_stype";
3999 val_t syntax___syntax_base___AType___get_unchecked_stype(val_t p0, val_t p1){
4000 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
4001 val_t REGB0;
4002 val_t REGB1;
4003 val_t REGB2;
4004 val_t REGB3;
4005 val_t tmp;
4006 static val_t once_value_2; /* Once value */
4007 static val_t once_value_3; /* Once value */
4008 static val_t once_value_4; /* Once value */
4009 static val_t once_value_5; /* Once value */
4010 static val_t once_value_6; /* Once value */
4011 static val_t once_value_7; /* Once value */
4012 static val_t once_value_8; /* Once value */
4013 static val_t once_value_9; /* Once value */
4014 static val_t once_value_10; /* Once value */
4015 static val_t once_value_11; /* Once value */
4016 static val_t once_value_12; /* Once value */
4017 static val_t once_value_13; /* Once value */
4018 static val_t once_value_14; /* Once value */
4019 static val_t once_value_15; /* Once value */
4020 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4021 fra.me.file = LOCATE_syntax___syntax_base;
4022 fra.me.line = 622;
4023 fra.me.meth = LOCATE_syntax___syntax_base___AType___get_unchecked_stype;
4024 fra.me.has_broke = 0;
4025 fra.me.REG_size = 8;
4026 fra.me.nitni_local_ref_head = NULL;
4027 fra.me.REG[0] = NIT_NULL;
4028 fra.me.REG[1] = NIT_NULL;
4029 fra.me.REG[2] = NIT_NULL;
4030 fra.me.REG[3] = NIT_NULL;
4031 fra.me.REG[4] = NIT_NULL;
4032 fra.me.REG[5] = NIT_NULL;
4033 fra.me.REG[6] = NIT_NULL;
4034 fra.me.REG[7] = NIT_NULL;
4035 fra.me.REG[0] = p0;
4036 fra.me.REG[1] = p1;
4037 /* syntax/syntax_base.nit:628 */
4038 REGB0 = TAG_Bool(ATTR_syntax___syntax_base___AType____stype_cached(fra.me.REG[0])!=NIT_NULL);
4039 if (UNTAG_Bool(REGB0)) {
4040 } else {
4041 nit_abort("Uninitialized attribute %s", "_stype_cached", LOCATE_syntax___syntax_base, 628);
4042 }
4043 REGB0 = ATTR_syntax___syntax_base___AType____stype_cached(fra.me.REG[0]);
4044 if (UNTAG_Bool(REGB0)) {
4045 fra.me.REG[2] = ATTR_syntax___syntax_base___AType____stype_cache(fra.me.REG[0]);
4046 goto label1;
4047 }
4048 /* syntax/syntax_base.nit:629 */
4049 REGB0 = TAG_Bool(1);
4050 ATTR_syntax___syntax_base___AType____stype_cached(fra.me.REG[0]) = REGB0;
4051 /* syntax/syntax_base.nit:631 */
4052 fra.me.REG[3] = CALL_parser___parser_nodes___AType___n_id(fra.me.REG[0])(fra.me.REG[0]);
4053 fra.me.REG[3] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
4054 /* syntax/syntax_base.nit:632 */
4055 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
4056 /* syntax/syntax_base.nit:633 */
4057 fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
4058 /* syntax/syntax_base.nit:636 */
4059 fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcLocalClass___formal_dict(fra.me.REG[4])(fra.me.REG[4]);
4060 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
4061 if (UNTAG_Bool(REGB0)) {
4062 /* syntax/syntax_base.nit:637 */
4063 fra.me.REG[5] = CALL_parser___parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
4064 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[5])(fra.me.REG[5]);
4065 REGB1 = TAG_Int(0);
4066 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
4067 if (UNTAG_Bool(REGB2)) {
4068 } else {
4069 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4070 }
4071 /* ../lib/standard/kernel.nit:237 */
4072 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
4073 /* syntax/syntax_base.nit:637 */
4074 if (UNTAG_Bool(REGB1)) {
4075 /* syntax/syntax_base.nit:638 */
4076 REGB1 = TAG_Int(3);
4077 fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4078 if (!once_value_2) {
4079 fra.me.REG[6] = BOX_NativeString("Type error: formal type ");
4080 REGB1 = TAG_Int(24);
4081 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
4082 once_value_2 = fra.me.REG[6];
4083 register_static_object(&once_value_2);
4084 } else fra.me.REG[6] = once_value_2;
4085 fra.me.REG[6] = fra.me.REG[6];
4086 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4087 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
4088 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4089 if (!once_value_3) {
4090 fra.me.REG[6] = BOX_NativeString(" cannot have formal parameters.");
4091 REGB1 = TAG_Int(31);
4092 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
4093 once_value_3 = fra.me.REG[6];
4094 register_static_object(&once_value_3);
4095 } else fra.me.REG[6] = once_value_3;
4096 fra.me.REG[6] = fra.me.REG[6];
4097 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
4098 fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
4099 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
4100 /* syntax/syntax_base.nit:639 */
4101 fra.me.REG[2] = NIT_NULL;
4102 goto label1;
4103 }
4104 /* syntax/syntax_base.nit:641 */
4105 fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcLocalClass___formal_dict(fra.me.REG[4])(fra.me.REG[4]);
4106 fra.me.REG[5] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
4107 /* syntax/syntax_base.nit:642 */
4108 fra.me.REG[6] = CALL_parser___parser_nodes___AType___n_kwnullable(fra.me.REG[0])(fra.me.REG[0]);
4109 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
4110 if (UNTAG_Bool(REGB1)) {
4111 } else {
4112 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
4113 if (UNTAG_Bool(REGB0)) {
4114 REGB0 = TAG_Bool(0);
4115 REGB1 = REGB0;
4116 } else {
4117 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
4118 REGB1 = REGB0;
4119 }
4120 }
4121 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
4122 if (UNTAG_Bool(REGB1)) {
4123 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4124 if (UNTAG_Bool(REGB1)) {
4125 nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 642);
4126 }
4127 fra.me.REG[6] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[5])(fra.me.REG[5]);
4128 fra.me.REG[5] = fra.me.REG[6];
4129 }
4130 /* syntax/syntax_base.nit:643 */
4131 ATTR_syntax___syntax_base___AType____stype_cache(fra.me.REG[0]) = fra.me.REG[5];
4132 /* syntax/syntax_base.nit:644 */
4133 fra.me.REG[2] = fra.me.REG[5];
4134 goto label1;
4135 }
4136 /* syntax/syntax_base.nit:647 */
4137 REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
4138 if (UNTAG_Bool(REGB1)) {
4139 /* syntax/syntax_base.nit:648 */
4140 fra.me.REG[6] = CALL_parser___parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
4141 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[6])(fra.me.REG[6]);
4142 REGB0 = TAG_Int(0);
4143 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
4144 if (UNTAG_Bool(REGB2)) {
4145 } else {
4146 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4147 }
4148 /* ../lib/standard/kernel.nit:237 */
4149 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0));
4150 /* syntax/syntax_base.nit:648 */
4151 if (UNTAG_Bool(REGB0)) {
4152 /* syntax/syntax_base.nit:649 */
4153 REGB0 = TAG_Int(3);
4154 fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
4155 if (!once_value_4) {
4156 fra.me.REG[7] = BOX_NativeString("Type error: formal type ");
4157 REGB0 = TAG_Int(24);
4158 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
4159 once_value_4 = fra.me.REG[7];
4160 register_static_object(&once_value_4);
4161 } else fra.me.REG[7] = once_value_4;
4162 fra.me.REG[7] = fra.me.REG[7];
4163 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4164 fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
4165 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4166 if (!once_value_5) {
4167 fra.me.REG[7] = BOX_NativeString(" cannot have formal parameters.");
4168 REGB0 = TAG_Int(31);
4169 fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
4170 once_value_5 = fra.me.REG[7];
4171 register_static_object(&once_value_5);
4172 } else fra.me.REG[7] = once_value_5;
4173 fra.me.REG[7] = fra.me.REG[7];
4174 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
4175 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
4176 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[6]);
4177 /* syntax/syntax_base.nit:650 */
4178 fra.me.REG[2] = NIT_NULL;
4179 goto label1;
4180 }
4181 /* syntax/syntax_base.nit:652 */
4182 fra.me.REG[6] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
4183 fra.me.REG[6] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[6])(fra.me.REG[6]);
4184 fra.me.REG[6] = CALL_metamodel___virtualtype___MMLocalClass___select_virtual_type(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
4185 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
4186 fra.me.REG[4] = CALL_metamodel___virtualtype___MMTypeProperty___stype_for(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
4187 fra.me.REG[5] = fra.me.REG[4];
4188 /* syntax/syntax_base.nit:653 */
4189 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4190 if (UNTAG_Bool(REGB0)) {
4191 } else {
4192 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4193 if (UNTAG_Bool(REGB1)) {
4194 REGB1 = TAG_Bool(0);
4195 REGB0 = REGB1;
4196 } else {
4197 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
4198 REGB0 = REGB1;
4199 }
4200 }
4201 if (UNTAG_Bool(REGB0)) {
4202 /* syntax/syntax_base.nit:654 */
4203 REGB0 = TAG_Int(3);
4204 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
4205 if (!once_value_6) {
4206 fra.me.REG[6] = BOX_NativeString("Type error: circular definition in formal type ");
4207 REGB0 = TAG_Int(47);
4208 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
4209 once_value_6 = fra.me.REG[6];
4210 register_static_object(&once_value_6);
4211 } else fra.me.REG[6] = once_value_6;
4212 fra.me.REG[6] = fra.me.REG[6];
4213 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
4214 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
4215 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
4216 if (!once_value_7) {
4217 fra.me.REG[3] = BOX_NativeString(".");
4218 REGB0 = TAG_Int(1);
4219 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
4220 once_value_7 = fra.me.REG[3];
4221 register_static_object(&once_value_7);
4222 } else fra.me.REG[3] = once_value_7;
4223 fra.me.REG[3] = fra.me.REG[3];
4224 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
4225 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4226 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
4227 /* syntax/syntax_base.nit:655 */
4228 fra.me.REG[2] = NIT_NULL;
4229 goto label1;
4230 }
4231 /* syntax/syntax_base.nit:657 */
4232 fra.me.REG[4] = CALL_parser___parser_nodes___AType___n_kwnullable(fra.me.REG[0])(fra.me.REG[0]);
4233 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4234 if (UNTAG_Bool(REGB0)) {
4235 } else {
4236 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4237 if (UNTAG_Bool(REGB1)) {
4238 REGB1 = TAG_Bool(0);
4239 REGB0 = REGB1;
4240 } else {
4241 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
4242 REGB0 = REGB1;
4243 }
4244 }
4245 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4246 if (UNTAG_Bool(REGB0)) {
4247 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4248 if (UNTAG_Bool(REGB0)) {
4249 nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 657);
4250 }
4251 fra.me.REG[4] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[5])(fra.me.REG[5]);
4252 fra.me.REG[5] = fra.me.REG[4];
4253 }
4254 /* syntax/syntax_base.nit:658 */
4255 ATTR_syntax___syntax_base___AType____stype_cache(fra.me.REG[0]) = fra.me.REG[5];
4256 /* syntax/syntax_base.nit:659 */
4257 fra.me.REG[2] = fra.me.REG[5];
4258 goto label1;
4259 }
4260 /* syntax/syntax_base.nit:662 */
4261 fra.me.REG[4] = CALL_syntax___syntax_base___AType___get_local_class(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4262 /* syntax/syntax_base.nit:663 */
4263 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4264 if (UNTAG_Bool(REGB0)) {
4265 } else {
4266 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4267 if (UNTAG_Bool(REGB1)) {
4268 REGB1 = TAG_Bool(0);
4269 REGB0 = REGB1;
4270 } else {
4271 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
4272 REGB0 = REGB1;
4273 }
4274 }
4275 if (UNTAG_Bool(REGB0)) {
4276 fra.me.REG[2] = NIT_NULL;
4277 goto label1;
4278 }
4279 /* syntax/syntax_base.nit:665 */
4280 fra.me.REG[3] = CALL_parser___parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
4281 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
4282 /* syntax/syntax_base.nit:666 */
4283 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4284 if (UNTAG_Bool(REGB1)) {
4285 nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 666);
4286 }
4287 REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
4288 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0));
4289 if (UNTAG_Bool(REGB2)) {
4290 } else {
4291 /* ../lib/standard/kernel.nit:230 */
4292 REGB1 = TAG_Bool((REGB1)==(REGB0));
4293 /* syntax/syntax_base.nit:666 */
4294 REGB2 = REGB1;
4295 }
4296 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
4297 if (UNTAG_Bool(REGB2)) {
4298 /* syntax/syntax_base.nit:667 */
4299 REGB2 = TAG_Int(0);
4300 REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
4301 if (UNTAG_Bool(REGB1)) {
4302 } else {
4303 /* ../lib/standard/kernel.nit:230 */
4304 REGB2 = TAG_Bool((REGB0)==(REGB2));
4305 /* syntax/syntax_base.nit:667 */
4306 REGB1 = REGB2;
4307 }
4308 if (UNTAG_Bool(REGB1)) {
4309 /* syntax/syntax_base.nit:668 */
4310 REGB1 = TAG_Int(3);
4311 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
4312 if (!once_value_8) {
4313 fra.me.REG[6] = BOX_NativeString("Type error: '");
4314 REGB1 = TAG_Int(13);
4315 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
4316 once_value_8 = fra.me.REG[6];
4317 register_static_object(&once_value_8);
4318 } else fra.me.REG[6] = once_value_8;
4319 fra.me.REG[6] = fra.me.REG[6];
4320 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
4321 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4322 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
4323 if (!once_value_9) {
4324 fra.me.REG[6] = BOX_NativeString("' is a generic class.");
4325 REGB1 = TAG_Int(21);
4326 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
4327 once_value_9 = fra.me.REG[6];
4328 register_static_object(&once_value_9);
4329 } else fra.me.REG[6] = once_value_9;
4330 fra.me.REG[6] = fra.me.REG[6];
4331 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
4332 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
4333 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
4334 } else {
4335 /* syntax/syntax_base.nit:669 */
4336 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4337 if (UNTAG_Bool(REGB1)) {
4338 nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 669);
4339 }
4340 REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
4341 REGB2 = TAG_Int(0);
4342 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
4343 if (UNTAG_Bool(REGB3)) {
4344 } else {
4345 /* ../lib/standard/kernel.nit:230 */
4346 REGB2 = TAG_Bool((REGB1)==(REGB2));
4347 /* syntax/syntax_base.nit:669 */
4348 REGB3 = REGB2;
4349 }
4350 if (UNTAG_Bool(REGB3)) {
4351 /* syntax/syntax_base.nit:670 */
4352 REGB3 = TAG_Int(3);
4353 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
4354 if (!once_value_10) {
4355 fra.me.REG[6] = BOX_NativeString("Type error: '");
4356 REGB3 = TAG_Int(13);
4357 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB3);
4358 once_value_10 = fra.me.REG[6];
4359 register_static_object(&once_value_10);
4360 } else fra.me.REG[6] = once_value_10;
4361 fra.me.REG[6] = fra.me.REG[6];
4362 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
4363 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4364 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
4365 if (!once_value_11) {
4366 fra.me.REG[6] = BOX_NativeString("' is not a generic class.");
4367 REGB3 = TAG_Int(25);
4368 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB3);
4369 once_value_11 = fra.me.REG[6];
4370 register_static_object(&once_value_11);
4371 } else fra.me.REG[6] = once_value_11;
4372 fra.me.REG[6] = fra.me.REG[6];
4373 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
4374 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
4375 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
4376 } else {
4377 /* syntax/syntax_base.nit:672 */
4378 REGB3 = TAG_Int(7);
4379 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
4380 if (!once_value_12) {
4381 fra.me.REG[6] = BOX_NativeString("Type error: '");
4382 REGB3 = TAG_Int(13);
4383 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB3);
4384 once_value_12 = fra.me.REG[6];
4385 register_static_object(&once_value_12);
4386 } else fra.me.REG[6] = once_value_12;
4387 fra.me.REG[6] = fra.me.REG[6];
4388 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
4389 fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
4390 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
4391 if (!once_value_13) {
4392 fra.me.REG[6] = BOX_NativeString("' has ");
4393 REGB3 = TAG_Int(6);
4394 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB3);
4395 once_value_13 = fra.me.REG[6];
4396 register_static_object(&once_value_13);
4397 } else fra.me.REG[6] = once_value_13;
4398 fra.me.REG[6] = fra.me.REG[6];
4399 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
4400 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4401 if (UNTAG_Bool(REGB3)) {
4402 nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 672);
4403 }
4404 REGB3 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
4405 fra.me.REG[6] = CALL_standard___string___Object___to_s(REGB3)(REGB3);
4406 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
4407 if (!once_value_14) {
4408 fra.me.REG[6] = BOX_NativeString(" parameters (");
4409 REGB3 = TAG_Int(13);
4410 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB3);
4411 once_value_14 = fra.me.REG[6];
4412 register_static_object(&once_value_14);
4413 } else fra.me.REG[6] = once_value_14;
4414 fra.me.REG[6] = fra.me.REG[6];
4415 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
4416 fra.me.REG[6] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
4417 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
4418 if (!once_value_15) {
4419 fra.me.REG[6] = BOX_NativeString(" are provided).");
4420 REGB3 = TAG_Int(15);
4421 fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB3);
4422 once_value_15 = fra.me.REG[6];
4423 register_static_object(&once_value_15);
4424 } else fra.me.REG[6] = once_value_15;
4425 fra.me.REG[6] = fra.me.REG[6];
4426 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
4427 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
4428 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
4429 }
4430 }
4431 /* syntax/syntax_base.nit:674 */
4432 fra.me.REG[2] = NIT_NULL;
4433 goto label1;
4434 }
4435 /* syntax/syntax_base.nit:677 */
4436 REGB3 = TAG_Int(0);
4437 REGB2 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
4438 if (UNTAG_Bool(REGB2)) {
4439 } else {
4440 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4441 }
4442 /* ../lib/standard/kernel.nit:237 */
4443 REGB3 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB3));
4444 /* syntax/syntax_base.nit:677 */
4445 if (UNTAG_Bool(REGB3)) {
4446 /* syntax/syntax_base.nit:678 */
4447 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
4448 /* syntax/syntax_base.nit:679 */
4449 fra.me.REG[6] = CALL_parser___parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
4450 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[6])(fra.me.REG[6], (&(fra.me)), ((fun_t)OC_syntax___syntax_base___AType___get_unchecked_stype_16));
4451 switch ((&(fra.me))->has_broke) {
4452 case 0: break;
4453 case 1: (&(fra.me))->has_broke = 0; goto label1;
4454 }
4455 /* syntax/syntax_base.nit:684 */
4456 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4457 if (UNTAG_Bool(REGB3)) {
4458 nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 684);
4459 }
4460 fra.me.REG[3] = CALL_metamodel___genericity___MMLocalClass___get_instantiate_type(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
4461 fra.me.REG[5] = fra.me.REG[3];
4462 } else {
4463 /* syntax/syntax_base.nit:686 */
4464 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4465 if (UNTAG_Bool(REGB3)) {
4466 nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 686);
4467 }
4468 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
4469 fra.me.REG[5] = fra.me.REG[4];
4470 }
4471 /* syntax/syntax_base.nit:688 */
4472 fra.me.REG[4] = CALL_parser___parser_nodes___AType___n_kwnullable(fra.me.REG[0])(fra.me.REG[0]);
4473 REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4474 if (UNTAG_Bool(REGB3)) {
4475 } else {
4476 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
4477 if (UNTAG_Bool(REGB0)) {
4478 REGB0 = TAG_Bool(0);
4479 REGB3 = REGB0;
4480 } else {
4481 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
4482 REGB3 = REGB0;
4483 }
4484 }
4485 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
4486 if (UNTAG_Bool(REGB3)) {
4487 REGB3 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
4488 if (UNTAG_Bool(REGB3)) {
4489 nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 688);
4490 }
4491 fra.me.REG[4] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[5])(fra.me.REG[5]);
4492 fra.me.REG[5] = fra.me.REG[4];
4493 }
4494 /* syntax/syntax_base.nit:689 */
4495 ATTR_syntax___syntax_base___AType____stype_cache(fra.me.REG[0]) = fra.me.REG[5];
4496 /* syntax/syntax_base.nit:690 */
4497 fra.me.REG[2] = fra.me.REG[5];
4498 goto label1;
4499 label1: while(0);
4500 stack_frame_head = fra.me.prev;
4501 return fra.me.REG[2];
4502 }
4503 void OC_syntax___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){
4504 struct {struct stack_frame_t me;} fra;
4505 val_t REGB0;
4506 val_t REGB1;
4507 fun_t CREG[1];
4508 val_t tmp;
4509 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4510 fra.me.file = LOCATE_syntax___syntax_base;
4511 fra.me.line = 0;
4512 fra.me.meth = LOCATE_syntax___syntax_base___AType___get_unchecked_stype;
4513 fra.me.has_broke = 0;
4514 fra.me.REG_size = 1;
4515 fra.me.nitni_local_ref_head = NULL;
4516 fra.me.REG[0] = NIT_NULL;
4517 fra.me.closure_ctx = closctx_param;
4518 fra.me.closure_funs = CREG;
4519 fra.me.REG[0] = p0;
4520 CREG[0] = clos_fun0;
4521 /* syntax/syntax_base.nit:680 */
4522 fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_unchecked_stype(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
4523 /* syntax/syntax_base.nit:681 */
4524 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4525 if (UNTAG_Bool(REGB0)) {
4526 } else {
4527 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
4528 if (UNTAG_Bool(REGB1)) {
4529 REGB1 = TAG_Bool(0);
4530 REGB0 = REGB1;
4531 } else {
4532 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
4533 REGB0 = REGB1;
4534 }
4535 }
4536 if (UNTAG_Bool(REGB0)) {
4537 closctx->REG[2] = NIT_NULL;
4538 closctx->has_broke = 1;
4539 goto label17;
4540 }
4541 /* syntax/syntax_base.nit:682 */
4542 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[0]);
4543 label17: while(0);
4544 stack_frame_head = fra.me.prev;
4545 return;
4546 }
4547 static const char LOCATE_syntax___syntax_base___AType___get_stype[] = "syntax_base::AType::get_stype";
4548 val_t syntax___syntax_base___AType___get_stype(val_t p0, val_t p1){
4549 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4550 val_t REGB0;
4551 val_t REGB1;
4552 val_t tmp;
4553 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4554 fra.me.file = LOCATE_syntax___syntax_base;
4555 fra.me.line = 693;
4556 fra.me.meth = LOCATE_syntax___syntax_base___AType___get_stype;
4557 fra.me.has_broke = 0;
4558 fra.me.REG_size = 4;
4559 fra.me.nitni_local_ref_head = NULL;
4560 fra.me.REG[0] = NIT_NULL;
4561 fra.me.REG[1] = NIT_NULL;
4562 fra.me.REG[2] = NIT_NULL;
4563 fra.me.REG[3] = NIT_NULL;
4564 fra.me.REG[0] = p0;
4565 fra.me.REG[1] = p1;
4566 /* syntax/syntax_base.nit:697 */
4567 fra.me.REG[2] = CALL_syntax___syntax_base___AType___get_unchecked_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4568 /* syntax/syntax_base.nit:698 */
4569 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4570 if (UNTAG_Bool(REGB0)) {
4571 } else {
4572 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4573 if (UNTAG_Bool(REGB1)) {
4574 REGB1 = TAG_Bool(0);
4575 REGB0 = REGB1;
4576 } else {
4577 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4578 REGB0 = REGB1;
4579 }
4580 }
4581 if (UNTAG_Bool(REGB0)) {
4582 fra.me.REG[3] = NIT_NULL;
4583 goto label1;
4584 }
4585 /* syntax/syntax_base.nit:699 */
4586 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4587 if (UNTAG_Bool(REGB0)) {
4588 nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 699);
4589 }
4590 REGB0 = CALL_metamodel___static_type___MMType___is_valid(fra.me.REG[2])(fra.me.REG[2]);
4591 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4592 if (UNTAG_Bool(REGB0)) {
4593 fra.me.REG[3] = NIT_NULL;
4594 goto label1;
4595 }
4596 /* syntax/syntax_base.nit:700 */
4597 CALL_syntax___syntax_base___AType___check_conform(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4598 /* syntax/syntax_base.nit:701 */
4599 fra.me.REG[3] = fra.me.REG[2];
4600 goto label1;
4601 label1: while(0);
4602 stack_frame_head = fra.me.prev;
4603 return fra.me.REG[3];
4604 }
4605 static const char LOCATE_syntax___syntax_base___AType___check_conform[] = "syntax_base::AType::check_conform";
4606 void syntax___syntax_base___AType___check_conform(val_t p0, val_t p1){
4607 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
4608 val_t REGB0;
4609 val_t REGB1;
4610 val_t REGB2;
4611 val_t tmp;
4612 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4613 fra.me.file = LOCATE_syntax___syntax_base;
4614 fra.me.line = 704;
4615 fra.me.meth = LOCATE_syntax___syntax_base___AType___check_conform;
4616 fra.me.has_broke = 0;
4617 fra.me.REG_size = 8;
4618 fra.me.nitni_local_ref_head = NULL;
4619 fra.me.REG[0] = NIT_NULL;
4620 fra.me.REG[1] = NIT_NULL;
4621 fra.me.REG[2] = NIT_NULL;
4622 fra.me.REG[3] = NIT_NULL;
4623 fra.me.REG[4] = NIT_NULL;
4624 fra.me.REG[5] = NIT_NULL;
4625 fra.me.REG[6] = NIT_NULL;
4626 fra.me.REG[7] = NIT_NULL;
4627 fra.me.REG[0] = p0;
4628 fra.me.REG[1] = p1;
4629 /* syntax/syntax_base.nit:709 */
4630 fra.me.REG[2] = CALL_syntax___syntax_base___AType___get_unchecked_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
4631 /* syntax/syntax_base.nit:710 */
4632 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4633 if (UNTAG_Bool(REGB0)) {
4634 } else {
4635 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4636 if (UNTAG_Bool(REGB1)) {
4637 REGB1 = TAG_Bool(0);
4638 REGB0 = REGB1;
4639 } else {
4640 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4641 REGB0 = REGB1;
4642 }
4643 }
4644 if (UNTAG_Bool(REGB0)) {
4645 goto label1;
4646 }
4647 /* syntax/syntax_base.nit:711 */
4648 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4649 if (UNTAG_Bool(REGB0)) {
4650 nit_abort("Reciever is null", NULL, LOCATE_syntax___syntax_base, 711);
4651 }
4652 fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[2])(fra.me.REG[2]);
4653 /* syntax/syntax_base.nit:712 */
4654 fra.me.REG[4] = CALL_parser___parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
4655 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[4])(fra.me.REG[4]);
4656 /* syntax/syntax_base.nit:713 */
4657 REGB1 = TAG_Int(0);
4658 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
4659 if (UNTAG_Bool(REGB2)) {
4660 } else {
4661 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4662 }
4663 /* ../lib/standard/kernel.nit:237 */
4664 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
4665 /* syntax/syntax_base.nit:713 */
4666 if (UNTAG_Bool(REGB1)) {
4667 /* syntax/syntax_base.nit:714 */
4668 REGB1 = TAG_Int(0);
4669 /* ../lib/standard/kernel.nit:355 */
4670 while(1) {
4671 REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
4672 if (UNTAG_Bool(REGB2)) {
4673 } else {
4674 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4675 }
4676 /* ../lib/standard/kernel.nit:235 */
4677 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
4678 /* ../lib/standard/kernel.nit:355 */
4679 if (UNTAG_Bool(REGB2)) {
4680 /* syntax/syntax_base.nit:714 */
4681 REGB2 = REGB1;
4682 /* syntax/syntax_base.nit:715 */
4683 fra.me.REG[4] = CALL_parser___parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
4684 fra.me.REG[4] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[4])(fra.me.REG[4], REGB2);
4685 /* syntax/syntax_base.nit:716 */
4686 fra.me.REG[5] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
4687 /* syntax/syntax_base.nit:717 */
4688 fra.me.REG[6] = CALL_metamodel___genericity___MMLocalClass___get_formal(fra.me.REG[3])(fra.me.REG[3], REGB2);
4689 /* syntax/syntax_base.nit:718 */
4690 REGB2 = CALL_metamodel___static_type___MMType___is_valid(fra.me.REG[6])(fra.me.REG[6]);
4691 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
4692 if (UNTAG_Bool(REGB2)) {
4693 goto label1;
4694 }
4695 /* syntax/syntax_base.nit:719 */
4696 fra.me.REG[6] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[6])(fra.me.REG[6]);
4697 /* syntax/syntax_base.nit:720 */
4698 fra.me.REG[7] = CALL_metamodel___static_type___MMType___adapt_to(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
4699 fra.me.REG[6] = fra.me.REG[7];
4700 /* syntax/syntax_base.nit:721 */
4701 CALL_syntax___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]);
4702 /* ../lib/standard/kernel.nit:357 */
4703 REGB2 = TAG_Int(1);
4704 /* ../lib/standard/kernel.nit:238 */
4705 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
4706 /* ../lib/standard/kernel.nit:357 */
4707 REGB1 = REGB2;
4708 } else {
4709 /* ../lib/standard/kernel.nit:355 */
4710 goto label2;
4711 }
4712 }
4713 label2: while(0);
4714 }
4715 label1: while(0);
4716 stack_frame_head = fra.me.prev;
4717 return;
4718 }
4719 static const char LOCATE_syntax___syntax_base___AExpr___is_typed[] = "syntax_base::AExpr::is_typed";
4720 val_t syntax___syntax_base___AExpr___is_typed(val_t p0){
4721 struct {struct stack_frame_t me;} fra;
4722 val_t tmp;
4723 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4724 fra.me.file = LOCATE_syntax___syntax_base;
4725 fra.me.line = 728;
4726 fra.me.meth = LOCATE_syntax___syntax_base___AExpr___is_typed;
4727 fra.me.has_broke = 0;
4728 fra.me.REG_size = 0;
4729 fra.me.nitni_local_ref_head = NULL;
4730 /* syntax/syntax_base.nit:728 */
4731 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 728);
4732 stack_frame_head = fra.me.prev;
4733 return NIT_NULL;
4734 }
4735 static const char LOCATE_syntax___syntax_base___AExpr___is_statement[] = "syntax_base::AExpr::is_statement";
4736 val_t syntax___syntax_base___AExpr___is_statement(val_t p0){
4737 struct {struct stack_frame_t me;} fra;
4738 val_t tmp;
4739 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4740 fra.me.file = LOCATE_syntax___syntax_base;
4741 fra.me.line = 733;
4742 fra.me.meth = LOCATE_syntax___syntax_base___AExpr___is_statement;
4743 fra.me.has_broke = 0;
4744 fra.me.REG_size = 0;
4745 fra.me.nitni_local_ref_head = NULL;
4746 /* syntax/syntax_base.nit:733 */
4747 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 733);
4748 stack_frame_head = fra.me.prev;
4749 return NIT_NULL;
4750 }
4751 static const char LOCATE_syntax___syntax_base___AExpr___stype[] = "syntax_base::AExpr::stype";
4752 val_t syntax___syntax_base___AExpr___stype(val_t p0){
4753 struct {struct stack_frame_t me;} fra;
4754 val_t tmp;
4755 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4756 fra.me.file = LOCATE_syntax___syntax_base;
4757 fra.me.line = 737;
4758 fra.me.meth = LOCATE_syntax___syntax_base___AExpr___stype;
4759 fra.me.has_broke = 0;
4760 fra.me.REG_size = 0;
4761 fra.me.nitni_local_ref_head = NULL;
4762 /* syntax/syntax_base.nit:737 */
4763 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 737);
4764 stack_frame_head = fra.me.prev;
4765 return NIT_NULL;
4766 }
4767 static const char LOCATE_syntax___syntax_base___AAbsAbsSendExpr___prop_signature[] = "syntax_base::AAbsAbsSendExpr::prop_signature";
4768 val_t syntax___syntax_base___AAbsAbsSendExpr___prop_signature(val_t p0){
4769 struct {struct stack_frame_t me;} fra;
4770 val_t tmp;
4771 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4772 fra.me.file = LOCATE_syntax___syntax_base;
4773 fra.me.line = 744;
4774 fra.me.meth = LOCATE_syntax___syntax_base___AAbsAbsSendExpr___prop_signature;
4775 fra.me.has_broke = 0;
4776 fra.me.REG_size = 0;
4777 fra.me.nitni_local_ref_head = NULL;
4778 /* syntax/syntax_base.nit:744 */
4779 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 744);
4780 stack_frame_head = fra.me.prev;
4781 return NIT_NULL;
4782 }
4783 static const char LOCATE_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments[] = "syntax_base::AAbsAbsSendExpr::raw_arguments";
4784 val_t syntax___syntax_base___AAbsAbsSendExpr___raw_arguments(val_t p0){
4785 struct {struct stack_frame_t me;} fra;
4786 val_t tmp;
4787 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4788 fra.me.file = LOCATE_syntax___syntax_base;
4789 fra.me.line = 747;
4790 fra.me.meth = LOCATE_syntax___syntax_base___AAbsAbsSendExpr___raw_arguments;
4791 fra.me.has_broke = 0;
4792 fra.me.REG_size = 0;
4793 fra.me.nitni_local_ref_head = NULL;
4794 /* syntax/syntax_base.nit:747 */
4795 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 747);
4796 stack_frame_head = fra.me.prev;
4797 return NIT_NULL;
4798 }
4799 static const char LOCATE_syntax___syntax_base___AAbsSendExpr___prop[] = "syntax_base::AAbsSendExpr::prop";
4800 val_t syntax___syntax_base___AAbsSendExpr___prop(val_t p0){
4801 struct {struct stack_frame_t me;} fra;
4802 val_t tmp;
4803 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4804 fra.me.file = LOCATE_syntax___syntax_base;
4805 fra.me.line = 753;
4806 fra.me.meth = LOCATE_syntax___syntax_base___AAbsSendExpr___prop;
4807 fra.me.has_broke = 0;
4808 fra.me.REG_size = 0;
4809 fra.me.nitni_local_ref_head = NULL;
4810 /* syntax/syntax_base.nit:753 */
4811 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 753);
4812 stack_frame_head = fra.me.prev;
4813 return NIT_NULL;
4814 }
4815 static const char LOCATE_syntax___syntax_base___AAbsSendExpr___return_type[] = "syntax_base::AAbsSendExpr::return_type";
4816 val_t syntax___syntax_base___AAbsSendExpr___return_type(val_t p0){
4817 struct {struct stack_frame_t me;} fra;
4818 val_t tmp;
4819 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4820 fra.me.file = LOCATE_syntax___syntax_base;
4821 fra.me.line = 756;
4822 fra.me.meth = LOCATE_syntax___syntax_base___AAbsSendExpr___return_type;
4823 fra.me.has_broke = 0;
4824 fra.me.REG_size = 0;
4825 fra.me.nitni_local_ref_head = NULL;
4826 /* syntax/syntax_base.nit:756 */
4827 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 756);
4828 stack_frame_head = fra.me.prev;
4829 return NIT_NULL;
4830 }
4831 static const char LOCATE_syntax___syntax_base___ASuperExpr___init_in_superclass[] = "syntax_base::ASuperExpr::init_in_superclass";
4832 val_t syntax___syntax_base___ASuperExpr___init_in_superclass(val_t p0){
4833 struct {struct stack_frame_t me;} fra;
4834 val_t tmp;
4835 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4836 fra.me.file = LOCATE_syntax___syntax_base;
4837 fra.me.line = 766;
4838 fra.me.meth = LOCATE_syntax___syntax_base___ASuperExpr___init_in_superclass;
4839 fra.me.has_broke = 0;
4840 fra.me.REG_size = 0;
4841 fra.me.nitni_local_ref_head = NULL;
4842 /* syntax/syntax_base.nit:766 */
4843 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 766);
4844 stack_frame_head = fra.me.prev;
4845 return NIT_NULL;
4846 }
4847 static const char LOCATE_syntax___syntax_base___ASendExpr___closure_defs[] = "syntax_base::ASendExpr::closure_defs";
4848 val_t syntax___syntax_base___ASendExpr___closure_defs(val_t p0){
4849 struct {struct stack_frame_t me;} fra;
4850 val_t tmp;
4851 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4852 fra.me.file = LOCATE_syntax___syntax_base;
4853 fra.me.line = 775;
4854 fra.me.meth = LOCATE_syntax___syntax_base___ASendExpr___closure_defs;
4855 fra.me.has_broke = 0;
4856 fra.me.REG_size = 0;
4857 fra.me.nitni_local_ref_head = NULL;
4858 /* syntax/syntax_base.nit:775 */
4859 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 775);
4860 stack_frame_head = fra.me.prev;
4861 return NIT_NULL;
4862 }
4863 static const char LOCATE_syntax___syntax_base___AReassignFormExpr___assign_method[] = "syntax_base::AReassignFormExpr::assign_method";
4864 val_t syntax___syntax_base___AReassignFormExpr___assign_method(val_t p0){
4865 struct {struct stack_frame_t me;} fra;
4866 val_t tmp;
4867 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4868 fra.me.file = LOCATE_syntax___syntax_base;
4869 fra.me.line = 780;
4870 fra.me.meth = LOCATE_syntax___syntax_base___AReassignFormExpr___assign_method;
4871 fra.me.has_broke = 0;
4872 fra.me.REG_size = 0;
4873 fra.me.nitni_local_ref_head = NULL;
4874 /* syntax/syntax_base.nit:780 */
4875 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 780);
4876 stack_frame_head = fra.me.prev;
4877 return NIT_NULL;
4878 }
4879 static const char LOCATE_syntax___syntax_base___ASendReassignExpr___read_prop[] = "syntax_base::ASendReassignExpr::read_prop";
4880 val_t syntax___syntax_base___ASendReassignExpr___read_prop(val_t p0){
4881 struct {struct stack_frame_t me;} fra;
4882 val_t tmp;
4883 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4884 fra.me.file = LOCATE_syntax___syntax_base;
4885 fra.me.line = 787;
4886 fra.me.meth = LOCATE_syntax___syntax_base___ASendReassignExpr___read_prop;
4887 fra.me.has_broke = 0;
4888 fra.me.REG_size = 0;
4889 fra.me.nitni_local_ref_head = NULL;
4890 /* syntax/syntax_base.nit:787 */
4891 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 787);
4892 stack_frame_head = fra.me.prev;
4893 return NIT_NULL;
4894 }
4895 static const char LOCATE_syntax___syntax_base___AAttrFormExpr___prop[] = "syntax_base::AAttrFormExpr::prop";
4896 val_t syntax___syntax_base___AAttrFormExpr___prop(val_t p0){
4897 struct {struct stack_frame_t me;} fra;
4898 val_t tmp;
4899 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4900 fra.me.file = LOCATE_syntax___syntax_base;
4901 fra.me.line = 801;
4902 fra.me.meth = LOCATE_syntax___syntax_base___AAttrFormExpr___prop;
4903 fra.me.has_broke = 0;
4904 fra.me.REG_size = 0;
4905 fra.me.nitni_local_ref_head = NULL;
4906 /* syntax/syntax_base.nit:801 */
4907 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 801);
4908 stack_frame_head = fra.me.prev;
4909 return NIT_NULL;
4910 }
4911 static const char LOCATE_syntax___syntax_base___AAttrFormExpr___attr_type[] = "syntax_base::AAttrFormExpr::attr_type";
4912 val_t syntax___syntax_base___AAttrFormExpr___attr_type(val_t p0){
4913 struct {struct stack_frame_t me;} fra;
4914 val_t tmp;
4915 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4916 fra.me.file = LOCATE_syntax___syntax_base;
4917 fra.me.line = 804;
4918 fra.me.meth = LOCATE_syntax___syntax_base___AAttrFormExpr___attr_type;
4919 fra.me.has_broke = 0;
4920 fra.me.REG_size = 0;
4921 fra.me.nitni_local_ref_head = NULL;
4922 /* syntax/syntax_base.nit:804 */
4923 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 804);
4924 stack_frame_head = fra.me.prev;
4925 return NIT_NULL;
4926 }
4927 static const char LOCATE_syntax___syntax_base___ASuperstringExpr___atype[] = "syntax_base::ASuperstringExpr::atype";
4928 val_t syntax___syntax_base___ASuperstringExpr___atype(val_t p0){
4929 struct {struct stack_frame_t me;} fra;
4930 val_t tmp;
4931 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4932 fra.me.file = LOCATE_syntax___syntax_base;
4933 fra.me.line = 809;
4934 fra.me.meth = LOCATE_syntax___syntax_base___ASuperstringExpr___atype;
4935 fra.me.has_broke = 0;
4936 fra.me.REG_size = 0;
4937 fra.me.nitni_local_ref_head = NULL;
4938 /* syntax/syntax_base.nit:809 */
4939 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 809);
4940 stack_frame_head = fra.me.prev;
4941 return NIT_NULL;
4942 }
4943 static const char LOCATE_syntax___syntax_base___AVardeclExpr___variable[] = "syntax_base::AVardeclExpr::variable";
4944 val_t syntax___syntax_base___AVardeclExpr___variable(val_t p0){
4945 struct {struct stack_frame_t me;} fra;
4946 val_t tmp;
4947 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4948 fra.me.file = LOCATE_syntax___syntax_base;
4949 fra.me.line = 813;
4950 fra.me.meth = LOCATE_syntax___syntax_base___AVardeclExpr___variable;
4951 fra.me.has_broke = 0;
4952 fra.me.REG_size = 0;
4953 fra.me.nitni_local_ref_head = NULL;
4954 /* syntax/syntax_base.nit:813 */
4955 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 813);
4956 stack_frame_head = fra.me.prev;
4957 return NIT_NULL;
4958 }
4959 static const char LOCATE_syntax___syntax_base___AForExpr___variables[] = "syntax_base::AForExpr::variables";
4960 val_t syntax___syntax_base___AForExpr___variables(val_t p0){
4961 struct {struct stack_frame_t me;} fra;
4962 val_t tmp;
4963 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4964 fra.me.file = LOCATE_syntax___syntax_base;
4965 fra.me.line = 819;
4966 fra.me.meth = LOCATE_syntax___syntax_base___AForExpr___variables;
4967 fra.me.has_broke = 0;
4968 fra.me.REG_size = 0;
4969 fra.me.nitni_local_ref_head = NULL;
4970 /* syntax/syntax_base.nit:819 */
4971 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 819);
4972 stack_frame_head = fra.me.prev;
4973 return NIT_NULL;
4974 }
4975 static const char LOCATE_syntax___syntax_base___ASelfExpr___variable[] = "syntax_base::ASelfExpr::variable";
4976 val_t syntax___syntax_base___ASelfExpr___variable(val_t p0){
4977 struct {struct stack_frame_t me;} fra;
4978 val_t tmp;
4979 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4980 fra.me.file = LOCATE_syntax___syntax_base;
4981 fra.me.line = 824;
4982 fra.me.meth = LOCATE_syntax___syntax_base___ASelfExpr___variable;
4983 fra.me.has_broke = 0;
4984 fra.me.REG_size = 0;
4985 fra.me.nitni_local_ref_head = NULL;
4986 /* syntax/syntax_base.nit:824 */
4987 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 824);
4988 stack_frame_head = fra.me.prev;
4989 return NIT_NULL;
4990 }
4991 static const char LOCATE_syntax___syntax_base___AVarFormExpr___variable[] = "syntax_base::AVarFormExpr::variable";
4992 val_t syntax___syntax_base___AVarFormExpr___variable(val_t p0){
4993 struct {struct stack_frame_t me;} fra;
4994 val_t tmp;
4995 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4996 fra.me.file = LOCATE_syntax___syntax_base;
4997 fra.me.line = 829;
4998 fra.me.meth = LOCATE_syntax___syntax_base___AVarFormExpr___variable;
4999 fra.me.has_broke = 0;
5000 fra.me.REG_size = 0;
5001 fra.me.nitni_local_ref_head = NULL;
5002 /* syntax/syntax_base.nit:829 */
5003 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 829);
5004 stack_frame_head = fra.me.prev;
5005 return NIT_NULL;
5006 }
5007 static const char LOCATE_syntax___syntax_base___AClosureCallExpr___variable[] = "syntax_base::AClosureCallExpr::variable";
5008 val_t syntax___syntax_base___AClosureCallExpr___variable(val_t p0){
5009 struct {struct stack_frame_t me;} fra;
5010 val_t tmp;
5011 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5012 fra.me.file = LOCATE_syntax___syntax_base;
5013 fra.me.line = 835;
5014 fra.me.meth = LOCATE_syntax___syntax_base___AClosureCallExpr___variable;
5015 fra.me.has_broke = 0;
5016 fra.me.REG_size = 0;
5017 fra.me.nitni_local_ref_head = NULL;
5018 /* syntax/syntax_base.nit:835 */
5019 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 835);
5020 stack_frame_head = fra.me.prev;
5021 return NIT_NULL;
5022 }
5023 static const char LOCATE_syntax___syntax_base___AClosureDef___closure[] = "syntax_base::AClosureDef::closure";
5024 val_t syntax___syntax_base___AClosureDef___closure(val_t p0){
5025 struct {struct stack_frame_t me;} fra;
5026 val_t tmp;
5027 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5028 fra.me.file = LOCATE_syntax___syntax_base;
5029 fra.me.line = 840;
5030 fra.me.meth = LOCATE_syntax___syntax_base___AClosureDef___closure;
5031 fra.me.has_broke = 0;
5032 fra.me.REG_size = 0;
5033 fra.me.nitni_local_ref_head = NULL;
5034 /* syntax/syntax_base.nit:840 */
5035 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 840);
5036 stack_frame_head = fra.me.prev;
5037 return NIT_NULL;
5038 }
5039 static const char LOCATE_syntax___syntax_base___AClosureDef___variables[] = "syntax_base::AClosureDef::variables";
5040 val_t syntax___syntax_base___AClosureDef___variables(val_t p0){
5041 struct {struct stack_frame_t me;} fra;
5042 val_t tmp;
5043 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5044 fra.me.file = LOCATE_syntax___syntax_base;
5045 fra.me.line = 843;
5046 fra.me.meth = LOCATE_syntax___syntax_base___AClosureDef___variables;
5047 fra.me.has_broke = 0;
5048 fra.me.REG_size = 1;
5049 fra.me.nitni_local_ref_head = NULL;
5050 fra.me.REG[0] = NIT_NULL;
5051 fra.me.REG[0] = p0;
5052 /* syntax/syntax_base.nit:843 */
5053 fra.me.REG[0] = ATTR_syntax___syntax_base___AClosureDef____variables(fra.me.REG[0]);
5054 stack_frame_head = fra.me.prev;
5055 return fra.me.REG[0];
5056 }
5057 static const char LOCATE_syntax___syntax_base___AClosureDef___variables__eq[] = "syntax_base::AClosureDef::variables=";
5058 void syntax___syntax_base___AClosureDef___variables__eq(val_t p0, val_t p1){
5059 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5060 val_t tmp;
5061 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5062 fra.me.file = LOCATE_syntax___syntax_base;
5063 fra.me.line = 843;
5064 fra.me.meth = LOCATE_syntax___syntax_base___AClosureDef___variables__eq;
5065 fra.me.has_broke = 0;
5066 fra.me.REG_size = 2;
5067 fra.me.nitni_local_ref_head = NULL;
5068 fra.me.REG[0] = NIT_NULL;
5069 fra.me.REG[1] = NIT_NULL;
5070 fra.me.REG[0] = p0;
5071 fra.me.REG[1] = p1;
5072 /* syntax/syntax_base.nit:843 */
5073 ATTR_syntax___syntax_base___AClosureDef____variables(fra.me.REG[0]) = fra.me.REG[1];
5074 stack_frame_head = fra.me.prev;
5075 return;
5076 }
5077 static const char LOCATE_syntax___syntax_base___AMethid___name[] = "syntax_base::AMethid::name";
5078 val_t syntax___syntax_base___AMethid___name(val_t p0){
5079 struct {struct stack_frame_t me;} fra;
5080 val_t tmp;
5081 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5082 fra.me.file = LOCATE_syntax___syntax_base;
5083 fra.me.line = 848;
5084 fra.me.meth = LOCATE_syntax___syntax_base___AMethid___name;
5085 fra.me.has_broke = 0;
5086 fra.me.REG_size = 0;
5087 fra.me.nitni_local_ref_head = NULL;
5088 /* syntax/syntax_base.nit:848 */
5089 nit_abort("Deferred method called", NULL, LOCATE_syntax___syntax_base, 848);
5090 stack_frame_head = fra.me.prev;
5091 return NIT_NULL;
5092 }
5093 static const char LOCATE_syntax___syntax_base___AExprs___to_a[] = "syntax_base::AExprs::to_a";
5094 val_t syntax___syntax_base___AExprs___to_a(val_t p0){
5095 struct {struct stack_frame_t me;} fra;
5096 val_t tmp;
5097 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5098 fra.me.file = LOCATE_syntax___syntax_base;
5099 fra.me.line = 853;
5100 fra.me.meth = LOCATE_syntax___syntax_base___AExprs___to_a;
5101 fra.me.has_broke = 0;
5102 fra.me.REG_size = 1;
5103 fra.me.nitni_local_ref_head = NULL;
5104 fra.me.REG[0] = NIT_NULL;
5105 fra.me.REG[0] = p0;
5106 /* syntax/syntax_base.nit:854 */
5107 fra.me.REG[0] = CALL_parser___parser_nodes___AExprs___n_exprs(fra.me.REG[0])(fra.me.REG[0]);
5108 fra.me.REG[0] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[0])(fra.me.REG[0]);
5109 goto label1;
5110 label1: while(0);
5111 stack_frame_head = fra.me.prev;
5112 return fra.me.REG[0];
5113 }