c_src: update
[nit.git] / c_src / mmloader._sep.c
1 /* This C file is generated by NIT to compile module mmloader. */
2 #include "mmloader._sep.h"
3 val_t mmloader___Message_____l(val_t p0, val_t p1){
4 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
5 val_t REGB0;
6 val_t REGB1;
7 val_t REGB2;
8 val_t tmp;
9 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10 fra.me.file = LOCATE_mmloader;
11 fra.me.line = 33;
12 fra.me.meth = LOCATE_mmloader___Message_____l;
13 fra.me.has_broke = 0;
14 fra.me.REG_size = 3;
15 fra.me.REG[0] = NIT_NULL;
16 fra.me.REG[1] = NIT_NULL;
17 fra.me.REG[2] = NIT_NULL;
18 fra.me.REG[0] = p0;
19 fra.me.REG[1] = p1;
20 fra.me.REG[2] = CALL_mmloader___Message___location(fra.me.REG[0])(fra.me.REG[0]);
21 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22 /* ./mmloader.nit:34 */
23 if (UNTAG_Bool(REGB0)) {
24 } else {
25 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26 if (UNTAG_Bool(REGB1)) {
27 REGB1 = TAG_Bool(false);
28 REGB0 = REGB1;
29 } else {
30 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31 REGB0 = REGB1;
32 }
33 }
34 if (UNTAG_Bool(REGB0)) {
35 REGB0 = TAG_Bool(true);
36 goto label1;
37 }
38 fra.me.REG[2] = CALL_mmloader___Message___location(fra.me.REG[1])(fra.me.REG[1]);
39 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40 /* ./mmloader.nit:35 */
41 if (UNTAG_Bool(REGB1)) {
42 } else {
43 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44 if (UNTAG_Bool(REGB2)) {
45 REGB2 = TAG_Bool(false);
46 REGB1 = REGB2;
47 } else {
48 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
49 REGB1 = REGB2;
50 }
51 }
52 if (UNTAG_Bool(REGB1)) {
53 REGB1 = TAG_Bool(false);
54 REGB0 = REGB1;
55 goto label1;
56 }
57 fra.me.REG[0] = CALL_mmloader___Message___location(fra.me.REG[0])(fra.me.REG[0]);
58 REGB1 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
59 /* ./mmloader.nit:37 */
60 if (UNTAG_Bool(REGB1)) {
61 } else {
62 fprintf(stderr, "Cast failed");
63 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 37);
64 nit_exit(1);
65 }
66 fra.me.REG[1] = CALL_mmloader___Message___location(fra.me.REG[1])(fra.me.REG[1]);
67 REGB1 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
68 if (UNTAG_Bool(REGB1)) {
69 } else {
70 fprintf(stderr, "Cast failed");
71 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 37);
72 nit_exit(1);
73 }
74 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
75 if (UNTAG_Bool(REGB1)) {
76 fprintf(stderr, "Reciever is null");
77 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 37);
78 nit_exit(1);
79 }
80 REGB1 = CALL_kernel___Comparable_____l(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
81 REGB0 = REGB1;
82 goto label1;
83 label1: while(0);
84 stack_frame_head = fra.me.prev;
85 return REGB0;
86 }
87 val_t mmloader___Message___to_s(val_t p0){
88 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
89 val_t REGB0;
90 val_t REGB1;
91 val_t tmp;
92 static val_t once_value_2; /* Once value */
93 static val_t once_value_3; /* Once value */
94 static val_t once_value_4; /* Once value */
95 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
96 fra.me.file = LOCATE_mmloader;
97 fra.me.line = 40;
98 fra.me.meth = LOCATE_mmloader___Message___to_s;
99 fra.me.has_broke = 0;
100 fra.me.REG_size = 4;
101 fra.me.REG[0] = NIT_NULL;
102 fra.me.REG[1] = NIT_NULL;
103 fra.me.REG[2] = NIT_NULL;
104 fra.me.REG[3] = NIT_NULL;
105 fra.me.REG[0] = p0;
106 fra.me.REG[1] = CALL_mmloader___Message___location(fra.me.REG[0])(fra.me.REG[0]);
107 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
108 /* ./mmloader.nit:41 */
109 if (UNTAG_Bool(REGB0)) {
110 } else {
111 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
112 if (UNTAG_Bool(REGB1)) {
113 REGB1 = TAG_Bool(false);
114 REGB0 = REGB1;
115 } else {
116 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
117 REGB0 = REGB1;
118 }
119 }
120 if (UNTAG_Bool(REGB0)) {
121 fra.me.REG[1] = CALL_mmloader___Message___text(fra.me.REG[0])(fra.me.REG[0]);
122 /* ./mmloader.nit:42 */
123 goto label1;
124 } else {
125 REGB0 = TAG_Int(5);
126 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
127 /* ./mmloader.nit:44 */
128 if (!once_value_2) {
129 fra.me.REG[3] = BOX_NativeString("");
130 REGB0 = TAG_Int(0);
131 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
132 once_value_2 = fra.me.REG[3];
133 register_static_object(&once_value_2);
134 } else fra.me.REG[3] = once_value_2;
135 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
136 fra.me.REG[3] = CALL_mmloader___Message___location(fra.me.REG[0])(fra.me.REG[0]);
137 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
138 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
139 if (!once_value_3) {
140 fra.me.REG[3] = BOX_NativeString(": ");
141 REGB0 = TAG_Int(2);
142 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
143 once_value_3 = fra.me.REG[3];
144 register_static_object(&once_value_3);
145 } else fra.me.REG[3] = once_value_3;
146 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
147 fra.me.REG[0] = CALL_mmloader___Message___text(fra.me.REG[0])(fra.me.REG[0]);
148 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
149 if (!once_value_4) {
150 fra.me.REG[0] = BOX_NativeString("");
151 REGB0 = TAG_Int(0);
152 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
153 once_value_4 = fra.me.REG[0];
154 register_static_object(&once_value_4);
155 } else fra.me.REG[0] = once_value_4;
156 array___Array___add(fra.me.REG[2], fra.me.REG[0]);
157 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
158 fra.me.REG[1] = fra.me.REG[2];
159 goto label1;
160 }
161 label1: while(0);
162 stack_frame_head = fra.me.prev;
163 return fra.me.REG[1];
164 }
165 val_t mmloader___Message___location(val_t p0){
166 struct {struct stack_frame_t me;} fra;
167 val_t tmp;
168 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
169 fra.me.file = LOCATE_mmloader;
170 fra.me.line = 30;
171 fra.me.meth = LOCATE_mmloader___Message___location;
172 fra.me.has_broke = 0;
173 fra.me.REG_size = 1;
174 fra.me.REG[0] = NIT_NULL;
175 fra.me.REG[0] = p0;
176 fra.me.REG[0] = ATTR_mmloader___Message____location(fra.me.REG[0]);
177 /* ./mmloader.nit:30 */
178 stack_frame_head = fra.me.prev;
179 return fra.me.REG[0];
180 }
181 val_t mmloader___Message___text(val_t p0){
182 struct {struct stack_frame_t me;} fra;
183 val_t REGB0;
184 val_t tmp;
185 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
186 fra.me.file = LOCATE_mmloader;
187 fra.me.line = 31;
188 fra.me.meth = LOCATE_mmloader___Message___text;
189 fra.me.has_broke = 0;
190 fra.me.REG_size = 1;
191 fra.me.REG[0] = NIT_NULL;
192 fra.me.REG[0] = p0;
193 REGB0 = TAG_Bool(ATTR_mmloader___Message____text(fra.me.REG[0])!=NIT_NULL);
194 /* ./mmloader.nit:31 */
195 if (UNTAG_Bool(REGB0)) {
196 } else {
197 fprintf(stderr, "Uninitialized attribute %s", "_text");
198 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 31);
199 nit_exit(1);
200 }
201 fra.me.REG[0] = ATTR_mmloader___Message____text(fra.me.REG[0]);
202 stack_frame_head = fra.me.prev;
203 return fra.me.REG[0];
204 }
205 void mmloader___Message___init(val_t p0, val_t p1, val_t p2, int* init_table){
206 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_Message].i;
207 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
208 val_t tmp;
209 if (init_table[itpos0]) return;
210 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
211 fra.me.file = LOCATE_mmloader;
212 fra.me.line = 0;
213 fra.me.meth = LOCATE_mmloader___Message___init;
214 fra.me.has_broke = 0;
215 fra.me.REG_size = 3;
216 fra.me.REG[0] = NIT_NULL;
217 fra.me.REG[1] = NIT_NULL;
218 fra.me.REG[2] = NIT_NULL;
219 fra.me.REG[0] = p0;
220 fra.me.REG[1] = p1;
221 fra.me.REG[2] = p2;
222 ATTR_mmloader___Message____location(fra.me.REG[0]) = fra.me.REG[1];
223 ATTR_mmloader___Message____text(fra.me.REG[0]) = fra.me.REG[2];
224 stack_frame_head = fra.me.prev;
225 init_table[itpos0] = 1;
226 return;
227 }
228 val_t mmloader___ToolContext___error_count(val_t p0){
229 struct {struct stack_frame_t me;} fra;
230 val_t REGB0;
231 val_t tmp;
232 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
233 fra.me.file = LOCATE_mmloader;
234 fra.me.line = 52;
235 fra.me.meth = LOCATE_mmloader___ToolContext___error_count;
236 fra.me.has_broke = 0;
237 fra.me.REG_size = 1;
238 fra.me.REG[0] = NIT_NULL;
239 fra.me.REG[0] = p0;
240 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____error_count(fra.me.REG[0])!=NIT_NULL);
241 /* ./mmloader.nit:52 */
242 if (UNTAG_Bool(REGB0)) {
243 } else {
244 fprintf(stderr, "Uninitialized attribute %s", "_error_count");
245 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 52);
246 nit_exit(1);
247 }
248 REGB0 = ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]);
249 stack_frame_head = fra.me.prev;
250 return REGB0;
251 }
252 val_t mmloader___ToolContext___warning_count(val_t p0){
253 struct {struct stack_frame_t me;} fra;
254 val_t REGB0;
255 val_t tmp;
256 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
257 fra.me.file = LOCATE_mmloader;
258 fra.me.line = 55;
259 fra.me.meth = LOCATE_mmloader___ToolContext___warning_count;
260 fra.me.has_broke = 0;
261 fra.me.REG_size = 1;
262 fra.me.REG[0] = NIT_NULL;
263 fra.me.REG[0] = p0;
264 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0])!=NIT_NULL);
265 /* ./mmloader.nit:55 */
266 if (UNTAG_Bool(REGB0)) {
267 } else {
268 fprintf(stderr, "Uninitialized attribute %s", "_warning_count");
269 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 55);
270 nit_exit(1);
271 }
272 REGB0 = ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0]);
273 stack_frame_head = fra.me.prev;
274 return REGB0;
275 }
276 void mmloader___ToolContext___check_errors(val_t p0){
277 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
278 val_t REGB0;
279 val_t REGB1;
280 val_t tmp;
281 static val_t once_value_1; /* Once value */
282 static val_t once_value_2; /* Once value */
283 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
284 fra.me.file = LOCATE_mmloader;
285 fra.me.line = 62;
286 fra.me.meth = LOCATE_mmloader___ToolContext___check_errors;
287 fra.me.has_broke = 0;
288 fra.me.REG_size = 6;
289 fra.me.REG[0] = NIT_NULL;
290 fra.me.REG[1] = NIT_NULL;
291 fra.me.REG[2] = NIT_NULL;
292 fra.me.REG[3] = NIT_NULL;
293 fra.me.REG[4] = NIT_NULL;
294 fra.me.REG[5] = NIT_NULL;
295 fra.me.REG[0] = p0;
296 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
297 /* ./mmloader.nit:64 */
298 if (UNTAG_Bool(REGB0)) {
299 } else {
300 fprintf(stderr, "Uninitialized attribute %s", "_messages");
301 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 64);
302 nit_exit(1);
303 }
304 fra.me.REG[1] = ATTR_mmloader___ToolContext____messages(fra.me.REG[0]);
305 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
306 /* ./../lib/standard//collection//array.nit:23 */
307 if (UNTAG_Bool(REGB0)) {
308 } else {
309 fprintf(stderr, "Uninitialized attribute %s", "_length");
310 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
311 nit_exit(1);
312 }
313 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
314 REGB1 = TAG_Int(0);
315 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
316 /* ./mmloader.nit:64 */
317 if (UNTAG_Bool(REGB1)) {
318 REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____message_sorter(fra.me.REG[0])!=NIT_NULL);
319 /* ./mmloader.nit:65 */
320 if (UNTAG_Bool(REGB1)) {
321 } else {
322 fprintf(stderr, "Uninitialized attribute %s", "_message_sorter");
323 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 65);
324 nit_exit(1);
325 }
326 fra.me.REG[1] = ATTR_mmloader___ToolContext____message_sorter(fra.me.REG[0]);
327 REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
328 if (UNTAG_Bool(REGB1)) {
329 } else {
330 fprintf(stderr, "Uninitialized attribute %s", "_messages");
331 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 65);
332 nit_exit(1);
333 }
334 fra.me.REG[2] = ATTR_mmloader___ToolContext____messages(fra.me.REG[0]);
335 CALL_sorter___AbstractSorter___sort(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
336 REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
337 /* ./mmloader.nit:67 */
338 if (UNTAG_Bool(REGB1)) {
339 } else {
340 fprintf(stderr, "Uninitialized attribute %s", "_messages");
341 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 67);
342 nit_exit(1);
343 }
344 fra.me.REG[2] = ATTR_mmloader___ToolContext____messages(fra.me.REG[0]);
345 fra.me.REG[2] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
346 while(1) {
347 REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[2])(fra.me.REG[2]);
348 if (UNTAG_Bool(REGB1)) {
349 fra.me.REG[1] = CALL_abstract_collection___Iterator___item(fra.me.REG[2])(fra.me.REG[2]);
350 fra.me.REG[3] = CALL_file___Object___stderr(fra.me.REG[0])(fra.me.REG[0]);
351 REGB1 = TAG_Int(3);
352 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB1);
353 /* ./mmloader.nit:68 */
354 if (!once_value_1) {
355 fra.me.REG[5] = BOX_NativeString("");
356 REGB1 = TAG_Int(0);
357 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
358 once_value_1 = fra.me.REG[5];
359 register_static_object(&once_value_1);
360 } else fra.me.REG[5] = once_value_1;
361 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
362 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
363 array___Array___add(fra.me.REG[4], fra.me.REG[1]);
364 if (!once_value_2) {
365 fra.me.REG[1] = BOX_NativeString("\n");
366 REGB1 = TAG_Int(1);
367 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB1);
368 once_value_2 = fra.me.REG[1];
369 register_static_object(&once_value_2);
370 } else fra.me.REG[1] = once_value_2;
371 array___Array___add(fra.me.REG[4], fra.me.REG[1]);
372 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
373 CALL_stream___OStream___write(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
374 } else {
375 /* ./mmloader.nit:67 */
376 goto label3;
377 }
378 CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]);
379 }
380 label3: while(0);
381 REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
382 /* ./mmloader.nit:71 */
383 if (UNTAG_Bool(REGB1)) {
384 } else {
385 fprintf(stderr, "Uninitialized attribute %s", "_messages");
386 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 71);
387 nit_exit(1);
388 }
389 fra.me.REG[2] = ATTR_mmloader___ToolContext____messages(fra.me.REG[0]);
390 CALL_abstract_collection___RemovableCollection___clear(fra.me.REG[2])(fra.me.REG[2]);
391 }
392 REGB1 = CALL_mmloader___ToolContext___error_count(fra.me.REG[0])(fra.me.REG[0]);
393 REGB0 = TAG_Int(0);
394 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0));
395 /* ./mmloader.nit:74 */
396 if (UNTAG_Bool(REGB0)) {
397 REGB0 = TAG_Int(1);
398 CALL_kernel___Object___exit(fra.me.REG[0])(fra.me.REG[0], REGB0);
399 }
400 stack_frame_head = fra.me.prev;
401 return;
402 }
403 void mmloader___ToolContext___error(val_t p0, val_t p1, val_t p2){
404 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
405 val_t REGB0;
406 val_t REGB1;
407 val_t tmp;
408 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
409 fra.me.file = LOCATE_mmloader;
410 fra.me.line = 77;
411 fra.me.meth = LOCATE_mmloader___ToolContext___error;
412 fra.me.has_broke = 0;
413 fra.me.REG_size = 4;
414 fra.me.REG[0] = NIT_NULL;
415 fra.me.REG[1] = NIT_NULL;
416 fra.me.REG[2] = NIT_NULL;
417 fra.me.REG[3] = NIT_NULL;
418 fra.me.REG[0] = p0;
419 fra.me.REG[1] = p1;
420 fra.me.REG[2] = p2;
421 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
422 /* ./mmloader.nit:80 */
423 if (UNTAG_Bool(REGB0)) {
424 } else {
425 fprintf(stderr, "Uninitialized attribute %s", "_messages");
426 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 80);
427 nit_exit(1);
428 }
429 fra.me.REG[3] = ATTR_mmloader___ToolContext____messages(fra.me.REG[0]);
430 fra.me.REG[2] = NEW_Message_mmloader___Message___init(fra.me.REG[1], fra.me.REG[2]);
431 array___Array___add(fra.me.REG[3], fra.me.REG[2]);
432 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____error_count(fra.me.REG[0])!=NIT_NULL);
433 /* ./mmloader.nit:81 */
434 if (UNTAG_Bool(REGB0)) {
435 } else {
436 fprintf(stderr, "Uninitialized attribute %s", "_error_count");
437 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 81);
438 nit_exit(1);
439 }
440 REGB0 = ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]);
441 REGB1 = TAG_Int(1);
442 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
443 /* ./mmloader.nit:81 */
444 ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]) = REGB1;
445 stack_frame_head = fra.me.prev;
446 return;
447 }
448 void mmloader___ToolContext___fatal_error(val_t p0, val_t p1, val_t p2){
449 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
450 val_t tmp;
451 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
452 fra.me.file = LOCATE_mmloader;
453 fra.me.line = 84;
454 fra.me.meth = LOCATE_mmloader___ToolContext___fatal_error;
455 fra.me.has_broke = 0;
456 fra.me.REG_size = 3;
457 fra.me.REG[0] = NIT_NULL;
458 fra.me.REG[1] = NIT_NULL;
459 fra.me.REG[2] = NIT_NULL;
460 fra.me.REG[0] = p0;
461 fra.me.REG[1] = p1;
462 fra.me.REG[2] = p2;
463 /* ./mmloader.nit:87 */
464 CALL_mmloader___ToolContext___error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
465 /* ./mmloader.nit:88 */
466 CALL_mmloader___ToolContext___check_errors(fra.me.REG[0])(fra.me.REG[0]);
467 stack_frame_head = fra.me.prev;
468 return;
469 }
470 void mmloader___ToolContext___warning(val_t p0, val_t p1, val_t p2){
471 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
472 val_t REGB0;
473 val_t REGB1;
474 val_t REGB2;
475 val_t tmp;
476 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
477 fra.me.file = LOCATE_mmloader;
478 fra.me.line = 91;
479 fra.me.meth = LOCATE_mmloader___ToolContext___warning;
480 fra.me.has_broke = 0;
481 fra.me.REG_size = 4;
482 fra.me.REG[0] = NIT_NULL;
483 fra.me.REG[1] = NIT_NULL;
484 fra.me.REG[2] = NIT_NULL;
485 fra.me.REG[3] = NIT_NULL;
486 fra.me.REG[0] = p0;
487 fra.me.REG[1] = p1;
488 fra.me.REG[2] = p2;
489 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0])!=NIT_NULL);
490 /* ./mmloader.nit:94 */
491 if (UNTAG_Bool(REGB0)) {
492 } else {
493 fprintf(stderr, "Uninitialized attribute %s", "_opt_warn");
494 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 94);
495 nit_exit(1);
496 }
497 fra.me.REG[3] = ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0]);
498 fra.me.REG[3] = CALL_opts___Option___value(fra.me.REG[3])(fra.me.REG[3]);
499 REGB0 = TAG_Int(0);
500 REGB1 = TAG_Bool(IS_EQUAL_ON(REGB0,fra.me.REG[3]));
501 if (UNTAG_Bool(REGB1)) {
502 } else {
503 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
504 if (UNTAG_Bool(REGB2)) {
505 REGB2 = TAG_Bool(false);
506 REGB1 = REGB2;
507 } else {
508 REGB0 = TAG_Bool((fra.me.REG[3])==(REGB0));
509 REGB1 = REGB0;
510 /* ./mmloader.nit:94 */
511 }
512 }
513 if (UNTAG_Bool(REGB1)) {
514 goto label1;
515 }
516 REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____messages(fra.me.REG[0])!=NIT_NULL);
517 /* ./mmloader.nit:95 */
518 if (UNTAG_Bool(REGB1)) {
519 } else {
520 fprintf(stderr, "Uninitialized attribute %s", "_messages");
521 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 95);
522 nit_exit(1);
523 }
524 fra.me.REG[3] = ATTR_mmloader___ToolContext____messages(fra.me.REG[0]);
525 fra.me.REG[2] = NEW_Message_mmloader___Message___init(fra.me.REG[1], fra.me.REG[2]);
526 array___Array___add(fra.me.REG[3], fra.me.REG[2]);
527 REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0])!=NIT_NULL);
528 /* ./mmloader.nit:96 */
529 if (UNTAG_Bool(REGB1)) {
530 } else {
531 fprintf(stderr, "Uninitialized attribute %s", "_opt_warn");
532 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 96);
533 nit_exit(1);
534 }
535 fra.me.REG[2] = ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0]);
536 fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
537 REGB1 = TAG_Int(1);
538 REGB0 = TAG_Bool(IS_EQUAL_ON(REGB1,fra.me.REG[2]));
539 if (UNTAG_Bool(REGB0)) {
540 } else {
541 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
542 if (UNTAG_Bool(REGB2)) {
543 REGB2 = TAG_Bool(false);
544 REGB0 = REGB2;
545 } else {
546 REGB1 = TAG_Bool((fra.me.REG[2])==(REGB1));
547 REGB0 = REGB1;
548 /* ./mmloader.nit:96 */
549 }
550 }
551 if (UNTAG_Bool(REGB0)) {
552 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0])!=NIT_NULL);
553 /* ./mmloader.nit:97 */
554 if (UNTAG_Bool(REGB0)) {
555 } else {
556 fprintf(stderr, "Uninitialized attribute %s", "_warning_count");
557 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 97);
558 nit_exit(1);
559 }
560 REGB0 = ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0]);
561 REGB1 = TAG_Int(1);
562 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
563 /* ./mmloader.nit:97 */
564 ATTR_mmloader___ToolContext____warning_count(fra.me.REG[0]) = REGB1;
565 } else {
566 REGB1 = TAG_Bool(ATTR_mmloader___ToolContext____error_count(fra.me.REG[0])!=NIT_NULL);
567 /* ./mmloader.nit:99 */
568 if (UNTAG_Bool(REGB1)) {
569 } else {
570 fprintf(stderr, "Uninitialized attribute %s", "_error_count");
571 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 99);
572 nit_exit(1);
573 }
574 REGB1 = ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]);
575 REGB0 = TAG_Int(1);
576 REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
577 /* ./mmloader.nit:99 */
578 ATTR_mmloader___ToolContext____error_count(fra.me.REG[0]) = REGB0;
579 }
580 label1: while(0);
581 stack_frame_head = fra.me.prev;
582 return;
583 }
584 void mmloader___ToolContext___info(val_t p0, val_t p1, val_t p2){
585 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
586 val_t REGB0;
587 val_t REGB1;
588 val_t tmp;
589 static val_t once_value_1; /* Once value */
590 static val_t once_value_2; /* Once value */
591 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
592 fra.me.file = LOCATE_mmloader;
593 fra.me.line = 103;
594 fra.me.meth = LOCATE_mmloader___ToolContext___info;
595 fra.me.has_broke = 0;
596 fra.me.REG_size = 4;
597 fra.me.REG[0] = NIT_NULL;
598 fra.me.REG[1] = NIT_NULL;
599 fra.me.REG[2] = NIT_NULL;
600 fra.me.REG[3] = NIT_NULL;
601 fra.me.REG[0] = p0;
602 fra.me.REG[1] = p1;
603 REGB0 = p2;
604 REGB1 = CALL_mmloader___ToolContext___verbose_level(fra.me.REG[0])(fra.me.REG[0]);
605 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB1));
606 /* ./mmloader.nit:106 */
607 if (UNTAG_Bool(REGB1)) {
608 REGB1 = TAG_Int(3);
609 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB1);
610 /* ./mmloader.nit:107 */
611 if (!once_value_1) {
612 fra.me.REG[3] = BOX_NativeString("");
613 REGB1 = TAG_Int(0);
614 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1);
615 once_value_1 = fra.me.REG[3];
616 register_static_object(&once_value_1);
617 } else fra.me.REG[3] = once_value_1;
618 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
619 array___Array___add(fra.me.REG[2], fra.me.REG[1]);
620 if (!once_value_2) {
621 fra.me.REG[1] = BOX_NativeString("");
622 REGB1 = TAG_Int(0);
623 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB1);
624 once_value_2 = fra.me.REG[1];
625 register_static_object(&once_value_2);
626 } else fra.me.REG[1] = once_value_2;
627 array___Array___add(fra.me.REG[2], fra.me.REG[1]);
628 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
629 CALL_file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
630 }
631 stack_frame_head = fra.me.prev;
632 return;
633 }
634 val_t mmloader___ToolContext___paths(val_t p0){
635 struct {struct stack_frame_t me;} fra;
636 val_t REGB0;
637 val_t tmp;
638 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
639 fra.me.file = LOCATE_mmloader;
640 fra.me.line = 111;
641 fra.me.meth = LOCATE_mmloader___ToolContext___paths;
642 fra.me.has_broke = 0;
643 fra.me.REG_size = 1;
644 fra.me.REG[0] = NIT_NULL;
645 fra.me.REG[0] = p0;
646 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____paths(fra.me.REG[0])!=NIT_NULL);
647 /* ./mmloader.nit:111 */
648 if (UNTAG_Bool(REGB0)) {
649 } else {
650 fprintf(stderr, "Uninitialized attribute %s", "_paths");
651 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 111);
652 nit_exit(1);
653 }
654 fra.me.REG[0] = ATTR_mmloader___ToolContext____paths(fra.me.REG[0]);
655 stack_frame_head = fra.me.prev;
656 return fra.me.REG[0];
657 }
658 val_t mmloader___ToolContext___option_context(val_t p0){
659 struct {struct stack_frame_t me;} fra;
660 val_t REGB0;
661 val_t tmp;
662 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
663 fra.me.file = LOCATE_mmloader;
664 fra.me.line = 117;
665 fra.me.meth = LOCATE_mmloader___ToolContext___option_context;
666 fra.me.has_broke = 0;
667 fra.me.REG_size = 1;
668 fra.me.REG[0] = NIT_NULL;
669 fra.me.REG[0] = p0;
670 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____option_context(fra.me.REG[0])!=NIT_NULL);
671 /* ./mmloader.nit:117 */
672 if (UNTAG_Bool(REGB0)) {
673 } else {
674 fprintf(stderr, "Uninitialized attribute %s", "_option_context");
675 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 117);
676 nit_exit(1);
677 }
678 fra.me.REG[0] = ATTR_mmloader___ToolContext____option_context(fra.me.REG[0]);
679 stack_frame_head = fra.me.prev;
680 return fra.me.REG[0];
681 }
682 val_t mmloader___ToolContext___opt_warn(val_t p0){
683 struct {struct stack_frame_t me;} fra;
684 val_t REGB0;
685 val_t tmp;
686 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
687 fra.me.file = LOCATE_mmloader;
688 fra.me.line = 120;
689 fra.me.meth = LOCATE_mmloader___ToolContext___opt_warn;
690 fra.me.has_broke = 0;
691 fra.me.REG_size = 1;
692 fra.me.REG[0] = NIT_NULL;
693 fra.me.REG[0] = p0;
694 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0])!=NIT_NULL);
695 /* ./mmloader.nit:120 */
696 if (UNTAG_Bool(REGB0)) {
697 } else {
698 fprintf(stderr, "Uninitialized attribute %s", "_opt_warn");
699 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 120);
700 nit_exit(1);
701 }
702 fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_warn(fra.me.REG[0]);
703 stack_frame_head = fra.me.prev;
704 return fra.me.REG[0];
705 }
706 val_t mmloader___ToolContext___opt_path(val_t p0){
707 struct {struct stack_frame_t me;} fra;
708 val_t REGB0;
709 val_t tmp;
710 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
711 fra.me.file = LOCATE_mmloader;
712 fra.me.line = 123;
713 fra.me.meth = LOCATE_mmloader___ToolContext___opt_path;
714 fra.me.has_broke = 0;
715 fra.me.REG_size = 1;
716 fra.me.REG[0] = NIT_NULL;
717 fra.me.REG[0] = p0;
718 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_path(fra.me.REG[0])!=NIT_NULL);
719 /* ./mmloader.nit:123 */
720 if (UNTAG_Bool(REGB0)) {
721 } else {
722 fprintf(stderr, "Uninitialized attribute %s", "_opt_path");
723 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 123);
724 nit_exit(1);
725 }
726 fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_path(fra.me.REG[0]);
727 stack_frame_head = fra.me.prev;
728 return fra.me.REG[0];
729 }
730 val_t mmloader___ToolContext___opt_log(val_t p0){
731 struct {struct stack_frame_t me;} fra;
732 val_t REGB0;
733 val_t tmp;
734 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
735 fra.me.file = LOCATE_mmloader;
736 fra.me.line = 126;
737 fra.me.meth = LOCATE_mmloader___ToolContext___opt_log;
738 fra.me.has_broke = 0;
739 fra.me.REG_size = 1;
740 fra.me.REG[0] = NIT_NULL;
741 fra.me.REG[0] = p0;
742 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_log(fra.me.REG[0])!=NIT_NULL);
743 /* ./mmloader.nit:126 */
744 if (UNTAG_Bool(REGB0)) {
745 } else {
746 fprintf(stderr, "Uninitialized attribute %s", "_opt_log");
747 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 126);
748 nit_exit(1);
749 }
750 fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_log(fra.me.REG[0]);
751 stack_frame_head = fra.me.prev;
752 return fra.me.REG[0];
753 }
754 val_t mmloader___ToolContext___opt_only_metamodel(val_t p0){
755 struct {struct stack_frame_t me;} fra;
756 val_t REGB0;
757 val_t tmp;
758 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
759 fra.me.file = LOCATE_mmloader;
760 fra.me.line = 129;
761 fra.me.meth = LOCATE_mmloader___ToolContext___opt_only_metamodel;
762 fra.me.has_broke = 0;
763 fra.me.REG_size = 1;
764 fra.me.REG[0] = NIT_NULL;
765 fra.me.REG[0] = p0;
766 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_only_metamodel(fra.me.REG[0])!=NIT_NULL);
767 /* ./mmloader.nit:129 */
768 if (UNTAG_Bool(REGB0)) {
769 } else {
770 fprintf(stderr, "Uninitialized attribute %s", "_opt_only_metamodel");
771 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 129);
772 nit_exit(1);
773 }
774 fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_only_metamodel(fra.me.REG[0]);
775 stack_frame_head = fra.me.prev;
776 return fra.me.REG[0];
777 }
778 val_t mmloader___ToolContext___opt_only_parse(val_t p0){
779 struct {struct stack_frame_t me;} fra;
780 val_t REGB0;
781 val_t tmp;
782 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
783 fra.me.file = LOCATE_mmloader;
784 fra.me.line = 132;
785 fra.me.meth = LOCATE_mmloader___ToolContext___opt_only_parse;
786 fra.me.has_broke = 0;
787 fra.me.REG_size = 1;
788 fra.me.REG[0] = NIT_NULL;
789 fra.me.REG[0] = p0;
790 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_only_parse(fra.me.REG[0])!=NIT_NULL);
791 /* ./mmloader.nit:132 */
792 if (UNTAG_Bool(REGB0)) {
793 } else {
794 fprintf(stderr, "Uninitialized attribute %s", "_opt_only_parse");
795 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 132);
796 nit_exit(1);
797 }
798 fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_only_parse(fra.me.REG[0]);
799 stack_frame_head = fra.me.prev;
800 return fra.me.REG[0];
801 }
802 val_t mmloader___ToolContext___opt_help(val_t p0){
803 struct {struct stack_frame_t me;} fra;
804 val_t REGB0;
805 val_t tmp;
806 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
807 fra.me.file = LOCATE_mmloader;
808 fra.me.line = 135;
809 fra.me.meth = LOCATE_mmloader___ToolContext___opt_help;
810 fra.me.has_broke = 0;
811 fra.me.REG_size = 1;
812 fra.me.REG[0] = NIT_NULL;
813 fra.me.REG[0] = p0;
814 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_help(fra.me.REG[0])!=NIT_NULL);
815 /* ./mmloader.nit:135 */
816 if (UNTAG_Bool(REGB0)) {
817 } else {
818 fprintf(stderr, "Uninitialized attribute %s", "_opt_help");
819 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 135);
820 nit_exit(1);
821 }
822 fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_help(fra.me.REG[0]);
823 stack_frame_head = fra.me.prev;
824 return fra.me.REG[0];
825 }
826 val_t mmloader___ToolContext___opt_version(val_t p0){
827 struct {struct stack_frame_t me;} fra;
828 val_t REGB0;
829 val_t tmp;
830 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
831 fra.me.file = LOCATE_mmloader;
832 fra.me.line = 138;
833 fra.me.meth = LOCATE_mmloader___ToolContext___opt_version;
834 fra.me.has_broke = 0;
835 fra.me.REG_size = 1;
836 fra.me.REG[0] = NIT_NULL;
837 fra.me.REG[0] = p0;
838 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_version(fra.me.REG[0])!=NIT_NULL);
839 /* ./mmloader.nit:138 */
840 if (UNTAG_Bool(REGB0)) {
841 } else {
842 fprintf(stderr, "Uninitialized attribute %s", "_opt_version");
843 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 138);
844 nit_exit(1);
845 }
846 fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_version(fra.me.REG[0]);
847 stack_frame_head = fra.me.prev;
848 return fra.me.REG[0];
849 }
850 val_t mmloader___ToolContext___opt_verbose(val_t p0){
851 struct {struct stack_frame_t me;} fra;
852 val_t REGB0;
853 val_t tmp;
854 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
855 fra.me.file = LOCATE_mmloader;
856 fra.me.line = 141;
857 fra.me.meth = LOCATE_mmloader___ToolContext___opt_verbose;
858 fra.me.has_broke = 0;
859 fra.me.REG_size = 1;
860 fra.me.REG[0] = NIT_NULL;
861 fra.me.REG[0] = p0;
862 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____opt_verbose(fra.me.REG[0])!=NIT_NULL);
863 /* ./mmloader.nit:141 */
864 if (UNTAG_Bool(REGB0)) {
865 } else {
866 fprintf(stderr, "Uninitialized attribute %s", "_opt_verbose");
867 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 141);
868 nit_exit(1);
869 }
870 fra.me.REG[0] = ATTR_mmloader___ToolContext____opt_verbose(fra.me.REG[0]);
871 stack_frame_head = fra.me.prev;
872 return fra.me.REG[0];
873 }
874 val_t mmloader___ToolContext___verbose_level(val_t p0){
875 struct {struct stack_frame_t me;} fra;
876 val_t REGB0;
877 val_t tmp;
878 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
879 fra.me.file = LOCATE_mmloader;
880 fra.me.line = 144;
881 fra.me.meth = LOCATE_mmloader___ToolContext___verbose_level;
882 fra.me.has_broke = 0;
883 fra.me.REG_size = 1;
884 fra.me.REG[0] = NIT_NULL;
885 fra.me.REG[0] = p0;
886 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____verbose_level(fra.me.REG[0])!=NIT_NULL);
887 /* ./mmloader.nit:144 */
888 if (UNTAG_Bool(REGB0)) {
889 } else {
890 fprintf(stderr, "Uninitialized attribute %s", "_verbose_level");
891 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 144);
892 nit_exit(1);
893 }
894 REGB0 = ATTR_mmloader___ToolContext____verbose_level(fra.me.REG[0]);
895 stack_frame_head = fra.me.prev;
896 return REGB0;
897 }
898 void mmloader___ToolContext___init(val_t p0, int* init_table){
899 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ToolContext].i;
900 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
901 val_t REGB0;
902 val_t tmp;
903 if (init_table[itpos1]) return;
904 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
905 fra.me.file = LOCATE_mmloader;
906 fra.me.line = 147;
907 fra.me.meth = LOCATE_mmloader___ToolContext___init;
908 fra.me.has_broke = 0;
909 fra.me.REG_size = 4;
910 fra.me.REG[0] = NIT_NULL;
911 fra.me.REG[1] = NIT_NULL;
912 fra.me.REG[2] = NIT_NULL;
913 fra.me.REG[3] = NIT_NULL;
914 fra.me.REG[0] = p0;
915 fra.me.REG[1] = fra.me.REG[0];
916 /* ./mmloader.nit:149 */
917 CALL_abstractmetamodel___MMContext___init(fra.me.REG[0])(fra.me.REG[0], init_table);
918 fra.me.REG[0] = CALL_mmloader___ToolContext___option_context(fra.me.REG[1])(fra.me.REG[1]);
919 REGB0 = TAG_Int(7);
920 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
921 fra.me.REG[3] = CALL_mmloader___ToolContext___opt_warn(fra.me.REG[1])(fra.me.REG[1]);
922 /* ./mmloader.nit:150 */
923 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
924 fra.me.REG[3] = CALL_mmloader___ToolContext___opt_path(fra.me.REG[1])(fra.me.REG[1]);
925 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
926 fra.me.REG[3] = CALL_mmloader___ToolContext___opt_log(fra.me.REG[1])(fra.me.REG[1]);
927 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
928 fra.me.REG[3] = CALL_mmloader___ToolContext___opt_only_parse(fra.me.REG[1])(fra.me.REG[1]);
929 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
930 fra.me.REG[3] = CALL_mmloader___ToolContext___opt_only_metamodel(fra.me.REG[1])(fra.me.REG[1]);
931 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
932 fra.me.REG[3] = CALL_mmloader___ToolContext___opt_help(fra.me.REG[1])(fra.me.REG[1]);
933 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
934 fra.me.REG[3] = CALL_mmloader___ToolContext___opt_version(fra.me.REG[1])(fra.me.REG[1]);
935 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
936 fra.me.REG[1] = CALL_mmloader___ToolContext___opt_verbose(fra.me.REG[1])(fra.me.REG[1]);
937 array___Array___add(fra.me.REG[2], fra.me.REG[1]);
938 CALL_opts___OptionContext___add_option(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
939 stack_frame_head = fra.me.prev;
940 init_table[itpos1] = 1;
941 return;
942 }
943 void mmloader___ToolContext___process_options(val_t p0){
944 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
945 val_t REGB0;
946 val_t tmp;
947 static val_t once_value_1; /* Once value */
948 static val_t once_value_2; /* Once value */
949 static val_t once_value_3; /* Once value */
950 static val_t once_value_4; /* Once value */
951 static val_t once_value_5; /* Once value */
952 static val_t once_value_6; /* Once value */
953 static val_t once_value_7; /* Once value */
954 static val_t once_value_8; /* Once value */
955 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
956 fra.me.file = LOCATE_mmloader;
957 fra.me.line = 153;
958 fra.me.meth = LOCATE_mmloader___ToolContext___process_options;
959 fra.me.has_broke = 0;
960 fra.me.REG_size = 4;
961 fra.me.REG[0] = NIT_NULL;
962 fra.me.REG[1] = NIT_NULL;
963 fra.me.REG[2] = NIT_NULL;
964 fra.me.REG[3] = NIT_NULL;
965 fra.me.REG[0] = p0;
966 fra.me.REG[1] = CALL_mmloader___ToolContext___option_context(fra.me.REG[0])(fra.me.REG[0]);
967 fra.me.REG[2] = CALL_string___Object___args(fra.me.REG[0])(fra.me.REG[0]);
968 /* ./mmloader.nit:157 */
969 CALL_opts___OptionContext___parse(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
970 fra.me.REG[2] = CALL_mmloader___ToolContext___opt_verbose(fra.me.REG[0])(fra.me.REG[0]);
971 fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
972 /* ./mmloader.nit:160 */
973 ATTR_mmloader___ToolContext____verbose_level(fra.me.REG[0]) = fra.me.REG[2];
974 fra.me.REG[2] = CALL_mmloader___ToolContext___paths(fra.me.REG[0])(fra.me.REG[0]);
975 fra.me.REG[1] = CALL_mmloader___ToolContext___opt_path(fra.me.REG[0])(fra.me.REG[0]);
976 fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[1])(fra.me.REG[1]);
977 /* ./mmloader.nit:163 */
978 CALL_abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
979 /* ./mmloader.nit:165 */
980 if (!once_value_1) {
981 if (!once_value_2) {
982 fra.me.REG[1] = BOX_NativeString("NIT_PATH");
983 REGB0 = TAG_Int(8);
984 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
985 once_value_2 = fra.me.REG[1];
986 register_static_object(&once_value_2);
987 } else fra.me.REG[1] = once_value_2;
988 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
989 fra.me.REG[1] = CALL_environ___Symbol___environ(fra.me.REG[1])(fra.me.REG[1]);
990 once_value_1 = fra.me.REG[1];
991 register_static_object(&once_value_1);
992 } else fra.me.REG[1] = once_value_1;
993 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
994 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
995 /* ./mmloader.nit:166 */
996 if (UNTAG_Bool(REGB0)) {
997 fra.me.REG[2] = CALL_mmloader___ToolContext___paths(fra.me.REG[0])(fra.me.REG[0]);
998 REGB0 = TAG_Char(':');
999 fra.me.REG[3] = CALL_string_search___String___split_with(fra.me.REG[1])(fra.me.REG[1], REGB0);
1000 /* ./mmloader.nit:167 */
1001 CALL_abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1002 }
1003 /* ./mmloader.nit:170 */
1004 if (!once_value_3) {
1005 if (!once_value_4) {
1006 fra.me.REG[3] = BOX_NativeString("NIT_DIR");
1007 REGB0 = TAG_Int(7);
1008 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1009 once_value_4 = fra.me.REG[3];
1010 register_static_object(&once_value_4);
1011 } else fra.me.REG[3] = once_value_4;
1012 fra.me.REG[3] = CALL_symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
1013 fra.me.REG[3] = CALL_environ___Symbol___environ(fra.me.REG[3])(fra.me.REG[3]);
1014 once_value_3 = fra.me.REG[3];
1015 register_static_object(&once_value_3);
1016 } else fra.me.REG[3] = once_value_3;
1017 fra.me.REG[1] = fra.me.REG[3];
1018 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
1019 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1020 /* ./mmloader.nit:171 */
1021 if (UNTAG_Bool(REGB0)) {
1022 REGB0 = TAG_Int(3);
1023 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
1024 /* ./mmloader.nit:172 */
1025 if (!once_value_5) {
1026 fra.me.REG[2] = BOX_NativeString("");
1027 REGB0 = TAG_Int(0);
1028 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
1029 once_value_5 = fra.me.REG[2];
1030 register_static_object(&once_value_5);
1031 } else fra.me.REG[2] = once_value_5;
1032 array___Array___add(fra.me.REG[3], fra.me.REG[2]);
1033 array___Array___add(fra.me.REG[3], fra.me.REG[1]);
1034 if (!once_value_6) {
1035 fra.me.REG[1] = BOX_NativeString("/lib");
1036 REGB0 = TAG_Int(4);
1037 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
1038 once_value_6 = fra.me.REG[1];
1039 register_static_object(&once_value_6);
1040 } else fra.me.REG[1] = once_value_6;
1041 array___Array___add(fra.me.REG[3], fra.me.REG[1]);
1042 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1043 REGB0 = CALL_file___String___file_exists(fra.me.REG[3])(fra.me.REG[3]);
1044 /* ./mmloader.nit:173 */
1045 if (UNTAG_Bool(REGB0)) {
1046 fra.me.REG[1] = CALL_mmloader___ToolContext___paths(fra.me.REG[0])(fra.me.REG[0]);
1047 array___Array___add(fra.me.REG[1], fra.me.REG[3]);
1048 }
1049 }
1050 REGB0 = TAG_Int(3);
1051 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
1052 /* ./mmloader.nit:176 */
1053 if (!once_value_7) {
1054 fra.me.REG[1] = BOX_NativeString("");
1055 REGB0 = TAG_Int(0);
1056 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
1057 once_value_7 = fra.me.REG[1];
1058 register_static_object(&once_value_7);
1059 } else fra.me.REG[1] = once_value_7;
1060 array___Array___add(fra.me.REG[3], fra.me.REG[1]);
1061 fra.me.REG[1] = CALL_kernel___Object___sys(fra.me.REG[0])(fra.me.REG[0]);
1062 fra.me.REG[1] = CALL_string___Sys___program_name(fra.me.REG[1])(fra.me.REG[1]);
1063 fra.me.REG[1] = CALL_file___String___dirname(fra.me.REG[1])(fra.me.REG[1]);
1064 array___Array___add(fra.me.REG[3], fra.me.REG[1]);
1065 if (!once_value_8) {
1066 fra.me.REG[1] = BOX_NativeString("/../lib");
1067 REGB0 = TAG_Int(7);
1068 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
1069 once_value_8 = fra.me.REG[1];
1070 register_static_object(&once_value_8);
1071 } else fra.me.REG[1] = once_value_8;
1072 array___Array___add(fra.me.REG[3], fra.me.REG[1]);
1073 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1074 REGB0 = CALL_file___String___file_exists(fra.me.REG[3])(fra.me.REG[3]);
1075 /* ./mmloader.nit:177 */
1076 if (UNTAG_Bool(REGB0)) {
1077 fra.me.REG[0] = CALL_mmloader___ToolContext___paths(fra.me.REG[0])(fra.me.REG[0]);
1078 array___Array___add(fra.me.REG[0], fra.me.REG[3]);
1079 }
1080 stack_frame_head = fra.me.prev;
1081 return;
1082 }
1083 val_t mmloader___ToolContext___try_to_load(val_t p0, val_t p1, val_t p2){
1084 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
1085 val_t REGB0;
1086 val_t REGB1;
1087 val_t tmp;
1088 static val_t once_value_3; /* Once value */
1089 static val_t once_value_4; /* Once value */
1090 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1091 fra.me.file = LOCATE_mmloader;
1092 fra.me.line = 180;
1093 fra.me.meth = LOCATE_mmloader___ToolContext___try_to_load;
1094 fra.me.has_broke = 0;
1095 fra.me.REG_size = 9;
1096 fra.me.REG[0] = NIT_NULL;
1097 fra.me.REG[1] = NIT_NULL;
1098 fra.me.REG[2] = NIT_NULL;
1099 fra.me.REG[3] = NIT_NULL;
1100 fra.me.REG[4] = NIT_NULL;
1101 fra.me.REG[5] = NIT_NULL;
1102 fra.me.REG[6] = NIT_NULL;
1103 fra.me.REG[7] = NIT_NULL;
1104 fra.me.REG[8] = NIT_NULL;
1105 fra.me.REG[0] = p0;
1106 fra.me.REG[1] = p1;
1107 fra.me.REG[2] = p2;
1108 fra.me.REG[3] = CALL_abstractmetamodel___MMDirectory___modules(fra.me.REG[2])(fra.me.REG[2]);
1109 fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]);
1110 /* ./mmloader.nit:186 */
1111 while(1) {
1112 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]);
1113 if (UNTAG_Bool(REGB0)) {
1114 fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]);
1115 fra.me.REG[5] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[4])(fra.me.REG[4]);
1116 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[5],fra.me.REG[1]));
1117 /* ./mmloader.nit:187 */
1118 if (UNTAG_Bool(REGB0)) {
1119 } else {
1120 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1]);
1121 REGB0 = REGB1;
1122 }
1123 if (UNTAG_Bool(REGB0)) {
1124 goto label1;
1125 }
1126 } else {
1127 /* ./mmloader.nit:186 */
1128 goto label2;
1129 }
1130 CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]);
1131 }
1132 label2: while(0);
1133 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____loaders(fra.me.REG[0])!=NIT_NULL);
1134 /* ./mmloader.nit:192 */
1135 if (UNTAG_Bool(REGB0)) {
1136 } else {
1137 fprintf(stderr, "Uninitialized attribute %s", "_loaders");
1138 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 192);
1139 nit_exit(1);
1140 }
1141 fra.me.REG[3] = ATTR_mmloader___ToolContext____loaders(fra.me.REG[0]);
1142 fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]);
1143 while(1) {
1144 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]);
1145 if (UNTAG_Bool(REGB0)) {
1146 fra.me.REG[5] = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]);
1147 fra.me.REG[6] = CALL_mmloader___ModuleLoader___try_to_load_dir(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1], fra.me.REG[2]);
1148 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
1149 /* ./mmloader.nit:194 */
1150 if (UNTAG_Bool(REGB0)) {
1151 } else {
1152 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
1153 if (UNTAG_Bool(REGB1)) {
1154 REGB1 = TAG_Bool(false);
1155 REGB0 = REGB1;
1156 } else {
1157 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
1158 REGB0 = REGB1;
1159 }
1160 }
1161 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1162 if (UNTAG_Bool(REGB0)) {
1163 fra.me.REG[7] = CALL_mmloader___ToolContext___try_to_load(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[6]);
1164 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
1165 /* ./mmloader.nit:196 */
1166 if (UNTAG_Bool(REGB0)) {
1167 } else {
1168 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
1169 if (UNTAG_Bool(REGB1)) {
1170 REGB1 = TAG_Bool(false);
1171 REGB0 = REGB1;
1172 } else {
1173 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
1174 REGB0 = REGB1;
1175 }
1176 }
1177 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1178 if (UNTAG_Bool(REGB0)) {
1179 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
1180 /* ./mmloader.nit:197 */
1181 if (UNTAG_Bool(REGB0)) {
1182 fprintf(stderr, "Reciever is null");
1183 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 197);
1184 nit_exit(1);
1185 }
1186 CALL_abstractmetamodel___MMDirectory___owner__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
1187 /* ./mmloader.nit:198 */
1188 CALL_abstractmetamodel___MMDirectory___add_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
1189 fra.me.REG[4] = fra.me.REG[7];
1190 /* ./mmloader.nit:199 */
1191 goto label1;
1192 }
1193 }
1194 REGB0 = CALL_mmloader___ModuleLoader___can_handle(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1], fra.me.REG[2]);
1195 /* ./mmloader.nit:203 */
1196 if (UNTAG_Bool(REGB0)) {
1197 fra.me.REG[7] = CALL_abstractmetamodel___MMDirectory___full_name_for(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1198 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0])!=NIT_NULL);
1199 /* ./mmloader.nit:205 */
1200 if (UNTAG_Bool(REGB0)) {
1201 } else {
1202 fprintf(stderr, "Uninitialized attribute %s", "_processing_modules");
1203 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 205);
1204 nit_exit(1);
1205 }
1206 fra.me.REG[6] = ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0]);
1207 REGB0 = CALL_abstract_collection___Collection___has(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
1208 if (UNTAG_Bool(REGB0)) {
1209 REGB0 = TAG_Int(3);
1210 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB0);
1211 /* ./mmloader.nit:207 */
1212 if (!once_value_3) {
1213 fra.me.REG[8] = BOX_NativeString("Error: Dependency loop for module ");
1214 REGB0 = TAG_Int(34);
1215 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
1216 once_value_3 = fra.me.REG[8];
1217 register_static_object(&once_value_3);
1218 } else fra.me.REG[8] = once_value_3;
1219 array___Array___add(fra.me.REG[6], fra.me.REG[8]);
1220 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
1221 array___Array___add(fra.me.REG[6], fra.me.REG[8]);
1222 if (!once_value_4) {
1223 fra.me.REG[8] = BOX_NativeString("");
1224 REGB0 = TAG_Int(0);
1225 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
1226 once_value_4 = fra.me.REG[8];
1227 register_static_object(&once_value_4);
1228 } else fra.me.REG[8] = once_value_4;
1229 array___Array___add(fra.me.REG[6], fra.me.REG[8]);
1230 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
1231 CALL_mmloader___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[6]);
1232 }
1233 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0])!=NIT_NULL);
1234 /* ./mmloader.nit:209 */
1235 if (UNTAG_Bool(REGB0)) {
1236 } else {
1237 fprintf(stderr, "Uninitialized attribute %s", "_processing_modules");
1238 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 209);
1239 nit_exit(1);
1240 }
1241 fra.me.REG[6] = ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0]);
1242 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
1243 fra.me.REG[5] = CALL_mmloader___ModuleLoader___load_and_process_module(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
1244 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0])!=NIT_NULL);
1245 /* ./mmloader.nit:211 */
1246 if (UNTAG_Bool(REGB0)) {
1247 } else {
1248 fprintf(stderr, "Uninitialized attribute %s", "_processing_modules");
1249 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 211);
1250 nit_exit(1);
1251 }
1252 fra.me.REG[6] = ATTR_mmloader___ToolContext____processing_modules(fra.me.REG[0]);
1253 CALL_abstract_collection___RemovableCollection___remove(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
1254 /* ./mmloader.nit:213 */
1255 CALL_abstractmetamodel___MMDirectory___add_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
1256 fra.me.REG[4] = fra.me.REG[5];
1257 /* ./mmloader.nit:214 */
1258 goto label1;
1259 }
1260 } else {
1261 /* ./mmloader.nit:192 */
1262 goto label5;
1263 }
1264 CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]);
1265 }
1266 label5: while(0);
1267 fra.me.REG[4] = NIT_NULL;
1268 /* ./mmloader.nit:217 */
1269 goto label1;
1270 label1: while(0);
1271 stack_frame_head = fra.me.prev;
1272 return fra.me.REG[4];
1273 }
1274 val_t mmloader___ToolContext___get_module_from_filename(val_t p0, val_t p1){
1275 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
1276 val_t REGB0;
1277 val_t REGB1;
1278 val_t tmp;
1279 static val_t once_value_1; /* Once value */
1280 static val_t once_value_3; /* Once value */
1281 static val_t once_value_4; /* Once value */
1282 static val_t once_value_5; /* Once value */
1283 static val_t once_value_6; /* Once value */
1284 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1285 fra.me.file = LOCATE_mmloader;
1286 fra.me.line = 224;
1287 fra.me.meth = LOCATE_mmloader___ToolContext___get_module_from_filename;
1288 fra.me.has_broke = 0;
1289 fra.me.REG_size = 7;
1290 fra.me.REG[0] = NIT_NULL;
1291 fra.me.REG[1] = NIT_NULL;
1292 fra.me.REG[2] = NIT_NULL;
1293 fra.me.REG[3] = NIT_NULL;
1294 fra.me.REG[4] = NIT_NULL;
1295 fra.me.REG[5] = NIT_NULL;
1296 fra.me.REG[6] = NIT_NULL;
1297 fra.me.REG[0] = p0;
1298 fra.me.REG[1] = p1;
1299 fra.me.REG[2] = CALL_file___String___dirname(fra.me.REG[1])(fra.me.REG[1]);
1300 /* ./mmloader.nit:230 */
1301 if (!once_value_1) {
1302 fra.me.REG[3] = BOX_NativeString(".nit");
1303 REGB0 = TAG_Int(4);
1304 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1305 once_value_1 = fra.me.REG[3];
1306 register_static_object(&once_value_1);
1307 } else fra.me.REG[3] = once_value_1;
1308 fra.me.REG[3] = CALL_file___String___basename(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1309 fra.me.REG[3] = CALL_symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
1310 fra.me.REG[2] = CALL_mmloader___ToolContext___directory_for(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
1311 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1312 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[4],fra.me.REG[1]));
1313 /* ./mmloader.nit:234 */
1314 if (UNTAG_Bool(REGB0)) {
1315 } else {
1316 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
1317 REGB0 = REGB1;
1318 }
1319 if (UNTAG_Bool(REGB0)) {
1320 fra.me.REG[4] = CALL_mmloader___ToolContext___try_to_load(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
1321 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1322 /* ./mmloader.nit:238 */
1323 if (UNTAG_Bool(REGB0)) {
1324 } else {
1325 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1326 if (UNTAG_Bool(REGB1)) {
1327 REGB1 = TAG_Bool(false);
1328 REGB0 = REGB1;
1329 } else {
1330 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
1331 REGB0 = REGB1;
1332 }
1333 }
1334 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1335 if (UNTAG_Bool(REGB0)) {
1336 goto label2;
1337 }
1338 fra.me.REG[5] = CALL_mmloader___ToolContext___get_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], NIT_NULL);
1339 fra.me.REG[4] = fra.me.REG[5];
1340 /* ./mmloader.nit:241 */
1341 goto label2;
1342 }
1343 REGB0 = CALL_file___String___file_exists(fra.me.REG[1])(fra.me.REG[1]);
1344 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1345 /* ./mmloader.nit:244 */
1346 if (UNTAG_Bool(REGB0)) {
1347 REGB0 = TAG_Int(3);
1348 fra.me.REG[5] = NEW_Array_array___Array___with_capacity(REGB0);
1349 /* ./mmloader.nit:245 */
1350 if (!once_value_3) {
1351 fra.me.REG[6] = BOX_NativeString("Error: File ");
1352 REGB0 = TAG_Int(12);
1353 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
1354 once_value_3 = fra.me.REG[6];
1355 register_static_object(&once_value_3);
1356 } else fra.me.REG[6] = once_value_3;
1357 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
1358 array___Array___add(fra.me.REG[5], fra.me.REG[1]);
1359 if (!once_value_4) {
1360 fra.me.REG[6] = BOX_NativeString(" not found.");
1361 REGB0 = TAG_Int(11);
1362 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB0);
1363 once_value_4 = fra.me.REG[6];
1364 register_static_object(&once_value_4);
1365 } else fra.me.REG[6] = once_value_4;
1366 array___Array___add(fra.me.REG[5], fra.me.REG[6]);
1367 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
1368 CALL_mmloader___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[5]);
1369 /* ./mmloader.nit:246 */
1370 fprintf(stderr, "Aborted");
1371 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 246);
1372 nit_exit(1);
1373 }
1374 fra.me.REG[2] = CALL_mmloader___ToolContext___try_to_load(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
1375 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1376 /* ./mmloader.nit:251 */
1377 if (UNTAG_Bool(REGB0)) {
1378 } else {
1379 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1380 if (UNTAG_Bool(REGB1)) {
1381 REGB1 = TAG_Bool(false);
1382 REGB0 = REGB1;
1383 } else {
1384 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1385 REGB0 = REGB1;
1386 }
1387 }
1388 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1389 if (UNTAG_Bool(REGB0)) {
1390 fra.me.REG[4] = fra.me.REG[2];
1391 goto label2;
1392 }
1393 REGB0 = TAG_Int(3);
1394 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
1395 /* ./mmloader.nit:253 */
1396 if (!once_value_5) {
1397 fra.me.REG[3] = BOX_NativeString("Error: ");
1398 REGB0 = TAG_Int(7);
1399 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1400 once_value_5 = fra.me.REG[3];
1401 register_static_object(&once_value_5);
1402 } else fra.me.REG[3] = once_value_5;
1403 array___Array___add(fra.me.REG[2], fra.me.REG[3]);
1404 array___Array___add(fra.me.REG[2], fra.me.REG[1]);
1405 if (!once_value_6) {
1406 fra.me.REG[1] = BOX_NativeString(" is not a NIT source module.");
1407 REGB0 = TAG_Int(28);
1408 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
1409 once_value_6 = fra.me.REG[1];
1410 register_static_object(&once_value_6);
1411 } else fra.me.REG[1] = once_value_6;
1412 array___Array___add(fra.me.REG[2], fra.me.REG[1]);
1413 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1414 CALL_mmloader___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[2]);
1415 /* ./mmloader.nit:254 */
1416 fprintf(stderr, "Aborted");
1417 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 254);
1418 nit_exit(1);
1419 label2: while(0);
1420 stack_frame_head = fra.me.prev;
1421 return fra.me.REG[4];
1422 }
1423 val_t mmloader___ToolContext___get_module(val_t p0, val_t p1, val_t p2){
1424 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1425 val_t REGB0;
1426 val_t REGB1;
1427 val_t tmp;
1428 static val_t once_value_4; /* Once value */
1429 static val_t once_value_5; /* Once value */
1430 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1431 fra.me.file = LOCATE_mmloader;
1432 fra.me.line = 257;
1433 fra.me.meth = LOCATE_mmloader___ToolContext___get_module;
1434 fra.me.has_broke = 0;
1435 fra.me.REG_size = 5;
1436 fra.me.REG[0] = NIT_NULL;
1437 fra.me.REG[1] = NIT_NULL;
1438 fra.me.REG[2] = NIT_NULL;
1439 fra.me.REG[3] = NIT_NULL;
1440 fra.me.REG[4] = NIT_NULL;
1441 fra.me.REG[0] = p0;
1442 fra.me.REG[1] = p1;
1443 fra.me.REG[2] = p2;
1444 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1445 /* ./mmloader.nit:261 */
1446 if (UNTAG_Bool(REGB0)) {
1447 } else {
1448 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1449 if (UNTAG_Bool(REGB1)) {
1450 REGB1 = TAG_Bool(false);
1451 REGB0 = REGB1;
1452 } else {
1453 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1454 REGB0 = REGB1;
1455 }
1456 }
1457 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1458 if (UNTAG_Bool(REGB0)) {
1459 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1460 /* ./mmloader.nit:262 */
1461 if (UNTAG_Bool(REGB0)) {
1462 fprintf(stderr, "Reciever is null");
1463 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 262);
1464 nit_exit(1);
1465 }
1466 fra.me.REG[2] = CALL_abstractmetamodel___MMModule___directory(fra.me.REG[2])(fra.me.REG[2]);
1467 /* ./mmloader.nit:263 */
1468 while(1) {
1469 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1470 if (UNTAG_Bool(REGB0)) {
1471 } else {
1472 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1473 if (UNTAG_Bool(REGB1)) {
1474 REGB1 = TAG_Bool(false);
1475 REGB0 = REGB1;
1476 } else {
1477 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1478 REGB0 = REGB1;
1479 }
1480 }
1481 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1482 if (UNTAG_Bool(REGB0)) {
1483 fra.me.REG[3] = CALL_mmloader___ToolContext___try_to_load(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
1484 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1485 /* ./mmloader.nit:265 */
1486 if (UNTAG_Bool(REGB0)) {
1487 } else {
1488 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1489 if (UNTAG_Bool(REGB1)) {
1490 REGB1 = TAG_Bool(false);
1491 REGB0 = REGB1;
1492 } else {
1493 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1494 REGB0 = REGB1;
1495 }
1496 }
1497 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1498 if (UNTAG_Bool(REGB0)) {
1499 goto label1;
1500 }
1501 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1502 /* ./mmloader.nit:266 */
1503 if (UNTAG_Bool(REGB0)) {
1504 fprintf(stderr, "Reciever is null");
1505 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 266);
1506 nit_exit(1);
1507 }
1508 fra.me.REG[4] = CALL_abstractmetamodel___MMDirectory___parent(fra.me.REG[2])(fra.me.REG[2]);
1509 fra.me.REG[2] = fra.me.REG[4];
1510 } else {
1511 /* ./mmloader.nit:263 */
1512 goto label2;
1513 }
1514 }
1515 label2: while(0);
1516 }
1517 fra.me.REG[2] = CALL_mmloader___ToolContext___paths(fra.me.REG[0])(fra.me.REG[0]);
1518 fra.me.REG[2] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]);
1519 /* ./mmloader.nit:270 */
1520 while(1) {
1521 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[2])(fra.me.REG[2]);
1522 if (UNTAG_Bool(REGB0)) {
1523 fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[2])(fra.me.REG[2]);
1524 fra.me.REG[4] = CALL_mmloader___ToolContext___directory_for(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
1525 fra.me.REG[4] = CALL_mmloader___ToolContext___try_to_load(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[4]);
1526 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1527 /* ./mmloader.nit:272 */
1528 if (UNTAG_Bool(REGB0)) {
1529 } else {
1530 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1531 if (UNTAG_Bool(REGB1)) {
1532 REGB1 = TAG_Bool(false);
1533 REGB0 = REGB1;
1534 } else {
1535 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
1536 REGB0 = REGB1;
1537 }
1538 }
1539 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1540 if (UNTAG_Bool(REGB0)) {
1541 fra.me.REG[3] = fra.me.REG[4];
1542 goto label1;
1543 }
1544 } else {
1545 /* ./mmloader.nit:270 */
1546 goto label3;
1547 }
1548 CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]);
1549 }
1550 label3: while(0);
1551 REGB0 = TAG_Int(3);
1552 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB0);
1553 /* ./mmloader.nit:275 */
1554 if (!once_value_4) {
1555 fra.me.REG[4] = BOX_NativeString("Error: No ressource found for module ");
1556 REGB0 = TAG_Int(37);
1557 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
1558 once_value_4 = fra.me.REG[4];
1559 register_static_object(&once_value_4);
1560 } else fra.me.REG[4] = once_value_4;
1561 array___Array___add(fra.me.REG[2], fra.me.REG[4]);
1562 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
1563 array___Array___add(fra.me.REG[2], fra.me.REG[1]);
1564 if (!once_value_5) {
1565 fra.me.REG[1] = BOX_NativeString(".");
1566 REGB0 = TAG_Int(1);
1567 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
1568 once_value_5 = fra.me.REG[1];
1569 register_static_object(&once_value_5);
1570 } else fra.me.REG[1] = once_value_5;
1571 array___Array___add(fra.me.REG[2], fra.me.REG[1]);
1572 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1573 CALL_mmloader___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], NIT_NULL, fra.me.REG[2]);
1574 /* ./mmloader.nit:276 */
1575 fprintf(stderr, "Aborted");
1576 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 276);
1577 nit_exit(1);
1578 label1: while(0);
1579 stack_frame_head = fra.me.prev;
1580 return fra.me.REG[3];
1581 }
1582 val_t mmloader___ToolContext___directory_for(val_t p0, val_t p1){
1583 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1584 val_t REGB0;
1585 val_t tmp;
1586 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1587 fra.me.file = LOCATE_mmloader;
1588 fra.me.line = 279;
1589 fra.me.meth = LOCATE_mmloader___ToolContext___directory_for;
1590 fra.me.has_broke = 0;
1591 fra.me.REG_size = 4;
1592 fra.me.REG[0] = NIT_NULL;
1593 fra.me.REG[1] = NIT_NULL;
1594 fra.me.REG[2] = NIT_NULL;
1595 fra.me.REG[3] = NIT_NULL;
1596 fra.me.REG[0] = p0;
1597 fra.me.REG[1] = p1;
1598 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0])!=NIT_NULL);
1599 /* ./mmloader.nit:282 */
1600 if (UNTAG_Bool(REGB0)) {
1601 } else {
1602 fprintf(stderr, "Uninitialized attribute %s", "_path_dirs");
1603 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 282);
1604 nit_exit(1);
1605 }
1606 fra.me.REG[2] = ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0]);
1607 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1608 if (UNTAG_Bool(REGB0)) {
1609 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0])!=NIT_NULL);
1610 if (UNTAG_Bool(REGB0)) {
1611 } else {
1612 fprintf(stderr, "Uninitialized attribute %s", "_path_dirs");
1613 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 282);
1614 nit_exit(1);
1615 }
1616 fra.me.REG[2] = ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0]);
1617 fra.me.REG[2] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1618 goto label1;
1619 }
1620 fra.me.REG[3] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
1621 fra.me.REG[3] = NEW_MMDirectory_abstractmetamodel___MMDirectory___init(fra.me.REG[3], fra.me.REG[1], NIT_NULL);
1622 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0])!=NIT_NULL);
1623 /* ./mmloader.nit:284 */
1624 if (UNTAG_Bool(REGB0)) {
1625 } else {
1626 fprintf(stderr, "Uninitialized attribute %s", "_path_dirs");
1627 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 284);
1628 nit_exit(1);
1629 }
1630 fra.me.REG[0] = ATTR_mmloader___ToolContext____path_dirs(fra.me.REG[0]);
1631 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
1632 fra.me.REG[2] = fra.me.REG[3];
1633 /* ./mmloader.nit:285 */
1634 goto label1;
1635 label1: while(0);
1636 stack_frame_head = fra.me.prev;
1637 return fra.me.REG[2];
1638 }
1639 void mmloader___ToolContext___register_loader(val_t p0, val_t p1){
1640 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1641 val_t REGB0;
1642 val_t tmp;
1643 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1644 fra.me.file = LOCATE_mmloader;
1645 fra.me.line = 291;
1646 fra.me.meth = LOCATE_mmloader___ToolContext___register_loader;
1647 fra.me.has_broke = 0;
1648 fra.me.REG_size = 2;
1649 fra.me.REG[0] = NIT_NULL;
1650 fra.me.REG[1] = NIT_NULL;
1651 fra.me.REG[0] = p0;
1652 fra.me.REG[1] = p1;
1653 REGB0 = TAG_Bool(ATTR_mmloader___ToolContext____loaders(fra.me.REG[0])!=NIT_NULL);
1654 /* ./mmloader.nit:292 */
1655 if (UNTAG_Bool(REGB0)) {
1656 } else {
1657 fprintf(stderr, "Uninitialized attribute %s", "_loaders");
1658 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 292);
1659 nit_exit(1);
1660 }
1661 fra.me.REG[0] = ATTR_mmloader___ToolContext____loaders(fra.me.REG[0]);
1662 array___Array___add(fra.me.REG[0], fra.me.REG[1]);
1663 stack_frame_head = fra.me.prev;
1664 return;
1665 }
1666 val_t mmloader___ModuleLoader___file_type(val_t p0){
1667 struct {struct stack_frame_t me;} fra;
1668 val_t tmp;
1669 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1670 fra.me.file = LOCATE_mmloader;
1671 fra.me.line = 300;
1672 fra.me.meth = LOCATE_mmloader___ModuleLoader___file_type;
1673 fra.me.has_broke = 0;
1674 fra.me.REG_size = 0;
1675 /* ./mmloader.nit:300 */
1676 fprintf(stderr, "Deferred method called");
1677 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 300);
1678 nit_exit(1);
1679 stack_frame_head = fra.me.prev;
1680 return NIT_NULL;
1681 }
1682 val_t mmloader___ModuleLoader___try_to_load_dir(val_t p0, val_t p1, val_t p2){
1683 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1684 val_t REGB0;
1685 val_t tmp;
1686 static val_t once_value_1; /* Once value */
1687 static val_t once_value_2; /* Once value */
1688 static val_t once_value_3; /* Once value */
1689 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1690 fra.me.file = LOCATE_mmloader;
1691 fra.me.line = 303;
1692 fra.me.meth = LOCATE_mmloader___ModuleLoader___try_to_load_dir;
1693 fra.me.has_broke = 0;
1694 fra.me.REG_size = 4;
1695 fra.me.REG[0] = NIT_NULL;
1696 fra.me.REG[1] = NIT_NULL;
1697 fra.me.REG[2] = NIT_NULL;
1698 fra.me.REG[3] = NIT_NULL;
1699 fra.me.REG[0] = p0;
1700 fra.me.REG[1] = p1;
1701 fra.me.REG[2] = p2;
1702 REGB0 = TAG_Int(5);
1703 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0);
1704 /* ./mmloader.nit:306 */
1705 if (!once_value_1) {
1706 fra.me.REG[3] = BOX_NativeString("");
1707 REGB0 = TAG_Int(0);
1708 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1709 once_value_1 = fra.me.REG[3];
1710 register_static_object(&once_value_1);
1711 } else fra.me.REG[3] = once_value_1;
1712 array___Array___add(fra.me.REG[0], fra.me.REG[3]);
1713 fra.me.REG[3] = CALL_abstractmetamodel___MMDirectory___path(fra.me.REG[2])(fra.me.REG[2]);
1714 array___Array___add(fra.me.REG[0], fra.me.REG[3]);
1715 if (!once_value_2) {
1716 fra.me.REG[3] = BOX_NativeString("/");
1717 REGB0 = TAG_Int(1);
1718 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1719 once_value_2 = fra.me.REG[3];
1720 register_static_object(&once_value_2);
1721 } else fra.me.REG[3] = once_value_2;
1722 array___Array___add(fra.me.REG[0], fra.me.REG[3]);
1723 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
1724 array___Array___add(fra.me.REG[0], fra.me.REG[3]);
1725 if (!once_value_3) {
1726 fra.me.REG[3] = BOX_NativeString("/");
1727 REGB0 = TAG_Int(1);
1728 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
1729 once_value_3 = fra.me.REG[3];
1730 register_static_object(&once_value_3);
1731 } else fra.me.REG[3] = once_value_3;
1732 array___Array___add(fra.me.REG[0], fra.me.REG[3]);
1733 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
1734 REGB0 = CALL_file___String___file_exists(fra.me.REG[0])(fra.me.REG[0]);
1735 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1736 /* ./mmloader.nit:307 */
1737 if (UNTAG_Bool(REGB0)) {
1738 fra.me.REG[3] = NIT_NULL;
1739 goto label4;
1740 }
1741 fra.me.REG[1] = CALL_abstractmetamodel___MMDirectory___full_name_for(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1742 fra.me.REG[2] = NEW_MMDirectory_abstractmetamodel___MMDirectory___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
1743 fra.me.REG[3] = fra.me.REG[2];
1744 /* ./mmloader.nit:310 */
1745 goto label4;
1746 label4: while(0);
1747 stack_frame_head = fra.me.prev;
1748 return fra.me.REG[3];
1749 }
1750 val_t mmloader___ModuleLoader___can_handle(val_t p0, val_t p1, val_t p2){
1751 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1752 val_t REGB0;
1753 val_t REGB1;
1754 val_t tmp;
1755 static val_t once_value_1; /* Once value */
1756 static val_t once_value_2; /* Once value */
1757 static val_t once_value_3; /* Once value */
1758 static val_t once_value_4; /* Once value */
1759 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1760 fra.me.file = LOCATE_mmloader;
1761 fra.me.line = 313;
1762 fra.me.meth = LOCATE_mmloader___ModuleLoader___can_handle;
1763 fra.me.has_broke = 0;
1764 fra.me.REG_size = 5;
1765 fra.me.REG[0] = NIT_NULL;
1766 fra.me.REG[1] = NIT_NULL;
1767 fra.me.REG[2] = NIT_NULL;
1768 fra.me.REG[3] = NIT_NULL;
1769 fra.me.REG[4] = NIT_NULL;
1770 fra.me.REG[0] = p0;
1771 fra.me.REG[1] = p1;
1772 fra.me.REG[2] = p2;
1773 REGB0 = TAG_Int(7);
1774 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
1775 /* ./mmloader.nit:317 */
1776 if (!once_value_1) {
1777 fra.me.REG[4] = BOX_NativeString("");
1778 REGB0 = TAG_Int(0);
1779 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
1780 once_value_1 = fra.me.REG[4];
1781 register_static_object(&once_value_1);
1782 } else fra.me.REG[4] = once_value_1;
1783 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
1784 fra.me.REG[2] = CALL_abstractmetamodel___MMDirectory___path(fra.me.REG[2])(fra.me.REG[2]);
1785 array___Array___add(fra.me.REG[3], fra.me.REG[2]);
1786 if (!once_value_2) {
1787 fra.me.REG[2] = BOX_NativeString("/");
1788 REGB0 = TAG_Int(1);
1789 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
1790 once_value_2 = fra.me.REG[2];
1791 register_static_object(&once_value_2);
1792 } else fra.me.REG[2] = once_value_2;
1793 array___Array___add(fra.me.REG[3], fra.me.REG[2]);
1794 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
1795 array___Array___add(fra.me.REG[3], fra.me.REG[1]);
1796 if (!once_value_3) {
1797 fra.me.REG[1] = BOX_NativeString(".");
1798 REGB0 = TAG_Int(1);
1799 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
1800 once_value_3 = fra.me.REG[1];
1801 register_static_object(&once_value_3);
1802 } else fra.me.REG[1] = once_value_3;
1803 array___Array___add(fra.me.REG[3], fra.me.REG[1]);
1804 fra.me.REG[0] = CALL_mmloader___ModuleLoader___file_type(fra.me.REG[0])(fra.me.REG[0]);
1805 array___Array___add(fra.me.REG[3], fra.me.REG[0]);
1806 if (!once_value_4) {
1807 fra.me.REG[0] = BOX_NativeString("");
1808 REGB0 = TAG_Int(0);
1809 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
1810 once_value_4 = fra.me.REG[0];
1811 register_static_object(&once_value_4);
1812 } else fra.me.REG[0] = once_value_4;
1813 array___Array___add(fra.me.REG[3], fra.me.REG[0]);
1814 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1815 REGB0 = CALL_file___String___file_exists(fra.me.REG[3])(fra.me.REG[3]);
1816 /* ./mmloader.nit:318 */
1817 if (UNTAG_Bool(REGB0)) {
1818 REGB0 = TAG_Bool(true);
1819 goto label5;
1820 }
1821 REGB1 = TAG_Bool(false);
1822 REGB0 = REGB1;
1823 /* ./mmloader.nit:319 */
1824 goto label5;
1825 label5: while(0);
1826 stack_frame_head = fra.me.prev;
1827 return REGB0;
1828 }
1829 val_t mmloader___ModuleLoader___load_and_process_module(val_t p0, val_t p1, val_t p2, val_t p3){
1830 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1831 val_t REGB0;
1832 val_t tmp;
1833 static val_t once_value_1; /* Once value */
1834 static val_t once_value_2; /* Once value */
1835 static val_t once_value_3; /* Once value */
1836 static val_t once_value_4; /* Once value */
1837 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1838 fra.me.file = LOCATE_mmloader;
1839 fra.me.line = 322;
1840 fra.me.meth = LOCATE_mmloader___ModuleLoader___load_and_process_module;
1841 fra.me.has_broke = 0;
1842 fra.me.REG_size = 6;
1843 fra.me.REG[0] = NIT_NULL;
1844 fra.me.REG[1] = NIT_NULL;
1845 fra.me.REG[2] = NIT_NULL;
1846 fra.me.REG[3] = NIT_NULL;
1847 fra.me.REG[4] = NIT_NULL;
1848 fra.me.REG[5] = NIT_NULL;
1849 fra.me.REG[0] = p0;
1850 fra.me.REG[1] = p1;
1851 fra.me.REG[2] = p2;
1852 fra.me.REG[3] = p3;
1853 REGB0 = TAG_Int(7);
1854 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB0);
1855 /* ./mmloader.nit:326 */
1856 if (!once_value_1) {
1857 fra.me.REG[5] = BOX_NativeString("");
1858 REGB0 = TAG_Int(0);
1859 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
1860 once_value_1 = fra.me.REG[5];
1861 register_static_object(&once_value_1);
1862 } else fra.me.REG[5] = once_value_1;
1863 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
1864 fra.me.REG[5] = CALL_abstractmetamodel___MMDirectory___path(fra.me.REG[3])(fra.me.REG[3]);
1865 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
1866 if (!once_value_2) {
1867 fra.me.REG[5] = BOX_NativeString("/");
1868 REGB0 = TAG_Int(1);
1869 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
1870 once_value_2 = fra.me.REG[5];
1871 register_static_object(&once_value_2);
1872 } else fra.me.REG[5] = once_value_2;
1873 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
1874 fra.me.REG[5] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
1875 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
1876 if (!once_value_3) {
1877 fra.me.REG[5] = BOX_NativeString(".");
1878 REGB0 = TAG_Int(1);
1879 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
1880 once_value_3 = fra.me.REG[5];
1881 register_static_object(&once_value_3);
1882 } else fra.me.REG[5] = once_value_3;
1883 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
1884 fra.me.REG[5] = CALL_mmloader___ModuleLoader___file_type(fra.me.REG[0])(fra.me.REG[0]);
1885 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
1886 if (!once_value_4) {
1887 fra.me.REG[5] = BOX_NativeString("");
1888 REGB0 = TAG_Int(0);
1889 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
1890 once_value_4 = fra.me.REG[5];
1891 register_static_object(&once_value_4);
1892 } else fra.me.REG[5] = once_value_4;
1893 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
1894 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1895 fra.me.REG[4] = CALL_mmloader___ModuleLoader___load_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
1896 fra.me.REG[3] = CALL_mmloader___ToolContext___opt_only_parse(fra.me.REG[1])(fra.me.REG[1]);
1897 fra.me.REG[3] = CALL_opts___Option___value(fra.me.REG[3])(fra.me.REG[3]);
1898 REGB0 = TAG_Bool(!UNTAG_Bool(fra.me.REG[3]));
1899 /* ./mmloader.nit:328 */
1900 if (UNTAG_Bool(REGB0)) {
1901 CALL_mmloader___ModuleLoader___process_metamodel(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[4]);
1902 }
1903 /* ./mmloader.nit:329 */
1904 goto label5;
1905 label5: while(0);
1906 stack_frame_head = fra.me.prev;
1907 return fra.me.REG[4];
1908 }
1909 val_t mmloader___ModuleLoader___load_module(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
1910 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
1911 val_t REGB0;
1912 val_t REGB1;
1913 val_t tmp;
1914 static val_t once_value_1; /* Once value */
1915 static val_t once_value_2; /* Once value */
1916 static val_t once_value_3; /* Once value */
1917 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1918 fra.me.file = LOCATE_mmloader;
1919 fra.me.line = 332;
1920 fra.me.meth = LOCATE_mmloader___ModuleLoader___load_module;
1921 fra.me.has_broke = 0;
1922 fra.me.REG_size = 8;
1923 fra.me.REG[0] = NIT_NULL;
1924 fra.me.REG[1] = NIT_NULL;
1925 fra.me.REG[2] = NIT_NULL;
1926 fra.me.REG[3] = NIT_NULL;
1927 fra.me.REG[4] = NIT_NULL;
1928 fra.me.REG[5] = NIT_NULL;
1929 fra.me.REG[6] = NIT_NULL;
1930 fra.me.REG[7] = NIT_NULL;
1931 fra.me.REG[0] = p0;
1932 fra.me.REG[1] = p1;
1933 fra.me.REG[2] = p2;
1934 fra.me.REG[3] = p3;
1935 fra.me.REG[4] = p4;
1936 /* ./mmloader.nit:336 */
1937 if (!once_value_1) {
1938 fra.me.REG[5] = BOX_NativeString("-");
1939 REGB0 = TAG_Int(1);
1940 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
1941 once_value_1 = fra.me.REG[5];
1942 register_static_object(&once_value_1);
1943 } else fra.me.REG[5] = once_value_1;
1944 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[4],fra.me.REG[5]));
1945 if (UNTAG_Bool(REGB0)) {
1946 } else {
1947 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
1948 REGB0 = REGB1;
1949 }
1950 if (UNTAG_Bool(REGB0)) {
1951 fra.me.REG[5] = CALL_file___Object___stdin(fra.me.REG[0])(fra.me.REG[0]);
1952 /* ./mmloader.nit:337 */
1953 } else {
1954 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
1955 fra.me.REG[6] = NEW_IFStream_file___IFStream___open(fra.me.REG[6]);
1956 fra.me.REG[5] = fra.me.REG[6];
1957 /* ./mmloader.nit:339 */
1958 }
1959 REGB0 = CALL_stream___IStream___eof(fra.me.REG[5])(fra.me.REG[5]);
1960 /* ./mmloader.nit:342 */
1961 if (UNTAG_Bool(REGB0)) {
1962 REGB0 = TAG_Int(3);
1963 fra.me.REG[6] = NEW_Array_array___Array___with_capacity(REGB0);
1964 /* ./mmloader.nit:343 */
1965 if (!once_value_2) {
1966 fra.me.REG[7] = BOX_NativeString("Error: Problem in opening file ");
1967 REGB0 = TAG_Int(31);
1968 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
1969 once_value_2 = fra.me.REG[7];
1970 register_static_object(&once_value_2);
1971 } else fra.me.REG[7] = once_value_2;
1972 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
1973 array___Array___add(fra.me.REG[6], fra.me.REG[4]);
1974 if (!once_value_3) {
1975 fra.me.REG[7] = BOX_NativeString("");
1976 REGB0 = TAG_Int(0);
1977 fra.me.REG[7] = NEW_String_string___String___with_native(fra.me.REG[7], REGB0);
1978 once_value_3 = fra.me.REG[7];
1979 register_static_object(&once_value_3);
1980 } else fra.me.REG[7] = once_value_3;
1981 array___Array___add(fra.me.REG[6], fra.me.REG[7]);
1982 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
1983 CALL_mmloader___ToolContext___fatal_error(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[6]);
1984 }
1985 fra.me.REG[3] = CALL_mmloader___ModuleLoader___parse_file(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[5], fra.me.REG[4], fra.me.REG[2], fra.me.REG[3]);
1986 fra.me.REG[0] = CALL_file___Object___stdin(fra.me.REG[0])(fra.me.REG[0]);
1987 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[5],fra.me.REG[0]));
1988 /* ./mmloader.nit:346 */
1989 if (UNTAG_Bool(REGB0)) {
1990 } else {
1991 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
1992 REGB0 = REGB1;
1993 }
1994 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1995 if (UNTAG_Bool(REGB0)) {
1996 CALL_stream___IOS___close(fra.me.REG[5])(fra.me.REG[5]);
1997 }
1998 /* ./mmloader.nit:347 */
1999 goto label4;
2000 label4: while(0);
2001 stack_frame_head = fra.me.prev;
2002 return fra.me.REG[3];
2003 }
2004 val_t mmloader___ModuleLoader___parse_file(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5){
2005 struct {struct stack_frame_t me;} fra;
2006 val_t tmp;
2007 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2008 fra.me.file = LOCATE_mmloader;
2009 fra.me.line = 350;
2010 fra.me.meth = LOCATE_mmloader___ModuleLoader___parse_file;
2011 fra.me.has_broke = 0;
2012 fra.me.REG_size = 0;
2013 /* ./mmloader.nit:350 */
2014 fprintf(stderr, "Deferred method called");
2015 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 350);
2016 nit_exit(1);
2017 stack_frame_head = fra.me.prev;
2018 return NIT_NULL;
2019 }
2020 void mmloader___ModuleLoader___process_metamodel(val_t p0, val_t p1, val_t p2){
2021 struct {struct stack_frame_t me;} fra;
2022 val_t tmp;
2023 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2024 fra.me.file = LOCATE_mmloader;
2025 fra.me.line = 353;
2026 fra.me.meth = LOCATE_mmloader___ModuleLoader___process_metamodel;
2027 fra.me.has_broke = 0;
2028 fra.me.REG_size = 0;
2029 /* ./mmloader.nit:353 */
2030 fprintf(stderr, "Deferred method called");
2031 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 353);
2032 nit_exit(1);
2033 stack_frame_head = fra.me.prev;
2034 return;
2035 }
2036 void mmloader___ModuleLoader___init(val_t p0, int* init_table){
2037 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ModuleLoader].i;
2038 struct {struct stack_frame_t me;} fra;
2039 val_t tmp;
2040 if (init_table[itpos2]) return;
2041 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2042 fra.me.file = LOCATE_mmloader;
2043 fra.me.line = 0;
2044 fra.me.meth = LOCATE_mmloader___ModuleLoader___init;
2045 fra.me.has_broke = 0;
2046 fra.me.REG_size = 0;
2047 stack_frame_head = fra.me.prev;
2048 init_table[itpos2] = 1;
2049 return;
2050 }
2051 void mmloader___MMModule___import_supers_modules(val_t p0, val_t p1){
2052 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
2053 val_t REGB0;
2054 val_t tmp;
2055 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2056 fra.me.file = LOCATE_mmloader;
2057 fra.me.line = 358;
2058 fra.me.meth = LOCATE_mmloader___MMModule___import_supers_modules;
2059 fra.me.has_broke = 0;
2060 fra.me.REG_size = 5;
2061 fra.me.REG[0] = NIT_NULL;
2062 fra.me.REG[1] = NIT_NULL;
2063 fra.me.REG[2] = NIT_NULL;
2064 fra.me.REG[3] = NIT_NULL;
2065 fra.me.REG[4] = NIT_NULL;
2066 fra.me.REG[0] = p0;
2067 fra.me.REG[1] = p1;
2068 fra.me.REG[2] = CALL_abstractmetamodel___MMModule___context(fra.me.REG[0])(fra.me.REG[0]);
2069 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_ToolContext, ID_ToolContext)) /*cast ToolContext*/;
2070 /* ./mmloader.nit:362 */
2071 if (UNTAG_Bool(REGB0)) {
2072 } else {
2073 fprintf(stderr, "Assert failed");
2074 fprintf(stderr, " (%s:%d)\n", LOCATE_mmloader, 362);
2075 nit_exit(1);
2076 }
2077 fra.me.REG[3] = NEW_Array_array___Array___init();
2078 fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]);
2079 /* ./mmloader.nit:364 */
2080 while(1) {
2081 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
2082 if (UNTAG_Bool(REGB0)) {
2083 fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
2084 fra.me.REG[4] = CALL_mmloader___ToolContext___get_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4], fra.me.REG[0]);
2085 /* ./mmloader.nit:366 */
2086 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
2087 } else {
2088 /* ./mmloader.nit:364 */
2089 goto label1;
2090 }
2091 CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
2092 }
2093 label1: while(0);
2094 /* ./mmloader.nit:368 */
2095 CALL_abstractmetamodel___MMContext___add_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], fra.me.REG[3]);
2096 stack_frame_head = fra.me.prev;
2097 return;
2098 }