update NOTICE and LICENSE
[nit.git] / c_src / abstracttool._sep.c
1 /* This C file is generated by NIT to compile module abstracttool. */
2 #include "abstracttool._sep.h"
3 void abstracttool___AbstractCompiler___init(val_t p0, val_t p1, int* init_table){
4 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AbstractCompiler].i;
5 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
6 val_t tmp;
7 if (init_table[itpos0]) return;
8 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9 fra.me.file = LOCATE_abstracttool;
10 fra.me.line = 29;
11 fra.me.meth = LOCATE_abstracttool___AbstractCompiler___init;
12 fra.me.has_broke = 0;
13 fra.me.REG_size = 3;
14 fra.me.REG[0] = NIT_NULL;
15 fra.me.REG[1] = NIT_NULL;
16 fra.me.REG[2] = NIT_NULL;
17 fra.me.REG[0] = p0;
18 fra.me.REG[1] = p1;
19 /* ./abstracttool.nit:29 */
20 fra.me.REG[2] = fra.me.REG[0];
21 /* ./abstracttool.nit:31 */
22 ATTR_abstracttool___AbstractCompiler____tool_name(fra.me.REG[2]) = fra.me.REG[1];
23 /* ./abstracttool.nit:32 */
24 CALL_mmloader___ToolContext___init(fra.me.REG[0])(fra.me.REG[0], init_table);
25 /* ./abstracttool.nit:33 */
26 fra.me.REG[0] = NEW_SrcModuleLoader_syntax___SrcModuleLoader___init();
27 CALL_mmloader___ToolContext___register_loader(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28 stack_frame_head = fra.me.prev;
29 init_table[itpos0] = 1;
30 return;
31 }
32 val_t abstracttool___AbstractCompiler___tool_name(val_t p0){
33 struct {struct stack_frame_t me;} fra;
34 val_t REGB0;
35 val_t tmp;
36 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37 fra.me.file = LOCATE_abstracttool;
38 fra.me.line = 36;
39 fra.me.meth = LOCATE_abstracttool___AbstractCompiler___tool_name;
40 fra.me.has_broke = 0;
41 fra.me.REG_size = 1;
42 fra.me.REG[0] = NIT_NULL;
43 fra.me.REG[0] = p0;
44 /* ./abstracttool.nit:36 */
45 REGB0 = TAG_Bool(ATTR_abstracttool___AbstractCompiler____tool_name(fra.me.REG[0])!=NIT_NULL);
46 if (UNTAG_Bool(REGB0)) {
47 } else {
48 nit_abort("Uninitialized attribute %s", "_tool_name", LOCATE_abstracttool, 36);
49 }
50 fra.me.REG[0] = ATTR_abstracttool___AbstractCompiler____tool_name(fra.me.REG[0]);
51 stack_frame_head = fra.me.prev;
52 return fra.me.REG[0];
53 }
54 void abstracttool___AbstractCompiler___exec_cmd_line(val_t p0){
55 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
56 val_t REGB0;
57 val_t REGB1;
58 val_t REGB2;
59 val_t REGB3;
60 val_t REGB4;
61 val_t tmp;
62 static val_t once_value_1; /* Once value */
63 static val_t once_value_2; /* Once value */
64 static val_t once_value_3; /* Once value */
65 static val_t once_value_4; /* Once value */
66 static val_t once_value_5; /* Once value */
67 static val_t once_value_6; /* Once value */
68 static val_t once_value_7; /* Once value */
69 static val_t once_value_8; /* Once value */
70 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
71 fra.me.file = LOCATE_abstracttool;
72 fra.me.line = 40;
73 fra.me.meth = LOCATE_abstracttool___AbstractCompiler___exec_cmd_line;
74 fra.me.has_broke = 0;
75 fra.me.REG_size = 4;
76 fra.me.REG[0] = NIT_NULL;
77 fra.me.REG[1] = NIT_NULL;
78 fra.me.REG[2] = NIT_NULL;
79 fra.me.REG[3] = NIT_NULL;
80 fra.me.REG[0] = p0;
81 /* ./abstracttool.nit:42 */
82 CALL_mmloader___ToolContext___process_options(fra.me.REG[0])(fra.me.REG[0]);
83 /* ./abstracttool.nit:44 */
84 fra.me.REG[1] = CALL_mmloader___ToolContext___opt_version(fra.me.REG[0])(fra.me.REG[0]);
85 fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[1])(fra.me.REG[1]);
86 if (UNTAG_Bool(fra.me.REG[1])) {
87 /* ./abstracttool.nit:45 */
88 REGB0 = TAG_Int(5);
89 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
90 if (!once_value_1) {
91 fra.me.REG[2] = BOX_NativeString("");
92 REGB0 = TAG_Int(0);
93 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
94 once_value_1 = fra.me.REG[2];
95 register_static_object(&once_value_1);
96 } else fra.me.REG[2] = once_value_1;
97 fra.me.REG[2] = fra.me.REG[2];
98 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
99 fra.me.REG[2] = CALL_abstracttool___AbstractCompiler___tool_name(fra.me.REG[0])(fra.me.REG[0]);
100 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
101 if (!once_value_2) {
102 fra.me.REG[2] = BOX_NativeString(" version ");
103 REGB0 = TAG_Int(9);
104 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
105 once_value_2 = fra.me.REG[2];
106 register_static_object(&once_value_2);
107 } else fra.me.REG[2] = once_value_2;
108 fra.me.REG[2] = fra.me.REG[2];
109 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
110 fra.me.REG[2] = CALL_nit_version___Object___nit_version(fra.me.REG[0])(fra.me.REG[0]);
111 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
112 if (!once_value_3) {
113 fra.me.REG[2] = BOX_NativeString("");
114 REGB0 = TAG_Int(0);
115 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
116 once_value_3 = fra.me.REG[2];
117 register_static_object(&once_value_3);
118 } else fra.me.REG[2] = once_value_3;
119 fra.me.REG[2] = fra.me.REG[2];
120 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
121 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
122 CALL_file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
123 /* ./abstracttool.nit:46 */
124 REGB0 = TAG_Int(0);
125 CALL_kernel___Object___exit(fra.me.REG[0])(fra.me.REG[0], REGB0);
126 }
127 /* ./abstracttool.nit:49 */
128 fra.me.REG[1] = CALL_mmloader___ToolContext___opt_help(fra.me.REG[0])(fra.me.REG[0]);
129 fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[1])(fra.me.REG[1]);
130 if (UNTAG_Bool(fra.me.REG[1])) {
131 /* ./abstracttool.nit:50 */
132 REGB0 = TAG_Int(3);
133 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
134 if (!once_value_4) {
135 fra.me.REG[2] = BOX_NativeString("usage: ");
136 REGB0 = TAG_Int(7);
137 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
138 once_value_4 = fra.me.REG[2];
139 register_static_object(&once_value_4);
140 } else fra.me.REG[2] = once_value_4;
141 fra.me.REG[2] = fra.me.REG[2];
142 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
143 fra.me.REG[2] = CALL_abstracttool___AbstractCompiler___tool_name(fra.me.REG[0])(fra.me.REG[0]);
144 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
145 if (!once_value_5) {
146 fra.me.REG[2] = BOX_NativeString(" [options] file...");
147 REGB0 = TAG_Int(18);
148 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
149 once_value_5 = fra.me.REG[2];
150 register_static_object(&once_value_5);
151 } else fra.me.REG[2] = once_value_5;
152 fra.me.REG[2] = fra.me.REG[2];
153 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
154 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
155 CALL_file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
156 /* ./abstracttool.nit:51 */
157 fra.me.REG[1] = CALL_mmloader___ToolContext___option_context(fra.me.REG[0])(fra.me.REG[0]);
158 CALL_opts___OptionContext___usage(fra.me.REG[1])(fra.me.REG[1]);
159 /* ./abstracttool.nit:52 */
160 REGB0 = TAG_Int(0);
161 CALL_kernel___Object___exit(fra.me.REG[0])(fra.me.REG[0], REGB0);
162 }
163 /* ./abstracttool.nit:55 */
164 fra.me.REG[1] = CALL_mmloader___ToolContext___option_context(fra.me.REG[0])(fra.me.REG[0]);
165 fra.me.REG[1] = CALL_opts___OptionContext___rest(fra.me.REG[1])(fra.me.REG[1]);
166 /* ./../lib/standard//collection//array.nit:23 */
167 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
168 if (UNTAG_Bool(REGB0)) {
169 } else {
170 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
171 }
172 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
173 /* ./abstracttool.nit:55 */
174 REGB1 = TAG_Int(0);
175 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
176 if (UNTAG_Bool(REGB2)) {
177 } else {
178 /* ./../lib/standard//kernel.nit:207 */
179 REGB1 = TAG_Bool((REGB0)==(REGB1));
180 /* ./abstracttool.nit:55 */
181 REGB2 = REGB1;
182 }
183 if (UNTAG_Bool(REGB2)) {
184 /* ./abstracttool.nit:56 */
185 REGB2 = TAG_Int(3);
186 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB2);
187 if (!once_value_6) {
188 fra.me.REG[2] = BOX_NativeString("usage: ");
189 REGB2 = TAG_Int(7);
190 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2);
191 once_value_6 = fra.me.REG[2];
192 register_static_object(&once_value_6);
193 } else fra.me.REG[2] = once_value_6;
194 fra.me.REG[2] = fra.me.REG[2];
195 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
196 fra.me.REG[2] = CALL_abstracttool___AbstractCompiler___tool_name(fra.me.REG[0])(fra.me.REG[0]);
197 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
198 if (!once_value_7) {
199 fra.me.REG[2] = BOX_NativeString(" [options] file...");
200 REGB2 = TAG_Int(18);
201 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2);
202 once_value_7 = fra.me.REG[2];
203 register_static_object(&once_value_7);
204 } else fra.me.REG[2] = once_value_7;
205 fra.me.REG[2] = fra.me.REG[2];
206 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
207 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
208 CALL_file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
209 /* ./abstracttool.nit:57 */
210 fra.me.REG[1] = CALL_mmloader___ToolContext___option_context(fra.me.REG[0])(fra.me.REG[0]);
211 CALL_opts___OptionContext___usage(fra.me.REG[1])(fra.me.REG[1]);
212 /* ./abstracttool.nit:58 */
213 REGB2 = TAG_Int(1);
214 CALL_kernel___Object___exit(fra.me.REG[0])(fra.me.REG[0], REGB2);
215 }
216 /* ./abstracttool.nit:61 */
217 fra.me.REG[1] = CALL_mmloader___ToolContext___option_context(fra.me.REG[0])(fra.me.REG[0]);
218 fra.me.REG[1] = CALL_opts___OptionContext___rest(fra.me.REG[1])(fra.me.REG[1]);
219 /* ./abstracttool.nit:62 */
220 fra.me.REG[2] = NEW_Array_array___Array___init();
221 /* ./abstracttool.nit:63 */
222 if (!once_value_8) {
223 fra.me.REG[3] = BOX_NativeString("Syntax analysis");
224 REGB2 = TAG_Int(15);
225 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
226 once_value_8 = fra.me.REG[3];
227 register_static_object(&once_value_8);
228 } else fra.me.REG[3] = once_value_8;
229 fra.me.REG[3] = fra.me.REG[3];
230 REGB2 = TAG_Int(1);
231 CALL_mmloader___ToolContext___info(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], REGB2);
232 /* ./abstracttool.nit:64 */
233 REGB2 = TAG_Int(0);
234 /* ./../lib/standard//collection//array.nit:23 */
235 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
236 if (UNTAG_Bool(REGB1)) {
237 } else {
238 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
239 }
240 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
241 /* ./../lib/standard//kernel.nit:332 */
242 while(1) {
243 /* ./../lib/standard//kernel.nit:212 */
244 REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
245 /* ./../lib/standard//kernel.nit:332 */
246 if (UNTAG_Bool(REGB0)) {
247 /* ./abstracttool.nit:64 */
248 REGB0 = REGB2;
249 /* ./../lib/standard//collection//array.nit:243 */
250 fra.me.REG[3] = fra.me.REG[1];
251 /* ./../lib/standard//collection//array.nit:245 */
252 REGB3 = TAG_Int(0);
253 /* ./../lib/standard//kernel.nit:213 */
254 REGB3 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB3));
255 /* ./../lib/standard//collection//array.nit:245 */
256 if (UNTAG_Bool(REGB3)) {
257 REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
258 if (UNTAG_Bool(REGB3)) {
259 } else {
260 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
261 }
262 REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
263 /* ./../lib/standard//kernel.nit:212 */
264 REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB3));
265 } else {
266 /* ./../lib/standard//collection//array.nit:245 */
267 REGB4 = TAG_Bool(false);
268 REGB3 = REGB4;
269 }
270 if (UNTAG_Bool(REGB3)) {
271 } else {
272 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
273 }
274 /* ./../lib/standard//collection//array.nit:246 */
275 fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[3]);
276 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
277 if (UNTAG_Bool(REGB3)) {
278 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
279 }
280 /* ./../lib/standard//collection//array.nit:654 */
281 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
282 /* ./../lib/standard//collection//array.nit:246 */
283 goto label9;
284 label9: while(0);
285 /* ./abstracttool.nit:65 */
286 fra.me.REG[3] = CALL_mmloader___ToolContext___get_module_from_filename(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
287 /* ./abstracttool.nit:66 */
288 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
289 /* ./../lib/standard//kernel.nit:334 */
290 REGB0 = TAG_Int(1);
291 /* ./../lib/standard//kernel.nit:215 */
292 REGB0 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
293 /* ./../lib/standard//kernel.nit:334 */
294 REGB2 = REGB0;
295 } else {
296 /* ./../lib/standard//kernel.nit:332 */
297 goto label10;
298 }
299 }
300 label10: while(0);
301 /* ./abstracttool.nit:68 */
302 fra.me.REG[1] = CALL_mmloader___ToolContext___opt_log(fra.me.REG[0])(fra.me.REG[0]);
303 fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[1])(fra.me.REG[1]);
304 if (UNTAG_Bool(fra.me.REG[1])) {
305 /* ./abstracttool.nit:69 */
306 CALL_abstracttool___AbstractCompiler___dump_context_info(fra.me.REG[0])(fra.me.REG[0]);
307 }
308 /* ./abstracttool.nit:72 */
309 REGB2 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
310 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
311 if (UNTAG_Bool(REGB2)) {
312 fra.me.REG[1] = CALL_mmloader___ToolContext___opt_only_metamodel(fra.me.REG[0])(fra.me.REG[0]);
313 fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[1])(fra.me.REG[1]);
314 REGB2 = TAG_Bool(!UNTAG_Bool(fra.me.REG[1]));
315 } else {
316 REGB1 = TAG_Bool(false);
317 REGB2 = REGB1;
318 }
319 if (UNTAG_Bool(REGB2)) {
320 fra.me.REG[1] = CALL_mmloader___ToolContext___opt_only_parse(fra.me.REG[0])(fra.me.REG[0]);
321 fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[1])(fra.me.REG[1]);
322 REGB2 = TAG_Bool(!UNTAG_Bool(fra.me.REG[1]));
323 } else {
324 REGB1 = TAG_Bool(false);
325 REGB2 = REGB1;
326 }
327 if (UNTAG_Bool(REGB2)) {
328 /* ./abstracttool.nit:73 */
329 CALL_abstracttool___AbstractCompiler___perform_work(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
330 }
331 stack_frame_head = fra.me.prev;
332 return;
333 }
334 void abstracttool___AbstractCompiler___perform_work(val_t p0, val_t p1){
335 struct {struct stack_frame_t me;} fra;
336 val_t tmp;
337 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
338 fra.me.file = LOCATE_abstracttool;
339 fra.me.line = 77;
340 fra.me.meth = LOCATE_abstracttool___AbstractCompiler___perform_work;
341 fra.me.has_broke = 0;
342 fra.me.REG_size = 0;
343 /* ./abstracttool.nit:77 */
344 nit_abort("Deferred method called", NULL, LOCATE_abstracttool, 77);
345 stack_frame_head = fra.me.prev;
346 return;
347 }
348 void abstracttool___AbstractCompiler___dump_context_info(val_t p0){
349 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
350 val_t REGB0;
351 val_t tmp;
352 static val_t once_value_2; /* Once value */
353 static val_t once_value_3; /* Once value */
354 static val_t once_value_4; /* Once value */
355 static val_t once_value_5; /* Once value */
356 static val_t once_value_6; /* Once value */
357 static val_t once_value_7; /* Once value */
358 static val_t once_value_8; /* Once value */
359 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
360 fra.me.file = LOCATE_abstracttool;
361 fra.me.line = 79;
362 fra.me.meth = LOCATE_abstracttool___AbstractCompiler___dump_context_info;
363 fra.me.has_broke = 0;
364 fra.me.REG_size = 5;
365 fra.me.REG[0] = NIT_NULL;
366 fra.me.REG[1] = NIT_NULL;
367 fra.me.REG[2] = NIT_NULL;
368 fra.me.REG[3] = NIT_NULL;
369 fra.me.REG[4] = NIT_NULL;
370 fra.me.REG[0] = p0;
371 /* ./abstracttool.nit:81 */
372 fra.me.REG[1] = CALL_abstractmetamodel___MMContext___module_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
373 CALL_abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_abstracttool___AbstractCompiler___dump_context_info_1));
374 /* ./abstracttool.nit:84 */
375 fra.me.REG[1] = NEW_Array_array___Array___init();
376 /* ./abstracttool.nit:85 */
377 fra.me.REG[2] = CALL_abstractmetamodel___MMContext___module_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
378 CALL_abstract_collection___SimpleCollection___add_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
379 /* ./abstracttool.nit:86 */
380 fra.me.REG[2] = CALL_abstractmetamodel___MMContext___module_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
381 fra.me.REG[1] = CALL_partial_order___PartialOrder___select_smallests(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
382 if (!once_value_2) {
383 fra.me.REG[2] = BOX_NativeString("-");
384 REGB0 = TAG_Int(1);
385 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
386 once_value_2 = fra.me.REG[2];
387 register_static_object(&once_value_2);
388 } else fra.me.REG[2] = once_value_2;
389 fra.me.REG[2] = fra.me.REG[2];
390 fra.me.REG[2] = CALL_string___Collection___join(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
391 /* ./abstracttool.nit:88 */
392 REGB0 = TAG_Int(5);
393 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
394 if (!once_value_3) {
395 fra.me.REG[3] = BOX_NativeString("");
396 REGB0 = TAG_Int(0);
397 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
398 once_value_3 = fra.me.REG[3];
399 register_static_object(&once_value_3);
400 } else fra.me.REG[3] = once_value_3;
401 fra.me.REG[3] = fra.me.REG[3];
402 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
403 fra.me.REG[3] = CALL_mmloader___ToolContext___log_directory(fra.me.REG[0])(fra.me.REG[0]);
404 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
405 if (!once_value_4) {
406 fra.me.REG[3] = BOX_NativeString("/");
407 REGB0 = TAG_Int(1);
408 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
409 once_value_4 = fra.me.REG[3];
410 register_static_object(&once_value_4);
411 } else fra.me.REG[3] = once_value_4;
412 fra.me.REG[3] = fra.me.REG[3];
413 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
414 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
415 if (!once_value_5) {
416 fra.me.REG[3] = BOX_NativeString(".full_class_hierarchy.new.dot");
417 REGB0 = TAG_Int(29);
418 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
419 once_value_5 = fra.me.REG[3];
420 register_static_object(&once_value_5);
421 } else fra.me.REG[3] = once_value_5;
422 fra.me.REG[3] = fra.me.REG[3];
423 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
424 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
425 fra.me.REG[1] = NEW_OFStream_file___OFStream___open(fra.me.REG[1]);
426 /* ./abstracttool.nit:89 */
427 fra.me.REG[3] = CALL_abstractmetamodel___MMContext___class_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
428 fra.me.REG[3] = CALL_partial_order___PartialOrder___to_dot(fra.me.REG[3])(fra.me.REG[3]);
429 CALL_stream___OStream___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
430 /* ./abstracttool.nit:90 */
431 CALL_stream___IOS___close(fra.me.REG[1])(fra.me.REG[1]);
432 /* ./abstracttool.nit:92 */
433 REGB0 = TAG_Int(5);
434 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
435 if (!once_value_6) {
436 fra.me.REG[4] = BOX_NativeString("");
437 REGB0 = TAG_Int(0);
438 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
439 once_value_6 = fra.me.REG[4];
440 register_static_object(&once_value_6);
441 } else fra.me.REG[4] = once_value_6;
442 fra.me.REG[4] = fra.me.REG[4];
443 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
444 fra.me.REG[4] = CALL_mmloader___ToolContext___log_directory(fra.me.REG[0])(fra.me.REG[0]);
445 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
446 if (!once_value_7) {
447 fra.me.REG[4] = BOX_NativeString("/");
448 REGB0 = TAG_Int(1);
449 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
450 once_value_7 = fra.me.REG[4];
451 register_static_object(&once_value_7);
452 } else fra.me.REG[4] = once_value_7;
453 fra.me.REG[4] = fra.me.REG[4];
454 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
455 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
456 if (!once_value_8) {
457 fra.me.REG[2] = BOX_NativeString(".module_hierarchy.new.dot");
458 REGB0 = TAG_Int(25);
459 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
460 once_value_8 = fra.me.REG[2];
461 register_static_object(&once_value_8);
462 } else fra.me.REG[2] = once_value_8;
463 fra.me.REG[2] = fra.me.REG[2];
464 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
465 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
466 fra.me.REG[3] = NEW_OFStream_file___OFStream___open(fra.me.REG[3]);
467 fra.me.REG[1] = fra.me.REG[3];
468 /* ./abstracttool.nit:93 */
469 fra.me.REG[0] = CALL_abstractmetamodel___MMContext___module_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
470 fra.me.REG[0] = CALL_partial_order___PartialOrder___to_dot(fra.me.REG[0])(fra.me.REG[0]);
471 CALL_stream___OStream___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
472 /* ./abstracttool.nit:94 */
473 CALL_stream___IOS___close(fra.me.REG[1])(fra.me.REG[1]);
474 stack_frame_head = fra.me.prev;
475 return;
476 }
477 void OC_abstracttool___AbstractCompiler___dump_context_info_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
478 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
479 fun_t CREG[1];
480 val_t tmp;
481 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
482 fra.me.file = LOCATE_abstracttool;
483 fra.me.line = 0;
484 fra.me.meth = LOCATE_abstracttool___AbstractCompiler___dump_context_info;
485 fra.me.has_broke = 0;
486 fra.me.REG_size = 2;
487 fra.me.REG[0] = NIT_NULL;
488 fra.me.REG[1] = NIT_NULL;
489 fra.me.closure_ctx = closctx_param;
490 fra.me.closure_funs = CREG;
491 fra.me.REG[0] = p0;
492 CREG[0] = clos_fun0;
493 /* ./abstracttool.nit:82 */
494 fra.me.REG[1] = CALL_mmloader___ToolContext___log_directory(closctx->REG[0])(closctx->REG[0]);
495 CALL_abstracttool___MMModule___dump_module_info(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
496 stack_frame_head = fra.me.prev;
497 return;
498 }
499 void abstracttool___MMModule___dump_module_info(val_t p0, val_t p1){
500 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
501 val_t REGB0;
502 val_t tmp;
503 static val_t once_value_1; /* Once value */
504 static val_t once_value_2; /* Once value */
505 static val_t once_value_3; /* Once value */
506 static val_t once_value_4; /* Once value */
507 static val_t once_value_5; /* Once value */
508 static val_t once_value_6; /* Once value */
509 static val_t once_value_7; /* Once value */
510 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
511 fra.me.file = LOCATE_abstracttool;
512 fra.me.line = 99;
513 fra.me.meth = LOCATE_abstracttool___MMModule___dump_module_info;
514 fra.me.has_broke = 0;
515 fra.me.REG_size = 5;
516 fra.me.REG[0] = NIT_NULL;
517 fra.me.REG[1] = NIT_NULL;
518 fra.me.REG[2] = NIT_NULL;
519 fra.me.REG[3] = NIT_NULL;
520 fra.me.REG[4] = NIT_NULL;
521 fra.me.REG[0] = p0;
522 fra.me.REG[1] = p1;
523 /* ./abstracttool.nit:101 */
524 REGB0 = TAG_Int(5);
525 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
526 if (!once_value_1) {
527 fra.me.REG[3] = BOX_NativeString("");
528 REGB0 = TAG_Int(0);
529 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
530 once_value_1 = fra.me.REG[3];
531 register_static_object(&once_value_1);
532 } else fra.me.REG[3] = once_value_1;
533 fra.me.REG[3] = fra.me.REG[3];
534 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
535 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
536 if (!once_value_2) {
537 fra.me.REG[1] = BOX_NativeString("/");
538 REGB0 = TAG_Int(1);
539 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
540 once_value_2 = fra.me.REG[1];
541 register_static_object(&once_value_2);
542 } else fra.me.REG[1] = once_value_2;
543 fra.me.REG[1] = fra.me.REG[1];
544 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
545 fra.me.REG[1] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[0])(fra.me.REG[0]);
546 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
547 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
548 if (!once_value_3) {
549 fra.me.REG[1] = BOX_NativeString("");
550 REGB0 = TAG_Int(0);
551 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
552 once_value_3 = fra.me.REG[1];
553 register_static_object(&once_value_3);
554 } else fra.me.REG[1] = once_value_3;
555 fra.me.REG[1] = fra.me.REG[1];
556 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
557 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
558 /* ./abstracttool.nit:102 */
559 REGB0 = TAG_Int(3);
560 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
561 if (!once_value_4) {
562 fra.me.REG[3] = BOX_NativeString("");
563 REGB0 = TAG_Int(0);
564 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
565 once_value_4 = fra.me.REG[3];
566 register_static_object(&once_value_4);
567 } else fra.me.REG[3] = once_value_4;
568 fra.me.REG[3] = fra.me.REG[3];
569 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
570 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
571 if (!once_value_5) {
572 fra.me.REG[3] = BOX_NativeString(".class_hierarchy.new.dot");
573 REGB0 = TAG_Int(24);
574 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
575 once_value_5 = fra.me.REG[3];
576 register_static_object(&once_value_5);
577 } else fra.me.REG[3] = once_value_5;
578 fra.me.REG[3] = fra.me.REG[3];
579 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
580 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
581 fra.me.REG[1] = NEW_OFStream_file___OFStream___open(fra.me.REG[1]);
582 /* ./abstracttool.nit:103 */
583 fra.me.REG[3] = CALL_abstractmetamodel___MMModule___class_specialization_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
584 fra.me.REG[3] = CALL_partial_order___PartialOrder___to_dot(fra.me.REG[3])(fra.me.REG[3]);
585 CALL_stream___OStream___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
586 /* ./abstracttool.nit:104 */
587 CALL_stream___IOS___close(fra.me.REG[1])(fra.me.REG[1]);
588 /* ./abstracttool.nit:106 */
589 REGB0 = TAG_Int(3);
590 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
591 if (!once_value_6) {
592 fra.me.REG[4] = BOX_NativeString("");
593 REGB0 = TAG_Int(0);
594 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
595 once_value_6 = fra.me.REG[4];
596 register_static_object(&once_value_6);
597 } else fra.me.REG[4] = once_value_6;
598 fra.me.REG[4] = fra.me.REG[4];
599 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
600 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
601 if (!once_value_7) {
602 fra.me.REG[2] = BOX_NativeString(".properties.log");
603 REGB0 = TAG_Int(15);
604 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
605 once_value_7 = fra.me.REG[2];
606 register_static_object(&once_value_7);
607 } else fra.me.REG[2] = once_value_7;
608 fra.me.REG[2] = fra.me.REG[2];
609 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
610 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
611 fra.me.REG[3] = NEW_OFStream_file___OFStream___open(fra.me.REG[3]);
612 fra.me.REG[1] = fra.me.REG[3];
613 /* ./abstracttool.nit:107 */
614 fra.me.REG[0] = CALL_abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
615 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_abstracttool___MMModule___dump_module_info_8));
616 /* ./abstracttool.nit:111 */
617 CALL_stream___IOS___close(fra.me.REG[1])(fra.me.REG[1]);
618 stack_frame_head = fra.me.prev;
619 return;
620 }
621 void OC_abstracttool___MMModule___dump_module_info_8(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
622 struct {struct stack_frame_t me;} fra;
623 val_t REGB0;
624 fun_t CREG[1];
625 val_t tmp;
626 static val_t once_value_9; /* Once value */
627 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
628 fra.me.file = LOCATE_abstracttool;
629 fra.me.line = 0;
630 fra.me.meth = LOCATE_abstracttool___MMModule___dump_module_info;
631 fra.me.has_broke = 0;
632 fra.me.REG_size = 1;
633 fra.me.REG[0] = NIT_NULL;
634 fra.me.closure_ctx = closctx_param;
635 fra.me.closure_funs = CREG;
636 fra.me.REG[0] = p0;
637 CREG[0] = clos_fun0;
638 /* ./abstracttool.nit:108 */
639 CALL_abstracttool___MMLocalClass___dump_properties(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
640 /* ./abstracttool.nit:109 */
641 if (!once_value_9) {
642 fra.me.REG[0] = BOX_NativeString("\n");
643 REGB0 = TAG_Int(1);
644 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
645 once_value_9 = fra.me.REG[0];
646 register_static_object(&once_value_9);
647 } else fra.me.REG[0] = once_value_9;
648 fra.me.REG[0] = fra.me.REG[0];
649 CALL_stream___OStream___write(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
650 stack_frame_head = fra.me.prev;
651 return;
652 }
653 void abstracttool___MMLocalClass___dump_properties(val_t p0, val_t p1){
654 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
655 val_t REGB0;
656 val_t REGB1;
657 val_t REGB2;
658 val_t tmp;
659 static val_t once_value_1; /* Once value */
660 static val_t once_value_2; /* Once value */
661 static val_t once_value_3; /* Once value */
662 static val_t once_value_4; /* Once value */
663 static val_t once_value_9; /* Once value */
664 static val_t once_value_10; /* Once value */
665 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
666 fra.me.file = LOCATE_abstracttool;
667 fra.me.line = 116;
668 fra.me.meth = LOCATE_abstracttool___MMLocalClass___dump_properties;
669 fra.me.has_broke = 0;
670 fra.me.REG_size = 4;
671 fra.me.REG[0] = NIT_NULL;
672 fra.me.REG[1] = NIT_NULL;
673 fra.me.REG[2] = NIT_NULL;
674 fra.me.REG[3] = NIT_NULL;
675 fra.me.REG[0] = p0;
676 fra.me.REG[1] = p1;
677 /* ./abstracttool.nit:118 */
678 REGB0 = TAG_Int(3);
679 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
680 if (!once_value_1) {
681 fra.me.REG[3] = BOX_NativeString("class ");
682 REGB0 = TAG_Int(6);
683 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
684 once_value_1 = fra.me.REG[3];
685 register_static_object(&once_value_1);
686 } else fra.me.REG[3] = once_value_1;
687 fra.me.REG[3] = fra.me.REG[3];
688 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
689 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
690 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
691 if (!once_value_2) {
692 fra.me.REG[3] = BOX_NativeString("\n");
693 REGB0 = TAG_Int(1);
694 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
695 once_value_2 = fra.me.REG[3];
696 register_static_object(&once_value_2);
697 } else fra.me.REG[3] = once_value_2;
698 fra.me.REG[3] = fra.me.REG[3];
699 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
700 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
701 CALL_stream___OStream___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
702 /* ./abstracttool.nit:119 */
703 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
704 REGB0 = CALL_abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[2])(fra.me.REG[2]);
705 REGB1 = TAG_Int(3);
706 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
707 if (UNTAG_Bool(REGB2)) {
708 } else {
709 /* ./../lib/standard//kernel.nit:207 */
710 REGB1 = TAG_Bool((REGB0)==(REGB1));
711 /* ./abstracttool.nit:119 */
712 REGB2 = REGB1;
713 }
714 if (UNTAG_Bool(REGB2)) {
715 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
716 fra.me.REG[2] = CALL_abstractmetamodel___MMGlobalClass___intro(fra.me.REG[2])(fra.me.REG[2]);
717 REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[2]));
718 if (UNTAG_Bool(REGB2)) {
719 } else {
720 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
721 REGB2 = REGB1;
722 }
723 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
724 } else {
725 REGB1 = TAG_Bool(false);
726 REGB2 = REGB1;
727 }
728 if (UNTAG_Bool(REGB2)) {
729 /* ./abstracttool.nit:120 */
730 if (!once_value_3) {
731 fra.me.REG[2] = BOX_NativeString("\tclass not visible in this module\n");
732 REGB2 = TAG_Int(34);
733 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2);
734 once_value_3 = fra.me.REG[2];
735 register_static_object(&once_value_3);
736 } else fra.me.REG[2] = once_value_3;
737 fra.me.REG[2] = fra.me.REG[2];
738 CALL_stream___OStream___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
739 } else {
740 /* ./abstracttool.nit:121 */
741 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
742 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
743 fra.me.REG[3] = CALL_abstractmetamodel___MMGlobalClass___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
744 REGB2 = CALL_abstractmetamodel___MMModule___visibility_for(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
745 REGB1 = TAG_Int(0);
746 REGB0 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
747 if (UNTAG_Bool(REGB0)) {
748 } else {
749 /* ./../lib/standard//kernel.nit:207 */
750 REGB1 = TAG_Bool((REGB2)==(REGB1));
751 /* ./abstracttool.nit:121 */
752 REGB0 = REGB1;
753 }
754 if (UNTAG_Bool(REGB0)) {
755 /* ./abstracttool.nit:122 */
756 if (!once_value_4) {
757 fra.me.REG[3] = BOX_NativeString("\tclass is defined later in the hierarchy\n");
758 REGB0 = TAG_Int(41);
759 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
760 once_value_4 = fra.me.REG[3];
761 register_static_object(&once_value_4);
762 } else fra.me.REG[3] = once_value_4;
763 fra.me.REG[3] = fra.me.REG[3];
764 CALL_stream___OStream___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
765 } else {
766 /* ./abstracttool.nit:124 */
767 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[0])(fra.me.REG[0]);
768 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_abstracttool___MMLocalClass___dump_properties_5));
769 }
770 }
771 /* ./abstracttool.nit:129 */
772 REGB0 = TAG_Int(3);
773 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
774 if (!once_value_9) {
775 fra.me.REG[2] = BOX_NativeString("end # ");
776 REGB0 = TAG_Int(6);
777 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
778 once_value_9 = fra.me.REG[2];
779 register_static_object(&once_value_9);
780 } else fra.me.REG[2] = once_value_9;
781 fra.me.REG[2] = fra.me.REG[2];
782 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
783 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
784 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
785 if (!once_value_10) {
786 fra.me.REG[0] = BOX_NativeString("\n");
787 REGB0 = TAG_Int(1);
788 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
789 once_value_10 = fra.me.REG[0];
790 register_static_object(&once_value_10);
791 } else fra.me.REG[0] = once_value_10;
792 fra.me.REG[0] = fra.me.REG[0];
793 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
794 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
795 CALL_stream___OStream___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
796 stack_frame_head = fra.me.prev;
797 return;
798 }
799 void OC_abstracttool___MMLocalClass___dump_properties_5(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
800 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
801 val_t REGB0;
802 fun_t CREG[1];
803 val_t tmp;
804 static val_t once_value_6; /* Once value */
805 static val_t once_value_7; /* Once value */
806 static val_t once_value_8; /* Once value */
807 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
808 fra.me.file = LOCATE_abstracttool;
809 fra.me.line = 0;
810 fra.me.meth = LOCATE_abstracttool___MMLocalClass___dump_properties;
811 fra.me.has_broke = 0;
812 fra.me.REG_size = 3;
813 fra.me.REG[0] = NIT_NULL;
814 fra.me.REG[1] = NIT_NULL;
815 fra.me.REG[2] = NIT_NULL;
816 fra.me.closure_ctx = closctx_param;
817 fra.me.closure_funs = CREG;
818 fra.me.REG[0] = p0;
819 CREG[0] = clos_fun0;
820 /* ./abstracttool.nit:125 */
821 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass_____bra(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
822 /* ./abstracttool.nit:126 */
823 REGB0 = TAG_Int(5);
824 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
825 if (!once_value_6) {
826 fra.me.REG[2] = BOX_NativeString("\t");
827 REGB0 = TAG_Int(1);
828 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
829 once_value_6 = fra.me.REG[2];
830 register_static_object(&once_value_6);
831 } else fra.me.REG[2] = once_value_6;
832 fra.me.REG[2] = fra.me.REG[2];
833 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
834 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
835 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
836 if (!once_value_7) {
837 fra.me.REG[2] = BOX_NativeString("");
838 REGB0 = TAG_Int(0);
839 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
840 once_value_7 = fra.me.REG[2];
841 register_static_object(&once_value_7);
842 } else fra.me.REG[2] = once_value_7;
843 fra.me.REG[2] = fra.me.REG[2];
844 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
845 fra.me.REG[2] = CALL_static_type___MMLocalClass___get_type(closctx->REG[0])(closctx->REG[0]);
846 fra.me.REG[2] = CALL_static_type___MMLocalProperty___signature_for(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
847 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
848 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
849 if (!once_value_8) {
850 fra.me.REG[2] = BOX_NativeString("\n");
851 REGB0 = TAG_Int(1);
852 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
853 once_value_8 = fra.me.REG[2];
854 register_static_object(&once_value_8);
855 } else fra.me.REG[2] = once_value_8;
856 fra.me.REG[2] = fra.me.REG[2];
857 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
858 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
859 CALL_stream___OStream___write(closctx->REG[1])(closctx->REG[1], fra.me.REG[1]);
860 stack_frame_head = fra.me.prev;
861 return;
862 }