lib: remove exec::kill and exec::term
[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 struct WBT_ **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 struct WBT_ **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, val_t param4, int* init_table) {
22 struct trace_t trace = {NULL, NULL, 32, LOCATE_syntax_base___MMSrcModule___init};
23 val_t variable[8];
24 struct WBT_ **closurevariable = NULL;
25 trace.prev = tracehead; tracehead = &trace;
26 trace.file = LOCATE_syntax_base;
27 /* Register variable[0]: Local variable */
28 variable[0] = self;
29 /* Register variable[1]: Local variable */
30 variable[1] = param0;
31 /* Register variable[2]: Local variable */
32 variable[2] = param1;
33 /* Register variable[3]: Local variable */
34 variable[3] = param2;
35 /* Register variable[4]: Local variable */
36 variable[4] = param3;
37 /* Register variable[5]: Local variable */
38 variable[5] = param4;
39 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcModule].i]) return;
40 /* Register variable[6]: Method return value and escape marker */
41 CALL_abstractmetamodel___MMModule___init(variable[0])(variable[0], variable[4] /*name*/, variable[3] /*dir*/, variable[1] /*c*/, variable[5] /*filename*/, init_table /*YYY*/) /*MMModule::init*/;
42 ATTR_syntax_base___MMSrcModule____node(variable[0]) /*MMSrcModule::_node*/ = variable[2] /*source*/;
43 /* Register variable[7]: Result */
44 variable[7] = NEW_HashMap_hash___HashMap___init() /*new HashMap[Symbol, MMSrcLocalClass]*/;
45 ATTR_syntax_base___MMSrcModule____src_local_classes(variable[0]) /*MMSrcModule::_src_local_classes*/ = variable[7];
46 return_label0: while(false);
47 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcModule].i] = 1;
48 tracehead = trace.prev;
49 return;
50 }
51 val_t syntax_base___MMGlobalClass___check_visibility(val_t self, val_t param0, val_t param1, val_t param2) {
52 struct trace_t trace = {NULL, NULL, 41, LOCATE_syntax_base___MMGlobalClass___check_visibility};
53 static val_t once_value_2 = NIT_NULL; /* Once value for string variable[8]*/
54 static val_t once_value_3 = NIT_NULL; /* Once value for string variable[8]*/
55 static val_t once_value_4 = NIT_NULL; /* Once value for string variable[8]*/
56 static val_t once_value_5 = NIT_NULL; /* Once value for string variable[8]*/
57 static val_t once_value_6 = NIT_NULL; /* Once value for string variable[8]*/
58 val_t variable[9];
59 struct WBT_ **closurevariable = NULL;
60 trace.prev = tracehead; tracehead = &trace;
61 trace.file = LOCATE_syntax_base;
62 /* Register variable[0]: Local variable */
63 variable[0] = self;
64 /* Register variable[1]: Local variable */
65 variable[1] = param0;
66 /* Register variable[2]: Local variable */
67 variable[2] = param1;
68 /* Register variable[3]: Local variable */
69 variable[3] = param2;
70 /* Register variable[4]: Method return value and escape marker */
71 /* Register variable[5]: Local variable */
72 /* Register variable[6]: Result */
73 variable[6] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[0])(variable[0]) /*MMGlobalClass::intro*/;
74 /* Register variable[6]: Result */
75 variable[6] = CALL_abstractmetamodel___MMLocalClass___module(variable[6])(variable[6]) /*MMLocalClass::module*/;
76 variable[5] = variable[6];
77 /* Register variable[6]: Result */
78 variable[6] = TAG_Bool(( variable[5] /*pm*/==NIT_NULL) || VAL_ISA( variable[5] /*pm*/, COLOR_MMSrcModule, ID_MMSrcModule)) /*cast MMSrcModule*/;
79 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);}
80 /* Register variable[6]: Local variable */
81 /* Register variable[7]: Result */
82 variable[7] = CALL_abstractmetamodel___MMModule___visibility_for( variable[3] /*cm*/)( variable[3] /*cm*/, variable[5] /*pm*/) /*MMModule::visibility_for*/;
83 variable[6] = variable[7];
84 /* Register variable[7]: Result */
85 variable[7] = TAG_Bool(( variable[6] /*vpm*/)==( TAG_Int(3)));
86 if (UNTAG_Bool(variable[7])) { /*if*/
87 variable[4] = TAG_Bool(true);
88 goto return_label1;
89 } else { /*if*/
90 /* Register variable[7]: Result */
91 variable[7] = TAG_Bool(( variable[6] /*vpm*/)==( TAG_Int(0)));
92 if (UNTAG_Bool(variable[7])) { /*if*/
93 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
94 /* Register variable[8]: Once String constant */
95 if (once_value_2 != NIT_NULL) variable[8] = once_value_2;
96 else {
97 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Visibility error: Class "), TAG_Int(24)) /*new String*/;
98 once_value_2 = variable[8];
99 }
100 /* Register variable[8]: Result */
101 /* Ensure var variable[8]: super-string element*/
102 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
103 /* Ensure var variable[0]: super-string element*/
104 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[0])(variable[0]) /*Object::to_s*/) /*AbstractArray::add*/;
105 /* Register variable[8]: Once String constant */
106 if (once_value_3 != NIT_NULL) variable[8] = once_value_3;
107 else {
108 variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" comes from the hidden module "), TAG_Int(30)) /*new String*/;
109 once_value_3 = variable[8];
110 }
111 /* Register variable[8]: Result */
112 /* Ensure var variable[8]: super-string element*/
113 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
114 variable[8] = variable[3] /*cm*/ /* Ensure var: super-string element*/;
115 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/;
116 /* Register variable[8]: Once String constant */
117 if (once_value_4 != NIT_NULL) variable[8] = once_value_4;
118 else {
119 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/;
120 once_value_4 = variable[8];
121 }
122 /* Register variable[8]: Result */
123 /* Ensure var variable[8]: super-string element*/
124 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
125 /* Register variable[7]: Result */
126 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
127 CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[2] /*n*/, variable[7]) /*AbsSyntaxVisitor::error*/;
128 variable[4] = TAG_Bool(false);
129 goto return_label1;
130 } else { /*if*/
131 /* Register variable[7]: Result */
132 variable[7] = CALL_abstractmetamodel___MMGlobalClass___visibility_level(variable[0])(variable[0]) /*MMGlobalClass::visibility_level*/;
133 /* Register variable[7]: Result */
134 variable[7] = TAG_Bool(UNTAG_Int(variable[7])>=UNTAG_Int( TAG_Int(3)));
135 if (UNTAG_Bool(variable[7])) { /*if*/
136 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
137 /* Register variable[8]: Once String constant */
138 if (once_value_5 != NIT_NULL) variable[8] = once_value_5;
139 else {
140 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Visibility error: Class "), TAG_Int(24)) /*new String*/;
141 once_value_5 = variable[8];
142 }
143 /* Register variable[8]: Result */
144 /* Ensure var variable[8]: super-string element*/
145 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
146 /* Ensure var variable[0]: super-string element*/
147 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[0])(variable[0]) /*Object::to_s*/) /*AbstractArray::add*/;
148 /* Register variable[8]: Once String constant */
149 if (once_value_6 != NIT_NULL) variable[8] = once_value_6;
150 else {
151 variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" is private."), TAG_Int(12)) /*new String*/;
152 once_value_6 = variable[8];
153 }
154 /* Register variable[8]: Result */
155 /* Ensure var variable[8]: super-string element*/
156 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
157 /* Register variable[7]: Result */
158 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
159 CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[2] /*n*/, variable[7]) /*AbsSyntaxVisitor::error*/;
160 variable[4] = TAG_Bool(false);
161 goto return_label1;
162 }
163 }
164 }
165 variable[4] = TAG_Bool(true);
166 goto return_label1;
167 return_label1: while(false);
168 tracehead = trace.prev;
169 return variable[4];
170 }
171 val_t syntax_base___MMSrcLocalClass___nodes(val_t self) {
172 struct trace_t trace = {NULL, NULL, 62, LOCATE_syntax_base___MMSrcLocalClass___nodes};
173 val_t *variable = NULL;
174 struct WBT_ **closurevariable = NULL;
175 trace.prev = tracehead; tracehead = &trace;
176 trace.file = LOCATE_syntax_base;
177 tracehead = trace.prev;
178 return ATTR_syntax_base___MMSrcLocalClass____nodes( self) /*MMSrcLocalClass::_nodes*/;
179 }
180 val_t syntax_base___MMSrcLocalClass___formal_dict(val_t self) {
181 struct trace_t trace = {NULL, NULL, 65, LOCATE_syntax_base___MMSrcLocalClass___formal_dict};
182 val_t *variable = NULL;
183 struct WBT_ **closurevariable = NULL;
184 trace.prev = tracehead; tracehead = &trace;
185 trace.file = LOCATE_syntax_base;
186 tracehead = trace.prev;
187 return ATTR_syntax_base___MMSrcLocalClass____formal_dict( self) /*MMSrcLocalClass::_formal_dict*/;
188 }
189 void syntax_base___MMSrcLocalClass___formal_dict__eq(val_t self, val_t param0) {
190 struct trace_t trace = {NULL, NULL, 65, LOCATE_syntax_base___MMSrcLocalClass___formal_dict__eq};
191 val_t *variable = NULL;
192 struct WBT_ **closurevariable = NULL;
193 trace.prev = tracehead; tracehead = &trace;
194 trace.file = LOCATE_syntax_base;
195 ATTR_syntax_base___MMSrcLocalClass____formal_dict( self) /*MMSrcLocalClass::_formal_dict*/ = param0;
196 tracehead = trace.prev;
197 return;
198 }
199 val_t syntax_base___MMSrcLocalClass___src_local_properties(val_t self) {
200 struct trace_t trace = {NULL, NULL, 68, LOCATE_syntax_base___MMSrcLocalClass___src_local_properties};
201 val_t *variable = NULL;
202 struct WBT_ **closurevariable = NULL;
203 trace.prev = tracehead; tracehead = &trace;
204 trace.file = LOCATE_syntax_base;
205 tracehead = trace.prev;
206 return ATTR_syntax_base___MMSrcLocalClass____src_local_properties( self) /*MMSrcLocalClass::_src_local_properties*/;
207 }
208 void syntax_base___MMSrcLocalClass___init(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) {
209 struct trace_t trace = {NULL, NULL, 71, LOCATE_syntax_base___MMSrcLocalClass___init};
210 val_t variable[7];
211 struct WBT_ **closurevariable = NULL;
212 trace.prev = tracehead; tracehead = &trace;
213 trace.file = LOCATE_syntax_base;
214 /* Register variable[0]: Local variable */
215 variable[0] = self;
216 /* Register variable[1]: Local variable */
217 variable[1] = param0;
218 /* Register variable[2]: Local variable */
219 variable[2] = param1;
220 /* Register variable[3]: Local variable */
221 variable[3] = param2;
222 /* Register variable[4]: Local variable */
223 variable[4] = param3;
224 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcLocalClass].i]) return;
225 /* Register variable[5]: Method return value and escape marker */
226 CALL_abstractmetamodel___MMLocalClass___init(variable[0])(variable[0], variable[1] /*mod*/, variable[2] /*n*/, variable[4] /*a*/, init_table /*YYY*/) /*MMLocalClass::init*/;
227 variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(1)) /*new Array[PClassdef]*/ /* Ensure var: Literal array*/;
228 CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[3] /*cla*/) /*AbstractArray::add*/;
229 /* Register variable[6]: Result */
230 ATTR_syntax_base___MMSrcLocalClass____nodes(variable[0]) /*MMSrcLocalClass::_nodes*/ = variable[6];
231 /* Register variable[6]: Result */
232 variable[6] = NEW_HashMap_hash___HashMap___init() /*new HashMap[Symbol, MMLocalProperty]*/;
233 ATTR_syntax_base___MMSrcLocalClass____src_local_properties(variable[0]) /*MMSrcLocalClass::_src_local_properties*/ = variable[6];
234 return_label7: while(false);
235 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcLocalClass].i] = 1;
236 tracehead = trace.prev;
237 return;
238 }
239 val_t syntax_base___MMGlobalProperty___check_visibility(val_t self, val_t param0, val_t param1, val_t param2, val_t param3) {
240 struct trace_t trace = {NULL, NULL, 80, LOCATE_syntax_base___MMGlobalProperty___check_visibility};
241 static val_t once_value_9 = NIT_NULL; /* Once value for string variable[9]*/
242 static val_t once_value_10 = NIT_NULL; /* Once value for string variable[9]*/
243 static val_t once_value_11 = NIT_NULL; /* Once value for string variable[9]*/
244 static val_t once_value_12 = NIT_NULL; /* Once value for string variable[9]*/
245 static val_t once_value_13 = NIT_NULL; /* Once value for string variable[9]*/
246 static val_t once_value_14 = NIT_NULL; /* Once value for string variable[9]*/
247 static val_t once_value_15 = NIT_NULL; /* Once value for string variable[9]*/
248 val_t variable[10];
249 struct WBT_ **closurevariable = NULL;
250 trace.prev = tracehead; tracehead = &trace;
251 trace.file = LOCATE_syntax_base;
252 /* Register variable[0]: Local variable */
253 variable[0] = self;
254 /* Register variable[1]: Local variable */
255 variable[1] = param0;
256 /* Register variable[2]: Local variable */
257 variable[2] = param1;
258 /* Register variable[3]: Local variable */
259 variable[3] = param2;
260 /* Register variable[4]: Local variable */
261 variable[4] = param3;
262 /* Register variable[5]: Method return value and escape marker */
263 /* Register variable[6]: Local variable */
264 /* Register variable[7]: Result */
265 variable[7] = CALL_abstractmetamodel___MMGlobalProperty___local_class(variable[0])(variable[0]) /*MMGlobalProperty::local_class*/;
266 /* Register variable[7]: Result */
267 variable[7] = CALL_abstractmetamodel___MMLocalClass___module(variable[7])(variable[7]) /*MMLocalClass::module*/;
268 variable[6] = variable[7];
269 /* Register variable[7]: Result */
270 variable[7] = TAG_Bool(( variable[6] /*pm*/==NIT_NULL) || VAL_ISA( variable[6] /*pm*/, COLOR_MMSrcModule, ID_MMSrcModule)) /*cast MMSrcModule*/;
271 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);}
272 /* Register variable[7]: Local variable */
273 /* Register variable[8]: Result */
274 variable[8] = CALL_abstractmetamodel___MMModule___visibility_for( variable[3] /*cm*/)( variable[3] /*cm*/, variable[6] /*pm*/) /*MMModule::visibility_for*/;
275 variable[7] = variable[8];
276 /* Register variable[8]: Result */
277 variable[8] = TAG_Bool(( variable[7] /*vpm*/)==( TAG_Int(3)));
278 if (UNTAG_Bool(variable[8])) { /*if*/
279 variable[5] = TAG_Bool(true);
280 goto return_label8;
281 } else { /*if*/
282 /* Register variable[8]: Result */
283 variable[8] = TAG_Bool(( variable[7] /*vpm*/)==( TAG_Int(0)));
284 if (UNTAG_Bool(variable[8])) { /*if*/
285 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
286 /* Register variable[9]: Once String constant */
287 if (once_value_9 != NIT_NULL) variable[9] = once_value_9;
288 else {
289 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Visibility error: Property "), TAG_Int(27)) /*new String*/;
290 once_value_9 = variable[9];
291 }
292 /* Register variable[9]: Result */
293 /* Ensure var variable[9]: super-string element*/
294 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
295 /* Ensure var variable[0]: super-string element*/
296 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[0])(variable[0]) /*Object::to_s*/) /*AbstractArray::add*/;
297 /* Register variable[9]: Once String constant */
298 if (once_value_10 != NIT_NULL) variable[9] = once_value_10;
299 else {
300 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" comes from the hidden module "), TAG_Int(30)) /*new String*/;
301 once_value_10 = variable[9];
302 }
303 /* Register variable[9]: Result */
304 /* Ensure var variable[9]: super-string element*/
305 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
306 variable[9] = variable[3] /*cm*/ /* Ensure var: super-string element*/;
307 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/;
308 /* Register variable[9]: Once String constant */
309 if (once_value_11 != NIT_NULL) variable[9] = once_value_11;
310 else {
311 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/;
312 once_value_11 = variable[9];
313 }
314 /* Register variable[9]: Result */
315 /* Ensure var variable[9]: super-string element*/
316 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
317 /* Register variable[8]: Result */
318 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
319 CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[2] /*n*/, variable[8]) /*AbsSyntaxVisitor::error*/;
320 variable[5] = TAG_Bool(false);
321 goto return_label8;
322 } else { /*if*/
323 /* Register variable[8]: Result */
324 variable[8] = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(variable[0])(variable[0]) /*MMGlobalProperty::visibility_level*/;
325 /* Register variable[8]: Result */
326 variable[8] = TAG_Bool(UNTAG_Int(variable[8])>=UNTAG_Int( TAG_Int(3)));
327 if (UNTAG_Bool(variable[8])) { /*if*/
328 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
329 /* Register variable[9]: Once String constant */
330 if (once_value_12 != NIT_NULL) variable[9] = once_value_12;
331 else {
332 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Visibility error: Property "), TAG_Int(27)) /*new String*/;
333 once_value_12 = variable[9];
334 }
335 /* Register variable[9]: Result */
336 /* Ensure var variable[9]: super-string element*/
337 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
338 /* Ensure var variable[0]: super-string element*/
339 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[0])(variable[0]) /*Object::to_s*/) /*AbstractArray::add*/;
340 /* Register variable[9]: Once String constant */
341 if (once_value_13 != NIT_NULL) variable[9] = once_value_13;
342 else {
343 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" is private."), TAG_Int(12)) /*new String*/;
344 once_value_13 = variable[9];
345 }
346 /* Register variable[9]: Result */
347 /* Ensure var variable[9]: super-string element*/
348 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
349 /* Register variable[8]: Result */
350 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
351 CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[2] /*n*/, variable[8]) /*AbsSyntaxVisitor::error*/;
352 variable[5] = TAG_Bool(false);
353 goto return_label8;
354 } else { /*if*/
355 /* Register variable[8]: Result */
356 variable[8] = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(variable[0])(variable[0]) /*MMGlobalProperty::visibility_level*/;
357 /* Register variable[8]: Result */
358 variable[8] = TAG_Bool(UNTAG_Int(variable[8])>=UNTAG_Int( TAG_Int(2)));
359 /* Ensure var variable[8]: Left 'and' operand*/
360 if (UNTAG_Bool(variable[8])) { /* and */
361 variable[8] = TAG_Bool(!UNTAG_Bool( variable[4] /*allows_protected*/));
362 }
363 /* Register variable[8]: Result */
364 if (UNTAG_Bool(variable[8])) { /*if*/
365 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
366 /* Register variable[9]: Once String constant */
367 if (once_value_14 != NIT_NULL) variable[9] = once_value_14;
368 else {
369 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Visibility error: Property "), TAG_Int(27)) /*new String*/;
370 once_value_14 = variable[9];
371 }
372 /* Register variable[9]: Result */
373 /* Ensure var variable[9]: super-string element*/
374 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
375 /* Ensure var variable[0]: super-string element*/
376 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[0])(variable[0]) /*Object::to_s*/) /*AbstractArray::add*/;
377 /* Register variable[9]: Once String constant */
378 if (once_value_15 != NIT_NULL) variable[9] = once_value_15;
379 else {
380 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" is protected and can only acceded by self."), TAG_Int(43)) /*new String*/;
381 once_value_15 = variable[9];
382 }
383 /* Register variable[9]: Result */
384 /* Ensure var variable[9]: super-string element*/
385 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
386 /* Register variable[8]: Result */
387 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
388 CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[2] /*n*/, variable[8]) /*AbsSyntaxVisitor::error*/;
389 variable[5] = TAG_Bool(false);
390 goto return_label8;
391 }
392 }
393 }
394 }
395 variable[5] = TAG_Bool(true);
396 goto return_label8;
397 return_label8: while(false);
398 tracehead = trace.prev;
399 return variable[5];
400 }
401 val_t syntax_base___MMLocalProperty___node(val_t self) {
402 struct trace_t trace = {NULL, NULL, 103, LOCATE_syntax_base___MMLocalProperty___node};
403 val_t variable[2];
404 struct WBT_ **closurevariable = NULL;
405 trace.prev = tracehead; tracehead = &trace;
406 trace.file = LOCATE_syntax_base;
407 /* Register variable[0]: Local variable */
408 variable[0] = self;
409 /* Register variable[1]: Method return value and escape marker */
410 variable[1] = NIT_NULL /*null*/;
411 goto return_label16;
412 return_label16: while(false);
413 tracehead = trace.prev;
414 return variable[1];
415 }
416 val_t syntax_base___MMLocalProperty___is_init(val_t self) {
417 struct trace_t trace = {NULL, NULL, 106, LOCATE_syntax_base___MMLocalProperty___is_init};
418 val_t variable[2];
419 struct WBT_ **closurevariable = NULL;
420 trace.prev = tracehead; tracehead = &trace;
421 trace.file = LOCATE_syntax_base;
422 /* Register variable[0]: Local variable */
423 variable[0] = self;
424 /* Register variable[1]: Method return value and escape marker */
425 variable[1] = TAG_Bool(false);
426 goto return_label17;
427 return_label17: while(false);
428 tracehead = trace.prev;
429 return variable[1];
430 }
431 val_t syntax_base___MMSrcAttribute___node(val_t self) {
432 struct trace_t trace = {NULL, NULL, 113, LOCATE_syntax_base___MMSrcAttribute___node};
433 val_t *variable = NULL;
434 struct WBT_ **closurevariable = NULL;
435 trace.prev = tracehead; tracehead = &trace;
436 trace.file = LOCATE_syntax_base;
437 tracehead = trace.prev;
438 return ATTR_syntax_base___MMSrcAttribute____node( self) /*MMSrcAttribute::_node*/;
439 }
440 void syntax_base___MMSrcAttribute___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
441 struct trace_t trace = {NULL, NULL, 114, LOCATE_syntax_base___MMSrcAttribute___init};
442 val_t variable[5];
443 struct WBT_ **closurevariable = NULL;
444 trace.prev = tracehead; tracehead = &trace;
445 trace.file = LOCATE_syntax_base;
446 /* Register variable[0]: Local variable */
447 variable[0] = self;
448 /* Register variable[1]: Local variable */
449 variable[1] = param0;
450 /* Register variable[2]: Local variable */
451 variable[2] = param1;
452 /* Register variable[3]: Local variable */
453 variable[3] = param2;
454 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcAttribute].i]) return;
455 /* Register variable[4]: Method return value and escape marker */
456 CALL_abstractmetamodel___MMLocalProperty___init(variable[0])(variable[0], variable[1] /*name*/, variable[2] /*cla*/, init_table /*YYY*/) /*MMLocalProperty::init*/;
457 ATTR_syntax_base___MMSrcAttribute____node(variable[0]) /*MMSrcAttribute::_node*/ = variable[3] /*n*/;
458 return_label18: while(false);
459 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcAttribute].i] = 1;
460 tracehead = trace.prev;
461 return;
462 }
463 val_t syntax_base___MMAttrImplementationMethod___node(val_t self) {
464 struct trace_t trace = {NULL, NULL, 129, LOCATE_syntax_base___MMAttrImplementationMethod___node};
465 val_t *variable = NULL;
466 struct WBT_ **closurevariable = NULL;
467 trace.prev = tracehead; tracehead = &trace;
468 trace.file = LOCATE_syntax_base;
469 tracehead = trace.prev;
470 return ATTR_syntax_base___MMAttrImplementationMethod____node( self) /*MMAttrImplementationMethod::_node*/;
471 }
472 void syntax_base___MMAttrImplementationMethod___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
473 struct trace_t trace = {NULL, NULL, 130, LOCATE_syntax_base___MMAttrImplementationMethod___init};
474 val_t variable[5];
475 struct WBT_ **closurevariable = NULL;
476 trace.prev = tracehead; tracehead = &trace;
477 trace.file = LOCATE_syntax_base;
478 /* Register variable[0]: Local variable */
479 variable[0] = self;
480 /* Register variable[1]: Local variable */
481 variable[1] = param0;
482 /* Register variable[2]: Local variable */
483 variable[2] = param1;
484 /* Register variable[3]: Local variable */
485 variable[3] = param2;
486 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMAttrImplementationMethod].i]) return;
487 /* Register variable[4]: Method return value and escape marker */
488 CALL_abstractmetamodel___MMLocalProperty___init(variable[0])(variable[0], variable[1] /*name*/, variable[2] /*cla*/, init_table /*YYY*/) /*MMLocalProperty::init*/;
489 ATTR_syntax_base___MMAttrImplementationMethod____node(variable[0]) /*MMAttrImplementationMethod::_node*/ = variable[3] /*n*/;
490 return_label19: while(false);
491 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMAttrImplementationMethod].i] = 1;
492 tracehead = trace.prev;
493 return;
494 }
495 void syntax_base___MMReadImplementationMethod___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
496 struct trace_t trace = {NULL, NULL, 140, LOCATE_syntax_base___MMReadImplementationMethod___init};
497 val_t variable[5];
498 struct WBT_ **closurevariable = NULL;
499 trace.prev = tracehead; tracehead = &trace;
500 trace.file = LOCATE_syntax_base;
501 /* Register variable[0]: Local variable */
502 variable[0] = self;
503 /* Register variable[1]: Local variable */
504 variable[1] = param0;
505 /* Register variable[2]: Local variable */
506 variable[2] = param1;
507 /* Register variable[3]: Local variable */
508 variable[3] = param2;
509 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMReadImplementationMethod].i]) return;
510 /* Register variable[4]: Method return value and escape marker */
511 CALL_syntax_base___MMAttrImplementationMethod___init(variable[0])(variable[0], variable[1] /*name*/, variable[2] /*cla*/, variable[3] /*n*/, init_table /*YYY*/) /*MMAttrImplementationMethod::init*/;
512 return_label20: while(false);
513 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMReadImplementationMethod].i] = 1;
514 tracehead = trace.prev;
515 return;
516 }
517 void syntax_base___MMWriteImplementationMethod___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
518 struct trace_t trace = {NULL, NULL, 149, LOCATE_syntax_base___MMWriteImplementationMethod___init};
519 val_t variable[5];
520 struct WBT_ **closurevariable = NULL;
521 trace.prev = tracehead; tracehead = &trace;
522 trace.file = LOCATE_syntax_base;
523 /* Register variable[0]: Local variable */
524 variable[0] = self;
525 /* Register variable[1]: Local variable */
526 variable[1] = param0;
527 /* Register variable[2]: Local variable */
528 variable[2] = param1;
529 /* Register variable[3]: Local variable */
530 variable[3] = param2;
531 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMWriteImplementationMethod].i]) return;
532 /* Register variable[4]: Method return value and escape marker */
533 CALL_syntax_base___MMAttrImplementationMethod___init(variable[0])(variable[0], variable[1] /*name*/, variable[2] /*cla*/, variable[3] /*n*/, init_table /*YYY*/) /*MMAttrImplementationMethod::init*/;
534 return_label21: while(false);
535 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMWriteImplementationMethod].i] = 1;
536 tracehead = trace.prev;
537 return;
538 }
539 val_t syntax_base___MMMethSrcMethod___node(val_t self) {
540 struct trace_t trace = {NULL, NULL, 159, LOCATE_syntax_base___MMMethSrcMethod___node};
541 val_t *variable = NULL;
542 struct WBT_ **closurevariable = NULL;
543 trace.prev = tracehead; tracehead = &trace;
544 trace.file = LOCATE_syntax_base;
545 tracehead = trace.prev;
546 return ATTR_syntax_base___MMMethSrcMethod____node( self) /*MMMethSrcMethod::_node*/;
547 }
548 val_t syntax_base___MMMethSrcMethod___is_init(val_t self) {
549 struct trace_t trace = {NULL, NULL, 158, LOCATE_syntax_base___MMMethSrcMethod___is_init};
550 val_t variable[3];
551 struct WBT_ **closurevariable = NULL;
552 trace.prev = tracehead; tracehead = &trace;
553 trace.file = LOCATE_syntax_base;
554 /* Register variable[0]: Local variable */
555 variable[0] = self;
556 /* Register variable[1]: Method return value and escape marker */
557 /* Register variable[2]: Result */
558 variable[2] = ATTR_syntax_base___MMMethSrcMethod____node(variable[0]) /*MMMethSrcMethod::_node*/;
559 /* Register variable[2]: Result */
560 variable[2] = TAG_Bool((variable[2]==NIT_NULL) || VAL_ISA(variable[2], COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
561 variable[1] = variable[2];
562 goto return_label22;
563 return_label22: while(false);
564 tracehead = trace.prev;
565 return variable[1];
566 }
567 void syntax_base___MMMethSrcMethod___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
568 struct trace_t trace = {NULL, NULL, 160, LOCATE_syntax_base___MMMethSrcMethod___init};
569 val_t variable[5];
570 struct WBT_ **closurevariable = NULL;
571 trace.prev = tracehead; tracehead = &trace;
572 trace.file = LOCATE_syntax_base;
573 /* Register variable[0]: Local variable */
574 variable[0] = self;
575 /* Register variable[1]: Local variable */
576 variable[1] = param0;
577 /* Register variable[2]: Local variable */
578 variable[2] = param1;
579 /* Register variable[3]: Local variable */
580 variable[3] = param2;
581 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMMethSrcMethod].i]) return;
582 /* Register variable[4]: Method return value and escape marker */
583 CALL_abstractmetamodel___MMLocalProperty___init(variable[0])(variable[0], variable[1] /*name*/, variable[2] /*cla*/, init_table /*YYY*/) /*MMLocalProperty::init*/;
584 ATTR_syntax_base___MMMethSrcMethod____node(variable[0]) /*MMMethSrcMethod::_node*/ = variable[3] /*n*/;
585 return_label23: while(false);
586 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMMethSrcMethod].i] = 1;
587 tracehead = trace.prev;
588 return;
589 }
590 val_t syntax_base___MMSrcTypeProperty___node(val_t self) {
591 struct trace_t trace = {NULL, NULL, 171, LOCATE_syntax_base___MMSrcTypeProperty___node};
592 val_t *variable = NULL;
593 struct WBT_ **closurevariable = NULL;
594 trace.prev = tracehead; tracehead = &trace;
595 trace.file = LOCATE_syntax_base;
596 tracehead = trace.prev;
597 return ATTR_syntax_base___MMSrcTypeProperty____node( self) /*MMSrcTypeProperty::_node*/;
598 }
599 void syntax_base___MMSrcTypeProperty___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
600 struct trace_t trace = {NULL, NULL, 172, LOCATE_syntax_base___MMSrcTypeProperty___init};
601 val_t variable[5];
602 struct WBT_ **closurevariable = NULL;
603 trace.prev = tracehead; tracehead = &trace;
604 trace.file = LOCATE_syntax_base;
605 /* Register variable[0]: Local variable */
606 variable[0] = self;
607 /* Register variable[1]: Local variable */
608 variable[1] = param0;
609 /* Register variable[2]: Local variable */
610 variable[2] = param1;
611 /* Register variable[3]: Local variable */
612 variable[3] = param2;
613 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcTypeProperty].i]) return;
614 /* Register variable[4]: Method return value and escape marker */
615 CALL_abstractmetamodel___MMLocalProperty___init(variable[0])(variable[0], variable[1] /*name*/, variable[2] /*cla*/, init_table /*YYY*/) /*MMLocalProperty::init*/;
616 ATTR_syntax_base___MMSrcTypeProperty____node(variable[0]) /*MMSrcTypeProperty::_node*/ = variable[3] /*n*/;
617 return_label24: while(false);
618 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcTypeProperty].i] = 1;
619 tracehead = trace.prev;
620 return;
621 }
622 val_t syntax_base___MMImplicitInit___is_init(val_t self) {
623 struct trace_t trace = {NULL, NULL, 182, LOCATE_syntax_base___MMImplicitInit___is_init};
624 val_t variable[2];
625 struct WBT_ **closurevariable = NULL;
626 trace.prev = tracehead; tracehead = &trace;
627 trace.file = LOCATE_syntax_base;
628 /* Register variable[0]: Local variable */
629 variable[0] = self;
630 /* Register variable[1]: Method return value and escape marker */
631 variable[1] = TAG_Bool(true);
632 goto return_label25;
633 return_label25: while(false);
634 tracehead = trace.prev;
635 return variable[1];
636 }
637 val_t syntax_base___MMImplicitInit___unassigned_attributes(val_t self) {
638 struct trace_t trace = {NULL, NULL, 183, LOCATE_syntax_base___MMImplicitInit___unassigned_attributes};
639 val_t *variable = NULL;
640 struct WBT_ **closurevariable = NULL;
641 trace.prev = tracehead; tracehead = &trace;
642 trace.file = LOCATE_syntax_base;
643 tracehead = trace.prev;
644 return ATTR_syntax_base___MMImplicitInit____unassigned_attributes( self) /*MMImplicitInit::_unassigned_attributes*/;
645 }
646 val_t syntax_base___MMImplicitInit___super_inits(val_t self) {
647 struct trace_t trace = {NULL, NULL, 184, LOCATE_syntax_base___MMImplicitInit___super_inits};
648 val_t *variable = NULL;
649 struct WBT_ **closurevariable = NULL;
650 trace.prev = tracehead; tracehead = &trace;
651 trace.file = LOCATE_syntax_base;
652 tracehead = trace.prev;
653 return ATTR_syntax_base___MMImplicitInit____super_inits( self) /*MMImplicitInit::_super_inits*/;
654 }
655 void syntax_base___MMImplicitInit___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
656 struct trace_t trace = {NULL, NULL, 185, LOCATE_syntax_base___MMImplicitInit___init};
657 static val_t once_value_27; static int once_bool_27; /* Once value for variable[5]*/
658 static val_t once_value_28 = NIT_NULL; /* Once value for string variable[5]*/
659 val_t variable[6];
660 struct WBT_ **closurevariable = NULL;
661 trace.prev = tracehead; tracehead = &trace;
662 trace.file = LOCATE_syntax_base;
663 /* Register variable[0]: Local variable */
664 variable[0] = self;
665 /* Register variable[1]: Local variable */
666 variable[1] = param0;
667 /* Register variable[2]: Local variable */
668 variable[2] = param1;
669 /* Register variable[3]: Local variable */
670 variable[3] = param2;
671 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMImplicitInit].i]) return;
672 /* Register variable[4]: Method return value and escape marker */
673 /* Register variable[5]: Once expression result */
674 if (once_bool_27) variable[5] = once_value_27;
675 else {
676 /* Register variable[5]: Once String constant */
677 if (once_value_28 != NIT_NULL) variable[5] = once_value_28;
678 else {
679 variable[5] = NEW_String_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)) /*new String*/;
680 once_value_28 = variable[5];
681 }
682 /* Register variable[5]: Result */
683 /* Register variable[5]: Result */
684 variable[5] = CALL_symbol___String___to_symbol(variable[5])(variable[5]) /*String::to_symbol*/;
685 once_value_27 = variable[5];
686 once_bool_27 = true;
687 }
688 /* Register variable[5]: Result */
689 CALL_syntax_base___MMMethSrcMethod___init(variable[0])(variable[0], variable[5], variable[1] /*cla*/, NIT_NULL /*null*/, init_table /*YYY*/) /*MMMethSrcMethod::init*/;
690 ATTR_syntax_base___MMImplicitInit____unassigned_attributes(variable[0]) /*MMImplicitInit::_unassigned_attributes*/ = variable[2] /*unassigned_attributes*/;
691 ATTR_syntax_base___MMImplicitInit____super_inits(variable[0]) /*MMImplicitInit::_super_inits*/ = variable[3] /*super_inits*/;
692 return_label26: while(false);
693 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMImplicitInit].i] = 1;
694 tracehead = trace.prev;
695 return;
696 }
697 val_t syntax_base___Variable___to_s(val_t self) {
698 struct trace_t trace = {NULL, NULL, 204, LOCATE_syntax_base___Variable___to_s};
699 val_t variable[3];
700 struct WBT_ **closurevariable = NULL;
701 trace.prev = tracehead; tracehead = &trace;
702 trace.file = LOCATE_syntax_base;
703 /* Register variable[0]: Local variable */
704 variable[0] = self;
705 /* Register variable[1]: Method return value and escape marker */
706 /* Register variable[2]: Result */
707 variable[2] = ATTR_syntax_base___Variable____name(variable[0]) /*Variable::_name*/;
708 /* Register variable[2]: Result */
709 variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Symbol::to_s*/;
710 variable[1] = variable[2];
711 goto return_label29;
712 return_label29: while(false);
713 tracehead = trace.prev;
714 return variable[1];
715 }
716 val_t syntax_base___Variable___name(val_t self) {
717 struct trace_t trace = {NULL, NULL, 195, LOCATE_syntax_base___Variable___name};
718 val_t *variable = NULL;
719 struct WBT_ **closurevariable = NULL;
720 trace.prev = tracehead; tracehead = &trace;
721 trace.file = LOCATE_syntax_base;
722 tracehead = trace.prev;
723 return ATTR_syntax_base___Variable____name( self) /*Variable::_name*/;
724 }
725 val_t syntax_base___Variable___decl(val_t self) {
726 struct trace_t trace = {NULL, NULL, 198, LOCATE_syntax_base___Variable___decl};
727 val_t *variable = NULL;
728 struct WBT_ **closurevariable = NULL;
729 trace.prev = tracehead; tracehead = &trace;
730 trace.file = LOCATE_syntax_base;
731 tracehead = trace.prev;
732 return ATTR_syntax_base___Variable____decl( self) /*Variable::_decl*/;
733 }
734 val_t syntax_base___Variable___stype(val_t self) {
735 struct trace_t trace = {NULL, NULL, 201, LOCATE_syntax_base___Variable___stype};
736 val_t *variable = NULL;
737 struct WBT_ **closurevariable = NULL;
738 trace.prev = tracehead; tracehead = &trace;
739 trace.file = LOCATE_syntax_base;
740 tracehead = trace.prev;
741 return ATTR_syntax_base___Variable____stype( self) /*Variable::_stype*/;
742 }
743 void syntax_base___Variable___stype__eq(val_t self, val_t param0) {
744 struct trace_t trace = {NULL, NULL, 201, LOCATE_syntax_base___Variable___stype__eq};
745 val_t *variable = NULL;
746 struct WBT_ **closurevariable = NULL;
747 trace.prev = tracehead; tracehead = &trace;
748 trace.file = LOCATE_syntax_base;
749 ATTR_syntax_base___Variable____stype( self) /*Variable::_stype*/ = param0;
750 tracehead = trace.prev;
751 return;
752 }
753 val_t syntax_base___Variable___kind(val_t self) {
754 struct trace_t trace = {NULL, NULL, 206, LOCATE_syntax_base___Variable___kind};
755 val_t *variable = NULL;
756 struct WBT_ **closurevariable = NULL;
757 trace.prev = tracehead; tracehead = &trace;
758 trace.file = LOCATE_syntax_base;
759 fprintf(stderr, "Deferred method called");
760 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 206);
761 nit_exit(1);
762 tracehead = trace.prev;
763 return NIT_NULL;
764 }
765 void syntax_base___Variable___init(val_t self, val_t param0, val_t param1, int* init_table) {
766 struct trace_t trace = {NULL, NULL, 208, LOCATE_syntax_base___Variable___init};
767 val_t variable[4];
768 struct WBT_ **closurevariable = NULL;
769 trace.prev = tracehead; tracehead = &trace;
770 trace.file = LOCATE_syntax_base;
771 /* Register variable[0]: Local variable */
772 variable[0] = self;
773 /* Register variable[1]: Local variable */
774 variable[1] = param0;
775 /* Register variable[2]: Local variable */
776 variable[2] = param1;
777 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Variable].i]) return;
778 /* Register variable[3]: Method return value and escape marker */
779 ATTR_syntax_base___Variable____name(variable[0]) /*Variable::_name*/ = variable[1] /*n*/;
780 ATTR_syntax_base___Variable____decl(variable[0]) /*Variable::_decl*/ = variable[2] /*d*/;
781 return_label30: while(false);
782 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Variable].i] = 1;
783 tracehead = trace.prev;
784 return;
785 }
786 val_t syntax_base___VarVariable___kind(val_t self) {
787 struct trace_t trace = {NULL, NULL, 220, LOCATE_syntax_base___VarVariable___kind};
788 static val_t once_value_32; static int once_bool_32; /* Once value for variable[2]*/
789 static val_t once_value_33 = NIT_NULL; /* Once value for string variable[2]*/
790 val_t variable[3];
791 struct WBT_ **closurevariable = NULL;
792 trace.prev = tracehead; tracehead = &trace;
793 trace.file = LOCATE_syntax_base;
794 /* Register variable[0]: Local variable */
795 variable[0] = self;
796 /* Register variable[1]: Method return value and escape marker */
797 /* Register variable[2]: Once expression result */
798 if (once_bool_32) variable[2] = once_value_32;
799 else {
800 /* Register variable[2]: Once String constant */
801 if (once_value_33 != NIT_NULL) variable[2] = once_value_33;
802 else {
803 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("variable"), TAG_Int(8)) /*new String*/;
804 once_value_33 = variable[2];
805 }
806 /* Register variable[2]: Result */
807 once_value_32 = variable[2];
808 once_bool_32 = true;
809 }
810 /* Register variable[2]: Result */
811 variable[1] = variable[2];
812 goto return_label31;
813 return_label31: while(false);
814 tracehead = trace.prev;
815 return variable[1];
816 }
817 void syntax_base___VarVariable___init(val_t self, val_t param0, val_t param1, int* init_table) {
818 struct trace_t trace = {NULL, NULL, 221, LOCATE_syntax_base___VarVariable___init};
819 val_t variable[4];
820 struct WBT_ **closurevariable = NULL;
821 trace.prev = tracehead; tracehead = &trace;
822 trace.file = LOCATE_syntax_base;
823 /* Register variable[0]: Local variable */
824 variable[0] = self;
825 /* Register variable[1]: Local variable */
826 variable[1] = param0;
827 /* Register variable[2]: Local variable */
828 variable[2] = param1;
829 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_VarVariable].i]) return;
830 /* Register variable[3]: Method return value and escape marker */
831 CALL_syntax_base___Variable___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*Variable::init*/;
832 return_label34: while(false);
833 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_VarVariable].i] = 1;
834 tracehead = trace.prev;
835 return;
836 }
837 val_t syntax_base___ParamVariable___kind(val_t self) {
838 struct trace_t trace = {NULL, NULL, 227, LOCATE_syntax_base___ParamVariable___kind};
839 static val_t once_value_36; static int once_bool_36; /* Once value for variable[2]*/
840 static val_t once_value_37 = NIT_NULL; /* Once value for string variable[2]*/
841 val_t variable[3];
842 struct WBT_ **closurevariable = NULL;
843 trace.prev = tracehead; tracehead = &trace;
844 trace.file = LOCATE_syntax_base;
845 /* Register variable[0]: Local variable */
846 variable[0] = self;
847 /* Register variable[1]: Method return value and escape marker */
848 /* Register variable[2]: Once expression result */
849 if (once_bool_36) variable[2] = once_value_36;
850 else {
851 /* Register variable[2]: Once String constant */
852 if (once_value_37 != NIT_NULL) variable[2] = once_value_37;
853 else {
854 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("parameter"), TAG_Int(9)) /*new String*/;
855 once_value_37 = variable[2];
856 }
857 /* Register variable[2]: Result */
858 once_value_36 = variable[2];
859 once_bool_36 = true;
860 }
861 /* Register variable[2]: Result */
862 variable[1] = variable[2];
863 goto return_label35;
864 return_label35: while(false);
865 tracehead = trace.prev;
866 return variable[1];
867 }
868 void syntax_base___ParamVariable___init(val_t self, val_t param0, val_t param1, int* init_table) {
869 struct trace_t trace = {NULL, NULL, 228, LOCATE_syntax_base___ParamVariable___init};
870 val_t variable[4];
871 struct WBT_ **closurevariable = NULL;
872 trace.prev = tracehead; tracehead = &trace;
873 trace.file = LOCATE_syntax_base;
874 /* Register variable[0]: Local variable */
875 variable[0] = self;
876 /* Register variable[1]: Local variable */
877 variable[1] = param0;
878 /* Register variable[2]: Local variable */
879 variable[2] = param1;
880 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ParamVariable].i]) return;
881 /* Register variable[3]: Method return value and escape marker */
882 CALL_syntax_base___Variable___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*Variable::init*/;
883 return_label38: while(false);
884 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ParamVariable].i] = 1;
885 tracehead = trace.prev;
886 return;
887 }
888 val_t syntax_base___AutoVariable___kind(val_t self) {
889 struct trace_t trace = {NULL, NULL, 234, LOCATE_syntax_base___AutoVariable___kind};
890 static val_t once_value_40; static int once_bool_40; /* Once value for variable[2]*/
891 static val_t once_value_41 = NIT_NULL; /* Once value for string variable[2]*/
892 val_t variable[3];
893 struct WBT_ **closurevariable = NULL;
894 trace.prev = tracehead; tracehead = &trace;
895 trace.file = LOCATE_syntax_base;
896 /* Register variable[0]: Local variable */
897 variable[0] = self;
898 /* Register variable[1]: Method return value and escape marker */
899 /* Register variable[2]: Once expression result */
900 if (once_bool_40) variable[2] = once_value_40;
901 else {
902 /* Register variable[2]: Once String constant */
903 if (once_value_41 != NIT_NULL) variable[2] = once_value_41;
904 else {
905 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("automatic variable"), TAG_Int(18)) /*new String*/;
906 once_value_41 = variable[2];
907 }
908 /* Register variable[2]: Result */
909 once_value_40 = variable[2];
910 once_bool_40 = true;
911 }
912 /* Register variable[2]: Result */
913 variable[1] = variable[2];
914 goto return_label39;
915 return_label39: while(false);
916 tracehead = trace.prev;
917 return variable[1];
918 }
919 void syntax_base___AutoVariable___init(val_t self, val_t param0, val_t param1, int* init_table) {
920 struct trace_t trace = {NULL, NULL, 235, LOCATE_syntax_base___AutoVariable___init};
921 val_t variable[4];
922 struct WBT_ **closurevariable = NULL;
923 trace.prev = tracehead; tracehead = &trace;
924 trace.file = LOCATE_syntax_base;
925 /* Register variable[0]: Local variable */
926 variable[0] = self;
927 /* Register variable[1]: Local variable */
928 variable[1] = param0;
929 /* Register variable[2]: Local variable */
930 variable[2] = param1;
931 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AutoVariable].i]) return;
932 /* Register variable[3]: Method return value and escape marker */
933 CALL_syntax_base___Variable___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*Variable::init*/;
934 return_label42: while(false);
935 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AutoVariable].i] = 1;
936 tracehead = trace.prev;
937 return;
938 }
939 val_t syntax_base___ClosureVariable___kind(val_t self) {
940 struct trace_t trace = {NULL, NULL, 242, LOCATE_syntax_base___ClosureVariable___kind};
941 static val_t once_value_44; static int once_bool_44; /* Once value for variable[2]*/
942 static val_t once_value_45 = NIT_NULL; /* Once value for string variable[2]*/
943 val_t variable[3];
944 struct WBT_ **closurevariable = NULL;
945 trace.prev = tracehead; tracehead = &trace;
946 trace.file = LOCATE_syntax_base;
947 /* Register variable[0]: Local variable */
948 variable[0] = self;
949 /* Register variable[1]: Method return value and escape marker */
950 /* Register variable[2]: Once expression result */
951 if (once_bool_44) variable[2] = once_value_44;
952 else {
953 /* Register variable[2]: Once String constant */
954 if (once_value_45 != NIT_NULL) variable[2] = once_value_45;
955 else {
956 variable[2] = NEW_String_string___String___with_native(BOX_NativeString("closure"), TAG_Int(7)) /*new String*/;
957 once_value_45 = variable[2];
958 }
959 /* Register variable[2]: Result */
960 once_value_44 = variable[2];
961 once_bool_44 = true;
962 }
963 /* Register variable[2]: Result */
964 variable[1] = variable[2];
965 goto return_label43;
966 return_label43: while(false);
967 tracehead = trace.prev;
968 return variable[1];
969 }
970 val_t syntax_base___ClosureVariable___closure(val_t self) {
971 struct trace_t trace = {NULL, NULL, 244, LOCATE_syntax_base___ClosureVariable___closure};
972 val_t *variable = NULL;
973 struct WBT_ **closurevariable = NULL;
974 trace.prev = tracehead; tracehead = &trace;
975 trace.file = LOCATE_syntax_base;
976 tracehead = trace.prev;
977 return ATTR_syntax_base___ClosureVariable____closure( self) /*ClosureVariable::_closure*/;
978 }
979 void syntax_base___ClosureVariable___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) {
980 struct trace_t trace = {NULL, NULL, 247, LOCATE_syntax_base___ClosureVariable___init};
981 val_t variable[5];
982 struct WBT_ **closurevariable = NULL;
983 trace.prev = tracehead; tracehead = &trace;
984 trace.file = LOCATE_syntax_base;
985 /* Register variable[0]: Local variable */
986 variable[0] = self;
987 /* Register variable[1]: Local variable */
988 variable[1] = param0;
989 /* Register variable[2]: Local variable */
990 variable[2] = param1;
991 /* Register variable[3]: Local variable */
992 variable[3] = param2;
993 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClosureVariable].i]) return;
994 /* Register variable[4]: Method return value and escape marker */
995 CALL_syntax_base___Variable___init(variable[0])(variable[0], variable[1] /*n*/, variable[2] /*d*/, init_table /*YYY*/) /*Variable::init*/;
996 ATTR_syntax_base___ClosureVariable____closure(variable[0]) /*ClosureVariable::_closure*/ = variable[3] /*c*/;
997 return_label46: while(false);
998 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClosureVariable].i] = 1;
999 tracehead = trace.prev;
1000 return;
1001 }
1002 val_t syntax_base___AbsSyntaxVisitor___type_object(val_t self) {
1003 struct trace_t trace = {NULL, NULL, 259, LOCATE_syntax_base___AbsSyntaxVisitor___type_object};
1004 static val_t once_value_48; static int once_bool_48; /* Once value for variable[3]*/
1005 static val_t once_value_49 = NIT_NULL; /* Once value for string variable[3]*/
1006 val_t variable[4];
1007 struct WBT_ **closurevariable = NULL;
1008 trace.prev = tracehead; tracehead = &trace;
1009 trace.file = LOCATE_syntax_base;
1010 /* Register variable[0]: Local variable */
1011 variable[0] = self;
1012 /* Register variable[1]: Method return value and escape marker */
1013 /* Register variable[2]: Result */
1014 variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[0]) /*AbsSyntaxVisitor::_module*/;
1015 /* Register variable[3]: Once expression result */
1016 if (once_bool_48) variable[3] = once_value_48;
1017 else {
1018 /* Register variable[3]: Once String constant */
1019 if (once_value_49 != NIT_NULL) variable[3] = once_value_49;
1020 else {
1021 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Object"), TAG_Int(6)) /*new String*/;
1022 once_value_49 = variable[3];
1023 }
1024 /* Register variable[3]: Result */
1025 /* Register variable[3]: Result */
1026 variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
1027 once_value_48 = variable[3];
1028 once_bool_48 = true;
1029 }
1030 /* Register variable[3]: Result */
1031 /* Register variable[2]: Result */
1032 variable[2] = CALL_abstractmetamodel___MMModule___class_by_name(variable[2])(variable[2], variable[3]) /*MMModule::class_by_name*/;
1033 /* Register variable[2]: Result */
1034 variable[2] = CALL_static_type___MMLocalClass___get_type(variable[2])(variable[2]) /*MMLocalClass::get_type*/;
1035 variable[1] = variable[2];
1036 goto return_label47;
1037 return_label47: while(false);
1038 tracehead = trace.prev;
1039 return variable[1];
1040 }
1041 val_t syntax_base___AbsSyntaxVisitor___type_bool(val_t self) {
1042 struct trace_t trace = {NULL, NULL, 265, LOCATE_syntax_base___AbsSyntaxVisitor___type_bool};
1043 static val_t once_value_51; static int once_bool_51; /* Once value for variable[3]*/
1044 static val_t once_value_52 = NIT_NULL; /* Once value for string variable[3]*/
1045 val_t variable[4];
1046 struct WBT_ **closurevariable = NULL;
1047 trace.prev = tracehead; tracehead = &trace;
1048 trace.file = LOCATE_syntax_base;
1049 /* Register variable[0]: Local variable */
1050 variable[0] = self;
1051 /* Register variable[1]: Method return value and escape marker */
1052 /* Register variable[2]: Result */
1053 variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[0]) /*AbsSyntaxVisitor::_module*/;
1054 /* Register variable[3]: Once expression result */
1055 if (once_bool_51) variable[3] = once_value_51;
1056 else {
1057 /* Register variable[3]: Once String constant */
1058 if (once_value_52 != NIT_NULL) variable[3] = once_value_52;
1059 else {
1060 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Bool"), TAG_Int(4)) /*new String*/;
1061 once_value_52 = variable[3];
1062 }
1063 /* Register variable[3]: Result */
1064 /* Register variable[3]: Result */
1065 variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
1066 once_value_51 = variable[3];
1067 once_bool_51 = true;
1068 }
1069 /* Register variable[3]: Result */
1070 /* Register variable[2]: Result */
1071 variable[2] = CALL_abstractmetamodel___MMModule___class_by_name(variable[2])(variable[2], variable[3]) /*MMModule::class_by_name*/;
1072 /* Register variable[2]: Result */
1073 variable[2] = CALL_static_type___MMLocalClass___get_type(variable[2])(variable[2]) /*MMLocalClass::get_type*/;
1074 variable[1] = variable[2];
1075 goto return_label50;
1076 return_label50: while(false);
1077 tracehead = trace.prev;
1078 return variable[1];
1079 }
1080 val_t syntax_base___AbsSyntaxVisitor___type_int(val_t self) {
1081 struct trace_t trace = {NULL, NULL, 271, LOCATE_syntax_base___AbsSyntaxVisitor___type_int};
1082 static val_t once_value_54; static int once_bool_54; /* Once value for variable[3]*/
1083 static val_t once_value_55 = NIT_NULL; /* Once value for string variable[3]*/
1084 val_t variable[4];
1085 struct WBT_ **closurevariable = NULL;
1086 trace.prev = tracehead; tracehead = &trace;
1087 trace.file = LOCATE_syntax_base;
1088 /* Register variable[0]: Local variable */
1089 variable[0] = self;
1090 /* Register variable[1]: Method return value and escape marker */
1091 /* Register variable[2]: Result */
1092 variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[0]) /*AbsSyntaxVisitor::_module*/;
1093 /* Register variable[3]: Once expression result */
1094 if (once_bool_54) variable[3] = once_value_54;
1095 else {
1096 /* Register variable[3]: Once String constant */
1097 if (once_value_55 != NIT_NULL) variable[3] = once_value_55;
1098 else {
1099 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Int"), TAG_Int(3)) /*new String*/;
1100 once_value_55 = variable[3];
1101 }
1102 /* Register variable[3]: Result */
1103 /* Register variable[3]: Result */
1104 variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
1105 once_value_54 = variable[3];
1106 once_bool_54 = true;
1107 }
1108 /* Register variable[3]: Result */
1109 /* Register variable[2]: Result */
1110 variable[2] = CALL_abstractmetamodel___MMModule___class_by_name(variable[2])(variable[2], variable[3]) /*MMModule::class_by_name*/;
1111 /* Register variable[2]: Result */
1112 variable[2] = CALL_static_type___MMLocalClass___get_type(variable[2])(variable[2]) /*MMLocalClass::get_type*/;
1113 variable[1] = variable[2];
1114 goto return_label53;
1115 return_label53: while(false);
1116 tracehead = trace.prev;
1117 return variable[1];
1118 }
1119 val_t syntax_base___AbsSyntaxVisitor___type_float(val_t self) {
1120 struct trace_t trace = {NULL, NULL, 277, LOCATE_syntax_base___AbsSyntaxVisitor___type_float};
1121 static val_t once_value_57; static int once_bool_57; /* Once value for variable[3]*/
1122 static val_t once_value_58 = NIT_NULL; /* Once value for string variable[3]*/
1123 val_t variable[4];
1124 struct WBT_ **closurevariable = NULL;
1125 trace.prev = tracehead; tracehead = &trace;
1126 trace.file = LOCATE_syntax_base;
1127 /* Register variable[0]: Local variable */
1128 variable[0] = self;
1129 /* Register variable[1]: Method return value and escape marker */
1130 /* Register variable[2]: Result */
1131 variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[0]) /*AbsSyntaxVisitor::_module*/;
1132 /* Register variable[3]: Once expression result */
1133 if (once_bool_57) variable[3] = once_value_57;
1134 else {
1135 /* Register variable[3]: Once String constant */
1136 if (once_value_58 != NIT_NULL) variable[3] = once_value_58;
1137 else {
1138 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Float"), TAG_Int(5)) /*new String*/;
1139 once_value_58 = variable[3];
1140 }
1141 /* Register variable[3]: Result */
1142 /* Register variable[3]: Result */
1143 variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
1144 once_value_57 = variable[3];
1145 once_bool_57 = true;
1146 }
1147 /* Register variable[3]: Result */
1148 /* Register variable[2]: Result */
1149 variable[2] = CALL_abstractmetamodel___MMModule___class_by_name(variable[2])(variable[2], variable[3]) /*MMModule::class_by_name*/;
1150 /* Register variable[2]: Result */
1151 variable[2] = CALL_static_type___MMLocalClass___get_type(variable[2])(variable[2]) /*MMLocalClass::get_type*/;
1152 variable[1] = variable[2];
1153 goto return_label56;
1154 return_label56: while(false);
1155 tracehead = trace.prev;
1156 return variable[1];
1157 }
1158 val_t syntax_base___AbsSyntaxVisitor___type_char(val_t self) {
1159 struct trace_t trace = {NULL, NULL, 283, LOCATE_syntax_base___AbsSyntaxVisitor___type_char};
1160 static val_t once_value_60; static int once_bool_60; /* Once value for variable[3]*/
1161 static val_t once_value_61 = NIT_NULL; /* Once value for string variable[3]*/
1162 val_t variable[4];
1163 struct WBT_ **closurevariable = NULL;
1164 trace.prev = tracehead; tracehead = &trace;
1165 trace.file = LOCATE_syntax_base;
1166 /* Register variable[0]: Local variable */
1167 variable[0] = self;
1168 /* Register variable[1]: Method return value and escape marker */
1169 /* Register variable[2]: Result */
1170 variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[0]) /*AbsSyntaxVisitor::_module*/;
1171 /* Register variable[3]: Once expression result */
1172 if (once_bool_60) variable[3] = once_value_60;
1173 else {
1174 /* Register variable[3]: Once String constant */
1175 if (once_value_61 != NIT_NULL) variable[3] = once_value_61;
1176 else {
1177 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Char"), TAG_Int(4)) /*new String*/;
1178 once_value_61 = variable[3];
1179 }
1180 /* Register variable[3]: Result */
1181 /* Register variable[3]: Result */
1182 variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
1183 once_value_60 = variable[3];
1184 once_bool_60 = true;
1185 }
1186 /* Register variable[3]: Result */
1187 /* Register variable[2]: Result */
1188 variable[2] = CALL_abstractmetamodel___MMModule___class_by_name(variable[2])(variable[2], variable[3]) /*MMModule::class_by_name*/;
1189 /* Register variable[2]: Result */
1190 variable[2] = CALL_static_type___MMLocalClass___get_type(variable[2])(variable[2]) /*MMLocalClass::get_type*/;
1191 variable[1] = variable[2];
1192 goto return_label59;
1193 return_label59: while(false);
1194 tracehead = trace.prev;
1195 return variable[1];
1196 }
1197 val_t syntax_base___AbsSyntaxVisitor___type_string(val_t self) {
1198 struct trace_t trace = {NULL, NULL, 289, LOCATE_syntax_base___AbsSyntaxVisitor___type_string};
1199 static val_t once_value_63; static int once_bool_63; /* Once value for variable[3]*/
1200 static val_t once_value_64 = NIT_NULL; /* Once value for string variable[3]*/
1201 val_t variable[4];
1202 struct WBT_ **closurevariable = NULL;
1203 trace.prev = tracehead; tracehead = &trace;
1204 trace.file = LOCATE_syntax_base;
1205 /* Register variable[0]: Local variable */
1206 variable[0] = self;
1207 /* Register variable[1]: Method return value and escape marker */
1208 /* Register variable[2]: Result */
1209 variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[0]) /*AbsSyntaxVisitor::_module*/;
1210 /* Register variable[3]: Once expression result */
1211 if (once_bool_63) variable[3] = once_value_63;
1212 else {
1213 /* Register variable[3]: Once String constant */
1214 if (once_value_64 != NIT_NULL) variable[3] = once_value_64;
1215 else {
1216 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("String"), TAG_Int(6)) /*new String*/;
1217 once_value_64 = variable[3];
1218 }
1219 /* Register variable[3]: Result */
1220 /* Register variable[3]: Result */
1221 variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
1222 once_value_63 = variable[3];
1223 once_bool_63 = true;
1224 }
1225 /* Register variable[3]: Result */
1226 /* Register variable[2]: Result */
1227 variable[2] = CALL_abstractmetamodel___MMModule___class_by_name(variable[2])(variable[2], variable[3]) /*MMModule::class_by_name*/;
1228 /* Register variable[2]: Result */
1229 variable[2] = CALL_static_type___MMLocalClass___get_type(variable[2])(variable[2]) /*MMLocalClass::get_type*/;
1230 variable[1] = variable[2];
1231 goto return_label62;
1232 return_label62: while(false);
1233 tracehead = trace.prev;
1234 return variable[1];
1235 }
1236 val_t syntax_base___AbsSyntaxVisitor___type_collection(val_t self) {
1237 struct trace_t trace = {NULL, NULL, 295, LOCATE_syntax_base___AbsSyntaxVisitor___type_collection};
1238 static val_t once_value_66; static int once_bool_66; /* Once value for variable[3]*/
1239 static val_t once_value_67 = NIT_NULL; /* Once value for string variable[3]*/
1240 val_t variable[5];
1241 struct WBT_ **closurevariable = NULL;
1242 trace.prev = tracehead; tracehead = &trace;
1243 trace.file = LOCATE_syntax_base;
1244 /* Register variable[0]: Local variable */
1245 variable[0] = self;
1246 /* Register variable[1]: Method return value and escape marker */
1247 /* Register variable[2]: Result */
1248 variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[0]) /*AbsSyntaxVisitor::_module*/;
1249 /* Register variable[3]: Once expression result */
1250 if (once_bool_66) variable[3] = once_value_66;
1251 else {
1252 /* Register variable[3]: Once String constant */
1253 if (once_value_67 != NIT_NULL) variable[3] = once_value_67;
1254 else {
1255 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Collection"), TAG_Int(10)) /*new String*/;
1256 once_value_67 = variable[3];
1257 }
1258 /* Register variable[3]: Result */
1259 /* Register variable[3]: Result */
1260 variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
1261 once_value_66 = variable[3];
1262 once_bool_66 = true;
1263 }
1264 /* Register variable[3]: Result */
1265 /* Register variable[2]: Result */
1266 variable[2] = CALL_abstractmetamodel___MMModule___class_by_name(variable[2])(variable[2], variable[3]) /*MMModule::class_by_name*/;
1267 variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(1)) /*new Array[MMType]*/ /* Ensure var: Literal array*/;
1268 /* Register variable[4]: Result */
1269 variable[4] = CALL_syntax_base___AbsSyntaxVisitor___type_object(variable[0])(variable[0]) /*AbsSyntaxVisitor::type_object*/;
1270 /* Register variable[4]: Result */
1271 variable[4] = CALL_static_type___MMType___as_nullable(variable[4])(variable[4]) /*MMType::as_nullable*/;
1272 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
1273 /* Register variable[3]: Result */
1274 /* Register variable[2]: Result */
1275 variable[2] = CALL_genericity___MMLocalClass___get_instantiate_type(variable[2])(variable[2], variable[3]) /*MMLocalClass::get_instantiate_type*/;
1276 variable[1] = variable[2];
1277 goto return_label65;
1278 return_label65: while(false);
1279 tracehead = trace.prev;
1280 return variable[1];
1281 }
1282 val_t syntax_base___AbsSyntaxVisitor___type_array(val_t self, val_t param0) {
1283 struct trace_t trace = {NULL, NULL, 301, LOCATE_syntax_base___AbsSyntaxVisitor___type_array};
1284 static val_t once_value_69; static int once_bool_69; /* Once value for variable[4]*/
1285 static val_t once_value_70 = NIT_NULL; /* Once value for string variable[4]*/
1286 val_t variable[5];
1287 struct WBT_ **closurevariable = NULL;
1288 trace.prev = tracehead; tracehead = &trace;
1289 trace.file = LOCATE_syntax_base;
1290 /* Register variable[0]: Local variable */
1291 variable[0] = self;
1292 /* Register variable[1]: Local variable */
1293 variable[1] = param0;
1294 /* Register variable[2]: Method return value and escape marker */
1295 /* Register variable[3]: Result */
1296 variable[3] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[0]) /*AbsSyntaxVisitor::_module*/;
1297 /* Register variable[4]: Once expression result */
1298 if (once_bool_69) variable[4] = once_value_69;
1299 else {
1300 /* Register variable[4]: Once String constant */
1301 if (once_value_70 != NIT_NULL) variable[4] = once_value_70;
1302 else {
1303 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Array"), TAG_Int(5)) /*new String*/;
1304 once_value_70 = variable[4];
1305 }
1306 /* Register variable[4]: Result */
1307 /* Register variable[4]: Result */
1308 variable[4] = CALL_symbol___String___to_symbol(variable[4])(variable[4]) /*String::to_symbol*/;
1309 once_value_69 = variable[4];
1310 once_bool_69 = true;
1311 }
1312 /* Register variable[4]: Result */
1313 /* Register variable[3]: Result */
1314 variable[3] = CALL_abstractmetamodel___MMModule___class_by_name(variable[3])(variable[3], variable[4]) /*MMModule::class_by_name*/;
1315 variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(1)) /*new Array[MMType]*/ /* Ensure var: Literal array*/;
1316 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[1] /*stype*/) /*AbstractArray::add*/;
1317 /* Register variable[4]: Result */
1318 /* Register variable[3]: Result */
1319 variable[3] = CALL_genericity___MMLocalClass___get_instantiate_type(variable[3])(variable[3], variable[4]) /*MMLocalClass::get_instantiate_type*/;
1320 variable[2] = variable[3];
1321 goto return_label68;
1322 return_label68: while(false);
1323 tracehead = trace.prev;
1324 return variable[2];
1325 }
1326 val_t syntax_base___AbsSyntaxVisitor___type_discrete(val_t self) {
1327 struct trace_t trace = {NULL, NULL, 307, LOCATE_syntax_base___AbsSyntaxVisitor___type_discrete};
1328 static val_t once_value_72; static int once_bool_72; /* Once value for variable[3]*/
1329 static val_t once_value_73 = NIT_NULL; /* Once value for string variable[3]*/
1330 val_t variable[4];
1331 struct WBT_ **closurevariable = NULL;
1332 trace.prev = tracehead; tracehead = &trace;
1333 trace.file = LOCATE_syntax_base;
1334 /* Register variable[0]: Local variable */
1335 variable[0] = self;
1336 /* Register variable[1]: Method return value and escape marker */
1337 /* Register variable[2]: Result */
1338 variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[0]) /*AbsSyntaxVisitor::_module*/;
1339 /* Register variable[3]: Once expression result */
1340 if (once_bool_72) variable[3] = once_value_72;
1341 else {
1342 /* Register variable[3]: Once String constant */
1343 if (once_value_73 != NIT_NULL) variable[3] = once_value_73;
1344 else {
1345 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Discrete"), TAG_Int(8)) /*new String*/;
1346 once_value_73 = variable[3];
1347 }
1348 /* Register variable[3]: Result */
1349 /* Register variable[3]: Result */
1350 variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
1351 once_value_72 = variable[3];
1352 once_bool_72 = true;
1353 }
1354 /* Register variable[3]: Result */
1355 /* Register variable[2]: Result */
1356 variable[2] = CALL_abstractmetamodel___MMModule___class_by_name(variable[2])(variable[2], variable[3]) /*MMModule::class_by_name*/;
1357 /* Register variable[2]: Result */
1358 variable[2] = CALL_static_type___MMLocalClass___get_type(variable[2])(variable[2]) /*MMLocalClass::get_type*/;
1359 variable[1] = variable[2];
1360 goto return_label71;
1361 return_label71: while(false);
1362 tracehead = trace.prev;
1363 return variable[1];
1364 }
1365 val_t syntax_base___AbsSyntaxVisitor___type_range(val_t self, val_t param0) {
1366 struct trace_t trace = {NULL, NULL, 313, LOCATE_syntax_base___AbsSyntaxVisitor___type_range};
1367 static val_t once_value_75; static int once_bool_75; /* Once value for variable[4]*/
1368 static val_t once_value_76 = NIT_NULL; /* Once value for string variable[4]*/
1369 val_t variable[5];
1370 struct WBT_ **closurevariable = NULL;
1371 trace.prev = tracehead; tracehead = &trace;
1372 trace.file = LOCATE_syntax_base;
1373 /* Register variable[0]: Local variable */
1374 variable[0] = self;
1375 /* Register variable[1]: Local variable */
1376 variable[1] = param0;
1377 /* Register variable[2]: Method return value and escape marker */
1378 /* Register variable[3]: Result */
1379 variable[3] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[0]) /*AbsSyntaxVisitor::_module*/;
1380 /* Register variable[4]: Once expression result */
1381 if (once_bool_75) variable[4] = once_value_75;
1382 else {
1383 /* Register variable[4]: Once String constant */
1384 if (once_value_76 != NIT_NULL) variable[4] = once_value_76;
1385 else {
1386 variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Range"), TAG_Int(5)) /*new String*/;
1387 once_value_76 = variable[4];
1388 }
1389 /* Register variable[4]: Result */
1390 /* Register variable[4]: Result */
1391 variable[4] = CALL_symbol___String___to_symbol(variable[4])(variable[4]) /*String::to_symbol*/;
1392 once_value_75 = variable[4];
1393 once_bool_75 = true;
1394 }
1395 /* Register variable[4]: Result */
1396 /* Register variable[3]: Result */
1397 variable[3] = CALL_abstractmetamodel___MMModule___class_by_name(variable[3])(variable[3], variable[4]) /*MMModule::class_by_name*/;
1398 variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(1)) /*new Array[MMType]*/ /* Ensure var: Literal array*/;
1399 CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[1] /*stype*/) /*AbstractArray::add*/;
1400 /* Register variable[4]: Result */
1401 /* Register variable[3]: Result */
1402 variable[3] = CALL_genericity___MMLocalClass___get_instantiate_type(variable[3])(variable[3], variable[4]) /*MMLocalClass::get_instantiate_type*/;
1403 variable[2] = variable[3];
1404 goto return_label74;
1405 return_label74: while(false);
1406 tracehead = trace.prev;
1407 return variable[2];
1408 }
1409 val_t syntax_base___AbsSyntaxVisitor___type_none(val_t self) {
1410 struct trace_t trace = {NULL, NULL, 319, LOCATE_syntax_base___AbsSyntaxVisitor___type_none};
1411 val_t variable[3];
1412 struct WBT_ **closurevariable = NULL;
1413 trace.prev = tracehead; tracehead = &trace;
1414 trace.file = LOCATE_syntax_base;
1415 /* Register variable[0]: Local variable */
1416 variable[0] = self;
1417 /* Register variable[1]: Method return value and escape marker */
1418 /* Register variable[2]: Result */
1419 variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[0]) /*AbsSyntaxVisitor::_module*/;
1420 /* Register variable[2]: Result */
1421 variable[2] = CALL_static_type___MMModule___type_none(variable[2])(variable[2]) /*MMModule::type_none*/;
1422 variable[1] = variable[2];
1423 goto return_label77;
1424 return_label77: while(false);
1425 tracehead = trace.prev;
1426 return variable[1];
1427 }
1428 val_t syntax_base___AbsSyntaxVisitor___module(val_t self) {
1429 struct trace_t trace = {NULL, NULL, 325, LOCATE_syntax_base___AbsSyntaxVisitor___module};
1430 val_t *variable = NULL;
1431 struct WBT_ **closurevariable = NULL;
1432 trace.prev = tracehead; tracehead = &trace;
1433 trace.file = LOCATE_syntax_base;
1434 tracehead = trace.prev;
1435 return ATTR_syntax_base___AbsSyntaxVisitor____module( self) /*AbsSyntaxVisitor::_module*/;
1436 }
1437 void syntax_base___AbsSyntaxVisitor___module__eq(val_t self, val_t param0) {
1438 struct trace_t trace = {NULL, NULL, 325, LOCATE_syntax_base___AbsSyntaxVisitor___module__eq};
1439 val_t *variable = NULL;
1440 struct WBT_ **closurevariable = NULL;
1441 trace.prev = tracehead; tracehead = &trace;
1442 trace.file = LOCATE_syntax_base;
1443 ATTR_syntax_base___AbsSyntaxVisitor____module( self) /*AbsSyntaxVisitor::_module*/ = param0;
1444 tracehead = trace.prev;
1445 return;
1446 }
1447 val_t syntax_base___AbsSyntaxVisitor___local_class(val_t self) {
1448 struct trace_t trace = {NULL, NULL, 328, LOCATE_syntax_base___AbsSyntaxVisitor___local_class};
1449 val_t *variable = NULL;
1450 struct WBT_ **closurevariable = NULL;
1451 trace.prev = tracehead; tracehead = &trace;
1452 trace.file = LOCATE_syntax_base;
1453 tracehead = trace.prev;
1454 return ATTR_syntax_base___AbsSyntaxVisitor____local_class( self) /*AbsSyntaxVisitor::_local_class*/;
1455 }
1456 void syntax_base___AbsSyntaxVisitor___local_class__eq(val_t self, val_t param0) {
1457 struct trace_t trace = {NULL, NULL, 328, LOCATE_syntax_base___AbsSyntaxVisitor___local_class__eq};
1458 val_t *variable = NULL;
1459 struct WBT_ **closurevariable = NULL;
1460 trace.prev = tracehead; tracehead = &trace;
1461 trace.file = LOCATE_syntax_base;
1462 ATTR_syntax_base___AbsSyntaxVisitor____local_class( self) /*AbsSyntaxVisitor::_local_class*/ = param0;
1463 tracehead = trace.prev;
1464 return;
1465 }
1466 val_t syntax_base___AbsSyntaxVisitor___local_property(val_t self) {
1467 struct trace_t trace = {NULL, NULL, 331, LOCATE_syntax_base___AbsSyntaxVisitor___local_property};
1468 val_t *variable = NULL;
1469 struct WBT_ **closurevariable = NULL;
1470 trace.prev = tracehead; tracehead = &trace;
1471 trace.file = LOCATE_syntax_base;
1472 tracehead = trace.prev;
1473 return ATTR_syntax_base___AbsSyntaxVisitor____local_property( self) /*AbsSyntaxVisitor::_local_property*/;
1474 }
1475 void syntax_base___AbsSyntaxVisitor___local_property__eq(val_t self, val_t param0) {
1476 struct trace_t trace = {NULL, NULL, 331, LOCATE_syntax_base___AbsSyntaxVisitor___local_property__eq};
1477 val_t *variable = NULL;
1478 struct WBT_ **closurevariable = NULL;
1479 trace.prev = tracehead; tracehead = &trace;
1480 trace.file = LOCATE_syntax_base;
1481 ATTR_syntax_base___AbsSyntaxVisitor____local_property( self) /*AbsSyntaxVisitor::_local_property*/ = param0;
1482 tracehead = trace.prev;
1483 return;
1484 }
1485 val_t syntax_base___AbsSyntaxVisitor___tc(val_t self) {
1486 struct trace_t trace = {NULL, NULL, 334, LOCATE_syntax_base___AbsSyntaxVisitor___tc};
1487 val_t *variable = NULL;
1488 struct WBT_ **closurevariable = NULL;
1489 trace.prev = tracehead; tracehead = &trace;
1490 trace.file = LOCATE_syntax_base;
1491 tracehead = trace.prev;
1492 return ATTR_syntax_base___AbsSyntaxVisitor____tc( self) /*AbsSyntaxVisitor::_tc*/;
1493 }
1494 void syntax_base___AbsSyntaxVisitor___error(val_t self, val_t param0, val_t param1) {
1495 struct trace_t trace = {NULL, NULL, 337, LOCATE_syntax_base___AbsSyntaxVisitor___error};
1496 static val_t once_value_79 = NIT_NULL; /* Once value for string variable[6]*/
1497 static val_t once_value_80 = NIT_NULL; /* Once value for string variable[6]*/
1498 static val_t once_value_81 = NIT_NULL; /* Once value for string variable[6]*/
1499 val_t variable[7];
1500 struct WBT_ **closurevariable = NULL;
1501 trace.prev = tracehead; tracehead = &trace;
1502 trace.file = LOCATE_syntax_base;
1503 /* Register variable[0]: Local variable */
1504 variable[0] = self;
1505 /* Register variable[1]: Local variable */
1506 variable[1] = param0;
1507 /* Register variable[2]: Local variable */
1508 variable[2] = param1;
1509 /* Register variable[3]: Method return value and escape marker */
1510 /* Register variable[4]: Result */
1511 variable[4] = ATTR_syntax_base___AbsSyntaxVisitor____tc(variable[0]) /*AbsSyntaxVisitor::_tc*/;
1512 variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
1513 /* Register variable[6]: Once String constant */
1514 if (once_value_79 != NIT_NULL) variable[6] = once_value_79;
1515 else {
1516 variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
1517 once_value_79 = variable[6];
1518 }
1519 /* Register variable[6]: Result */
1520 /* Ensure var variable[6]: super-string element*/
1521 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
1522 /* Register variable[6]: Result */
1523 variable[6] = CALL_syntax_base___AbsSyntaxVisitor___locate(variable[0])(variable[0], variable[1] /*n*/) /*AbsSyntaxVisitor::locate*/;
1524 /* Ensure var variable[6]: super-string element*/
1525 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
1526 /* Register variable[6]: Once String constant */
1527 if (once_value_80 != NIT_NULL) variable[6] = once_value_80;
1528 else {
1529 variable[6] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)) /*new String*/;
1530 once_value_80 = variable[6];
1531 }
1532 /* Register variable[6]: Result */
1533 /* Ensure var variable[6]: super-string element*/
1534 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
1535 variable[6] = variable[2] /*s*/ /* Ensure var: super-string element*/;
1536 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
1537 /* Register variable[6]: Once String constant */
1538 if (once_value_81 != NIT_NULL) variable[6] = once_value_81;
1539 else {
1540 variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
1541 once_value_81 = variable[6];
1542 }
1543 /* Register variable[6]: Result */
1544 /* Ensure var variable[6]: super-string element*/
1545 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
1546 /* Register variable[5]: Result */
1547 variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
1548 CALL_mmloader___ToolContext___error(variable[4])(variable[4], variable[5]) /*ToolContext::error*/;
1549 return_label78: while(false);
1550 tracehead = trace.prev;
1551 return;
1552 }
1553 void syntax_base___AbsSyntaxVisitor___warning(val_t self, val_t param0, val_t param1) {
1554 struct trace_t trace = {NULL, NULL, 343, LOCATE_syntax_base___AbsSyntaxVisitor___warning};
1555 static val_t once_value_83 = NIT_NULL; /* Once value for string variable[6]*/
1556 static val_t once_value_84 = NIT_NULL; /* Once value for string variable[6]*/
1557 static val_t once_value_85 = NIT_NULL; /* Once value for string variable[6]*/
1558 val_t variable[7];
1559 struct WBT_ **closurevariable = NULL;
1560 trace.prev = tracehead; tracehead = &trace;
1561 trace.file = LOCATE_syntax_base;
1562 /* Register variable[0]: Local variable */
1563 variable[0] = self;
1564 /* Register variable[1]: Local variable */
1565 variable[1] = param0;
1566 /* Register variable[2]: Local variable */
1567 variable[2] = param1;
1568 /* Register variable[3]: Method return value and escape marker */
1569 /* Register variable[4]: Result */
1570 variable[4] = ATTR_syntax_base___AbsSyntaxVisitor____tc(variable[0]) /*AbsSyntaxVisitor::_tc*/;
1571 variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
1572 /* Register variable[6]: Once String constant */
1573 if (once_value_83 != NIT_NULL) variable[6] = once_value_83;
1574 else {
1575 variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
1576 once_value_83 = variable[6];
1577 }
1578 /* Register variable[6]: Result */
1579 /* Ensure var variable[6]: super-string element*/
1580 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
1581 /* Register variable[6]: Result */
1582 variable[6] = CALL_syntax_base___AbsSyntaxVisitor___locate(variable[0])(variable[0], variable[1] /*n*/) /*AbsSyntaxVisitor::locate*/;
1583 /* Ensure var variable[6]: super-string element*/
1584 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
1585 /* Register variable[6]: Once String constant */
1586 if (once_value_84 != NIT_NULL) variable[6] = once_value_84;
1587 else {
1588 variable[6] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)) /*new String*/;
1589 once_value_84 = variable[6];
1590 }
1591 /* Register variable[6]: Result */
1592 /* Ensure var variable[6]: super-string element*/
1593 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
1594 variable[6] = variable[2] /*s*/ /* Ensure var: super-string element*/;
1595 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
1596 /* Register variable[6]: Once String constant */
1597 if (once_value_85 != NIT_NULL) variable[6] = once_value_85;
1598 else {
1599 variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
1600 once_value_85 = variable[6];
1601 }
1602 /* Register variable[6]: Result */
1603 /* Ensure var variable[6]: super-string element*/
1604 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
1605 /* Register variable[5]: Result */
1606 variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
1607 CALL_mmloader___ToolContext___warning(variable[4])(variable[4], variable[5]) /*ToolContext::warning*/;
1608 return_label82: while(false);
1609 tracehead = trace.prev;
1610 return;
1611 }
1612 val_t syntax_base___AbsSyntaxVisitor___locate(val_t self, val_t param0) {
1613 struct trace_t trace = {NULL, NULL, 349, LOCATE_syntax_base___AbsSyntaxVisitor___locate};
1614 val_t variable[4];
1615 struct WBT_ **closurevariable = NULL;
1616 trace.prev = tracehead; tracehead = &trace;
1617 trace.file = LOCATE_syntax_base;
1618 /* Register variable[0]: Local variable */
1619 variable[0] = self;
1620 /* Register variable[1]: Local variable */
1621 variable[1] = param0;
1622 /* Register variable[2]: Method return value and escape marker */
1623 /* Register variable[3]: Result */
1624 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::==*/)))))));
1625 if (UNTAG_Bool(variable[3])) { /*if*/
1626 /* Register variable[3]: Result */
1627 variable[3] = CALL_parser_prod___PNode___locate( variable[1] /*n*/)( variable[1] /*n*/) /*PNode::locate*/;
1628 variable[2] = variable[3];
1629 goto return_label86;
1630 }
1631 /* Register variable[3]: Result */
1632 variable[3] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[0]) /*AbsSyntaxVisitor::_module*/;
1633 /* Register variable[3]: Result */
1634 variable[3] = CALL_abstractmetamodel___MMModule___filename(variable[3])(variable[3]) /*MMModule::filename*/;
1635 variable[2] = variable[3];
1636 goto return_label86;
1637 return_label86: while(false);
1638 tracehead = trace.prev;
1639 return variable[2];
1640 }
1641 val_t syntax_base___AbsSyntaxVisitor___check_conform(val_t self, val_t param0, val_t param1, val_t param2) {
1642 struct trace_t trace = {NULL, NULL, 356, LOCATE_syntax_base___AbsSyntaxVisitor___check_conform};
1643 static val_t once_value_88 = NIT_NULL; /* Once value for string variable[6]*/
1644 static val_t once_value_89 = NIT_NULL; /* Once value for string variable[6]*/
1645 static val_t once_value_90 = NIT_NULL; /* Once value for string variable[6]*/
1646 static val_t once_value_91 = NIT_NULL; /* Once value for string variable[6]*/
1647 static val_t once_value_92 = NIT_NULL; /* Once value for string variable[6]*/
1648 static val_t once_value_93 = NIT_NULL; /* Once value for string variable[6]*/
1649 val_t variable[7];
1650 struct WBT_ **closurevariable = NULL;
1651 trace.prev = tracehead; tracehead = &trace;
1652 trace.file = LOCATE_syntax_base;
1653 /* Register variable[0]: Local variable */
1654 variable[0] = self;
1655 /* Register variable[1]: Local variable */
1656 variable[1] = param0;
1657 /* Register variable[2]: Local variable */
1658 variable[2] = param1;
1659 /* Register variable[3]: Local variable */
1660 variable[3] = param2;
1661 /* Register variable[4]: Method return value and escape marker */
1662 /* Register variable[5]: Result */
1663 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::==*/)))));
1664 /* Ensure var variable[5]: Left 'or' operand*/
1665 if (!UNTAG_Bool(variable[5])) { /* or */
1666 /* Register variable[5]: Result */
1667 variable[5] = 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::==*/)))));
1668 }
1669 /* Register variable[5]: Result */
1670 if (UNTAG_Bool(variable[5])) { /*if*/
1671 variable[4] = TAG_Bool(false);
1672 goto return_label87;
1673 }
1674 /* Register variable[5]: Result */
1675 variable[5] = CALL_static_type___MMType_____l( variable[2] /*subtype*/)( variable[2] /*subtype*/, variable[3] /*stype*/) /*MMType::<*/;
1676 if (UNTAG_Bool(variable[5])) { /*if*/
1677 variable[4] = TAG_Bool(true);
1678 goto return_label87;
1679 }
1680 /* Register variable[5]: Result */
1681 variable[5] = TAG_Bool(( variable[2] /*subtype*/==NIT_NULL) || VAL_ISA( variable[2] /*subtype*/, COLOR_MMTypeNone, ID_MMTypeNone)) /*cast MMTypeNone*/;
1682 /* Ensure var variable[5]: Left 'or' operand*/
1683 if (!UNTAG_Bool(variable[5])) { /* or */
1684 /* Register variable[5]: Result */
1685 variable[5] = CALL_static_type___MMType___as_notnull( variable[2] /*subtype*/)( variable[2] /*subtype*/) /*MMType::as_notnull*/;
1686 /* Register variable[6]: Result */
1687 variable[6] = CALL_static_type___MMType___as_notnull( variable[3] /*stype*/)( variable[3] /*stype*/) /*MMType::as_notnull*/;
1688 /* Register variable[5]: Result */
1689 variable[5] = CALL_static_type___MMType_____l(variable[5])(variable[5], variable[6]) /*MMType::<*/;
1690 }
1691 /* Register variable[5]: Result */
1692 if (UNTAG_Bool(variable[5])) { /*if*/
1693 variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
1694 /* Register variable[6]: Once String constant */
1695 if (once_value_88 != NIT_NULL) variable[6] = once_value_88;
1696 else {
1697 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Nullable type warning: expected "), TAG_Int(32)) /*new String*/;
1698 once_value_88 = variable[6];
1699 }
1700 /* Register variable[6]: Result */
1701 /* Ensure var variable[6]: super-string element*/
1702 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
1703 variable[6] = variable[3] /*stype*/ /* Ensure var: super-string element*/;
1704 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/) /*AbstractArray::add*/;
1705 /* Register variable[6]: Once String constant */
1706 if (once_value_89 != NIT_NULL) variable[6] = once_value_89;
1707 else {
1708 variable[6] = NEW_String_string___String___with_native(BOX_NativeString(", got "), TAG_Int(6)) /*new String*/;
1709 once_value_89 = variable[6];
1710 }
1711 /* Register variable[6]: Result */
1712 /* Ensure var variable[6]: super-string element*/
1713 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
1714 variable[6] = variable[2] /*subtype*/ /* Ensure var: super-string element*/;
1715 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/) /*AbstractArray::add*/;
1716 /* Register variable[6]: Once String constant */
1717 if (once_value_90 != NIT_NULL) variable[6] = once_value_90;
1718 else {
1719 variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
1720 once_value_90 = variable[6];
1721 }
1722 /* Register variable[6]: Result */
1723 /* Ensure var variable[6]: super-string element*/
1724 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
1725 /* Register variable[5]: Result */
1726 variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
1727 CALL_syntax_base___AbsSyntaxVisitor___warning(variable[0])(variable[0], variable[1] /*n*/, variable[5]) /*AbsSyntaxVisitor::warning*/;
1728 variable[4] = TAG_Bool(true);
1729 goto return_label87;
1730 }
1731 variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
1732 /* Register variable[6]: Once String constant */
1733 if (once_value_91 != NIT_NULL) variable[6] = once_value_91;
1734 else {
1735 variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Type error: expected "), TAG_Int(21)) /*new String*/;
1736 once_value_91 = variable[6];
1737 }
1738 /* Register variable[6]: Result */
1739 /* Ensure var variable[6]: super-string element*/
1740 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
1741 variable[6] = variable[3] /*stype*/ /* Ensure var: super-string element*/;
1742 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/) /*AbstractArray::add*/;
1743 /* Register variable[6]: Once String constant */
1744 if (once_value_92 != NIT_NULL) variable[6] = once_value_92;
1745 else {
1746 variable[6] = NEW_String_string___String___with_native(BOX_NativeString(", got "), TAG_Int(6)) /*new String*/;
1747 once_value_92 = variable[6];
1748 }
1749 /* Register variable[6]: Result */
1750 /* Ensure var variable[6]: super-string element*/
1751 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
1752 variable[6] = variable[2] /*subtype*/ /* Ensure var: super-string element*/;
1753 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/) /*AbstractArray::add*/;
1754 /* Register variable[6]: Once String constant */
1755 if (once_value_93 != NIT_NULL) variable[6] = once_value_93;
1756 else {
1757 variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
1758 once_value_93 = variable[6];
1759 }
1760 /* Register variable[6]: Result */
1761 /* Ensure var variable[6]: super-string element*/
1762 CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
1763 /* Register variable[5]: Result */
1764 variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
1765 CALL_syntax_base___AbsSyntaxVisitor___error(variable[0])(variable[0], variable[1] /*n*/, variable[5]) /*AbsSyntaxVisitor::error*/;
1766 variable[4] = TAG_Bool(false);
1767 goto return_label87;
1768 return_label87: while(false);
1769 tracehead = trace.prev;
1770 return variable[4];
1771 }
1772 val_t syntax_base___AbsSyntaxVisitor___check_expr(val_t self, val_t param0) {
1773 struct trace_t trace = {NULL, NULL, 374, LOCATE_syntax_base___AbsSyntaxVisitor___check_expr};
1774 static val_t once_value_95 = NIT_NULL; /* Once value for string variable[4]*/
1775 static val_t once_value_96 = NIT_NULL; /* Once value for string variable[4]*/
1776 static val_t once_value_97 = NIT_NULL; /* Once value for string variable[3]*/
1777 val_t variable[5];
1778 struct WBT_ **closurevariable = NULL;
1779 trace.prev = tracehead; tracehead = &trace;
1780 trace.file = LOCATE_syntax_base;
1781 /* Register variable[0]: Local variable */
1782 variable[0] = self;
1783 /* Register variable[1]: Local variable */
1784 variable[1] = param0;
1785 /* Register variable[2]: Method return value and escape marker */
1786 /* Register variable[3]: Result */
1787 variable[3] = CALL_syntax_base___PExpr___is_typed( variable[1] /*n*/)( variable[1] /*n*/) /*PExpr::is_typed*/;
1788 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/
1789 /* Register variable[3]: Result */
1790 variable[3] = CALL_syntax_base___AbsSyntaxVisitor___tc(variable[0])(variable[0]) /*AbsSyntaxVisitor::tc*/;
1791 /* Register variable[3]: Result */
1792 variable[3] = CALL_mmloader___ToolContext___error_count(variable[3])(variable[3]) /*ToolContext::error_count*/;
1793 /* Register variable[3]: Result */
1794 variable[3] = TAG_Bool((variable[3])==( TAG_Int(0)));
1795 if (UNTAG_Bool(variable[3])) { /*if*/
1796 variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
1797 /* Register variable[4]: Once String constant */
1798 if (once_value_95 != NIT_NULL) variable[4] = once_value_95;
1799 else {
1800 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)) /*new String*/;
1801 once_value_95 = variable[4];
1802 }
1803 /* Register variable[4]: Result */
1804 /* Ensure var variable[4]: super-string element*/
1805 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
1806 /* Register variable[4]: Result */
1807 variable[4] = CALL_parser_prod___PNode___locate( variable[1] /*n*/)( variable[1] /*n*/) /*Prod::locate*/;
1808 /* Ensure var variable[4]: super-string element*/
1809 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
1810 /* Register variable[4]: Once String constant */
1811 if (once_value_96 != NIT_NULL) variable[4] = once_value_96;
1812 else {
1813 variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" not typed but not error"), TAG_Int(24)) /*new String*/;
1814 once_value_96 = variable[4];
1815 }
1816 /* Register variable[4]: Result */
1817 /* Ensure var variable[4]: super-string element*/
1818 CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
1819 /* Register variable[3]: Result */
1820 variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
1821 CALL_file___Object___print(variable[0])(variable[0], variable[3]) /*Object::print*/;
1822 fprintf(stderr, "Aborted"); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_syntax_base___AbsSyntaxVisitor___check_expr, LOCATE_syntax_base, 382); nit_exit(1);
1823 }
1824 variable[2] = TAG_Bool(false);
1825 goto return_label94;
1826 } else { /*if*/
1827 /* Register variable[3]: Result */
1828 variable[3] = CALL_syntax_base___PExpr___is_statement( variable[1] /*n*/)( variable[1] /*n*/) /*PExpr::is_statement*/;
1829 if (UNTAG_Bool(variable[3])) { /*if*/
1830 /* Register variable[3]: Once String constant */
1831 if (once_value_97 != NIT_NULL) variable[3] = once_value_97;
1832 else {
1833 variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Type error: expected expression."), TAG_Int(32)) /*new String*/;
1834 once_value_97 = variable[3];
1835 }
1836 /* Register variable[3]: Result */
1837 CALL_syntax_base___AbsSyntaxVisitor___error(variable[0])(variable[0], variable[1] /*n*/, variable[3]) /*AbsSyntaxVisitor::error*/;
1838 variable[2] = TAG_Bool(false);
1839 goto return_label94;
1840 }
1841 }
1842 variable[2] = TAG_Bool(true);
1843 goto return_label94;
1844 return_label94: while(false);
1845 tracehead = trace.prev;
1846 return variable[2];
1847 }
1848 val_t syntax_base___AbsSyntaxVisitor___check_conform_expr(val_t self, val_t param0, val_t param1) {
1849 struct trace_t trace = {NULL, NULL, 394, LOCATE_syntax_base___AbsSyntaxVisitor___check_conform_expr};
1850 val_t variable[5];
1851 struct WBT_ **closurevariable = NULL;
1852 trace.prev = tracehead; tracehead = &trace;
1853 trace.file = LOCATE_syntax_base;
1854 /* Register variable[0]: Local variable */
1855 variable[0] = self;
1856 /* Register variable[1]: Local variable */
1857 variable[1] = param0;
1858 /* Register variable[2]: Local variable */
1859 variable[2] = param1;
1860 /* Register variable[3]: Method return value and escape marker */
1861 /* Register variable[4]: Result */
1862 variable[4] = CALL_syntax_base___AbsSyntaxVisitor___check_expr(variable[0])(variable[0], variable[1] /*n*/) /*AbsSyntaxVisitor::check_expr*/;
1863 if (UNTAG_Bool(variable[4])) { /*if*/
1864 /* Register variable[4]: Result */
1865 variable[4] = CALL_syntax_base___PExpr___stype( variable[1] /*n*/)( variable[1] /*n*/) /*PExpr::stype*/;
1866 /* Register variable[4]: Result */
1867 variable[4] = CALL_syntax_base___AbsSyntaxVisitor___check_conform(variable[0])(variable[0], variable[1] /*n*/, variable[4], variable[2] /*stype*/) /*AbsSyntaxVisitor::check_conform*/;
1868 variable[3] = variable[4];
1869 goto return_label98;
1870 } else { /*if*/
1871 variable[3] = TAG_Bool(false);
1872 goto return_label98;
1873 }
1874 return_label98: while(false);
1875 tracehead = trace.prev;
1876 return variable[3];
1877 }
1878 val_t syntax_base___AbsSyntaxVisitor___check_conform_multiexpr(val_t self, val_t param0, val_t param1) {
1879 struct trace_t trace = {NULL, NULL, 400, LOCATE_syntax_base___AbsSyntaxVisitor___check_conform_multiexpr};
1880 static val_t once_value_102 = NIT_NULL; /* Once value for string variable[9]*/
1881 static val_t once_value_103 = NIT_NULL; /* Once value for string variable[9]*/
1882 static val_t once_value_104 = NIT_NULL; /* Once value for string variable[9]*/
1883 static val_t once_value_105 = NIT_NULL; /* Once value for string variable[9]*/
1884 static val_t once_value_106 = NIT_NULL; /* Once value for string variable[9]*/
1885 static val_t once_value_107 = NIT_NULL; /* Once value for string variable[9]*/
1886 static val_t once_value_108 = NIT_NULL; /* Once value for string variable[9]*/
1887 val_t variable[11];
1888 struct WBT_ **closurevariable = NULL;
1889 trace.prev = tracehead; tracehead = &trace;
1890 trace.file = LOCATE_syntax_base;
1891 /* Register variable[0]: Local variable */
1892 variable[0] = self;
1893 /* Register variable[1]: Local variable */
1894 variable[1] = param0;
1895 /* Register variable[2]: Local variable */
1896 variable[2] = param1;
1897 /* Register variable[3]: Method return value and escape marker */
1898 /* Register variable[4]: Local variable */
1899 variable[4] = NIT_NULL /*null*/;
1900 /* Register variable[5]: For iterator */
1901 variable[5] = CALL_abstract_collection___Collection___iterator( variable[2] /*nodes*/)( variable[2] /*nodes*/) /*Collection::iterator*/;
1902 while (true) { /*for*/
1903 /* Register variable[6]: For 'is_ok' result */
1904 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
1905 if (!UNTAG_Bool(variable[6])) break; /*for*/
1906 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/ /* Ensure var: For item*/;
1907 /* Register variable[7]: Local variable */
1908 variable[7] = variable[6];
1909 /* Register variable[8]: Result */
1910 variable[8] = CALL_syntax_base___AbsSyntaxVisitor___check_expr(variable[0])(variable[0], variable[7] /*n*/) /*AbsSyntaxVisitor::check_expr*/;
1911 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[8])))) { /*if*/
1912 variable[3] = NIT_NULL /*null*/;
1913 goto return_label99;
1914 }
1915 /* Register variable[8]: Local variable */
1916 /* Register variable[9]: Result */
1917 variable[9] = CALL_syntax_base___PExpr___stype( variable[7] /*n*/)( variable[7] /*n*/) /*PExpr::stype*/;
1918 variable[8] = variable[9];
1919 /* Register variable[9]: Result */
1920 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*stype*/ == NIT_NULL /*null*/) || (( variable[1] /*stype*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*stype*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*stype*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*stype*/)( variable[1] /*stype*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1921 /* Ensure var variable[9]: Left 'and' operand*/
1922 if (UNTAG_Bool(variable[9])) { /* and */
1923 /* Register variable[9]: Result */
1924 variable[9] = CALL_static_type___MMType___is_nullable( variable[1] /*stype*/)( variable[1] /*stype*/) /*MMType::is_nullable*/;
1925 /* Register variable[10]: Result */
1926 variable[10] = CALL_static_type___MMType___is_nullable( variable[8] /*ntype*/)( variable[8] /*ntype*/) /*MMType::is_nullable*/;
1927 /* Register variable[9]: Result */
1928 variable[9] = TAG_Bool((variable[9])!=(variable[10]));
1929 }
1930 /* Register variable[9]: Result */
1931 if (UNTAG_Bool(variable[9])) { /*if*/
1932 /* Register variable[9]: Result */
1933 variable[9] = CALL_static_type___MMType___as_nullable( variable[1] /*stype*/)( variable[1] /*stype*/) /*MMType::as_nullable*/;
1934 variable[1] = variable[9] /*stype=*/;
1935 /* Register variable[9]: Result */
1936 variable[9] = CALL_static_type___MMType___as_nullable( variable[8] /*ntype*/)( variable[8] /*ntype*/) /*MMType::as_nullable*/;
1937 variable[8] = variable[9] /*ntype=*/;
1938 }
1939 /* Register variable[9]: Result */
1940 variable[9] = TAG_Bool(( variable[1] /*stype*/ == NIT_NULL /*null*/) || (( variable[1] /*stype*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*stype*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*stype*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*stype*/)( variable[1] /*stype*/, NIT_NULL /*null*/) /*Object::==*/)))));
1941 /* Ensure var variable[9]: Left 'or' operand*/
1942 if (!UNTAG_Bool(variable[9])) { /* or */
1943 /* Register variable[9]: Result */
1944 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*ntype*/ == NIT_NULL /*null*/) || (( variable[8] /*ntype*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*ntype*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*ntype*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*ntype*/)( variable[8] /*ntype*/, NIT_NULL /*null*/) /*Object::==*/)))))));
1945 /* Ensure var variable[9]: Left 'and' operand*/
1946 if (UNTAG_Bool(variable[9])) { /* and */
1947 /* Register variable[9]: Result */
1948 variable[9] = CALL_static_type___MMType_____l( variable[1] /*stype*/)( variable[1] /*stype*/, variable[8] /*ntype*/) /*MMType::<*/;
1949 }
1950 /* Register variable[9]: Result */
1951 }
1952 /* Register variable[9]: Result */
1953 if (UNTAG_Bool(variable[9])) { /*if*/
1954 variable[1] = variable[8] /*ntype*/ /*stype=*/;
1955 variable[4] = variable[7] /*n*/ /*node=*/;
1956 }
1957 continue_100: while(0);
1958 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
1959 }
1960 break_100: while(0);
1961 /* Register variable[5]: For iterator */
1962 variable[5] = CALL_abstract_collection___Collection___iterator( variable[2] /*nodes*/)( variable[2] /*nodes*/) /*Collection::iterator*/;
1963 while (true) { /*for*/
1964 /* Register variable[6]: For 'is_ok' result */
1965 variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
1966 if (!UNTAG_Bool(variable[6])) break; /*for*/
1967 variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/ /* Ensure var: For item*/;
1968 /* Register variable[7]: Local variable */
1969 variable[7] = variable[6];
1970 /* Register variable[8]: Result */
1971 variable[8] = CALL_syntax_base___PExpr___stype( variable[7] /*n*/)( variable[7] /*n*/) /*PExpr::stype*/;
1972 /* Register variable[8]: Result */
1973 variable[8] = CALL_static_type___MMType_____l(variable[8])(variable[8], variable[1] /*stype*/) /*MMType::<*/;
1974 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[8])))) { /*if*/
1975 /* Register variable[8]: Result */
1976 variable[8] = TAG_Bool(( variable[4] /*node*/ == NIT_NULL /*null*/) || (( variable[4] /*node*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*node*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*node*/)( variable[4] /*node*/, NIT_NULL /*null*/) /*Object::==*/)))));
1977 if (UNTAG_Bool(variable[8])) { /*if*/
1978 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
1979 /* Register variable[9]: Once String constant */
1980 if (once_value_102 != NIT_NULL) variable[9] = once_value_102;
1981 else {
1982 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Type error: no most general type. Got "), TAG_Int(38)) /*new String*/;
1983 once_value_102 = variable[9];
1984 }
1985 /* Register variable[9]: Result */
1986 /* Ensure var variable[9]: super-string element*/
1987 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
1988 /* Register variable[9]: Result */
1989 variable[9] = CALL_syntax_base___PExpr___stype( variable[7] /*n*/)( variable[7] /*n*/) /*PExpr::stype*/;
1990 /* Ensure var variable[9]: super-string element*/
1991 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/;
1992 /* Register variable[9]: Once String constant */
1993 if (once_value_103 != NIT_NULL) variable[9] = once_value_103;
1994 else {
1995 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" and "), TAG_Int(5)) /*new String*/;
1996 once_value_103 = variable[9];
1997 }
1998 /* Register variable[9]: Result */
1999 /* Ensure var variable[9]: super-string element*/
2000 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
2001 variable[9] = variable[1] /*stype*/ /* Ensure var: super-string element*/;
2002 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/;
2003 /* Register variable[9]: Once String constant */
2004 if (once_value_104 != NIT_NULL) variable[9] = once_value_104;
2005 else {
2006 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/;
2007 once_value_104 = variable[9];
2008 }
2009 /* Register variable[9]: Result */
2010 /* Ensure var variable[9]: super-string element*/
2011 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
2012 /* Register variable[8]: Result */
2013 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
2014 CALL_syntax_base___AbsSyntaxVisitor___error(variable[0])(variable[0], variable[7] /*n*/, variable[8]) /*AbsSyntaxVisitor::error*/;
2015 } else { /*if*/
2016 variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
2017 /* Register variable[9]: Once String constant */
2018 if (once_value_105 != NIT_NULL) variable[9] = once_value_105;
2019 else {
2020 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Type error: no most general type. Got "), TAG_Int(38)) /*new String*/;
2021 once_value_105 = variable[9];
2022 }
2023 /* Register variable[9]: Result */
2024 /* Ensure var variable[9]: super-string element*/
2025 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
2026 /* Register variable[9]: Result */
2027 variable[9] = CALL_syntax_base___PExpr___stype( variable[7] /*n*/)( variable[7] /*n*/) /*PExpr::stype*/;
2028 /* Ensure var variable[9]: super-string element*/
2029 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/;
2030 /* Register variable[9]: Once String constant */
2031 if (once_value_106 != NIT_NULL) variable[9] = once_value_106;
2032 else {
2033 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" and "), TAG_Int(5)) /*new String*/;
2034 once_value_106 = variable[9];
2035 }
2036 /* Register variable[9]: Result */
2037 /* Ensure var variable[9]: super-string element*/
2038 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
2039 variable[9] = variable[1] /*stype*/ /* Ensure var: super-string element*/;
2040 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/) /*AbstractArray::add*/;
2041 /* Register variable[9]: Once String constant */
2042 if (once_value_107 != NIT_NULL) variable[9] = once_value_107;
2043 else {
2044 variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" at "), TAG_Int(4)) /*new String*/;
2045 once_value_107 = variable[9];
2046 }
2047 /* Register variable[9]: Result */
2048 /* Ensure var variable[9]: super-string element*/
2049 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
2050 /* Register variable[9]: Result */
2051 variable[9] = CALL_parser_prod___PNode___locate( variable[4] /*node*/)( variable[4] /*node*/) /*Prod::locate*/;
2052 /* Ensure var variable[9]: super-string element*/
2053 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
2054 /* Register variable[9]: Once String constant */
2055 if (once_value_108 != NIT_NULL) variable[9] = once_value_108;
2056 else {
2057 variable[9] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/;
2058 once_value_108 = variable[9];
2059 }
2060 /* Register variable[9]: Result */
2061 /* Ensure var variable[9]: super-string element*/
2062 CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
2063 /* Register variable[8]: Result */
2064 variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
2065 CALL_syntax_base___AbsSyntaxVisitor___error(variable[0])(variable[0], variable[7] /*n*/, variable[8]) /*AbsSyntaxVisitor::error*/;
2066 }
2067 variable[3] = NIT_NULL /*null*/;
2068 goto return_label99;
2069 }
2070 continue_101: while(0);
2071 CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
2072 }
2073 break_101: while(0);
2074 variable[3] = variable[1] /*stype*/;
2075 goto return_label99;
2076 return_label99: while(false);
2077 tracehead = trace.prev;
2078 return variable[3];
2079 }
2080 void syntax_base___AbsSyntaxVisitor___init(val_t self, val_t param0, val_t param1, int* init_table) {
2081 struct trace_t trace = {NULL, NULL, 439, LOCATE_syntax_base___AbsSyntaxVisitor___init};
2082 val_t variable[4];
2083 struct WBT_ **closurevariable = NULL;
2084 trace.prev = tracehead; tracehead = &trace;
2085 trace.file = LOCATE_syntax_base;
2086 /* Register variable[0]: Local variable */
2087 variable[0] = self;
2088 /* Register variable[1]: Local variable */
2089 variable[1] = param0;
2090 /* Register variable[2]: Local variable */
2091 variable[2] = param1;
2092 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AbsSyntaxVisitor].i]) return;
2093 /* Register variable[3]: Method return value and escape marker */
2094 ATTR_syntax_base___AbsSyntaxVisitor____tc(variable[0]) /*AbsSyntaxVisitor::_tc*/ = variable[1] /*tc*/;
2095 ATTR_syntax_base___AbsSyntaxVisitor____module(variable[0]) /*AbsSyntaxVisitor::_module*/ = variable[2] /*module*/;
2096 return_label109: while(false);
2097 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AbsSyntaxVisitor].i] = 1;
2098 tracehead = trace.prev;
2099 return;
2100 }
2101 void syntax_base___PNode___accept_abs_syntax_visitor(val_t self, val_t param0) {
2102 struct trace_t trace = {NULL, NULL, 449, LOCATE_syntax_base___PNode___accept_abs_syntax_visitor};
2103 val_t variable[3];
2104 struct WBT_ **closurevariable = NULL;
2105 trace.prev = tracehead; tracehead = &trace;
2106 trace.file = LOCATE_syntax_base;
2107 /* Register variable[0]: Local variable */
2108 variable[0] = self;
2109 /* Register variable[1]: Local variable */
2110 variable[1] = param0;
2111 /* Register variable[2]: Method return value and escape marker */
2112 CALL_parser_prod___PNode___visit_all(variable[0])(variable[0], variable[1] /*v*/) /*PNode::visit_all*/;
2113 return_label110: while(false);
2114 tracehead = trace.prev;
2115 return;
2116 }
2117 val_t syntax_base___Token___to_symbol(val_t self) {
2118 struct trace_t trace = {NULL, NULL, 455, LOCATE_syntax_base___Token___to_symbol};
2119 val_t variable[4];
2120 struct WBT_ **closurevariable = NULL;
2121 trace.prev = tracehead; tracehead = &trace;
2122 trace.file = LOCATE_syntax_base;
2123 /* Register variable[0]: Local variable */
2124 variable[0] = self;
2125 /* Register variable[1]: Method return value and escape marker */
2126 /* Register variable[2]: Local variable */
2127 /* Register variable[3]: Result */
2128 variable[3] = ATTR_syntax_base___Token____symbol(variable[0]) /*Token::_symbol*/;
2129 variable[2] = variable[3];
2130 /* Register variable[3]: Result */
2131 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::==*/)))));
2132 if (UNTAG_Bool(variable[3])) { /*if*/
2133 /* Register variable[3]: Result */
2134 variable[3] = CALL_lexer___Token___text(variable[0])(variable[0]) /*Token::text*/;
2135 /* Register variable[3]: Result */
2136 variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
2137 variable[2] = variable[3] /*s=*/;
2138 ATTR_syntax_base___Token____symbol(variable[0]) /*Token::_symbol*/ = variable[2] /*s*/;
2139 }
2140 variable[1] = variable[2] /*s*/;
2141 goto return_label111;
2142 return_label111: while(false);
2143 tracehead = trace.prev;
2144 return variable[1];
2145 }
2146 val_t syntax_base___PClassdef___local_class(val_t self) {
2147 struct trace_t trace = {NULL, NULL, 469, LOCATE_syntax_base___PClassdef___local_class};
2148 val_t *variable = NULL;
2149 struct WBT_ **closurevariable = NULL;
2150 trace.prev = tracehead; tracehead = &trace;
2151 trace.file = LOCATE_syntax_base;
2152 fprintf(stderr, "Deferred method called");
2153 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 469);
2154 nit_exit(1);
2155 tracehead = trace.prev;
2156 return NIT_NULL;
2157 }
2158 val_t syntax_base___AAttrPropdef___prop(val_t self) {
2159 struct trace_t trace = {NULL, NULL, 474, LOCATE_syntax_base___AAttrPropdef___prop};
2160 val_t *variable = NULL;
2161 struct WBT_ **closurevariable = NULL;
2162 trace.prev = tracehead; tracehead = &trace;
2163 trace.file = LOCATE_syntax_base;
2164 fprintf(stderr, "Deferred method called");
2165 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 474);
2166 nit_exit(1);
2167 tracehead = trace.prev;
2168 return NIT_NULL;
2169 }
2170 val_t syntax_base___AAttrPropdef___readmethod(val_t self) {
2171 struct trace_t trace = {NULL, NULL, 477, LOCATE_syntax_base___AAttrPropdef___readmethod};
2172 val_t *variable = NULL;
2173 struct WBT_ **closurevariable = NULL;
2174 trace.prev = tracehead; tracehead = &trace;
2175 trace.file = LOCATE_syntax_base;
2176 fprintf(stderr, "Deferred method called");
2177 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 477);
2178 nit_exit(1);
2179 tracehead = trace.prev;
2180 return NIT_NULL;
2181 }
2182 val_t syntax_base___AAttrPropdef___writemethod(val_t self) {
2183 struct trace_t trace = {NULL, NULL, 480, LOCATE_syntax_base___AAttrPropdef___writemethod};
2184 val_t *variable = NULL;
2185 struct WBT_ **closurevariable = NULL;
2186 trace.prev = tracehead; tracehead = &trace;
2187 trace.file = LOCATE_syntax_base;
2188 fprintf(stderr, "Deferred method called");
2189 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 480);
2190 nit_exit(1);
2191 tracehead = trace.prev;
2192 return NIT_NULL;
2193 }
2194 val_t syntax_base___AMethPropdef___method(val_t self) {
2195 struct trace_t trace = {NULL, NULL, 485, LOCATE_syntax_base___AMethPropdef___method};
2196 val_t *variable = NULL;
2197 struct WBT_ **closurevariable = NULL;
2198 trace.prev = tracehead; tracehead = &trace;
2199 trace.file = LOCATE_syntax_base;
2200 fprintf(stderr, "Deferred method called");
2201 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 485);
2202 nit_exit(1);
2203 tracehead = trace.prev;
2204 return NIT_NULL;
2205 }
2206 val_t syntax_base___AMethPropdef___self_var(val_t self) {
2207 struct trace_t trace = {NULL, NULL, 488, LOCATE_syntax_base___AMethPropdef___self_var};
2208 val_t *variable = NULL;
2209 struct WBT_ **closurevariable = NULL;
2210 trace.prev = tracehead; tracehead = &trace;
2211 trace.file = LOCATE_syntax_base;
2212 fprintf(stderr, "Deferred method called");
2213 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 488);
2214 nit_exit(1);
2215 tracehead = trace.prev;
2216 return NIT_NULL;
2217 }
2218 val_t syntax_base___ATypePropdef___prop(val_t self) {
2219 struct trace_t trace = {NULL, NULL, 493, LOCATE_syntax_base___ATypePropdef___prop};
2220 val_t *variable = NULL;
2221 struct WBT_ **closurevariable = NULL;
2222 trace.prev = tracehead; tracehead = &trace;
2223 trace.file = LOCATE_syntax_base;
2224 fprintf(stderr, "Deferred method called");
2225 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 493);
2226 nit_exit(1);
2227 tracehead = trace.prev;
2228 return NIT_NULL;
2229 }
2230 val_t syntax_base___PParam___position(val_t self) {
2231 struct trace_t trace = {NULL, NULL, 498, LOCATE_syntax_base___PParam___position};
2232 val_t *variable = NULL;
2233 struct WBT_ **closurevariable = NULL;
2234 trace.prev = tracehead; tracehead = &trace;
2235 trace.file = LOCATE_syntax_base;
2236 fprintf(stderr, "Deferred method called");
2237 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 498);
2238 nit_exit(1);
2239 tracehead = trace.prev;
2240 return NIT_NULL;
2241 }
2242 val_t syntax_base___PParam___variable(val_t self) {
2243 struct trace_t trace = {NULL, NULL, 501, LOCATE_syntax_base___PParam___variable};
2244 val_t *variable = NULL;
2245 struct WBT_ **closurevariable = NULL;
2246 trace.prev = tracehead; tracehead = &trace;
2247 trace.file = LOCATE_syntax_base;
2248 fprintf(stderr, "Deferred method called");
2249 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 501);
2250 nit_exit(1);
2251 tracehead = trace.prev;
2252 return NIT_NULL;
2253 }
2254 val_t syntax_base___PClosureDecl___variable(val_t self) {
2255 struct trace_t trace = {NULL, NULL, 506, LOCATE_syntax_base___PClosureDecl___variable};
2256 val_t *variable = NULL;
2257 struct WBT_ **closurevariable = NULL;
2258 trace.prev = tracehead; tracehead = &trace;
2259 trace.file = LOCATE_syntax_base;
2260 fprintf(stderr, "Deferred method called");
2261 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 506);
2262 nit_exit(1);
2263 tracehead = trace.prev;
2264 return NIT_NULL;
2265 }
2266 val_t syntax_base___PType___get_local_class(val_t self, val_t param0) {
2267 struct trace_t trace = {NULL, NULL, 511, LOCATE_syntax_base___PType___get_local_class};
2268 val_t *variable = NULL;
2269 struct WBT_ **closurevariable = NULL;
2270 trace.prev = tracehead; tracehead = &trace;
2271 trace.file = LOCATE_syntax_base;
2272 fprintf(stderr, "Deferred method called");
2273 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 511);
2274 nit_exit(1);
2275 tracehead = trace.prev;
2276 return NIT_NULL;
2277 }
2278 val_t syntax_base___PType___get_stype(val_t self, val_t param0) {
2279 struct trace_t trace = {NULL, NULL, 516, LOCATE_syntax_base___PType___get_stype};
2280 val_t *variable = NULL;
2281 struct WBT_ **closurevariable = NULL;
2282 trace.prev = tracehead; tracehead = &trace;
2283 trace.file = LOCATE_syntax_base;
2284 fprintf(stderr, "Deferred method called");
2285 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 516);
2286 nit_exit(1);
2287 tracehead = trace.prev;
2288 return NIT_NULL;
2289 }
2290 val_t syntax_base___PType___get_unchecked_stype(val_t self, val_t param0) {
2291 struct trace_t trace = {NULL, NULL, 520, LOCATE_syntax_base___PType___get_unchecked_stype};
2292 val_t *variable = NULL;
2293 struct WBT_ **closurevariable = NULL;
2294 trace.prev = tracehead; tracehead = &trace;
2295 trace.file = LOCATE_syntax_base;
2296 fprintf(stderr, "Deferred method called");
2297 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 520);
2298 nit_exit(1);
2299 tracehead = trace.prev;
2300 return NIT_NULL;
2301 }
2302 void syntax_base___PType___check_conform(val_t self, val_t param0) {
2303 struct trace_t trace = {NULL, NULL, 526, LOCATE_syntax_base___PType___check_conform};
2304 val_t *variable = NULL;
2305 struct WBT_ **closurevariable = NULL;
2306 trace.prev = tracehead; tracehead = &trace;
2307 trace.file = LOCATE_syntax_base;
2308 fprintf(stderr, "Deferred method called");
2309 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 526);
2310 nit_exit(1);
2311 tracehead = trace.prev;
2312 return;
2313 }
2314 val_t syntax_base___AType___get_local_class(val_t self, val_t param0) {
2315 struct trace_t trace = {NULL, NULL, 536, LOCATE_syntax_base___AType___get_local_class};
2316 static val_t once_value_113 = NIT_NULL; /* Once value for string variable[8]*/
2317 static val_t once_value_114 = NIT_NULL; /* Once value for string variable[8]*/
2318 static val_t once_value_115 = NIT_NULL; /* Once value for string variable[8]*/
2319 static val_t once_value_116 = NIT_NULL; /* Once value for string variable[8]*/
2320 static val_t once_value_117 = NIT_NULL; /* Once value for string variable[8]*/
2321 val_t variable[9];
2322 struct WBT_ **closurevariable = NULL;
2323 trace.prev = tracehead; tracehead = &trace;
2324 trace.file = LOCATE_syntax_base;
2325 /* Register variable[0]: Local variable */
2326 variable[0] = self;
2327 /* Register variable[1]: Local variable */
2328 variable[1] = param0;
2329 /* Register variable[2]: Method return value and escape marker */
2330 /* Register variable[3]: Local variable */
2331 /* Register variable[4]: Result */
2332 variable[4] = CALL_parser_nodes___AType___n_id(variable[0])(variable[0]) /*AType::n_id*/;
2333 /* Register variable[4]: Result */
2334 variable[4] = CALL_syntax_base___Token___to_symbol(variable[4])(variable[4]) /*Token::to_symbol*/;
2335 variable[3] = variable[4];
2336 /* Register variable[4]: Local variable */
2337 /* Register variable[5]: Result */
2338 variable[5] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
2339 variable[4] = variable[5];
2340 /* Register variable[5]: Local variable */
2341 /* Register variable[6]: Result */
2342 variable[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
2343 variable[5] = variable[6];
2344 /* Register variable[6]: Result */
2345 variable[6] = CALL_syntax_base___MMSrcLocalClass___formal_dict( variable[5] /*cla*/)( variable[5] /*cla*/) /*MMSrcLocalClass::formal_dict*/;
2346 /* Register variable[6]: Result */
2347 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::==*/)))))));
2348 /* Ensure var variable[6]: Left 'and' operand*/
2349 if (UNTAG_Bool(variable[6])) { /* and */
2350 /* Register variable[6]: Result */
2351 variable[6] = CALL_syntax_base___MMSrcLocalClass___formal_dict( variable[5] /*cla*/)( variable[5] /*cla*/) /*MMSrcLocalClass::formal_dict*/;
2352 /* Register variable[6]: Result */
2353 variable[6] = CALL_abstract_collection___MapRead___has_key(variable[6])(variable[6], variable[3] /*name*/) /*MapRead::has_key*/;
2354 }
2355 /* Register variable[6]: Result */
2356 /* Ensure var variable[6]: Left 'or' operand*/
2357 if (!UNTAG_Bool(variable[6])) { /* or */
2358 /* Register variable[6]: Result */
2359 variable[6] = CALL_abstractmetamodel___MMLocalClass___global_properties( variable[5] /*cla*/)( variable[5] /*cla*/) /*MMLocalClass::global_properties*/;
2360 /* Register variable[6]: Result */
2361 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::==*/)))))));
2362 /* Ensure var variable[6]: Left 'and' operand*/
2363 if (UNTAG_Bool(variable[6])) { /* and */
2364 /* Register variable[6]: Result */
2365 variable[6] = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name( variable[5] /*cla*/)( variable[5] /*cla*/, variable[3] /*name*/) /*MMLocalClass::has_global_property_by_name*/;
2366 }
2367 /* Register variable[6]: Result */
2368 }
2369 /* Register variable[6]: Result */
2370 if (UNTAG_Bool(variable[6])) { /*if*/
2371 /* Register variable[6]: Result */
2372 variable[6] = CALL_parser_nodes___AType___n_id(variable[0])(variable[0]) /*AType::n_id*/;
2373 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
2374 /* Register variable[8]: Once String constant */
2375 if (once_value_113 != NIT_NULL) variable[8] = once_value_113;
2376 else {
2377 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Type error: "), TAG_Int(12)) /*new String*/;
2378 once_value_113 = variable[8];
2379 }
2380 /* Register variable[8]: Result */
2381 /* Ensure var variable[8]: super-string element*/
2382 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
2383 variable[8] = variable[3] /*name*/ /* Ensure var: super-string element*/;
2384 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/;
2385 /* Register variable[8]: Once String constant */
2386 if (once_value_114 != NIT_NULL) variable[8] = once_value_114;
2387 else {
2388 variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" is a formal type"), TAG_Int(17)) /*new String*/;
2389 once_value_114 = variable[8];
2390 }
2391 /* Register variable[8]: Result */
2392 /* Ensure var variable[8]: super-string element*/
2393 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
2394 /* Register variable[7]: Result */
2395 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
2396 CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
2397 ATTR_syntax_base___AType____stype_cached(variable[0]) /*AType::_stype_cached*/ = TAG_Bool(true);
2398 variable[2] = NIT_NULL /*null*/;
2399 goto return_label112;
2400 }
2401 /* Register variable[6]: Result */
2402 variable[6] = CALL_abstractmetamodel___MMModule___has_global_class_named( variable[4] /*mod*/)( variable[4] /*mod*/, variable[3] /*name*/) /*MMModule::has_global_class_named*/;
2403 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/
2404 /* Register variable[6]: Result */
2405 variable[6] = CALL_parser_nodes___AType___n_id(variable[0])(variable[0]) /*AType::n_id*/;
2406 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
2407 /* Register variable[8]: Once String constant */
2408 if (once_value_115 != NIT_NULL) variable[8] = once_value_115;
2409 else {
2410 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Type error: class "), TAG_Int(18)) /*new String*/;
2411 once_value_115 = variable[8];
2412 }
2413 /* Register variable[8]: Result */
2414 /* Ensure var variable[8]: super-string element*/
2415 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
2416 variable[8] = variable[3] /*name*/ /* Ensure var: super-string element*/;
2417 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/;
2418 /* Register variable[8]: Once String constant */
2419 if (once_value_116 != NIT_NULL) variable[8] = once_value_116;
2420 else {
2421 variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" not found in module "), TAG_Int(21)) /*new String*/;
2422 once_value_116 = variable[8];
2423 }
2424 /* Register variable[8]: Result */
2425 /* Ensure var variable[8]: super-string element*/
2426 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
2427 variable[8] = variable[4] /*mod*/ /* Ensure var: super-string element*/;
2428 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/;
2429 /* Register variable[8]: Once String constant */
2430 if (once_value_117 != NIT_NULL) variable[8] = once_value_117;
2431 else {
2432 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/;
2433 once_value_117 = variable[8];
2434 }
2435 /* Register variable[8]: Result */
2436 /* Ensure var variable[8]: super-string element*/
2437 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
2438 /* Register variable[7]: Result */
2439 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
2440 CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
2441 ATTR_syntax_base___AType____stype_cached(variable[0]) /*AType::_stype_cached*/ = TAG_Bool(true);
2442 variable[2] = NIT_NULL /*null*/;
2443 goto return_label112;
2444 }
2445 /* Register variable[6]: Local variable */
2446 /* Register variable[7]: Result */
2447 variable[7] = CALL_abstractmetamodel___MMModule___class_by_name( variable[4] /*mod*/)( variable[4] /*mod*/, variable[3] /*name*/) /*MMModule::class_by_name*/;
2448 variable[6] = variable[7];
2449 /* Register variable[7]: Result */
2450 variable[7] = CALL_abstractmetamodel___MMLocalClass___global( variable[6] /*local_class*/)( variable[6] /*local_class*/) /*MMLocalClass::global*/;
2451 CALL_syntax_base___MMGlobalClass___check_visibility(variable[7])(variable[7], variable[1] /*v*/, variable[0], variable[4] /*mod*/) /*MMGlobalClass::check_visibility*/;
2452 variable[2] = variable[6] /*local_class*/;
2453 goto return_label112;
2454 return_label112: while(false);
2455 tracehead = trace.prev;
2456 return variable[2];
2457 }
2458 val_t syntax_base___AType___get_stype(val_t self, val_t param0) {
2459 struct trace_t trace = {NULL, NULL, 618, LOCATE_syntax_base___AType___get_stype};
2460 val_t variable[5];
2461 struct WBT_ **closurevariable = NULL;
2462 trace.prev = tracehead; tracehead = &trace;
2463 trace.file = LOCATE_syntax_base;
2464 /* Register variable[0]: Local variable */
2465 variable[0] = self;
2466 /* Register variable[1]: Local variable */
2467 variable[1] = param0;
2468 /* Register variable[2]: Method return value and escape marker */
2469 /* Register variable[3]: Local variable */
2470 /* Register variable[4]: Result */
2471 variable[4] = CALL_syntax_base___PType___get_unchecked_stype(variable[0])(variable[0], variable[1] /*v*/) /*AType::get_unchecked_stype*/;
2472 variable[3] = variable[4];
2473 /* Register variable[4]: Result */
2474 variable[4] = 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::==*/)))));
2475 if (UNTAG_Bool(variable[4])) { /*if*/
2476 variable[2] = NIT_NULL /*null*/;
2477 goto return_label118;
2478 }
2479 /* Register variable[4]: Result */
2480 variable[4] = CALL_static_type___MMType___is_valid( variable[3] /*t*/)( variable[3] /*t*/) /*MMType::is_valid*/;
2481 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[4])))) { /*if*/
2482 variable[2] = NIT_NULL /*null*/;
2483 goto return_label118;
2484 }
2485 CALL_syntax_base___PType___check_conform(variable[0])(variable[0], variable[1] /*v*/) /*AType::check_conform*/;
2486 variable[2] = variable[3] /*t*/;
2487 goto return_label118;
2488 return_label118: while(false);
2489 tracehead = trace.prev;
2490 return variable[2];
2491 }
2492 val_t syntax_base___AType___get_unchecked_stype(val_t self, val_t param0) {
2493 struct trace_t trace = {NULL, NULL, 559, LOCATE_syntax_base___AType___get_unchecked_stype};
2494 static val_t once_value_120 = NIT_NULL; /* Once value for string variable[8]*/
2495 static val_t once_value_121 = NIT_NULL; /* Once value for string variable[8]*/
2496 static val_t once_value_122 = NIT_NULL; /* Once value for string variable[8]*/
2497 static val_t once_value_123 = NIT_NULL; /* Once value for string variable[8]*/
2498 static val_t once_value_124 = NIT_NULL; /* Once value for string variable[8]*/
2499 static val_t once_value_125 = NIT_NULL; /* Once value for string variable[8]*/
2500 static val_t once_value_126 = NIT_NULL; /* Once value for string variable[10]*/
2501 static val_t once_value_127 = NIT_NULL; /* Once value for string variable[10]*/
2502 static val_t once_value_128 = NIT_NULL; /* Once value for string variable[10]*/
2503 static val_t once_value_129 = NIT_NULL; /* Once value for string variable[10]*/
2504 val_t variable[14];
2505 struct WBT_ **closurevariable = NULL;
2506 trace.prev = tracehead; tracehead = &trace;
2507 trace.file = LOCATE_syntax_base;
2508 /* Register variable[0]: Local variable */
2509 variable[0] = self;
2510 /* Register variable[1]: Local variable */
2511 variable[1] = param0;
2512 /* Register variable[2]: Method return value and escape marker */
2513 /* Register variable[3]: Result */
2514 variable[3] = ATTR_syntax_base___AType____stype_cached(variable[0]) /*AType::_stype_cached*/;
2515 if (UNTAG_Bool(variable[3])) { /*if*/
2516 /* Register variable[3]: Result */
2517 variable[3] = ATTR_syntax_base___AType____stype_cache(variable[0]) /*AType::_stype_cache*/;
2518 variable[2] = variable[3];
2519 goto return_label119;
2520 }
2521 ATTR_syntax_base___AType____stype_cached(variable[0]) /*AType::_stype_cached*/ = TAG_Bool(true);
2522 /* Register variable[3]: Local variable */
2523 /* Register variable[4]: Result */
2524 variable[4] = CALL_parser_nodes___AType___n_id(variable[0])(variable[0]) /*AType::n_id*/;
2525 /* Register variable[4]: Result */
2526 variable[4] = CALL_syntax_base___Token___to_symbol(variable[4])(variable[4]) /*Token::to_symbol*/;
2527 variable[3] = variable[4];
2528 /* Register variable[4]: Local variable */
2529 /* Register variable[5]: Result */
2530 variable[5] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
2531 variable[4] = variable[5];
2532 /* Register variable[5]: Local variable */
2533 /* Register variable[6]: Result */
2534 variable[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
2535 variable[5] = variable[6];
2536 /* Register variable[6]: Local variable */
2537 /*variable[6] is variable t*/
2538 /* Register variable[7]: Result */
2539 variable[7] = CALL_syntax_base___MMSrcLocalClass___formal_dict( variable[5] /*cla*/)( variable[5] /*cla*/) /*MMSrcLocalClass::formal_dict*/;
2540 /* Register variable[7]: Result */
2541 variable[7] = CALL_abstract_collection___MapRead___has_key(variable[7])(variable[7], variable[3] /*name*/) /*MapRead::has_key*/;
2542 if (UNTAG_Bool(variable[7])) { /*if*/
2543 /* Register variable[7]: Result */
2544 variable[7] = CALL_parser_nodes___AType___n_types(variable[0])(variable[0]) /*AType::n_types*/;
2545 /* Register variable[7]: Result */
2546 variable[7] = CALL_abstract_collection___Collection___length(variable[7])(variable[7]) /*List::length*/;
2547 /* Register variable[7]: Result */
2548 variable[7] = TAG_Bool(UNTAG_Int(variable[7])>UNTAG_Int( TAG_Int(0)));
2549 if (UNTAG_Bool(variable[7])) { /*if*/
2550 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
2551 /* Register variable[8]: Once String constant */
2552 if (once_value_120 != NIT_NULL) variable[8] = once_value_120;
2553 else {
2554 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Type error: formal type "), TAG_Int(24)) /*new String*/;
2555 once_value_120 = variable[8];
2556 }
2557 /* Register variable[8]: Result */
2558 /* Ensure var variable[8]: super-string element*/
2559 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
2560 variable[8] = variable[3] /*name*/ /* Ensure var: super-string element*/;
2561 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/;
2562 /* Register variable[8]: Once String constant */
2563 if (once_value_121 != NIT_NULL) variable[8] = once_value_121;
2564 else {
2565 variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" cannot have formal parameters."), TAG_Int(31)) /*new String*/;
2566 once_value_121 = variable[8];
2567 }
2568 /* Register variable[8]: Result */
2569 /* Ensure var variable[8]: super-string element*/
2570 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
2571 /* Register variable[7]: Result */
2572 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
2573 CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[7]) /*AbsSyntaxVisitor::error*/;
2574 variable[2] = NIT_NULL /*null*/;
2575 goto return_label119;
2576 }
2577 /* Register variable[7]: Result */
2578 variable[7] = CALL_syntax_base___MMSrcLocalClass___formal_dict( variable[5] /*cla*/)( variable[5] /*cla*/) /*MMSrcLocalClass::formal_dict*/;
2579 /* Register variable[7]: Result */
2580 variable[7] = CALL_abstract_collection___MapRead_____bra(variable[7])(variable[7], variable[3] /*name*/) /*MapRead::[]*/;
2581 variable[6] = variable[7] /*t=*/;
2582 /* Register variable[7]: Result */
2583 variable[7] = CALL_parser_nodes___AType___n_kwnullable(variable[0])(variable[0]) /*AType::n_kwnullable*/;
2584 /* Register variable[7]: Result */
2585 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::==*/)))))));
2586 if (UNTAG_Bool(variable[7])) { /*if*/
2587 /* Register variable[7]: Result */
2588 variable[7] = CALL_static_type___MMType___as_nullable( variable[6] /*t*/)( variable[6] /*t*/) /*MMType::as_nullable*/;
2589 variable[6] = variable[7] /*t=*/;
2590 }
2591 ATTR_syntax_base___AType____stype_cache(variable[0]) /*AType::_stype_cache*/ = variable[6] /*t*/;
2592 variable[2] = variable[6] /*t*/;
2593 goto return_label119;
2594 }
2595 /* Register variable[7]: Result */
2596 variable[7] = CALL_abstractmetamodel___MMLocalClass___global_properties( variable[5] /*cla*/)( variable[5] /*cla*/) /*MMLocalClass::global_properties*/;
2597 /* Register variable[7]: Result */
2598 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::==*/)))))));
2599 /* Ensure var variable[7]: Left 'and' operand*/
2600 if (UNTAG_Bool(variable[7])) { /* and */
2601 /* Register variable[7]: Result */
2602 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*/;
2603 }
2604 /* Register variable[7]: Result */
2605 if (UNTAG_Bool(variable[7])) { /*if*/
2606 /* Register variable[7]: Result */
2607 variable[7] = CALL_parser_nodes___AType___n_types(variable[0])(variable[0]) /*AType::n_types*/;
2608 /* Register variable[7]: Result */
2609 variable[7] = CALL_abstract_collection___Collection___length(variable[7])(variable[7]) /*List::length*/;
2610 /* Register variable[7]: Result */
2611 variable[7] = TAG_Bool(UNTAG_Int(variable[7])>UNTAG_Int( TAG_Int(0)));
2612 if (UNTAG_Bool(variable[7])) { /*if*/
2613 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
2614 /* Register variable[8]: Once String constant */
2615 if (once_value_122 != NIT_NULL) variable[8] = once_value_122;
2616 else {
2617 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Type error: formal type "), TAG_Int(24)) /*new String*/;
2618 once_value_122 = variable[8];
2619 }
2620 /* Register variable[8]: Result */
2621 /* Ensure var variable[8]: super-string element*/
2622 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
2623 variable[8] = variable[3] /*name*/ /* Ensure var: super-string element*/;
2624 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/;
2625 /* Register variable[8]: Once String constant */
2626 if (once_value_123 != NIT_NULL) variable[8] = once_value_123;
2627 else {
2628 variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" cannot have formal parameters."), TAG_Int(31)) /*new String*/;
2629 once_value_123 = variable[8];
2630 }
2631 /* Register variable[8]: Result */
2632 /* Ensure var variable[8]: super-string element*/
2633 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
2634 /* Register variable[7]: Result */
2635 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
2636 CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[7]) /*AbsSyntaxVisitor::error*/;
2637 variable[2] = NIT_NULL /*null*/;
2638 goto return_label119;
2639 }
2640 /* Register variable[7]: Result */
2641 variable[7] = CALL_static_type___MMLocalClass___get_type( variable[5] /*cla*/)( variable[5] /*cla*/) /*MMLocalClass::get_type*/;
2642 /* Register variable[7]: Result */
2643 variable[7] = CALL_static_type___MMType___local_class(variable[7])(variable[7]) /*MMType::local_class*/;
2644 /* Register variable[7]: Result */
2645 variable[7] = CALL_virtualtype___MMLocalClass___select_virtual_type(variable[7])(variable[7], variable[3] /*name*/) /*MMLocalClass::select_virtual_type*/;
2646 /* Register variable[8]: Result */
2647 variable[8] = CALL_static_type___MMLocalClass___get_type( variable[5] /*cla*/)( variable[5] /*cla*/) /*MMLocalClass::get_type*/;
2648 /* Register variable[7]: Result */
2649 variable[7] = CALL_virtualtype___MMTypeProperty___stype_for(variable[7])(variable[7], variable[8]) /*MMTypeProperty::stype_for*/;
2650 variable[6] = variable[7] /*t=*/;
2651 /* Register variable[7]: Result */
2652 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::==*/)))));
2653 if (UNTAG_Bool(variable[7])) { /*if*/
2654 variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
2655 /* Register variable[8]: Once String constant */
2656 if (once_value_124 != NIT_NULL) variable[8] = once_value_124;
2657 else {
2658 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Type error: circular definition in formal type "), TAG_Int(47)) /*new String*/;
2659 once_value_124 = variable[8];
2660 }
2661 /* Register variable[8]: Result */
2662 /* Ensure var variable[8]: super-string element*/
2663 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
2664 variable[8] = variable[3] /*name*/ /* Ensure var: super-string element*/;
2665 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/) /*AbstractArray::add*/;
2666 /* Register variable[8]: Once String constant */
2667 if (once_value_125 != NIT_NULL) variable[8] = once_value_125;
2668 else {
2669 variable[8] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)) /*new String*/;
2670 once_value_125 = variable[8];
2671 }
2672 /* Register variable[8]: Result */
2673 /* Ensure var variable[8]: super-string element*/
2674 CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
2675 /* Register variable[7]: Result */
2676 variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
2677 CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[7]) /*AbsSyntaxVisitor::error*/;
2678 variable[2] = NIT_NULL /*null*/;
2679 goto return_label119;
2680 }
2681 /* Register variable[7]: Result */
2682 variable[7] = CALL_parser_nodes___AType___n_kwnullable(variable[0])(variable[0]) /*AType::n_kwnullable*/;
2683 /* Register variable[7]: Result */
2684 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::==*/)))))));
2685 if (UNTAG_Bool(variable[7])) { /*if*/
2686 /* Register variable[7]: Result */
2687 variable[7] = CALL_static_type___MMType___as_nullable( variable[6] /*t*/)( variable[6] /*t*/) /*MMType::as_nullable*/;
2688 variable[6] = variable[7] /*t=*/;
2689 }
2690 ATTR_syntax_base___AType____stype_cache(variable[0]) /*AType::_stype_cache*/ = variable[6] /*t*/;
2691 variable[2] = variable[6] /*t*/;
2692 goto return_label119;
2693 }
2694 /* Register variable[7]: Local variable */
2695 /* Register variable[8]: Result */
2696 variable[8] = CALL_syntax_base___PType___get_local_class(variable[0])(variable[0], variable[1] /*v*/) /*AType::get_local_class*/;
2697 variable[7] = variable[8];
2698 /* Register variable[8]: Result */
2699 variable[8] = TAG_Bool(( variable[7] /*local_class*/ == NIT_NULL /*null*/) || (( variable[7] /*local_class*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*local_class*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*local_class*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*local_class*/)( variable[7] /*local_class*/, NIT_NULL /*null*/) /*Object::==*/)))));
2700 if (UNTAG_Bool(variable[8])) { /*if*/
2701 variable[2] = NIT_NULL /*null*/;
2702 goto return_label119;
2703 }
2704 /* Register variable[8]: Local variable */
2705 /* Register variable[9]: Result */
2706 variable[9] = CALL_parser_nodes___AType___n_types(variable[0])(variable[0]) /*AType::n_types*/;
2707 /* Register variable[9]: Result */
2708 variable[9] = CALL_abstract_collection___Collection___length(variable[9])(variable[9]) /*List::length*/;
2709 variable[8] = variable[9];
2710 /* Register variable[9]: Result */
2711 variable[9] = CALL_abstractmetamodel___MMLocalClass___arity( variable[7] /*local_class*/)( variable[7] /*local_class*/) /*MMLocalClass::arity*/;
2712 /* Register variable[9]: Result */
2713 variable[9] = TAG_Bool((variable[9])!=( variable[8] /*arity*/));
2714 if (UNTAG_Bool(variable[9])) { /*if*/
2715 variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(7)) /*new Array[String]*/ /* Ensure var: Array (for super-string)*/;
2716 /* Register variable[10]: Once String constant */
2717 if (once_value_126 != NIT_NULL) variable[10] = once_value_126;
2718 else {
2719 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Type error: '"), TAG_Int(13)) /*new String*/;
2720 once_value_126 = variable[10];
2721 }
2722 /* Register variable[10]: Result */
2723 /* Ensure var variable[10]: super-string element*/
2724 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
2725 variable[10] = variable[7] /*local_class*/ /* Ensure var: super-string element*/;
2726 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/) /*AbstractArray::add*/;
2727 /* Register variable[10]: Once String constant */
2728 if (once_value_127 != NIT_NULL) variable[10] = once_value_127;
2729 else {
2730 variable[10] = NEW_String_string___String___with_native(BOX_NativeString("' has "), TAG_Int(6)) /*new String*/;
2731 once_value_127 = variable[10];
2732 }
2733 /* Register variable[10]: Result */
2734 /* Ensure var variable[10]: super-string element*/
2735 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
2736 /* Register variable[10]: Result */
2737 variable[10] = CALL_abstractmetamodel___MMLocalClass___arity( variable[7] /*local_class*/)( variable[7] /*local_class*/) /*MMLocalClass::arity*/;
2738 /* Ensure var variable[10]: super-string element*/
2739 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/) /*AbstractArray::add*/;
2740 /* Register variable[10]: Once String constant */
2741 if (once_value_128 != NIT_NULL) variable[10] = once_value_128;
2742 else {
2743 variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" parameters which differs from the "), TAG_Int(35)) /*new String*/;
2744 once_value_128 = variable[10];
2745 }
2746 /* Register variable[10]: Result */
2747 /* Ensure var variable[10]: super-string element*/
2748 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
2749 variable[10] = variable[8] /*arity*/ /* Ensure var: super-string element*/;
2750 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/) /*AbstractArray::add*/;
2751 /* Register variable[10]: Once String constant */
2752 if (once_value_129 != NIT_NULL) variable[10] = once_value_129;
2753 else {
2754 variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" params."), TAG_Int(8)) /*new String*/;
2755 once_value_129 = variable[10];
2756 }
2757 /* Register variable[10]: Result */
2758 /* Ensure var variable[10]: super-string element*/
2759 CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
2760 /* Register variable[9]: Result */
2761 variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
2762 CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[0], variable[9]) /*AbsSyntaxVisitor::error*/;
2763 variable[2] = NIT_NULL /*null*/;
2764 goto return_label119;
2765 }
2766 /* Register variable[9]: Result */
2767 variable[9] = TAG_Bool(UNTAG_Int( variable[8] /*arity*/)>UNTAG_Int( TAG_Int(0)));
2768 if (UNTAG_Bool(variable[9])) { /*if*/
2769 /* Register variable[9]: Local variable */
2770 /* Register variable[10]: Result */
2771 variable[10] = NEW_Array_array___Array___init() /*new Array[MMType]*/;
2772 variable[9] = variable[10];
2773 /* Register variable[10]: Result */
2774 variable[10] = CALL_parser_nodes___AType___n_types(variable[0])(variable[0]) /*AType::n_types*/;
2775 /* Register variable[10]: For iterator */
2776 variable[10] = CALL_abstract_collection___Collection___iterator(variable[10])(variable[10]) /*List::iterator*/;
2777 while (true) { /*for*/
2778 /* Register variable[11]: For 'is_ok' result */
2779 variable[11] = CALL_abstract_collection___Iterator___is_ok(variable[10])(variable[10]) /*ListIterator::is_ok*/;
2780 if (!UNTAG_Bool(variable[11])) break; /*for*/
2781 variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*ListIterator::item*/ /* Ensure var: For item*/;
2782 /* Register variable[12]: Local variable */
2783 variable[12] = variable[11];
2784 /* Register variable[13]: Result */
2785 variable[13] = CALL_syntax_base___PType___get_unchecked_stype( variable[12] /*p*/)( variable[12] /*p*/, variable[1] /*v*/) /*PType::get_unchecked_stype*/;
2786 CALL_abstract_collection___SimpleCollection___add( variable[9] /*tab*/)( variable[9] /*tab*/, variable[13]) /*AbstractArray::add*/;
2787 continue_130: while(0);
2788 CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*ListIterator::next*/;
2789 }
2790 break_130: while(0);
2791 /* Register variable[10]: Result */
2792 variable[10] = CALL_genericity___MMLocalClass___get_instantiate_type( variable[7] /*local_class*/)( variable[7] /*local_class*/, variable[9] /*tab*/) /*MMLocalClass::get_instantiate_type*/;
2793 variable[6] = variable[10] /*t=*/;
2794 } else { /*if*/
2795 /* Register variable[9]: Result */
2796 variable[9] = CALL_static_type___MMLocalClass___get_type( variable[7] /*local_class*/)( variable[7] /*local_class*/) /*MMLocalClass::get_type*/;
2797 variable[6] = variable[9] /*t=*/;
2798 }
2799 /* Register variable[9]: Result */
2800 variable[9] = CALL_parser_nodes___AType___n_kwnullable(variable[0])(variable[0]) /*AType::n_kwnullable*/;
2801 /* Register variable[9]: Result */
2802 variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[9] == NIT_NULL /*null*/) || ((variable[9] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[9])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[9], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[9])(variable[9], NIT_NULL /*null*/) /*Object::==*/)))))));
2803 if (UNTAG_Bool(variable[9])) { /*if*/
2804 /* Register variable[9]: Result */
2805 variable[9] = CALL_static_type___MMType___as_nullable( variable[6] /*t*/)( variable[6] /*t*/) /*MMType::as_nullable*/;
2806 variable[6] = variable[9] /*t=*/;
2807 }
2808 ATTR_syntax_base___AType____stype_cache(variable[0]) /*AType::_stype_cache*/ = variable[6] /*t*/;
2809 variable[2] = variable[6] /*t*/;
2810 goto return_label119;
2811 return_label119: while(false);
2812 tracehead = trace.prev;
2813 return variable[2];
2814 }
2815 void syntax_base___AType___check_conform(val_t self, val_t param0) {
2816 struct trace_t trace = {NULL, NULL, 627, LOCATE_syntax_base___AType___check_conform};
2817 val_t variable[14];
2818 struct WBT_ **closurevariable = NULL;
2819 trace.prev = tracehead; tracehead = &trace;
2820 trace.file = LOCATE_syntax_base;
2821 /* Register variable[0]: Local variable */
2822 variable[0] = self;
2823 /* Register variable[1]: Local variable */
2824 variable[1] = param0;
2825 /* Register variable[2]: Method return value and escape marker */
2826 /* Register variable[3]: Local variable */
2827 /* Register variable[4]: Result */
2828 variable[4] = CALL_syntax_base___PType___get_unchecked_stype(variable[0])(variable[0], variable[1] /*v*/) /*AType::get_unchecked_stype*/;
2829 variable[3] = variable[4];
2830 /* Register variable[4]: Result */
2831 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::==*/)))));
2832 if (UNTAG_Bool(variable[4])) { /*if*/
2833 goto return_label131;
2834 }
2835 /* Register variable[4]: Local variable */
2836 /* Register variable[5]: Result */
2837 variable[5] = CALL_static_type___MMType___local_class( variable[3] /*st*/)( variable[3] /*st*/) /*MMType::local_class*/;
2838 variable[4] = variable[5];
2839 /* Register variable[5]: Local variable */
2840 /* Register variable[6]: Result */
2841 variable[6] = CALL_parser_nodes___AType___n_types(variable[0])(variable[0]) /*AType::n_types*/;
2842 /* Register variable[6]: Result */
2843 variable[6] = CALL_abstract_collection___Collection___length(variable[6])(variable[6]) /*List::length*/;
2844 variable[5] = variable[6];
2845 /* Register variable[6]: Result */
2846 variable[6] = TAG_Bool(UNTAG_Int( variable[5] /*arity*/)>UNTAG_Int( TAG_Int(0)));
2847 if (UNTAG_Bool(variable[6])) { /*if*/
2848 /* Register variable[6]: Result */
2849 variable[6] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[5] /*arity*/) /*new Range[Int]*/;
2850 /* Register variable[6]: For iterator */
2851 variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*Range::iterator*/;
2852 while (true) { /*for*/
2853 /* Register variable[7]: For 'is_ok' result */
2854 variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
2855 if (!UNTAG_Bool(variable[7])) break; /*for*/
2856 variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/ /* Ensure var: For item*/;
2857 /* Register variable[8]: Local variable */
2858 variable[8] = variable[7];
2859 /* Register variable[9]: Local variable */
2860 /* Register variable[10]: Result */
2861 variable[10] = CALL_parser_nodes___AType___n_types(variable[0])(variable[0]) /*AType::n_types*/;
2862 /* Register variable[10]: Result */
2863 variable[10] = CALL_abstract_collection___MapRead_____bra(variable[10])(variable[10], variable[8] /*i*/) /*List::[]*/;
2864 variable[9] = variable[10];
2865 /* Register variable[10]: Local variable */
2866 /* Register variable[11]: Result */
2867 variable[11] = CALL_syntax_base___PType___get_stype( variable[9] /*p*/)( variable[9] /*p*/, variable[1] /*v*/) /*PType::get_stype*/;
2868 variable[10] = variable[11];
2869 /* Register variable[11]: Local variable */
2870 /* Register variable[12]: Result */
2871 variable[12] = CALL_genericity___MMLocalClass___get_formal( variable[4] /*local_class*/)( variable[4] /*local_class*/, variable[8] /*i*/) /*MMLocalClass::get_formal*/;
2872 variable[11] = variable[12];
2873 /* Register variable[12]: Result */
2874 variable[12] = CALL_static_type___MMType___is_valid( variable[11] /*b*/)( variable[11] /*b*/) /*MMTypeFormal::is_valid*/;
2875 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[12])))) { /*if*/
2876 goto return_label131;
2877 }
2878 /* Register variable[12]: Local variable */
2879 /* Register variable[13]: Result */
2880 variable[13] = CALL_type_formal___MMTypeFormal___bound( variable[11] /*b*/)( variable[11] /*b*/) /*MMTypeFormal::bound*/;
2881 variable[12] = variable[13];
2882 /* Register variable[13]: Result */
2883 variable[13] = CALL_static_type___MMType___adapt_to( variable[12] /*bt*/)( variable[12] /*bt*/, variable[3] /*st*/) /*MMType::adapt_to*/;
2884 variable[12] = variable[13] /*bt=*/;
2885 CALL_syntax_base___AbsSyntaxVisitor___check_conform( variable[1] /*v*/)( variable[1] /*v*/, variable[9] /*p*/, variable[10] /*pt*/, variable[12] /*bt*/) /*AbsSyntaxVisitor::check_conform*/;
2886 continue_132: while(0);
2887 CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
2888 }
2889 break_132: while(0);
2890 }
2891 return_label131: while(false);
2892 tracehead = trace.prev;
2893 return;
2894 }
2895 val_t syntax_base___PExpr___is_typed(val_t self) {
2896 struct trace_t trace = {NULL, NULL, 648, LOCATE_syntax_base___PExpr___is_typed};
2897 val_t *variable = NULL;
2898 struct WBT_ **closurevariable = NULL;
2899 trace.prev = tracehead; tracehead = &trace;
2900 trace.file = LOCATE_syntax_base;
2901 fprintf(stderr, "Deferred method called");
2902 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 648);
2903 nit_exit(1);
2904 tracehead = trace.prev;
2905 return NIT_NULL;
2906 }
2907 val_t syntax_base___PExpr___is_statement(val_t self) {
2908 struct trace_t trace = {NULL, NULL, 653, LOCATE_syntax_base___PExpr___is_statement};
2909 val_t *variable = NULL;
2910 struct WBT_ **closurevariable = NULL;
2911 trace.prev = tracehead; tracehead = &trace;
2912 trace.file = LOCATE_syntax_base;
2913 fprintf(stderr, "Deferred method called");
2914 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 653);
2915 nit_exit(1);
2916 tracehead = trace.prev;
2917 return NIT_NULL;
2918 }
2919 val_t syntax_base___PExpr___stype(val_t self) {
2920 struct trace_t trace = {NULL, NULL, 657, LOCATE_syntax_base___PExpr___stype};
2921 val_t *variable = NULL;
2922 struct WBT_ **closurevariable = NULL;
2923 trace.prev = tracehead; tracehead = &trace;
2924 trace.file = LOCATE_syntax_base;
2925 fprintf(stderr, "Deferred method called");
2926 fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 657);
2927 nit_exit(1);
2928 tracehead = trace.prev;
2929 return NIT_NULL;
2930 }
2931 val_t syntax_base___AVardeclExpr___variable(val_t self) {
2932 struct trace_t trace = {NULL, NULL, 663, LOCATE_syntax_base___AVardeclExpr___variable};
2933 val_t *variable = NULL;
2934 struct WBT_ **closurevariable = NULL;
2935 trace.prev = tracehead; tracehead = &trace;
2936 trace.file = LOCATE_syntax_base;
2937 tracehead = trace.prev;
2938 return ATTR_syntax_base___AVardeclExpr____variable( self) /*AVardeclExpr::_variable*/;
2939 }
2940 void syntax_base___AVardeclExpr___variable__eq(val_t self, val_t param0) {
2941 struct trace_t trace = {NULL, NULL, 663, LOCATE_syntax_base___AVardeclExpr___variable__eq};
2942 val_t *variable = NULL;
2943 struct WBT_ **closurevariable = NULL;
2944 trace.prev = tracehead; tracehead = &trace;
2945 trace.file = LOCATE_syntax_base;
2946 ATTR_syntax_base___AVardeclExpr____variable( self) /*AVardeclExpr::_variable*/ = param0;
2947 tracehead = trace.prev;
2948 return;
2949 }
2950 val_t syntax_base___AForExpr___variable(val_t self) {
2951 struct trace_t trace = {NULL, NULL, 668, LOCATE_syntax_base___AForExpr___variable};
2952 val_t *variable = NULL;
2953 struct WBT_ **closurevariable = NULL;
2954 trace.prev = tracehead; tracehead = &trace;
2955 trace.file = LOCATE_syntax_base;
2956 tracehead = trace.prev;
2957 return ATTR_syntax_base___AForExpr____variable( self) /*AForExpr::_variable*/;
2958 }
2959 void syntax_base___AForExpr___variable__eq(val_t self, val_t param0) {
2960 struct trace_t trace = {NULL, NULL, 668, LOCATE_syntax_base___AForExpr___variable__eq};
2961 val_t *variable = NULL;
2962 struct WBT_ **closurevariable = NULL;
2963 trace.prev = tracehead; tracehead = &trace;
2964 trace.file = LOCATE_syntax_base;
2965 ATTR_syntax_base___AForExpr____variable( self) /*AForExpr::_variable*/ = param0;
2966 tracehead = trace.prev;
2967 return;
2968 }
2969 val_t syntax_base___ASelfExpr___variable(val_t self) {
2970 struct trace_t trace = {NULL, NULL, 673, LOCATE_syntax_base___ASelfExpr___variable};
2971 val_t *variable = NULL;
2972 struct WBT_ **closurevariable = NULL;
2973 trace.prev = tracehead; tracehead = &trace;
2974 trace.file = LOCATE_syntax_base;
2975 tracehead = trace.prev;
2976 return ATTR_syntax_base___ASelfExpr____variable( self) /*ASelfExpr::_variable*/;
2977 }
2978 void syntax_base___ASelfExpr___variable__eq(val_t self, val_t param0) {
2979 struct trace_t trace = {NULL, NULL, 673, LOCATE_syntax_base___ASelfExpr___variable__eq};
2980 val_t *variable = NULL;
2981 struct WBT_ **closurevariable = NULL;
2982 trace.prev = tracehead; tracehead = &trace;
2983 trace.file = LOCATE_syntax_base;
2984 ATTR_syntax_base___ASelfExpr____variable( self) /*ASelfExpr::_variable*/ = param0;
2985 tracehead = trace.prev;
2986 return;
2987 }
2988 val_t syntax_base___AVarFormExpr___variable(val_t self) {
2989 struct trace_t trace = {NULL, NULL, 678, LOCATE_syntax_base___AVarFormExpr___variable};
2990 val_t *variable = NULL;
2991 struct WBT_ **closurevariable = NULL;
2992 trace.prev = tracehead; tracehead = &trace;
2993 trace.file = LOCATE_syntax_base;
2994 tracehead = trace.prev;
2995 return ATTR_syntax_base___AVarFormExpr____variable( self) /*AVarFormExpr::_variable*/;
2996 }
2997 void syntax_base___AVarFormExpr___variable__eq(val_t self, val_t param0) {
2998 struct trace_t trace = {NULL, NULL, 678, LOCATE_syntax_base___AVarFormExpr___variable__eq};
2999 val_t *variable = NULL;
3000 struct WBT_ **closurevariable = NULL;
3001 trace.prev = tracehead; tracehead = &trace;
3002 trace.file = LOCATE_syntax_base;
3003 ATTR_syntax_base___AVarFormExpr____variable( self) /*AVarFormExpr::_variable*/ = param0;
3004 tracehead = trace.prev;
3005 return;
3006 }
3007 val_t syntax_base___AClosureCallExpr___variable(val_t self) {
3008 struct trace_t trace = {NULL, NULL, 683, LOCATE_syntax_base___AClosureCallExpr___variable};
3009 val_t *variable = NULL;
3010 struct WBT_ **closurevariable = NULL;
3011 trace.prev = tracehead; tracehead = &trace;
3012 trace.file = LOCATE_syntax_base;
3013 tracehead = trace.prev;
3014 return ATTR_syntax_base___AClosureCallExpr____variable( self) /*AClosureCallExpr::_variable*/;
3015 }
3016 void syntax_base___AClosureCallExpr___variable__eq(val_t self, val_t param0) {
3017 struct trace_t trace = {NULL, NULL, 683, LOCATE_syntax_base___AClosureCallExpr___variable__eq};
3018 val_t *variable = NULL;
3019 struct WBT_ **closurevariable = NULL;
3020 trace.prev = tracehead; tracehead = &trace;
3021 trace.file = LOCATE_syntax_base;
3022 ATTR_syntax_base___AClosureCallExpr____variable( self) /*AClosureCallExpr::_variable*/ = param0;
3023 tracehead = trace.prev;
3024 return;
3025 }
3026 val_t syntax_base___PClosureDef___closure(val_t self) {
3027 struct trace_t trace = {NULL, NULL, 688, LOCATE_syntax_base___PClosureDef___closure};
3028 val_t *variable = NULL;
3029 struct WBT_ **closurevariable = NULL;
3030 trace.prev = tracehead; tracehead = &trace;
3031 trace.file = LOCATE_syntax_base;
3032 tracehead = trace.prev;
3033 return ATTR_syntax_base___PClosureDef____closure( self) /*PClosureDef::_closure*/;
3034 }
3035 void syntax_base___PClosureDef___closure__eq(val_t self, val_t param0) {
3036 struct trace_t trace = {NULL, NULL, 688, LOCATE_syntax_base___PClosureDef___closure__eq};
3037 val_t *variable = NULL;
3038 struct WBT_ **closurevariable = NULL;
3039 trace.prev = tracehead; tracehead = &trace;
3040 trace.file = LOCATE_syntax_base;
3041 ATTR_syntax_base___PClosureDef____closure( self) /*PClosureDef::_closure*/ = param0;
3042 tracehead = trace.prev;
3043 return;
3044 }
3045 val_t syntax_base___PClosureDef___variables(val_t self) {
3046 struct trace_t trace = {NULL, NULL, 691, LOCATE_syntax_base___PClosureDef___variables};
3047 val_t *variable = NULL;
3048 struct WBT_ **closurevariable = NULL;
3049 trace.prev = tracehead; tracehead = &trace;
3050 trace.file = LOCATE_syntax_base;
3051 tracehead = trace.prev;
3052 return ATTR_syntax_base___PClosureDef____variables( self) /*PClosureDef::_variables*/;
3053 }
3054 void syntax_base___PClosureDef___variables__eq(val_t self, val_t param0) {
3055 struct trace_t trace = {NULL, NULL, 691, LOCATE_syntax_base___PClosureDef___variables__eq};
3056 val_t *variable = NULL;
3057 struct WBT_ **closurevariable = NULL;
3058 trace.prev = tracehead; tracehead = &trace;
3059 trace.file = LOCATE_syntax_base;
3060 ATTR_syntax_base___PClosureDef____variables( self) /*PClosureDef::_variables*/ = param0;
3061 tracehead = trace.prev;
3062 return;
3063 }