tests: add << and >> in test_operators.nit
[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 fra.me.REG[2] = fra.me.REG[0];
20 /* ./abstracttool.nit:31 */
21 ATTR_abstracttool___AbstractCompiler____tool_name(fra.me.REG[2]) = fra.me.REG[1];
22 /* ./abstracttool.nit:32 */
23 CALL_mmloader___ToolContext___init(fra.me.REG[0])(fra.me.REG[0], init_table);
24 fra.me.REG[0] = NEW_SrcModuleLoader_syntax___SrcModuleLoader___init();
25 /* ./abstracttool.nit:33 */
26 CALL_mmloader___ToolContext___register_loader(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27 stack_frame_head = fra.me.prev;
28 init_table[itpos0] = 1;
29 return;
30 }
31 val_t abstracttool___AbstractCompiler___tool_name(val_t p0){
32 struct {struct stack_frame_t me;} fra;
33 val_t REGB0;
34 val_t tmp;
35 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36 fra.me.file = LOCATE_abstracttool;
37 fra.me.line = 36;
38 fra.me.meth = LOCATE_abstracttool___AbstractCompiler___tool_name;
39 fra.me.has_broke = 0;
40 fra.me.REG_size = 1;
41 fra.me.REG[0] = NIT_NULL;
42 fra.me.REG[0] = p0;
43 REGB0 = TAG_Bool(ATTR_abstracttool___AbstractCompiler____tool_name(fra.me.REG[0])!=NIT_NULL);
44 /* ./abstracttool.nit:36 */
45 if (UNTAG_Bool(REGB0)) {
46 } else {
47 fprintf(stderr, "Uninitialized attribute %s", "_tool_name");
48 fprintf(stderr, " (%s:%d)\n", LOCATE_abstracttool, 36);
49 nit_exit(1);
50 }
51 fra.me.REG[0] = ATTR_abstracttool___AbstractCompiler____tool_name(fra.me.REG[0]);
52 stack_frame_head = fra.me.prev;
53 return fra.me.REG[0];
54 }
55 void abstracttool___AbstractCompiler___exec_cmd_line(val_t p0){
56 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
57 val_t REGB0;
58 val_t REGB1;
59 val_t REGB2;
60 val_t tmp;
61 static val_t once_value_1; /* Once value */
62 static val_t once_value_2; /* Once value */
63 static val_t once_value_3; /* Once value */
64 static val_t once_value_4; /* Once value */
65 static val_t once_value_5; /* Once value */
66 static val_t once_value_6; /* Once value */
67 static val_t once_value_7; /* Once value */
68 static val_t once_value_8; /* Once value */
69 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
70 fra.me.file = LOCATE_abstracttool;
71 fra.me.line = 40;
72 fra.me.meth = LOCATE_abstracttool___AbstractCompiler___exec_cmd_line;
73 fra.me.has_broke = 0;
74 fra.me.REG_size = 5;
75 fra.me.REG[0] = NIT_NULL;
76 fra.me.REG[1] = NIT_NULL;
77 fra.me.REG[2] = NIT_NULL;
78 fra.me.REG[3] = NIT_NULL;
79 fra.me.REG[4] = 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 fra.me.REG[1] = CALL_mmloader___ToolContext___opt_version(fra.me.REG[0])(fra.me.REG[0]);
84 fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[1])(fra.me.REG[1]);
85 /* ./abstracttool.nit:44 */
86 if (UNTAG_Bool(fra.me.REG[1])) {
87 REGB0 = TAG_Int(5);
88 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
89 /* ./abstracttool.nit:45 */
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 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
98 fra.me.REG[2] = CALL_abstracttool___AbstractCompiler___tool_name(fra.me.REG[0])(fra.me.REG[0]);
99 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
100 if (!once_value_2) {
101 fra.me.REG[2] = BOX_NativeString(" version ");
102 REGB0 = TAG_Int(9);
103 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
104 once_value_2 = fra.me.REG[2];
105 register_static_object(&once_value_2);
106 } else fra.me.REG[2] = once_value_2;
107 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
108 fra.me.REG[2] = CALL_nit_version___Object___nit_version(fra.me.REG[0])(fra.me.REG[0]);
109 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
110 if (!once_value_3) {
111 fra.me.REG[2] = BOX_NativeString("");
112 REGB0 = TAG_Int(0);
113 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
114 once_value_3 = fra.me.REG[2];
115 register_static_object(&once_value_3);
116 } else fra.me.REG[2] = once_value_3;
117 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
118 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
119 CALL_file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
120 REGB0 = TAG_Int(0);
121 /* ./abstracttool.nit:46 */
122 CALL_kernel___Object___exit(fra.me.REG[0])(fra.me.REG[0], REGB0);
123 }
124 fra.me.REG[1] = CALL_mmloader___ToolContext___opt_help(fra.me.REG[0])(fra.me.REG[0]);
125 fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[1])(fra.me.REG[1]);
126 /* ./abstracttool.nit:49 */
127 if (UNTAG_Bool(fra.me.REG[1])) {
128 REGB0 = TAG_Int(3);
129 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
130 /* ./abstracttool.nit:50 */
131 if (!once_value_4) {
132 fra.me.REG[2] = BOX_NativeString("usage: ");
133 REGB0 = TAG_Int(7);
134 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
135 once_value_4 = fra.me.REG[2];
136 register_static_object(&once_value_4);
137 } else fra.me.REG[2] = once_value_4;
138 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
139 fra.me.REG[2] = CALL_abstracttool___AbstractCompiler___tool_name(fra.me.REG[0])(fra.me.REG[0]);
140 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
141 if (!once_value_5) {
142 fra.me.REG[2] = BOX_NativeString(" [options] file...");
143 REGB0 = TAG_Int(18);
144 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
145 once_value_5 = fra.me.REG[2];
146 register_static_object(&once_value_5);
147 } else fra.me.REG[2] = once_value_5;
148 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
149 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
150 CALL_file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
151 fra.me.REG[1] = CALL_mmloader___ToolContext___option_context(fra.me.REG[0])(fra.me.REG[0]);
152 /* ./abstracttool.nit:51 */
153 CALL_opts___OptionContext___usage(fra.me.REG[1])(fra.me.REG[1]);
154 REGB0 = TAG_Int(0);
155 /* ./abstracttool.nit:52 */
156 CALL_kernel___Object___exit(fra.me.REG[0])(fra.me.REG[0], REGB0);
157 }
158 fra.me.REG[1] = CALL_mmloader___ToolContext___option_context(fra.me.REG[0])(fra.me.REG[0]);
159 fra.me.REG[1] = CALL_opts___OptionContext___rest(fra.me.REG[1])(fra.me.REG[1]);
160 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
161 /* ./../lib/standard//collection//array.nit:23 */
162 if (UNTAG_Bool(REGB0)) {
163 } else {
164 fprintf(stderr, "Uninitialized attribute %s", "_length");
165 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
166 nit_exit(1);
167 }
168 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
169 REGB1 = TAG_Int(0);
170 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
171 /* ./abstracttool.nit:55 */
172 if (UNTAG_Bool(REGB2)) {
173 } else {
174 REGB1 = TAG_Bool((REGB0)==(REGB1));
175 REGB2 = REGB1;
176 /* ./abstracttool.nit:55 */
177 }
178 if (UNTAG_Bool(REGB2)) {
179 REGB2 = TAG_Int(3);
180 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB2);
181 /* ./abstracttool.nit:56 */
182 if (!once_value_6) {
183 fra.me.REG[2] = BOX_NativeString("usage: ");
184 REGB2 = TAG_Int(7);
185 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2);
186 once_value_6 = fra.me.REG[2];
187 register_static_object(&once_value_6);
188 } else fra.me.REG[2] = once_value_6;
189 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
190 fra.me.REG[2] = CALL_abstracttool___AbstractCompiler___tool_name(fra.me.REG[0])(fra.me.REG[0]);
191 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
192 if (!once_value_7) {
193 fra.me.REG[2] = BOX_NativeString(" [options] file...");
194 REGB2 = TAG_Int(18);
195 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2);
196 once_value_7 = fra.me.REG[2];
197 register_static_object(&once_value_7);
198 } else fra.me.REG[2] = once_value_7;
199 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
200 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
201 CALL_file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
202 fra.me.REG[1] = CALL_mmloader___ToolContext___option_context(fra.me.REG[0])(fra.me.REG[0]);
203 /* ./abstracttool.nit:57 */
204 CALL_opts___OptionContext___usage(fra.me.REG[1])(fra.me.REG[1]);
205 REGB2 = TAG_Int(1);
206 /* ./abstracttool.nit:58 */
207 CALL_kernel___Object___exit(fra.me.REG[0])(fra.me.REG[0], REGB2);
208 }
209 fra.me.REG[1] = CALL_mmloader___ToolContext___option_context(fra.me.REG[0])(fra.me.REG[0]);
210 fra.me.REG[1] = CALL_opts___OptionContext___rest(fra.me.REG[1])(fra.me.REG[1]);
211 fra.me.REG[2] = NEW_Array_array___Array___init();
212 /* ./abstracttool.nit:63 */
213 if (!once_value_8) {
214 fra.me.REG[3] = BOX_NativeString("Syntax analysis");
215 REGB2 = TAG_Int(15);
216 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB2);
217 once_value_8 = fra.me.REG[3];
218 register_static_object(&once_value_8);
219 } else fra.me.REG[3] = once_value_8;
220 REGB2 = TAG_Int(1);
221 CALL_mmloader___ToolContext___info(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], REGB2);
222 REGB2 = TAG_Int(0);
223 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
224 /* ./../lib/standard//collection//array.nit:23 */
225 if (UNTAG_Bool(REGB1)) {
226 } else {
227 fprintf(stderr, "Uninitialized attribute %s", "_length");
228 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
229 nit_exit(1);
230 }
231 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
232 fra.me.REG[3] = NEW_Range_range___Range___without_last(REGB2, REGB1);
233 fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]);
234 /* ./abstracttool.nit:64 */
235 while(1) {
236 REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]);
237 if (UNTAG_Bool(REGB1)) {
238 REGB1 = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]);
239 fra.me.REG[4] = fra.me.REG[1];
240 REGB2 = TAG_Int(0);
241 REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
242 /* ./../lib/standard//collection//array.nit:233 */
243 if (UNTAG_Bool(REGB2)) {
244 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
245 if (UNTAG_Bool(REGB2)) {
246 } else {
247 fprintf(stderr, "Uninitialized attribute %s", "_length");
248 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
249 nit_exit(1);
250 }
251 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]);
252 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
253 /* ./../lib/standard//collection//array.nit:233 */
254 } else {
255 REGB0 = TAG_Bool(false);
256 REGB2 = REGB0;
257 }
258 if (UNTAG_Bool(REGB2)) {
259 } else {
260 fprintf(stderr, "Assert %s failed", "'index'");
261 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
262 nit_exit(1);
263 }
264 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[4]);
265 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
266 /* ./../lib/standard//collection//array.nit:234 */
267 if (UNTAG_Bool(REGB2)) {
268 fprintf(stderr, "Reciever is null");
269 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
270 nit_exit(1);
271 }
272 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB1)];
273 /* ./../lib/standard//collection//array.nit:234 */
274 goto label9;
275 label9: while(0);
276 fra.me.REG[4] = CALL_mmloader___ToolContext___get_module_from_filename(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
277 /* ./abstracttool.nit:66 */
278 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
279 } else {
280 /* ./abstracttool.nit:64 */
281 goto label10;
282 }
283 CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]);
284 }
285 label10: while(0);
286 fra.me.REG[3] = CALL_mmloader___ToolContext___opt_log(fra.me.REG[0])(fra.me.REG[0]);
287 fra.me.REG[3] = CALL_opts___Option___value(fra.me.REG[3])(fra.me.REG[3]);
288 /* ./abstracttool.nit:68 */
289 if (UNTAG_Bool(fra.me.REG[3])) {
290 /* ./abstracttool.nit:69 */
291 CALL_abstracttool___AbstractCompiler___dump_context_info(fra.me.REG[0])(fra.me.REG[0]);
292 }
293 REGB1 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
294 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
295 /* ./abstracttool.nit:72 */
296 if (UNTAG_Bool(REGB1)) {
297 fra.me.REG[3] = CALL_mmloader___ToolContext___opt_only_metamodel(fra.me.REG[0])(fra.me.REG[0]);
298 fra.me.REG[3] = CALL_opts___Option___value(fra.me.REG[3])(fra.me.REG[3]);
299 REGB1 = TAG_Bool(!UNTAG_Bool(fra.me.REG[3]));
300 } else {
301 REGB2 = TAG_Bool(false);
302 REGB1 = REGB2;
303 }
304 if (UNTAG_Bool(REGB1)) {
305 fra.me.REG[3] = CALL_mmloader___ToolContext___opt_only_parse(fra.me.REG[0])(fra.me.REG[0]);
306 fra.me.REG[3] = CALL_opts___Option___value(fra.me.REG[3])(fra.me.REG[3]);
307 REGB1 = TAG_Bool(!UNTAG_Bool(fra.me.REG[3]));
308 } else {
309 REGB2 = TAG_Bool(false);
310 REGB1 = REGB2;
311 }
312 if (UNTAG_Bool(REGB1)) {
313 /* ./abstracttool.nit:73 */
314 CALL_abstracttool___AbstractCompiler___perform_work(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
315 }
316 stack_frame_head = fra.me.prev;
317 return;
318 }
319 void abstracttool___AbstractCompiler___perform_work(val_t p0, val_t p1){
320 struct {struct stack_frame_t me;} fra;
321 val_t tmp;
322 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
323 fra.me.file = LOCATE_abstracttool;
324 fra.me.line = 77;
325 fra.me.meth = LOCATE_abstracttool___AbstractCompiler___perform_work;
326 fra.me.has_broke = 0;
327 fra.me.REG_size = 0;
328 /* ./abstracttool.nit:77 */
329 fprintf(stderr, "Deferred method called");
330 fprintf(stderr, " (%s:%d)\n", LOCATE_abstracttool, 77);
331 nit_exit(1);
332 stack_frame_head = fra.me.prev;
333 return;
334 }
335 void abstracttool___AbstractCompiler___dump_context_info(val_t p0){
336 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
337 val_t REGB0;
338 val_t tmp;
339 static val_t once_value_2; /* Once value */
340 static val_t once_value_3; /* Once value */
341 static val_t once_value_4; /* Once value */
342 static val_t once_value_5; /* Once value */
343 static val_t once_value_6; /* Once value */
344 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
345 fra.me.file = LOCATE_abstracttool;
346 fra.me.line = 79;
347 fra.me.meth = LOCATE_abstracttool___AbstractCompiler___dump_context_info;
348 fra.me.has_broke = 0;
349 fra.me.REG_size = 5;
350 fra.me.REG[0] = NIT_NULL;
351 fra.me.REG[1] = NIT_NULL;
352 fra.me.REG[2] = NIT_NULL;
353 fra.me.REG[3] = NIT_NULL;
354 fra.me.REG[4] = NIT_NULL;
355 fra.me.REG[0] = p0;
356 fra.me.REG[1] = CALL_abstractmetamodel___MMContext___module_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
357 fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]);
358 /* ./abstracttool.nit:81 */
359 while(1) {
360 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
361 if (UNTAG_Bool(REGB0)) {
362 fra.me.REG[2] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
363 /* ./abstracttool.nit:82 */
364 CALL_abstracttool___MMModule___dump_module_info(fra.me.REG[2])(fra.me.REG[2]);
365 } else {
366 /* ./abstracttool.nit:81 */
367 goto label1;
368 }
369 CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
370 }
371 label1: while(0);
372 fra.me.REG[1] = NEW_Array_array___Array___init();
373 fra.me.REG[2] = CALL_abstractmetamodel___MMContext___module_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
374 /* ./abstracttool.nit:85 */
375 CALL_abstract_collection___SimpleCollection___add_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
376 fra.me.REG[2] = CALL_abstractmetamodel___MMContext___module_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
377 fra.me.REG[1] = CALL_partial_order___PartialOrder___select_smallests(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
378 /* ./abstracttool.nit:86 */
379 if (!once_value_2) {
380 fra.me.REG[2] = BOX_NativeString("-");
381 REGB0 = TAG_Int(1);
382 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
383 once_value_2 = fra.me.REG[2];
384 register_static_object(&once_value_2);
385 } else fra.me.REG[2] = once_value_2;
386 fra.me.REG[2] = CALL_string___Collection___join(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
387 REGB0 = TAG_Int(3);
388 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
389 /* ./abstracttool.nit:88 */
390 if (!once_value_3) {
391 fra.me.REG[3] = BOX_NativeString("");
392 REGB0 = TAG_Int(0);
393 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
394 once_value_3 = fra.me.REG[3];
395 register_static_object(&once_value_3);
396 } else fra.me.REG[3] = once_value_3;
397 array___Array___add(fra.me.REG[1], fra.me.REG[3]);
398 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
399 if (!once_value_4) {
400 fra.me.REG[3] = BOX_NativeString(".full_class_hierarchy.new.dot");
401 REGB0 = TAG_Int(29);
402 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
403 once_value_4 = fra.me.REG[3];
404 register_static_object(&once_value_4);
405 } else fra.me.REG[3] = once_value_4;
406 array___Array___add(fra.me.REG[1], fra.me.REG[3]);
407 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
408 fra.me.REG[1] = NEW_OFStream_file___OFStream___open(fra.me.REG[1]);
409 fra.me.REG[3] = CALL_abstractmetamodel___MMContext___class_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
410 fra.me.REG[3] = CALL_partial_order___PartialOrder___to_dot(fra.me.REG[3])(fra.me.REG[3]);
411 /* ./abstracttool.nit:89 */
412 CALL_stream___OStream___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
413 /* ./abstracttool.nit:90 */
414 CALL_stream___IOS___close(fra.me.REG[1])(fra.me.REG[1]);
415 REGB0 = TAG_Int(3);
416 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
417 /* ./abstracttool.nit:92 */
418 if (!once_value_5) {
419 fra.me.REG[4] = BOX_NativeString("");
420 REGB0 = TAG_Int(0);
421 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
422 once_value_5 = fra.me.REG[4];
423 register_static_object(&once_value_5);
424 } else fra.me.REG[4] = once_value_5;
425 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
426 array___Array___add(fra.me.REG[3], fra.me.REG[2]);
427 if (!once_value_6) {
428 fra.me.REG[2] = BOX_NativeString(".module_hierarchy.new.dot");
429 REGB0 = TAG_Int(25);
430 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
431 once_value_6 = fra.me.REG[2];
432 register_static_object(&once_value_6);
433 } else fra.me.REG[2] = once_value_6;
434 array___Array___add(fra.me.REG[3], fra.me.REG[2]);
435 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
436 fra.me.REG[3] = NEW_OFStream_file___OFStream___open(fra.me.REG[3]);
437 fra.me.REG[1] = fra.me.REG[3];
438 fra.me.REG[0] = CALL_abstractmetamodel___MMContext___module_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
439 fra.me.REG[0] = CALL_partial_order___PartialOrder___to_dot(fra.me.REG[0])(fra.me.REG[0]);
440 /* ./abstracttool.nit:93 */
441 CALL_stream___OStream___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
442 /* ./abstracttool.nit:94 */
443 CALL_stream___IOS___close(fra.me.REG[1])(fra.me.REG[1]);
444 stack_frame_head = fra.me.prev;
445 return;
446 }
447 void abstracttool___MMModule___dump_module_info(val_t p0){
448 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
449 val_t REGB0;
450 val_t tmp;
451 static val_t once_value_1; /* Once value */
452 static val_t once_value_2; /* Once value */
453 static val_t once_value_3; /* Once value */
454 static val_t once_value_4; /* Once value */
455 static val_t once_value_5; /* Once value */
456 static val_t once_value_6; /* Once value */
457 static val_t once_value_7; /* Once value */
458 static val_t once_value_8; /* Once value */
459 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
460 fra.me.file = LOCATE_abstracttool;
461 fra.me.line = 99;
462 fra.me.meth = LOCATE_abstracttool___MMModule___dump_module_info;
463 fra.me.has_broke = 0;
464 fra.me.REG_size = 5;
465 fra.me.REG[0] = NIT_NULL;
466 fra.me.REG[1] = NIT_NULL;
467 fra.me.REG[2] = NIT_NULL;
468 fra.me.REG[3] = NIT_NULL;
469 fra.me.REG[4] = NIT_NULL;
470 fra.me.REG[0] = p0;
471 fra.me.REG[1] = CALL_abstractmetamodel___MMModule___location(fra.me.REG[0])(fra.me.REG[0]);
472 fra.me.REG[1] = CALL_location___Location___file(fra.me.REG[1])(fra.me.REG[1]);
473 fra.me.REG[1] = CALL_file___String___file_path(fra.me.REG[1])(fra.me.REG[1]);
474 REGB0 = TAG_Int(5);
475 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
476 /* ./abstracttool.nit:102 */
477 if (!once_value_1) {
478 fra.me.REG[3] = BOX_NativeString("");
479 REGB0 = TAG_Int(0);
480 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
481 once_value_1 = fra.me.REG[3];
482 register_static_object(&once_value_1);
483 } else fra.me.REG[3] = once_value_1;
484 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
485 array___Array___add(fra.me.REG[2], fra.me.REG[1]);
486 if (!once_value_2) {
487 fra.me.REG[1] = BOX_NativeString("/");
488 REGB0 = TAG_Int(1);
489 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
490 once_value_2 = fra.me.REG[1];
491 register_static_object(&once_value_2);
492 } else fra.me.REG[1] = once_value_2;
493 array___Array___add(fra.me.REG[2], fra.me.REG[1]);
494 fra.me.REG[1] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[0])(fra.me.REG[0]);
495 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
496 array___Array___add(fra.me.REG[2], fra.me.REG[1]);
497 if (!once_value_3) {
498 fra.me.REG[1] = BOX_NativeString("");
499 REGB0 = TAG_Int(0);
500 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
501 once_value_3 = fra.me.REG[1];
502 register_static_object(&once_value_3);
503 } else fra.me.REG[1] = once_value_3;
504 array___Array___add(fra.me.REG[2], fra.me.REG[1]);
505 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
506 REGB0 = TAG_Int(3);
507 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
508 /* ./abstracttool.nit:103 */
509 if (!once_value_4) {
510 fra.me.REG[3] = BOX_NativeString("");
511 REGB0 = TAG_Int(0);
512 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
513 once_value_4 = fra.me.REG[3];
514 register_static_object(&once_value_4);
515 } else fra.me.REG[3] = once_value_4;
516 array___Array___add(fra.me.REG[1], fra.me.REG[3]);
517 array___Array___add(fra.me.REG[1], fra.me.REG[2]);
518 if (!once_value_5) {
519 fra.me.REG[3] = BOX_NativeString(".class_hierarchy.new.dot");
520 REGB0 = TAG_Int(24);
521 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
522 once_value_5 = fra.me.REG[3];
523 register_static_object(&once_value_5);
524 } else fra.me.REG[3] = once_value_5;
525 array___Array___add(fra.me.REG[1], fra.me.REG[3]);
526 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
527 fra.me.REG[1] = NEW_OFStream_file___OFStream___open(fra.me.REG[1]);
528 fra.me.REG[3] = CALL_abstractmetamodel___MMModule___class_specialization_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
529 fra.me.REG[3] = CALL_partial_order___PartialOrder___to_dot(fra.me.REG[3])(fra.me.REG[3]);
530 /* ./abstracttool.nit:104 */
531 CALL_stream___OStream___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
532 /* ./abstracttool.nit:105 */
533 CALL_stream___IOS___close(fra.me.REG[1])(fra.me.REG[1]);
534 REGB0 = TAG_Int(3);
535 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
536 /* ./abstracttool.nit:107 */
537 if (!once_value_6) {
538 fra.me.REG[4] = BOX_NativeString("");
539 REGB0 = TAG_Int(0);
540 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
541 once_value_6 = fra.me.REG[4];
542 register_static_object(&once_value_6);
543 } else fra.me.REG[4] = once_value_6;
544 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
545 array___Array___add(fra.me.REG[3], fra.me.REG[2]);
546 if (!once_value_7) {
547 fra.me.REG[2] = BOX_NativeString(".properties.log");
548 REGB0 = TAG_Int(15);
549 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
550 once_value_7 = fra.me.REG[2];
551 register_static_object(&once_value_7);
552 } else fra.me.REG[2] = once_value_7;
553 array___Array___add(fra.me.REG[3], fra.me.REG[2]);
554 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
555 fra.me.REG[3] = NEW_OFStream_file___OFStream___open(fra.me.REG[3]);
556 fra.me.REG[1] = fra.me.REG[3];
557 fra.me.REG[0] = CALL_abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
558 fra.me.REG[0] = CALL_abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
559 /* ./abstracttool.nit:108 */
560 while(1) {
561 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
562 if (UNTAG_Bool(REGB0)) {
563 fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[0])(fra.me.REG[0]);
564 /* ./abstracttool.nit:109 */
565 CALL_abstracttool___MMLocalClass___dump_properties(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
566 /* ./abstracttool.nit:110 */
567 if (!once_value_8) {
568 fra.me.REG[3] = BOX_NativeString("\n");
569 REGB0 = TAG_Int(1);
570 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
571 once_value_8 = fra.me.REG[3];
572 register_static_object(&once_value_8);
573 } else fra.me.REG[3] = once_value_8;
574 CALL_stream___OStream___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
575 } else {
576 /* ./abstracttool.nit:108 */
577 goto label9;
578 }
579 CALL_abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
580 }
581 label9: while(0);
582 /* ./abstracttool.nit:112 */
583 CALL_stream___IOS___close(fra.me.REG[1])(fra.me.REG[1]);
584 stack_frame_head = fra.me.prev;
585 return;
586 }
587 void abstracttool___MMLocalClass___dump_properties(val_t p0, val_t p1){
588 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
589 val_t REGB0;
590 val_t tmp;
591 static val_t once_value_1; /* Once value */
592 static val_t once_value_2; /* Once value */
593 static val_t once_value_3; /* Once value */
594 static val_t once_value_4; /* Once value */
595 static val_t once_value_5; /* Once value */
596 static val_t once_value_7; /* Once value */
597 static val_t once_value_8; /* Once value */
598 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
599 fra.me.file = LOCATE_abstracttool;
600 fra.me.line = 117;
601 fra.me.meth = LOCATE_abstracttool___MMLocalClass___dump_properties;
602 fra.me.has_broke = 0;
603 fra.me.REG_size = 6;
604 fra.me.REG[0] = NIT_NULL;
605 fra.me.REG[1] = NIT_NULL;
606 fra.me.REG[2] = NIT_NULL;
607 fra.me.REG[3] = NIT_NULL;
608 fra.me.REG[4] = NIT_NULL;
609 fra.me.REG[5] = NIT_NULL;
610 fra.me.REG[0] = p0;
611 fra.me.REG[1] = p1;
612 REGB0 = TAG_Int(3);
613 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
614 /* ./abstracttool.nit:119 */
615 if (!once_value_1) {
616 fra.me.REG[3] = BOX_NativeString("class ");
617 REGB0 = TAG_Int(6);
618 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
619 once_value_1 = fra.me.REG[3];
620 register_static_object(&once_value_1);
621 } else fra.me.REG[3] = once_value_1;
622 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
623 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
624 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
625 if (!once_value_2) {
626 fra.me.REG[3] = BOX_NativeString("\n");
627 REGB0 = TAG_Int(1);
628 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
629 once_value_2 = fra.me.REG[3];
630 register_static_object(&once_value_2);
631 } else fra.me.REG[3] = once_value_2;
632 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
633 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
634 CALL_stream___OStream___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
635 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[0])(fra.me.REG[0]);
636 fra.me.REG[2] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
637 /* ./abstracttool.nit:120 */
638 while(1) {
639 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[2])(fra.me.REG[2]);
640 if (UNTAG_Bool(REGB0)) {
641 fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[2])(fra.me.REG[2]);
642 fra.me.REG[3] = CALL_abstractmetamodel___MMLocalClass_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
643 REGB0 = TAG_Int(5);
644 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
645 /* ./abstracttool.nit:122 */
646 if (!once_value_3) {
647 fra.me.REG[5] = BOX_NativeString("\t");
648 REGB0 = TAG_Int(1);
649 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
650 once_value_3 = fra.me.REG[5];
651 register_static_object(&once_value_3);
652 } else fra.me.REG[5] = once_value_3;
653 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
654 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
655 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
656 if (!once_value_4) {
657 fra.me.REG[5] = BOX_NativeString("");
658 REGB0 = TAG_Int(0);
659 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
660 once_value_4 = fra.me.REG[5];
661 register_static_object(&once_value_4);
662 } else fra.me.REG[5] = once_value_4;
663 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
664 fra.me.REG[5] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[0])(fra.me.REG[0]);
665 fra.me.REG[5] = CALL_static_type___MMLocalProperty___signature_for(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
666 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
667 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
668 if (!once_value_5) {
669 fra.me.REG[5] = BOX_NativeString("\n");
670 REGB0 = TAG_Int(1);
671 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
672 once_value_5 = fra.me.REG[5];
673 register_static_object(&once_value_5);
674 } else fra.me.REG[5] = once_value_5;
675 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
676 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
677 CALL_stream___OStream___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
678 } else {
679 /* ./abstracttool.nit:120 */
680 goto label6;
681 }
682 CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]);
683 }
684 label6: while(0);
685 REGB0 = TAG_Int(3);
686 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
687 /* ./abstracttool.nit:124 */
688 if (!once_value_7) {
689 fra.me.REG[4] = BOX_NativeString("end # ");
690 REGB0 = TAG_Int(6);
691 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
692 once_value_7 = fra.me.REG[4];
693 register_static_object(&once_value_7);
694 } else fra.me.REG[4] = once_value_7;
695 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
696 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
697 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
698 if (!once_value_8) {
699 fra.me.REG[0] = BOX_NativeString("\n");
700 REGB0 = TAG_Int(1);
701 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
702 once_value_8 = fra.me.REG[0];
703 register_static_object(&once_value_8);
704 } else fra.me.REG[0] = once_value_8;
705 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
706 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
707 CALL_stream___OStream___write(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
708 stack_frame_head = fra.me.prev;
709 return;
710 }