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