compile: clean class PrimitiveInfo
[nit.git] / c_src / syntax_base._sep.c
1 /* This C file is generated by NIT to compile module syntax_base. */
2 #include "syntax_base._sep.h"
3 val_t syntax_base___MMSrcModule___node(val_t self) {
4 struct trace_t trace = {NULL, NULL, 26, LOCATE_syntax_base___MMSrcModule___node};
5 val_t *variable = NULL;
6 void **closurevariable = NULL;
7 trace.prev = tracehead; tracehead = &trace;
8 trace.file = LOCATE_syntax_base;
9 tracehead = trace.prev;
10 return ATTR_syntax_base___MMSrcModule____node( self) /*MMSrcModule::_node*/;
11 }
12 val_t syntax_base___MMSrcModule___src_local_classes(val_t self) {
13 struct trace_t trace = {NULL, NULL, 29, LOCATE_syntax_base___MMSrcModule___src_local_classes};
14 val_t *variable = NULL;
15 void **closurevariable = NULL;
16 trace.prev = tracehead; tracehead = &trace;
17 trace.file = LOCATE_syntax_base;
18 tracehead = trace.prev;
19 return ATTR_syntax_base___MMSrcModule____src_local_classes( self) /*MMSrcModule::_src_local_classes*/;
20 }
21 void syntax_base___MMSrcModule___init(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
22 struct trace_t trace = {NULL, NULL, 32, LOCATE_syntax_base___MMSrcModule___init};
23 val_t variable[8];
24 void **closurevariable = NULL;
25 trace.prev = tracehead; tracehead = &trace;
26 trace.file = LOCATE_syntax_base;
27 variable[0] = self;
28 variable[1] = param0;
29 variable[2] = param1;
30 variable[3] = param2;
31 variable[4] = param3;
32 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcModule].i]) return;
33 CALL_abstractmetamodel___MMModule___init(variable[0])(variable[0], variable[4] /*name*/, variable[3] /*dir*/, variable[1] /*c*/, init_table /*YYY*/) /*MMModule::init*/;
34 variable[6] = variable[0];
35 ATTR_syntax_base___MMSrcModule____node(variable[6]) /*MMSrcModule::_node*/ = variable[2] /*source*/;
36 variable[6] = variable[0];
37 variable[7] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[Symbol, MMSrcLocalClass]*/
38 ATTR_syntax_base___MMSrcModule____src_local_classes(variable[6]) /*MMSrcModule::_src_local_classes*/ = variable[7];
39 return_label0: while(false);
40 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcModule].i] = 1;
41 tracehead = trace.prev;
42 return;
43 }
44 val_t syntax_base___MMGlobalClass___check_visibility(val_t self, val_t param0, val_t param1, val_t param2) {
45 struct trace_t trace = {NULL, NULL, 41, LOCATE_syntax_base___MMGlobalClass___check_visibility};
46 val_t variable[17];
47 void **closurevariable = NULL;
48 trace.prev = tracehead; tracehead = &trace;
49 trace.file = LOCATE_syntax_base;
50 variable[0] = self;
51 variable[1] = param0;
52 variable[2] = param1;
53 variable[3] = param2;
54 variable[6] = variable[0];
55 variable[6] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[6])(variable[6]) /*MMGlobalClass::intro*/;
56 variable[6] = CALL_abstractmetamodel___MMLocalClass___module(variable[6])(variable[6]) /*MMLocalClass::module*/;
57 variable[5] = variable[6];
58 variable[6] = TAG_Bool(( variable[5] /*pm*/==NIT_NULL) || VAL_ISA( variable[5] /*pm*/, COLOR_MMSrcModule, ID_MMSrcModule)) /*cast MMSrcModule*/;
59 if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_syntax_base___MMGlobalClass___check_visibility, LOCATE_syntax_base, 44); nit_exit(1);}
60 variable[7] = CALL_abstractmetamodel___MMModule___visibility_for( variable[3] /*cm*/)( variable[3] /*cm*/, variable[5] /*pm*/) /*MMModule::visibility_for*/;
61 variable[6] = variable[7];
62 variable[7] = TAG_Bool(( variable[6] /*vpm*/)==( TAG_Int(3)));
63 if (UNTAG_Bool(variable[7])) { /*if*/
64 variable[4] = TAG_Bool(true);
65 goto return_label1;
66 } else { /*if*/
67 variable[7] = TAG_Bool(( variable[6] /*vpm*/)==( TAG_Int(0)));
68 if (UNTAG_Bool(variable[7])) { /*if*/
69 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
70 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Visibility error: Class "), TAG_Int(24)); /*new String*/
71 variable[9] = variable[8];
72 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
73 variable[10] = variable[0];
74 variable[11] = variable[10];
75 variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
76 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/;
77 variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" comes from the hidden module "), TAG_Int(30)); /*new String*/
78 variable[13] = variable[12];
79 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
80 variable[14] = variable[3] /*cm*/;
81 variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
82 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[14]) /*AbstractArray::add*/;
83 variable[15] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
84 variable[16] = variable[15];
85 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[16]) /*AbstractArray::add*/;
86 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
87 CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[2] /*n*/, variable[7]) /*AbsSyntaxVisitor::error*/;
88 variable[4] = TAG_Bool(false);
89 goto return_label1;
90 } else { /*if*/
91 variable[7] = variable[0];
92 variable[7] = CALL_abstractmetamodel___MMGlobalClass___visibility_level(variable[7])(variable[7]) /*MMGlobalClass::visibility_level*/;
93 variable[7] = TAG_Bool(UNTAG_Int(variable[7])>=UNTAG_Int( TAG_Int(3)));
94 if (UNTAG_Bool(variable[7])) { /*if*/
95 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
96 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Visibility error: Class "), TAG_Int(24)); /*new String*/
97 variable[9] = variable[8];
98 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
99 variable[10] = variable[0];
100 variable[11] = variable[10];
101 variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
102 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/;
103 variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" is private."), TAG_Int(12)); /*new String*/
104 variable[13] = variable[12];
105 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
106 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
107 CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[2] /*n*/, variable[7]) /*AbsSyntaxVisitor::error*/;
108 variable[4] = TAG_Bool(false);
109 goto return_label1;
110 }
111 }
112 }
113 variable[4] = TAG_Bool(true);
114 goto return_label1;
115 return_label1: while(false);
116 tracehead = trace.prev;
117 return variable[4];
118 }
119 val_t syntax_base___MMSrcLocalClass___nodes(val_t self) {
120 struct trace_t trace = {NULL, NULL, 62, LOCATE_syntax_base___MMSrcLocalClass___nodes};
121 val_t *variable = NULL;
122 void **closurevariable = NULL;
123 trace.prev = tracehead; tracehead = &trace;
124 trace.file = LOCATE_syntax_base;
125 tracehead = trace.prev;
126 return ATTR_syntax_base___MMSrcLocalClass____nodes( self) /*MMSrcLocalClass::_nodes*/;
127 }
128 val_t syntax_base___MMSrcLocalClass___formal_dict(val_t self) {
129 struct trace_t trace = {NULL, NULL, 65, LOCATE_syntax_base___MMSrcLocalClass___formal_dict};
130 val_t *variable = NULL;
131 void **closurevariable = NULL;
132 trace.prev = tracehead; tracehead = &trace;
133 trace.file = LOCATE_syntax_base;
134 tracehead = trace.prev;
135 return ATTR_syntax_base___MMSrcLocalClass____formal_dict( self) /*MMSrcLocalClass::_formal_dict*/;
136 }
137 void syntax_base___MMSrcLocalClass___formal_dict__eq(val_t self, val_t param0) {
138 struct trace_t trace = {NULL, NULL, 65, LOCATE_syntax_base___MMSrcLocalClass___formal_dict__eq};
139 val_t *variable = NULL;
140 void **closurevariable = NULL;
141 trace.prev = tracehead; tracehead = &trace;
142 trace.file = LOCATE_syntax_base;
143 ATTR_syntax_base___MMSrcLocalClass____formal_dict( self) /*MMSrcLocalClass::_formal_dict*/ = param0;
144 tracehead = trace.prev;
145 return;
146 }
147 val_t syntax_base___MMSrcLocalClass___src_local_properties(val_t self) {
148 struct trace_t trace = {NULL, NULL, 68, LOCATE_syntax_base___MMSrcLocalClass___src_local_properties};
149 val_t *variable = NULL;
150 void **closurevariable = NULL;
151 trace.prev = tracehead; tracehead = &trace;
152 trace.file = LOCATE_syntax_base;
153 tracehead = trace.prev;
154 return ATTR_syntax_base___MMSrcLocalClass____src_local_properties( self) /*MMSrcLocalClass::_src_local_properties*/;
155 }
156 void syntax_base___MMSrcLocalClass___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
157 struct trace_t trace = {NULL, NULL, 71, LOCATE_syntax_base___MMSrcLocalClass___init};
158 val_t variable[7];
159 void **closurevariable = NULL;
160 trace.prev = tracehead; tracehead = &trace;
161 trace.file = LOCATE_syntax_base;
162 variable[0] = self;
163 variable[1] = param0;
164 variable[2] = param1;
165 variable[3] = param2;
166 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcLocalClass].i]) return;
167 CALL_abstractmetamodel___MMLocalClass___init(variable[0])(variable[0], variable[1] /*n*/, variable[3] /*a*/, init_table /*YYY*/) /*MMLocalClass::init*/;
168 variable[5] = variable[0];
169 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[PClassdef]*/
170 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[2] /*cla*/) /*AbstractArray::add*/;
171 ATTR_syntax_base___MMSrcLocalClass____nodes(variable[5]) /*MMSrcLocalClass::_nodes*/ = variable[6];
172 variable[5] = variable[0];
173 variable[6] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[Symbol, MMLocalProperty]*/
174 ATTR_syntax_base___MMSrcLocalClass____src_local_properties(variable[5]) /*MMSrcLocalClass::_src_local_properties*/ = variable[6];
175 return_label2: while(false);
176 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcLocalClass].i] = 1;
177 tracehead = trace.prev;
178 return;
179 }
180 val_t syntax_base___MMGlobalProperty___check_visibility(val_t self, val_t param0, val_t param1, val_t param2, val_t param3) {
181 struct trace_t trace = {NULL, NULL, 80, LOCATE_syntax_base___MMGlobalProperty___check_visibility};
182 val_t variable[18];
183 void **closurevariable = NULL;
184 trace.prev = tracehead; tracehead = &trace;
185 trace.file = LOCATE_syntax_base;
186 variable[0] = self;
187 variable[1] = param0;
188 variable[2] = param1;
189 variable[3] = param2;
190 variable[4] = param3;
191 variable[7] = variable[0];
192 variable[7] = CALL_abstractmetamodel___MMGlobalProperty___local_class(variable[7])(variable[7]) /*MMGlobalProperty::local_class*/;
193 variable[7] = CALL_abstractmetamodel___MMLocalClass___module(variable[7])(variable[7]) /*MMLocalClass::module*/;
194 variable[6] = variable[7];
195 variable[7] = TAG_Bool(( variable[6] /*pm*/==NIT_NULL) || VAL_ISA( variable[6] /*pm*/, COLOR_MMSrcModule, ID_MMSrcModule)) /*cast MMSrcModule*/;
196 if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_syntax_base___MMGlobalProperty___check_visibility, LOCATE_syntax_base, 83); nit_exit(1);}
197 variable[8] = CALL_abstractmetamodel___MMModule___visibility_for( variable[3] /*cm*/)( variable[3] /*cm*/, variable[6] /*pm*/) /*MMModule::visibility_for*/;
198 variable[7] = variable[8];
199 variable[8] = TAG_Bool(( variable[7] /*vpm*/)==( TAG_Int(3)));
200 if (UNTAG_Bool(variable[8])) { /*if*/
201 variable[5] = TAG_Bool(true);
202 goto return_label3;
203 } else { /*if*/
204 variable[8] = TAG_Bool(( variable[7] /*vpm*/)==( TAG_Int(0)));
205 if (UNTAG_Bool(variable[8])) { /*if*/
206 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
207 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Visibility error: Property "), TAG_Int(27)); /*new String*/
208 variable[10] = variable[9];
209 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
210 variable[11] = variable[0];
211 variable[12] = variable[11];
212 variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
213 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
214 variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" comes from the hidden module "), TAG_Int(30)); /*new String*/
215 variable[14] = variable[13];
216 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
217 variable[15] = variable[3] /*cm*/;
218 variable[15] = CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/;
219 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[15]) /*AbstractArray::add*/;
220 variable[16] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
221 variable[17] = variable[16];
222 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[17]) /*AbstractArray::add*/;
223 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
224 CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[2] /*n*/, variable[8]) /*AbsSyntaxVisitor::error*/;
225 variable[5] = TAG_Bool(false);
226 goto return_label3;
227 } else { /*if*/
228 variable[8] = variable[0];
229 variable[8] = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(variable[8])(variable[8]) /*MMGlobalProperty::visibility_level*/;
230 variable[8] = TAG_Bool(UNTAG_Int(variable[8])>=UNTAG_Int( TAG_Int(3)));
231 if (UNTAG_Bool(variable[8])) { /*if*/
232 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
233 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Visibility error: Property "), TAG_Int(27)); /*new String*/
234 variable[10] = variable[9];
235 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
236 variable[11] = variable[0];
237 variable[12] = variable[11];
238 variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
239 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
240 variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" is private."), TAG_Int(12)); /*new String*/
241 variable[14] = variable[13];
242 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
243 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
244 CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[2] /*n*/, variable[8]) /*AbsSyntaxVisitor::error*/;
245 variable[5] = TAG_Bool(false);
246 goto return_label3;
247 } else { /*if*/
248 variable[8] = variable[0];
249 variable[8] = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(variable[8])(variable[8]) /*MMGlobalProperty::visibility_level*/;
250 variable[8] = TAG_Bool(UNTAG_Int(variable[8])>=UNTAG_Int( TAG_Int(2)));
251 variable[9] = variable[8];
252 if (UNTAG_Bool(variable[9])) { /* and */
253 variable[9] = TAG_Bool(!UNTAG_Bool( variable[4] /*allows_protected*/));
254 }
255 variable[8] = variable[9];
256 if (UNTAG_Bool(variable[8])) { /*if*/
257 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
258 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Visibility error: Property "), TAG_Int(27)); /*new String*/
259 variable[10] = variable[9];
260 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
261 variable[11] = variable[0];
262 variable[12] = variable[11];
263 variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
264 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
265 variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" is protected and can only acceded by self."), TAG_Int(43)); /*new String*/
266 variable[14] = variable[13];
267 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
268 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
269 CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[2] /*n*/, variable[8]) /*AbsSyntaxVisitor::error*/;
270 variable[5] = TAG_Bool(false);
271 goto return_label3;
272 }
273 }
274 }
275 }
276 variable[5] = TAG_Bool(true);
277 goto return_label3;
278 return_label3: while(false);
279 tracehead = trace.prev;
280 return variable[5];
281 }
282 val_t syntax_base___MMLocalProperty___node(val_t self) {
283 struct trace_t trace = {NULL, NULL, 103, LOCATE_syntax_base___MMLocalProperty___node};
284 val_t variable[2];
285 void **closurevariable = NULL;
286 trace.prev = tracehead; tracehead = &trace;
287 trace.file = LOCATE_syntax_base;
288 variable[0] = self;
289 variable[1] = NIT_NULL /*null*/;
290 goto return_label4;
291 return_label4: while(false);
292 tracehead = trace.prev;
293 return variable[1];
294 }
295 val_t syntax_base___MMLocalProperty___is_init(val_t self) {
296 struct trace_t trace = {NULL, NULL, 106, LOCATE_syntax_base___MMLocalProperty___is_init};
297 val_t variable[2];
298 void **closurevariable = NULL;
299 trace.prev = tracehead; tracehead = &trace;
300 trace.file = LOCATE_syntax_base;
301 variable[0] = self;
302 variable[1] = TAG_Bool(false);
303 goto return_label5;
304 return_label5: while(false);
305 tracehead = trace.prev;
306 return variable[1];
307 }
308 val_t syntax_base___MMSrcAttribute___node(val_t self) {
309 struct trace_t trace = {NULL, NULL, 113, LOCATE_syntax_base___MMSrcAttribute___node};
310 val_t *variable = NULL;
311 void **closurevariable = NULL;
312 trace.prev = tracehead; tracehead = &trace;
313 trace.file = LOCATE_syntax_base;
314 tracehead = trace.prev;
315 return ATTR_syntax_base___MMSrcAttribute____node( self) /*MMSrcAttribute::_node*/;
316 }
317 void syntax_base___MMSrcAttribute___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
318 struct trace_t trace = {NULL, NULL, 114, LOCATE_syntax_base___MMSrcAttribute___init};
319 val_t variable[6];
320 void **closurevariable = NULL;
321 trace.prev = tracehead; tracehead = &trace;
322 trace.file = LOCATE_syntax_base;
323 variable[0] = self;
324 variable[1] = param0;
325 variable[2] = param1;
326 variable[3] = param2;
327 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcAttribute].i]) return;
328 CALL_abstractmetamodel___MMLocalProperty___init(variable[0])(variable[0], variable[1] /*name*/, variable[2] /*cla*/, init_table /*YYY*/) /*MMLocalProperty::init*/;
329 variable[5] = variable[0];
330 ATTR_syntax_base___MMSrcAttribute____node(variable[5]) /*MMSrcAttribute::_node*/ = variable[3] /*n*/;
331 return_label6: while(false);
332 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcAttribute].i] = 1;
333 tracehead = trace.prev;
334 return;
335 }
336 val_t syntax_base___MMAttrImplementationMethod___node(val_t self) {
337 struct trace_t trace = {NULL, NULL, 129, LOCATE_syntax_base___MMAttrImplementationMethod___node};
338 val_t *variable = NULL;
339 void **closurevariable = NULL;
340 trace.prev = tracehead; tracehead = &trace;
341 trace.file = LOCATE_syntax_base;
342 tracehead = trace.prev;
343 return ATTR_syntax_base___MMAttrImplementationMethod____node( self) /*MMAttrImplementationMethod::_node*/;
344 }
345 void syntax_base___MMAttrImplementationMethod___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
346 struct trace_t trace = {NULL, NULL, 130, LOCATE_syntax_base___MMAttrImplementationMethod___init};
347 val_t variable[6];
348 void **closurevariable = NULL;
349 trace.prev = tracehead; tracehead = &trace;
350 trace.file = LOCATE_syntax_base;
351 variable[0] = self;
352 variable[1] = param0;
353 variable[2] = param1;
354 variable[3] = param2;
355 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMAttrImplementationMethod].i]) return;
356 CALL_abstractmetamodel___MMLocalProperty___init(variable[0])(variable[0], variable[1] /*name*/, variable[2] /*cla*/, init_table /*YYY*/) /*MMLocalProperty::init*/;
357 variable[5] = variable[0];
358 ATTR_syntax_base___MMAttrImplementationMethod____node(variable[5]) /*MMAttrImplementationMethod::_node*/ = variable[3] /*n*/;
359 return_label7: while(false);
360 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMAttrImplementationMethod].i] = 1;
361 tracehead = trace.prev;
362 return;
363 }
364 void syntax_base___MMReadImplementationMethod___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
365 struct trace_t trace = {NULL, NULL, 140, LOCATE_syntax_base___MMReadImplementationMethod___init};
366 val_t variable[5];
367 void **closurevariable = NULL;
368 trace.prev = tracehead; tracehead = &trace;
369 trace.file = LOCATE_syntax_base;
370 variable[0] = self;
371 variable[1] = param0;
372 variable[2] = param1;
373 variable[3] = param2;
374 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMReadImplementationMethod].i]) return;
375 CALL_syntax_base___MMAttrImplementationMethod___init(variable[0])(variable[0], variable[1] /*name*/, variable[2] /*cla*/, variable[3] /*n*/, init_table /*YYY*/) /*MMAttrImplementationMethod::init*/;
376 return_label8: while(false);
377 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMReadImplementationMethod].i] = 1;
378 tracehead = trace.prev;
379 return;
380 }
381 void syntax_base___MMWriteImplementationMethod___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
382 struct trace_t trace = {NULL, NULL, 149, LOCATE_syntax_base___MMWriteImplementationMethod___init};
383 val_t variable[5];
384 void **closurevariable = NULL;
385 trace.prev = tracehead; tracehead = &trace;
386 trace.file = LOCATE_syntax_base;
387 variable[0] = self;
388 variable[1] = param0;
389 variable[2] = param1;
390 variable[3] = param2;
391 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMWriteImplementationMethod].i]) return;
392 CALL_syntax_base___MMAttrImplementationMethod___init(variable[0])(variable[0], variable[1] /*name*/, variable[2] /*cla*/, variable[3] /*n*/, init_table /*YYY*/) /*MMAttrImplementationMethod::init*/;
393 return_label9: while(false);
394 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMWriteImplementationMethod].i] = 1;
395 tracehead = trace.prev;
396 return;
397 }
398 val_t syntax_base___MMMethSrcMethod___node(val_t self) {
399 struct trace_t trace = {NULL, NULL, 159, LOCATE_syntax_base___MMMethSrcMethod___node};
400 val_t *variable = NULL;
401 void **closurevariable = NULL;
402 trace.prev = tracehead; tracehead = &trace;
403 trace.file = LOCATE_syntax_base;
404 tracehead = trace.prev;
405 return ATTR_syntax_base___MMMethSrcMethod____node( self) /*MMMethSrcMethod::_node*/;
406 }
407 val_t syntax_base___MMMethSrcMethod___is_init(val_t self) {
408 struct trace_t trace = {NULL, NULL, 158, LOCATE_syntax_base___MMMethSrcMethod___is_init};
409 val_t variable[3];
410 void **closurevariable = NULL;
411 trace.prev = tracehead; tracehead = &trace;
412 trace.file = LOCATE_syntax_base;
413 variable[0] = self;
414 variable[2] = variable[0];
415 variable[2] = ATTR_syntax_base___MMMethSrcMethod____node(variable[2]) /*MMMethSrcMethod::_node*/;
416 variable[2] = TAG_Bool((variable[2]==NIT_NULL) || VAL_ISA(variable[2], COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
417 variable[1] = variable[2];
418 goto return_label10;
419 return_label10: while(false);
420 tracehead = trace.prev;
421 return variable[1];
422 }
423 void syntax_base___MMMethSrcMethod___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
424 struct trace_t trace = {NULL, NULL, 160, LOCATE_syntax_base___MMMethSrcMethod___init};
425 val_t variable[6];
426 void **closurevariable = NULL;
427 trace.prev = tracehead; tracehead = &trace;
428 trace.file = LOCATE_syntax_base;
429 variable[0] = self;
430 variable[1] = param0;
431 variable[2] = param1;
432 variable[3] = param2;
433 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMMethSrcMethod].i]) return;
434 CALL_abstractmetamodel___MMLocalProperty___init(variable[0])(variable[0], variable[1] /*name*/, variable[2] /*cla*/, init_table /*YYY*/) /*MMLocalProperty::init*/;
435 variable[5] = variable[0];
436 ATTR_syntax_base___MMMethSrcMethod____node(variable[5]) /*MMMethSrcMethod::_node*/ = variable[3] /*n*/;
437 return_label11: while(false);
438 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMMethSrcMethod].i] = 1;
439 tracehead = trace.prev;
440 return;
441 }
442 val_t syntax_base___MMSrcTypeProperty___node(val_t self) {
443 struct trace_t trace = {NULL, NULL, 171, LOCATE_syntax_base___MMSrcTypeProperty___node};
444 val_t *variable = NULL;
445 void **closurevariable = NULL;
446 trace.prev = tracehead; tracehead = &trace;
447 trace.file = LOCATE_syntax_base;
448 tracehead = trace.prev;
449 return ATTR_syntax_base___MMSrcTypeProperty____node( self) /*MMSrcTypeProperty::_node*/;
450 }
451 void syntax_base___MMSrcTypeProperty___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
452 struct trace_t trace = {NULL, NULL, 172, LOCATE_syntax_base___MMSrcTypeProperty___init};
453 val_t variable[6];
454 void **closurevariable = NULL;
455 trace.prev = tracehead; tracehead = &trace;
456 trace.file = LOCATE_syntax_base;
457 variable[0] = self;
458 variable[1] = param0;
459 variable[2] = param1;
460 variable[3] = param2;
461 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcTypeProperty].i]) return;
462 CALL_abstractmetamodel___MMLocalProperty___init(variable[0])(variable[0], variable[1] /*name*/, variable[2] /*cla*/, init_table /*YYY*/) /*MMLocalProperty::init*/;
463 variable[5] = variable[0];
464 ATTR_syntax_base___MMSrcTypeProperty____node(variable[5]) /*MMSrcTypeProperty::_node*/ = variable[3] /*n*/;
465 return_label12: while(false);
466 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcTypeProperty].i] = 1;
467 tracehead = trace.prev;
468 return;
469 }
470 val_t syntax_base___MMImplicitInit___is_init(val_t self) {
471 struct trace_t trace = {NULL, NULL, 182, LOCATE_syntax_base___MMImplicitInit___is_init};
472 val_t variable[2];
473 void **closurevariable = NULL;
474 trace.prev = tracehead; tracehead = &trace;
475 trace.file = LOCATE_syntax_base;
476 variable[0] = self;
477 variable[1] = TAG_Bool(true);
478 goto return_label13;
479 return_label13: while(false);
480 tracehead = trace.prev;
481 return variable[1];
482 }
483 val_t syntax_base___MMImplicitInit___unassigned_attributes(val_t self) {
484 struct trace_t trace = {NULL, NULL, 183, LOCATE_syntax_base___MMImplicitInit___unassigned_attributes};
485 val_t *variable = NULL;
486 void **closurevariable = NULL;
487 trace.prev = tracehead; tracehead = &trace;
488 trace.file = LOCATE_syntax_base;
489 tracehead = trace.prev;
490 return ATTR_syntax_base___MMImplicitInit____unassigned_attributes( self) /*MMImplicitInit::_unassigned_attributes*/;
491 }
492 val_t syntax_base___MMImplicitInit___super_inits(val_t self) {
493 struct trace_t trace = {NULL, NULL, 184, LOCATE_syntax_base___MMImplicitInit___super_inits};
494 val_t *variable = NULL;
495 void **closurevariable = NULL;
496 trace.prev = tracehead; tracehead = &trace;
497 trace.file = LOCATE_syntax_base;
498 tracehead = trace.prev;
499 return ATTR_syntax_base___MMImplicitInit____super_inits( self) /*MMImplicitInit::_super_inits*/;
500 }
501 void syntax_base___MMImplicitInit___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
502 struct trace_t trace = {NULL, NULL, 185, LOCATE_syntax_base___MMImplicitInit___init};
503 static val_t once_value_15; static int once_bool_15; /* Once value for variable[5]*/
504 val_t variable[6];
505 void **closurevariable = NULL;
506 trace.prev = tracehead; tracehead = &trace;
507 trace.file = LOCATE_syntax_base;
508 variable[0] = self;
509 variable[1] = param0;
510 variable[2] = param1;
511 variable[3] = param2;
512 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMImplicitInit].i]) return;
513 if (once_bool_15) variable[5] = once_value_15;
514 else {
515 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
516 variable[5] = CALL_symbol___String___to_symbol(variable[5])(variable[5]) /*String::to_symbol*/;
517 once_value_15 = variable[5];
518 once_bool_15 = true;
519 }
520 CALL_syntax_base___MMMethSrcMethod___init(variable[0])(variable[0], variable[5], variable[1] /*cla*/, NIT_NULL /*null*/, init_table /*YYY*/) /*MMMethSrcMethod::init*/;
521 variable[5] = variable[0];
522 ATTR_syntax_base___MMImplicitInit____unassigned_attributes(variable[5]) /*MMImplicitInit::_unassigned_attributes*/ = variable[2] /*unassigned_attributes*/;
523 variable[5] = variable[0];
524 ATTR_syntax_base___MMImplicitInit____super_inits(variable[5]) /*MMImplicitInit::_super_inits*/ = variable[3] /*super_inits*/;
525 return_label14: while(false);
526 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMImplicitInit].i] = 1;
527 tracehead = trace.prev;
528 return;
529 }
530 val_t syntax_base___Variable___to_s(val_t self) {
531 struct trace_t trace = {NULL, NULL, 204, LOCATE_syntax_base___Variable___to_s};
532 val_t variable[3];
533 void **closurevariable = NULL;
534 trace.prev = tracehead; tracehead = &trace;
535 trace.file = LOCATE_syntax_base;
536 variable[0] = self;
537 variable[2] = variable[0];
538 variable[2] = ATTR_syntax_base___Variable____name(variable[2]) /*Variable::_name*/;
539 variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Symbol::to_s*/;
540 variable[1] = variable[2];
541 goto return_label16;
542 return_label16: while(false);
543 tracehead = trace.prev;
544 return variable[1];
545 }
546 val_t syntax_base___Variable___name(val_t self) {
547 struct trace_t trace = {NULL, NULL, 195, LOCATE_syntax_base___Variable___name};
548 val_t *variable = NULL;
549 void **closurevariable = NULL;
550 trace.prev = tracehead; tracehead = &trace;
551 trace.file = LOCATE_syntax_base;
552 tracehead = trace.prev;
553 return ATTR_syntax_base___Variable____name( self) /*Variable::_name*/;
554 }
555 val_t syntax_base___Variable___decl(val_t self) {
556 struct trace_t trace = {NULL, NULL, 198, LOCATE_syntax_base___Variable___decl};
557 val_t *variable = NULL;
558 void **closurevariable = NULL;
559 trace.prev = tracehead; tracehead = &trace;
560 trace.file = LOCATE_syntax_base;
561 tracehead = trace.prev;
562 return ATTR_syntax_base___Variable____decl( self) /*Variable::_decl*/;
563 }
564 val_t syntax_base___Variable___stype(val_t self) {
565 struct trace_t trace = {NULL, NULL, 201, LOCATE_syntax_base___Variable___stype};
566 val_t *variable = NULL;
567 void **closurevariable = NULL;
568 trace.prev = tracehead; tracehead = &trace;
569 trace.file = LOCATE_syntax_base;
570 tracehead = trace.prev;
571 return ATTR_syntax_base___Variable____stype( self) /*Variable::_stype*/;
572 }
573 void syntax_base___Variable___stype__eq(val_t self, val_t param0) {
574 struct trace_t trace = {NULL, NULL, 201, LOCATE_syntax_base___Variable___stype__eq};
575 val_t *variable = NULL;
576 void **closurevariable = NULL;
577 trace.prev = tracehead; tracehead = &trace;
578 trace.file = LOCATE_syntax_base;
579 ATTR_syntax_base___Variable____stype( self) /*Variable::_stype*/ = param0;
580 tracehead = trace.prev;
581 return;
582 }
583 val_t syntax_base___Variable___kind(val_t self) {
584 struct trace_t trace = {NULL, NULL, 206, LOCATE_syntax_base___Variable___kind};
585 val_t *variable = NULL;
586 void **closurevariable = NULL;
587 trace.prev = tracehead; tracehead = &trace;
588 trace.file = LOCATE_syntax_base;
589 fprintf(stderr, "Deferred method called");
590 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 206);
591 nit_exit(1);
592 tracehead = trace.prev;
593 return NIT_NULL;
594 }
595 void syntax_base___Variable___init(val_t self, val_t param0, val_t param1, int* init_table) {
596 struct trace_t trace = {NULL, NULL, 208, LOCATE_syntax_base___Variable___init};
597 val_t variable[5];
598 void **closurevariable = NULL;
599 trace.prev = tracehead; tracehead = &trace;
600 trace.file = LOCATE_syntax_base;
601 variable[0] = self;
602 variable[1] = param0;
603 variable[2] = param1;
604 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Variable].i]) return;
605 variable[4] = variable[0];
606 ATTR_syntax_base___Variable____name(variable[4]) /*Variable::_name*/ = variable[1] /*n*/;
607 variable[4] = variable[0];
608 ATTR_syntax_base___Variable____decl(variable[4]) /*Variable::_decl*/ = variable[2] /*d*/;
609 return_label17: while(false);
610 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Variable].i] = 1;
611 tracehead = trace.prev;
612 return;
613 }
614 val_t syntax_base___VarVariable___kind(val_t self) {
615 struct trace_t trace = {NULL, NULL, 220, LOCATE_syntax_base___VarVariable___kind};
616 static val_t once_value_19; static int once_bool_19; /* Once value for variable[2]*/
617 val_t variable[3];
618 void **closurevariable = NULL;
619 trace.prev = tracehead; tracehead = &trace;
620 trace.file = LOCATE_syntax_base;
621 variable[0] = self;
622 if (once_bool_19) variable[2] = once_value_19;
623 else {
624 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("variable"), TAG_Int(8)); /*new String*/
625 once_value_19 = variable[2];
626 once_bool_19 = true;
627 }
628 variable[1] = variable[2];
629 goto return_label18;
630 return_label18: while(false);
631 tracehead = trace.prev;
632 return variable[1];
633 }
634 void syntax_base___VarVariable___init(val_t self, val_t param0, val_t param1, int* init_table) {
635 struct trace_t trace = {NULL, NULL, 221, LOCATE_syntax_base___VarVariable___init};
636 val_t variable[4];
637 void **closurevariable = NULL;
638 trace.prev = tracehead; tracehead = &trace;
639 trace.file = LOCATE_syntax_base;
640 variable[0] = self;
641 variable[1] = param0;
642 variable[2] = param1;
643 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_VarVariable].i]) return;
644 CALL_syntax_base___Variable___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*Variable::init*/;
645 return_label20: while(false);
646 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_VarVariable].i] = 1;
647 tracehead = trace.prev;
648 return;
649 }
650 val_t syntax_base___ParamVariable___kind(val_t self) {
651 struct trace_t trace = {NULL, NULL, 227, LOCATE_syntax_base___ParamVariable___kind};
652 static val_t once_value_22; static int once_bool_22; /* Once value for variable[2]*/
653 val_t variable[3];
654 void **closurevariable = NULL;
655 trace.prev = tracehead; tracehead = &trace;
656 trace.file = LOCATE_syntax_base;
657 variable[0] = self;
658 if (once_bool_22) variable[2] = once_value_22;
659 else {
660 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("parameter"), TAG_Int(9)); /*new String*/
661 once_value_22 = variable[2];
662 once_bool_22 = true;
663 }
664 variable[1] = variable[2];
665 goto return_label21;
666 return_label21: while(false);
667 tracehead = trace.prev;
668 return variable[1];
669 }
670 void syntax_base___ParamVariable___init(val_t self, val_t param0, val_t param1, int* init_table) {
671 struct trace_t trace = {NULL, NULL, 228, LOCATE_syntax_base___ParamVariable___init};
672 val_t variable[4];
673 void **closurevariable = NULL;
674 trace.prev = tracehead; tracehead = &trace;
675 trace.file = LOCATE_syntax_base;
676 variable[0] = self;
677 variable[1] = param0;
678 variable[2] = param1;
679 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ParamVariable].i]) return;
680 CALL_syntax_base___Variable___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*Variable::init*/;
681 return_label23: while(false);
682 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ParamVariable].i] = 1;
683 tracehead = trace.prev;
684 return;
685 }
686 val_t syntax_base___AutoVariable___kind(val_t self) {
687 struct trace_t trace = {NULL, NULL, 234, LOCATE_syntax_base___AutoVariable___kind};
688 static val_t once_value_25; static int once_bool_25; /* Once value for variable[2]*/
689 val_t variable[3];
690 void **closurevariable = NULL;
691 trace.prev = tracehead; tracehead = &trace;
692 trace.file = LOCATE_syntax_base;
693 variable[0] = self;
694 if (once_bool_25) variable[2] = once_value_25;
695 else {
696 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("automatic variable"), TAG_Int(18)); /*new String*/
697 once_value_25 = variable[2];
698 once_bool_25 = true;
699 }
700 variable[1] = variable[2];
701 goto return_label24;
702 return_label24: while(false);
703 tracehead = trace.prev;
704 return variable[1];
705 }
706 void syntax_base___AutoVariable___init(val_t self, val_t param0, val_t param1, int* init_table) {
707 struct trace_t trace = {NULL, NULL, 235, LOCATE_syntax_base___AutoVariable___init};
708 val_t variable[4];
709 void **closurevariable = NULL;
710 trace.prev = tracehead; tracehead = &trace;
711 trace.file = LOCATE_syntax_base;
712 variable[0] = self;
713 variable[1] = param0;
714 variable[2] = param1;
715 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AutoVariable].i]) return;
716 CALL_syntax_base___Variable___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*Variable::init*/;
717 return_label26: while(false);
718 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AutoVariable].i] = 1;
719 tracehead = trace.prev;
720 return;
721 }
722 val_t syntax_base___ClosureVariable___kind(val_t self) {
723 struct trace_t trace = {NULL, NULL, 242, LOCATE_syntax_base___ClosureVariable___kind};
724 static val_t once_value_28; static int once_bool_28; /* Once value for variable[2]*/
725 val_t variable[3];
726 void **closurevariable = NULL;
727 trace.prev = tracehead; tracehead = &trace;
728 trace.file = LOCATE_syntax_base;
729 variable[0] = self;
730 if (once_bool_28) variable[2] = once_value_28;
731 else {
732 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("closure"), TAG_Int(7)); /*new String*/
733 once_value_28 = variable[2];
734 once_bool_28 = true;
735 }
736 variable[1] = variable[2];
737 goto return_label27;
738 return_label27: while(false);
739 tracehead = trace.prev;
740 return variable[1];
741 }
742 val_t syntax_base___ClosureVariable___closure(val_t self) {
743 struct trace_t trace = {NULL, NULL, 244, LOCATE_syntax_base___ClosureVariable___closure};
744 val_t *variable = NULL;
745 void **closurevariable = NULL;
746 trace.prev = tracehead; tracehead = &trace;
747 trace.file = LOCATE_syntax_base;
748 tracehead = trace.prev;
749 return ATTR_syntax_base___ClosureVariable____closure( self) /*ClosureVariable::_closure*/;
750 }
751 void syntax_base___ClosureVariable___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
752 struct trace_t trace = {NULL, NULL, 247, LOCATE_syntax_base___ClosureVariable___init};
753 val_t variable[6];
754 void **closurevariable = NULL;
755 trace.prev = tracehead; tracehead = &trace;
756 trace.file = LOCATE_syntax_base;
757 variable[0] = self;
758 variable[1] = param0;
759 variable[2] = param1;
760 variable[3] = param2;
761 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClosureVariable].i]) return;
762 CALL_syntax_base___Variable___init(variable[0])(variable[0], variable[1] /*n*/, variable[2] /*d*/, init_table /*YYY*/) /*Variable::init*/;
763 variable[5] = variable[0];
764 ATTR_syntax_base___ClosureVariable____closure(variable[5]) /*ClosureVariable::_closure*/ = variable[3] /*c*/;
765 return_label29: while(false);
766 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClosureVariable].i] = 1;
767 tracehead = trace.prev;
768 return;
769 }
770 val_t syntax_base___AbsSyntaxVisitor___type_object(val_t self) {
771 struct trace_t trace = {NULL, NULL, 259, LOCATE_syntax_base___AbsSyntaxVisitor___type_object};
772 static val_t once_value_31; static int once_bool_31; /* Once value for variable[3]*/
773 val_t variable[4];
774 void **closurevariable = NULL;
775 trace.prev = tracehead; tracehead = &trace;
776 trace.file = LOCATE_syntax_base;
777 variable[0] = self;
778 variable[2] = variable[0];
779 variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[2]) /*AbsSyntaxVisitor::_module*/;
780 if (once_bool_31) variable[3] = once_value_31;
781 else {
782 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Object"), TAG_Int(6)); /*new String*/
783 variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
784 once_value_31 = variable[3];
785 once_bool_31 = true;
786 }
787 variable[2] = CALL_abstractmetamodel___MMModule___class_by_name(variable[2])(variable[2], variable[3]) /*MMModule::class_by_name*/;
788 variable[2] = CALL_static_type___MMLocalClass___get_type(variable[2])(variable[2]) /*MMLocalClass::get_type*/;
789 variable[1] = variable[2];
790 goto return_label30;
791 return_label30: while(false);
792 tracehead = trace.prev;
793 return variable[1];
794 }
795 val_t syntax_base___AbsSyntaxVisitor___type_bool(val_t self) {
796 struct trace_t trace = {NULL, NULL, 265, LOCATE_syntax_base___AbsSyntaxVisitor___type_bool};
797 static val_t once_value_33; static int once_bool_33; /* Once value for variable[3]*/
798 val_t variable[4];
799 void **closurevariable = NULL;
800 trace.prev = tracehead; tracehead = &trace;
801 trace.file = LOCATE_syntax_base;
802 variable[0] = self;
803 variable[2] = variable[0];
804 variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[2]) /*AbsSyntaxVisitor::_module*/;
805 if (once_bool_33) variable[3] = once_value_33;
806 else {
807 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Bool"), TAG_Int(4)); /*new String*/
808 variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
809 once_value_33 = variable[3];
810 once_bool_33 = true;
811 }
812 variable[2] = CALL_abstractmetamodel___MMModule___class_by_name(variable[2])(variable[2], variable[3]) /*MMModule::class_by_name*/;
813 variable[2] = CALL_static_type___MMLocalClass___get_type(variable[2])(variable[2]) /*MMLocalClass::get_type*/;
814 variable[1] = variable[2];
815 goto return_label32;
816 return_label32: while(false);
817 tracehead = trace.prev;
818 return variable[1];
819 }
820 val_t syntax_base___AbsSyntaxVisitor___type_int(val_t self) {
821 struct trace_t trace = {NULL, NULL, 271, LOCATE_syntax_base___AbsSyntaxVisitor___type_int};
822 static val_t once_value_35; static int once_bool_35; /* Once value for variable[3]*/
823 val_t variable[4];
824 void **closurevariable = NULL;
825 trace.prev = tracehead; tracehead = &trace;
826 trace.file = LOCATE_syntax_base;
827 variable[0] = self;
828 variable[2] = variable[0];
829 variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[2]) /*AbsSyntaxVisitor::_module*/;
830 if (once_bool_35) variable[3] = once_value_35;
831 else {
832 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Int"), TAG_Int(3)); /*new String*/
833 variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
834 once_value_35 = variable[3];
835 once_bool_35 = true;
836 }
837 variable[2] = CALL_abstractmetamodel___MMModule___class_by_name(variable[2])(variable[2], variable[3]) /*MMModule::class_by_name*/;
838 variable[2] = CALL_static_type___MMLocalClass___get_type(variable[2])(variable[2]) /*MMLocalClass::get_type*/;
839 variable[1] = variable[2];
840 goto return_label34;
841 return_label34: while(false);
842 tracehead = trace.prev;
843 return variable[1];
844 }
845 val_t syntax_base___AbsSyntaxVisitor___type_float(val_t self) {
846 struct trace_t trace = {NULL, NULL, 277, LOCATE_syntax_base___AbsSyntaxVisitor___type_float};
847 static val_t once_value_37; static int once_bool_37; /* Once value for variable[3]*/
848 val_t variable[4];
849 void **closurevariable = NULL;
850 trace.prev = tracehead; tracehead = &trace;
851 trace.file = LOCATE_syntax_base;
852 variable[0] = self;
853 variable[2] = variable[0];
854 variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[2]) /*AbsSyntaxVisitor::_module*/;
855 if (once_bool_37) variable[3] = once_value_37;
856 else {
857 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Float"), TAG_Int(5)); /*new String*/
858 variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
859 once_value_37 = variable[3];
860 once_bool_37 = true;
861 }
862 variable[2] = CALL_abstractmetamodel___MMModule___class_by_name(variable[2])(variable[2], variable[3]) /*MMModule::class_by_name*/;
863 variable[2] = CALL_static_type___MMLocalClass___get_type(variable[2])(variable[2]) /*MMLocalClass::get_type*/;
864 variable[1] = variable[2];
865 goto return_label36;
866 return_label36: while(false);
867 tracehead = trace.prev;
868 return variable[1];
869 }
870 val_t syntax_base___AbsSyntaxVisitor___type_char(val_t self) {
871 struct trace_t trace = {NULL, NULL, 283, LOCATE_syntax_base___AbsSyntaxVisitor___type_char};
872 static val_t once_value_39; static int once_bool_39; /* Once value for variable[3]*/
873 val_t variable[4];
874 void **closurevariable = NULL;
875 trace.prev = tracehead; tracehead = &trace;
876 trace.file = LOCATE_syntax_base;
877 variable[0] = self;
878 variable[2] = variable[0];
879 variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[2]) /*AbsSyntaxVisitor::_module*/;
880 if (once_bool_39) variable[3] = once_value_39;
881 else {
882 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Char"), TAG_Int(4)); /*new String*/
883 variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
884 once_value_39 = variable[3];
885 once_bool_39 = true;
886 }
887 variable[2] = CALL_abstractmetamodel___MMModule___class_by_name(variable[2])(variable[2], variable[3]) /*MMModule::class_by_name*/;
888 variable[2] = CALL_static_type___MMLocalClass___get_type(variable[2])(variable[2]) /*MMLocalClass::get_type*/;
889 variable[1] = variable[2];
890 goto return_label38;
891 return_label38: while(false);
892 tracehead = trace.prev;
893 return variable[1];
894 }
895 val_t syntax_base___AbsSyntaxVisitor___type_string(val_t self) {
896 struct trace_t trace = {NULL, NULL, 289, LOCATE_syntax_base___AbsSyntaxVisitor___type_string};
897 static val_t once_value_41; static int once_bool_41; /* Once value for variable[3]*/
898 val_t variable[4];
899 void **closurevariable = NULL;
900 trace.prev = tracehead; tracehead = &trace;
901 trace.file = LOCATE_syntax_base;
902 variable[0] = self;
903 variable[2] = variable[0];
904 variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[2]) /*AbsSyntaxVisitor::_module*/;
905 if (once_bool_41) variable[3] = once_value_41;
906 else {
907 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("String"), TAG_Int(6)); /*new String*/
908 variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
909 once_value_41 = variable[3];
910 once_bool_41 = true;
911 }
912 variable[2] = CALL_abstractmetamodel___MMModule___class_by_name(variable[2])(variable[2], variable[3]) /*MMModule::class_by_name*/;
913 variable[2] = CALL_static_type___MMLocalClass___get_type(variable[2])(variable[2]) /*MMLocalClass::get_type*/;
914 variable[1] = variable[2];
915 goto return_label40;
916 return_label40: while(false);
917 tracehead = trace.prev;
918 return variable[1];
919 }
920 val_t syntax_base___AbsSyntaxVisitor___type_collection(val_t self) {
921 struct trace_t trace = {NULL, NULL, 295, LOCATE_syntax_base___AbsSyntaxVisitor___type_collection};
922 static val_t once_value_43; static int once_bool_43; /* Once value for variable[3]*/
923 val_t variable[4];
924 void **closurevariable = NULL;
925 trace.prev = tracehead; tracehead = &trace;
926 trace.file = LOCATE_syntax_base;
927 variable[0] = self;
928 variable[2] = variable[0];
929 variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[2]) /*AbsSyntaxVisitor::_module*/;
930 if (once_bool_43) variable[3] = once_value_43;
931 else {
932 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Collection"), TAG_Int(10)); /*new String*/
933 variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
934 once_value_43 = variable[3];
935 once_bool_43 = true;
936 }
937 variable[2] = CALL_abstractmetamodel___MMModule___class_by_name(variable[2])(variable[2], variable[3]) /*MMModule::class_by_name*/;
938 variable[2] = CALL_static_type___MMLocalClass___get_type(variable[2])(variable[2]) /*MMLocalClass::get_type*/;
939 variable[1] = variable[2];
940 goto return_label42;
941 return_label42: while(false);
942 tracehead = trace.prev;
943 return variable[1];
944 }
945 val_t syntax_base___AbsSyntaxVisitor___type_array(val_t self, val_t param0) {
946 struct trace_t trace = {NULL, NULL, 301, LOCATE_syntax_base___AbsSyntaxVisitor___type_array};
947 static val_t once_value_45; static int once_bool_45; /* Once value for variable[4]*/
948 val_t variable[5];
949 void **closurevariable = NULL;
950 trace.prev = tracehead; tracehead = &trace;
951 trace.file = LOCATE_syntax_base;
952 variable[0] = self;
953 variable[1] = param0;
954 variable[3] = variable[0];
955 variable[3] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[3]) /*AbsSyntaxVisitor::_module*/;
956 if (once_bool_45) variable[4] = once_value_45;
957 else {
958 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Array"), TAG_Int(5)); /*new String*/
959 variable[4] = CALL_symbol___String___to_symbol(variable[4])(variable[4]) /*String::to_symbol*/;
960 once_value_45 = variable[4];
961 once_bool_45 = true;
962 }
963 variable[3] = CALL_abstractmetamodel___MMModule___class_by_name(variable[3])(variable[3], variable[4]) /*MMModule::class_by_name*/;
964 variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[MMType]*/
965 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[1] /*stype*/) /*AbstractArray::add*/;
966 variable[3] = CALL_genericity___MMLocalClass___get_instantiate_type(variable[3])(variable[3], variable[4]) /*MMLocalClass::get_instantiate_type*/;
967 variable[2] = variable[3];
968 goto return_label44;
969 return_label44: while(false);
970 tracehead = trace.prev;
971 return variable[2];
972 }
973 val_t syntax_base___AbsSyntaxVisitor___type_discrete(val_t self) {
974 struct trace_t trace = {NULL, NULL, 307, LOCATE_syntax_base___AbsSyntaxVisitor___type_discrete};
975 static val_t once_value_47; static int once_bool_47; /* Once value for variable[3]*/
976 val_t variable[4];
977 void **closurevariable = NULL;
978 trace.prev = tracehead; tracehead = &trace;
979 trace.file = LOCATE_syntax_base;
980 variable[0] = self;
981 variable[2] = variable[0];
982 variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[2]) /*AbsSyntaxVisitor::_module*/;
983 if (once_bool_47) variable[3] = once_value_47;
984 else {
985 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Discrete"), TAG_Int(8)); /*new String*/
986 variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
987 once_value_47 = variable[3];
988 once_bool_47 = true;
989 }
990 variable[2] = CALL_abstractmetamodel___MMModule___class_by_name(variable[2])(variable[2], variable[3]) /*MMModule::class_by_name*/;
991 variable[2] = CALL_static_type___MMLocalClass___get_type(variable[2])(variable[2]) /*MMLocalClass::get_type*/;
992 variable[1] = variable[2];
993 goto return_label46;
994 return_label46: while(false);
995 tracehead = trace.prev;
996 return variable[1];
997 }
998 val_t syntax_base___AbsSyntaxVisitor___type_range(val_t self, val_t param0) {
999 struct trace_t trace = {NULL, NULL, 313, LOCATE_syntax_base___AbsSyntaxVisitor___type_range};
1000 static val_t once_value_49; static int once_bool_49; /* Once value for variable[4]*/
1001 val_t variable[5];
1002 void **closurevariable = NULL;
1003 trace.prev = tracehead; tracehead = &trace;
1004 trace.file = LOCATE_syntax_base;
1005 variable[0] = self;
1006 variable[1] = param0;
1007 variable[3] = variable[0];
1008 variable[3] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[3]) /*AbsSyntaxVisitor::_module*/;
1009 if (once_bool_49) variable[4] = once_value_49;
1010 else {
1011 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Range"), TAG_Int(5)); /*new String*/
1012 variable[4] = CALL_symbol___String___to_symbol(variable[4])(variable[4]) /*String::to_symbol*/;
1013 once_value_49 = variable[4];
1014 once_bool_49 = true;
1015 }
1016 variable[3] = CALL_abstractmetamodel___MMModule___class_by_name(variable[3])(variable[3], variable[4]) /*MMModule::class_by_name*/;
1017 variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[MMType]*/
1018 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[1] /*stype*/) /*AbstractArray::add*/;
1019 variable[3] = CALL_genericity___MMLocalClass___get_instantiate_type(variable[3])(variable[3], variable[4]) /*MMLocalClass::get_instantiate_type*/;
1020 variable[2] = variable[3];
1021 goto return_label48;
1022 return_label48: while(false);
1023 tracehead = trace.prev;
1024 return variable[2];
1025 }
1026 val_t syntax_base___AbsSyntaxVisitor___type_none(val_t self) {
1027 struct trace_t trace = {NULL, NULL, 319, LOCATE_syntax_base___AbsSyntaxVisitor___type_none};
1028 val_t variable[3];
1029 void **closurevariable = NULL;
1030 trace.prev = tracehead; tracehead = &trace;
1031 trace.file = LOCATE_syntax_base;
1032 variable[0] = self;
1033 variable[2] = variable[0];
1034 variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[2]) /*AbsSyntaxVisitor::_module*/;
1035 variable[2] = CALL_static_type___MMModule___type_none(variable[2])(variable[2]) /*MMModule::type_none*/;
1036 variable[1] = variable[2];
1037 goto return_label50;
1038 return_label50: while(false);
1039 tracehead = trace.prev;
1040 return variable[1];
1041 }
1042 val_t syntax_base___AbsSyntaxVisitor___module(val_t self) {
1043 struct trace_t trace = {NULL, NULL, 325, LOCATE_syntax_base___AbsSyntaxVisitor___module};
1044 val_t *variable = NULL;
1045 void **closurevariable = NULL;
1046 trace.prev = tracehead; tracehead = &trace;
1047 trace.file = LOCATE_syntax_base;
1048 tracehead = trace.prev;
1049 return ATTR_syntax_base___AbsSyntaxVisitor____module( self) /*AbsSyntaxVisitor::_module*/;
1050 }
1051 void syntax_base___AbsSyntaxVisitor___module__eq(val_t self, val_t param0) {
1052 struct trace_t trace = {NULL, NULL, 325, LOCATE_syntax_base___AbsSyntaxVisitor___module__eq};
1053 val_t *variable = NULL;
1054 void **closurevariable = NULL;
1055 trace.prev = tracehead; tracehead = &trace;
1056 trace.file = LOCATE_syntax_base;
1057 ATTR_syntax_base___AbsSyntaxVisitor____module( self) /*AbsSyntaxVisitor::_module*/ = param0;
1058 tracehead = trace.prev;
1059 return;
1060 }
1061 val_t syntax_base___AbsSyntaxVisitor___local_class(val_t self) {
1062 struct trace_t trace = {NULL, NULL, 328, LOCATE_syntax_base___AbsSyntaxVisitor___local_class};
1063 val_t *variable = NULL;
1064 void **closurevariable = NULL;
1065 trace.prev = tracehead; tracehead = &trace;
1066 trace.file = LOCATE_syntax_base;
1067 tracehead = trace.prev;
1068 return ATTR_syntax_base___AbsSyntaxVisitor____local_class( self) /*AbsSyntaxVisitor::_local_class*/;
1069 }
1070 void syntax_base___AbsSyntaxVisitor___local_class__eq(val_t self, val_t param0) {
1071 struct trace_t trace = {NULL, NULL, 328, LOCATE_syntax_base___AbsSyntaxVisitor___local_class__eq};
1072 val_t *variable = NULL;
1073 void **closurevariable = NULL;
1074 trace.prev = tracehead; tracehead = &trace;
1075 trace.file = LOCATE_syntax_base;
1076 ATTR_syntax_base___AbsSyntaxVisitor____local_class( self) /*AbsSyntaxVisitor::_local_class*/ = param0;
1077 tracehead = trace.prev;
1078 return;
1079 }
1080 val_t syntax_base___AbsSyntaxVisitor___local_property(val_t self) {
1081 struct trace_t trace = {NULL, NULL, 331, LOCATE_syntax_base___AbsSyntaxVisitor___local_property};
1082 val_t *variable = NULL;
1083 void **closurevariable = NULL;
1084 trace.prev = tracehead; tracehead = &trace;
1085 trace.file = LOCATE_syntax_base;
1086 tracehead = trace.prev;
1087 return ATTR_syntax_base___AbsSyntaxVisitor____local_property( self) /*AbsSyntaxVisitor::_local_property*/;
1088 }
1089 void syntax_base___AbsSyntaxVisitor___local_property__eq(val_t self, val_t param0) {
1090 struct trace_t trace = {NULL, NULL, 331, LOCATE_syntax_base___AbsSyntaxVisitor___local_property__eq};
1091 val_t *variable = NULL;
1092 void **closurevariable = NULL;
1093 trace.prev = tracehead; tracehead = &trace;
1094 trace.file = LOCATE_syntax_base;
1095 ATTR_syntax_base___AbsSyntaxVisitor____local_property( self) /*AbsSyntaxVisitor::_local_property*/ = param0;
1096 tracehead = trace.prev;
1097 return;
1098 }
1099 val_t syntax_base___AbsSyntaxVisitor___tc(val_t self) {
1100 struct trace_t trace = {NULL, NULL, 334, LOCATE_syntax_base___AbsSyntaxVisitor___tc};
1101 val_t *variable = NULL;
1102 void **closurevariable = NULL;
1103 trace.prev = tracehead; tracehead = &trace;
1104 trace.file = LOCATE_syntax_base;
1105 tracehead = trace.prev;
1106 return ATTR_syntax_base___AbsSyntaxVisitor____tc( self) /*AbsSyntaxVisitor::_tc*/;
1107 }
1108 void syntax_base___AbsSyntaxVisitor___error(val_t self, val_t param0, val_t param1) {
1109 struct trace_t trace = {NULL, NULL, 337, LOCATE_syntax_base___AbsSyntaxVisitor___error};
1110 val_t variable[15];
1111 void **closurevariable = NULL;
1112 trace.prev = tracehead; tracehead = &trace;
1113 trace.file = LOCATE_syntax_base;
1114 variable[0] = self;
1115 variable[1] = param0;
1116 variable[2] = param1;
1117 variable[4] = variable[0];
1118 variable[4] = ATTR_syntax_base___AbsSyntaxVisitor____tc(variable[4]) /*AbsSyntaxVisitor::_tc*/;
1119 variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
1120 variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1121 variable[7] = variable[6];
1122 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
1123 variable[8] = variable[0];
1124 variable[8] = CALL_syntax_base___AbsSyntaxVisitor___locate(variable[8])(variable[8], variable[1] /*n*/) /*AbsSyntaxVisitor::locate*/;
1125 variable[9] = variable[8];
1126 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
1127 variable[10] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
1128 variable[11] = variable[10];
1129 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
1130 variable[12] = variable[2] /*s*/;
1131 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[12]) /*AbstractArray::add*/;
1132 variable[13] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1133 variable[14] = variable[13];
1134 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[14]) /*AbstractArray::add*/;
1135 variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
1136 CALL_mmloader___ToolContext___error(variable[4])(variable[4], variable[5]) /*ToolContext::error*/;
1137 return_label51: while(false);
1138 tracehead = trace.prev;
1139 return;
1140 }
1141 void syntax_base___AbsSyntaxVisitor___warning(val_t self, val_t param0, val_t param1) {
1142 struct trace_t trace = {NULL, NULL, 343, LOCATE_syntax_base___AbsSyntaxVisitor___warning};
1143 val_t variable[15];
1144 void **closurevariable = NULL;
1145 trace.prev = tracehead; tracehead = &trace;
1146 trace.file = LOCATE_syntax_base;
1147 variable[0] = self;
1148 variable[1] = param0;
1149 variable[2] = param1;
1150 variable[4] = variable[0];
1151 variable[4] = ATTR_syntax_base___AbsSyntaxVisitor____tc(variable[4]) /*AbsSyntaxVisitor::_tc*/;
1152 variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
1153 variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1154 variable[7] = variable[6];
1155 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
1156 variable[8] = variable[0];
1157 variable[8] = CALL_syntax_base___AbsSyntaxVisitor___locate(variable[8])(variable[8], variable[1] /*n*/) /*AbsSyntaxVisitor::locate*/;
1158 variable[9] = variable[8];
1159 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
1160 variable[10] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
1161 variable[11] = variable[10];
1162 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
1163 variable[12] = variable[2] /*s*/;
1164 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[12]) /*AbstractArray::add*/;
1165 variable[13] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1166 variable[14] = variable[13];
1167 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[14]) /*AbstractArray::add*/;
1168 variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
1169 CALL_mmloader___ToolContext___warning(variable[4])(variable[4], variable[5]) /*ToolContext::warning*/;
1170 return_label52: while(false);
1171 tracehead = trace.prev;
1172 return;
1173 }
1174 val_t syntax_base___AbsSyntaxVisitor___locate(val_t self, val_t param0) {
1175 struct trace_t trace = {NULL, NULL, 349, LOCATE_syntax_base___AbsSyntaxVisitor___locate};
1176 val_t variable[4];
1177 void **closurevariable = NULL;
1178 trace.prev = tracehead; tracehead = &trace;
1179 trace.file = LOCATE_syntax_base;
1180 variable[0] = self;
1181 variable[1] = param0;
1182 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ == NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1183 if (UNTAG_Bool(variable[3])) { /*if*/
1184 variable[3] = CALL_parser_prod___PNode___locate( variable[1] /*n*/)( variable[1] /*n*/) /*PNode::locate*/;
1185 variable[2] = variable[3];
1186 goto return_label53;
1187 }
1188 variable[3] = variable[0];
1189 variable[3] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[3]) /*AbsSyntaxVisitor::_module*/;
1190 variable[3] = CALL_mmloader___MMModule___filename(variable[3])(variable[3]) /*MMModule::filename*/;
1191 variable[2] = variable[3];
1192 goto return_label53;
1193 return_label53: while(false);
1194 tracehead = trace.prev;
1195 return variable[2];
1196 }
1197 val_t syntax_base___AbsSyntaxVisitor___check_conform(val_t self, val_t param0, val_t param1, val_t param2) {
1198 struct trace_t trace = {NULL, NULL, 356, LOCATE_syntax_base___AbsSyntaxVisitor___check_conform};
1199 val_t variable[15];
1200 void **closurevariable = NULL;
1201 trace.prev = tracehead; tracehead = &trace;
1202 trace.file = LOCATE_syntax_base;
1203 variable[0] = self;
1204 variable[1] = param0;
1205 variable[2] = param1;
1206 variable[3] = param2;
1207 variable[5] = TAG_Bool(( variable[3] /*stype*/ == NIT_NULL /*null*/) || (( variable[3] /*stype*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*stype*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*stype*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*stype*/)( variable[3] /*stype*/, NIT_NULL /*null*/) /*Object::==*/)))));
1208 variable[6] = variable[5];
1209 if (!UNTAG_Bool(variable[6])) { /* or */
1210 variable[6] = TAG_Bool(( variable[2] /*subtype*/ == NIT_NULL /*null*/) || (( variable[2] /*subtype*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*subtype*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*subtype*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*subtype*/)( variable[2] /*subtype*/, NIT_NULL /*null*/) /*Object::==*/)))));
1211 }
1212 variable[5] = variable[6];
1213 if (UNTAG_Bool(variable[5])) { /*if*/
1214 variable[4] = TAG_Bool(false);
1215 goto return_label54;
1216 }
1217 variable[5] = CALL_static_type___MMType_____l( variable[2] /*subtype*/)( variable[2] /*subtype*/, variable[3] /*stype*/) /*MMType::<*/;
1218 if (UNTAG_Bool(variable[5])) { /*if*/
1219 variable[4] = TAG_Bool(true);
1220 goto return_label54;
1221 }
1222 variable[5] = variable[0];
1223 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
1224 variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Type error: expected "), TAG_Int(21)); /*new String*/
1225 variable[8] = variable[7];
1226 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
1227 variable[9] = variable[3] /*stype*/;
1228 variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
1229 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[9]) /*AbstractArray::add*/;
1230 variable[10] = NEW_String_string___String___with_native(BOX_NativeString(", got "), TAG_Int(6)); /*new String*/
1231 variable[11] = variable[10];
1232 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[11]) /*AbstractArray::add*/;
1233 variable[12] = variable[2] /*subtype*/;
1234 variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
1235 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
1236 variable[13] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
1237 variable[14] = variable[13];
1238 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[14]) /*AbstractArray::add*/;
1239 variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
1240 CALL_syntax_base___AbsSyntaxVisitor___error(variable[5])(variable[5], variable[1] /*n*/, variable[6]) /*AbsSyntaxVisitor::error*/;
1241 variable[4] = TAG_Bool(false);
1242 goto return_label54;
1243 return_label54: while(false);
1244 tracehead = trace.prev;
1245 return variable[4];
1246 }
1247 val_t syntax_base___AbsSyntaxVisitor___check_expr(val_t self, val_t param0) {
1248 struct trace_t trace = {NULL, NULL, 371, LOCATE_syntax_base___AbsSyntaxVisitor___check_expr};
1249 val_t variable[5];
1250 void **closurevariable = NULL;
1251 trace.prev = tracehead; tracehead = &trace;
1252 trace.file = LOCATE_syntax_base;
1253 variable[0] = self;
1254 variable[1] = param0;
1255 variable[3] = variable[0];
1256 variable[3] = CALL_syntax_base___AbsSyntaxVisitor___tc(variable[3])(variable[3]) /*AbsSyntaxVisitor::tc*/;
1257 variable[3] = CALL_mmloader___ToolContext___error_count(variable[3])(variable[3]) /*ToolContext::error_count*/;
1258 variable[3] = TAG_Bool((variable[3])==( TAG_Int(0)));
1259 variable[4] = variable[3];
1260 if (UNTAG_Bool(variable[4])) { /* and */
1261 variable[4] = CALL_syntax_base___PExpr___stype( variable[1] /*n*/)( variable[1] /*n*/) /*PExpr::stype*/;
1262 variable[4] = TAG_Bool((variable[4] == NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], NIT_NULL /*null*/) /*Object::==*/)))));
1263 }
1264 variable[3] = variable[4];
1265 if (UNTAG_Bool(variable[3])) { /*if*/
1266 variable[3] = variable[0];
1267 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Type error: expected expression."), TAG_Int(32)); /*new String*/
1268 CALL_syntax_base___AbsSyntaxVisitor___error(variable[3])(variable[3], variable[1] /*n*/, variable[4]) /*AbsSyntaxVisitor::error*/;
1269 variable[2] = TAG_Bool(false);
1270 goto return_label55;
1271 }
1272 variable[2] = TAG_Bool(true);
1273 goto return_label55;
1274 return_label55: while(false);
1275 tracehead = trace.prev;
1276 return variable[2];
1277 }
1278 val_t syntax_base___AbsSyntaxVisitor___check_conform_expr(val_t self, val_t param0, val_t param1) {
1279 struct trace_t trace = {NULL, NULL, 385, LOCATE_syntax_base___AbsSyntaxVisitor___check_conform_expr};
1280 val_t variable[6];
1281 void **closurevariable = NULL;
1282 trace.prev = tracehead; tracehead = &trace;
1283 trace.file = LOCATE_syntax_base;
1284 variable[0] = self;
1285 variable[1] = param0;
1286 variable[2] = param1;
1287 variable[4] = variable[0];
1288 variable[4] = CALL_syntax_base___AbsSyntaxVisitor___check_expr(variable[4])(variable[4], variable[1] /*n*/) /*AbsSyntaxVisitor::check_expr*/;
1289 if (UNTAG_Bool(variable[4])) { /*if*/
1290 variable[4] = variable[0];
1291 variable[5] = CALL_syntax_base___PExpr___stype( variable[1] /*n*/)( variable[1] /*n*/) /*PExpr::stype*/;
1292 variable[4] = CALL_syntax_base___AbsSyntaxVisitor___check_conform(variable[4])(variable[4], variable[1] /*n*/, variable[5], variable[2] /*stype*/) /*AbsSyntaxVisitor::check_conform*/;
1293 variable[3] = variable[4];
1294 goto return_label56;
1295 } else { /*if*/
1296 variable[3] = TAG_Bool(false);
1297 goto return_label56;
1298 }
1299 return_label56: while(false);
1300 tracehead = trace.prev;
1301 return variable[3];
1302 }
1303 void syntax_base___AbsSyntaxVisitor___init(val_t self, val_t param0, val_t param1, int* init_table) {
1304 struct trace_t trace = {NULL, NULL, 392, LOCATE_syntax_base___AbsSyntaxVisitor___init};
1305 val_t variable[5];
1306 void **closurevariable = NULL;
1307 trace.prev = tracehead; tracehead = &trace;
1308 trace.file = LOCATE_syntax_base;
1309 variable[0] = self;
1310 variable[1] = param0;
1311 variable[2] = param1;
1312 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AbsSyntaxVisitor].i]) return;
1313 variable[4] = variable[0];
1314 ATTR_syntax_base___AbsSyntaxVisitor____tc(variable[4]) /*AbsSyntaxVisitor::_tc*/ = variable[1] /*tc*/;
1315 variable[4] = variable[0];
1316 ATTR_syntax_base___AbsSyntaxVisitor____module(variable[4]) /*AbsSyntaxVisitor::_module*/ = variable[2] /*module*/;
1317 return_label57: while(false);
1318 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AbsSyntaxVisitor].i] = 1;
1319 tracehead = trace.prev;
1320 return;
1321 }
1322 void syntax_base___PNode___accept_abs_syntax_visitor(val_t self, val_t param0) {
1323 struct trace_t trace = {NULL, NULL, 402, LOCATE_syntax_base___PNode___accept_abs_syntax_visitor};
1324 val_t variable[4];
1325 void **closurevariable = NULL;
1326 trace.prev = tracehead; tracehead = &trace;
1327 trace.file = LOCATE_syntax_base;
1328 variable[0] = self;
1329 variable[1] = param0;
1330 variable[3] = variable[0];
1331 CALL_parser_prod___PNode___visit_all(variable[3])(variable[3], variable[1] /*v*/) /*PNode::visit_all*/;
1332 return_label58: while(false);
1333 tracehead = trace.prev;
1334 return;
1335 }
1336 val_t syntax_base___Token___to_symbol(val_t self) {
1337 struct trace_t trace = {NULL, NULL, 408, LOCATE_syntax_base___Token___to_symbol};
1338 val_t variable[4];
1339 void **closurevariable = NULL;
1340 trace.prev = tracehead; tracehead = &trace;
1341 trace.file = LOCATE_syntax_base;
1342 variable[0] = self;
1343 variable[3] = variable[0];
1344 variable[3] = ATTR_syntax_base___Token____symbol(variable[3]) /*Token::_symbol*/;
1345 variable[2] = variable[3];
1346 variable[3] = TAG_Bool(( variable[2] /*s*/ == NIT_NULL /*null*/) || (( variable[2] /*s*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*s*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*s*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*s*/)( variable[2] /*s*/, NIT_NULL /*null*/) /*Object::==*/)))));
1347 if (UNTAG_Bool(variable[3])) { /*if*/
1348 variable[3] = variable[0];
1349 variable[3] = CALL_lexer___Token___text(variable[3])(variable[3]) /*Token::text*/;
1350 variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
1351 variable[2] = variable[3] /*s=*/;
1352 variable[3] = variable[0];
1353 ATTR_syntax_base___Token____symbol(variable[3]) /*Token::_symbol*/ = variable[2] /*s*/;
1354 }
1355 variable[1] = variable[2] /*s*/;
1356 goto return_label59;
1357 return_label59: while(false);
1358 tracehead = trace.prev;
1359 return variable[1];
1360 }
1361 val_t syntax_base___PClassdef___local_class(val_t self) {
1362 struct trace_t trace = {NULL, NULL, 422, LOCATE_syntax_base___PClassdef___local_class};
1363 val_t *variable = NULL;
1364 void **closurevariable = NULL;
1365 trace.prev = tracehead; tracehead = &trace;
1366 trace.file = LOCATE_syntax_base;
1367 fprintf(stderr, "Deferred method called");
1368 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 422);
1369 nit_exit(1);
1370 tracehead = trace.prev;
1371 return NIT_NULL;
1372 }
1373 val_t syntax_base___AAttrPropdef___prop(val_t self) {
1374 struct trace_t trace = {NULL, NULL, 427, LOCATE_syntax_base___AAttrPropdef___prop};
1375 val_t *variable = NULL;
1376 void **closurevariable = NULL;
1377 trace.prev = tracehead; tracehead = &trace;
1378 trace.file = LOCATE_syntax_base;
1379 fprintf(stderr, "Deferred method called");
1380 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 427);
1381 nit_exit(1);
1382 tracehead = trace.prev;
1383 return NIT_NULL;
1384 }
1385 val_t syntax_base___AAttrPropdef___readmethod(val_t self) {
1386 struct trace_t trace = {NULL, NULL, 430, LOCATE_syntax_base___AAttrPropdef___readmethod};
1387 val_t *variable = NULL;
1388 void **closurevariable = NULL;
1389 trace.prev = tracehead; tracehead = &trace;
1390 trace.file = LOCATE_syntax_base;
1391 fprintf(stderr, "Deferred method called");
1392 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 430);
1393 nit_exit(1);
1394 tracehead = trace.prev;
1395 return NIT_NULL;
1396 }
1397 val_t syntax_base___AAttrPropdef___writemethod(val_t self) {
1398 struct trace_t trace = {NULL, NULL, 433, LOCATE_syntax_base___AAttrPropdef___writemethod};
1399 val_t *variable = NULL;
1400 void **closurevariable = NULL;
1401 trace.prev = tracehead; tracehead = &trace;
1402 trace.file = LOCATE_syntax_base;
1403 fprintf(stderr, "Deferred method called");
1404 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 433);
1405 nit_exit(1);
1406 tracehead = trace.prev;
1407 return NIT_NULL;
1408 }
1409 val_t syntax_base___AMethPropdef___method(val_t self) {
1410 struct trace_t trace = {NULL, NULL, 438, LOCATE_syntax_base___AMethPropdef___method};
1411 val_t *variable = NULL;
1412 void **closurevariable = NULL;
1413 trace.prev = tracehead; tracehead = &trace;
1414 trace.file = LOCATE_syntax_base;
1415 fprintf(stderr, "Deferred method called");
1416 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 438);
1417 nit_exit(1);
1418 tracehead = trace.prev;
1419 return NIT_NULL;
1420 }
1421 val_t syntax_base___AMethPropdef___self_var(val_t self) {
1422 struct trace_t trace = {NULL, NULL, 441, LOCATE_syntax_base___AMethPropdef___self_var};
1423 val_t *variable = NULL;
1424 void **closurevariable = NULL;
1425 trace.prev = tracehead; tracehead = &trace;
1426 trace.file = LOCATE_syntax_base;
1427 fprintf(stderr, "Deferred method called");
1428 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 441);
1429 nit_exit(1);
1430 tracehead = trace.prev;
1431 return NIT_NULL;
1432 }
1433 val_t syntax_base___ATypePropdef___prop(val_t self) {
1434 struct trace_t trace = {NULL, NULL, 446, LOCATE_syntax_base___ATypePropdef___prop};
1435 val_t *variable = NULL;
1436 void **closurevariable = NULL;
1437 trace.prev = tracehead; tracehead = &trace;
1438 trace.file = LOCATE_syntax_base;
1439 fprintf(stderr, "Deferred method called");
1440 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 446);
1441 nit_exit(1);
1442 tracehead = trace.prev;
1443 return NIT_NULL;
1444 }
1445 val_t syntax_base___PParam___position(val_t self) {
1446 struct trace_t trace = {NULL, NULL, 451, LOCATE_syntax_base___PParam___position};
1447 val_t *variable = NULL;
1448 void **closurevariable = NULL;
1449 trace.prev = tracehead; tracehead = &trace;
1450 trace.file = LOCATE_syntax_base;
1451 fprintf(stderr, "Deferred method called");
1452 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 451);
1453 nit_exit(1);
1454 tracehead = trace.prev;
1455 return NIT_NULL;
1456 }
1457 val_t syntax_base___PParam___variable(val_t self) {
1458 struct trace_t trace = {NULL, NULL, 454, LOCATE_syntax_base___PParam___variable};
1459 val_t *variable = NULL;
1460 void **closurevariable = NULL;
1461 trace.prev = tracehead; tracehead = &trace;
1462 trace.file = LOCATE_syntax_base;
1463 fprintf(stderr, "Deferred method called");
1464 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 454);
1465 nit_exit(1);
1466 tracehead = trace.prev;
1467 return NIT_NULL;
1468 }
1469 val_t syntax_base___PClosureDecl___variable(val_t self) {
1470 struct trace_t trace = {NULL, NULL, 459, LOCATE_syntax_base___PClosureDecl___variable};
1471 val_t *variable = NULL;
1472 void **closurevariable = NULL;
1473 trace.prev = tracehead; tracehead = &trace;
1474 trace.file = LOCATE_syntax_base;
1475 fprintf(stderr, "Deferred method called");
1476 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 459);
1477 nit_exit(1);
1478 tracehead = trace.prev;
1479 return NIT_NULL;
1480 }
1481 val_t syntax_base___PType___get_local_class(val_t self, val_t param0) {
1482 struct trace_t trace = {NULL, NULL, 464, LOCATE_syntax_base___PType___get_local_class};
1483 val_t *variable = NULL;
1484 void **closurevariable = NULL;
1485 trace.prev = tracehead; tracehead = &trace;
1486 trace.file = LOCATE_syntax_base;
1487 fprintf(stderr, "Deferred method called");
1488 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 464);
1489 nit_exit(1);
1490 tracehead = trace.prev;
1491 return NIT_NULL;
1492 }
1493 val_t syntax_base___PType___get_stype(val_t self, val_t param0) {
1494 struct trace_t trace = {NULL, NULL, 469, LOCATE_syntax_base___PType___get_stype};
1495 val_t *variable = NULL;
1496 void **closurevariable = NULL;
1497 trace.prev = tracehead; tracehead = &trace;
1498 trace.file = LOCATE_syntax_base;
1499 fprintf(stderr, "Deferred method called");
1500 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 469);
1501 nit_exit(1);
1502 tracehead = trace.prev;
1503 return NIT_NULL;
1504 }
1505 val_t syntax_base___PType___get_unchecked_stype(val_t self, val_t param0) {
1506 struct trace_t trace = {NULL, NULL, 473, LOCATE_syntax_base___PType___get_unchecked_stype};
1507 val_t *variable = NULL;
1508 void **closurevariable = NULL;
1509 trace.prev = tracehead; tracehead = &trace;
1510 trace.file = LOCATE_syntax_base;
1511 fprintf(stderr, "Deferred method called");
1512 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 473);
1513 nit_exit(1);
1514 tracehead = trace.prev;
1515 return NIT_NULL;
1516 }
1517 void syntax_base___PType___check_conform(val_t self, val_t param0) {
1518 struct trace_t trace = {NULL, NULL, 479, LOCATE_syntax_base___PType___check_conform};
1519 val_t *variable = NULL;
1520 void **closurevariable = NULL;
1521 trace.prev = tracehead; tracehead = &trace;
1522 trace.file = LOCATE_syntax_base;
1523 fprintf(stderr, "Deferred method called");
1524 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 479);
1525 nit_exit(1);
1526 tracehead = trace.prev;
1527 return;
1528 }
1529 val_t syntax_base___AType___get_local_class(val_t self, val_t param0) {
1530 struct trace_t trace = {NULL, NULL, 489, LOCATE_syntax_base___AType___get_local_class};
1531 val_t variable[16];
1532 void **closurevariable = NULL;
1533 trace.prev = tracehead; tracehead = &trace;
1534 trace.file = LOCATE_syntax_base;
1535 variable[0] = self;
1536 variable[1] = param0;
1537 variable[4] = variable[0];
1538 variable[4] = CALL_parser_nodes___AType___n_id(variable[4])(variable[4]) /*AType::n_id*/;
1539 variable[4] = CALL_syntax_base___Token___to_symbol(variable[4])(variable[4]) /*Token::to_symbol*/;
1540 variable[3] = variable[4];
1541 variable[5] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
1542 variable[4] = variable[5];
1543 variable[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
1544 variable[5] = variable[6];
1545 variable[6] = CALL_syntax_base___MMSrcLocalClass___formal_dict( variable[5] /*cla*/)( variable[5] /*cla*/) /*MMSrcLocalClass::formal_dict*/;
1546 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] == NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6], NIT_NULL /*null*/) /*Object::==*/)))))));
1547 variable[7] = variable[6];
1548 if (UNTAG_Bool(variable[7])) { /* and */
1549 variable[7] = CALL_syntax_base___MMSrcLocalClass___formal_dict( variable[5] /*cla*/)( variable[5] /*cla*/) /*MMSrcLocalClass::formal_dict*/;
1550 variable[7] = CALL_abstract_collection___Map___has_key(variable[7])(variable[7], variable[3] /*name*/) /*Map::has_key*/;
1551 }
1552 variable[6] = variable[7];
1553 variable[7] = variable[6];
1554 if (!UNTAG_Bool(variable[7])) { /* or */
1555 variable[7] = CALL_abstractmetamodel___MMLocalClass___global_properties( variable[5] /*cla*/)( variable[5] /*cla*/) /*MMLocalClass::global_properties*/;
1556 variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[7] == NIT_NULL /*null*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], NIT_NULL /*null*/) /*Object::==*/)))))));
1557 variable[8] = variable[7];
1558 if (UNTAG_Bool(variable[8])) { /* and */
1559 variable[8] = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name( variable[5] /*cla*/)( variable[5] /*cla*/, variable[3] /*name*/) /*MMLocalClass::has_global_property_by_name*/;
1560 }
1561 variable[7] = variable[8];
1562 }
1563 variable[6] = variable[7];
1564 if (UNTAG_Bool(variable[6])) { /*if*/
1565 variable[6] = variable[0];
1566 variable[6] = CALL_parser_nodes___AType___n_id(variable[6])(variable[6]) /*AType::n_id*/;
1567 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
1568 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Type error: "), TAG_Int(12)); /*new String*/
1569 variable[9] = variable[8];
1570 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
1571 variable[10] = variable[3] /*name*/;
1572 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
1573 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
1574 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" is a formal type"), TAG_Int(17)); /*new String*/
1575 variable[12] = variable[11];
1576 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
1577 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
1578 CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
1579 variable[6] = variable[0];
1580 ATTR_syntax_base___AType____stype_cached(variable[6]) /*AType::_stype_cached*/ = TAG_Bool(true);
1581 variable[2] = NIT_NULL /*null*/;
1582 goto return_label60;
1583 }
1584 variable[6] = CALL_abstractmetamodel___MMModule___has_global_class_named( variable[4] /*mod*/)( variable[4] /*mod*/, variable[3] /*name*/) /*MMModule::has_global_class_named*/;
1585 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/
1586 variable[6] = variable[0];
1587 variable[6] = CALL_parser_nodes___AType___n_id(variable[6])(variable[6]) /*AType::n_id*/;
1588 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
1589 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Type error: class "), TAG_Int(18)); /*new String*/
1590 variable[9] = variable[8];
1591 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
1592 variable[10] = variable[3] /*name*/;
1593 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
1594 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
1595 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" not found in module "), TAG_Int(21)); /*new String*/
1596 variable[12] = variable[11];
1597 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
1598 variable[13] = variable[4] /*mod*/;
1599 variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
1600 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
1601 variable[14] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
1602 variable[15] = variable[14];
1603 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[15]) /*AbstractArray::add*/;
1604 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
1605 CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
1606 variable[6] = variable[0];
1607 ATTR_syntax_base___AType____stype_cached(variable[6]) /*AType::_stype_cached*/ = TAG_Bool(true);
1608 variable[2] = NIT_NULL /*null*/;
1609 goto return_label60;
1610 }
1611 variable[7] = CALL_abstractmetamodel___MMModule___class_by_name( variable[4] /*mod*/)( variable[4] /*mod*/, variable[3] /*name*/) /*MMModule::class_by_name*/;
1612 variable[6] = variable[7];
1613 variable[7] = CALL_abstractmetamodel___MMLocalClass___global( variable[6] /*local_class*/)( variable[6] /*local_class*/) /*MMLocalClass::global*/;
1614 variable[8] = variable[0];
1615 CALL_syntax_base___MMGlobalClass___check_visibility(variable[7])(variable[7], variable[1] /*v*/, variable[8], variable[4] /*mod*/) /*MMGlobalClass::check_visibility*/;
1616 variable[2] = variable[6] /*local_class*/;
1617 goto return_label60;
1618 return_label60: while(false);
1619 tracehead = trace.prev;
1620 return variable[2];
1621 }
1622 val_t syntax_base___AType___get_stype(val_t self, val_t param0) {
1623 struct trace_t trace = {NULL, NULL, 569, LOCATE_syntax_base___AType___get_stype};
1624 val_t variable[5];
1625 void **closurevariable = NULL;
1626 trace.prev = tracehead; tracehead = &trace;
1627 trace.file = LOCATE_syntax_base;
1628 variable[0] = self;
1629 variable[1] = param0;
1630 variable[4] = variable[0];
1631 variable[4] = CALL_syntax_base___PType___get_unchecked_stype(variable[4])(variable[4], variable[1] /*v*/) /*AType::get_unchecked_stype*/;
1632 variable[3] = variable[4];
1633 variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ == NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*t*/)( variable[3] /*t*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1634 if (UNTAG_Bool(variable[4])) { /*if*/
1635 variable[4] = variable[0];
1636 CALL_syntax_base___PType___check_conform(variable[4])(variable[4], variable[1] /*v*/) /*AType::check_conform*/;
1637 }
1638 variable[2] = variable[3] /*t*/;
1639 goto return_label61;
1640 return_label61: while(false);
1641 tracehead = trace.prev;
1642 return variable[2];
1643 }
1644 val_t syntax_base___AType___get_unchecked_stype(val_t self, val_t param0) {
1645 struct trace_t trace = {NULL, NULL, 512, LOCATE_syntax_base___AType___get_unchecked_stype};
1646 val_t variable[22];
1647 void **closurevariable = NULL;
1648 trace.prev = tracehead; tracehead = &trace;
1649 trace.file = LOCATE_syntax_base;
1650 variable[0] = self;
1651 variable[1] = param0;
1652 variable[3] = variable[0];
1653 variable[3] = ATTR_syntax_base___AType____stype_cached(variable[3]) /*AType::_stype_cached*/;
1654 if (UNTAG_Bool(variable[3])) { /*if*/
1655 variable[3] = variable[0];
1656 variable[3] = ATTR_syntax_base___AType____stype_cache(variable[3]) /*AType::_stype_cache*/;
1657 variable[2] = variable[3];
1658 goto return_label62;
1659 }
1660 variable[3] = variable[0];
1661 ATTR_syntax_base___AType____stype_cached(variable[3]) /*AType::_stype_cached*/ = TAG_Bool(true);
1662 variable[4] = variable[0];
1663 variable[4] = CALL_parser_nodes___AType___n_id(variable[4])(variable[4]) /*AType::n_id*/;
1664 variable[4] = CALL_syntax_base___Token___to_symbol(variable[4])(variable[4]) /*Token::to_symbol*/;
1665 variable[3] = variable[4];
1666 variable[5] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
1667 variable[4] = variable[5];
1668 variable[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
1669 variable[5] = variable[6];
1670 variable[6] = CALL_syntax_base___MMSrcLocalClass___formal_dict( variable[5] /*cla*/)( variable[5] /*cla*/) /*MMSrcLocalClass::formal_dict*/;
1671 variable[6] = CALL_abstract_collection___Map___has_key(variable[6])(variable[6], variable[3] /*name*/) /*Map::has_key*/;
1672 if (UNTAG_Bool(variable[6])) { /*if*/
1673 variable[6] = variable[0];
1674 variable[6] = CALL_parser_nodes___AType___n_types(variable[6])(variable[6]) /*AType::n_types*/;
1675 variable[6] = CALL_abstract_collection___Collection___length(variable[6])(variable[6]) /*List::length*/;
1676 variable[6] = TAG_Bool(UNTAG_Int(variable[6])>UNTAG_Int( TAG_Int(0)));
1677 if (UNTAG_Bool(variable[6])) { /*if*/
1678 variable[6] = variable[0];
1679 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
1680 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Type error: formal type "), TAG_Int(24)); /*new String*/
1681 variable[9] = variable[8];
1682 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
1683 variable[10] = variable[3] /*name*/;
1684 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
1685 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
1686 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" cannot have formal parameters."), TAG_Int(31)); /*new String*/
1687 variable[12] = variable[11];
1688 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
1689 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
1690 CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
1691 variable[2] = NIT_NULL /*null*/;
1692 goto return_label62;
1693 }
1694 variable[7] = CALL_syntax_base___MMSrcLocalClass___formal_dict( variable[5] /*cla*/)( variable[5] /*cla*/) /*MMSrcLocalClass::formal_dict*/;
1695 variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7], variable[3] /*name*/) /*Map::[]*/;
1696 variable[6] = variable[7];
1697 variable[7] = variable[0];
1698 ATTR_syntax_base___AType____stype_cache(variable[7]) /*AType::_stype_cache*/ = variable[6] /*formal*/;
1699 variable[2] = variable[6] /*formal*/;
1700 goto return_label62;
1701 }
1702 variable[6] = CALL_abstractmetamodel___MMLocalClass___global_properties( variable[5] /*cla*/)( variable[5] /*cla*/) /*MMLocalClass::global_properties*/;
1703 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] == NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6], NIT_NULL /*null*/) /*Object::==*/)))))));
1704 variable[7] = variable[6];
1705 if (UNTAG_Bool(variable[7])) { /* and */
1706 variable[7] = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name( variable[5] /*cla*/)( variable[5] /*cla*/, variable[3] /*name*/) /*MMLocalClass::has_global_property_by_name*/;
1707 }
1708 variable[6] = variable[7];
1709 if (UNTAG_Bool(variable[6])) { /*if*/
1710 variable[6] = variable[0];
1711 variable[6] = CALL_parser_nodes___AType___n_types(variable[6])(variable[6]) /*AType::n_types*/;
1712 variable[6] = CALL_abstract_collection___Collection___length(variable[6])(variable[6]) /*List::length*/;
1713 variable[6] = TAG_Bool(UNTAG_Int(variable[6])>UNTAG_Int( TAG_Int(0)));
1714 if (UNTAG_Bool(variable[6])) { /*if*/
1715 variable[6] = variable[0];
1716 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
1717 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Type error: formal type "), TAG_Int(24)); /*new String*/
1718 variable[9] = variable[8];
1719 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
1720 variable[10] = variable[3] /*name*/;
1721 variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
1722 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
1723 variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" cannot have formal parameters."), TAG_Int(31)); /*new String*/
1724 variable[12] = variable[11];
1725 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
1726 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
1727 CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
1728 variable[2] = NIT_NULL /*null*/;
1729 goto return_label62;
1730 }
1731 variable[7] = CALL_static_type___MMLocalClass___get_type( variable[5] /*cla*/)( variable[5] /*cla*/) /*MMLocalClass::get_type*/;
1732 variable[7] = CALL_static_type___MMType___local_class(variable[7])(variable[7]) /*MMType::local_class*/;
1733 variable[7] = CALL_virtualtype___MMLocalClass___select_virtual_type(variable[7])(variable[7], variable[3] /*name*/) /*MMLocalClass::select_virtual_type*/;
1734 variable[8] = CALL_static_type___MMLocalClass___get_type( variable[5] /*cla*/)( variable[5] /*cla*/) /*MMLocalClass::get_type*/;
1735 variable[7] = CALL_virtualtype___MMTypeProperty___stype_for(variable[7])(variable[7], variable[8]) /*MMTypeProperty::stype_for*/;
1736 variable[6] = variable[7];
1737 variable[7] = TAG_Bool(( variable[6] /*t*/ == NIT_NULL /*null*/) || (( variable[6] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*t*/)( variable[6] /*t*/, NIT_NULL /*null*/) /*Object::==*/)))));
1738 if (UNTAG_Bool(variable[7])) { /*if*/
1739 variable[7] = variable[0];
1740 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
1741 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Type error: circular definition in formal type "), TAG_Int(47)); /*new String*/
1742 variable[10] = variable[9];
1743 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
1744 variable[11] = variable[3] /*name*/;
1745 variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
1746 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[11]) /*AbstractArray::add*/;
1747 variable[12] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
1748 variable[13] = variable[12];
1749 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
1750 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
1751 CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[7], variable[8]) /*AbsSyntaxVisitor::error*/;
1752 variable[2] = NIT_NULL /*null*/;
1753 goto return_label62;
1754 }
1755 variable[7] = variable[0];
1756 ATTR_syntax_base___AType____stype_cache(variable[7]) /*AType::_stype_cache*/ = variable[6] /*t*/;
1757 variable[2] = variable[6] /*t*/;
1758 goto return_label62;
1759 }
1760 variable[7] = variable[0];
1761 variable[7] = CALL_syntax_base___PType___get_local_class(variable[7])(variable[7], variable[1] /*v*/) /*AType::get_local_class*/;
1762 variable[6] = variable[7];
1763 variable[7] = TAG_Bool(( variable[6] /*local_class*/ == NIT_NULL /*null*/) || (( variable[6] /*local_class*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*local_class*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*local_class*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*local_class*/)( variable[6] /*local_class*/, NIT_NULL /*null*/) /*Object::==*/)))));
1764 if (UNTAG_Bool(variable[7])) { /*if*/
1765 variable[2] = NIT_NULL /*null*/;
1766 goto return_label62;
1767 }
1768 variable[8] = variable[0];
1769 variable[8] = CALL_parser_nodes___AType___n_types(variable[8])(variable[8]) /*AType::n_types*/;
1770 variable[8] = CALL_abstract_collection___Collection___length(variable[8])(variable[8]) /*List::length*/;
1771 variable[7] = variable[8];
1772 variable[8] = CALL_abstractmetamodel___MMLocalClass___arity( variable[6] /*local_class*/)( variable[6] /*local_class*/) /*MMLocalClass::arity*/;
1773 variable[8] = TAG_Bool((variable[8])!=( variable[7] /*arity*/));
1774 if (UNTAG_Bool(variable[8])) { /*if*/
1775 variable[8] = variable[0];
1776 variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
1777 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Type error: '"), TAG_Int(13)); /*new String*/
1778 variable[11] = variable[10];
1779 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
1780 variable[12] = variable[6] /*local_class*/;
1781 variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
1782 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/;
1783 variable[13] = NEW_String_string___String___with_native(BOX_NativeString("' has "), TAG_Int(6)); /*new String*/
1784 variable[14] = variable[13];
1785 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
1786 variable[15] = CALL_abstractmetamodel___MMLocalClass___arity( variable[6] /*local_class*/)( variable[6] /*local_class*/) /*MMLocalClass::arity*/;
1787 variable[16] = variable[15];
1788 variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/;
1789 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/;
1790 variable[17] = NEW_String_string___String___with_native(BOX_NativeString(" parameters which differs from the "), TAG_Int(35)); /*new String*/
1791 variable[18] = variable[17];
1792 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/;
1793 variable[19] = variable[7] /*arity*/;
1794 variable[19] = CALL_string___Object___to_s(variable[19])(variable[19]) /*Object::to_s*/;
1795 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[19]) /*AbstractArray::add*/;
1796 variable[20] = NEW_String_string___String___with_native(BOX_NativeString(" params."), TAG_Int(8)); /*new String*/
1797 variable[21] = variable[20];
1798 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[21]) /*AbstractArray::add*/;
1799 variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
1800 CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
1801 variable[2] = NIT_NULL /*null*/;
1802 goto return_label62;
1803 }
1804 variable[8] = TAG_Bool(UNTAG_Int( variable[7] /*arity*/)>UNTAG_Int( TAG_Int(0)));
1805 if (UNTAG_Bool(variable[8])) { /*if*/
1806 variable[9] = NEW_Array_array___Array___init(); /*new Array[MMType]*/
1807 variable[8] = variable[9];
1808 variable[9] = variable[0];
1809 variable[9] = CALL_parser_nodes___AType___n_types(variable[9])(variable[9]) /*AType::n_types*/;
1810 variable[9] = CALL_abstract_collection___Collection___iterator(variable[9])(variable[9]) /*List::iterator*/;
1811 while (true) { /*for*/
1812 variable[10] = CALL_abstract_collection___Iterator___is_ok(variable[9])(variable[9]) /*ListIterator::is_ok*/;
1813 if (!UNTAG_Bool(variable[10])) break; /*for*/
1814 variable[10] = CALL_abstract_collection___Iterator___item(variable[9])(variable[9]) /*ListIterator::item*/;
1815 variable[11] = variable[10];
1816 variable[12] = CALL_syntax_base___PType___get_unchecked_stype( variable[11] /*p*/)( variable[11] /*p*/, variable[1] /*v*/) /*PType::get_unchecked_stype*/;
1817 CALL_abstract_collection___SimpleCollection___add( variable[8] /*tab*/)( variable[8] /*tab*/, variable[12]) /*AbstractArray::add*/;
1818 continue_63: while(0);
1819 CALL_abstract_collection___Iterator___next(variable[9])(variable[9]) /*ListIterator::next*/;
1820 }
1821 break_63: while(0);
1822 variable[10] = CALL_genericity___MMLocalClass___get_instantiate_type( variable[6] /*local_class*/)( variable[6] /*local_class*/, variable[8] /*tab*/) /*MMLocalClass::get_instantiate_type*/;
1823 variable[9] = variable[10];
1824 variable[10] = variable[0];
1825 ATTR_syntax_base___AType____stype_cache(variable[10]) /*AType::_stype_cache*/ = variable[9] /*t*/;
1826 variable[2] = variable[9] /*t*/;
1827 goto return_label62;
1828 } else { /*if*/
1829 variable[9] = CALL_static_type___MMLocalClass___get_type( variable[6] /*local_class*/)( variable[6] /*local_class*/) /*MMLocalClass::get_type*/;
1830 variable[8] = variable[9];
1831 variable[9] = variable[0];
1832 ATTR_syntax_base___AType____stype_cache(variable[9]) /*AType::_stype_cache*/ = variable[8] /*t*/;
1833 variable[2] = variable[8] /*t*/;
1834 goto return_label62;
1835 }
1836 return_label62: while(false);
1837 tracehead = trace.prev;
1838 return variable[2];
1839 }
1840 void syntax_base___AType___check_conform(val_t self, val_t param0) {
1841 struct trace_t trace = {NULL, NULL, 576, LOCATE_syntax_base___AType___check_conform};
1842 val_t variable[13];
1843 void **closurevariable = NULL;
1844 trace.prev = tracehead; tracehead = &trace;
1845 trace.file = LOCATE_syntax_base;
1846 variable[0] = self;
1847 variable[1] = param0;
1848 variable[4] = variable[0];
1849 variable[4] = CALL_syntax_base___PType___get_unchecked_stype(variable[4])(variable[4], variable[1] /*v*/) /*AType::get_unchecked_stype*/;
1850 variable[3] = variable[4];
1851 variable[4] = TAG_Bool(( variable[3] /*st*/ == NIT_NULL /*null*/) || (( variable[3] /*st*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*st*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*st*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*st*/)( variable[3] /*st*/, NIT_NULL /*null*/) /*Object::==*/)))));
1852 if (UNTAG_Bool(variable[4])) { /*if*/
1853 goto return_label64;
1854 }
1855 variable[5] = CALL_static_type___MMType___local_class( variable[3] /*st*/)( variable[3] /*st*/) /*MMType::local_class*/;
1856 variable[4] = variable[5];
1857 variable[6] = variable[0];
1858 variable[6] = CALL_parser_nodes___AType___n_types(variable[6])(variable[6]) /*AType::n_types*/;
1859 variable[6] = CALL_abstract_collection___Collection___length(variable[6])(variable[6]) /*List::length*/;
1860 variable[5] = variable[6];
1861 variable[6] = TAG_Bool(UNTAG_Int( variable[5] /*arity*/)>UNTAG_Int( TAG_Int(0)));
1862 if (UNTAG_Bool(variable[6])) { /*if*/
1863 variable[6] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[5] /*arity*/); /*new Range[Int]*/
1864 variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*Range::iterator*/;
1865 while (true) { /*for*/
1866 variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
1867 if (!UNTAG_Bool(variable[7])) break; /*for*/
1868 variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/;
1869 variable[8] = variable[7];
1870 variable[10] = variable[0];
1871 variable[10] = CALL_parser_nodes___AType___n_types(variable[10])(variable[10]) /*AType::n_types*/;
1872 variable[10] = CALL_abstract_collection___Map_____bra(variable[10])(variable[10], variable[8] /*i*/) /*List::[]*/;
1873 variable[9] = variable[10];
1874 variable[11] = CALL_syntax_base___PType___get_stype( variable[9] /*p*/)( variable[9] /*p*/, variable[1] /*v*/) /*PType::get_stype*/;
1875 variable[10] = variable[11];
1876 variable[12] = CALL_genericity___MMLocalClass___get_formal( variable[4] /*local_class*/)( variable[4] /*local_class*/, variable[8] /*i*/) /*MMLocalClass::get_formal*/;
1877 variable[12] = CALL_type_formal___MMTypeFormal___bound(variable[12])(variable[12]) /*MMTypeFormal::bound*/;
1878 variable[11] = variable[12];
1879 variable[12] = TAG_Bool(( variable[11] /*bt*/ == NIT_NULL /*null*/) || (( variable[11] /*bt*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*bt*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*bt*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*bt*/)( variable[11] /*bt*/, NIT_NULL /*null*/) /*Object::==*/)))));
1880 if (UNTAG_Bool(variable[12])) { /*if*/
1881 goto return_label64;
1882 }
1883 variable[12] = CALL_static_type___MMType___adapt_to( variable[11] /*bt*/)( variable[11] /*bt*/, variable[3] /*st*/) /*MMType::adapt_to*/;
1884 variable[11] = variable[12] /*bt=*/;
1885 CALL_syntax_base___AbsSyntaxVisitor___check_conform( variable[1] /*v*/)( variable[1] /*v*/, variable[9] /*p*/, variable[10] /*pt*/, variable[11] /*bt*/) /*AbsSyntaxVisitor::check_conform*/;
1886 continue_65: while(0);
1887 CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
1888 }
1889 break_65: while(0);
1890 }
1891 return_label64: while(false);
1892 tracehead = trace.prev;
1893 return;
1894 }
1895 val_t syntax_base___PExpr___stype(val_t self) {
1896 struct trace_t trace = {NULL, NULL, 596, LOCATE_syntax_base___PExpr___stype};
1897 val_t *variable = NULL;
1898 void **closurevariable = NULL;
1899 trace.prev = tracehead; tracehead = &trace;
1900 trace.file = LOCATE_syntax_base;
1901 fprintf(stderr, "Deferred method called");
1902 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 596);
1903 nit_exit(1);
1904 tracehead = trace.prev;
1905 return NIT_NULL;
1906 }
1907 val_t syntax_base___AVardeclExpr___variable(val_t self) {
1908 struct trace_t trace = {NULL, NULL, 602, LOCATE_syntax_base___AVardeclExpr___variable};
1909 val_t *variable = NULL;
1910 void **closurevariable = NULL;
1911 trace.prev = tracehead; tracehead = &trace;
1912 trace.file = LOCATE_syntax_base;
1913 tracehead = trace.prev;
1914 return ATTR_syntax_base___AVardeclExpr____variable( self) /*AVardeclExpr::_variable*/;
1915 }
1916 void syntax_base___AVardeclExpr___variable__eq(val_t self, val_t param0) {
1917 struct trace_t trace = {NULL, NULL, 602, LOCATE_syntax_base___AVardeclExpr___variable__eq};
1918 val_t *variable = NULL;
1919 void **closurevariable = NULL;
1920 trace.prev = tracehead; tracehead = &trace;
1921 trace.file = LOCATE_syntax_base;
1922 ATTR_syntax_base___AVardeclExpr____variable( self) /*AVardeclExpr::_variable*/ = param0;
1923 tracehead = trace.prev;
1924 return;
1925 }
1926 val_t syntax_base___AForVardeclExpr___variable(val_t self) {
1927 struct trace_t trace = {NULL, NULL, 607, LOCATE_syntax_base___AForVardeclExpr___variable};
1928 val_t *variable = NULL;
1929 void **closurevariable = NULL;
1930 trace.prev = tracehead; tracehead = &trace;
1931 trace.file = LOCATE_syntax_base;
1932 tracehead = trace.prev;
1933 return ATTR_syntax_base___AForVardeclExpr____variable( self) /*AForVardeclExpr::_variable*/;
1934 }
1935 void syntax_base___AForVardeclExpr___variable__eq(val_t self, val_t param0) {
1936 struct trace_t trace = {NULL, NULL, 607, LOCATE_syntax_base___AForVardeclExpr___variable__eq};
1937 val_t *variable = NULL;
1938 void **closurevariable = NULL;
1939 trace.prev = tracehead; tracehead = &trace;
1940 trace.file = LOCATE_syntax_base;
1941 ATTR_syntax_base___AForVardeclExpr____variable( self) /*AForVardeclExpr::_variable*/ = param0;
1942 tracehead = trace.prev;
1943 return;
1944 }
1945 val_t syntax_base___ASelfExpr___variable(val_t self) {
1946 struct trace_t trace = {NULL, NULL, 612, LOCATE_syntax_base___ASelfExpr___variable};
1947 val_t *variable = NULL;
1948 void **closurevariable = NULL;
1949 trace.prev = tracehead; tracehead = &trace;
1950 trace.file = LOCATE_syntax_base;
1951 tracehead = trace.prev;
1952 return ATTR_syntax_base___ASelfExpr____variable( self) /*ASelfExpr::_variable*/;
1953 }
1954 void syntax_base___ASelfExpr___variable__eq(val_t self, val_t param0) {
1955 struct trace_t trace = {NULL, NULL, 612, LOCATE_syntax_base___ASelfExpr___variable__eq};
1956 val_t *variable = NULL;
1957 void **closurevariable = NULL;
1958 trace.prev = tracehead; tracehead = &trace;
1959 trace.file = LOCATE_syntax_base;
1960 ATTR_syntax_base___ASelfExpr____variable( self) /*ASelfExpr::_variable*/ = param0;
1961 tracehead = trace.prev;
1962 return;
1963 }
1964 val_t syntax_base___AVarFormExpr___variable(val_t self) {
1965 struct trace_t trace = {NULL, NULL, 617, LOCATE_syntax_base___AVarFormExpr___variable};
1966 val_t *variable = NULL;
1967 void **closurevariable = NULL;
1968 trace.prev = tracehead; tracehead = &trace;
1969 trace.file = LOCATE_syntax_base;
1970 tracehead = trace.prev;
1971 return ATTR_syntax_base___AVarFormExpr____variable( self) /*AVarFormExpr::_variable*/;
1972 }
1973 void syntax_base___AVarFormExpr___variable__eq(val_t self, val_t param0) {
1974 struct trace_t trace = {NULL, NULL, 617, LOCATE_syntax_base___AVarFormExpr___variable__eq};
1975 val_t *variable = NULL;
1976 void **closurevariable = NULL;
1977 trace.prev = tracehead; tracehead = &trace;
1978 trace.file = LOCATE_syntax_base;
1979 ATTR_syntax_base___AVarFormExpr____variable( self) /*AVarFormExpr::_variable*/ = param0;
1980 tracehead = trace.prev;
1981 return;
1982 }
1983 val_t syntax_base___AClosureCallExpr___variable(val_t self) {
1984 struct trace_t trace = {NULL, NULL, 622, LOCATE_syntax_base___AClosureCallExpr___variable};
1985 val_t *variable = NULL;
1986 void **closurevariable = NULL;
1987 trace.prev = tracehead; tracehead = &trace;
1988 trace.file = LOCATE_syntax_base;
1989 tracehead = trace.prev;
1990 return ATTR_syntax_base___AClosureCallExpr____variable( self) /*AClosureCallExpr::_variable*/;
1991 }
1992 void syntax_base___AClosureCallExpr___variable__eq(val_t self, val_t param0) {
1993 struct trace_t trace = {NULL, NULL, 622, LOCATE_syntax_base___AClosureCallExpr___variable__eq};
1994 val_t *variable = NULL;
1995 void **closurevariable = NULL;
1996 trace.prev = tracehead; tracehead = &trace;
1997 trace.file = LOCATE_syntax_base;
1998 ATTR_syntax_base___AClosureCallExpr____variable( self) /*AClosureCallExpr::_variable*/ = param0;
1999 tracehead = trace.prev;
2000 return;
2001 }
2002 val_t syntax_base___PClosureDef___closure(val_t self) {
2003 struct trace_t trace = {NULL, NULL, 627, LOCATE_syntax_base___PClosureDef___closure};
2004 val_t *variable = NULL;
2005 void **closurevariable = NULL;
2006 trace.prev = tracehead; tracehead = &trace;
2007 trace.file = LOCATE_syntax_base;
2008 tracehead = trace.prev;
2009 return ATTR_syntax_base___PClosureDef____closure( self) /*PClosureDef::_closure*/;
2010 }
2011 void syntax_base___PClosureDef___closure__eq(val_t self, val_t param0) {
2012 struct trace_t trace = {NULL, NULL, 627, LOCATE_syntax_base___PClosureDef___closure__eq};
2013 val_t *variable = NULL;
2014 void **closurevariable = NULL;
2015 trace.prev = tracehead; tracehead = &trace;
2016 trace.file = LOCATE_syntax_base;
2017 ATTR_syntax_base___PClosureDef____closure( self) /*PClosureDef::_closure*/ = param0;
2018 tracehead = trace.prev;
2019 return;
2020 }
2021 val_t syntax_base___PClosureDef___variables(val_t self) {
2022 struct trace_t trace = {NULL, NULL, 630, LOCATE_syntax_base___PClosureDef___variables};
2023 val_t *variable = NULL;
2024 void **closurevariable = NULL;
2025 trace.prev = tracehead; tracehead = &trace;
2026 trace.file = LOCATE_syntax_base;
2027 tracehead = trace.prev;
2028 return ATTR_syntax_base___PClosureDef____variables( self) /*PClosureDef::_variables*/;
2029 }
2030 void syntax_base___PClosureDef___variables__eq(val_t self, val_t param0) {
2031 struct trace_t trace = {NULL, NULL, 630, LOCATE_syntax_base___PClosureDef___variables__eq};
2032 val_t *variable = NULL;
2033 void **closurevariable = NULL;
2034 trace.prev = tracehead; tracehead = &trace;
2035 trace.file = LOCATE_syntax_base;
2036 ATTR_syntax_base___PClosureDef____variables( self) /*PClosureDef::_variables*/ = param0;
2037 tracehead = trace.prev;
2038 return;
2039 }