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 trace
.prev
= tracehead
; tracehead
= &trace
;
7 trace
.file
= LOCATE_abstracttool
;
8 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_AbstractCompiler
].i
]) return;
9 ((mmloader___ToolContext___init_t
)CALL( self
,COLOR_mmloader___ToolContext___init
))( self
, init_table
/*YYY*/) /*ToolContext::init*/;
10 variable0
= NEW_syntax___SrcModuleLoader___init(); /*new SrcModuleLoader*/
11 ((mmloader___ToolContext___register_loader_t
)CALL( self
,COLOR_mmloader___ToolContext___register_loader
))( self
, variable0
) /*ToolContext::register_loader*/;
12 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_AbstractCompiler
].i
] = 1;
13 tracehead
= trace
.prev
;
16 void abstracttool___AbstractCompiler___exec_cmd_line(val_t self
) {
17 struct trace_t trace
= {NULL
, NULL
, 34, LOCATE_abstracttool___AbstractCompiler___exec_cmd_line
};
26 trace
.prev
= tracehead
; tracehead
= &trace
;
27 trace
.file
= LOCATE_abstracttool
;
28 ((mmloader___ToolContext___process_options_t
)CALL( self
,COLOR_mmloader___ToolContext___process_options
))( self
) /*ToolContext::process_options*/;
29 variable0
= ((mmloader___ToolContext___opt_help_t
)CALL( self
,COLOR_mmloader___ToolContext___opt_help
))( self
) /*ToolContext::opt_help*/;
30 variable0
= ((opts___Option___value_t
)CALL(variable0
,COLOR_opts___Option___value
))(variable0
) /*Option::value*/;
31 if (UNTAG_Bool(variable0
)) { /*if*/
32 variable0
= ((mmloader___ToolContext___option_context_t
)CALL( self
,COLOR_mmloader___ToolContext___option_context
))( self
) /*ToolContext::option_context*/;
33 ((opts___OptionContext___usage_t
)CALL(variable0
,COLOR_opts___OptionContext___usage
))(variable0
) /*OptionContext::usage*/;
34 exit(UNTAG_Int( TAG_Int(0)));
36 variable0
= ((mmloader___ToolContext___option_context_t
)CALL( self
,COLOR_mmloader___ToolContext___option_context
))( self
) /*ToolContext::option_context*/;
37 variable0
= ((opts___OptionContext___rest_t
)CALL(variable0
,COLOR_opts___OptionContext___rest
))(variable0
) /*OptionContext::rest*/;
38 variable0
= ((array___AbstractArray___length_t
)CALL(variable0
,COLOR_abstract_collection___Collection___length
))(variable0
) /*AbstractArray::length*/;
39 variable0
= TAG_Bool((variable0
)==( TAG_Int(0)));
40 if (UNTAG_Bool(variable0
)) { /*if*/
41 variable0
= ((mmloader___ToolContext___option_context_t
)CALL( self
,COLOR_mmloader___ToolContext___option_context
))( self
) /*ToolContext::option_context*/;
42 ((opts___OptionContext___usage_t
)CALL(variable0
,COLOR_opts___OptionContext___usage
))(variable0
) /*OptionContext::usage*/;
43 exit(UNTAG_Int( TAG_Int(1)));
45 variable1
= ((mmloader___ToolContext___option_context_t
)CALL( self
,COLOR_mmloader___ToolContext___option_context
))( self
) /*ToolContext::option_context*/;
46 variable1
= ((opts___OptionContext___rest_t
)CALL(variable1
,COLOR_opts___OptionContext___rest
))(variable1
) /*OptionContext::rest*/;
47 variable0
= variable1
;
48 variable2
= NEW_array___Array___init(); /*new Array[E]*/
49 variable1
= variable2
;
50 variable2
= ((array___AbstractArray___length_t
)CALL( variable0
/*rest*/,COLOR_abstract_collection___Collection___length
))( variable0
/*rest*/) /*AbstractArray::length*/;
51 variable3
= NEW_range___Range___without_last( TAG_Int(0), variable2
); /*new Range[E]*/
52 variable2
= variable3
;
53 variable2
= ((range___Range___iterator_t
)CALL(variable2
,COLOR_abstract_collection___Collection___iterator
))(variable2
) /*Range::iterator*/;
54 while (true) { /*for*/
55 variable3
= ((abstract_collection___Iterator___is_ok_t
)CALL(variable2
,COLOR_abstract_collection___Iterator___is_ok
))(variable2
) /*Iterator::is_ok*/;
56 if (!UNTAG_Bool(variable3
)) break; /*for*/
57 variable3
= ((abstract_collection___Iterator___item_t
)CALL(variable2
,COLOR_abstract_collection___Iterator___item
))(variable2
) /*Iterator::item*/;
58 variable5
= variable3
/*i*/;
59 variable6
= TAG_Bool(UNTAG_Int( variable5
/*index*/)>=UNTAG_Int( TAG_Int(0)));
60 variable7
= variable6
;
61 if (UNTAG_Bool(variable7
)) { /* and */
62 variable7
= ATTR_array___AbstractArray____length( variable0
/*rest*/) /*AbstractArray::_length*/;
63 variable7
= TAG_Bool(UNTAG_Int( variable5
/*index*/)<UNTAG_Int(variable7
));
65 variable6
= variable7
;
66 if (!UNTAG_Bool(variable6
)) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_abstracttool
, 229); nit_exit(1);}
67 variable6
= ATTR_array___Array____items( variable0
/*rest*/) /*Array::_items*/;
68 variable6
= UNBOX_NativeArray(variable6
)[UNTAG_Int( variable5
/*index*/)];
70 return_label3
: while(false);
71 variable5
= variable6
;
72 variable5
= ((mmloader___ToolContext___get_module_from_filename_t
)CALL( self
,COLOR_mmloader___ToolContext___get_module_from_filename
))( self
, variable5
) /*ToolContext::get_module_from_filename*/;
73 variable4
= variable5
;
74 ((array___AbstractArray___add_t
)CALL( variable1
/*to_do*/,COLOR_abstract_collection___SimpleCollection___add
))( variable1
/*to_do*/, variable4
/*mod*/) /*AbstractArray::add*/;
76 ((abstract_collection___Iterator___next_t
)CALL(variable2
,COLOR_abstract_collection___Iterator___next
))(variable2
) /*Iterator::next*/;
79 variable2
= ((mmloader___ToolContext___opt_log_t
)CALL( self
,COLOR_mmloader___ToolContext___opt_log
))( self
) /*ToolContext::opt_log*/;
80 variable2
= ((opts___Option___value_t
)CALL(variable2
,COLOR_opts___Option___value
))(variable2
) /*Option::value*/;
81 if (UNTAG_Bool(variable2
)) { /*if*/
82 ((abstracttool___AbstractCompiler___dump_context_info_t
)CALL( self
,COLOR_abstracttool___AbstractCompiler___dump_context_info
))( self
) /*AbstractCompiler::dump_context_info*/;
84 variable2
= ((array___AbstractArray___is_empty_t
)CALL( variable1
/*to_do*/,COLOR_abstract_collection___Collection___is_empty
))( variable1
/*to_do*/) /*AbstractArray::is_empty*/;
85 variable2
= TAG_Bool(!UNTAG_Bool(variable2
));
86 if (UNTAG_Bool(variable2
)) { /* and */
87 variable2
= ((mmloader___ToolContext___opt_only_metamodel_t
)CALL( self
,COLOR_mmloader___ToolContext___opt_only_metamodel
))( self
) /*ToolContext::opt_only_metamodel*/;
88 variable2
= ((opts___Option___value_t
)CALL(variable2
,COLOR_opts___Option___value
))(variable2
) /*Option::value*/;
89 variable2
= TAG_Bool(!UNTAG_Bool(variable2
));
91 if (UNTAG_Bool(variable2
)) { /*if*/
92 ((abstracttool___AbstractCompiler___perform_work_t
)CALL( self
,COLOR_abstracttool___AbstractCompiler___perform_work
))( self
, variable1
/*to_do*/) /*AbstractCompiler::perform_work*/;
94 tracehead
= trace
.prev
;
97 void abstracttool___AbstractCompiler___perform_work(val_t self
, val_t param0
) {
98 struct trace_t trace
= {NULL
, NULL
, 63, LOCATE_abstracttool___AbstractCompiler___perform_work
};
99 trace
.prev
= tracehead
; tracehead
= &trace
;
100 trace
.file
= LOCATE_abstracttool
;
101 fprintf(stderr
, "Deferred method %s called");
102 fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_abstracttool
, 63);
104 tracehead
= trace
.prev
;
107 void abstracttool___AbstractCompiler___dump_context_info(val_t self
) {
108 struct trace_t trace
= {NULL
, NULL
, 65, LOCATE_abstracttool___AbstractCompiler___dump_context_info
};
118 trace
.prev
= tracehead
; tracehead
= &trace
;
119 trace
.file
= LOCATE_abstracttool
;
120 variable0
= ((abstractmetamodel___MMContext___module_hierarchy_t
)CALL( self
,COLOR_abstractmetamodel___MMContext___module_hierarchy
))( self
) /*MMContext::module_hierarchy*/;
121 variable0
= ((partial_order___PartialOrder___iterator_t
)CALL(variable0
,COLOR_abstract_collection___Collection___iterator
))(variable0
) /*PartialOrder::iterator*/;
122 while (true) { /*for*/
123 variable1
= ((abstract_collection___Iterator___is_ok_t
)CALL(variable0
,COLOR_abstract_collection___Iterator___is_ok
))(variable0
) /*Iterator::is_ok*/;
124 if (!UNTAG_Bool(variable1
)) break; /*for*/
125 variable1
= ((abstract_collection___Iterator___item_t
)CALL(variable0
,COLOR_abstract_collection___Iterator___item
))(variable0
) /*Iterator::item*/;
126 ((abstracttool___MMModule___dump_module_info_t
)CALL( variable1
/*mod*/,COLOR_abstracttool___MMModule___dump_module_info
))( variable1
/*mod*/) /*MMModule::dump_module_info*/;
127 continue_5
: while(0);
128 ((abstract_collection___Iterator___next_t
)CALL(variable0
,COLOR_abstract_collection___Iterator___next
))(variable0
) /*Iterator::next*/;
131 variable1
= NEW_array___Array___init(); /*new Array[E]*/
132 variable0
= variable1
;
133 variable1
= ((abstractmetamodel___MMContext___module_hierarchy_t
)CALL( self
,COLOR_abstractmetamodel___MMContext___module_hierarchy
))( self
) /*MMContext::module_hierarchy*/;
134 ((abstract_collection___SimpleCollection___add_all_t
)CALL( variable0
/*tab*/,COLOR_abstract_collection___SimpleCollection___add_all
))( variable0
/*tab*/, variable1
) /*SimpleCollection::add_all*/;
135 variable2
= ((abstractmetamodel___MMContext___module_hierarchy_t
)CALL( self
,COLOR_abstractmetamodel___MMContext___module_hierarchy
))( self
) /*MMContext::module_hierarchy*/;
136 variable2
= ((partial_order___PartialOrder___select_smallests_t
)CALL(variable2
,COLOR_partial_order___PartialOrder___select_smallests
))(variable2
, variable0
/*tab*/) /*PartialOrder::select_smallests*/;
137 variable3
= NEW_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
138 variable2
= ((string___Collection___join_t
)CALL(variable2
,COLOR_string___Collection___join
))(variable2
, variable3
) /*Collection::join*/;
139 variable1
= variable2
;
140 variable3
= NEW_string___String___init(); /*new String*/
141 variable4
= NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
142 variable5
= variable4
;
143 ((string___String___append_t
)CALL(variable3
,COLOR_abstract_collection___IndexedCollection___append
))(variable3
, variable5
) /*String::append*/;
144 variable6
= variable1
/*name*/;
145 ((string___String___append_t
)CALL(variable3
,COLOR_abstract_collection___IndexedCollection___append
))(variable3
, variable6
) /*String::append*/;
146 variable7
= NEW_string___String___with_native(BOX_NativeString(".full_class_hierarchy.new.dot"), TAG_Int(29)); /*new String*/
147 variable8
= variable7
;
148 ((string___String___append_t
)CALL(variable3
,COLOR_abstract_collection___IndexedCollection___append
))(variable3
, variable8
) /*String::append*/;
149 variable4
= NEW_file___OFStream___open(variable3
); /*new OFStream*/
150 variable3
= variable4
;
151 variable2
= variable3
;
152 variable3
= ((abstractmetamodel___MMContext___class_hierarchy_t
)CALL( self
,COLOR_abstractmetamodel___MMContext___class_hierarchy
))( self
) /*MMContext::class_hierarchy*/;
153 variable3
= ((partial_order___PartialOrder___to_dot_t
)CALL(variable3
,COLOR_partial_order___PartialOrder___to_dot
))(variable3
) /*PartialOrder::to_dot*/;
154 ((file___OFStream___write_t
)CALL( variable2
/*f*/,COLOR_stream___OStream___write
))( variable2
/*f*/, variable3
) /*OFStream::write*/;
155 ((file___OFStream___close_t
)CALL( variable2
/*f*/,COLOR_stream___IOS___close
))( variable2
/*f*/) /*OFStream::close*/;
156 variable3
= NEW_string___String___init(); /*new String*/
157 variable4
= NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
158 variable5
= variable4
;
159 ((string___String___append_t
)CALL(variable3
,COLOR_abstract_collection___IndexedCollection___append
))(variable3
, variable5
) /*String::append*/;
160 variable6
= variable1
/*name*/;
161 ((string___String___append_t
)CALL(variable3
,COLOR_abstract_collection___IndexedCollection___append
))(variable3
, variable6
) /*String::append*/;
162 variable7
= NEW_string___String___with_native(BOX_NativeString(".module_hierarchy.new.dot"), TAG_Int(25)); /*new String*/
163 variable8
= variable7
;
164 ((string___String___append_t
)CALL(variable3
,COLOR_abstract_collection___IndexedCollection___append
))(variable3
, variable8
) /*String::append*/;
165 variable4
= NEW_file___OFStream___open(variable3
); /*new OFStream*/
166 variable3
= variable4
;
167 variable2
= variable3
/*f=*/;
168 variable3
= ((abstractmetamodel___MMContext___module_hierarchy_t
)CALL( self
,COLOR_abstractmetamodel___MMContext___module_hierarchy
))( self
) /*MMContext::module_hierarchy*/;
169 variable3
= ((partial_order___PartialOrder___to_dot_t
)CALL(variable3
,COLOR_partial_order___PartialOrder___to_dot
))(variable3
) /*PartialOrder::to_dot*/;
170 ((file___OFStream___write_t
)CALL( variable2
/*f*/,COLOR_stream___OStream___write
))( variable2
/*f*/, variable3
) /*OFStream::write*/;
171 ((file___OFStream___close_t
)CALL( variable2
/*f*/,COLOR_stream___IOS___close
))( variable2
/*f*/) /*OFStream::close*/;
172 tracehead
= trace
.prev
;
175 void abstracttool___MMModule___dump_module_info(val_t self
) {
176 struct trace_t trace
= {NULL
, NULL
, 85, LOCATE_abstracttool___MMModule___dump_module_info
};
189 trace
.prev
= tracehead
; tracehead
= &trace
;
190 trace
.file
= LOCATE_abstracttool
;
191 variable1
= ((mmloader___MMModule___filename_t
)CALL( self
,COLOR_mmloader___MMModule___filename
))( self
) /*MMModule::filename*/;
192 variable1
= ((file___String___file_path_t
)CALL(variable1
,COLOR_file___String___file_path
))(variable1
) /*String::file_path*/;
193 variable0
= variable1
;
194 variable2
= NEW_string___String___init(); /*new String*/
195 variable3
= NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
196 variable4
= variable3
;
197 ((string___String___append_t
)CALL(variable2
,COLOR_abstract_collection___IndexedCollection___append
))(variable2
, variable4
) /*String::append*/;
198 variable5
= variable0
/*p*/;
199 ((string___String___append_t
)CALL(variable2
,COLOR_abstract_collection___IndexedCollection___append
))(variable2
, variable5
) /*String::append*/;
200 variable6
= NEW_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
201 variable7
= variable6
;
202 ((string___String___append_t
)CALL(variable2
,COLOR_abstract_collection___IndexedCollection___append
))(variable2
, variable7
) /*String::append*/;
203 variable8
= ((abstractmetamodel___MMModule___name_t
)CALL( self
,COLOR_abstractmetamodel___MMModule___name
))( self
) /*MMModule::name*/;
204 variable9
= variable8
;
205 variable9
= ((string___String___to_s_t
)CALL(variable9
,COLOR_string___Object___to_s
))(variable9
) /*String::to_s*/;
206 ((string___String___append_t
)CALL(variable2
,COLOR_abstract_collection___IndexedCollection___append
))(variable2
, variable9
) /*String::append*/;
207 variable10
= NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
208 variable11
= variable10
;
209 ((string___String___append_t
)CALL(variable2
,COLOR_abstract_collection___IndexedCollection___append
))(variable2
, variable11
) /*String::append*/;
210 variable1
= variable2
;
211 variable3
= NEW_string___String___init(); /*new String*/
212 variable4
= NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
213 variable5
= variable4
;
214 ((string___String___append_t
)CALL(variable3
,COLOR_abstract_collection___IndexedCollection___append
))(variable3
, variable5
) /*String::append*/;
215 variable6
= variable1
/*fname*/;
216 ((string___String___append_t
)CALL(variable3
,COLOR_abstract_collection___IndexedCollection___append
))(variable3
, variable6
) /*String::append*/;
217 variable7
= NEW_string___String___with_native(BOX_NativeString(".class_hierarchy.new.dot"), TAG_Int(24)); /*new String*/
218 variable8
= variable7
;
219 ((string___String___append_t
)CALL(variable3
,COLOR_abstract_collection___IndexedCollection___append
))(variable3
, variable8
) /*String::append*/;
220 variable4
= NEW_file___OFStream___open(variable3
); /*new OFStream*/
221 variable3
= variable4
;
222 variable2
= variable3
;
223 variable3
= ((abstractmetamodel___MMModule___class_specialization_hierarchy_t
)CALL( self
,COLOR_abstractmetamodel___MMModule___class_specialization_hierarchy
))( self
) /*MMModule::class_specialization_hierarchy*/;
224 variable3
= ((partial_order___PartialOrder___to_dot_t
)CALL(variable3
,COLOR_partial_order___PartialOrder___to_dot
))(variable3
) /*PartialOrder::to_dot*/;
225 ((file___OFStream___write_t
)CALL( variable2
/*f*/,COLOR_stream___OStream___write
))( variable2
/*f*/, variable3
) /*OFStream::write*/;
226 ((file___OFStream___close_t
)CALL( variable2
/*f*/,COLOR_stream___IOS___close
))( variable2
/*f*/) /*OFStream::close*/;
227 variable3
= NEW_string___String___init(); /*new String*/
228 variable4
= NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
229 variable5
= variable4
;
230 ((string___String___append_t
)CALL(variable3
,COLOR_abstract_collection___IndexedCollection___append
))(variable3
, variable5
) /*String::append*/;
231 variable6
= variable1
/*fname*/;
232 ((string___String___append_t
)CALL(variable3
,COLOR_abstract_collection___IndexedCollection___append
))(variable3
, variable6
) /*String::append*/;
233 variable7
= NEW_string___String___with_native(BOX_NativeString(".properties.log"), TAG_Int(15)); /*new String*/
234 variable8
= variable7
;
235 ((string___String___append_t
)CALL(variable3
,COLOR_abstract_collection___IndexedCollection___append
))(variable3
, variable8
) /*String::append*/;
236 variable4
= NEW_file___OFStream___open(variable3
); /*new OFStream*/
237 variable3
= variable4
;
238 variable2
= variable3
/*f=*/;
239 variable3
= ((abstractmetamodel___MMModule___local_classes_t
)CALL( self
,COLOR_abstractmetamodel___MMModule___local_classes
))( self
) /*MMModule::local_classes*/;
240 variable3
= ((array___AbstractArray___iterator_t
)CALL(variable3
,COLOR_abstract_collection___Collection___iterator
))(variable3
) /*AbstractArray::iterator*/;
241 while (true) { /*for*/
242 variable4
= ((array___ArrayIterator___is_ok_t
)CALL(variable3
,COLOR_abstract_collection___Iterator___is_ok
))(variable3
) /*ArrayIterator::is_ok*/;
243 if (!UNTAG_Bool(variable4
)) break; /*for*/
244 variable4
= ((array___ArrayIterator___item_t
)CALL(variable3
,COLOR_abstract_collection___Iterator___item
))(variable3
) /*ArrayIterator::item*/;
245 ((abstracttool___MMLocalClass___dump_properties_t
)CALL( variable4
/*cla*/,COLOR_abstracttool___MMLocalClass___dump_properties
))( variable4
/*cla*/, variable2
/*f*/) /*MMLocalClass::dump_properties*/;
246 variable5
= NEW_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
247 ((file___OFStream___write_t
)CALL( variable2
/*f*/,COLOR_stream___OStream___write
))( variable2
/*f*/, variable5
) /*OFStream::write*/;
248 continue_7
: while(0);
249 ((array___ArrayIterator___next_t
)CALL(variable3
,COLOR_abstract_collection___Iterator___next
))(variable3
) /*ArrayIterator::next*/;
252 ((file___OFStream___close_t
)CALL( variable2
/*f*/,COLOR_stream___IOS___close
))( variable2
/*f*/) /*OFStream::close*/;
253 tracehead
= trace
.prev
;
256 void abstracttool___MMLocalClass___dump_properties(val_t self
, val_t param0
) {
257 struct trace_t trace
= {NULL
, NULL
, 103, LOCATE_abstracttool___MMLocalClass___dump_properties
};
272 trace
.prev
= tracehead
; tracehead
= &trace
;
273 trace
.file
= LOCATE_abstracttool
;
275 variable1
= NEW_string___String___init(); /*new String*/
276 variable2
= NEW_string___String___with_native(BOX_NativeString("class "), TAG_Int(6)); /*new String*/
277 variable3
= variable2
;
278 ((string___String___append_t
)CALL(variable1
,COLOR_abstract_collection___IndexedCollection___append
))(variable1
, variable3
) /*String::append*/;
280 variable4
= ((string___String___to_s_t
)CALL(variable4
,COLOR_string___Object___to_s
))(variable4
) /*String::to_s*/;
281 ((string___String___append_t
)CALL(variable1
,COLOR_abstract_collection___IndexedCollection___append
))(variable1
, variable4
) /*String::append*/;
282 variable5
= NEW_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
283 variable6
= variable5
;
284 ((string___String___append_t
)CALL(variable1
,COLOR_abstract_collection___IndexedCollection___append
))(variable1
, variable6
) /*String::append*/;
285 ((stream___OStream___write_t
)CALL( variable0
/*file*/,COLOR_stream___OStream___write
))( variable0
/*file*/, variable1
) /*OStream::write*/;
286 variable1
= ((abstractmetamodel___MMLocalClass___global_properties_t
)CALL( self
,COLOR_abstractmetamodel___MMLocalClass___global_properties
))( self
) /*MMLocalClass::global_properties*/;
287 variable1
= ((abstract_collection___Collection___iterator_t
)CALL(variable1
,COLOR_abstract_collection___Collection___iterator
))(variable1
) /*Collection::iterator*/;
288 while (true) { /*for*/
289 variable2
= ((abstract_collection___Iterator___is_ok_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___is_ok
))(variable1
) /*Iterator::is_ok*/;
290 if (!UNTAG_Bool(variable2
)) break; /*for*/
291 variable2
= ((abstract_collection___Iterator___item_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___item
))(variable1
) /*Iterator::item*/;
292 variable4
= ((inheritance___MMLocalClass_____bra_t
)CALL( self
,COLOR_abstractmetamodel___MMLocalClass_____bra
))( self
, variable2
/*p*/) /*MMLocalClass::[]*/;
293 variable3
= variable4
;
294 variable4
= NEW_string___String___init(); /*new String*/
295 variable5
= NEW_string___String___with_native(BOX_NativeString("\t"), TAG_Int(1)); /*new String*/
296 variable6
= variable5
;
297 ((string___String___append_t
)CALL(variable4
,COLOR_abstract_collection___IndexedCollection___append
))(variable4
, variable6
) /*String::append*/;
298 variable7
= variable3
/*lp*/;
299 variable7
= ((string___String___to_s_t
)CALL(variable7
,COLOR_string___Object___to_s
))(variable7
) /*String::to_s*/;
300 ((string___String___append_t
)CALL(variable4
,COLOR_abstract_collection___IndexedCollection___append
))(variable4
, variable7
) /*String::append*/;
301 variable8
= NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
302 variable9
= variable8
;
303 ((string___String___append_t
)CALL(variable4
,COLOR_abstract_collection___IndexedCollection___append
))(variable4
, variable9
) /*String::append*/;
304 variable10
= ((genericity___MMLocalClass___get_type_t
)CALL( self
,COLOR_static_type___MMLocalClass___get_type
))( self
) /*MMLocalClass::get_type*/;
305 variable10
= ((static_type___MMLocalProperty___signature_for_t
)CALL( variable3
/*lp*/,COLOR_static_type___MMLocalProperty___signature_for
))( variable3
/*lp*/, variable10
) /*MMLocalProperty::signature_for*/;
306 variable11
= variable10
;
307 variable11
= ((string___String___to_s_t
)CALL(variable11
,COLOR_string___Object___to_s
))(variable11
) /*String::to_s*/;
308 ((string___String___append_t
)CALL(variable4
,COLOR_abstract_collection___IndexedCollection___append
))(variable4
, variable11
) /*String::append*/;
309 variable12
= NEW_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
310 variable13
= variable12
;
311 ((string___String___append_t
)CALL(variable4
,COLOR_abstract_collection___IndexedCollection___append
))(variable4
, variable13
) /*String::append*/;
312 ((stream___OStream___write_t
)CALL( variable0
/*file*/,COLOR_stream___OStream___write
))( variable0
/*file*/, variable4
) /*OStream::write*/;
313 continue_9
: while(0);
314 ((abstract_collection___Iterator___next_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___next
))(variable1
) /*Iterator::next*/;
317 variable1
= NEW_string___String___init(); /*new String*/
318 variable2
= NEW_string___String___with_native(BOX_NativeString("end # "), TAG_Int(6)); /*new String*/
319 variable3
= variable2
;
320 ((string___String___append_t
)CALL(variable1
,COLOR_abstract_collection___IndexedCollection___append
))(variable1
, variable3
) /*String::append*/;
322 variable4
= ((string___String___to_s_t
)CALL(variable4
,COLOR_string___Object___to_s
))(variable4
) /*String::to_s*/;
323 ((string___String___append_t
)CALL(variable1
,COLOR_abstract_collection___IndexedCollection___append
))(variable1
, variable4
) /*String::append*/;
324 variable5
= NEW_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
325 variable6
= variable5
;
326 ((string___String___append_t
)CALL(variable1
,COLOR_abstract_collection___IndexedCollection___append
))(variable1
, variable6
) /*String::append*/;
327 ((stream___OStream___write_t
)CALL( variable0
/*file*/,COLOR_stream___OStream___write
))( variable0
/*file*/, variable1
) /*OStream::write*/;
328 tracehead
= trace
.prev
;