1 /* This C file is generated by NIT to compile module abstracttool. */
2 #include "abstracttool._sep.h"
3 void abstracttool___AbstractCompiler___init(val_t self
, int* init_table
) {
4 struct trace_t trace
= {NULL
, NULL
, 28, LOCATE_abstracttool___AbstractCompiler___init
};
6 void **closurevariable
= NULL
;
7 trace
.prev
= tracehead
; tracehead
= &trace
;
8 trace
.file
= LOCATE_abstracttool
;
10 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_AbstractCompiler
].i
]) return;
11 CALL_mmloader___ToolContext___init(variable
[0])(variable
[0], init_table
/*YYY*/) /*ToolContext::init*/;
12 variable
[2] = variable
[0];
13 variable
[3] = NEW_SrcModuleLoader_syntax___SrcModuleLoader___init(); /*new SrcModuleLoader*/
14 CALL_mmloader___ToolContext___register_loader(variable
[2])(variable
[2], variable
[3]) /*ToolContext::register_loader*/;
15 return_label0
: while(false);
16 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_AbstractCompiler
].i
] = 1;
17 tracehead
= trace
.prev
;
20 void abstracttool___AbstractCompiler___exec_cmd_line(val_t self
) {
21 struct trace_t trace
= {NULL
, NULL
, 34, LOCATE_abstracttool___AbstractCompiler___exec_cmd_line
};
23 void **closurevariable
= NULL
;
24 trace
.prev
= tracehead
; tracehead
= &trace
;
25 trace
.file
= LOCATE_abstracttool
;
27 variable
[2] = variable
[0];
28 CALL_mmloader___ToolContext___process_options(variable
[2])(variable
[2]) /*ToolContext::process_options*/;
29 variable
[2] = variable
[0];
30 variable
[2] = CALL_mmloader___ToolContext___opt_help(variable
[2])(variable
[2]) /*ToolContext::opt_help*/;
31 variable
[2] = CALL_opts___Option___value(variable
[2])(variable
[2]) /*Option::value*/;
32 if (UNTAG_Bool(variable
[2])) { /*if*/
33 variable
[2] = variable
[0];
34 variable
[2] = CALL_mmloader___ToolContext___option_context(variable
[2])(variable
[2]) /*ToolContext::option_context*/;
35 CALL_opts___OptionContext___usage(variable
[2])(variable
[2]) /*OptionContext::usage*/;
36 variable
[2] = variable
[0];
37 exit(UNTAG_Int( TAG_Int(0)));
39 variable
[2] = variable
[0];
40 variable
[2] = CALL_mmloader___ToolContext___option_context(variable
[2])(variable
[2]) /*ToolContext::option_context*/;
41 variable
[2] = CALL_opts___OptionContext___rest(variable
[2])(variable
[2]) /*OptionContext::rest*/;
42 variable
[2] = CALL_abstract_collection___Collection___length(variable
[2])(variable
[2]) /*AbstractArray::length*/;
43 variable
[2] = TAG_Bool((variable
[2])==( TAG_Int(0)));
44 if (UNTAG_Bool(variable
[2])) { /*if*/
45 variable
[2] = variable
[0];
46 variable
[2] = CALL_mmloader___ToolContext___option_context(variable
[2])(variable
[2]) /*ToolContext::option_context*/;
47 CALL_opts___OptionContext___usage(variable
[2])(variable
[2]) /*OptionContext::usage*/;
48 variable
[2] = variable
[0];
49 exit(UNTAG_Int( TAG_Int(1)));
51 variable
[3] = variable
[0];
52 variable
[3] = CALL_mmloader___ToolContext___option_context(variable
[3])(variable
[3]) /*ToolContext::option_context*/;
53 variable
[3] = CALL_opts___OptionContext___rest(variable
[3])(variable
[3]) /*OptionContext::rest*/;
54 variable
[2] = variable
[3];
55 variable
[4] = NEW_Array_array___Array___init(); /*new Array[MMModule]*/
56 variable
[3] = variable
[4];
57 variable
[4] = CALL_abstract_collection___Collection___length( variable
[2] /*rest*/)( variable
[2] /*rest*/) /*AbstractArray::length*/;
58 variable
[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable
[4]); /*new Range[Int]*/
59 variable
[4] = variable
[5];
60 variable
[4] = CALL_abstract_collection___Collection___iterator(variable
[4])(variable
[4]) /*Range::iterator*/;
61 while (true) { /*for*/
62 variable
[5] = CALL_abstract_collection___Iterator___is_ok(variable
[4])(variable
[4]) /*Iterator::is_ok*/;
63 if (!UNTAG_Bool(variable
[5])) break; /*for*/
64 variable
[5] = CALL_abstract_collection___Iterator___item(variable
[4])(variable
[4]) /*Iterator::item*/;
65 variable
[6] = variable
[5];
66 variable
[8] = variable
[0];
67 variable
[9] = variable
[2] /*rest*/;
68 variable
[10] = variable
[6] /*i*/;
69 variable
[12] = TAG_Bool(UNTAG_Int( variable
[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
70 variable
[13] = variable
[12];
71 if (UNTAG_Bool(variable
[13])) { /* and */
72 variable
[13] = variable
[9];
73 variable
[13] = ATTR_array___AbstractArray____length(variable
[13]) /*AbstractArray::_length*/;
74 variable
[13] = TAG_Bool(UNTAG_Int( variable
[10] /*index*/)<UNTAG_Int(variable
[13]));
76 variable
[12] = variable
[13];
77 if (!UNTAG_Bool(variable
[12])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_abstracttool
, 229); nit_exit(1);}
78 variable
[12] = variable
[9];
79 variable
[12] = ATTR_array___Array____items(variable
[12]) /*Array::_items*/;
80 variable
[12] = UNBOX_NativeArray(variable
[12])[UNTAG_Int( variable
[10] /*index*/)];
81 variable
[11] = variable
[12];
83 return_label3
: while(false);
84 variable
[9] = variable
[11];
85 variable
[8] = CALL_mmloader___ToolContext___get_module_from_filename(variable
[8])(variable
[8], variable
[9]) /*ToolContext::get_module_from_filename*/;
86 variable
[7] = variable
[8];
87 CALL_abstract_collection___SimpleCollection___add( variable
[3] /*to_do*/)( variable
[3] /*to_do*/, variable
[7] /*mod*/) /*AbstractArray::add*/;
89 CALL_abstract_collection___Iterator___next(variable
[4])(variable
[4]) /*Iterator::next*/;
92 variable
[4] = variable
[0];
93 variable
[4] = CALL_mmloader___ToolContext___opt_log(variable
[4])(variable
[4]) /*ToolContext::opt_log*/;
94 variable
[4] = CALL_opts___Option___value(variable
[4])(variable
[4]) /*Option::value*/;
95 if (UNTAG_Bool(variable
[4])) { /*if*/
96 variable
[4] = variable
[0];
97 CALL_abstracttool___AbstractCompiler___dump_context_info(variable
[4])(variable
[4]) /*AbstractCompiler::dump_context_info*/;
99 variable
[4] = CALL_abstract_collection___Collection___is_empty( variable
[3] /*to_do*/)( variable
[3] /*to_do*/) /*AbstractArray::is_empty*/;
100 variable
[4] = TAG_Bool(!UNTAG_Bool(variable
[4]));
101 if (UNTAG_Bool(variable
[4])) { /* and */
102 variable
[4] = variable
[0];
103 variable
[4] = CALL_mmloader___ToolContext___opt_only_metamodel(variable
[4])(variable
[4]) /*ToolContext::opt_only_metamodel*/;
104 variable
[4] = CALL_opts___Option___value(variable
[4])(variable
[4]) /*Option::value*/;
105 variable
[4] = TAG_Bool(!UNTAG_Bool(variable
[4]));
107 variable
[5] = variable
[4];
108 if (UNTAG_Bool(variable
[5])) { /* and */
109 variable
[5] = variable
[0];
110 variable
[5] = CALL_mmloader___ToolContext___opt_only_parse(variable
[5])(variable
[5]) /*ToolContext::opt_only_parse*/;
111 variable
[5] = CALL_opts___Option___value(variable
[5])(variable
[5]) /*Option::value*/;
112 variable
[5] = TAG_Bool(!UNTAG_Bool(variable
[5]));
114 variable
[4] = variable
[5];
115 if (UNTAG_Bool(variable
[4])) { /*if*/
116 variable
[4] = variable
[0];
117 CALL_abstracttool___AbstractCompiler___perform_work(variable
[4])(variable
[4], variable
[3] /*to_do*/) /*AbstractCompiler::perform_work*/;
119 return_label1
: while(false);
120 tracehead
= trace
.prev
;
123 void abstracttool___AbstractCompiler___perform_work(val_t self
, val_t param0
) {
124 struct trace_t trace
= {NULL
, NULL
, 63, LOCATE_abstracttool___AbstractCompiler___perform_work
};
125 val_t
*variable
= NULL
;
126 void **closurevariable
= NULL
;
127 trace
.prev
= tracehead
; tracehead
= &trace
;
128 trace
.file
= LOCATE_abstracttool
;
129 fprintf(stderr
, "Deferred method called");
130 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstracttool
, 63);
132 tracehead
= trace
.prev
;
135 void abstracttool___AbstractCompiler___dump_context_info(val_t self
) {
136 struct trace_t trace
= {NULL
, NULL
, 65, LOCATE_abstracttool___AbstractCompiler___dump_context_info
};
138 void **closurevariable
= NULL
;
139 trace
.prev
= tracehead
; tracehead
= &trace
;
140 trace
.file
= LOCATE_abstracttool
;
142 variable
[2] = variable
[0];
143 variable
[2] = CALL_abstractmetamodel___MMContext___module_hierarchy(variable
[2])(variable
[2]) /*MMContext::module_hierarchy*/;
144 variable
[2] = CALL_abstract_collection___Collection___iterator(variable
[2])(variable
[2]) /*PartialOrder::iterator*/;
145 while (true) { /*for*/
146 variable
[3] = CALL_abstract_collection___Iterator___is_ok(variable
[2])(variable
[2]) /*Iterator::is_ok*/;
147 if (!UNTAG_Bool(variable
[3])) break; /*for*/
148 variable
[3] = CALL_abstract_collection___Iterator___item(variable
[2])(variable
[2]) /*Iterator::item*/;
149 variable
[4] = variable
[3];
150 CALL_abstracttool___MMModule___dump_module_info( variable
[4] /*mod*/)( variable
[4] /*mod*/) /*MMModule::dump_module_info*/;
151 continue_5
: while(0);
152 CALL_abstract_collection___Iterator___next(variable
[2])(variable
[2]) /*Iterator::next*/;
155 variable
[3] = NEW_Array_array___Array___init(); /*new Array[MMModule]*/
156 variable
[2] = variable
[3];
157 variable
[3] = variable
[0];
158 variable
[3] = CALL_abstractmetamodel___MMContext___module_hierarchy(variable
[3])(variable
[3]) /*MMContext::module_hierarchy*/;
159 CALL_abstract_collection___SimpleCollection___add_all( variable
[2] /*tab*/)( variable
[2] /*tab*/, variable
[3]) /*SimpleCollection::add_all*/;
160 variable
[4] = variable
[0];
161 variable
[4] = CALL_abstractmetamodel___MMContext___module_hierarchy(variable
[4])(variable
[4]) /*MMContext::module_hierarchy*/;
162 variable
[4] = CALL_partial_order___PartialOrder___select_smallests(variable
[4])(variable
[4], variable
[2] /*tab*/) /*PartialOrder::select_smallests*/;
163 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
164 variable
[4] = CALL_string___Collection___join(variable
[4])(variable
[4], variable
[5]) /*Collection::join*/;
165 variable
[3] = variable
[4];
166 variable
[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
167 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
168 variable
[7] = variable
[6];
169 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[7]) /*AbstractArray::add*/;
170 variable
[8] = variable
[3] /*name*/;
171 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[8]) /*AbstractArray::add*/;
172 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString(".full_class_hierarchy.new.dot"), TAG_Int(29)); /*new String*/
173 variable
[10] = variable
[9];
174 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[10]) /*AbstractArray::add*/;
175 variable
[5] = CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/;
176 variable
[6] = NEW_OFStream_file___OFStream___open(variable
[5]); /*new OFStream*/
177 variable
[5] = variable
[6];
178 variable
[4] = variable
[5];
179 variable
[5] = variable
[0];
180 variable
[5] = CALL_abstractmetamodel___MMContext___class_hierarchy(variable
[5])(variable
[5]) /*MMContext::class_hierarchy*/;
181 variable
[5] = CALL_partial_order___PartialOrder___to_dot(variable
[5])(variable
[5]) /*PartialOrder::to_dot*/;
182 CALL_stream___OStream___write( variable
[4] /*f*/)( variable
[4] /*f*/, variable
[5]) /*OFStream::write*/;
183 CALL_stream___IOS___close( variable
[4] /*f*/)( variable
[4] /*f*/) /*OFStream::close*/;
184 variable
[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
185 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
186 variable
[7] = variable
[6];
187 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[7]) /*AbstractArray::add*/;
188 variable
[8] = variable
[3] /*name*/;
189 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[8]) /*AbstractArray::add*/;
190 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString(".module_hierarchy.new.dot"), TAG_Int(25)); /*new String*/
191 variable
[10] = variable
[9];
192 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[10]) /*AbstractArray::add*/;
193 variable
[5] = CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/;
194 variable
[6] = NEW_OFStream_file___OFStream___open(variable
[5]); /*new OFStream*/
195 variable
[5] = variable
[6];
196 variable
[4] = variable
[5] /*f=*/;
197 variable
[5] = variable
[0];
198 variable
[5] = CALL_abstractmetamodel___MMContext___module_hierarchy(variable
[5])(variable
[5]) /*MMContext::module_hierarchy*/;
199 variable
[5] = CALL_partial_order___PartialOrder___to_dot(variable
[5])(variable
[5]) /*PartialOrder::to_dot*/;
200 CALL_stream___OStream___write( variable
[4] /*f*/)( variable
[4] /*f*/, variable
[5]) /*OFStream::write*/;
201 CALL_stream___IOS___close( variable
[4] /*f*/)( variable
[4] /*f*/) /*OFStream::close*/;
202 return_label4
: while(false);
203 tracehead
= trace
.prev
;
206 void abstracttool___MMModule___dump_module_info(val_t self
) {
207 struct trace_t trace
= {NULL
, NULL
, 85, LOCATE_abstracttool___MMModule___dump_module_info
};
209 void **closurevariable
= NULL
;
210 trace
.prev
= tracehead
; tracehead
= &trace
;
211 trace
.file
= LOCATE_abstracttool
;
213 variable
[3] = variable
[0];
214 variable
[3] = CALL_mmloader___MMModule___filename(variable
[3])(variable
[3]) /*MMModule::filename*/;
215 variable
[3] = CALL_file___String___file_path(variable
[3])(variable
[3]) /*String::file_path*/;
216 variable
[2] = variable
[3];
217 variable
[4] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
218 variable
[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
219 variable
[6] = variable
[5];
220 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[6]) /*AbstractArray::add*/;
221 variable
[7] = variable
[2] /*p*/;
222 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[7]) /*AbstractArray::add*/;
223 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
224 variable
[9] = variable
[8];
225 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[9]) /*AbstractArray::add*/;
226 variable
[10] = variable
[0];
227 variable
[10] = CALL_abstractmetamodel___MMModule___name(variable
[10])(variable
[10]) /*MMModule::name*/;
228 variable
[11] = variable
[10];
229 variable
[11] = CALL_string___Object___to_s(variable
[11])(variable
[11]) /*Object::to_s*/;
230 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[11]) /*AbstractArray::add*/;
231 variable
[12] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
232 variable
[13] = variable
[12];
233 CALL_abstract_collection___SimpleCollection___add(variable
[4])(variable
[4], variable
[13]) /*AbstractArray::add*/;
234 variable
[4] = CALL_string___Object___to_s(variable
[4])(variable
[4]) /*Object::to_s*/;
235 variable
[3] = variable
[4];
236 variable
[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
237 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
238 variable
[7] = variable
[6];
239 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[7]) /*AbstractArray::add*/;
240 variable
[8] = variable
[3] /*fname*/;
241 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[8]) /*AbstractArray::add*/;
242 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString(".class_hierarchy.new.dot"), TAG_Int(24)); /*new String*/
243 variable
[10] = variable
[9];
244 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[10]) /*AbstractArray::add*/;
245 variable
[5] = CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/;
246 variable
[6] = NEW_OFStream_file___OFStream___open(variable
[5]); /*new OFStream*/
247 variable
[5] = variable
[6];
248 variable
[4] = variable
[5];
249 variable
[5] = variable
[0];
250 variable
[5] = CALL_abstractmetamodel___MMModule___class_specialization_hierarchy(variable
[5])(variable
[5]) /*MMModule::class_specialization_hierarchy*/;
251 variable
[5] = CALL_partial_order___PartialOrder___to_dot(variable
[5])(variable
[5]) /*PartialOrder::to_dot*/;
252 CALL_stream___OStream___write( variable
[4] /*f*/)( variable
[4] /*f*/, variable
[5]) /*OFStream::write*/;
253 CALL_stream___IOS___close( variable
[4] /*f*/)( variable
[4] /*f*/) /*OFStream::close*/;
254 variable
[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
255 variable
[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
256 variable
[7] = variable
[6];
257 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[7]) /*AbstractArray::add*/;
258 variable
[8] = variable
[3] /*fname*/;
259 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[8]) /*AbstractArray::add*/;
260 variable
[9] = NEW_String_string___String___with_native(BOX_NativeString(".properties.log"), TAG_Int(15)); /*new String*/
261 variable
[10] = variable
[9];
262 CALL_abstract_collection___SimpleCollection___add(variable
[5])(variable
[5], variable
[10]) /*AbstractArray::add*/;
263 variable
[5] = CALL_string___Object___to_s(variable
[5])(variable
[5]) /*Object::to_s*/;
264 variable
[6] = NEW_OFStream_file___OFStream___open(variable
[5]); /*new OFStream*/
265 variable
[5] = variable
[6];
266 variable
[4] = variable
[5] /*f=*/;
267 variable
[5] = variable
[0];
268 variable
[5] = CALL_abstractmetamodel___MMModule___local_classes(variable
[5])(variable
[5]) /*MMModule::local_classes*/;
269 variable
[5] = CALL_abstract_collection___Collection___iterator(variable
[5])(variable
[5]) /*AbstractArray::iterator*/;
270 while (true) { /*for*/
271 variable
[6] = CALL_abstract_collection___Iterator___is_ok(variable
[5])(variable
[5]) /*ArrayIterator::is_ok*/;
272 if (!UNTAG_Bool(variable
[6])) break; /*for*/
273 variable
[6] = CALL_abstract_collection___Iterator___item(variable
[5])(variable
[5]) /*ArrayIterator::item*/;
274 variable
[7] = variable
[6];
275 CALL_abstracttool___MMLocalClass___dump_properties( variable
[7] /*cla*/)( variable
[7] /*cla*/, variable
[4] /*f*/) /*MMLocalClass::dump_properties*/;
276 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
277 CALL_stream___OStream___write( variable
[4] /*f*/)( variable
[4] /*f*/, variable
[8]) /*OFStream::write*/;
278 continue_7
: while(0);
279 CALL_abstract_collection___Iterator___next(variable
[5])(variable
[5]) /*ArrayIterator::next*/;
282 CALL_stream___IOS___close( variable
[4] /*f*/)( variable
[4] /*f*/) /*OFStream::close*/;
283 return_label6
: while(false);
284 tracehead
= trace
.prev
;
287 void abstracttool___MMLocalClass___dump_properties(val_t self
, val_t param0
) {
288 struct trace_t trace
= {NULL
, NULL
, 103, LOCATE_abstracttool___MMLocalClass___dump_properties
};
290 void **closurevariable
= NULL
;
291 trace
.prev
= tracehead
; tracehead
= &trace
;
292 trace
.file
= LOCATE_abstracttool
;
294 variable
[1] = param0
;
295 variable
[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
296 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString("class "), TAG_Int(6)); /*new String*/
297 variable
[5] = variable
[4];
298 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[5]) /*AbstractArray::add*/;
299 variable
[6] = variable
[0];
300 variable
[7] = variable
[6];
301 variable
[7] = CALL_string___Object___to_s(variable
[7])(variable
[7]) /*Object::to_s*/;
302 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[7]) /*AbstractArray::add*/;
303 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
304 variable
[9] = variable
[8];
305 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[9]) /*AbstractArray::add*/;
306 variable
[3] = CALL_string___Object___to_s(variable
[3])(variable
[3]) /*Object::to_s*/;
307 CALL_stream___OStream___write( variable
[1] /*file*/)( variable
[1] /*file*/, variable
[3]) /*OStream::write*/;
308 variable
[3] = variable
[0];
309 variable
[3] = CALL_abstractmetamodel___MMLocalClass___global_properties(variable
[3])(variable
[3]) /*MMLocalClass::global_properties*/;
310 variable
[3] = CALL_abstract_collection___Collection___iterator(variable
[3])(variable
[3]) /*Collection::iterator*/;
311 while (true) { /*for*/
312 variable
[4] = CALL_abstract_collection___Iterator___is_ok(variable
[3])(variable
[3]) /*Iterator::is_ok*/;
313 if (!UNTAG_Bool(variable
[4])) break; /*for*/
314 variable
[4] = CALL_abstract_collection___Iterator___item(variable
[3])(variable
[3]) /*Iterator::item*/;
315 variable
[5] = variable
[4];
316 variable
[7] = variable
[0];
317 variable
[7] = CALL_abstractmetamodel___MMLocalClass_____bra(variable
[7])(variable
[7], variable
[5] /*p*/) /*MMLocalClass::[]*/;
318 variable
[6] = variable
[7];
319 variable
[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
320 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("\t"), TAG_Int(1)); /*new String*/
321 variable
[9] = variable
[8];
322 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[9]) /*AbstractArray::add*/;
323 variable
[10] = variable
[6] /*lp*/;
324 variable
[10] = CALL_string___Object___to_s(variable
[10])(variable
[10]) /*Object::to_s*/;
325 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[10]) /*AbstractArray::add*/;
326 variable
[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
327 variable
[12] = variable
[11];
328 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[12]) /*AbstractArray::add*/;
329 variable
[13] = variable
[0];
330 variable
[13] = CALL_static_type___MMLocalClass___get_type(variable
[13])(variable
[13]) /*MMLocalClass::get_type*/;
331 variable
[13] = CALL_static_type___MMLocalProperty___signature_for( variable
[6] /*lp*/)( variable
[6] /*lp*/, variable
[13]) /*MMLocalProperty::signature_for*/;
332 variable
[14] = variable
[13];
333 variable
[14] = CALL_string___Object___to_s(variable
[14])(variable
[14]) /*Object::to_s*/;
334 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[14]) /*AbstractArray::add*/;
335 variable
[15] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
336 variable
[16] = variable
[15];
337 CALL_abstract_collection___SimpleCollection___add(variable
[7])(variable
[7], variable
[16]) /*AbstractArray::add*/;
338 variable
[7] = CALL_string___Object___to_s(variable
[7])(variable
[7]) /*Object::to_s*/;
339 CALL_stream___OStream___write( variable
[1] /*file*/)( variable
[1] /*file*/, variable
[7]) /*OStream::write*/;
340 continue_9
: while(0);
341 CALL_abstract_collection___Iterator___next(variable
[3])(variable
[3]) /*Iterator::next*/;
344 variable
[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
345 variable
[4] = NEW_String_string___String___with_native(BOX_NativeString("end # "), TAG_Int(6)); /*new String*/
346 variable
[5] = variable
[4];
347 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[5]) /*AbstractArray::add*/;
348 variable
[6] = variable
[0];
349 variable
[7] = variable
[6];
350 variable
[7] = CALL_string___Object___to_s(variable
[7])(variable
[7]) /*Object::to_s*/;
351 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[7]) /*AbstractArray::add*/;
352 variable
[8] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
353 variable
[9] = variable
[8];
354 CALL_abstract_collection___SimpleCollection___add(variable
[3])(variable
[3], variable
[9]) /*AbstractArray::add*/;
355 variable
[3] = CALL_string___Object___to_s(variable
[3])(variable
[3]) /*Object::to_s*/;
356 CALL_stream___OStream___write( variable
[1] /*file*/)( variable
[1] /*file*/, variable
[3]) /*OStream::write*/;
357 return_label8
: while(false);
358 tracehead
= trace
.prev
;